@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Italianno&family=Noto+Serif+SC:wght@400;500;600&family=Special+Elite&display=swap");
/*
 * PRIMARY STYLE OWNER
 * Owns theme tokens, the application shell, navigation, shared typography,
 * common controls, and page structure. Search all four loaded stylesheets
 * before changing an existing selector. Do not append generic overrides here.
 * The dated blocks below mix visual and behavioural regression repairs; move
 * them page by page and never delete them as one batch.
 */

@font-face{
  font-family:"Huiwen Mincho";
  src:url("./assets/fonts/HuiwenMincho.ttf") format("truetype");
  font-display:swap;
  font-style:normal;
  font-weight:400;
}









.page--chat .chat-back{display:grid!important;place-items:center!important;padding:0 0 3px!important;line-height:1!important;text-indent:0!important}
.page--chat #leaveChat{padding:0!important;font-size:0!important;line-height:0!important}.page--chat #leaveChat::before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border-left:1.35px solid color-mix(in srgb,var(--muted) 92%,transparent);border-bottom:1.35px solid color-mix(in srgb,var(--muted) 92%,transparent);transform:translate(-38%,-50%) rotate(45deg);transform-origin:center}

:root {
  color-scheme: dark;
  --bg: #0b1934;
  --bg-2: #244b6d;
  --ink: #eee8dc;
  --muted: rgba(183,198,211,.68);
  --line: rgba(196,162,118,.20);
  --accent: #c4a276;
  --accent-2: #668eaa;
  --accent-ink: #102a4b;
  --glass-rgb: 15, 34, 61;
  --glass-alpha: .44;
  --glass-blur: 22px;
  --heat-0:rgba(74,94,142,.26);
  --heat-1:rgba(86,128,185,.40);
  --heat-2:rgba(82,164,188,.56);
  --heat-3:rgba(152,127,204,.72);
  --heat-4:rgba(230,158,207,.92);
  --tide-heat-0:rgba(74,94,142,.26);
  --tide-heat-1:rgba(86,128,185,.40);
  --tide-heat-2:rgba(82,164,188,.56);
  --tide-heat-3:rgba(152,127,204,.72);
  --tide-heat-4:rgba(230,158,207,.92);
  --shadow: 0 20px 60px rgba(0, 0, 0, .22);
  --home-image: none;
  --chat-image: none;
  --font-reading:"Noto Serif SC","Songti SC",serif;
  --font-display:"Cormorant Garamond","Noto Serif SC","Songti SC",serif;
  --font-hand:"Italianno","Cormorant Garamond","Noto Serif SC",serif;
  --font-typewriter:"Special Elite","Noto Serif SC",serif;
  --font-symbol:"Segoe UI Symbol","Segoe UI Emoji","Apple Color Emoji",sans-serif;
  font-family:var(--font-reading);
}

