@font-face{font-family:"Skald Runic";src:url("fonts/NotoSansRunic-Regular.ttf") format("truetype");font-display:swap;unicode-range:U+16A0-16FF}
:root{
  --rune:"Skald Runic","Segoe UI Historic","Noto Sans Runic","Apple Symbols","Segoe UI Symbol",serif;
  --ink:#070b16;--ink2:#0b1020;--panel:rgba(18,26,48,.62);--line:rgba(160,210,255,.14);
  --ice:#9fe3ff;--ice2:#5cc8ff;--frost:#e8f6ff;--gold:#e8c162;--gold2:#ffdf8a;
  --aur1:#36e2c4;--aur2:#8a6cff;--aur3:#3fa9ff;--yt:#ff5a5f;--tt:#3ff0e6;--tt2:#ff3e8a;
  --muted:#93a4c3;--r:18px;--ease:cubic-bezier(.2,.8,.2,1);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(1200px 700px at 70% -10%,#16204a 0%,var(--ink2) 45%,var(--ink) 100%) fixed;color:var(--frost);
  font:15px/1.5 "Segoe UI",Inter,"Skald Runic",system-ui,-apple-system,Roboto,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--ice)}
code{background:rgba(159,227,255,.1);padding:1px 6px;border-radius:6px;color:var(--ice);font-size:.9em}
#sky{position:fixed;inset:0;z-index:0;pointer-events:none}
.aurora{position:fixed;inset:-20% -10% auto;height:75vh;z-index:0;pointer-events:none;filter:blur(60px);opacity:.55;mix-blend-mode:screen}
.aurora span{position:absolute;width:60%;height:60%;border-radius:50%;animation:drift 18s var(--ease) infinite alternate}
.aurora span:nth-child(1){left:0;top:10%;background:radial-gradient(closest-side,var(--aur1),transparent)}
.aurora span:nth-child(2){left:30%;top:0;background:radial-gradient(closest-side,var(--aur2),transparent);animation-duration:24s;animation-delay:-6s}
.aurora span:nth-child(3){left:55%;top:20%;background:radial-gradient(closest-side,var(--aur3),transparent);animation-duration:21s;animation-delay:-11s}
@keyframes drift{0%{transform:translate(0,0) scale(1) rotate(0)}50%{transform:translate(8%,6%) scale(1.25) rotate(12deg)}100%{transform:translate(-6%,10%) scale(.9) rotate(-8deg)}}
.runes-bg{position:fixed;bottom:-2vh;left:0;right:0;z-index:0;pointer-events:none;font-size:9vw;letter-spacing:.3em;white-space:nowrap;color:rgba(159,227,255,.035);
  animation:runeScroll 120s linear infinite}
@keyframes runeScroll{to{transform:translateX(-50%)}}

.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:18px;padding:12px clamp(14px,3vw,36px);
  background:linear-gradient(180deg,rgba(7,11,22,.9),rgba(7,11,22,.55));backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--frost)}
