:root{--ivory:#FFFBFA;--petal:#FDF1F2;--blush:#F9E4E7;--mist:#F7DEE2;--rg:#EBB8BE;--peony:#E2A6AE;--deep:#975A63;--deeper:#7E4852;--ink:#241B1E;--soft:#7A5F60;--line:rgba(59,42,48,.14);--display:"Cormorant Garamond",Georgia,serif;--sans:"Jost","Helvetica Neue",Arial,sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none}
button{font:inherit;color:inherit;cursor:pointer}a{color:var(--deeper)}
:focus-visible{outline:2px solid var(--deep);outline-offset:3px}
.shell{display:grid;grid-template-rows:auto 1fr auto;height:100dvh;max-width:640px;margin:0 auto;background:var(--ivory);position:relative}
.top{display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top) + 12px) 18px 10px}
.brand{display:flex;flex-direction:column;line-height:1}.brand b{font:500 1.5rem var(--display)}.brand span{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--deep);margin-top:3px}
.ai-chip{margin-left:auto;border:1px solid var(--deep);color:var(--deep);border-radius:99px;font-size:.62rem;letter-spacing:.14em;padding:3px 9px}
.link{background:none;border:0;color:var(--deeper);text-decoration:underline;text-underline-offset:3px;padding:6px}
main{overflow-y:auto;padding:4px 18px 24px;scroll-behavior:smooth}
.tabs{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:var(--petal);padding-bottom:env(safe-area-inset-bottom)}
.tabs button{background:none;border:0;padding:9px 4px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.7rem;letter-spacing:.08em;color:var(--soft)}
.tabs svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.tabs button.on{color:var(--deeper)}
/* Claire */
.stage{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:6px}
.arch{position:relative;width:min(62vw,250px);aspect-ratio:3/4;border-radius:999px 999px 28px 28px;overflow:hidden;border:0;padding:0;background:var(--blush);box-shadow:0 24px 60px -34px rgba(126,72,82,.6),0 0 0 1px var(--line);animation:breathe 5.5s ease-in-out infinite}
.arch img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
@keyframes breathe{50%{transform:scale(1.018)}}
.arch.speaking{box-shadow:0 0 0 4px var(--rg),0 0 46px 10px rgba(226,166,174,.7);animation:glow 1.3s ease-in-out infinite}
@keyframes glow{50%{box-shadow:0 0 0 7px var(--rg),0 0 64px 16px rgba(226,166,174,.45)}}
@media (prefers-reduced-motion:reduce){.arch,.arch.speaking{animation:none}}
.name{font:500 1.9rem/1.1 var(--display);margin:14px 0 0}
.status{color:var(--deep);font-size:.9rem;letter-spacing:.04em;min-height:1.4em}
.ailine{font-size:.78rem;color:var(--soft);max-width:34ch;margin:4px auto 0}
.caption{min-height:2.8em;margin:10px 0 0;font:italic 300 1.2rem/1.35 var(--display);color:var(--deeper);max-width:30ch}
.talk{margin:10px 0 4px;width:min(78vw,300px);padding:18px 20px;border-radius:99px;border:0;background:linear-gradient(180deg,#F3CDD2,#EBB8BE);color:var(--ink);font:500 1.05rem var(--sans);letter-spacing:.06em;box-shadow:0 14px 30px -16px rgba(126,72,82,.7);touch-action:manipulation;user-select:none;-webkit-user-select:none}
.talk.on{background:linear-gradient(180deg,#EBB8BE,#E2A6AE);box-shadow:0 0 0 6px rgba(226,166,174,.45)}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:12px 0}
.chip{border:1px solid var(--rg);background:var(--petal);border-radius:99px;padding:9px 14px;font-size:.9rem}
.chip:active{background:var(--blush)}
.log{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.msg{max-width:88%;padding:10px 14px;border-radius:18px;font:400 1rem/1.5 var(--sans);white-space:pre-wrap;overflow-wrap:anywhere}
.msg.me{align-self:flex-end;background:var(--blush)}.msg.ai{align-self:flex-start;background:var(--petal);border:1px solid var(--line)}
.msg a{color:var(--deeper)}
.card{border:1px solid var(--line);border-radius:20px;background:var(--petal);padding:14px 16px}
.card h3{font:500 1.35rem var(--display);margin:0 0 6px}
.row{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:.95rem}
.price{font:400 2rem var(--display);color:var(--deeper)}
.btn{display:inline-block;border:0;border-radius:99px;padding:11px 18px;background:var(--rg);color:var(--ink);font-weight:500;letter-spacing:.04em;text-decoration:none}
.btn.ghost{background:transparent;border:1px solid var(--rg)}.btn:disabled{opacity:.5}
.btn.small{padding:8px 14px;font-size:.88rem}
.inputrow{display:flex;gap:8px;margin-top:12px}
.inputrow input{flex:1;border:1px solid var(--line);border-radius:99px;padding:12px 16px;background:#fff;font:inherit}
.f{display:flex;flex-direction:column;gap:4px;margin:10px 0}.f label{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--deep)}
.f input,.f textarea,.f select{border:1px solid var(--line);border-radius:14px;padding:11px 14px;font:inherit;background:#fff}
.check{display:flex;gap:10px;align-items:flex-start;margin:10px 0;font-size:.92rem}.check input{margin-top:4px;accent-color:var(--deep)}
.err{color:#9b2c3d;min-height:1.2em;font-size:.9rem}
h2{font:500 1.7rem var(--display);margin:10px 0 8px}
.muted{color:var(--soft);font-size:.9rem}
.list{display:flex;flex-direction:column;gap:12px}
.pill{display:inline-block;border-radius:99px;padding:2px 10px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;background:var(--blush);color:var(--deeper)}
.sheet{position:absolute;inset:0;background:rgba(74,52,56,.5);display:flex;align-items:flex-end;z-index:20}
.sheet[hidden]{display:none}
.sheet>div{width:100%;max-height:92%;overflow:auto;background:var(--ivory);border-radius:26px 26px 0 0;padding:20px 18px calc(env(safe-area-inset-bottom) + 20px);animation:up .45s var(--ease) both}
@keyframes up{from{transform:translateY(30px);opacity:0}}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:10px 0}
.opts button{border:1px solid var(--rg);background:var(--petal);border-radius:16px;padding:12px;text-align:left}
.opts button.on{background:var(--rg)}
.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0}.photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px}
.offline{display:grid;place-items:center;height:100dvh;text-align:center;padding:30px}
/* shared lightbox styles (profile-lightbox.js) */
html.pl-open{overflow:hidden}
.pl-root{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:12px;background:rgba(74,52,56,.55);backdrop-filter:blur(6px)}
.pl-dialog{position:relative;background:var(--ivory);border-radius:28px;max-width:min(560px,100%);max-height:100%;overflow:auto}
.pl-x{position:absolute;top:10px;right:12px;z-index:2;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:rgba(255,251,250,.9);font-size:1.4rem}
.pl-grid{display:grid;grid-template-columns:1fr}.pl-zoom{overflow:hidden;max-height:50vh;background:var(--mist)}.pl-zoom img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;transition:transform .5s var(--ease)}.pl-zoom.zoomed img{transform:scale(2.1);cursor:zoom-out}
.pl-body{padding:20px;display:flex;flex-direction:column;gap:8px}.pl-body h2{margin:4px 0 0}.pl-desk{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--deep);margin:0}.pl-line{font:italic 300 1.2rem var(--display);margin:4px 0}.pl-fine{font-size:.8rem;color:var(--soft);margin:0}.pl-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.ai-tag{display:inline-block;border:1px solid var(--deep);color:var(--deep);border-radius:99px;font-size:.62rem;letter-spacing:.14em;padding:3px 9px;align-self:flex-start}