html[data-theme="shoal"] { color-scheme: light; --bg:#f0f3f8; --bg-2:#c8d4e8; --ink:#2a3550; --muted:rgba(74,90,122,.72); --line:rgba(184,150,74,.24); --accent:#b8964a; --accent-2:#4f9c82; --accent-ink:#fffaf0; --glass-rgb:245,248,252; --shadow:0 20px 60px rgba(55,75,105,.12); --heat-0:rgba(58,99,137,.15);--heat-1:rgba(130,188,202,.30);--heat-2:rgba(83,159,180,.46);--heat-3:rgba(62,126,170,.64);--heat-4:rgba(48,78,134,.82);--tide-heat-0:rgba(58,99,137,.15);--tide-heat-1:rgba(130,188,202,.30);--tide-heat-2:rgba(83,159,180,.46);--tide-heat-3:rgba(62,126,170,.64);--tide-heat-4:rgba(48,78,134,.82); }
html[data-theme="gold"] { color-scheme: light; --bg:#f7ecd4; --bg-2:#e1c692; --ink:#3d3429; --muted:rgba(112,91,65,.74); --line:rgba(201,143,49,.30); --accent:#c98f31; --accent-2:#7f9d84; --accent-ink:#fff8e8; --glass-rgb:255,248,232; --shadow:0 20px 60px rgba(91,55,20,.14); --heat-0:rgba(142,107,48,.18);--heat-1:rgba(210,174,91,.30);--heat-2:rgba(215,157,64,.46);--heat-3:rgba(191,126,44,.64);--heat-4:rgba(143,84,38,.84);--tide-heat-0:rgba(142,107,48,.18);--tide-heat-1:rgba(210,174,91,.30);--tide-heat-2:rgba(215,157,64,.46);--tide-heat-3:rgba(191,126,44,.64);--tide-heat-4:rgba(143,84,38,.84); }
html[data-theme="dusk"] { color-scheme: light; --bg:#f0e5ef; --bg-2:#c9aed0; --ink:#352c45; --muted:rgba(105,80,113,.72); --line:rgba(191,143,84,.26); --accent:#bf8f54; --accent-2:#7897a3; --accent-ink:#fff8f1; --glass-rgb:255,246,252; --shadow:0 20px 60px rgba(84,42,62,.13); --heat-0:rgba(109,75,128,.16);--heat-1:rgba(218,176,216,.32);--heat-2:rgba(202,134,187,.48);--heat-3:rgba(181,93,143,.66);--heat-4:rgba(117,69,128,.86);--tide-heat-0:rgba(109,75,128,.16);--tide-heat-1:rgba(218,176,216,.32);--tide-heat-2:rgba(202,134,187,.48);--tide-heat-3:rgba(181,93,143,.66);--tide-heat-4:rgba(117,69,128,.86); }
html[data-glass="clear"] { --glass-alpha:.26; --glass-blur:14px; }
html[data-glass="mist"] { --glass-alpha:.44; --glass-blur:22px; }
html[data-glass="dense"] { --glass-alpha:.68; --glass-blur:30px; }

* { box-sizing: border-box; }
html, body { margin:0; min-height:100%; background:var(--bg); color:var(--ink); }
body { min-height:100dvh; overflow:hidden; }
button, textarea, input { font:inherit; color:inherit; }
button:focus-visible,textarea:focus-visible,input:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 78%,white);outline-offset:3px}
button { cursor:pointer; }
[hidden] { display:none !important; }

/* One typographic system across every room. */
body,input,textarea,select{font-family:var(--font-reading)}
h1,h2,h3,.launch__mark{font-family:var(--font-display)}
small,time,.eyebrow,[class*="kicker"],[class*="-meta"],[class*="-label"]{font-family:var(--font-display)!important}
time,[class*="clock"],[class*="date"],[class*="month"],[class*="count"],[class*="stats"] b{font-variant-numeric:tabular-nums lining-nums}
.bottom-nav button span,.bottom-nav__chat span{font-family:var(--font-symbol)!important}

.ambient { position:fixed; inset:0; overflow:hidden; background:radial-gradient(ellipse 82% 55% at 83% 8%,color-mix(in srgb,var(--bg-2) 46%,transparent),transparent 66%),linear-gradient(160deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 68%,var(--bg-2)) 58%,var(--bg-2) 145%); transition:background .5s ease; }
.ambient::before { content:""; position:absolute; inset:0; background-image:var(--home-image); background-size:cover; background-position:center; opacity:.66; transition:opacity .35s; }
body.chat-active .ambient::before { background-image:var(--chat-image); opacity:.72; }
.ambient::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(3,13,21,.18),rgba(3,13,21,.48)); }
html:not([data-theme="deep"]) .ambient::after { background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.28)); }
.ambient__glow { position:absolute; width:75vw; height:75vw; border-radius:50%; top:-24vw; right:-18vw; background:radial-gradient(circle,color-mix(in srgb,var(--accent-2) 17%,transparent),transparent 66%); animation:drift 15s ease-in-out infinite alternate; }
.ambient__tide { position:absolute; left:-15%; right:-15%; bottom:-20%; height:48%; border-radius:48% 52% 0 0; background:linear-gradient(180deg,rgba(125,194,215,.20),rgba(1,20,37,.56)); transform:rotate(-2deg); animation:tide 10s ease-in-out infinite alternate; }
.ambient__grain { position:absolute; inset:0; opacity:.08; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E"); }

.launch { position:fixed; z-index:50; inset:0; min-height:100dvh; display:grid; grid-template-rows:.78fr auto auto 1.22fr; justify-items:center; align-items:center; overflow:hidden; padding:max(32px,env(safe-area-inset-top)) 24px max(138px,calc(env(safe-area-inset-bottom) + 118px)); text-align:center; color:#463753; isolation:isolate; background:#d8cae3; transition:opacity .64s cubic-bezier(.22,.75,.18,1),filter .64s ease,transform .7s cubic-bezier(.22,.75,.18,1); }
.launch::before { content:""; position:absolute; inset:-24px; z-index:-2; background:url("assets/launch-xiaguang.jpg") center 54%/cover no-repeat; filter:blur(9px) saturate(.78) brightness(1.04); transform:scale(1.075); animation:launchBreath 9s cubic-bezier(.45,0,.55,1) infinite alternate; transition:opacity .9s cubic-bezier(.22,.75,.18,1); }
.launch::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,rgba(242,226,241,.40) 0%,rgba(214,197,228,.15) 42%,rgba(221,202,229,.34) 100%),radial-gradient(ellipse 72% 38% at 50% 38%,rgba(255,245,250,.30),transparent 72%); pointer-events:none; }
.launch__refraction{position:absolute;z-index:0;inset:0;width:100%;height:100%;display:block;pointer-events:auto;touch-action:none;opacity:0;filter:saturate(.88) brightness(1.035);transition:opacity .9s cubic-bezier(.22,.75,.18,1)}
.launch.is-liquid-mounted .launch__refraction{opacity:.9}
.launch.is-liquid-mounted::before{opacity:0}
.launch.is-liquid-ready::after{z-index:1;background:linear-gradient(180deg,rgba(238,220,239,.18),rgba(210,194,226,.06) 48%,rgba(218,199,229,.20));pointer-events:none}
.launch.is-liquid-ready .launch__signature,.launch.is-liquid-ready .launch__whisper,.launch.is-liquid-ready .launch__enter{z-index:2}
.launch.is-leaving { opacity:0; filter:blur(12px); transform:scale(1.025); pointer-events:none; }
.launch__water { position:absolute; z-index:0; left:50%; top:49%; width:min(116vw,700px); aspect-ratio:1.9; pointer-events:none; mix-blend-mode:screen; transform:translate(-50%,-50%) perspective(700px) rotateX(64deg); }
.launch__water::before { content:""; position:absolute; inset:7% 1%; border-radius:50%; background:radial-gradient(ellipse at center,rgba(255,248,252,.34),rgba(198,162,211,.14) 42%,transparent 70%); filter:blur(13px); }
.launch__water span { position:absolute; left:50%; top:50%; width:20%; aspect-ratio:2.55; border:1.15px solid rgba(255,249,252,.78); border-radius:50%; opacity:0; transform:translate(-50%,-50%) scale(.3); box-shadow:0 0 24px rgba(249,218,235,.30),inset 0 0 13px rgba(255,255,255,.22); animation:launchRipple 6.6s cubic-bezier(.18,.62,.32,1) infinite; }
.launch__water span:nth-child(2){animation-delay:1.15s}.launch__water span:nth-child(3){animation-delay:2.3s}.launch__water span:nth-child(4){animation-delay:3.45s}.launch__water span:nth-child(5){animation-delay:4.6s}
.launch__signature { position:relative; z-index:1; grid-row:2; width:min(88vw,410px); margin-top:-2vh; filter:drop-shadow(0 10px 30px rgba(83,58,98,.12)); transform:rotate(-2deg); transition:opacity .95s cubic-bezier(.22,.75,.18,1),filter .95s ease; }
.launch.is-liquid-ready .launch__signature{opacity:0;filter:blur(2px) drop-shadow(0 10px 30px rgba(83,58,98,0))}
.launch__signature svg { display:block; width:100%; overflow:visible; }
.launch__signature text { font-family:"Italianno","Cormorant Garamond",cursive; font-size:126px; font-style:italic; letter-spacing:4px; }
.launch__signature-stroke { fill:transparent; stroke:rgba(67,48,82,.88); stroke-width:.88; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:840; stroke-dashoffset:840; animation:writeRyven 3.15s .2s cubic-bezier(.32,.02,.16,1) forwards; }
.launch__signature-fill { fill:rgba(66,47,81,.88); opacity:0; animation:fillRyven 1.15s 2.55s ease forwards; }
.launch__whisper { grid-row:3; margin:-2px 0 0; font:400 10px/1.5 var(--font-reading); letter-spacing:.34em; color:rgba(75,57,88,.66); text-shadow:0 1px 12px rgba(255,245,250,.58); opacity:0; animation:launchReveal .8s 2.8s ease forwards; }
.launch__enter { grid-row:4; align-self:end; display:grid; justify-items:center; gap:7px; min-width:150px; padding:12px 22px; border:0; color:rgba(67,49,81,.84); background:transparent; text-shadow:0 1px 12px rgba(255,245,250,.64); opacity:0; animation:launchReveal .9s 3.2s ease forwards; }
.launch__enter span { font:400 12px/1.2 var(--font-reading); letter-spacing:.2em; }
.launch__enter i { font:400 18px/1 serif; color:#9b789d; animation:launchDrift 2.4s ease-in-out infinite; }
.launch__enter:focus-visible { outline:1px solid rgba(94,66,106,.62); outline-offset:5px; border-radius:999px; }
.launch__enter:active { transform:scale(.98); }
.launch__enter:disabled{opacity:.34;pointer-events:none}
.launch-auth{position:absolute;z-index:0;left:50%;bottom:max(18px,env(safe-area-inset-bottom));width:min(86vw,340px);transform:translateX(-50%);display:grid;gap:8px;color:rgba(67,49,81,.78);opacity:0;animation:launchAuthRevealBottom .9s 3.45s ease forwards}
.launch-auth:not(.is-connected){top:59%;bottom:auto;transform:translate(-50%,-50%);animation-name:launchAuthRevealCenter}
.launch-auth__fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.launch-auth label{display:grid;gap:3px;text-align:left}
.launch-auth label span{font:500 8px/1.2 var(--font-reading);letter-spacing:.2em;color:rgba(75,57,88,.55)}
.launch-auth input{width:100%;min-width:0;height:27px;padding:1px 0;border:0;border-bottom:1px solid rgba(79,58,91,.28);border-radius:0;background:transparent;color:#463753;font:400 12px/1.2 var(--font-reading);outline:0}
.launch-auth input:focus{border-bottom-color:rgba(79,58,91,.72)}
.launch-auth button{justify-self:center;padding:4px 10px;border:0;background:transparent;color:rgba(67,49,81,.88);font:500 10px/1.2 var(--font-reading);letter-spacing:.16em}
.launch-auth button:active{transform:translateY(1px)}
.launch-auth p{min-height:13px;margin:0;font:400 9px/1.35 var(--font-reading);letter-spacing:.08em;color:rgba(75,57,88,.58)}
.launch-auth.is-connected .launch-auth__fields{display:none}
.launch-auth.is-connected button{display:none}
.launch-auth.is-connected p{color:rgba(62,91,82,.82);letter-spacing:.18em}
.launch-auth.is-busy{pointer-events:none;opacity:.58}
@keyframes launchRipple { 0%{opacity:0;transform:translate(-50%,-50%) scale(.25)} 12%{opacity:.78} 70%{opacity:.18} 100%{opacity:0;transform:translate(-50%,-50%) scale(4.4)} }
@keyframes writeRyven { to{stroke-dashoffset:0} }
@keyframes fillRyven { to{opacity:1} }
@keyframes launchReveal { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
@keyframes launchAuthRevealBottom{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translateX(-50%)}}
@keyframes launchAuthRevealCenter{from{opacity:0;transform:translate(-50%,calc(-50% + 8px))}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes launchBreath { from{transform:scale(1.065) translate3d(-.35%,0,0)} to{transform:scale(1.105) translate3d(.45%,-.35%,0)} }
@keyframes launchDrift { 0%,100%{transform:translateY(0);opacity:.45} 50%{transform:translateY(4px);opacity:1} }
@media (prefers-reduced-motion:reduce){.launch::before,.launch__water span,.launch__signature-stroke,.launch__signature-fill,.launch__whisper,.launch__enter,.launch__enter i,.launch-auth{animation:none}.launch__signature-stroke{stroke-dashoffset:0}.launch__signature-fill,.launch__whisper,.launch__enter,.launch-auth{opacity:1}.launch__water span{opacity:.12;transform:translate(-50%,-50%) scale(2.4)}.launch{transition:none}}
.launch__whisper,.launch__enter{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.launch__refraction{display:none}.launch.is-liquid-mounted::before{opacity:1}}
.eyebrow { font:500 10px/1.2 "Cormorant Garamond",serif; letter-spacing:.28em; text-transform:uppercase; color:var(--muted); }
.primary-button { margin-top:32px; min-width:150px; padding:14px 28px; border:1px solid var(--line); border-radius:999px; background:rgba(var(--glass-rgb),var(--glass-alpha)); backdrop-filter:blur(var(--glass-blur)); box-shadow:var(--shadow); }

.app { position:relative; z-index:2; width:min(100%, 460px); height:100dvh; margin:auto; }
.topbar { position:absolute; z-index:20; top:0; left:0; right:0; height:calc(70px + env(safe-area-inset-top)); padding:calc(14px + env(safe-area-inset-top)) 18px 10px; display:grid; grid-template-columns:42px 1fr 42px; align-items:center; background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 82%,transparent) 0%,color-mix(in srgb,var(--bg) 52%,transparent) 66%,transparent 100%); backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px); }
.topbar__identity { text-align:center; display:flex; flex-direction:column; gap:3px; }
.topbar__identity strong { font:500 20px/1 "Cormorant Garamond",serif; }
.icon-button,.context-pill { width:40px; height:40px; border:0; border-radius:50%; background:rgba(var(--glass-rgb),.18); backdrop-filter:blur(16px); }
.context-pill { display:flex; gap:3px; align-items:center; justify-content:center; }
.context-pill span { width:4px; height:4px; border-radius:50%; background:var(--ink); opacity:.6; }