.brand img{border-radius:10px;box-shadow:0 0 18px rgba(232,193,98,.35);animation:breathe 4s ease-in-out infinite}
.brand b{display:block;font-size:17px;letter-spacing:.06em}
.brand small{display:block;color:var(--gold);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
@keyframes breathe{50%{box-shadow:0 0 30px rgba(159,227,255,.5)}}
.tabs{position:relative;display:flex;gap:4px;margin-left:auto;padding:4px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{position:relative;z-index:1;border:0;background:none;color:var(--muted);padding:8px 14px;border-radius:10px;font:600 13px/1 inherit;cursor:pointer;white-space:nowrap;transition:color .3s}
.tabs button i{font-style:normal;margin-right:6px;color:var(--gold);opacity:.7;transition:.3s}
.tabs button:hover{color:var(--frost)}
.tabs button.active{color:#06101e}
.tabs button.active i{color:#06101e;opacity:1}
.tab-ink{position:absolute;z-index:0;top:4px;height:calc(100% - 8px);border-radius:10px;background:linear-gradient(135deg,var(--ice),var(--gold2));
  box-shadow:0 0 20px rgba(159,227,255,.45);transition:left .45s var(--ease),width .45s var(--ease)}
.clock{font:600 12px/1.2 ui-monospace,Consolas,monospace;color:var(--ice);padding:8px 10px;border:1px solid var(--line);border-radius:10px;white-space:nowrap}

main{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:26px clamp(14px,3vw,36px) 80px}
.view{display:none}
.view.active{display:block;animation:viewIn .6s var(--ease)}
@keyframes viewIn{from{opacity:0;transform:translateY(14px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
.card{position:relative;border-radius:var(--r);border:1px solid var(--line);background:var(--panel);padding:20px;margin-bottom:18px;
  backdrop-filter:blur(10px);transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.view.active .card{animation:cardIn .7s var(--ease) both;animation-delay:calc(var(--i,0) * 60ms)}
@keyframes cardIn{from{opacity:0;transform:translateY(18px)}}
.card:hover{border-color:rgba(159,227,255,.35);box-shadow:0 10px 40px -10px rgba(92,200,255,.35)}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(130deg,rgba(232,193,98,.5),transparent 30%,transparent 70%,rgba(159,227,255,.5));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.5}
.card h3{margin:0 0 14px;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);display:flex;justify-content:space-between;align-items:center}
.mini-link{font-size:12px;letter-spacing:0;text-transform:none;text-decoration:none}
.muted{color:var(--muted)}
.foot{color:var(--muted);font-size:12.5px;margin:12px 0 0}
.eyebrow{margin:0 0 6px;color:var(--ice);font-size:12px;letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:center;gap:8px}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--aur1);box-shadow:0 0 0 0 rgba(54,226,196,.7);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(54,226,196,0)}100%{box-shadow:0 0 0 0 rgba(54,226,196,0)}}

.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:center;padding:clamp(22px,4vw,44px);overflow:hidden}
.hero h1{margin:4px 0 10px;font-size:clamp(34px,5.4vw,64px);line-height:1.02;letter-spacing:.01em}
.hero h1 em{font-style:normal;font-size:.48em;color:var(--ice);letter-spacing:.18em;text-transform:uppercase}
.shine{background:linear-gradient(90deg,var(--gold2),#fff 30%,var(--ice) 55%,var(--gold) 80%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 7s linear infinite}
@keyframes shine{to{background-position:-250% 0}}
.tagline{color:#c9d7ee;max-width:56ch;font-size:16px}
.hero-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.chip{padding:6px 12px;border-radius:999px;font-size:12.5px;border:1px solid var(--line);background:rgba(255,255,255,.04)}
.chip.ice{border-color:rgba(159,227,255,.35)}.chip.gold{border-color:rgba(232,193,98,.45);color:var(--gold2)}
.hero-sigil{position:relative;aspect-ratio:1;max-width:300px;justify-self:center;width:100%;display:grid;place-items:center}
.hero-sigil img{width:52%;border-radius:22%;box-shadow:0 0 60px rgba(159,227,255,.35);animation:float 6s ease-in-out infinite;position:relative;z-index:2}
.ring{position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(159,227,255,.35)}
.ring.r1{animation:spin 40s linear infinite}
.ring.r2{inset:10%;border:1px solid rgba(232,193,98,.35);border-left-color:transparent;border-right-color:transparent;animation:spin 18s linear infinite reverse}
.ring.r3{inset:-6%;border:2px dotted rgba(138,108,255,.3);animation:spin 70s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes float{50%{transform:translateY(-10px) rotate(-2deg)}}

.live-today{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.live-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:rgba(255,90,95,.15);color:#ffb3b5;font-weight:700;font-size:12px;letter-spacing:.14em}
.live-badge::before{content:"";width:8px;height:8px;border-radius:50%;background:#ff5a5f;animation:blink 1.2s infinite}
@keyframes blink{50%{opacity:.2}}

.sec-h{display:flex;align-items:baseline;gap:10px;font-size:15px;letter-spacing:.16em;text-transform:uppercase;margin:24px 0 12px;color:var(--frost)}
.sec-h i{font-style:normal;color:var(--gold);text-shadow:0 0 12px rgba(232,193,98,.8)}
.sec-h small{color:var(--muted);letter-spacing:.04em;text-transform:none;font-size:12px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{display:flex;flex-direction:column;gap:4px;margin:0;overflow:hidden}
.kpi::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;filter:blur(30px);opacity:.35}
.kpi.yt::after{background:var(--yt)}.kpi.tt::after{background:linear-gradient(var(--tt),var(--tt2))}
.kpi:hover{transform:translateY(-4px)}
.kpi-l{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kpi-v{font-size:clamp(30px,3.6vw,44px);line-height:1.1;font-weight:800;letter-spacing:-.01em;background:linear-gradient(180deg,#fff,var(--ice));-webkit-background-clip:text;background-clip:text;color:transparent}
.kpi-v small{font-size:.5em}
.kpi.big .kpi-v{font-size:clamp(36px,4.4vw,56px)}
.kpi-v.pending{font-size:22px;color:var(--muted);-webkit-text-fill-color:var(--muted)}
.kpi-s{font-size:12.5px;color:var(--muted)}
.kpi.yt{border-top:2px solid rgba(255,90,95,.6)}.kpi.tt{border-top:2px solid rgba(63,240,230,.6)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.grid2 .card{margin:0}

.next-up{display:flex;flex-direction:column;gap:10px}
.nu{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--line)}
.nu time{font:700 13px ui-monospace,Consolas,monospace;color:var(--gold2);min-width:92px}
.nu .t{flex:1;font-weight:600}
.count{font:600 12px ui-monospace,Consolas,monospace;color:var(--ice)}
.todo-mini{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.todo-mini li{display:flex;gap:10px;font-size:14px;color:#cfdcf0}
.todo-mini li::before{content:"ᛏ";color:var(--gold)}
.todo-mini li.done{opacity:.45;text-decoration:line-through}

.plat-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.plat-head h2{margin:0;font-size:clamp(24px,3vw,34px)}
.plat-head.yt{background:linear-gradient(120deg,rgba(255,90,95,.14),var(--panel) 50%)}
.plat-head.tt{background:linear-gradient(120deg,rgba(63,240,230,.12),rgba(255,62,138,.08) 40%,var(--panel) 70%)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:12px;border:1px solid var(--line);font-weight:700;text-decoration:none;color:var(--frost);cursor:pointer;
  background:rgba(255,255,255,.06);transition:transform .25s var(--ease),box-shadow .25s;font-size:14px}
.btn:hover{transform:translateY(-2px)}
.btn.yt{background:linear-gradient(135deg,#ff5a5f,#c2185b);border:0;box-shadow:0 6px 24px -6px rgba(255,90,95,.6)}
.btn.tt{background:linear-gradient(135deg,#1fd6cc,#ff3e8a);border:0;color:#fff;box-shadow:0 6px 24px -6px rgba(63,240,230,.5)}
.btn.gold{background:linear-gradient(135deg,var(--gold2),var(--gold));color:#1a1206;border:0;box-shadow:0 6px 24px -6px rgba(232,193,98,.6)}

.bars{display:flex;flex-direction:column;gap:12px}
.bar-row{display:grid;grid-template-columns:1fr auto;gap:4px 10px;font-size:14px}
.bar-row b{font-variant-numeric:tabular-nums;color:var(--ice)}
.bar{grid-column:1/-1;height:10px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}
.bar span{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--aur1),var(--ice2),var(--aur2));transition:width 1.4s var(--ease);box-shadow:0 0 14px rgba(92,200,255,.6)}
.latest{display:grid;grid-template-columns:auto 1fr;gap:14px 20px;align-items:center}
.latest-t{grid-column:1/-1;margin:0;font-weight:700;font-size:16px}
.ring-stat{--p:0;width:120px;height:120px;border-radius:50%;display:grid;place-content:center;text-align:center;
  background:radial-gradient(closest-side,#0e1630 79%,transparent 80% 100%),conic-gradient(var(--gold2) calc(var(--pp,0)*1%),rgba(255,255,255,.08) 0);transition:--pp 1.5s}
.ring-stat span{font-size:24px;font-weight:800}.ring-stat small{color:var(--muted);font-size:11px}
@property --pp{syntax:"<number>";inherits:false;initial-value:0}
.kv{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.kv li{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding-bottom:6px}
.kv span{color:var(--muted)}
.stack{display:flex;height:16px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.05)}
.stack span{height:100%;width:0;transition:width 1.2s var(--ease)}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:13px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}
.cadence{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.slot{text-align:center;padding:14px 8px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.03);position:relative;overflow:hidden}
.slot b{display:block;font-size:22px;font-family:ui-monospace,Consolas,monospace;color:var(--gold2)}
.slot small{color:var(--muted)}
.slot.now{border-color:var(--ice);box-shadow:inset 0 0 24px rgba(159,227,255,.25)}
.slot.now::after{content:"next";position:absolute;top:6px;right:8px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ice)}
.list{display:flex;flex-direction:column;gap:8px}
.row{display:grid;grid-template-columns:110px 84px 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid transparent;transition:.25s}
.row:hover{border-color:var(--line);background:rgba(159,227,255,.06);transform:translateX(4px)}
.row .d{color:var(--muted);font-size:13px}.row .tm{font-family:ui-monospace,Consolas,monospace;color:var(--gold2)}
.row .ttl{font-weight:600}
.pill{font-size:11.5px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.pill.live{background:rgba(255,90,95,.18);border-color:rgba(255,90,95,.5);color:#ffc0c2}
.pill.sched{background:rgba(159,227,255,.1);border-color:rgba(159,227,255,.35);color:var(--ice)}
.pill.tt{background:rgba(63,240,230,.1);border-color:rgba(63,240,230,.4);color:#a9fff9}
.rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.rules li{display:flex;gap:12px;align-items:flex-start}.rules i{font-style:normal;color:var(--gold);font-size:18px;line-height:1.2}

.filters{display:flex;gap:6px;flex-wrap:wrap}
.filters button{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--muted);padding:8px 14px;border-radius:10px;cursor:pointer;font:600 13px inherit;transition:.25s}
.filters button.on{background:var(--ice);color:#06101e;border-color:transparent}
.timeline{position:relative;padding-left:28px}
.timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--gold),var(--ice),var(--aur2));border-radius:2px;box-shadow:0 0 12px rgba(159,227,255,.6)}
.day-h{margin:18px 0 10px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold2)}
.tl{position:relative;display:grid;grid-template-columns:90px 1fr auto;gap:16px;align-items:center}
.tl::before{content:"ᛟ";position:absolute;left:-29px;top:50%;transform:translateY(-50%);width:22px;height:22px;display:grid;place-items:center;font-size:12px;border-radius:50%;background:#0e1630;border:1px solid var(--gold);color:var(--gold);box-shadow:0 0 12px rgba(232,193,98,.6)}
.tl time{font:700 18px ui-monospace,Consolas,monospace;color:var(--gold2)}
.tl time small{display:block;font-size:11px;color:var(--muted);font-weight:500}
.tl h4{margin:0 0 4px;font-size:17px}
.tl .ids{display:flex;gap:8px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.tl .ids code{font-size:12px}
.tl .plats{display:flex;flex-direction:column;gap:6px;align-items:flex-end}

.progress-wrap{display:flex;align-items:center;gap:12px;min-width:220px}
.progress{flex:1;height:10px;border-radius:999px;background:rgba(255,255,255,.06);overflow:hidden}
.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--ice));transition:width .6s var(--ease)}
.todo{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.todo li{display:flex;align-items:center;gap:16px;padding:16px 18px;cursor:pointer;user-select:none}
.todo .box{flex:none;width:28px;height:28px;border-radius:8px;border:2px solid var(--gold);display:grid;place-items:center;transition:.3s;font-size:16px;color:transparent}
.todo li.done .box{background:var(--gold);color:#1a1206;transform:rotate(-8deg) scale(1.05);box-shadow:0 0 16px rgba(232,193,98,.6)}
.todo .txt{flex:1}
.todo li.done .txt{opacity:.5;text-decoration:line-through}
.tag{font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.prio{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border-radius:6px;white-space:nowrap}
.prio.high{background:rgba(255,90,95,.18);color:#ffb3b5}.prio.optional{background:rgba(255,255,255,.07);color:var(--muted)}
.prio.standing{background:rgba(159,227,255,.12);color:var(--ice)}.prio.next{background:rgba(138,108,255,.2);color:#cbbcff}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.step{margin:0}.step .n{position:absolute;top:14px;right:16px;font-size:44px;font-weight:900;color:rgba(232,193,98,.18)}
.step h3{text-transform:none;letter-spacing:.02em;font-size:17px;color:var(--frost)}
.step p{color:#c4d2ea;margin:0;font-size:14px}

.foot-bar{position:relative;z-index:1;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:16px clamp(14px,3vw,36px);color:var(--muted);font-size:12px;border-top:1px solid var(--line)}
#netState.off{color:var(--gold)}

@media (max-width:980px){.kpis{grid-template-columns:repeat(2,1fr)}.steps{grid-template-columns:1fr 1fr}.hero{grid-template-columns:1fr}.hero-sigil{max-width:200px;order:-1}}
@media (max-width:760px){
  .topbar{flex-wrap:wrap;gap:10px}.tabs{order:3;width:100%;margin:0}.clock{margin-left:auto}
  .grid2,.steps{grid-template-columns:1fr}
  .row{grid-template-columns:80px 1fr;}.row .tm{grid-row:2}.row .ttl{grid-column:2}
  .tl{grid-template-columns:70px 1fr}.tl .plats{grid-column:1/-1;flex-direction:row;align-items:center;flex-wrap:wrap}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.runes-bg,.tabs button i,.sec-h i,.rules i,.tl::before,.todo-mini li::before,.slot::after{font-family:var(--rune)}

/* ===== Yggdrasil gate v7 — cinematic luminous World Tree ===== */
body.locked #hall-shell{display:none!important}
body.locked .topbar,body.locked main,body.locked .foot-bar{visibility:hidden}
body.locked{overflow:hidden}
.yg-gate{--px:0;--py:0;position:fixed;inset:0;z-index:100;overflow:hidden;contain:layout paint;background:#03050b;color:#f4f8ff;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:clamp(12px,3vh,34px) 14px clamp(14px,4vh,40px);
  font-family:"Segoe UI",Inter,system-ui,sans-serif}
.yg-gate.yg-out{animation:ygFade .9s var(--ease) forwards;pointer-events:none}
@keyframes ygFade{to{opacity:0;transform:scale(1.03)}}
.yg-scene{position:absolute;inset:0;pointer-events:none}
.yg-scene>*{position:absolute;inset:0}
.yg-void{background:
  radial-gradient(ellipse 70% 50% at 50% 32%,rgba(225,238,255,.20),transparent 62%),
  radial-gradient(ellipse 60% 30% at 50% 92%,rgba(150,185,230,.16),transparent 70%),
  radial-gradient(ellipse 50% 40% at 15% 10%,rgba(80,70,160,.18),transparent 70%),
  radial-gradient(ellipse 50% 40% at 85% 12%,rgba(40,120,170,.16),transparent 70%),
  linear-gradient(180deg,#0a1226 0%,#060a17 45%,#020308 100%)}
/* starfield — three parallax depths */
.yg-stars{translate:calc(var(--px)*-10px) calc(var(--py)*-6px);transition:translate .6s var(--ease);will-change:translate}
.yg-st{position:absolute;left:0;top:0;width:1px;height:1px;border-radius:50%;background:transparent}
.yg-st1{animation:ygTw 6s ease-in-out infinite alternate}
.yg-st2{width:1.6px;height:1.6px;animation:ygTw 4.5s ease-in-out -2s infinite alternate;translate:calc(var(--px)*-14px) calc(var(--py)*-9px)}
.yg-st3{width:2.4px;height:2.4px;animation:ygTw 3.2s ease-in-out -1s infinite alternate;translate:calc(var(--px)*-22px) calc(var(--py)*-14px)}
@keyframes ygTw{from{opacity:1}to{opacity:.35}}
/* faint aurora veils */
.yg-aurora span{position:absolute;top:-10%;height:55%;width:60%;filter:blur(50px);opacity:.28;mix-blend-mode:screen;animation:ygAur 22s ease-in-out infinite alternate;will-change:transform}
.yg-aurora span:nth-child(1){left:-10%;background:linear-gradient(120deg,transparent,rgba(110,200,255,.55),transparent)}
.yg-aurora span:nth-child(2){right:-10%;background:linear-gradient(60deg,transparent,rgba(160,130,255,.45),transparent);animation-delay:-9s}
@keyframes ygAur{to{transform:translateX(8%) skewX(-10deg) scaleY(1.2)}}
/* volumetric god-rays */
.yg-rays span{position:absolute;left:50%;top:-30%;width:180vmax;height:180vmax;translate:-50% 0;border-radius:50%;
  background:repeating-conic-gradient(from 0deg at 50% 50%,rgba(255,255,255,.075) 0deg 3deg,transparent 3deg 14deg);
  -webkit-mask:radial-gradient(circle at 50% 50%,#000 0,rgba(0,0,0,.5) 18%,transparent 42%);mask:radial-gradient(circle at 50% 50%,#000 0,rgba(0,0,0,.5) 18%,transparent 42%);
  mix-blend-mode:screen;opacity:.85}
.yg-rays span:nth-child(2){opacity:.5;
  background:repeating-conic-gradient(from 7deg at 50% 50%,rgba(220,236,255,.07) 0deg 5deg,transparent 5deg 23deg)}
.yg-rays span:nth-child(3){opacity:.8;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.22),transparent 28%)}
@keyframes ygRay{to{rotate:360deg}}
@keyframes ygRayPulse{50%{opacity:.55}}
/* the tree */
.yg-stage{translate:calc(var(--px)*-6px) calc(var(--py)*-4px);transition:translate .8s var(--ease);will-change:translate}
.yg-tree{position:absolute;inset:0;width:100%;height:100%;
  contain:strict;transform:translateZ(0);
  animation:ygRise 1.3s cubic-bezier(.16,.8,.2,1) both}
/* v11: the tree is split into stacked SVG layers. Static layers (roots, tree) rasterise once;
   only the small "veins" (rune text + root pulses) and "spark" (heart + realms) layers repaint,
   and the glow layer breathes on the compositor (opacity on the <svg> element itself). */
.yg-l-glow{animation:ygRise 1.3s cubic-bezier(.16,.8,.2,1) both,ygGlow 8s ease-in-out 1.3s infinite;will-change:opacity,transform}
@keyframes ygGlow{0%,100%{opacity:1}50%{opacity:.62}}
@keyframes ygRise{from{opacity:0;transform:translateZ(0) scale(1.04)}}
.yg-halo,.yg-canopy-glow{animation:none}
.yg-shafts{opacity:.8}
@keyframes ygBreathe{0%,100%{opacity:.6}50%{opacity:1}}
/* v8: sway on the huge canopy/twig groups removed — it re-rasterised ~1000 paths every frame */
.yg-canopy,.yg-twigs{animation:none}
@keyframes ygSway{0%,100%{transform:rotate(-.35deg)}50%{transform:rotate(.45deg)}}
@keyframes ygSway2{0%,100%{transform:rotate(.25deg) translateY(0)}50%{transform:rotate(-.3deg) translateY(-2px)}}
.yg-leaves{opacity:.85}
.yg-leaves-1{opacity:.8}
.yg-leaves-2{opacity:.9}
@keyframes ygLeaf{0%,100%{opacity:.55}50%{opacity:1}}
.yg-runes{opacity:.75;animation:ygRune 6s ease-in-out infinite}
@keyframes ygRune{50%{opacity:.4}}
.yg-pulses use{stroke-dasharray:22 1400;stroke-dashoffset:0;opacity:.95;animation:ygPulseRun var(--pd,6s) linear var(--pl,0s) infinite}
@keyframes ygPulseRun{from{stroke-dashoffset:40}to{stroke-dashoffset:-760}}
.yg-heart{animation:ygHeart 3.6s ease-in-out infinite;transform-box:fill-box}
@keyframes ygHeart{50%{opacity:.55}}
.yg-realms g{animation:ygRealm var(--rd,5s) ease-in-out var(--rl,0s) infinite}
@keyframes ygRealm{0%,100%{opacity:.35}50%{opacity:1}}
/* rising motes through branches + drifting embers */
.yg-motes i,.yg-embers i{position:absolute;left:var(--x);top:var(--y,100%);width:var(--s);height:var(--s);border-radius:50%;
  background:#fff;box-shadow:0 0 8px 2px rgba(220,238,255,.8);opacity:0;animation:ygMote var(--d) linear var(--l) infinite}
.yg-embers i{top:auto;bottom:4%;background:#ffe2a3;box-shadow:0 0 10px 3px rgba(255,200,110,.7);animation-name:ygEmber}
@keyframes ygMote{0%{opacity:0;transform:translate(0,0)}15%{opacity:.9}80%{opacity:.6}100%{opacity:0;transform:translate(var(--dx),-70vh)}}
@keyframes ygEmber{0%{opacity:0;transform:translate(0,0) scale(1)}10%{opacity:1}60%{opacity:.7}100%{opacity:0;transform:translate(var(--dx),-95vh) scale(.3)}}
/* mist at the roots */
.yg-mist{top:auto;height:38%;bottom:-6%;left:-20%;right:-20%;filter:blur(30px);
  background:radial-gradient(ellipse 40% 60% at 30% 60%,rgba(225,236,255,.30),transparent 70%),radial-gradient(ellipse 35% 55% at 72% 55%,rgba(200,220,250,.24),transparent 70%);
  animation:ygMist 26s ease-in-out infinite alternate}
.yg-mist-b{height:28%;bottom:2%;opacity:.7;animation-duration:34s;animation-direction:alternate-reverse;
  background:radial-gradient(ellipse 30% 50% at 55% 60%,rgba(240,246,255,.26),transparent 70%),radial-gradient(ellipse 30% 50% at 15% 50%,rgba(170,200,240,.2),transparent 70%)}
.yg-mist-c{height:20%;bottom:-4%;opacity:.9;filter:blur(18px);animation-duration:18s;
  background:linear-gradient(0deg,rgba(214,228,250,.30),transparent)}
@keyframes ygMist{to{transform:translateX(9%) translateY(-10px)}}
.yg-vignette{background:radial-gradient(ellipse 85% 80% at 50% 45%,transparent 55%,rgba(0,0,0,.65) 100%)}
.yg-dawn{background:radial-gradient(circle at 50% 45%,#fff,rgba(235,244,255,.9) 40%,rgba(200,220,255,.6));animation:ygDawn 1.1s cubic-bezier(.3,.6,.2,1) forwards}
@keyframes ygDawn{to{opacity:0;visibility:hidden}}
/* crest */
.yg-crest{position:absolute;filter:drop-shadow(0 2px 10px rgba(3,6,16,.9));top:clamp(14px,4vh,40px);left:0;right:0;z-index:2;text-align:center;pointer-events:none;
  animation:ygUp .9s var(--ease) .25s both}
.yg-crest-runes{display:block;font-family:var(--rune);font-size:12px;letter-spacing:.7em;color:rgba(255,224,160,.85);text-shadow:0 0 10px rgba(255,200,110,.8)}
.yg-crest-name{display:block;margin-top:4px;font:300 clamp(22px,3.4vw,40px)/1.1 "Cormorant Garamond","Palatino Linotype",Georgia,serif;letter-spacing:.42em;text-indent:.42em;text-transform:uppercase;
  color:#fff;text-shadow:0 0 18px rgba(255,255,255,.8),0 0 50px rgba(170,210,255,.6)}
.yg-crest-sub{display:block;margin-top:6px;font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:rgba(205,222,245,.7)}
@keyframes ygUp{from{opacity:0;transform:translateY(-12px)}}
/* Ymir's glass panel */
.yg-panel{position:relative;z-index:3;width:min(500px,94vw);padding:24px 28px 18px;border-radius:24px;text-align:center;
  background:linear-gradient(165deg,rgba(40,52,82,.9),rgba(14,22,44,.86) 38%,rgba(6,10,22,.92));
  border:1px solid rgba(255,255,255,.2);
  box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 90px rgba(200,230,255,.16),inset 0 1px 0 rgba(255,255,255,.3),inset 0 0 40px rgba(160,200,255,.06);
  animation:ygPanelIn .75s var(--ease) .3s both}
@keyframes ygPanelIn{from{opacity:0;transform:translateY(34px) scale(.98)}}
.yg-panel-edge{position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(120deg,rgba(255,225,160,.75),rgba(255,255,255,.05) 30%,rgba(159,227,255,.6) 60%,rgba(255,255,255,.05) 80%,rgba(255,225,160,.6));
  background-size:300% 300%;animation:ygEdge 9s linear infinite;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
@keyframes ygEdge{to{background-position:300% 0}}
.yg-ymir{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:12px}
.yg-avatar{position:relative;width:64px;height:64px;flex:none}
.yg-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:1px solid rgba(255,230,170,.6);
  box-shadow:0 0 0 3px rgba(10,16,32,.8),0 0 26px rgba(255,220,150,.45),0 0 60px rgba(160,210,255,.35)}
.yg-avatar-ring{position:absolute;inset:-7px;border-radius:50%;border:1px dashed rgba(255,226,160,.55);animation:ygSpin 26s linear infinite}
.yg-ring2{inset:-13px;border:1px solid transparent;border-top-color:rgba(159,227,255,.7);border-bottom-color:rgba(159,227,255,.25);animation-duration:7s;animation-direction:reverse}
@keyframes ygSpin{to{transform:rotate(360deg)}}
.yg-ymir-text{text-align:left}
.yg-from{margin:0;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:rgba(214,230,250,.7)}
.yg-name{margin:1px 0 0;font:600 28px/1.05 "Cormorant Garamond","Palatino Linotype",Georgia,serif;letter-spacing:.14em;
  background:linear-gradient(100deg,#fff 10%,#ffe3a6 45%,#bfe9ff 80%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 10px rgba(255,220,150,.35))}
.yg-role{margin:3px 0 0;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,226,170,.7)}
.yg-panel h1{margin:2px 0 10px;font:500 clamp(30px,5.2vw,42px)/1.1 "Cormorant Garamond","Palatino Linotype",Georgia,serif;letter-spacing:.04em;color:#fbfdff;
  text-shadow:0 0 24px rgba(255,255,255,.45),0 0 60px rgba(160,210,255,.35)}
.yg-welcome{color:rgba(222,233,248,.92);font-size:14.2px;line-height:1.62}
.yg-welcome p{margin:0 0 8px}
.yg-welcome b{color:#fff;font-weight:600}
.yg-sign{font-style:italic;color:rgba(255,236,196,.9)}
.yg-sign span{white-space:nowrap;font-style:normal;color:rgba(255,220,150,.85);font-size:12.5px;letter-spacing:.08em}
.yg-divider{display:flex;align-items:center;gap:12px;margin:12px 0 12px;color:rgba(255,220,150,.75);font-family:var(--rune);font-size:12px;letter-spacing:.5em}
.yg-divider i{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(255,220,150,.6),rgba(159,227,255,.4),transparent)}
.yg-panel label{display:block;text-align:left;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(210,226,245,.7);margin-bottom:8px}
.yg-row{display:flex;gap:10px;flex-wrap:wrap}
.yg-field{position:relative;flex:1 1 180px}
.yg-field-rune{position:absolute;left:14px;top:50%;translate:0 -50%;font-family:var(--rune);color:rgba(255,220,150,.85);text-shadow:0 0 8px rgba(255,200,110,.8);pointer-events:none}
.yg-field input{width:100%;border:1px solid rgba(255,255,255,.25);background:rgba(2,6,16,.5);color:#f7fbff;border-radius:14px;
  padding:13px 14px 13px 38px;font:15px/1.2 inherit;letter-spacing:.2em;outline:none;transition:border-color .25s,box-shadow .25s}
.yg-field input::placeholder{color:rgba(200,220,240,.42);letter-spacing:.08em}
.yg-field input:focus{border-color:rgba(255,236,190,.75);box-shadow:0 0 0 3px rgba(255,226,160,.14),0 0 30px rgba(200,230,255,.28)}
.yg-enter{position:relative;overflow:hidden;flex:0 0 auto;border:0;border-radius:14px;padding:13px 20px;cursor:pointer;color:#0a1220;
  font:700 13px/1.2 inherit;letter-spacing:.08em;background:linear-gradient(135deg,#ffffff,#e8f4ff 45%,#ffe7b0);
  box-shadow:0 0 28px rgba(255,240,200,.4),inset 0 -2px 0 rgba(0,0,0,.08);transition:transform .2s,box-shadow .2s}
.yg-enter::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.9) 50%,transparent 70%);background-size:250% 100%;animation:shine 3.8s ease-in-out infinite}
.yg-enter span{position:relative;z-index:1}
.yg-enter:hover{transform:translateY(-1px);box-shadow:0 0 46px rgba(255,240,200,.65)}
.yg-err{margin:10px 0 0;color:#ffc6ca;font-size:13px;text-shadow:0 0 10px rgba(255,90,100,.4)}
.yg-foot{margin:12px 0 0;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(180,200,225,.55)}
body:not(.locked) .yg-gate{display:none}
/* v8 particle cap (HTML already trimmed; belt and braces) */
.yg-motes i:nth-child(n+12),.yg-embers i:nth-child(n+8){display:none}
@media (pointer:coarse),(max-width:700px){.yg-aurora span{filter:blur(30px)}.yg-mist{filter:blur(18px)}.yg-motes i:nth-child(n+8){display:none}.yg-embers i:nth-child(n+5){display:none}.yg-rays span:nth-child(2){display:none}}
.yg-panel.shake,#yg-form.shake{animation:ygShake .4s ease}
@keyframes ygShake{25%{transform:translateX(-6px)}50%{transform:translateX(6px)}75%{transform:translateX(-4px)}}
@media (max-height:820px) and (min-width:700px){.yg-welcome p:nth-child(2){display:none}.yg-panel{padding:18px 24px 14px}}
@media (max-width:640px){
  .yg-tree{left:-35%;width:170%;top:-4%;height:80%}
  .yg-panel{padding:18px 16px 14px;border-radius:20px}
  .yg-avatar{width:52px;height:52px}
  .yg-name{font-size:24px}
  .yg-welcome{font-size:13.4px}
  .yg-welcome p:nth-child(2){display:none}
  .yg-crest-sub{display:none}
  .yg-enter{flex:1 1 100%}
}
@media (prefers-reduced-motion:reduce){
  .yg-gate *,.yg-gate *::before,.yg-gate *::after{animation:none!important;transition:none!important}
  .yg-dawn,.yg-motes,.yg-embers,.yg-pulses,.yg-rays,.yg-aurora{display:none}
  .yg-stars,.yg-stage{translate:none}
}
.yg-st1{box-shadow:44.03vw 37.92vh rgba(200,225,255,0.49),64.23vw 40.33vh rgba(220,236,255,0.70),64.45vw 13.84vh rgba(255,240,210,0.67),34.62vw 58.29vh rgba(220,236,255,0.66),26.57vw 6.36vh rgba(220,236,255,0.58),6.28vw 41.83vh rgba(200,225,255,0.63),52.53vw 38.44vh rgba(220,236,255,0.39),39.58vw 57.34vh rgba(200,225,255,0.58),5.10vw 61.52vh rgba(255,255,255,0.56),27.67vw 33.01vh rgba(220,236,255,0.59),70.74vw 63.73vh rgba(255,240,210,0.53),72.59vw 28.11vh rgba(255,240,210,0.71),48.56vw 14.95vh rgba(220,236,255,0.59),42.37vw 24.07vh rgba(220,236,255,0.69),54.77vw 19.67vh rgba(220,236,255,0.73),23.73vw 26.14vh rgba(255,255,255,0.53),18.59vw 78.26vh rgba(255,240,210,0.55),28.09vw 17.93vh rgba(255,240,210,0.51),21.20vw 36.25vh rgba(255,255,255,0.54),91.65vw 38.08vh rgba(255,255,255,0.65),9.29vw 90.71vh rgba(255,255,255,0.69),1.30vw 86.71vh rgba(220,236,255,0.65),77.28vw 49.96vh rgba(200,225,255,0.57),22.65vw 65.79vh rgba(255,255,255,0.60),26.01vw 83.75vh rgba(200,225,255,0.73),58.62vw 29.66vh rgba(200,225,255,0.64),5.05vw 23.93vh rgba(220,236,255,0.66),15.62vw 90.40vh rgba(255,255,255,0.61),64.63vw 94.21vh rgba(255,255,255,0.45),73.97vw 22.24vh rgba(220,236,255,0.71),19.50vw 75.08vh rgba(255,240,210,0.48),44.94vw 45.05vh rgba(220,236,255,0.47),7.89vw 69.22vh rgba(255,255,255,0.53),70.30vw 7.46vh rgba(200,225,255,0.72),14.07vw 66.02vh rgba(255,240,210,0.70),3.52vw 53.43vh rgba(220,236,255,0.45),92.14vw 71.58vh rgba(255,255,255,0.51),46.17vw 18.73vh rgba(200,225,255,0.48),4.50vw 67.96vh rgba(255,240,210,0.54),87.36vw 27.00vh rgba(255,255,255,0.65),13.28vw 29.83vh rgba(200,225,255,0.64),68.78vw 9.91vh rgba(200,225,255,0.57),21.44vw 76.33vh rgba(255,255,255,0.64),93.71vw 24.83vh rgba(200,225,255,0.48),36.07vw 10.97vh rgba(200,225,255,0.58),57.44vw 13.16vh rgba(200,225,255,0.73),30.69vw 7.29vh rgba(220,236,255,0.71),96.17vw 20.62vh rgba(255,240,210,0.73),12.58vw 34.19vh rgba(255,255,255,0.73),26.03vw 20.49vh rgba(255,255,255,0.71),98.11vw 89.21vh rgba(255,240,210,0.65),32.83vw 66.15vh rgba(255,240,210,0.49),10.81vw 25.09vh rgba(220,236,255,0.50),92.27vw 60.20vh rgba(220,236,255,0.40),91.47vw 78.80vh rgba(255,240,210,0.58),42.11vw 31.94vh rgba(255,240,210,0.64),24.36vw 83.08vh rgba(255,240,210,0.62),26.07vw 36.32vh rgba(220,236,255,0.68),11.46vw 92.58vh rgba(255,240,210,0.56),87.66vw 22.44vh rgba(255,240,210,0.71),17.79vw 58.66vh rgba(255,255,255,0.74),49.91vw 42.93vh rgba(220,236,255,0.62),5.30vw 22.98vh rgba(220,236,255,0.59),9.36vw 55.03vh rgba(200,225,255,0.54),93.89vw 97.83vh rgba(200,225,255,0.58),42.08vw 53.82vh rgba(255,240,210,0.70),37.46vw 96.12vh rgba(200,225,255,0.44),2.25vw 44.09vh rgba(255,255,255,0.43),68.07vw 17.77vh rgba(200,225,255,0.70),78.55vw 52.94vh rgba(200,225,255,0.56),61.61vw 83.20vh rgba(255,255,255,0.60),54.42vw 93.05vh rgba(220,236,255,0.38),25.37vw 18.22vh rgba(220,236,255,0.54),29.59vw 26.28vh rgba(200,225,255,0.74),73.26vw 95.03vh rgba(255,240,210,0.62),38.44vw 35.88vh rgba(220,236,255,0.38),90.87vw 80.90vh rgba(255,255,255,0.75),56.25vw 50.04vh rgba(255,255,255,0.41),31.35vw 42.15vh rgba(220,236,255,0.43),38.88vw 89.16vh rgba(200,225,255,0.73),21.04vw 0.78vh rgba(220,236,255,0.64),79.72vw 89.26vh rgba(200,225,255,0.44),64.34vw 99.83vh rgba(255,240,210,0.72),24.29vw 59.19vh rgba(220,236,255,0.65),27.17vw 13.01vh rgba(220,236,255,0.39),98.76vw 88.41vh rgba(220,236,255,0.72),40.74vw 30.65vh rgba(220,236,255,0.47),95.17vw 18.89vh rgba(220,236,255,0.73),37.75vw 94.95vh rgba(255,240,210,0.59),74.23vw 53.78vh rgba(255,240,210,0.71),74.88vw 56.06vh rgba(255,240,210,0.44),44.82vw 30.85vh rgba(255,240,210,0.73),83.95vw 8.57vh rgba(255,255,255,0.66),58.61vw 62.92vh rgba(220,236,255,0.66),71.04vw 82.41vh rgba(220,236,255,0.75),0.29vw 4.52vh rgba(200,225,255,0.58),28.03vw 12.99vh rgba(255,255,255,0.50),92.95vw 69.02vh rgba(220,236,255,0.70),57.12vw 96.85vh rgba(255,255,255,0.46),50.96vw 84.08vh rgba(255,240,210,0.72),94.41vw 64.09vh rgba(200,225,255,0.49),76.30vw 55.82vh rgba(255,255,255,0.51),74.63vw 80.50vh rgba(255,255,255,0.65),8.40vw 48.92vh rgba(220,236,255,0.66),65.03vw 21.37vh rgba(220,236,255,0.43),66.72vw 97.32vh rgba(220,236,255,0.49),83.66vw 67.20vh rgba(200,225,255,0.68),88.57vw 0.03vh rgba(255,255,255,0.47),26.62vw 53.92vh rgba(220,236,255,0.41),77.11vw 28.23vh rgba(200,225,255,0.62),52.37vw 69.80vh rgba(255,255,255,0.47),61.47vw 69.90vh rgba(255,240,210,0.56),1.38vw 16.58vh rgba(220,236,255,0.60),54.79vw 26.41vh rgba(220,236,255,0.63),4.72vw 80.82vh rgba(220,236,255,0.38),1.20vw 34.28vh rgba(220,236,255,0.63),63.35vw 0.02vh rgba(255,240,210,0.66),30.25vw 73.56vh rgba(255,255,255,0.71),43.06vw 84.37vh rgba(200,225,255,0.73),53.20vw 41.72vh rgba(255,255,255,0.50),18.66vw 92.94vh rgba(220,236,255,0.68),34.16vw 25.42vh rgba(200,225,255,0.68),24.14vw 12.62vh rgba(255,240,210,0.69),2.29vw 10.51vh rgba(255,255,255,0.54),13.65vw 6.81vh rgba(220,236,255,0.58),99.37vw 86.19vh rgba(200,225,255,0.51),93.87vw 37.00vh rgba(200,225,255,0.75),56.61vw 40.00vh rgba(255,255,255,0.59),43.72vw 38.32vh rgba(220,236,255,0.39),35.92vw 83.80vh rgba(255,255,255,0.46),39.64vw 52.81vh rgba(255,240,210,0.70),46.80vw 77.28vh rgba(200,225,255,0.62),48.86vw 78.85vh rgba(255,240,210,0.42),24.65vw 79.90vh rgba(200,225,255,0.41),41.68vw 37.60vh rgba(255,255,255,0.43),62.92vw 21.35vh rgba(255,255,255,0.55),9.77vw 77.11vh rgba(255,255,255,0.63),88.76vw 87.72vh rgba(255,240,210,0.45),99.05vw 83.15vh rgba(255,240,210,0.68),18.64vw 4.89vh rgba(255,255,255,0.62),68.42vw 7.36vh rgba(255,255,255,0.63),89.82vw 73.68vh rgba(255,255,255,0.73),87.61vw 86.75vh rgba(220,236,255,0.61),85.64vw 94.20vh rgba(255,240,210,0.49),43.45vw 49.24vh rgba(220,236,255,0.69),58.03vw 84.57vh rgba(220,236,255,0.38),87.74vw 9.38vh rgba(200,225,255,0.75),76.58vw 88.03vh rgba(220,236,255,0.55),63.73vw 53.42vh rgba(255,240,210,0.65),61.20vw 43.54vh rgba(200,225,255,0.67),16.16vw 80.65vh rgba(255,240,210,0.42),39.69vw 31.84vh rgba(200,225,255,0.57),60.66vw 77.90vh rgba(255,255,255,0.43),91.31vw 87.98vh rgba(200,225,255,0.72),48.70vw 63.81vh rgba(255,255,255,0.47),40.93vw 40.44vh rgba(220,236,255,0.68),81.94vw 24.07vh rgba(255,255,255,0.55),66.41vw 46.05vh rgba(200,225,255,0.59),28.56vw 22.91vh rgba(255,255,255,0.69),91.22vw 49.70vh rgba(255,255,255,0.65),44.68vw 55.10vh rgba(220,236,255,0.48),12.18vw 27.93vh rgba(200,225,255,0.63),47.03vw 0.26vh rgba(255,255,255,0.57),49.01vw 65.97vh rgba(200,225,255,0.44),9.11vw 75.40vh rgba(255,255,255,0.54),81.58vw 98.28vh rgba(220,236,255,0.38),51.16vw 9.90vh rgba(255,255,255,0.68),94.15vw 63.45vh rgba(200,225,255,0.48),59.91vw 88.00vh rgba(220,236,255,0.63),5.49vw 90.65vh rgba(255,240,210,0.66),71.29vw 75.81vh rgba(255,255,255,0.48),0.04vw 73.23vh rgba(200,225,255,0.42),9.60vw 7.19vh rgba(255,240,210,0.44),16.79vw 64.56vh rgba(200,225,255,0.49),26.81vw 29.68vh rgba(255,255,255,0.74),43.79vw 72.00vh rgba(220,236,255,0.51),22.46vw 15.75vh rgba(255,255,255,0.63),82.19vw 58.79vh rgba(200,225,255,0.65),0.64vw 20.91vh rgba(220,236,255,0.74),7.59vw 23.20vh rgba(200,225,255,0.59),94.71vw 84.22vh rgba(200,225,255,0.47),16.58vw 13.64vh rgba(220,236,255,0.62),53.94vw 19.91vh rgba(255,255,255,0.38),9.74vw 29.70vh rgba(255,240,210,0.44),31.14vw 54.29vh rgba(220,236,255,0.52),71.44vw 61.10vh rgba(200,225,255,0.54),94.48vw 59.27vh rgba(200,225,255,0.59),36.89vw 28.98vh rgba(255,255,255,0.61),30.41vw 77.07vh rgba(200,225,255,0.52),70.50vw 37.21vh rgba(220,236,255,0.65),15.66vw 68.51vh rgba(200,225,255,0.41),56.03vw 65.02vh rgba(255,240,210,0.43),42.79vw 86.31vh rgba(200,225,255,0.39),24.94vw 23.63vh rgba(220,236,255,0.70),73.60vw 98.36vh rgba(255,240,210,0.39),46.49vw 66.41vh rgba(255,255,255,0.42),1.86vw 2.54vh rgba(255,240,210,0.39),12.82vw 75.34vh rgba(255,255,255,0.39),55.31vw 23.60vh rgba(200,225,255,0.56),16.75vw 78.26vh rgba(220,236,255,0.40),67.72vw 27.43vh rgba(200,225,255,0.71),68.02vw 64.32vh rgba(220,236,255,0.73),0.86vw 64.87vh rgba(220,236,255,0.48),14.48vw 97.31vh rgba(200,225,255,0.63),36.37vw 69.23vh rgba(220,236,255,0.74),58.61vw 23.26vh rgba(255,255,255,0.50),53.96vw 15.95vh rgba(220,236,255,0.63),5.20vw 71.61vh rgba(220,236,255,0.70),1.93vw 81.22vh rgba(220,236,255,0.45),29.79vw 22.43vh rgba(255,240,210,0.53),66.80vw 82.26vh rgba(220,236,255,0.53),45.10vw 11.83vh rgba(255,255,255,0.69),45.72vw 66.03vh rgba(255,240,210,0.52),69.42vw 76.67vh rgba(255,240,210,0.41),78.12vw 24.47vh rgba(220,236,255,0.72),46.58vw 92.70vh rgba(255,240,210,0.66),47.70vw 69.04vh rgba(220,236,255,0.48),59.71vw 99.12vh rgba(255,255,255,0.62),20.92vw 19.95vh rgba(220,236,255,0.68),23.71vw 52.90vh rgba(200,225,255,0.44)}
.yg-st2{box-shadow:95.64vw 68.74vh rgba(255,255,255,0.71),43.97vw 19.84vh rgba(220,236,255,0.79),71.65vw 89.42vh rgba(255,255,255,0.71),2.93vw 6.95vh rgba(255,255,255,0.73),56.17vw 64.48vh rgba(255,255,255,0.69),9.59vw 46.54vh rgba(255,255,255,0.71),37.66vw 73.47vh rgba(200,225,255,0.83),92.38vw 3.84vh rgba(200,225,255,0.52),21.33vw 51.68vh rgba(255,240,210,0.70),41.71vw 12.67vh rgba(255,240,210,0.73),11.87vw 37.12vh rgba(220,236,255,0.46),98.41vw 5.07vh rgba(200,225,255,0.79),57.76vw 90.14vh rgba(200,225,255,0.89),14.57vw 63.11vh rgba(200,225,255,0.54),6.24vw 55.90vh rgba(200,225,255,0.86),19.84vw 84.52vh rgba(255,240,210,0.86),66.25vw 27.28vh rgba(255,240,210,0.87),68.23vw 31.82vh rgba(255,240,210,0.49),91.68vw 26.22vh rgba(220,236,255,0.54),54.96vw 82.60vh rgba(220,236,255,0.73),81.83vw 34.77vh rgba(200,225,255,0.68),88.06vw 32.02vh rgba(255,240,210,0.86),39.06vw 74.19vh rgba(255,255,255,0.52),64.70vw 91.39vh rgba(220,236,255,0.55),41.83vw 11.19vh rgba(220,236,255,0.58),31.25vw 86.85vh rgba(220,236,255,0.60),2.52vw 88.16vh rgba(255,240,210,0.84),61.86vw 44.38vh rgba(255,240,210,0.59),27.75vw 49.71vh rgba(255,240,210,0.45),85.63vw 66.43vh rgba(255,240,210,0.70),61.16vw 78.74vh rgba(255,240,210,0.66),89.00vw 70.07vh rgba(255,240,210,0.64),58.80vw 96.16vh rgba(255,240,210,0.85),57.41vw 44.15vh rgba(255,255,255,0.52),32.41vw 23.62vh rgba(220,236,255,0.58),19.40vw 22.08vh rgba(255,240,210,0.57),24.69vw 63.06vh rgba(200,225,255,0.53),1.48vw 77.89vh rgba(255,240,210,0.67),26.17vw 50.13vh rgba(255,255,255,0.67),83.66vw 78.90vh rgba(220,236,255,0.71),16.18vw 60.74vh rgba(255,240,210,0.59),23.80vw 30.03vh rgba(220,236,255,0.60),37.40vw 16.50vh rgba(200,225,255,0.67),87.24vw 68.53vh rgba(220,236,255,0.52),96.19vw 74.42vh rgba(220,236,255,0.61),96.30vw 4.15vh rgba(255,240,210,0.87),72.31vw 53.78vh rgba(200,225,255,0.54),30.85vw 76.49vh rgba(255,240,210,0.85),44.12vw 58.83vh rgba(255,255,255,0.55),5.05vw 85.03vh rgba(220,236,255,0.49),67.45vw 20.37vh rgba(200,225,255,0.66),43.95vw 56.42vh rgba(255,255,255,0.54),41.68vw 39.33vh rgba(255,255,255,0.69),50.75vw 61.09vh rgba(200,225,255,0.88),30.29vw 38.00vh rgba(255,240,210,0.50),23.27vw 8.55vh rgba(255,255,255,0.70),20.25vw 30.24vh rgba(220,236,255,0.64),33.04vw 2.09vh rgba(255,240,210,0.79),0.20vw 68.32vh rgba(200,225,255,0.89),92.09vw 54.81vh rgba(255,240,210,0.70),77.36vw 55.62vh rgba(220,236,255,0.45),61.53vw 74.25vh rgba(255,255,255,0.79),16.54vw 5.67vh rgba(255,240,210,0.66),24.82vw 85.89vh rgba(200,225,255,0.77),70.90vw 5.61vh rgba(200,225,255,0.85),5.20vw 81.88vh rgba(200,225,255,0.55),98.52vw 86.29vh rgba(255,240,210,0.85),9.78vw 35.11vh rgba(200,225,255,0.60),54.36vw 57.93vh rgba(200,225,255,0.64),52.07vw 40.73vh rgba(255,255,255,0.50),19.58vw 21.37vh rgba(255,240,210,0.46),15.49vw 78.83vh rgba(255,240,210,0.80),93.65vw 6.56vh rgba(255,240,210,0.49),89.77vw 46.66vh rgba(200,225,255,0.86),93.54vw 54.26vh rgba(220,236,255,0.58),63.13vw 20.63vh rgba(255,240,210,0.88),88.33vw 37.23vh rgba(255,255,255,0.80),95.77vw 38.44vh rgba(200,225,255,0.76),59.99vw 5.50vh rgba(255,240,210,0.58),43.01vw 31.97vh rgba(255,240,210,0.62),0.05vw 43.89vh rgba(220,236,255,0.53),26.64vw 80.77vh rgba(255,240,210,0.55),86.45vw 32.26vh rgba(220,236,255,0.45),56.20vw 41.41vh rgba(200,225,255,0.74),50.20vw 72.28vh rgba(200,225,255,0.74),80.47vw 66.22vh rgba(200,225,255,0.52),0.91vw 99.62vh rgba(220,236,255,0.60),41.09vw 94.87vh rgba(220,236,255,0.52),92.09vw 29.96vh rgba(255,255,255,0.89),66.27vw 55.97vh rgba(255,240,210,0.46),19.81vw 79.80vh rgba(220,236,255,0.67),52.64vw 27.82vh rgba(255,240,210,0.60),21.61vw 52.10vh rgba(200,225,255,0.62),17.44vw 26.58vh rgba(255,240,210,0.86),13.43vw 19.18vh rgba(200,225,255,0.70),93.20vw 39.51vh rgba(220,236,255,0.63),94.96vw 8.98vh rgba(255,240,210,0.86),47.05vw 65.26vh rgba(200,225,255,0.52),78.87vw 5.07vh rgba(255,255,255,0.87),52.97vw 51.12vh rgba(255,240,210,0.88),35.38vw 79.26vh rgba(255,255,255,0.52),98.45vw 2.11vh rgba(220,236,255,0.45),17.97vw 31.01vh rgba(255,255,255,0.53),27.86vw 83.99vh rgba(200,225,255,0.49),6.29vw 67.25vh rgba(255,240,210,0.76),11.02vw 65.57vh rgba(255,240,210,0.53),6.41vw 75.92vh rgba(255,240,210,0.59),84.63vw 65.55vh rgba(255,255,255,0.79),95.39vw 46.47vh rgba(220,236,255,0.80),69.41vw 75.30vh rgba(220,236,255,0.86)}
.yg-st3{box-shadow:60.87vw 82.87vh rgba(200,225,255,0.92),8.25vw 33.91vh rgba(220,236,255,0.86),91.00vw 22.47vh rgba(255,255,255,0.74),78.62vw 21.58vh rgba(220,236,255,0.59),64.69vw 50.08vh rgba(200,225,255,0.81),86.86vw 56.04vh rgba(255,255,255,0.61),30.00vw 19.48vh rgba(220,236,255,0.89),18.10vw 9.27vh rgba(255,255,255,0.55),68.52vw 94.79vh rgba(220,236,255,0.92),13.45vw 45.67vh rgba(220,236,255,0.85),29.96vw 57.14vh rgba(220,236,255,0.58),22.68vw 33.14vh rgba(255,255,255,0.87),95.43vw 4.28vh rgba(220,236,255,0.72),58.67vw 76.17vh rgba(200,225,255,0.99),88.60vw 41.09vh rgba(255,240,210,0.99),14.57vw 18.25vh rgba(255,240,210,0.94),4.62vw 79.08vh rgba(200,225,255,0.69),1.43vw 39.78vh rgba(220,236,255,0.83),36.53vw 12.95vh rgba(200,225,255,0.76),96.11vw 54.16vh rgba(200,225,255,0.84),26.16vw 70.02vh rgba(200,225,255,0.89),44.49vw 64.91vh rgba(255,240,210,0.86),44.22vw 15.32vh rgba(220,236,255,0.82),36.60vw 77.33vh rgba(200,225,255,0.74),11.82vw 85.01vh rgba(220,236,255,0.52),86.59vw 29.12vh rgba(200,225,255,0.91),42.27vw 81.67vh rgba(255,240,210,0.88),68.66vw 32.29vh rgba(200,225,255,0.74),55.00vw 66.02vh rgba(200,225,255,0.72),55.32vw 3.33vh rgba(255,240,210,0.58),18.74vw 99.75vh rgba(255,240,210,0.72),55.09vw 85.66vh rgba(255,255,255,0.78),97.32vw 0.58vh rgba(255,240,210,0.52),82.39vw 98.24vh rgba(220,236,255,0.64),68.57vw 63.98vh rgba(220,236,255,0.96),10.67vw 45.22vh rgba(220,236,255,0.74),12.45vw 53.05vh rgba(220,236,255,0.78),46.04vw 4.12vh rgba(255,240,210,0.99),90.07vw 65.26vh rgba(200,225,255,0.81),78.81vw 89.45vh rgba(255,240,210,0.88),62.53vw 94.14vh rgba(255,240,210,0.74),24.23vw 35.49vh rgba(255,255,255,0.74),27.80vw 77.11vh rgba(255,240,210,0.84),61.28vw 25.22vh rgba(220,236,255,0.70),42.04vw 89.98vh rgba(255,240,210,0.94)}

/* =====================================================================
   YMIR'S HEARTH — Ymir's home under Yggdrasil (chat space)
   ===================================================================== */
:root{--fire1:#ff7a1a;--fire2:#ffb347;--fire3:#ffe08a;--ember:#ff9a3c;--wood:#3a2416;--wood2:#5a3820;--hearth-ice:#7fe7ff}
.tabs button.tab-hearth i{color:var(--fire2);opacity:1;text-shadow:0 0 10px rgba(255,140,40,.8);animation:hhRuneGlow 2.6s ease-in-out infinite}
.tabs button.tab-hearth.active i{color:#3a1405;text-shadow:none}
@keyframes hhRuneGlow{50%{text-shadow:0 0 18px rgba(255,180,80,1),0 0 4px #fff}}
body.in-hearth main{max-width:1520px;padding-bottom:18px}
body.in-hearth .tab-ink{background:linear-gradient(135deg,var(--fire3),var(--fire1));box-shadow:0 0 22px rgba(255,140,40,.6)}
body.in-hearth .aurora{opacity:.75}

#hearth.view.active{display:block}
.hearth{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:18px;height:calc(100vh - 140px);height:calc(100dvh - 140px);min-height:580px}

/* ---- the home (left) ---- */
.hearth-home{position:relative;display:flex;flex-direction:column;border-radius:22px;overflow:hidden;
  background:linear-gradient(180deg,#0a1630 0%,#1a1424 38%,#2a170f 72%,#160b06 100%);
  border:1px solid rgba(255,170,90,.28);box-shadow:0 0 0 1px rgba(127,231,255,.08) inset,0 30px 80px -30px rgba(255,110,30,.45),0 0 60px -20px rgba(127,231,255,.35)}
.hh-scene{position:relative;flex:0 0 52%;min-height:250px;overflow:hidden}
.hh-aurora{position:absolute;inset:-30% -20% 40%;filter:blur(26px);mix-blend-mode:screen;opacity:.9}
.hh-aurora span{position:absolute;height:46%;width:130%;left:-15%;border-radius:50%;
  background:linear-gradient(90deg,transparent,rgba(54,226,196,.85),rgba(127,231,255,.8),rgba(138,108,255,.7),transparent);animation:hhAur 14s ease-in-out infinite alternate}
.hh-aurora span:nth-child(1){top:18%;transform:rotate(-8deg)}
.hh-aurora span:nth-child(2){top:34%;opacity:.7;animation-duration:19s;animation-delay:-5s;transform:rotate(6deg)}
.hh-aurora span:nth-child(3){top:50%;opacity:.45;animation-duration:23s;animation-delay:-9s;background:linear-gradient(90deg,transparent,rgba(159,227,255,.9),rgba(54,226,196,.6),transparent)}
@keyframes hhAur{0%{transform:translateX(-8%) skewX(-12deg) scaleY(.8)}50%{transform:translateX(6%) skewX(10deg) scaleY(1.25)}100%{transform:translateX(-3%) skewX(-4deg) scaleY(.95)}}
.hh-beams{position:absolute;inset:0;pointer-events:none}
.hh-beams span{position:absolute;left:-5%;right:-5%;height:22px;display:flex;align-items:center;justify-content:space-around;
  font-family:var(--rune);font-size:13px;letter-spacing:.9em;color:rgba(255,190,110,.55);text-shadow:0 0 8px rgba(255,140,40,.6);
  background:linear-gradient(180deg,var(--wood2),var(--wood) 60%,#24150c);box-shadow:0 6px 14px rgba(0,0,0,.55);border-top:1px solid rgba(255,190,120,.25)}
.hh-beams span:nth-child(1){top:14%;transform:rotate(-2deg)}
.hh-beams span:nth-child(2){top:30%;transform:rotate(1.5deg);opacity:.85}
.hh-roots{position:absolute;left:0;right:0;top:0;height:46%;width:100%;opacity:.7}
.hh-roots path{fill:none;stroke:rgba(190,240,255,.55);stroke-width:2.2;stroke-linecap:round;filter:drop-shadow(0 0 6px rgba(127,231,255,.8));
  stroke-dasharray:420;stroke-dashoffset:420;animation:hhRoot 4s var(--ease) forwards,hhRootPulse 5s ease-in-out 4s infinite}
.hh-roots path:nth-child(2n){animation-delay:.4s,4.4s;stroke-width:1.6}
.hh-roots path:nth-child(3n){stroke:rgba(255,210,150,.45);animation-delay:.8s,4.8s}
@keyframes hhRoot{to{stroke-dashoffset:0}}
@keyframes hhRootPulse{50%{opacity:.45}}

.hh-hearth{position:absolute;left:50%;bottom:6%;width:210px;height:170px;transform:translateX(-50%)}
.hh-glow{position:absolute;left:50%;bottom:-40px;width:520px;height:300px;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(closest-side,rgba(255,150,50,.55),rgba(255,90,20,.18) 55%,transparent);animation:hhFlicker 2.2s ease-in-out infinite}
@keyframes hhFlicker{0%,100%{opacity:.85;transform:translateX(-50%) scale(1)}30%{opacity:1;transform:translateX(-50%) scale(1.04)}60%{opacity:.75;transform:translateX(-50%) scale(.97)}}
.hh-fire{position:absolute;left:50%;bottom:34px;width:120px;height:130px;transform:translateX(-50%);filter:blur(1.5px)}
.hh-fire span{position:absolute;bottom:0;left:50%;width:54px;height:100px;margin-left:-27px;border-radius:50% 50% 45% 45%/60% 60% 40% 40%;
  background:radial-gradient(ellipse at 50% 85%,#fff7d6 0%,var(--fire3) 18%,var(--fire2) 38%,var(--fire1) 62%,rgba(255,60,10,0) 78%);
  mix-blend-mode:screen;transform-origin:50% 100%;animation:hhFlame 1.4s ease-in-out infinite alternate}
.hh-fire span:nth-child(2){width:40px;height:78px;margin-left:-44px;animation-duration:1.1s;animation-delay:-.3s}
.hh-fire span:nth-child(3){width:42px;height:84px;margin-left:4px;animation-duration:1.25s;animation-delay:-.6s}
.hh-fire span:nth-child(4){width:30px;height:120px;margin-left:-15px;animation-duration:.9s;animation-delay:-.2s;opacity:.85}
.hh-fire span:nth-child(5){width:70px;height:56px;margin-left:-35px;animation-duration:1.7s;
  background:radial-gradient(ellipse at 50% 80%,rgba(127,231,255,.9),rgba(92,200,255,.4) 40%,transparent 70%)}
@keyframes hhFlame{0%{transform:scale(1,1) skewX(0)}35%{transform:scale(.92,1.12) skewX(4deg)}70%{transform:scale(1.06,.9) skewX(-5deg)}100%{transform:scale(.96,1.08) skewX(2deg)}}
.hh-logs{position:absolute;left:50%;bottom:22px;width:150px;height:30px;transform:translateX(-50%)}
.hh-logs span{position:absolute;bottom:0;left:0;width:150px;height:18px;border-radius:10px;background:linear-gradient(180deg,#6b4126,#2b170b);
  box-shadow:inset 0 3px 0 rgba(255,150,60,.5),0 0 14px rgba(255,110,30,.5)}
.hh-logs span:nth-child(1){transform:rotate(12deg)}.hh-logs span:nth-child(2){transform:rotate(-12deg)}
.hh-stones{position:absolute;left:50%;bottom:4px;width:210px;height:26px;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(ellipse at 50% 0%,rgba(255,140,50,.5),transparent 60%),repeating-radial-gradient(ellipse at 50% 50%,#3a3e4a 0 10px,#22252e 10px 14px);
  box-shadow:0 8px 20px rgba(0,0,0,.6)}
.hh-embers i{position:absolute;bottom:60px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--fire3);box-shadow:0 0 8px 2px var(--ember);
  opacity:0;animation:hhEmber 4.2s linear infinite}
.hh-embers i:nth-child(1){margin-left:-30px;animation-delay:0s}.hh-embers i:nth-child(2){margin-left:12px;animation-delay:.5s;animation-duration:3.6s}
.hh-embers i:nth-child(3){margin-left:-8px;animation-delay:1.1s}.hh-embers i:nth-child(4){margin-left:28px;animation-delay:1.6s;animation-duration:5s}
.hh-embers i:nth-child(5){margin-left:-44px;animation-delay:2s}.hh-embers i:nth-child(6){margin-left:2px;animation-delay:2.6s;animation-duration:3.2s}
.hh-embers i:nth-child(7){margin-left:40px;animation-delay:3s}.hh-embers i:nth-child(8){margin-left:-20px;animation-delay:3.5s;animation-duration:4.6s}
.hh-embers i:nth-child(9){margin-left:20px;animation-delay:.8s;width:3px;height:3px}.hh-embers i:nth-child(10){margin-left:-36px;animation-delay:1.9s;width:3px;height:3px}
.hh-embers i:nth-child(11){margin-left:6px;animation-delay:2.9s;background:#cfffff;box-shadow:0 0 8px 2px var(--hearth-ice)}
.hh-embers i:nth-child(12){margin-left:-14px;animation-delay:3.9s;background:#cfffff;box-shadow:0 0 8px 2px var(--hearth-ice)}
@keyframes hhEmber{0%{opacity:0;transform:translate(0,0) scale(1)}10%{opacity:1}50%{transform:translate(18px,-110px) scale(.8)}80%{opacity:.7}100%{opacity:0;transform:translate(-14px,-220px) scale(.3)}}
.hh-vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 50% 70%,transparent 40%,rgba(5,6,12,.75) 100%)}

.hh-presence{position:relative;z-index:2;display:flex;align-items:center;gap:14px;margin:-34px 14px 0;padding:14px 16px;border-radius:18px;
  background:linear-gradient(135deg,rgba(40,24,14,.88),rgba(14,22,42,.88));border:1px solid rgba(255,180,100,.35);backdrop-filter:blur(10px);
  box-shadow:0 10px 30px -10px rgba(255,120,40,.5)}
.hh-avatar{position:relative;width:58px;height:58px;flex:none}
.hh-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid rgba(255,200,120,.8);box-shadow:0 0 20px rgba(255,150,60,.6)}
.hh-ring{position:absolute;inset:-6px;border-radius:50%;border:2px solid transparent;border-top-color:var(--fire2);border-right-color:var(--hearth-ice);animation:spin 6s linear infinite}
.hh-dot{position:absolute;right:0;bottom:2px;width:13px;height:13px;border-radius:50%;background:var(--aur1);border:2px solid #1a1016;box-shadow:0 0 0 0 rgba(54,226,196,.7);animation:pulse 2s infinite}
.hh-name{margin:0;font-size:22px;font-weight:700;letter-spacing:.08em;background:linear-gradient(90deg,var(--fire3),#fff 40%,var(--hearth-ice));-webkit-background-clip:text;background-clip:text;color:transparent}
.hh-status{margin:2px 0 0;font-size:12.5px;color:#f3c99a}
.hh-sagas{position:relative;z-index:1;flex:1;overflow:auto;padding:14px 16px 16px;scrollbar-width:thin;scrollbar-color:rgba(255,170,90,.4) transparent}
.hh-label{margin:6px 0 10px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--fire2)}
.hh-label i{font-style:normal;font-family:var(--rune)}
.hh-sagas ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.hh-sagas li{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:rgba(255,170,90,.06);border:1px solid rgba(255,170,90,.14);
  animation:cardIn .6s var(--ease) both;animation-delay:calc(var(--i) * 70ms)}
.hh-sagas li i{font-style:normal;font-family:var(--rune);width:28px;height:28px;flex:none;display:grid;place-items:center;border-radius:8px;color:#2a1206;
  background:linear-gradient(135deg,var(--fire3),var(--fire1));box-shadow:0 0 12px rgba(255,140,40,.5)}
.hh-sagas li b{display:block;font-size:13px;color:var(--frost)}
.hh-sagas li small{color:var(--muted);font-size:11px}

/* ---- the chat (right) ---- */
.hearth-chat{position:relative;display:flex;flex-direction:column;min-height:0;border-radius:22px;overflow:hidden;
  background:
    radial-gradient(700px 380px at 0% 100%,rgba(255,120,40,.16),transparent 60%),
    radial-gradient(800px 420px at 100% 0%,rgba(127,231,255,.14),transparent 60%),
    repeating-linear-gradient(90deg,rgba(255,200,140,.025) 0 2px,transparent 2px 46px),
    linear-gradient(180deg,rgba(16,20,38,.92),rgba(22,14,12,.92));
  border:1px solid rgba(255,180,100,.22);box-shadow:0 30px 80px -40px rgba(0,0,0,.8)}
.hearth-chat::after{content:"ᚺ";position:absolute;right:-20px;bottom:-60px;font:400 320px/1 var(--rune);color:rgba(255,160,80,.04);pointer-events:none}
.hc-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid rgba(255,180,100,.18);
  background:linear-gradient(90deg,rgba(60,32,16,.55),rgba(14,24,46,.55))}
.hc-title{display:flex;align-items:center;gap:12px}
.hc-title>i{font-style:normal;font-family:var(--rune);font-size:22px;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:#2a1206;
  background:linear-gradient(135deg,var(--fire3),var(--fire1));box-shadow:0 0 18px rgba(255,140,40,.6);animation:breathe 4s ease-in-out infinite}
.hc-title b{display:block;font-size:16px;letter-spacing:.06em}
.hc-title small{display:block;font-size:11.5px;color:var(--muted)}
.hc-title small.on{color:var(--aur1)}
.hc-actions{display:flex;gap:8px}
.hc-btn{border:1px solid rgba(255,180,100,.35);background:rgba(255,160,80,.08);color:#ffd9a8;border-radius:10px;padding:8px 12px;font:600 12px/1 "Segoe UI",Inter,system-ui,sans-serif;cursor:pointer;text-decoration:none;white-space:nowrap;transition:.25s}
.hc-btn:hover{background:rgba(255,160,80,.2);color:#fff;box-shadow:0 0 16px rgba(255,140,40,.35)}
.hc-connect{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:10px 16px 0;padding:10px 14px;border-radius:12px;font-size:13px;color:#cfeefe;
  background:linear-gradient(90deg,rgba(127,231,255,.1),rgba(138,108,255,.1));border:1px dashed rgba(127,231,255,.35)}
.hc-connect button{border:0;border-radius:8px;padding:6px 12px;font:600 12px "Segoe UI",Inter,system-ui,sans-serif;cursor:pointer;background:linear-gradient(135deg,var(--ice),var(--aur1));color:#06101e}
.hc-connect[hidden]{display:none}

.hc-thread{flex:1;min-height:0;overflow-y:auto;padding:18px 18px 8px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;
  scrollbar-width:thin;scrollbar-color:rgba(255,170,90,.35) transparent}
.hm{display:flex;gap:10px;align-items:flex-end;max-width:min(720px,88%);animation:hmIn .45s var(--ease) both}
@keyframes hmIn{from{opacity:0;transform:translateY(10px) scale(.98)}}
.hm-av{width:32px;height:32px;border-radius:50%;flex:none;border:1px solid rgba(255,200,120,.7);box-shadow:0 0 12px rgba(255,140,40,.5)}
.hm-b{padding:11px 14px;border-radius:18px;font-size:14.5px;line-height:1.55;word-wrap:break-word;overflow-wrap:anywhere}
.hm-ymir .hm-b{border-bottom-left-radius:6px;background:linear-gradient(135deg,rgba(72,40,18,.9),rgba(40,26,30,.9));border:1px solid rgba(255,180,100,.3);
  box-shadow:0 6px 24px -10px rgba(255,120,40,.55)}
.hm-me{align-self:flex-end;flex-direction:row-reverse}
.hm-me .hm-b{border-bottom-right-radius:6px;background:linear-gradient(135deg,rgba(40,90,140,.85),rgba(60,50,140,.85));border:1px solid rgba(127,231,255,.35);
  box-shadow:0 6px 24px -10px rgba(92,200,255,.6)}
.hm-sagabox .hm-b{background:linear-gradient(135deg,rgba(30,40,64,.92),rgba(52,30,20,.92));border-left:3px solid var(--fire2)}
.hm-saga{margin:0 0 6px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--fire2);display:flex;align-items:center;gap:8px}
.hm-saga i{font-style:normal;font-family:var(--rune);font-size:15px;color:var(--fire3);text-shadow:0 0 8px rgba(255,140,40,.8)}
.hm-t a{color:var(--fire3)}
.hm-meta{margin-top:6px;font-size:11px;color:rgba(230,220,210,.6)}
.hm-meta b{color:rgba(255,220,170,.85);font-weight:600}
.hm-me .hm-meta b{color:#cfefff}
.hm-st{margin-left:4px}
.hm-st.sent{color:var(--aur1)}.hm-st.sending{color:var(--ice)}.hm-st.local{color:#f3c99a}
.hm-st.failed{color:#ff9a8a;cursor:pointer;text-decoration:underline dotted}
.hm-sys{align-self:center;max-width:100%}
.hm-sys span{display:inline-block;padding:6px 14px;border-radius:999px;font-size:11.5px;letter-spacing:.08em;color:#bfe9ff;
  background:rgba(127,231,255,.08);border:1px solid rgba(127,231,255,.25)}

.hc-chips{display:flex;gap:8px;flex-wrap:wrap;padding:4px 18px 8px}
.hc-chips button{border:1px solid rgba(127,231,255,.25);background:rgba(127,231,255,.06);color:#cfeefe;border-radius:999px;padding:6px 12px;font:500 12px "Segoe UI",Inter,system-ui,sans-serif;cursor:pointer;transition:.25s}
.hc-chips button:hover{border-color:var(--fire2);color:#fff;background:rgba(255,160,80,.14)}
.hc-composer{display:flex;gap:10px;align-items:flex-end;margin:0 14px 14px;padding:8px;border-radius:18px;
  background:rgba(8,10,20,.7);border:1px solid rgba(255,180,100,.3);box-shadow:0 0 0 0 rgba(255,140,40,0);transition:box-shadow .3s,border-color .3s}
.hc-composer:focus-within{border-color:rgba(255,190,110,.7);box-shadow:0 0 28px -4px rgba(255,140,40,.5),0 0 0 1px rgba(127,231,255,.2) inset}
.hc-composer textarea{flex:1;resize:none;border:0;outline:0;background:none;color:var(--frost);font:15px/1.5 "Segoe UI",Inter,system-ui,sans-serif;padding:8px 10px;max-height:160px}
.hc-composer textarea::placeholder{color:rgba(243,201,154,.55)}
.hc-send{border:0;border-radius:14px;padding:11px 18px;font:700 13px/1 "Segoe UI",Inter,system-ui,sans-serif;cursor:pointer;color:#2a1206;letter-spacing:.06em;
  background:linear-gradient(135deg,var(--fire3),var(--fire1));box-shadow:0 6px 20px -6px rgba(255,120,30,.8);transition:transform .2s,box-shadow .2s}
.hc-send span{font-family:var(--rune);margin-right:4px}
.hc-send:hover{transform:translateY(-1px);box-shadow:0 10px 26px -6px rgba(255,140,40,.95)}

.hc-drawer{position:absolute;inset:0;z-index:5;background:rgba(4,6,14,.55);backdrop-filter:blur(4px);display:flex;justify-content:flex-end}
.hc-drawer[hidden]{display:none}
.hc-drawer-in{width:min(400px,100%);height:100%;overflow:auto;padding:22px;background:linear-gradient(180deg,rgba(24,18,22,.97),rgba(12,18,36,.97));
  border-left:1px solid rgba(255,180,100,.3);animation:hcSlide .35s var(--ease)}
@keyframes hcSlide{from{transform:translateX(40px);opacity:0}}
.hc-drawer h3{margin:0 0 10px;color:var(--fire2);font-size:14px;letter-spacing:.14em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.hc-x{border:0;background:none;color:var(--muted);font-size:16px;cursor:pointer}
.hc-drawer p{font-size:13px}
.hc-drawer label{display:block;margin:14px 0 6px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#f3c99a}
.hc-drawer input{width:100%;padding:11px 12px;border-radius:10px;border:1px solid rgba(255,180,100,.3);background:rgba(0,0,0,.35);color:var(--frost);font:14px "Segoe UI",Inter,system-ui,sans-serif;outline:0}
.hc-drawer input:focus{border-color:var(--fire2);box-shadow:0 0 14px rgba(255,140,40,.3)}
.hc-drawer-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}
.hc-drawer-row .btn{cursor:pointer;font:600 13px "Segoe UI",Inter,system-ui,sans-serif}
.hc-drawer-row span{font-size:12px}
.hc-live{display:block;margin-top:20px;padding:12px;text-align:center;border-radius:12px;text-decoration:none;font-weight:700;color:#06101e;
  background:linear-gradient(135deg,var(--ice),var(--aur1));box-shadow:0 0 20px rgba(127,231,255,.4)}

@media (max-width:900px){
  .hearth{grid-template-columns:1fr;height:auto;min-height:0}
  .hearth-home{flex-direction:column}
  .hh-scene{flex:none;height:230px;min-height:0}
  .hh-sagas{display:none}
  .hh-presence{margin:-30px 12px 12px}
  .hearth-chat{height:calc(100dvh - 150px);min-height:520px}
  .hm{max-width:94%}
}
@media (prefers-reduced-motion:reduce){.hh-fire span,.hh-embers i,.hh-aurora span,.hh-glow,.hh-roots path{animation:none!important;stroke-dashoffset:0}}
.hc-drawer-row .btn:not(.gold){background:rgba(255,255,255,.05);color:var(--frost)}
/* v10 live stats chip */
.stats-chip{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.stats-state{font-size:12px;color:var(--muted)}
.stats-state.live{color:#7ee2a8}.stats-state.partial{color:var(--gold2)}.stats-state.stale{color:#ff9f8a}
.stats-chip.is-stale{border-color:rgba(255,159,138,.45)}
.stats-refresh{background:none;border:0;color:inherit;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;opacity:.75}
.stats-refresh:hover{opacity:1}.stats-refresh.spin{animation:statsSpin 1s linear infinite}
@keyframes statsSpin{to{transform:rotate(360deg)}}

/* =====================================================================
   v11 polish — stats at a glance + calmer Hearth (see HALL_POLISH_NOTES.md)
   ===================================================================== */
/* ---- stats glance bar ---- */
.stats-glance{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 6px;padding:12px 16px;border-radius:16px;
  background:rgba(12,18,36,.72);border:1px solid var(--line)}
.sg-dot{width:12px;height:12px;border-radius:50%;flex:none;background:var(--muted);box-shadow:0 0 0 4px rgba(147,164,195,.15)}
.stats-glance[data-state=live] .sg-dot{background:#7ee2a8;box-shadow:0 0 0 4px rgba(126,226,168,.18),0 0 12px rgba(126,226,168,.7)}
.stats-glance[data-state=partial] .sg-dot{background:var(--gold2);box-shadow:0 0 0 4px rgba(255,223,138,.18)}
.stats-glance[data-state=stale] .sg-dot{background:#ff9f8a;box-shadow:0 0 0 4px rgba(255,159,138,.18)}
.stats-glance[data-state=loading] .sg-dot{animation:pulse 1.6s infinite}
.stats-glance[data-state=stale]{border-color:rgba(255,159,138,.4)}
.stats-glance[data-state=partial]{border-color:rgba(255,223,138,.35)}
.sg-main{display:flex;flex-direction:column;min-width:0;flex:1 1 220px}
.sg-head{font-size:15px;font-weight:700;color:#fff;letter-spacing:.01em}
.sg-sub{font-size:12.5px;color:var(--muted)}
.sg-sub b{color:var(--frost);font-weight:600}
.sg-plats{display:flex;gap:8px;flex-wrap:wrap}
.sg-plat{font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);color:var(--frost);background:rgba(255,255,255,.03);white-space:nowrap}
.sg-plat::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;vertical-align:1px;background:var(--muted)}
.sg-plat[data-st=live]::before{background:#7ee2a8}.sg-plat[data-st=stale]::before{background:var(--gold2)}.sg-plat[data-st=off]::before{background:#ff9f8a}
.sg-plat[data-st=stale]{border-color:rgba(255,223,138,.4)}.sg-plat[data-st=off]{border-color:rgba(255,159,138,.4)}
.sg-refresh{border:1px solid rgba(159,227,255,.35);background:rgba(159,227,255,.08);color:var(--ice);border-radius:10px;padding:8px 12px;font:600 12.5px/1 inherit;cursor:pointer}
.sg-refresh:hover{background:rgba(159,227,255,.16);color:#fff}.sg-refresh:disabled{opacity:.55;cursor:progress}
.sec-h .fresh{margin-left:auto;font-size:11px;letter-spacing:.12em;color:var(--muted)}
.sec-h .fresh[data-st=live]{color:#7ee2a8}.sec-h .fresh[data-st=stale]{color:var(--gold2)}.sec-h .fresh[data-st=off]{color:#ff9f8a}
/* ---- KPI cards: bigger, solid, tabular numbers ---- */
.kpi{gap:6px}
.kpi::after{filter:none;opacity:.22;width:140px;height:140px;right:-50px;top:-50px}
.kpi.yt::after{background:radial-gradient(circle,var(--yt),transparent 68%)}
.kpi.tt::after{background:radial-gradient(circle,var(--tt),transparent 68%)}
.kpi-l{display:flex;align-items:center;gap:8px;font-size:12.5px;letter-spacing:.12em;color:#b9c7de}
.kpi-src{margin-left:auto;font-style:normal;font-size:9.5px;letter-spacing:.14em;padding:2px 7px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.kpi.src-live .kpi-src{color:#7ee2a8;border-color:rgba(126,226,168,.4)}
.kpi.src-studio .kpi-src,.kpi.src-snap .kpi-src{color:var(--gold2);border-color:rgba(255,223,138,.35)}
.kpi-v{font-size:clamp(36px,4.2vw,52px);font-variant-numeric:tabular-nums;color:#fff;background:none;-webkit-text-fill-color:#fff;text-shadow:0 0 22px rgba(159,227,255,.25)}
.kpi.big .kpi-v{font-size:clamp(40px,5vw,62px)}
.kpi-s{font-size:13px;color:#a9b8d2}
.kpi.src-na .kpi-v{color:var(--muted);-webkit-text-fill-color:var(--muted);text-shadow:none;opacity:.6}
.kpi.src-na{opacity:.72}
.kpi.src-live.is-stale .kpi-src{color:var(--gold2);border-color:rgba(255,223,138,.45)}
.kpi.src-live.is-stale .kpi-src::after{content:" · stale"}
.kpi.src-live.is-stale .kpi-v{text-shadow:none;opacity:.86}

/* ---- Hearth: connection pill ---- */
.hc-head{flex-wrap:wrap}
.hc-conn{display:inline-flex;align-items:center;gap:8px;margin-left:auto;margin-right:4px;padding:6px 11px;border-radius:999px;font-size:12px;font-weight:600;
  color:#cfe0f5;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);white-space:nowrap}
.hc-conn i{width:9px;height:9px;border-radius:50%;background:var(--muted)}
.hc-conn[data-state=live]{color:#bff3d6;border-color:rgba(126,226,168,.45);background:rgba(126,226,168,.08)}
.hc-conn[data-state=live] i{background:#7ee2a8;box-shadow:0 0 10px rgba(126,226,168,.9)}
.hc-conn[data-state=warn]{color:#ffe7b0;border-color:rgba(255,223,138,.45)}
.hc-conn[data-state=warn] i{background:var(--gold2);animation:pulse 1.4s infinite}
.hc-conn[data-state=off]{color:#ffd0c6;border-color:rgba(255,159,138,.5);background:rgba(255,120,100,.08)}
.hc-conn[data-state=off] i{background:#ff9f8a}
.hc-conn[data-state=idle] i{animation:pulse 1.4s infinite}
.hc-title>i{animation:none}
/* ---- Hearth: calmer thread ---- */
.hearth-chat::after{opacity:.5}
.hc-thread{gap:4px;padding:20px 22px 12px;scroll-behavior:auto;overscroll-behavior:contain}
.hm{max-width:min(660px,84%);margin-top:12px;animation:none}
.hm.hm-new{animation:hmIn .35s var(--ease) both}
.hm.hm-cont{margin-top:2px}
.hm.hm-cont .hm-av{visibility:hidden;height:0}
.hm.hm-cont .hm-meta{display:none}
.hm.hm-cont.hm-ymir .hm-b{border-top-left-radius:8px}
.hm.hm-cont.hm-me .hm-b{border-top-right-radius:8px}
.hm-b{padding:10px 14px;font-size:15px;line-height:1.6;color:#f3f6fb}
.hm-ymir .hm-b{background:rgba(58,36,22,.78);border:1px solid rgba(255,180,100,.22);box-shadow:none}
.hm-me .hm-b{background:rgba(38,72,120,.78);border:1px solid rgba(127,231,255,.25);box-shadow:none}
.hm-sagabox{max-width:min(720px,92%)}
.hm-sagabox .hm-b{background:rgba(24,30,50,.82);border:1px solid rgba(255,180,100,.18);border-left:3px solid var(--fire2)}
.hm-saga{font-size:11.5px;margin-bottom:4px}
.hm-meta{margin-top:5px;font-size:11px;color:rgba(220,214,206,.55);letter-spacing:.02em}
.hm-av{width:30px;height:30px;box-shadow:none}
.hm-sys{margin:10px 0 2px}
.hm-sys span{font-size:11px;padding:5px 12px;background:rgba(127,231,255,.05)}
.hm-day{display:flex;align-items:center;gap:12px;margin:18px 0 4px;color:rgba(255,214,160,.7);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.hm-day::before,.hm-day::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(255,180,100,.28),transparent)}
.hm-day span::before{content:"ᛜ ";font-family:var(--rune);letter-spacing:0}
.hc-jump{position:absolute;left:50%;transform:translateX(-50%);bottom:132px;z-index:4;border:1px solid rgba(255,190,110,.55);border-radius:999px;padding:8px 14px;
  font:600 12.5px/1 "Segoe UI",Inter,system-ui,sans-serif;color:#ffe7c4;background:rgba(30,18,12,.92);box-shadow:0 8px 24px rgba(0,0,0,.45);cursor:pointer}
.hc-jump.has-new{color:#2a1206;background:linear-gradient(135deg,var(--fire3),var(--fire2));border-color:transparent}
.hc-jump[hidden]{display:none}
.hc-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:6px 18px 8px;mask-image:linear-gradient(90deg,#000 92%,transparent)}
.hc-chips::-webkit-scrollbar{display:none}
.hc-chips button{flex:none;font-size:12px;padding:5px 11px;opacity:.85}
.hc-connect{font-size:12.5px}
@media (max-width:900px){.hc-conn{order:3;margin-left:0}.hm{max-width:92%}.hc-jump{bottom:120px}}
@media (prefers-reduced-motion:reduce){.hm.hm-new{animation:none}}

/* =====================================================================
   v11 mobile-adaptive layout (portrait-first; phones 320–430, tablets)
   ===================================================================== */
:root{--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--topbar-h:72px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* views fade without a per-frame blur filter (cheaper everywhere) */
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.logout-btn{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--frost);border-radius:10px;padding:8px 12px;font:600 12px/1 inherit;cursor:pointer;white-space:nowrap}
.logout-btn:hover{border-color:rgba(255,159,138,.5);color:#fff}
.foot-states{display:inline-flex;gap:14px;flex-wrap:wrap}
.sync-state.ok{color:#7ee2a8}.sync-state.warn{color:var(--gold2)}.sync-state.bad{color:#ff9f8a}
.tab-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;display:grid;place-items:center;
  font:700 10.5px/1 "Segoe UI",Inter,system-ui,sans-serif;color:#2a1206;background:linear-gradient(135deg,var(--fire3),var(--fire1));box-shadow:0 0 10px rgba(255,140,40,.6)}
/* safe areas (notch / home indicator) */
.yg-gate{height:100vh;height:100dvh;padding-top:max(clamp(12px,3vh,34px),var(--sat));padding-bottom:max(clamp(14px,4vh,40px),calc(var(--sab) + 10px));
  padding-left:max(14px,var(--sal));padding-right:max(14px,var(--sar))}
.yg-crest{top:max(clamp(14px,4vh,40px),calc(var(--sat) + 8px))}
.yg-field input{font-size:16px}               /* ≥16px: no iOS zoom-on-focus */
.topbar{padding-top:max(12px,var(--sat));padding-left:max(clamp(14px,3vw,36px),var(--sal));padding-right:max(clamp(14px,3vw,36px),var(--sar))}
main{padding-left:max(clamp(14px,3vw,36px),var(--sal));padding-right:max(clamp(14px,3vw,36px),var(--sar))}
.foot-bar{padding-bottom:max(16px,calc(var(--sab) + 8px));padding-left:max(clamp(14px,3vw,36px),var(--sal));padding-right:max(clamp(14px,3vw,36px),var(--sar))}
.hc-composer textarea{font-size:16px}
/* touch: 44px targets, no hover-lift, no costly backdrop blur on cards */
@media (pointer:coarse){
  .tabs button{min-height:44px;padding:12px 14px}
  .hc-btn,.sg-refresh,.btn,#filters button,.logout-btn,.hc-send,.hc-connect button,.hc-jump{min-height:44px}
  .hc-chips button{min-height:38px}
  .stats-refresh{min-width:36px;min-height:36px;font-size:17px}
  .todo li{min-height:52px}
  .yg-enter{min-height:48px}.yg-field input{min-height:48px}
  .card,.kpi{transition:none}.card:hover,.kpi:hover{transform:none;box-shadow:none}
  .card,.topbar,.hh-presence{-webkit-backdrop-filter:none;backdrop-filter:none}
  .card{background:rgba(16,24,46,.9)}
  .topbar{background:rgba(7,11,22,.96)}
}
/* tablets / small laptops */
@media (max-width:1024px){.hearth{grid-template-columns:minmax(240px,300px) 1fr}}
@media (max-width:900px){.hearth{grid-template-columns:1fr}}
/* phones */
@media (max-width:640px){
  .topbar{gap:8px 10px;padding-bottom:8px}
  .brand img{width:34px;height:34px}.brand small{display:none}.brand b{font-size:16px}
  .tabs{border-radius:12px}
  .tabs button{padding:11px 12px;font-size:13px}
  main{padding-top:14px;padding-bottom:40px}
  .card{padding:16px;border-radius:16px;margin-bottom:14px}
  .kpi::after{display:none}
  .hero{padding:18px;gap:10px}.hero-sigil{display:none}
  .hero h1{font-size:clamp(28px,9vw,38px)}.tagline{font-size:14px}
  .hero-meta .chip{font-size:12px}
  .live-today{flex-wrap:wrap;gap:8px}
  .live-today .chip{margin-left:0!important}
  .stats-glance{padding:12px;gap:10px}
  .sg-plats{order:3;width:100%}
  .sg-refresh{margin-left:auto}
  .kpis{gap:10px}
  .kpi{padding:14px}
  .kpi-l{font-size:11px;letter-spacing:.08em}
  .kpi-src{font-size:9px;padding:2px 6px}
  .kpi-v,.kpi.big .kpi-v{font-size:clamp(30px,9.5vw,42px)}
  .kpi-s{font-size:12px}
  .sec-h{font-size:13px;margin:18px 0 10px;flex-wrap:wrap}
  .plat-head{flex-direction:column;align-items:flex-start;gap:12px}
  .filters{display:flex;gap:6px;overflow-x:auto;max-width:100%}
  .foot-bar{font-size:11.5px}
  /* Hearth: chat takes the screen; the fire scene steps aside */
  .hearth{gap:10px;height:auto}
  .hearth-home{display:none}
  .hearth-chat{height:calc(100dvh - var(--topbar-h) - 24px - var(--sab));min-height:420px;border-radius:16px}
  body.in-hearth main{padding-top:10px;padding-bottom:0}
  body.in-hearth .foot-bar{display:none}
  .hc-head{padding:10px 12px;gap:8px}
  .hc-title>i{width:34px;height:34px;font-size:18px}
  .hc-title b{font-size:15px}.hc-title small{font-size:11px}
  .hc-actions{width:100%;order:4}.hc-actions .hc-btn{flex:1;text-align:center}
  .hc-conn{order:2;margin-left:auto}
  .hc-thread{padding:12px 12px 8px}
  .hm{max-width:94%}.hm-sagabox{max-width:100%}
  .hm-b{font-size:15px;padding:9px 12px}
  .hm-av{width:26px;height:26px}
  .hc-chips{padding:4px 12px 6px}
  .hc-composer{margin:0 10px max(10px,var(--sab));padding:6px}
  .hc-send{padding:11px 14px}
  .hc-jump{bottom:calc(118px + var(--sab))}
  .hc-drawer-in{width:100%;padding:18px 16px max(18px,var(--sab))}
  .hc-drawer input{font-size:16px}
  #sky{display:none}
}
@media (max-width:420px){.clock{display:none}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sg-head{font-size:14px}}
@media (max-width:350px){
  .kpis{grid-template-columns:1fr}
  .tabs button i{display:none}
  .yg-panel{padding:14px 12px 12px}.yg-panel h1{font-size:26px}
  .yg-ymir{gap:10px}.yg-avatar{width:44px;height:44px}
}
/* short screens + landscape phones: keep the gate's form on screen */
@media (max-height:700px){
  .yg-panel{max-height:calc(100dvh - var(--sat) - var(--sab) - 24px);overflow:auto}
  .yg-crest-sub{display:none}
  .yg-welcome p:nth-child(1){display:none}
}
@media (max-height:520px) and (orientation:landscape){
  .yg-crest{display:none}
  .yg-ymir,.yg-divider,.yg-welcome{display:none}
  .yg-panel{padding:14px 18px}.yg-panel h1{font-size:24px;margin-bottom:8px}
  .hearth-chat{height:calc(100dvh - var(--topbar-h) - 16px);min-height:300px}
  .hc-chips{display:none}
}

/* Hearth reactions (owner reacts to Ymir; Ymir can react to owner) */
.hm-rx{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px;position:relative}
.hm-rx .rx,.hm-rx .rx-add{font:inherit;font-size:13px;line-height:1;padding:4px 8px;border-radius:999px;border:1px solid rgba(255,200,140,.28);background:rgba(20,14,12,.45);color:#f3e6d6;cursor:pointer;transition:transform .12s,background .12s}
.hm-rx .rx.on{background:rgba(255,150,60,.22);border-color:rgba(255,170,90,.6)}
.hm-rx .rx:hover,.hm-rx .rx-add:hover{transform:scale(1.08);background:rgba(255,150,60,.18)}
.hm-rx .rx-add{opacity:.55;font-size:12px}
.hm-ymir:hover .rx-add,.hm-rx .rx-add:focus-visible{opacity:1}
.hm-rx .rx-pick{display:flex;gap:4px;padding:5px;border-radius:14px;background:rgba(28,18,14,.96);border:1px solid rgba(255,180,100,.35);box-shadow:0 6px 18px rgba(0,0,0,.45);animation:rxIn .14s ease-out}
.hm-rx .rx-pick .rx{font-size:17px;padding:5px 6px;border:none;background:transparent}
.hm-rx .rx-pick .rx.on{background:rgba(255,150,60,.25)}
.hm-rx-ymir{justify-content:flex-end}
.hm-rx-ymir .rx{cursor:default;border-color:rgba(127,231,255,.4);background:rgba(20,40,60,.5)}
@keyframes rxIn{from{opacity:0;transform:translateY(4px) scale(.96)}to{opacity:1;transform:none}}
@media (hover:none){.hm-rx .rx-add{opacity:.8}}
@media (pointer:coarse){.hm-rx .rx,.hm-rx .rx-add{min-height:34px;min-width:38px;padding:6px 10px}.hm-rx .rx-pick{flex-wrap:wrap;max-width:100%}.hm-rx .rx-pick .rx{min-width:40px;min-height:40px;font-size:19px}}
@media (max-width:640px){
  .logout-btn{margin-left:auto}
  #overview.view.active{display:flex;flex-direction:column}
  #overview .stats-glance{order:-1;margin-top:0}
  .hero .tagline,.hero-meta .stats-chip{display:none}
  .hero-meta{margin-top:10px}
  .hc-connect{display:none}
}

/* =====================================================================
   v13 — desktop Overview breathing room · growth graphs · new hall mark · living Hearth
   ===================================================================== */
/* ---- new hall mark (round World Tree seal) ---- */
.brand img{border-radius:50%;object-fit:cover}
.hero-sigil img{width:74%;height:auto;aspect-ratio:1;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px rgba(232,193,98,.35),0 0 70px rgba(92,200,255,.35)}

/* ---- layout wrappers: transparent below desktop, so phone/tablet flow is unchanged ---- */
.ov-top,.ov-side{display:contents}
.ov-plat{min-width:0}
.kpi-l{flex-wrap:wrap;row-gap:4px}

/* ---- Ymir on the Overview ---- */
.ov-ymir{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--frost);padding:14px 16px;
  background:linear-gradient(135deg,rgba(58,34,18,.78),rgba(16,24,46,.78));border-color:rgba(255,180,100,.3)}
.ov-ymir:hover{border-color:rgba(255,190,110,.6);box-shadow:0 10px 40px -12px rgba(255,130,40,.45)}
.ov-ymir::before{background:linear-gradient(130deg,rgba(255,180,100,.6),transparent 35%,transparent 70%,rgba(127,231,255,.4))}
.ov-ymir-av{position:relative;width:52px;height:52px;flex:none}
.ov-ymir-av img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid rgba(255,200,120,.7);box-shadow:0 0 18px rgba(255,140,40,.45)}
.ov-ymir-av i{position:absolute;inset:-5px;border-radius:50%;border:2px solid transparent;border-top-color:var(--fire2);border-right-color:var(--hearth-ice);animation:spin 9s linear infinite;opacity:.75}
.ov-ymir[data-ymir=thinking] .ov-ymir-av i{animation-duration:1.4s;opacity:1}
.ov-ymir[data-ymir=speaking] .ov-ymir-av img{animation:ymirVoice 1.1s ease-in-out infinite}
.ov-ymir-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ov-ymir-txt b{font-size:15px;letter-spacing:.04em}
.ov-ymir-txt b small{font-weight:500;color:#f3c99a;font-size:12px;letter-spacing:.01em}
#ovYmirLine{font-size:13px;line-height:1.45;color:#d8e2f2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ov-ymir-go{font-size:12px;font-weight:700;color:var(--fire2);white-space:nowrap;letter-spacing:.04em}

/* ---- top bar: fits 1024–1280 without clipping tabs ---- */
@media (min-width:761px) and (max-width:1279px){
  .topbar{gap:12px}
  .brand small{display:none}
  .tabs button{padding:8px 11px}
  .tabs button i{margin-right:5px}
}
@media (min-width:761px) and (max-width:1149px){.clock{display:none}.tabs button{padding:8px 9px;font-size:12.5px}}

/* ---- desktop Overview (≥1100): hero + Ymir/status column, YouTube | TikTok side by side ---- */
@media (min-width:1100px){
  main{max-width:1380px;padding-top:30px}
  .ov-top{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(360px,1fr);gap:24px;align-items:stretch}
  .ov-top .hero{margin:0;grid-template-columns:minmax(0,1fr) 210px;gap:28px;padding:34px 38px}
  .ov-top .hero h1{font-size:clamp(42px,3.8vw,58px)}
  .ov-top .hero-sigil{max-width:210px}
  .ov-top .hero-meta .stats-chip{display:none}         /* the status column right next to it says the same */
  .ov-side{display:flex;flex-direction:column;gap:16px;min-width:0}
  .ov-side>.card,.ov-side>.stats-glance{margin:0}
  .ov-side .live-today{flex:1;align-content:center;gap:10px 14px}
  .ov-side .live-today .chip{margin-left:0!important}
  .ov-side .stats-glance{gap:12px 14px;padding:14px 18px}
  .ov-side .sg-plats{order:3;width:100%}
  .ov-side .sg-refresh{margin-left:auto}
  .ov-plats{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:14px}
  .ov-plat .sec-h{margin-top:22px}
  .ov-plat .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .ov-plat .kpi{padding:20px 22px}
  .ov-plat .growth{margin:16px 0 0}
  #overview>.grid2{gap:28px;margin-top:28px}
  #overview .grid2 .card{padding:22px 24px}
}
@media (min-width:1100px) and (max-width:1279px){
  .ov-top{grid-template-columns:minmax(0,1.35fr) minmax(330px,1fr)}
  .ov-top .hero{grid-template-columns:minmax(0,1fr) 160px;padding:28px 30px}
  .ov-top .hero-sigil{max-width:160px}
  .ov-plats{gap:22px}
}
/* tablets / small laptops 761–1099: one column, 4-up KPIs only where they fit */
@media (min-width:761px) and (max-width:1099px){
  .ov-plat .growth{margin-top:14px}
  .ov-ymir{margin-bottom:18px}
}
@media (min-width:981px) and (max-width:1099px){.kpi{padding:18px}.kpi-l{font-size:11.5px;letter-spacing:.08em}}

/* ---- growth graphs ---- */
.growth{padding:18px 20px 14px}
.growth:hover{transform:none}
.gc-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.gc-head h3{margin:0}
.gc-head h3 i{font-style:normal;font-family:var(--rune);margin-right:8px;text-shadow:0 0 10px rgba(232,193,98,.7)}
.gc-mode{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--ice);border-radius:999px;padding:5px 11px;font:600 11.5px/1 inherit;cursor:pointer}
.gc-mode[hidden]{display:none}
.gc-tabs{display:flex;gap:6px;margin:12px 0 10px;flex-wrap:wrap}
.gc-tabs button{border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--muted);border-radius:999px;padding:6px 12px;font:600 12px/1 inherit;cursor:pointer;transition:color .2s,background .2s}
.gc-tabs button:hover{color:var(--frost)}
.gc-tabs button.on{color:#140a06;border-color:transparent;background:linear-gradient(135deg,#ffc2c4,var(--gold2))}
[data-growth=tt] .gc-tabs button.on{color:#04161a;background:linear-gradient(135deg,var(--tt),#c9f4ff)}
.gc-sum{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.gc-now b{font-size:28px;font-weight:800;font-variant-numeric:tabular-nums;color:#fff}
.gc-now small{margin-left:8px;color:var(--muted);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase}
.gc-delta{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;font-variant-numeric:tabular-nums}
.gc-delta.up{color:#7ee2a8;background:rgba(126,226,168,.12)}
.gc-delta.down{color:#ff9f8a;background:rgba(255,159,138,.12)}
.gc-delta.flat{color:#c8d4e8;background:rgba(255,255,255,.06)}
.gc-plot{position:relative;height:180px;margin:0 -4px}
.growth-wide .gc-plot{height:220px}
.gc-plot svg{display:block;width:100%;height:100%;overflow:visible;touch-action:pan-y}
.gc-grid{stroke:rgba(160,210,255,.12);stroke-dasharray:3 5}
.gc-y,.gc-x{fill:#8496b6;font:500 10.5px "Segoe UI",Inter,system-ui,sans-serif}
.gc-y{text-anchor:end}
.gc-line{stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1600;stroke-dashoffset:1600;animation:gcDraw 1.4s var(--ease) .1s forwards}
@keyframes gcDraw{to{stroke-dashoffset:0}}
.gc-area{opacity:0;animation:gcFade .9s ease .5s forwards}
@keyframes gcFade{to{opacity:1}}
.gc-dot{fill:#0b1020;stroke:currentColor;stroke-width:1.6}
.gc-last{fill:currentColor;stroke:#fff;stroke-width:1.5}
.gc-halo{fill:currentColor;opacity:.25;transform-box:fill-box;transform-origin:center;animation:gcHalo 2.6s ease-in-out infinite}
@keyframes gcHalo{50%{opacity:.04;transform:scale(1.7)}}
.gc-cross{stroke:rgba(232,246,255,.3);stroke-dasharray:2 3}
.gc-tip{position:absolute;z-index:3;transform:translate(-50%,calc(-100% - 12px));padding:6px 10px;border-radius:10px;background:rgba(8,12,24,.95);border:1px solid rgba(232,193,98,.4);
  box-shadow:0 8px 20px rgba(0,0,0,.45);pointer-events:none;white-space:nowrap;display:flex;flex-direction:column;align-items:center;font-size:11.5px;color:var(--muted)}
.gc-tip b{font-size:15px;color:#fff;font-variant-numeric:tabular-nums}
.gc-tip[hidden]{display:none}
.gc-note{margin:6px 0 0;font-size:12px;color:var(--muted)}
.gc-empty{margin:0;padding:40px 0;text-align:center;color:var(--muted);font-size:13px}
@media (max-width:640px){.growth{padding:16px 14px 12px}.gc-plot,.growth-wide .gc-plot{height:150px}.gc-now b{font-size:24px}.gc-tabs button{padding:8px 11px}.ov-ymir-go{display:none}.ov-ymir{padding:12px 14px}}
@media (pointer:coarse){.gc-tabs button,.gc-mode{min-height:36px}}
@media (prefers-reduced-motion:reduce){.gc-line{stroke-dashoffset:0}.gc-area{opacity:1}}

/* ---- Living Hearth: Ymir's presence ---- */
@keyframes ymirVoice{0%,100%{box-shadow:0 0 0 0 rgba(255,170,80,.55),0 0 18px rgba(255,140,40,.5)}50%{box-shadow:0 0 0 7px rgba(255,170,80,0),0 0 30px rgba(255,170,80,.85)}}
@keyframes ymirThink{0%,100%{box-shadow:0 0 14px rgba(127,231,255,.35)}50%{box-shadow:0 0 28px rgba(127,231,255,.8)}}
.hh-wave{display:none;align-items:flex-end;gap:2px;height:11px;margin-right:6px;vertical-align:-1px}
.hh-wave i{width:3px;border-radius:2px;background:currentColor;height:4px;animation:ymirBar .9s ease-in-out infinite}
.hh-wave i:nth-child(2){animation-delay:-.3s}.hh-wave i:nth-child(3){animation-delay:-.6s}
@keyframes ymirBar{50%{height:11px}}
[data-ymir=speaking] .hh-wave,[data-ymir=thinking] .hh-wave{display:inline-flex}
[data-ymir=thinking] .hh-wave i{height:4px;width:4px;border-radius:50%;animation:ymirDot 1.2s ease-in-out infinite}
[data-ymir=thinking] .hh-wave i:nth-child(2){animation-delay:.2s}[data-ymir=thinking] .hh-wave i:nth-child(3){animation-delay:.4s}
@keyframes ymirDot{0%,100%{transform:translateY(0);opacity:.45}40%{transform:translateY(-5px);opacity:1}}

/* chat header: Ymir's face + live state */
.hc-title{min-width:0}
.hc-av{position:relative;width:44px;height:44px;flex:none}
.hc-av img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid rgba(255,200,120,.75);box-shadow:0 0 16px rgba(255,140,40,.45);transition:filter .4s}
.hc-av-ring{position:absolute;inset:-5px;border-radius:50%;border:2px solid transparent;border-top-color:var(--fire2);border-right-color:rgba(127,231,255,.7);animation:spin 10s linear infinite;opacity:.7}
.hc-av-dot{position:absolute;right:-1px;bottom:1px;width:12px;height:12px;border-radius:50%;background:var(--aur1);border:2px solid #1b1210}
.hc-av[data-ymir=thinking] .hc-av-ring{animation-duration:1.3s;opacity:1;border-right-color:var(--hearth-ice)}
.hc-av[data-ymir=thinking] img{animation:ymirThink 1.8s ease-in-out infinite}
.hc-av[data-ymir=speaking] img{animation:ymirVoice 1s ease-in-out infinite}
.hc-av[data-ymir=speaking] .hc-av-dot{background:var(--fire2)}
.hc-av[data-ymir=listening] .hc-av-ring{border-top-color:var(--hearth-ice);opacity:1}
.hc-av[data-ymir=away] img{filter:grayscale(.8) brightness(.8)}.hc-av[data-ymir=away] .hc-av-dot{background:var(--muted)}
.hc-who{min-width:0}
.hc-who b{display:block;font-size:16px;letter-spacing:.05em}
.hc-who b em{font-style:normal;font-weight:500;font-size:12px;color:var(--muted);letter-spacing:.02em}
.hc-presence{display:flex!important;align-items:center;font-size:12.5px!important;color:#f3c99a!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hc-presence-t{overflow:hidden;text-overflow:ellipsis}
.hc-title small.hc-link{font-size:11px;color:var(--muted)}
.hc-title small.hc-link.on{color:var(--aur1)}
.hearth[data-ymir=thinking] .hc-presence{color:var(--hearth-ice)!important}
.hearth[data-ymir=speaking] .hc-presence{color:var(--fire3)!important}

/* typing / thinking bubble */
.hm-typing{margin-top:12px;animation:hmIn .35s var(--ease) both}
.hm-typing .hm-b{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(58,36,22,.6);border:1px dashed rgba(255,180,100,.35)}
.ty-dots{display:inline-flex;gap:4px}
.ty-dots i{width:7px;height:7px;border-radius:50%;background:var(--fire2);box-shadow:0 0 8px rgba(255,150,60,.8);animation:ymirDot 1.2s ease-in-out infinite}
.ty-dots i:nth-child(2){animation-delay:.18s}.ty-dots i:nth-child(3){animation-delay:.36s}
.ty-line{font-size:13px;font-style:italic;color:#f3c99a}
.hm-typing .hm-av{animation:ymirThink 1.8s ease-in-out infinite}
/* words arrive while Ymir speaks */
.hm-speak .w{display:inline;opacity:0;animation:wordIn .42s var(--ease) forwards;animation-delay:var(--d,0ms)}
@keyframes wordIn{from{opacity:0}to{opacity:1}}
.hm-speak .hm-b{box-shadow:0 0 0 1px rgba(255,190,110,.35),0 8px 30px -12px rgba(255,130,40,.7)}
.hm-quote{margin:0 0 6px;padding-left:9px;border-left:2px solid rgba(255,180,100,.45);font-size:12px;line-height:1.45;color:rgba(243,214,180,.75);font-style:italic}
@media (prefers-reduced-motion:reduce){.hm-speak .w{opacity:1;animation:none}.ty-dots i,.hh-wave i{animation:none}}

/* by-the-fire atmosphere: a warm glow that breathes under the conversation */
.hearth-chat>.hc-thread,.hearth-chat>.hc-chips,.hearth-chat>.hc-composer,.hearth-chat>.hc-head,.hearth-chat>.hc-connect{position:relative;z-index:1}
.hc-fireline{position:absolute;left:0;right:0;bottom:0;height:190px;z-index:0;pointer-events:none;overflow:hidden}
.hc-fireline i{position:absolute;bottom:-90px;width:60%;height:200px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,130,40,.22),rgba(255,90,20,.06) 60%,transparent);animation:fireBreath 5s ease-in-out infinite}
.hc-fireline i:nth-child(1){left:-10%}.hc-fireline i:nth-child(2){left:20%;width:60%;animation-delay:-1.7s;animation-duration:6.2s}.hc-fireline i:nth-child(3){right:-10%;animation-delay:-3.1s;animation-duration:4.4s;background:radial-gradient(closest-side,rgba(127,231,255,.12),transparent)}
@keyframes fireBreath{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.08,1.15)}}
.hearth[data-ymir=thinking] .hc-fireline i:nth-child(3){background:radial-gradient(closest-side,rgba(127,231,255,.28),transparent);animation-duration:2.2s}
.hearth[data-ymir=speaking] .hc-fireline i{animation-duration:1.6s}
.hearth[data-ymir=speaking] .hc-fireline i:nth-child(1),.hearth[data-ymir=speaking] .hc-fireline i:nth-child(2){background:radial-gradient(closest-side,rgba(255,150,50,.34),rgba(255,90,20,.08) 60%,transparent)}

/* desktop home panel: presence, the fire answering his state, Ymir's watch */
.hh-scene{flex-basis:44%}
.hh-avatar{width:64px;height:64px}
.hh-avatar img{object-position:50% 30%}
.hh-who{min-width:0}
.hh-role{margin:1px 0 0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,214,160,.7)}
.hh-status{display:flex;align-items:center;margin-top:5px}
#hhPresence[data-ymir=thinking] .hh-ring{animation-duration:1.4s;border-right-color:var(--hearth-ice)}
#hhPresence[data-ymir=thinking] .hh-avatar img{animation:ymirThink 1.8s ease-in-out infinite}
#hhPresence[data-ymir=thinking] .hh-status{color:var(--hearth-ice)}
#hhPresence[data-ymir=speaking] .hh-avatar img{animation:ymirVoice 1s ease-in-out infinite}
#hhPresence[data-ymir=speaking] .hh-status{color:var(--fire3)}
#hhPresence[data-ymir=away] .hh-avatar img{filter:grayscale(.8)}#hhPresence[data-ymir=away] .hh-dot{background:var(--muted);animation:none}
.hearth[data-ymir=thinking] .hh-glow{animation-duration:1.3s}
.hearth[data-ymir=speaking] .hh-glow{animation-duration:.8s}
.hearth[data-ymir=speaking] .hh-fire,.hearth[data-ymir=thinking] .hh-fire{transform:translateX(-50%) scale(1.08);transition:transform .8s var(--ease)}
.hh-fire{transition:transform .8s var(--ease)}
.hh-watch{position:relative;z-index:1;padding:12px 16px 0}
.hh-watch ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.hh-watch li{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:rgba(127,231,255,.05);border:1px solid rgba(127,231,255,.14)}
.hh-watch li i{font-style:normal;font-family:var(--rune);width:26px;height:26px;flex:none;display:grid;place-items:center;border-radius:8px;color:#06101e;background:linear-gradient(135deg,var(--ice),var(--aur1))}
.hh-watch li b{display:block;font-size:13px;color:var(--frost);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hh-watch li span{min-width:0}
.hh-watch li small{color:var(--muted);font-size:11px}
.hh-sagas{padding-top:10px}
@media (max-height:820px) and (min-width:901px){.hh-scene{flex-basis:36%;min-height:200px}.hh-watch li:nth-child(3){display:none}}

/* phones: one compact header row — Ymir's face + state, a quiet connection dot, icon actions */
@media (max-width:640px){
  .hc-head{flex-wrap:wrap;gap:8px 10px;padding:10px 12px}
  .hc-title{order:1;flex:1;gap:10px}
  .hc-av{width:38px;height:38px}
  .hc-who b{font-size:15px}.hc-who b em{display:none}
  .hc-title small.hc-link{display:none}
  .hc-conn{order:2;margin:0;padding:6px 9px}
  .hc-conn[data-state=live] span,.hc-conn[data-state=idle] span{display:none}
  .hc-actions{order:3;width:auto}
  .hc-actions .hc-btn{flex:none;min-width:44px;padding:10px 12px;font-size:15px}
  .hc-btn-t{display:none}
  .hc-fireline{height:150px}
}
@media (max-width:350px){.hc-actions .hc-btn{min-width:40px;padding:10px}.hc-av{width:34px;height:34px}}

/* =====================================================================
   v14 — phone fit + keyboard seamlessness
   --vvh / --vvt come from assets/viewport.js (visual viewport); fall back to dvh.
   ===================================================================== */
html{background-color:var(--ink);overflow-x:clip}
body{overflow-x:clip;min-height:100vh;min-height:100svh}
/* no letterbox: the night fills behind notch, home bar and rubber-band edges */
html,body{overscroll-behavior-y:none}
input,textarea,select{font-size:max(16px,1em)}                     /* ≥16px everywhere: iOS never zooms on focus */
.hc-drawer input,.hc-composer textarea,.yg-field input{font-size:16px}
main img,main video{max-width:100%}
.tabs,.hc-chips,.filters{overscroll-behavior-x:contain}
.hc-thread{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
button,a,.hc-send,.yg-enter{touch-action:manipulation}               /* no double-tap zoom / 300ms delay */

/* ---------- Gate: always the visible glass, form rides above the keyboard ---------- */
.yg-gate{top:var(--vvt,0px);bottom:auto;height:100dvh;height:var(--vvh,100dvh);min-height:0}
body.locked{position:fixed;inset:0;width:100%;overflow:hidden;overscroll-behavior:none}
.yg-panel{max-width:calc(100vw - var(--sal) - var(--sar) - 20px)}
html.kb-open .yg-gate{padding-top:max(8px,var(--sat));padding-bottom:10px;justify-content:flex-end}
html.kb-open .yg-crest,html.kb-open .yg-welcome,html.kb-open .yg-divider,html.kb-open .yg-foot{display:none}
html.kb-open .yg-panel{max-height:calc(var(--vvh,100dvh) - var(--sat) - 20px);overflow:auto;overscroll-behavior:contain;padding-top:14px;padding-bottom:12px}
html.kb-open .yg-panel h1{font-size:24px;margin-bottom:6px}
@media (max-height:700px){.yg-panel{max-height:calc(var(--vvh,100dvh) - var(--sat) - var(--sab) - 24px)}}

/* ---------- Hearth on phones: docked to the visible viewport, composer pinned above the keyboard ---------- */
@media (max-width:640px){
  html.hearth-on,html.hearth-on body{height:100%;overflow:hidden;overscroll-behavior:none}
  html.hearth-on #hearth.view.active{animation:none}                 /* transforms would re-anchor the fixed chat */
  html.hearth-on .hearth{height:0;min-height:0}
  html.hearth-on .hearth-chat{
    position:fixed;z-index:15;margin:0;min-height:0;
    left:max(8px,var(--sal));right:max(8px,var(--sar));
    top:calc(var(--vvt,0px) + var(--topbar-h) + 8px);
    height:calc(var(--vvh,100dvh) - var(--topbar-h) - 8px);
    border-radius:16px 16px 0 0;border-bottom:0}
  html.hearth-on .hc-composer{margin:0 8px max(8px,var(--sab));flex:none}
  html.hearth-on .hc-thread{flex:1 1 auto;min-height:0;padding-bottom:10px}
  html.hearth-on .hc-chips,html.hearth-on .hc-head,html.hearth-on .hc-connect{flex:none}
  html.hearth-on .hc-jump{bottom:calc(84px + var(--sab))}
  /* keyboard up: the Hall bar steps aside, Ymir's header stays, the chat owns every visible pixel */
  html.hearth-on.kb-open .topbar{display:none}
  html.hearth-on.kb-open .hearth-chat{top:calc(var(--vvt,0px) + max(6px,var(--sat)));height:calc(var(--vvh,100dvh) - max(6px,var(--sat)));border-radius:14px 14px 0 0}
  html.hearth-on.kb-open .hc-composer{margin-bottom:6px}               /* home bar is under the keyboard */
  html.hearth-on.kb-open .hc-chips,html.hearth-on.kb-open .hc-connect,html.hearth-on.kb-open .hc-fireline{display:none}
  html.hearth-on.kb-open .hc-head{padding:6px 10px}
  html.hearth-on.kb-open .hc-av{width:32px;height:32px}
  html.hearth-on.kb-open .hc-jump{bottom:72px}
  html.hearth-on.kb-open .hc-composer textarea{max-height:96px}
  .hc-drawer-in{padding-top:max(18px,var(--sat))}
}
/* landscape phones */
@media (max-height:520px) and (orientation:landscape) and (pointer:coarse){
  html.hearth-on,html.hearth-on body{height:100%;overflow:hidden;overscroll-behavior:none}
  html.hearth-on #hearth.view.active{animation:none}
  html.hearth-on .hearth{height:0;min-height:0}
  html.hearth-on .hearth-home{display:none}
  html.hearth-on .hearth-chat{position:fixed;z-index:15;left:max(8px,var(--sal));right:max(8px,var(--sar));
    top:calc(var(--vvt,0px) + var(--topbar-h) + 6px);height:calc(var(--vvh,100dvh) - var(--topbar-h) - 6px);min-height:0;border-radius:14px 14px 0 0}
  html.hearth-on .hc-composer{margin:0 8px max(6px,var(--sab))}
  html.hearth-on.kb-open .topbar{display:none}
  html.hearth-on.kb-open .hearth-chat{top:var(--vvt,0px);height:var(--vvh,100dvh)}
  html.hearth-on.kb-open .hc-head,html.hearth-on.kb-open .hc-chips{display:none}
}
.hc-composer textarea{min-width:0}
.hc-composer textarea::placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* =====================================================================
   v16 — gate-first: the watchword panel is on the glass from the first frame
   ===================================================================== */
.yg-panel{animation:ygPanelIn .28s var(--ease) both}                 /* was .75s after a .3s delay — field now usable at once */
@keyframes ygPanelIn{from{opacity:.001;transform:translateY(8px)}}
.yg-crest{animation:ygUp .4s var(--ease) both}
.yg-dawn{animation-duration:.6s}
.yg-tree{animation-duration:.9s}
/* while typing on a phone, park the decorative motion so key presses never wait on the compositor */
html.kb-open .yg-scene *,html.kb-open .yg-panel-edge,html.kb-open .yg-avatar-ring,html.kb-open .yg-enter::after{animation-play-state:paused!important}
html.kb-open .yg-aurora,html.kb-open .yg-mist,html.kb-open .yg-rays{display:none}
#yg-form.yg-opening .yg-enter{opacity:.75;pointer-events:none}
#yg-form.yg-opening .yg-enter span::after{content:" …"}

/* ---------- v16 · Road to Monetization ---------- */
.rtm h3 .rtm-badge{font-size:10.5px;letter-spacing:.12em;padding:3px 9px;border-radius:999px;border:1px solid var(--line);color:var(--muted,#9fb0cc)}
.rtm-badge.live{color:var(--aur1);border-color:rgba(54,226,196,.45)}
.rtm-badge.known{color:var(--gold2);border-color:rgba(232,193,98,.45)}
.rtm-sub{margin:-6px 0 14px;font-size:13px;color:rgba(214,228,248,.75)}
.rtm-tiers{display:grid;gap:14px}
@media (min-width:900px){.rtm-tiers{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}}
.rtm-tier{border:1px solid var(--line);border-radius:16px;padding:14px 14px 10px;background:rgba(8,14,30,.45)}
.rtm-tier.full{border-color:rgba(232,193,98,.35);background:linear-gradient(160deg,rgba(60,44,12,.22),rgba(8,14,30,.45))}
.rtm-th{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}
.rtm-th b{display:block;font-size:15px;color:#fff}
.rtm-th small{display:block;font-size:12px;color:rgba(214,228,248,.7);margin-top:2px;line-height:1.4}
.rtm-step{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:#0a1220;background:linear-gradient(135deg,var(--ice),var(--gold2))}
.rtm-rows{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.rtm-top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px}
.rtm-l{color:rgba(230,240,255,.92)}
.rtm-v{color:rgba(214,228,248,.8);font-variant-numeric:tabular-nums}
.rtm-v b{color:#fff}
.rtm-p{font-weight:700;color:var(--ice);margin-left:4px}
.rtm-row.met .rtm-p{color:var(--aur1)}
.rtm-src{font-style:normal;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:6px;border:1px solid var(--line);margin-left:4px;white-space:nowrap}
.rtm-src.live{color:var(--aur1);border-color:rgba(54,226,196,.4)}
.rtm-src.proxy{color:var(--gold2);border-color:rgba(232,193,98,.4)}
.rtm-src.known,.rtm-src.snap{color:var(--gold2)}
.rtm-src.na{color:rgba(200,214,235,.6);border-style:dashed}
.rtm-bar{position:relative;height:9px;margin-top:6px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}
.rtm-bar i{position:absolute;inset:0 auto 0 0;min-width:3px;border-radius:inherit;background:linear-gradient(90deg,var(--ice2),var(--ice),var(--gold2));box-shadow:0 0 12px rgba(159,227,255,.45);transition:width .8s var(--ease)}
.rtm-row.met .rtm-bar i{background:linear-gradient(90deg,var(--aur1),var(--gold2))}
.rtm-bar.na{background:repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 6px,transparent 6px 12px)}
.rtm-bar.na i{display:none}
.rtm-n{margin:5px 0 0;font-size:11.5px;line-height:1.45;color:rgba(200,214,235,.62)}
.rtm-or{margin:12px 0 2px;font-size:12px;color:rgba(214,228,248,.7)}
.rtm-or span{display:inline-block;margin-right:6px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.rtm-tip{margin:14px 0 4px;font-size:12.5px;color:rgba(255,236,196,.85)}
@media (max-width:640px){.rtm-tier{padding:12px 11px 8px}.rtm-top{font-size:12.5px}}

/* ---- v20: countdown board (Ymir's watch + Overview) ---- */
.hh-clocks{margin-bottom:10px}
.cd-list{display:grid;gap:8px}
.cd{position:relative;padding:10px 12px 9px;border-radius:14px;background:linear-gradient(160deg,rgba(127,231,255,.07),rgba(255,140,50,.06));
  border:1px solid rgba(127,231,255,.18);box-shadow:0 0 0 1px rgba(255,170,90,.06) inset}
.cd-h{display:flex;align-items:flex-start;gap:8px;min-width:0}
.cd-h i{font-style:normal;font-family:var(--rune);width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:7px;color:#06101e;
  background:linear-gradient(135deg,var(--hearth-ice),var(--aur1));font-size:13px}
.cd-h b{flex:1;min-width:0;font-size:13.5px;line-height:1.3;color:var(--frost);white-space:normal;overflow-wrap:anywhere}
.cd-acts{display:flex;gap:3px;flex:none}
.cd-b{border:1px solid transparent;background:none;color:var(--muted);font:600 12px/1 inherit;padding:5px 6px;border-radius:8px;cursor:pointer;opacity:.6;transition:.2s}
.cd-b:hover,.cd-b:focus-visible{opacity:1;border-color:rgba(127,231,255,.3);color:var(--frost)}
.cd-b.on{opacity:1;background:rgba(255,150,60,.2);border-color:rgba(255,180,100,.45)}
.cd-live{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--aur1);padding:3px 6px;border-radius:6px;border:1px solid rgba(54,226,196,.35)}
.cd-digits{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0 6px}
.cd-u{display:flex;flex-direction:column;align-items:center;padding:6px 2px 4px;border-radius:10px;background:rgba(7,11,22,.55);border:1px solid rgba(127,231,255,.12)}
.cd-u em{font-style:normal;font:700 clamp(22px,2.3vw,30px)/1 inherit;font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--frost);
  text-shadow:0 0 14px rgba(127,231,255,.45)}
.cd-u small{margin-top:3px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--fire2)}
.cd-u:last-child em{color:var(--fire3);text-shadow:0 0 14px rgba(255,140,40,.55)}
.cd-sub{display:block;color:var(--muted);font-size:11px;line-height:1.4}
.cd-t{display:block;color:#d8e2f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cd-done{border-color:rgba(255,180,100,.5);background:linear-gradient(160deg,rgba(255,122,26,.18),rgba(58,34,18,.5))}
.cd-done .cd-h i{background:linear-gradient(135deg,var(--fire3),var(--fire1))}
.cd-zero{margin:8px 0 6px;padding:8px;text-align:center;border-radius:10px;font:800 clamp(20px,2vw,26px)/1.1 inherit;letter-spacing:.08em;color:var(--fire3);
  background:rgba(7,11,22,.45);text-shadow:0 0 18px rgba(255,140,40,.7);animation:cdGlow 2.4s ease-in-out infinite}
@keyframes cdGlow{50%{text-shadow:0 0 28px rgba(255,170,70,.95)}}
@media (prefers-reduced-motion:reduce){.cd-zero{animation:none}}
.cd-empty{margin:0;color:var(--muted);font-size:12px}
.cd-ctl{margin-top:8px}
.cd-add{border:1px dashed rgba(255,180,100,.45);background:rgba(255,150,60,.08);color:var(--fire2);font:700 12px/1 inherit;padding:7px 12px;border-radius:10px;cursor:pointer;letter-spacing:.04em}
.cd-add:hover{background:rgba(255,150,60,.18)}
.cd-form{display:grid;gap:8px;margin-top:8px;padding:10px;border-radius:12px;background:rgba(7,11,22,.6);border:1px solid rgba(127,231,255,.18)}
.cd-form[hidden]{display:none}
.cd-form label{display:grid;gap:4px;font-size:11px;color:var(--muted);letter-spacing:.06em}
.cd-form input{width:100%;box-sizing:border-box;padding:8px 10px;border-radius:9px;border:1px solid rgba(127,231,255,.25);background:rgba(18,26,48,.8);color:var(--frost);font:500 14px/1.2 inherit;color-scheme:dark}
.cd-form input:disabled{opacity:.5}
.cd-fbtn{display:flex;gap:8px}
.cd-save,.cd-cancel{flex:1;padding:8px;border-radius:9px;font:700 13px/1 inherit;cursor:pointer}
.cd-save{border:0;color:#06101e;background:linear-gradient(135deg,var(--ice),var(--aur1))}
.cd-cancel{border:1px solid var(--line);background:none;color:var(--muted)}
.cd-msg{color:var(--muted);font-size:11px}
/* Overview copy */
.ov-cd{padding:14px 16px}
.ov-cd .cd-title{margin:0 0 10px}
.cd-compact .cd-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.ov-side .cd-compact .cd-list{grid-template-columns:1fr}
@media (min-width:1100px){.ov-side .cd-compact .cd-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}
@media (pointer:coarse){.cd-b{min-width:34px;min-height:32px;opacity:.85}}
@media (max-width:640px){.cd-u em{font-size:24px}}
.cd-restore{border:0;background:none;color:var(--muted);font:600 11.5px/1 inherit;cursor:pointer;text-decoration:underline;padding:7px 6px}
.cd-restore[hidden]{display:none}

/* ---- v21: countdown fix — wrapped labels, explicit ET target line, unit words, story row ---- */
.cd-h i{margin-top:1px}
.cd-h b{text-overflow:clip}
.cd-target{margin:6px 0 0;font-size:12.5px;line-height:1.35;color:#e6eefb;font-variant-numeric:tabular-nums}
.cd-target span{display:inline-block;margin-right:4px;padding:1px 6px;border-radius:5px;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--fire2);border:1px solid rgba(255,180,100,.35);vertical-align:1px}
.cd-target time{font-weight:700}
.cd-u{min-width:0}
.cd-u small{font-size:9.5px;letter-spacing:.1em}
.cd-story{margin:0 0 4px;color:#d8e2f2;font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.cd-story span{color:var(--aur1);font-size:10px;letter-spacing:.1em;text-transform:uppercase;margin-right:4px}
.cd-done .cd-target{color:var(--fire2)}
@media (max-width:640px){
  .cd-digits{gap:5px}
  .cd-u em{font-size:clamp(20px,7vw,28px)}
  .cd-target{font-size:13px}
}
@media (max-width:360px){.cd-u small{font-size:9px;letter-spacing:.04em}}

/* ---- v22: Watch scrolls · stable clocks ---- */
/* Desktop/tablet Hearth rail: smaller scene, then ONE scroll region (clocks + summary + sagas). */
.hh-scene{flex:0 0 30%;min-height:170px}
.hh-scroll{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,170,90,.4) transparent;padding-bottom:14px}
.hh-scroll:focus-visible{outline:2px solid rgba(127,231,255,.45);outline-offset:-2px}
.hh-scroll .hh-watch{flex:none;overflow:visible}
.hh-scroll .hh-sagas{flex:none;overflow:visible}
.hh-presence{flex:none}
@media (max-height:820px) and (min-width:901px){.hh-scene{flex-basis:26%;min-height:150px}.hh-watch li:nth-child(3){display:flex}}
@media (max-width:900px){
  .hh-scene{flex:none;height:200px}
  .hh-scroll{flex:none;max-height:none;overflow:visible}   /* aside has natural height here; the page scrolls */
}
/* Overview countdown card: cap the body and let it scroll (mobile PWA board). */
.ov-cd .cd-list{max-height:min(68vh,620px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-right:2px}
@media (max-width:640px){.ov-cd .cd-list{max-height:min(60dvh,560px)}}
/* stable card template: hidden rows really hide (.cd-sub sets display:block) */
.cd-story[hidden],.cd-sub[hidden]{display:none}
.cd-story em{font-style:normal}
.cd-label{display:block}

/* ---- v24 warm-watch: warmer presence · calmer Watch ---- */
/* "Here with you" (Ymir answered in the last 15 min) and "Listening" (you're typing): the dot glows, the ring wakes */
@keyframes ymirHere{0%,100%{box-shadow:0 0 0 0 rgba(255,190,110,.55),0 0 6px rgba(54,226,196,.6)}60%{box-shadow:0 0 0 6px rgba(255,190,110,0),0 0 12px rgba(54,226,196,.9)}}
.hc-av[data-ymir=here] .hc-av-dot,.hc-av[data-ymir=listening] .hc-av-dot{animation:ymirHere 2.2s ease-out infinite}
.hc-av[data-ymir=here] .hc-av-ring{opacity:.95;animation-duration:6s}
.hc-av[data-ymir=here] img{box-shadow:0 0 22px rgba(255,150,60,.6)}
.hc-av[data-ymir=listening] .hc-av-ring{animation-duration:3s}
.hc-av[data-ymir=listening] .hc-av-dot{background:var(--hearth-ice)}
.hearth[data-ymir=here] .hc-presence{color:#ffd9a8!important}
.hearth[data-ymir=listening] .hc-presence{color:var(--hearth-ice)!important}
#hhPresence[data-ymir=here] .hh-status{color:#ffd9a8}
#hhPresence[data-ymir=here] .hh-avatar img{box-shadow:0 0 26px rgba(255,150,60,.55)}
#hhPresence[data-ymir=listening] .hh-status{color:var(--hearth-ice)}
#hhPresence[data-ymir=listening] .hh-dot{background:var(--hearth-ice)}
.ov-ymir[data-ymir=here] .ov-ymir-av img{box-shadow:0 0 24px rgba(255,150,60,.7)}
.ov-ymir[data-ymir=here] #ovYmirState{color:#ffd9a8}
.hearth[data-ymir=here] .hc-fireline i:nth-child(1),.hearth[data-ymir=here] .hc-fireline i:nth-child(2){background:radial-gradient(closest-side,rgba(255,140,45,.28),rgba(255,90,20,.07) 60%,transparent)}
/* the thinking bubble gets an ember edge instead of a flat dashed box */
.hm-typing .hm-b{border-style:solid;border-color:rgba(255,180,100,.28);box-shadow:0 6px 22px -14px rgba(255,130,40,.8)}
@media (prefers-reduced-motion:reduce){.hc-av[data-ymir=here] .hc-av-dot,.hc-av[data-ymir=listening] .hc-av-dot{animation:none}}

/* Watch: the live Next Short card reads as "live" at a glance; soft fade at the scroll edges (desktop rail only) */
.cd-livec{border-color:rgba(54,226,196,.32);box-shadow:inset 3px 0 0 rgba(54,226,196,.55),0 0 0 1px rgba(255,170,90,.05) inset}
.cd-label{min-height:1.3em}
@media (min-width:901px){
  .hh-scroll{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 18px),transparent 100%);
    mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 18px),transparent 100%);scroll-padding-top:12px}
  .hh-scroll::-webkit-scrollbar{width:8px}
  .hh-scroll::-webkit-scrollbar-thumb{background:rgba(255,170,90,.32);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
  .hh-scroll::-webkit-scrollbar-thumb:hover{background-color:rgba(255,170,90,.5)}
}
.ov-cd .cd-list::-webkit-scrollbar{width:6px}
.ov-cd .cd-list::-webkit-scrollbar-thumb{background:rgba(127,231,255,.25);border-radius:6px}