.pages { height:100%; overflow:hidden; }
.page { display:none; height:100%; overflow-y:auto; padding:calc(90px + env(safe-area-inset-top)) 18px calc(116px + env(safe-area-inset-bottom)); scrollbar-width:none; }
.page.is-active { display:block; animation:pageIn .38s cubic-bezier(.2,.8,.2,1); }
.glass { border:1px solid var(--line); background:rgba(var(--glass-rgb),var(--glass-alpha)); backdrop-filter:blur(var(--glass-blur)) saturate(1.2); -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.2); box-shadow:var(--shadow); }
.script { font:italic 500 28px/1.1 "Cormorant Garamond",serif; color:var(--accent); }

.weather-line { display:flex; align-items:center; gap:10px; margin:22px 0 18px; color:var(--muted); font-size:12px; white-space:nowrap; }
.weather-line i { height:16px; width:1px; background:var(--line); }
.tide-scene { position:relative; height:180px; overflow:hidden; border-radius:34px; border:1px solid var(--line); background:linear-gradient(165deg,rgba(var(--glass-rgb),.12),rgba(var(--glass-rgb),.46)); }
.tide-scene__surface { position:absolute; width:150%; height:120%; left:-25%; top:48%; border-radius:44% 56% 0 0; background:linear-gradient(180deg,rgba(126,206,224,.35),rgba(19,62,86,.68)); animation:tide 8s ease-in-out infinite alternate; }
.tide-scene__copy { position:absolute; inset:auto 22px 20px; display:flex; flex-direction:column; gap:4px; }
.tide-scene__copy span,.tide-scene__copy p { font-size:10px; color:var(--muted); margin:0; letter-spacing:.12em; }
.tide-scene__copy strong { font-weight:400; }
.together-line { display:flex; align-items:center; gap:9px; margin:24px 4px; }
.avatar { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.12); font:italic 20px "Cormorant Garamond",serif; }
.avatar--ryven { background:rgba(216,189,120,.18); }
.together-line p { margin-left:auto; color:var(--muted); font-size:13px; }.together-line strong{color:var(--ink);font-size:18px}
.letter-card { padding:24px; border-radius:28px; }.letter-card p{line-height:1.9}.letter-card footer{text-align:right;color:var(--accent);font:italic 20px "Cormorant Garamond",serif}
.trace-card { width:100%; margin-top:14px; padding:18px 20px; border-radius:24px; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:12px; text-align:left; }.trace-card span:first-child{display:flex;flex-direction:column;gap:4px}.trace-card small{font:10px "Cormorant Garamond",serif;letter-spacing:.16em;color:var(--muted)}.trace-card strong{font-weight:400}.trace-card__summary{font-size:11px;color:var(--muted)}
.trace-list { padding:5px 18px 1px; border-left:1px solid var(--line); margin:0 0 20px 28px; }.trace-list p{font-size:12px;color:var(--muted);line-height:1.7}.trace-list time{color:var(--accent);margin-right:8px}

.page-intro { padding:16px 4px 28px; }.page-intro h2{font-weight:400;font-size:28px;margin:9px 0}.page-intro p{color:var(--muted);line-height:1.8;font-size:13px}
body[data-active-page="memory"] .topbar__identity strong,
body[data-active-page="life"] .topbar__identity strong,
body[data-active-page="helm"] .topbar__identity strong{font:italic 500 20px/1 "Cormorant Garamond",serif;letter-spacing:0}
.room-list{display:grid;gap:12px}.room-row{width:100%;padding:20px;border-radius:24px;display:grid;grid-template-columns:1fr auto;text-align:left;align-items:center}.room-row span{font:500 24px "Cormorant Garamond",serif}.room-row small{display:block;color:var(--muted);margin-top:4px}.room-row b{font-weight:400;color:var(--accent)}

.page--chat { overflow:hidden; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }

.bottom-nav { position:absolute; z-index:18; left:16px; right:16px; bottom:calc(8px + env(safe-area-inset-bottom)); height:52px; border:1px solid var(--line); border-radius:26px; display:grid; grid-template-columns:repeat(5,1fr); align-items:center; background:rgba(var(--glass-rgb),calc(var(--glass-alpha) + .08)); backdrop-filter:blur(calc(var(--glass-blur) + 6px)); box-shadow:0 12px 38px rgba(0,0,0,.17); }.bottom-nav button{height:100%;border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:var(--muted)}.bottom-nav button span{font:400 15px/1 "Cormorant Garamond","Noto Serif SC",serif}.bottom-nav button[data-target="life"] span{font-size:13px}.bottom-nav button small{font:8px "Cormorant Garamond",serif}.bottom-nav button.is-active{color:var(--accent)}.bottom-nav__chat{transform:translateY(-8px);width:50px!important;height:50px!important;justify-self:center;border:1px solid color-mix(in srgb,var(--accent) 62%,transparent)!important;border-radius:50%;background:radial-gradient(circle at 35% 28%,color-mix(in srgb,var(--accent) 76%,white),var(--accent))!important;color:var(--accent-ink)!important;box-shadow:0 7px 24px color-mix(in srgb,var(--accent) 28%,transparent)}.bottom-nav__chat span{font-size:21px!important;transform:translateY(1px)}
.bottom-nav button:focus{outline:0}.bottom-nav button:focus-visible{border-radius:22px;outline:0;background:color-mix(in srgb,var(--accent) 9%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 38%,transparent)}.bottom-nav__chat:focus-visible{border-radius:50%;box-shadow:0 7px 24px color-mix(in srgb,var(--accent) 28%,transparent),0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)!important}

.scrim { position:fixed; z-index:30; inset:0; background:rgba(0,0,0,.36); backdrop-filter:blur(4px); transition:opacity .24s ease; }

@keyframes voicePulse{0%,100%{height:6px;opacity:.35}50%{height:21px;opacity:1}}@keyframes callFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-7px) rotate(1deg)}}
.typewriter-caret{display:inline-block;width:1px;height:1em;margin-left:2px;vertical-align:-.12em;background:currentColor;animation:typewriterCaret .8s linear infinite}@keyframes typewriterCaret{0%,100%{opacity:1}50%{opacity:0}}

.sheet { width:min(92vw,520px); max-height:82dvh; margin:auto auto 0; border:1px solid var(--line); border-radius:30px 30px 0 0; padding:0; color:var(--ink); background:rgba(var(--glass-rgb),.92); backdrop-filter:blur(36px); box-shadow:var(--shadow); }.sheet::backdrop{background:rgba(0,0,0,.36);backdrop-filter:blur(4px)}.sheet form{padding:24px 22px calc(30px + env(safe-area-inset-bottom));overflow:auto;max-height:82dvh}.sheet header{display:flex;justify-content:space-between}.sheet header h2{font-weight:400;margin:5px 0}.sheet header button{border:0;background:none;font-size:26px}.sheet section{margin-top:24px}.sheet h3{font-size:12px;font-weight:400;color:var(--muted)}
.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.theme-grid button{border:1px solid var(--line);background:none;border-radius:18px;padding:8px}.theme-grid i{display:block;height:45px;border-radius:12px;background:linear-gradient(145deg,#06131f,#38657a)}.theme-grid button:nth-child(2) i{background:linear-gradient(145deg,#dcebed,#7daeb7)}.theme-grid button:nth-child(3) i{background:linear-gradient(145deg,#f0dfbd,#a66b2e)}.theme-grid button:nth-child(4) i{background:linear-gradient(145deg,#ead8e0,#9b677e)}.theme-grid span{display:block;margin-top:7px;font-size:10px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:99px;padding:4px}.segmented button{border:0;background:none;border-radius:99px;padding:8px;font-size:11px}.segmented button.is-active{background:var(--accent);color:var(--accent-ink)}.background-controls{display:grid;gap:9px}.background-controls label,.background-controls>button{position:relative;border:1px solid var(--line);border-radius:16px;padding:12px;background:none;text-align:left;font-size:11px}.background-controls input{position:absolute;inset:0;opacity:0;width:100%}.privacy-note{font-size:10px;color:var(--muted);line-height:1.6}.sheet--compact{margin:auto}.context-meter{height:6px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden;margin:20px 0}.context-meter span{display:block;height:100%;background:var(--accent)}.sheet--compact p{color:var(--muted);line-height:1.7}.sheet dl div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line)}.sheet dt,.sheet dd{margin:0;font-size:11px}.sheet dd{color:var(--accent)}

/* Chat — one continuous pane of tide glass */


/* Motion Lexicon primitive: origin-aware-animation */
.context-tide[open]{transform-origin:var(--origin-x,calc(100% - 28px)) var(--origin-y,28px);animation:contextOriginIn .22s cubic-bezier(.23,1,.32,1) both}.context-tide[open]::backdrop{animation:contextOriginBackdropIn .22s ease-out both}.context-tide.is-origin-closing{animation:contextOriginOut .22s cubic-bezier(.23,1,.32,1) both}.context-tide.is-origin-closing::backdrop{animation:contextOriginBackdropOut .22s ease-out both}@keyframes contextOriginIn{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes contextOriginOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.88)}}@keyframes contextOriginBackdropIn{from{opacity:0}to{opacity:1}}@keyframes contextOriginBackdropOut{from{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.context-tide[open],.context-tide.is-origin-closing{animation:contextOriginFade .12s linear both;transform-origin:center}.context-tide[open]::backdrop,.context-tide.is-origin-closing::backdrop{animation:contextOriginFade .12s linear both}@keyframes contextOriginFade{from{opacity:0}to{opacity:1}}}


.proactive-detail[open]{transform-origin:var(--origin-x,50%) var(--origin-y,50%);animation:proactiveDetailIn .28s cubic-bezier(.22,.78,.22,1) both}.proactive-detail[open]::backdrop{animation:proactiveBackdropIn .28s ease-out both}.proactive-detail[open] form>*{animation:proactiveContentIn .32s cubic-bezier(.23,1,.32,1) both}.proactive-detail[open] form>h2{animation-delay:.025s}.proactive-detail[open] blockquote{animation-delay:.05s}.proactive-detail[open] dl{animation-delay:.075s}.proactive-detail[open] form>p{animation-delay:.1s}.proactive-detail.is-proactive-closing{animation:proactiveDetailOut .28s cubic-bezier(.4,0,.6,1) both}.proactive-detail.is-proactive-closing::backdrop{animation:proactiveBackdropOut .28s ease both}.proactive-detail.is-proactive-closing form>*{animation:none}@keyframes proactiveDetailIn{from{opacity:0;transform:translate3d(0,10px,0) scale(.94);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}@keyframes proactiveDetailOut{from{opacity:1;transform:none;filter:none}to{opacity:0;transform:translate3d(0,8px,0) scale(.96);filter:blur(1px)}}@keyframes proactiveBackdropIn{from{opacity:0}to{opacity:1}}@keyframes proactiveBackdropOut{from{opacity:1}to{opacity:0}}@keyframes proactiveContentIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.proactive-detail[open],.proactive-detail.is-proactive-closing,.proactive-detail[open] form>*{animation:proactiveDetailFade .12s linear both;transform-origin:center;filter:none}@keyframes proactiveDetailFade{from{opacity:0}to{opacity:1}}}






.chat-active .topbar{display:none!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important;transform:none!important;transition:none!important}



.session-sheet{width:min(92vw,420px);max-height:86dvh;margin:auto;padding:0;border:1px solid var(--line);border-radius:28px;color:var(--ink);background:rgba(var(--glass-rgb),.9);backdrop-filter:blur(34px) saturate(1.35);box-shadow:0 24px 80px rgba(0,0,0,.28);transform-origin:var(--origin-x,50%) var(--origin-y,10%)}.session-sheet::backdrop{background:rgba(0,0,0,.32);backdrop-filter:blur(3px)}.session-sheet[open]{animation:sessionIn .24s cubic-bezier(.23,1,.32,1) both}.session-sheet form{max-height:86dvh;overflow:auto;padding:22px 19px calc(22px + env(safe-area-inset-bottom))}.session-sheet header{display:flex;justify-content:space-between}.session-sheet header span{color:var(--accent);font:7px system-ui;letter-spacing:.2em}.session-sheet h2{margin:7px 0 0;font:500 22px "Noto Serif SC",serif}.session-sheet header>button{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:none;color:var(--muted)}.session-sheet section{margin-top:22px}.session-sheet section>small{display:block;margin:0 3px 8px;color:var(--muted);font:7px system-ui;letter-spacing:.15em}.session-sheet section button{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:13px 8px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--ink);text-align:left}.session-sheet section button>i{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--accent);font:italic 12px "Cormorant Garamond",serif}.session-sheet section button>span{display:grid;gap:4px}.session-sheet section strong{font:500 12px "Noto Serif SC",serif}.session-sheet section button small{color:var(--muted);font:8px "Noto Serif SC",serif}.session-sheet time{color:var(--muted);font:8px "Cormorant Garamond",serif}.session-sheet .is-current{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:17px;background:color-mix(in srgb,var(--accent) 8%,transparent)}.session-sheet .is-temporary>i{border-style:dashed}.session-sheet footer{display:grid;gap:8px;margin-top:23px}.session-sheet footer button{display:grid;grid-template-columns:1fr auto;padding:13px;border:1px solid var(--line);border-radius:17px;background:rgba(var(--glass-rgb),.08);color:var(--ink);text-align:left}.session-sheet footer span{display:grid;gap:4px;font:11px "Noto Serif SC",serif}.session-sheet footer small{color:var(--muted);font-size:7px}.session-sheet footer b{color:var(--accent);font-weight:400}@keyframes sessionIn{from{opacity:0;transform:scale(.92) translateY(-5px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.session-sheet[open]{animation:sessionFade .12s linear both}@keyframes sessionFade{from{opacity:0}to{opacity:1}}}


@media (min-width:760px){
  .app{display:grid;grid-template-columns:90px 1fr}.topbar{left:90px}.pages{grid-column:2}.bottom-nav{position:relative;grid-row:1;grid-column:1;inset:auto;width:74px;height:calc(100dvh - 30px);margin:15px 8px;grid-template-columns:1fr;grid-template-rows:repeat(5,1fr);border-radius:38px}.bottom-nav__chat{transform:none}.page{padding-left:clamp(40px,8vw,110px);padding-right:clamp(40px,8vw,110px)}.composer{left:calc(90px + clamp(40px,8vw,110px));right:clamp(40px,8vw,110px);bottom:24px}.page--chat{padding-bottom:96px}.listening-bar{left:calc(90px + clamp(50px,8vw,120px));right:clamp(50px,8vw,120px);bottom:90px}.tide-scene{height:220px}
}

.tide-page{--heat-0:color-mix(in srgb,var(--accent-2) 8%,transparent);--heat-1:color-mix(in srgb,var(--accent-2) 24%,transparent);--heat-2:color-mix(in srgb,var(--accent-2) 43%,transparent);--heat-3:color-mix(in srgb,var(--accent) 57%,var(--accent-2));--heat-4:color-mix(in srgb,var(--accent) 82%,var(--ink))}.tide-month{display:flex;align-items:center;justify-content:center;gap:34px;padding:25px 0 16px}.tide-month button{width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:none;color:var(--muted)}.tide-month span{font:italic 18px "Cormorant Garamond",serif;letter-spacing:.15em}.tide-summary{padding:16px 2px 21px;border-bottom:1px solid var(--line)}.tide-summary small{color:var(--accent);font:7px system-ui;letter-spacing:.27em}.tide-summary p{margin:7px 0 0;font:italic 19px/1.4 "Cormorant Garamond","Noto Serif SC",serif}.tide-summary strong{font-size:26px;font-weight:400}.tide-summary i{padding:0 4px;color:var(--accent);font-style:normal}.tide-heatmap-wrap{display:grid;grid-template-columns:20px 1fr;gap:8px;margin-top:24px}.tide-yaxis{display:grid;grid-template-rows:repeat(5,1fr);color:var(--muted);font:7px system-ui}.tide-heatmap{display:grid;grid-template-columns:repeat(31,1fr);grid-template-rows:repeat(24,1fr);grid-auto-flow:column;gap:2px;height:190px}.tide-heatmap i,.tide-legend i{display:block;border-radius:2px;background:var(--heat-0);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 35%,transparent)}.tide-heatmap i[data-level="1"],.tide-legend i[data-level="1"]{background:var(--heat-1)}.tide-heatmap i[data-level="2"],.tide-legend i[data-level="2"]{background:var(--heat-2)}.tide-heatmap i[data-level="3"],.tide-legend i[data-level="3"]{background:var(--heat-3)}.tide-heatmap i[data-level="4"],.tide-legend i[data-level="4"]{background:var(--heat-4)}.tide-legend{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin:12px 0 30px;color:var(--muted);font:7px system-ui}.tide-legend i{width:15px;height:7px}.tide-notes{border-top:1px solid var(--line)}.tide-notes article{display:grid;grid-template-columns:45px 1fr auto;gap:13px;align-items:center;padding:18px 2px;border-bottom:1px solid var(--line)}.tide-notes time{color:var(--accent);font:italic 12px "Cormorant Garamond",serif}.tide-notes div{display:grid;gap:5px}.tide-notes small{color:var(--muted);font:7px system-ui;letter-spacing:.14em}.tide-notes strong{font:500 11px "Noto Serif SC",serif}.tide-notes b{font:italic 18px "Cormorant Garamond",serif;font-weight:400}

@media (max-width:420px){
  .tide-summary p{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 3px;font-size:17px}
  .tide-summary strong{font-size:23px}
  .tide-heatmap{gap:1px}
}


.tide-page{--heat-0:var(--tide-heat-0);--heat-1:var(--tide-heat-1);--heat-2:var(--tide-heat-2);--heat-3:var(--tide-heat-3);--heat-4:var(--tide-heat-4)}












/* Motion Lexicon primitive: slide-in (up, 28px, 240ms, ease-out) */

/* Chat name capsule — centered identity glass */


.context-tide{width:min(92vw,430px);max-height:88dvh;margin:auto;padding:0;border:1px solid var(--line);border-radius:28px;color:var(--ink);background:rgba(var(--glass-rgb),.88);-webkit-backdrop-filter:blur(34px) saturate(1.35);backdrop-filter:blur(34px) saturate(1.35);box-shadow:0 24px 80px rgba(0,0,0,.28)}.context-tide::backdrop{background:rgba(0,0,0,.34);backdrop-filter:blur(4px)}.context-tide form{max-height:88dvh;overflow:auto;padding:23px 20px calc(24px + env(safe-area-inset-bottom))}.context-tide header{display:flex;justify-content:space-between;align-items:flex-start}.context-tide header span{color:var(--accent);font:7px system-ui;letter-spacing:.22em}.context-tide header h2{margin:7px 0 0;font:500 23px "Noto Serif SC",serif}.context-tide header button{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:rgba(var(--glass-rgb),.12);color:var(--muted);font-size:18px}.context-tide__hero{display:grid;grid-template-columns:104px 1fr;align-items:center;gap:16px;margin-top:24px;padding:20px 4px;border-block:1px solid var(--line)}.context-tide__dial{position:relative;width:100px;height:100px;display:grid;place-items:center}.context-tide__dial svg{position:absolute;inset:0;width:100%;transform:rotate(-90deg)}.context-tide__dial circle{fill:none;stroke:color-mix(in srgb,var(--line) 55%,transparent);stroke-width:3}.context-tide__dial .context-tide__progress{stroke:var(--accent);stroke-linecap:round;stroke-dasharray:270;stroke-dashoffset:167;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 50%,transparent))}.context-tide__dial strong{font:italic 35px "Cormorant Garamond",serif}.context-tide__dial strong small{font-size:12px}.context-tide__hero>div:last-child>span{color:var(--accent);font:10px "Noto Serif SC",serif}.context-tide__hero p{margin:7px 0;color:var(--ink);font:12px/1.65 "Noto Serif SC",serif}.context-tide__hero small{color:var(--muted);font-size:8px}.context-capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}.context-capabilities>div{min-height:74px;display:flex;align-items:flex-start;gap:7px;padding:11px 8px;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:15px;background:rgba(var(--glass-rgb),.08)}.context-capabilities i{width:6px;height:6px;margin-top:5px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 8px var(--accent-2)}.context-capabilities span{display:grid;gap:5px}.context-capabilities strong{font:500 10px "Noto Serif SC",serif}.context-capabilities small{color:var(--muted);font:7px/1.4 "Noto Serif SC",serif}.context-thresholds{margin-top:22px}.context-thresholds>span{color:var(--accent);font:7px system-ui;letter-spacing:.2em}.context-thresholds>div{position:relative;height:2px;margin:20px 4px 17px;background:linear-gradient(90deg,var(--accent-2),var(--accent),#b65d5d)}.context-thresholds i{position:absolute;left:var(--at);top:50%;width:9px;height:9px;border:2px solid var(--bg);border-radius:50%;background:var(--ink);transform:translate(-50%,-50%);box-shadow:0 0 0 1px var(--line)}.context-thresholds b{position:absolute;left:var(--at);top:7px;transform:translateX(-50%);color:var(--muted);font:400 7px system-ui}.context-thresholds p{margin:0;color:var(--muted);font:9px/1.65 "Noto Serif SC",serif}.context-actions{display:grid;gap:8px;margin-top:19px}.context-actions button{display:grid;grid-template-columns:1fr auto;align-items:center;padding:14px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(var(--glass-rgb),.09));color:var(--ink);text-align:left}.context-actions span{display:grid;gap:4px;font:12px "Noto Serif SC",serif}.context-actions small{color:var(--muted);font-size:8px}.context-actions b{color:var(--accent);font-weight:400}.context-actions button.is-preparing b{animation:tideActionPulse .8s ease-in-out infinite}.context-actions button.is-ready{border-color:color-mix(in srgb,var(--accent-2) 50%,var(--line))}.context-prototype-note{margin:14px 2px 0;color:var(--muted);font:7px/1.5 "Noto Serif SC",serif;text-align:center}@keyframes tideActionPulse{50%{opacity:.25;transform:translateX(3px)}}
@media(max-width:370px){.context-tide__hero{grid-template-columns:86px 1fr}.context-tide__dial{width:82px;height:82px}.context-capabilities{grid-template-columns:1fr}.context-capabilities>div{min-height:50px}}
.archive-room__note{margin:22px 0 12px;color:var(--muted);font:10px/1.6 "Noto Serif SC",serif}.archive-room__list{display:grid;gap:10px}.archive-room__list>p{padding:20px 4px;color:var(--muted)}.archive-room__list article{padding:14px;border:1px solid var(--line);border-radius:16px;background:rgba(var(--glass-rgb),.08)}.archive-room__list article>div{display:grid;gap:4px}.archive-room__list article strong{font:12px "Noto Serif SC",serif}.archive-room__list article small{color:var(--muted);font-size:8px}.archive-room__list footer{display:flex;gap:8px;margin-top:12px}.archive-room__list footer button{padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--ink);font-size:9px}.archive-room__list pre{max-height:220px;overflow:auto;margin:12px 0 0;padding:10px;border-radius:10px;background:rgba(0,0,0,.12);white-space:pre-wrap;color:var(--muted);font:8px/1.6 ui-monospace,monospace}
@media(prefers-reduced-motion:reduce){.context-actions button.is-preparing b{animation:none}}




.expression-tabs{position:relative;isolation:isolate}.expression-tabs__indicator{position:absolute;z-index:-1;left:4px;top:4px;width:calc((100% - 16px)/3);height:32px;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);border-radius:15px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 20%,rgba(255,255,255,.08)),rgba(var(--glass-rgb),.12));box-shadow:inset 0 1px rgba(255,255,255,.12),0 5px 15px color-mix(in srgb,var(--accent) 8%,transparent);transform:translate3d(calc(var(--tab-index) * (100% + 4px)),0,0);transition:transform .34s cubic-bezier(.22,.8,.22,1),background .25s ease}.expression-tabs button{position:relative;background:none!important;transition:color .24s ease}.expression-tabs button.is-active{color:var(--accent)}.expression-tabs button:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.expression-panel{transform-origin:center top}.expression-panel.is-switching{animation:expressionPanelForward .3s cubic-bezier(.23,1,.32,1) both}.expression-panel.is-switching[data-direction="back"]{animation-name:expressionPanelBack}.expression-panel button{animation:expressionItemIn .26s cubic-bezier(.23,1,.32,1) both}.expression-panel button:nth-child(2){animation-delay:.025s}.expression-panel button:nth-child(3){animation-delay:.05s}.expression-panel button:nth-child(n+4){animation-delay:.075s}@keyframes expressionPanelForward{from{opacity:.25;transform:translate3d(14px,0,0)}to{opacity:1;transform:none}}@keyframes expressionPanelBack{from{opacity:.25;transform:translate3d(-14px,0,0)}to{opacity:1;transform:none}}@keyframes expressionItemIn{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.expression-tabs__indicator,.expression-tabs button{transition:none}.expression-panel.is-switching,.expression-panel.is-switching[data-direction="back"],.expression-panel button{animation:expressionFade .12s linear both}@keyframes expressionFade{from{opacity:0}to{opacity:1}}}

.expression-sheet{width:min(100%,460px);max-width:none;max-height:78dvh;margin:auto auto 0;padding:0;border:0;border-radius:28px 28px 0 0;color:var(--ink);background:rgba(var(--glass-rgb),.88);-webkit-backdrop-filter:blur(32px) saturate(1.4);backdrop-filter:blur(32px) saturate(1.4);box-shadow:0 -18px 60px rgba(0,0,0,.24)}.expression-sheet::backdrop{background:rgba(0,0,0,.3);backdrop-filter:blur(3px)}.expression-sheet form{max-height:78dvh;overflow:auto;padding:20px 17px calc(20px + env(safe-area-inset-bottom))}.expression-sheet header{display:flex;justify-content:space-between;align-items:flex-start}.expression-sheet header span{color:var(--accent);font:7px system-ui;letter-spacing:.2em}.expression-sheet h2{margin:6px 0 0;font:500 21px "Noto Serif SC",serif}.expression-sheet header button{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:none;color:var(--muted);font-size:18px}.expression-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:19px;padding:4px;border:1px solid var(--line);border-radius:19px}.expression-tabs button{height:32px;border:0;border-radius:15px;background:none;color:var(--muted);font:9px "Noto Serif SC",serif}.expression-tabs button.is-active{background:color-mix(in srgb,var(--accent) 18%,rgba(var(--glass-rgb),.12));color:var(--accent)}.expression-panel{display:flex;flex-wrap:wrap;gap:7px;min-height:90px;padding:18px 0}.expression-panel button{max-width:100%;padding:9px 13px;border:1px solid color-mix(in srgb,var(--ink) 12%,var(--line));border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.07),rgba(var(--glass-rgb),.08));color:var(--ink);font:10px/1.4 "Noto Serif SC",serif}.expression-editor{display:grid;grid-template-columns:1fr auto;gap:8px;padding-top:14px;border-top:1px solid var(--line)}.expression-editor label{display:grid;gap:5px}.expression-editor label span{color:var(--muted);font-size:7px}.expression-editor input{height:38px;padding:0 12px;border:1px solid var(--line);border-radius:18px;background:rgba(var(--glass-rgb),.08);color:var(--ink);font:9px "Noto Serif SC",serif}.expression-editor>button{align-self:end;height:38px;padding:0 15px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);font:9px "Noto Serif SC",serif}.expression-sheet form>p{margin:12px 2px 0;color:var(--muted);font:7px/1.55 "Noto Serif SC",serif}
html[data-theme="shoal"] .page--chat .message,
html[data-theme="gold"] .page--chat .message,
html[data-theme="dusk"] .page--chat .message {
  border-color:color-mix(in srgb,var(--ink) 13%,rgba(255,255,255,.38));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.40),0 7px 22px rgba(40,50,70,.065);
}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media (prefers-reduced-motion:reduce){.typewriter-caret{display:none}.chat-heart{transition:none}.message.is-speaking{animation:none}}
@media (max-width:370px){.chat-status{grid-template-columns:42px 1fr 90px}.chat-person{min-width:112px!important;padding-inline:10px!important}.chat-actions{grid-template-columns:27px 27px 30px;gap:3px}}

/* Corrected Chat composition: transparent header + a real front/back card */
.page--chat{padding:0!important;perspective:1400px}.chat-card{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .72s cubic-bezier(.22,.75,.18,1)}.chat-card.is-flipped{transform:rotateY(180deg)}.chat-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.chat-face--front{display:flex;flex-direction:column;padding:calc(18px + env(safe-area-inset-top)) 18px calc(72px + env(safe-area-inset-bottom));background-image:linear-gradient(180deg,rgba(var(--glass-rgb),.03),rgba(var(--glass-rgb),.13)),var(--chat-image);background-size:cover;background-position:center}.chat-status{position:relative;z-index:3!important;display:block!important;height:58px;min-height:58px;margin:0;padding:0;border:0!important;background:none!important}.chat-back{position:absolute;left:0;top:11px;justify-self:auto!important;width:34px!important;height:34px!important;background:rgba(var(--glass-rgb),.1)!important}.chat-person{position:absolute;left:50%;top:3px;transform:translateX(-50%);display:grid!important;min-width:0!important;min-height:0!important;width:auto!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;backdrop-filter:none!important;box-shadow:none!important}.chat-person>span:last-child{display:grid;justify-items:center;width:auto}.chat-person .chat-avatar,.chat-person small{display:none}.chat-person strong{font:500 25px/1 "Cormorant Garamond","Noto Serif SC",serif}.chat-person i{margin-top:5px;font:normal 8px "Noto Serif SC",serif}.chat-actions{position:absolute;right:0;top:12px;display:flex!important;grid-template-columns:none!important;gap:5px}.chat-actions>button{width:30px!important;height:30px!important;background:rgba(var(--glass-rgb),.1)!important}.chat-actions>#sessionButton{width:32px!important}.message-list{flex:1;height:auto!important;min-height:0;padding-bottom:76px}.composer{position:absolute!important;z-index:5;left:12px!important;right:12px!important;bottom:calc(10px + env(safe-area-inset-bottom))!important}.chat-heart{position:absolute;z-index:1;inset:0;transform:rotateY(180deg)!important;opacity:1!important;visibility:visible!important;transition:none!important;padding:calc(30px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));background:radial-gradient(circle at 70% 12%,color-mix(in srgb,var(--accent-2) 14%,transparent),transparent 32%),linear-gradient(165deg,var(--bg),color-mix(in srgb,var(--bg-2) 72%,var(--bg)))}
@media (prefers-reduced-motion:reduce){.chat-card{transition-duration:.01ms}}
@media (max-width:370px){.chat-face--front{padding-inline:12px}.chat-person strong{font-size:22px}.chat-actions{gap:3px}}

/* Flip geometry fix: pin both faces to the exact Chat viewport center. */
.page--chat{position:relative!important;padding:0!important;overflow:hidden!important;perspective:1400px!important;perspective-origin:50% 50%!important}.chat-card{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform-origin:50% 50%!important;transform-style:preserve-3d!important;will-change:transform}.chat-face{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform-origin:50% 50%!important;backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important}.chat-face--front{transform:rotateY(0deg)!important}.chat-heart{transform:rotateY(180deg)!important}

/* Chat and Heart share the same user-selected wallpaper. */
.chat-heart{isolation:isolate;background-image:var(--chat-image)!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}.chat-heart:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 42%,transparent),color-mix(in srgb,var(--bg) 18%,transparent) 38%,color-mix(in srgb,var(--bg) 56%,transparent));backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}.chat-heart>*{position:relative;z-index:1}


/* 2.0 rooms — each page keeps its own spatial language */
.section-kicker{display:block;color:var(--accent);font:600 9px/1.2 system-ui,sans-serif;letter-spacing:.28em}




.bottom-nav button span{font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;font-size:15px}.bottom-nav button[data-target="life"] span{font-size:15px}.bottom-nav__chat span{font-family:"Segoe UI Symbol","Segoe UI Emoji",sans-serif!important;font-size:19px!important}
@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Primary rooms keep their place in the home: a small directional crossfade. */
@supports (view-transition-name:none){
  .pages{view-transition-name:ryven-primary-room}
  .topbar__identity{view-transition-name:ryven-room-title}
  .bottom-nav{view-transition-name:ryven-bottom-navigation}
  ::view-transition-group(ryven-bottom-navigation){z-index:40;animation:none}
  ::view-transition-old(ryven-bottom-navigation){display:none}
  ::view-transition-new(ryven-bottom-navigation){animation:none;mix-blend-mode:normal}
  ::view-transition-group(ryven-primary-room){animation-duration:.44s;animation-timing-function:cubic-bezier(.22,.78,.25,1)}
  ::view-transition-old(ryven-primary-room),::view-transition-new(ryven-primary-room){mix-blend-mode:normal;animation-duration:.44s;animation-fill-mode:both;animation-timing-function:cubic-bezier(.22,.78,.25,1)}
  body[data-nav-direction="forward"]::view-transition-old(ryven-primary-room){animation-name:room-out-left}
  body[data-nav-direction="forward"]::view-transition-new(ryven-primary-room){animation-name:room-in-right}
  body[data-nav-direction="back"]::view-transition-old(ryven-primary-room){animation-name:room-out-right}
  body[data-nav-direction="back"]::view-transition-new(ryven-primary-room){animation-name:room-in-left}
  ::view-transition-old(ryven-room-title){animation:room-title-out .2s ease both}
  ::view-transition-new(ryven-room-title){animation:room-title-in .34s cubic-bezier(.22,.78,.25,1) both}
  @keyframes room-out-left{to{opacity:0;transform:translate3d(-14px,0,0)}}
  @keyframes room-in-right{from{opacity:0;transform:translate3d(14px,0,0)}}
  @keyframes room-out-right{to{opacity:0;transform:translate3d(14px,0,0)}}
  @keyframes room-in-left{from{opacity:0;transform:translate3d(-14px,0,0)}}
  @keyframes room-title-out{to{opacity:0;transform:translateY(-4px)}}
  @keyframes room-title-in{from{opacity:0;transform:translateY(4px)}}
}
@media(prefers-reduced-motion:reduce){.page.is-active{animation:none}}

/* The active room travels along the bottom edge instead of blinking in place. */
.bottom-nav{--nav-index:0;isolation:isolate}
.bottom-nav:before{content:"";position:absolute;z-index:0;left:4px;top:5px;bottom:5px;width:calc((100% - 8px)/5);border-radius:22px;background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--accent) 17%,transparent),color-mix(in srgb,var(--accent) 5%,transparent) 58%,transparent 76%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 9%,transparent);transform:translate3d(calc(var(--nav-index)*100%),0,0);transition:transform .52s cubic-bezier(.22,.78,.25,1),background .38s ease;pointer-events:none}
.bottom-nav button{position:relative;z-index:1;transition:color .38s ease}
.bottom-nav button:not(.bottom-nav__chat) span,.bottom-nav button:not(.bottom-nav__chat) small{transition:transform .44s cubic-bezier(.22,.78,.25,1),opacity .35s ease}
.bottom-nav button:not(.bottom-nav__chat).is-active span{transform:translateY(-2px)}
.bottom-nav button:not(.bottom-nav__chat).is-active small{transform:translateY(-1px);opacity:.92}
.bottom-nav button:not(.bottom-nav__chat):active span{transform:translateY(0) scale(.94)}
@media(min-width:760px){.bottom-nav:before{left:5px;right:5px;top:4px;bottom:auto;width:auto;height:calc((100% - 8px)/5);transform:translate3d(0,calc(var(--nav-index)*100%),0)}}
@media(prefers-reduced-motion:reduce){.bottom-nav:before,.bottom-nav button,.bottom-nav button span,.bottom-nav button small{transition:none!important}}
@keyframes drift{to{transform:translate(-8vw,7vw) scale(1.08)}}
@keyframes tide{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-12px) rotate(1deg)}}

.page[data-page="home"]{padding-left:22px;padding-right:22px}
.today-sea{position:relative;padding:12px 0 48px}.today-sea__title{display:flex;align-items:center;gap:11px;margin:0 0 16px;color:var(--muted);font:9px "Cormorant Garamond",serif;letter-spacing:.26em}.today-sea__title i{width:34px;height:1px;background:var(--accent);opacity:.55}.sea-window{position:relative;padding:20px 2px 0;border-top:1px solid var(--line)}
.today-widgets{display:grid;grid-template-columns:1fr 104px;align-items:center;gap:18px}.weather-copy>span{display:block;color:var(--accent);font-size:8px;letter-spacing:.18em}.weather-copy p{margin:8px 0 5px;font-size:14px;white-space:nowrap}.weather-copy p b{font:italic 22px "Cormorant Garamond",serif;font-weight:400}.weather-copy small{display:block;color:var(--muted);font-size:8px}.clock-widget{display:grid;grid-template-columns:50px 1fr;grid-template-rows:1fr 1fr;align-items:center;column-gap:8px}.clock-face{grid-row:1/-1;position:relative;width:50px;height:50px;border:1px solid var(--line);border-radius:50%}.clock-face::before,.clock-face::after{content:"";position:absolute;background:var(--line)}.clock-face::before{width:1px;height:4px;left:50%;top:3px}.clock-face::after{height:1px;width:4px;left:3px;top:50%}.clock-hand{position:absolute;left:50%;bottom:50%;width:1px;transform-origin:50% 100%;background:var(--ink);border-radius:2px}.clock-hour{height:13px}.clock-minute{height:18px}.clock-second{height:20px;background:var(--accent)}.clock-face b{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--accent);left:calc(50% - 2px);top:calc(50% - 2px)}.clock-widget>span{align-self:end;font:italic 17px "Cormorant Garamond",serif}.clock-widget>small{align-self:start;color:var(--muted);font-size:7px;letter-spacing:.12em}
.tide-lines{position:relative;margin-top:28px}.tide-lines__label{position:absolute;right:0;top:0;font:italic 9px "Cormorant Garamond",serif;letter-spacing:.08em;color:var(--muted)}.tide-lines svg{display:block;width:calc(100% + 44px);height:96px;margin-left:-22px;padding-top:17px;overflow:visible}.tide-lines path{fill:none;stroke-linecap:round}.tide-horizon{stroke:var(--line);stroke-dasharray:2 5}.tide-nory{stroke:var(--accent);stroke-width:1.35}.tide-ryven{stroke:var(--accent-2);stroke-width:1.2;stroke-dasharray:3 4}.tide-dot{fill:var(--accent);filter:drop-shadow(0 0 5px var(--accent))}.tide-lines__legend{display:flex;gap:18px;font:italic 10px "Cormorant Garamond",serif;color:var(--muted);margin-top:-7px}
.theme-grid i{background:radial-gradient(circle at 70% 24%,#2f65a4,#071532 58%),linear-gradient(145deg,#071532,#214a86 62%,#d7b64a)!important}.theme-grid button:nth-child(2) i{background:linear-gradient(145deg,#f0f3f8,#c8d4e8 62%,#b8964a)!important}.theme-grid button:nth-child(3) i{background:linear-gradient(145deg,#f7ecd4,#e1c692 56%,#c98f31)!important}.theme-grid button:nth-child(4) i{background:linear-gradient(145deg,#f0e5ef,#c9aed0 58%,#987aa8)!important}

@media (min-width:760px){
  .app{display:block;width:460px}.topbar{left:0}.pages{display:block}.bottom-nav{position:absolute;left:16px;right:16px;bottom:calc(8px + env(safe-area-inset-bottom));width:auto;height:52px;margin:0;grid-template-columns:repeat(5,1fr);grid-template-rows:1fr;border-radius:26px}.bottom-nav__chat{transform:translateY(-8px)}.page{padding-left:22px;padding-right:22px}.composer{left:14px;right:14px;bottom:calc(66px + env(safe-area-inset-bottom))}.page--chat{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.listening-bar{left:24px;right:24px;bottom:calc(120px + env(safe-area-inset-bottom))}.tide-scene{height:180px}
}




/* 2.0 detail polish: quieter glass, tactile controls, and the 1.0 clock language */
.icon-button{position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid color-mix(in srgb,var(--ink) 15%,var(--line));background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(var(--glass-rgb),.24));box-shadow:inset 0 1px rgba(255,255,255,.18),inset 0 -8px 16px rgba(0,0,0,.04),0 7px 20px color-mix(in srgb,var(--bg) 42%,transparent);color:transparent;font-size:0;transition:transform .26s cubic-bezier(.22,.8,.2,1),box-shadow .26s ease}.icon-button::before,.icon-button::after{content:"";position:absolute;left:12px;width:15px;height:1px;border-radius:2px;background:color-mix(in srgb,var(--ink) 82%,transparent);box-shadow:0 5px 0 color-mix(in srgb,var(--ink) 82%,transparent)}.icon-button::before{top:14px}.icon-button::after{top:24px;box-shadow:none;width:11px}.icon-button:hover{transform:translateY(-1px);box-shadow:inset 0 1px rgba(255,255,255,.22),0 10px 25px color-mix(in srgb,var(--bg) 52%,transparent)}.icon-button:active{transform:scale(.96)}
.clock-widget{display:inline-flex;align-items:center;justify-self:end;gap:8px;padding:7px 10px 7px 8px;border:1px solid color-mix(in srgb,var(--accent) 34%,transparent);border-radius:999px;background:linear-gradient(135deg,rgba(var(--glass-rgb),.30),rgba(var(--glass-rgb),.10));box-shadow:inset 0 1px rgba(255,255,255,.18),0 10px 28px color-mix(in srgb,var(--bg) 40%,transparent);backdrop-filter:blur(12px) saturate(1.12);-webkit-backdrop-filter:blur(12px) saturate(1.12)}.clock-face{width:34px;height:34px;flex:0 0 34px;border-color:color-mix(in srgb,var(--accent) 48%,transparent);background:radial-gradient(circle at 42% 38%,rgba(255,255,255,.16),transparent 58%),rgba(var(--glass-rgb),.16)}.clock-face::before{height:3px;top:2px;box-shadow:0 27px 0 var(--line)}.clock-face::after{width:3px;left:2px;box-shadow:27px 0 0 var(--line)}.clock-hour{height:9px;width:2px;background:color-mix(in srgb,var(--ink) 72%,var(--accent))}.clock-minute{height:12px;width:1.5px}.clock-second{height:13px;opacity:.82}.clock-face b{width:5px;height:5px;left:calc(50% - 2.5px);top:calc(50% - 2.5px);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 42%,transparent)}.clock-widget>span{align-self:auto;font-size:18px;line-height:1;font-variant-numeric:tabular-nums}.clock-widget>small{align-self:auto;margin-left:-46px;margin-top:27px;white-space:nowrap}
.context-tide,.session-sheet{background:linear-gradient(155deg,rgba(var(--glass-rgb),.58),rgba(var(--glass-rgb),.38))!important;border-color:color-mix(in srgb,var(--ink) 16%,var(--line))!important;backdrop-filter:blur(38px) saturate(1.3)!important;-webkit-backdrop-filter:blur(38px) saturate(1.3)!important;box-shadow:inset 0 1px rgba(255,255,255,.15),0 28px 85px rgba(0,0,0,.25)!important}
.chat-back,.chat-actions>button{position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--ink) 18%,var(--line))!important;background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(var(--glass-rgb),.20))!important;box-shadow:inset 0 1px rgba(255,255,255,.17),inset 0 -8px 14px rgba(0,0,0,.04),0 6px 18px rgba(0,0,0,.09);backdrop-filter:blur(18px) saturate(1.15)!important;transition:transform .22s ease,box-shadow .22s ease!important}.chat-back:hover,.chat-actions>button:hover{transform:translateY(-1px);box-shadow:inset 0 1px rgba(255,255,255,.2),0 9px 22px rgba(0,0,0,.13)}.chat-back:active,.chat-actions>button:active{transform:scale(.94)}
@media(prefers-reduced-motion:reduce){.sticker-sheet[open]{animation:none}.icon-button,.chat-back,.chat-actions>button{transition:none!important}}







@media(prefers-reduced-motion:reduce){.chat-actions>button{transition:none!important}}



/* Bottom navigation stays mobile-shaped inside the fixed 460px shell, even on a desktop viewport. */
@media(min-width:760px){.app .bottom-nav:before{left:4px;right:auto;top:5px;bottom:5px;width:calc((100% - 8px)/5);height:auto;transform:translate3d(calc(var(--nav-index)*100%),0,0)}}
















.endpoint-library{display:grid;gap:12px}.endpoint-library__head,.endpoint-editor__head{display:flex;align-items:center;justify-content:space-between}.endpoint-library__head>span,.endpoint-editor__head>span{color:var(--muted);font:8px system-ui,sans-serif;letter-spacing:.15em}.endpoint-library__head>button,.endpoint-editor__head>button{padding:6px 10px;border:0;background:none;color:var(--accent);font:8px "Noto Serif SC",serif}.endpoint-library__list{display:grid;gap:8px}.endpoint-library__empty{margin:8px 0!important;padding:22px 14px;border:1px dashed color-mix(in srgb,var(--line) 70%,transparent);border-radius:16px;color:var(--muted);text-align:center}.endpoint-library__empty[hidden]{display:none}.endpoint-card>button{width:100%;display:grid;grid-template-columns:61px minmax(0,1fr);gap:11px;padding:14px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,rgba(var(--glass-rgb),.25),rgba(var(--glass-rgb),.1));color:var(--ink);text-align:left;transition:transform .28s cubic-bezier(.16,1,.3,1),border-color .22s ease,background .22s ease}.endpoint-card>button:hover{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 6%,rgba(var(--glass-rgb),.16));transform:translateY(-1px)}.endpoint-card>button:active{transform:scale(.985)}.endpoint-card>button:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.endpoint-card>button>i{padding-top:3px;color:var(--muted);font:normal 6px system-ui,sans-serif;letter-spacing:.12em}.endpoint-card.is-default>button>i{color:var(--accent)}.endpoint-card>button>span{min-width:0;display:grid;gap:4px}.endpoint-card b{font:500 11px "Noto Serif SC",serif}.endpoint-card small{color:var(--muted);font:8px "Noto Serif SC",serif}.endpoint-card em{overflow:hidden;color:var(--muted);font:normal 7px ui-monospace,monospace;text-overflow:ellipsis;white-space:nowrap}.endpoint-card strong{grid-column:2;color:color-mix(in srgb,var(--muted) 82%,transparent);font:normal 7px ui-monospace,monospace}.endpoint-editor{display:grid;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);opacity:0;transform:translateY(10px);transition:opacity .28s ease,transform .4s cubic-bezier(.16,1,.3,1)}.endpoint-editor[hidden]{display:none}.endpoint-editor.is-visible{opacity:1;transform:none}.endpoint-editor>p{margin:15px 0!important}.endpoint-default{grid-template-columns:18px 1fr!important;align-items:start;gap:9px!important;margin:17px 0!important}.endpoint-default>input{width:15px!important;height:15px;margin-top:2px;padding:0!important;accent-color:var(--accent)}.endpoint-default>span{display:grid;gap:3px!important}.endpoint-default b{color:var(--ink);font:500 9px "Noto Serif SC",serif}.endpoint-default small{color:var(--muted);font:7px "Noto Serif SC",serif}.endpoint-editor footer{justify-content:space-between}.endpoint-editor footer button:first-child{color:var(--muted)}
@media(prefers-reduced-motion:reduce){.endpoint-card>button,.endpoint-editor{transition:none}}

.endpoint-card>button{position:relative;padding-right:42px}
.endpoint-card__check{position:absolute!important;right:14px;top:50%;width:20px;height:20px;display:grid!important;place-items:center!important;border:1px solid color-mix(in srgb,var(--ink) 16%,var(--line));border-radius:50%;color:transparent!important;font:11px/1 system-ui,sans-serif!important;transform:translateY(-50%) scale(.82);opacity:.5;transition:color .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease,transform .28s cubic-bezier(.16,1,.3,1),opacity .2s ease}
.endpoint-card.is-current>button{border-color:color-mix(in srgb,var(--accent) 56%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 10%,rgba(var(--glass-rgb),.24)),rgba(var(--glass-rgb),.12))}
.endpoint-card.is-current .endpoint-card__check{border-color:color-mix(in srgb,var(--accent) 72%,var(--line));background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)!important;box-shadow:0 0 16px color-mix(in srgb,var(--accent) 18%,transparent);transform:translateY(-50%) scale(1);opacity:1}
@media(prefers-reduced-motion:reduce){.endpoint-card__check{transition:none}}
.endpoint-card{position:relative}.endpoint-card>.endpoint-card__select{padding-right:76px}.endpoint-card>.endpoint-card__edit,.endpoint-card>.endpoint-card__delete{position:absolute;z-index:2;top:9px;width:25px!important;height:25px!important;display:grid!important;grid-template-columns:none!important;place-items:center;gap:0!important;padding:0!important;border:1px solid color-mix(in srgb,var(--line) 84%,transparent);border-radius:50%;background:rgba(var(--glass-rgb),.18);color:var(--muted);font:11px/1 serif;text-align:center;transform:none}.endpoint-card>.endpoint-card__edit{right:11px}.endpoint-card>.endpoint-card__delete{right:42px;font:13px/1 system-ui,sans-serif}.endpoint-card>.endpoint-card__edit:hover,.endpoint-card>.endpoint-card__delete:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,rgba(var(--glass-rgb),.18));transform:none}.endpoint-card>.endpoint-card__edit:active,.endpoint-card>.endpoint-card__delete:active{transform:scale(.94)}.endpoint-card>.endpoint-card__edit:focus-visible,.endpoint-card>.endpoint-card__delete:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.endpoint-card__check{right:14px;top:auto;bottom:11px;transform:scale(.82)}.endpoint-card.is-current .endpoint-card__check{transform:scale(1)}


@keyframes origin-aware-in{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}








/* Final type cascade: two text faces, with symbol fonts reserved for icons. */
html body .app .page h1,html body .app .page h2,html body .app .page h3,html body .app .page h4,html body .app .page blockquote{font-family:var(--font-display)!important}
html body .app .page p,html body .app .page input,html body .app .page textarea,html body .app .page select,html body .app .page button,html body .app .page label,html body .app .page dd,html body .app .page dt,html body .app .page li{font-family:var(--font-reading)!important}
html body .app .page small,html body .app .page time,html body .app .page .eyebrow,html body .app .page [class*="kicker"],html body .app .page [class*="-meta"],html body .app .page [class*="-label"]{font-family:var(--font-display)!important}
html body .app .bottom-nav button span,html body .app .bottom-nav__chat span,html body .app [aria-hidden="true"]{font-family:var(--font-symbol)!important}

/* Font fitting room — 2026-08-16. This isolated block can be removed as one unit. */
html body .app .topbar__identity strong,
html body .app time,html body .app [class*="clock"],html body .app [class*="date"],html body .app [class*="month"],html body .app [class*="count"],html body .app [class*="stats"] b{font-variant-numeric:tabular-nums lining-nums}



.message-action{
  align-self:flex-start;
  width:fit-content;
  max-width:56%;
  margin:3px 0 1px 15px;
  padding:2px 6px 3px;
  border:0;
  border-radius:7px 7px 7px 2px;
  background:rgba(var(--glass-rgb),.10);
  color:color-mix(in srgb,var(--ink) 58%,var(--muted));
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
  font-family:var(--font-body);
  font-size:9px;
  font-style:italic;
  line-height:1.4;
  letter-spacing:.025em;
  opacity:.72;
}
