/* ---------- fonts (self-hosted) ---------- */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-500-italic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/onest-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/onest-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/onest-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/onest-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/onest-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/onest-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jetbrains-mono-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/jetbrains-mono-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/jetbrains-mono-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- tokens ---------- */
:root{
  color-scheme:light;
  --bg:#f4e6e3;
  --ink:#2a1920; --ink-2:#5f4a51; --ink-3:#6c5761;
  --berry:#a3304f; --berry-ink:#8c2443; --rose:#e8a3b2; --gold:#7a5236;
  --glass:rgba(255,250,249,.66); --glass-hi:rgba(255,252,251,.86); --edge:rgba(255,255,255,.78);
  --line:rgba(80,36,50,.12); --line-2:rgba(80,36,50,.22);
  --ok:#17654b; --warn:#85520a; --crit:#b8322a;
  --f-display:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --f-body:'Onest',system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
  --s-xs:.72rem; --s-s:.82rem; --s-m:.95rem; --s-l:1.1rem; --s-h:1.85rem; --s-num:1.35rem;
  --pad:clamp(14px,2.2vw,28px); --r:20px;
  --shadow:0 1px 0 rgba(255,255,255,.75) inset,0 18px 40px -22px rgba(92,38,54,.38),0 2px 8px rgba(92,38,54,.06);
  --ease:cubic-bezier(.2,.75,.15,1);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);overflow:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--berry);outline-offset:3px}
svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

#gl{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none;opacity:0;transition:opacity 1.2s ease}
body.ready #gl{opacity:1}

/* ---------- loading & intro ---------- */
#loading{position:fixed;inset:0;display:grid;place-items:center;align-content:center;gap:18px;color:var(--ink-3);font:500 var(--s-xs)/1 var(--f-mono);letter-spacing:.18em;text-transform:uppercase;transition:opacity .6s ease;pointer-events:none}
body.ready #loading{opacity:0}
.ld-ring{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line-2);border-top-color:var(--berry);animation:spin 1.1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#intro{position:fixed;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;gap:14px;pointer-events:none;opacity:0;padding:0 24px}
body.intro #intro{animation:intro 3.1s var(--ease) .25s both}
@keyframes intro{0%{opacity:0;transform:translateY(14px);filter:blur(6px)}22%{opacity:1;transform:none;filter:none}72%{opacity:1}100%{opacity:0;transform:translateY(-10px);filter:blur(4px)}}
.intro-title{margin:0;font:italic 500 clamp(2.4rem,6.4vw,5.4rem)/1 var(--f-display);letter-spacing:-.01em;color:var(--ink);text-wrap:balance;text-shadow:0 2px 30px rgba(255,248,246,.8)}
.eyebrow{margin:0;font:500 var(--s-xs)/1.2 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}

/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;pointer-events:none;
  padding:max(var(--pad),env(safe-area-inset-top)) max(var(--pad),env(safe-area-inset-right)) max(var(--pad),env(safe-area-inset-bottom)) max(var(--pad),env(safe-area-inset-left))}
#hud>*{pointer-events:auto;position:absolute;transition:opacity .7s var(--ease),transform .7s var(--ease)}
body:not(.live) #hud>*{opacity:0;transform:translateY(8px);pointer-events:none}
.glass{background:var(--glass);border:1px solid var(--edge);box-shadow:var(--shadow);backdrop-filter:blur(22px) saturate(1.35);-webkit-backdrop-filter:blur(22px) saturate(1.35)}

#brand{top:max(var(--pad),env(safe-area-inset-top));left:max(var(--pad),env(safe-area-inset-left));display:grid;gap:7px;pointer-events:none}
#brand h1{margin:0;font:italic 500 1.6rem/1 var(--f-display);color:var(--ink);letter-spacing:-.005em}

#tools{top:max(var(--pad),env(safe-area-inset-top));right:max(var(--pad),env(safe-area-inset-right));display:flex;gap:6px;align-items:center;padding:5px;border-radius:999px}
.tool{appearance:none;border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 15px 0 12px;border-radius:999px;cursor:pointer;color:var(--ink-2);font:500 var(--s-s)/1 var(--f-body);white-space:nowrap;transition:background .25s,color .25s}
.tool svg{width:20px;height:20px;flex:none}
.tool:hover{color:var(--ink);background:rgba(255,255,255,.55)}
.tool[aria-pressed="true"]{background:var(--ink);color:#fff}
.seg{display:flex;gap:2px;padding:3px;border-radius:999px;background:rgba(80,36,50,.07)}
.seg button{appearance:none;border:0;background:transparent;min-height:44px;padding:0 13px;border-radius:999px;color:var(--ink-2);font:500 var(--s-s)/1 var(--f-body);cursor:pointer;white-space:nowrap}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed="true"]{background:#fff;color:var(--ink);box-shadow:0 1px 6px rgba(92,38,54,.18)}

/* gauge */
#gauge{top:calc(max(var(--pad),env(safe-area-inset-top)) + 70px);right:max(var(--pad),env(safe-area-inset-right));width:216px;border-radius:var(--r);overflow:hidden}
#gaugeBtn{appearance:none;border:0;background:transparent;display:grid;gap:6px;width:100%;padding:14px 16px 15px;text-align:left;cursor:pointer}
.g-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.g-lbl{font-size:var(--s-xs);color:var(--ink-2);letter-spacing:.02em}
.g-num{font:500 var(--s-num)/1 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.g-num small{font-size:.5em;color:var(--ink-3);margin-left:2px;letter-spacing:0}
.g-bar{position:relative;height:4px;border-radius:9px;background:rgba(80,36,50,.1);overflow:hidden;margin-bottom:6px}
.legend{display:flex;align-items:center;gap:8px;font:500 .66rem/1 var(--f-mono);color:var(--ink-3);letter-spacing:.04em;padding-top:2px}
.legend[hidden]{display:none}
.legend i{flex:1;height:6px;border-radius:9px;background:linear-gradient(90deg,#3a5be0,#33c6d6,#f6d64a,#f26a3d,#e0233a)}
.g-bar i{position:absolute;inset:0 auto 0 0;border-radius:9px;transition:width .35s var(--ease),background-color .35s}
#gaugeMore[hidden]{display:none}
#gaugeMore{padding:0 16px 16px;display:grid;gap:12px;border-top:1px solid var(--line);padding-top:14px}
#gauge.open{width:300px}
.gm-head{display:flex;gap:6px;flex-wrap:wrap}
.chip{font:500 var(--s-xs)/1 var(--f-mono);letter-spacing:.04em;padding:6px 9px;border-radius:999px;white-space:nowrap}
.chip.ok{color:var(--ok);background:rgba(31,122,94,.1)}.chip.warn{color:var(--warn);background:rgba(161,103,10,.11)}.chip.crit{color:var(--crit);background:rgba(184,50,42,.1)}.chip.off{color:var(--ink-3);background:rgba(80,36,50,.06)}
#gauge h3,.float h3{margin:0;font:500 var(--s-xs)/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.factors{margin:0;padding:0;list-style:none;display:grid;gap:5px;font-size:var(--s-xs);color:var(--ink-2);line-height:1.35}
.factors li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--crit);margin-right:8px;vertical-align:1px}
.factors li.none::before{background:var(--ok)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:0;padding-top:10px;border-top:1px solid var(--line)}
.stats div{display:grid;gap:2px}.stats dt{font-size:var(--s-xs);color:var(--ink-3)}.stats dd{margin:0;font:500 var(--s-s)/1.2 var(--f-mono);font-variant-numeric:tabular-nums}
.fine{margin:0;font-size:var(--s-xs);color:var(--ink-3);line-height:1.45}

/* sliders & toggles */
.rng{display:grid;gap:2px}
.rng label{display:flex;justify-content:space-between;gap:8px;font-size:var(--s-s);color:var(--ink-2)}
.rng output{font:500 var(--s-s)/1 var(--f-mono);color:var(--ink);font-variant-numeric:tabular-nums}
.ends{display:flex;justify-content:space-between;font-size:var(--s-xs);color:var(--ink-3);margin-top:-6px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:transparent;margin:0;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:9px;background:linear-gradient(90deg,var(--berry) var(--p,50%),rgba(80,36,50,.16) var(--p,50%))}
input[type=range]::-moz-range-track{height:3px;border-radius:9px;background:rgba(80,36,50,.16)}
input[type=range]::-moz-range-progress{height:3px;border-radius:9px;background:var(--berry)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:0;margin-top:-9.5px;box-shadow:0 0 0 1px rgba(80,36,50,.2),0 3px 10px rgba(92,38,54,.3)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:0;box-shadow:0 0 0 1px rgba(80,36,50,.2),0 3px 10px rgba(92,38,54,.3)}
.tog{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--s-s);color:var(--ink-2);cursor:pointer;min-height:44px}
.tog input{appearance:none;-webkit-appearance:none;width:40px;height:24px;border-radius:99px;background:rgba(80,36,50,.18);position:relative;cursor:pointer;flex:none;margin:0;transition:background .2s}
.tog input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s var(--ease)}
.tog input:checked{background:var(--crit)}
.tog input:checked::after{transform:translateX(16px)}

/* story card */
#card{left:max(var(--pad),env(safe-area-inset-left));bottom:max(var(--pad),env(safe-area-inset-bottom));width:min(380px,calc(100vw - 2*var(--pad)));padding:18px 22px 20px;border-radius:var(--r);display:grid;gap:8px}
.card-top{display:flex;justify-content:space-between;align-items:center;margin:-4px -8px -2px 0}
.num{font:500 var(--s-xs)/1 var(--f-mono);letter-spacing:.16em;color:var(--gold)}
#card h2{margin:0;font:500 var(--s-h)/1.04 var(--f-display);letter-spacing:-.005em;text-wrap:balance}
#card p{margin:0;font-size:var(--s-m);line-height:1.55;color:var(--ink-2);text-wrap:pretty}
#card .draft{font:500 var(--s-xs)/1.3 var(--f-mono);color:var(--ink-3);letter-spacing:.02em;margin-top:2px}
#card .draft::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--warn);margin-right:7px;vertical-align:1px}
.icon-btn{appearance:none;border:0;background:transparent;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--ink-2)}
.icon-btn:hover{background:rgba(255,255,255,.7);color:var(--ink)}
.icon-btn svg{width:19px;height:19px}

/* floating panels (stage 4 parameters, stage 6 colours) */
.float{right:max(var(--pad),env(safe-area-inset-right));bottom:calc(max(var(--pad),env(safe-area-inset-bottom)) + 76px);width:268px;padding:16px 18px 12px;border-radius:var(--r);display:grid;gap:4px}
.float[hidden]{display:none}
.float.in{animation:floatIn .6s var(--ease) both}
@keyframes floatIn{from{opacity:0;transform:translateY(10px) scale(.98)}}
.link-btn{appearance:none;border:0;background:none;padding:10px 0 4px;justify-self:start;color:var(--ink-3);font-size:var(--s-xs);cursor:pointer;text-decoration:underline;text-underline-offset:3px;min-height:44px}
.link-btn:hover{color:var(--ink)}
.swatches{display:flex;gap:12px;padding:10px 0 4px}
.swatches button{appearance:none;width:40px;height:40px;border-radius:50%;border:0;cursor:pointer;background:radial-gradient(circle at 34% 28%,rgba(255,255,255,.85) 0 10%,transparent 34%),var(--c);box-shadow:inset 0 -6px 10px rgba(0,0,0,.16),0 0 0 1px rgba(80,36,50,.14);transition:transform .25s var(--ease)}
.swatches button:hover{transform:scale(1.06)}
.swatches button[aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:3px}
.swatch-name{font-size:var(--s-xs);color:var(--ink-3);padding-bottom:4px}

/* stage timeline */
#steps{left:50%;bottom:max(var(--pad),env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:5px;border-radius:999px}
body:not(.live) #steps{transform:translate(-50%,8px)}
.nav{appearance:none;border:0;background:transparent;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--ink);flex:none}
.nav:hover{background:rgba(255,255,255,.75)}
.nav:disabled{opacity:.28;cursor:default;background:transparent}
.nav svg{width:20px;height:20px}
#dots{list-style:none;margin:0;padding:0 6px;display:flex;align-items:center;gap:0}
.dot{appearance:none;border:0;background:transparent;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;padding:0}
.dot i{width:7px;height:7px;border-radius:50%;background:rgba(80,36,50,.22);transition:all .45s var(--ease)}
.dot:hover i{background:rgba(80,36,50,.5)}
.dot.done i{background:var(--rose)}
.dot[aria-current="step"] i{width:22px;border-radius:9px;background:var(--berry)}
.cur{font:500 var(--s-s)/1 var(--f-body);color:var(--ink);padding:0 8px 0 4px;min-width:7.5em;white-space:nowrap}
#autoplay .pa{display:none}
#autoplay[aria-pressed="true"] .pa{display:block}
#autoplay[aria-pressed="true"] .pl{display:none}
#autoplay[hidden]{display:none}

/* labels */
#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}
#leaders{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
#leaders line,#leaders polyline{stroke:rgba(60,26,38,.55);stroke-width:1;fill:none}
#leaders circle{fill:#fff;stroke:rgba(60,26,38,.7);stroke-width:1.2}
.lbl{position:absolute;left:0;top:0;font:500 var(--s-xs)/1 var(--f-body);color:var(--ink);padding:7px 11px;border-radius:999px;background:var(--glass-hi);border:1px solid var(--edge);box-shadow:0 6px 18px -8px rgba(92,38,54,.45);white-space:nowrap;opacity:0;transition:opacity .45s ease;will-change:transform}
.lbl.pin{transform-origin:50% 100%}
.lbl.pin::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:12px;background:rgba(60,26,38,.4)}
.lbl.on{opacity:1}
.lbl.amber{color:var(--warn)}
.lbl.rose{color:var(--berry-ink)}
.lbl.sec{border-radius:8px;padding:6px 10px;font-size:var(--s-xs)}
.lbl.sec b{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:7px;vertical-align:-1px;box-shadow:0 0 0 1px rgba(60,26,38,.25)}
#hint{position:fixed;left:50%;bottom:calc(max(var(--pad),env(safe-area-inset-bottom)) + 66px);transform:translateX(-50%);margin:0;font:500 var(--s-xs)/1 var(--f-mono);letter-spacing:.08em;color:var(--ink-3);opacity:0;transition:opacity .8s;pointer-events:none;white-space:nowrap}
#hint.on{opacity:1}

/* ---------- presentation (TV) ---------- */
body.present{--s-xs:.95rem;--s-s:1.08rem;--s-m:1.32rem;--s-h:2.9rem;--s-num:1.8rem;--r:26px}
body.present #card{width:min(560px,40vw);padding:26px 30px 28px}
body.present #brand h1{font-size:2.2rem}
body.present #gauge{width:260px}
body.present .tool .tl{display:none}
body.present #tSection,body.present #tHeat{padding:0 14px}
body.present .dot{width:34px;height:52px}
body.present .dot i{width:10px;height:10px}
body.present .dot[aria-current="step"] i{width:30px}
body.present .nav{width:52px;height:52px}
body.present #hint{display:none}

@media (max-width:1180px){
  .tool .tl{display:none}
  .tool{padding:0 12px}
}
/* ---------- tablet portrait & phones ---------- */
@media (max-width:820px),(orientation:portrait) and (max-width:1100px){
  #brand h1{font-size:1.25rem}
  #brand .eyebrow{font-size:.62rem}
  #tools{top:auto;bottom:calc(max(var(--pad),env(safe-area-inset-bottom)) + 62px);right:auto;left:50%;transform:translateX(-50%);max-width:calc(100vw - 2*var(--pad))}
  body:not(.live) #tools{transform:translate(-50%,8px)}
  #card{bottom:calc(max(var(--pad),env(safe-area-inset-bottom)) + 124px);width:auto;right:max(var(--pad),env(safe-area-inset-right));padding:14px 16px 15px;gap:6px}
  #card h2{font-size:1.45rem}
  #card p{font-size:var(--s-s);line-height:1.5}
  #gauge{top:max(var(--pad),env(safe-area-inset-top));width:150px}
  #gauge.open{width:min(300px,calc(100vw - 2*var(--pad)))}
  #gaugeBtn{padding:10px 12px 9px;gap:4px}
  .g-num{font-size:1.05rem}
  .float{bottom:calc(max(var(--pad),env(safe-area-inset-bottom)) + 124px);left:max(var(--pad),env(safe-area-inset-left));right:max(var(--pad),env(safe-area-inset-right));width:auto;padding:12px 16px 6px}
  body.has-float #card{opacity:0;pointer-events:none;transform:translateY(8px)}
  .float .rng{gap:0}
  .float .link-btn{min-height:36px;padding:4px 0}
  #hint{bottom:auto;top:46%}
}
@media (max-width:560px){
  :root{--pad:12px}
  .tool .tl{display:none}
  .tool{padding:0 12px}
  .seg button{padding:0 10px;font-size:var(--s-xs)}
  #tPresent{display:none}
  #brand{max-width:52vw}
  #brand h1{font-size:1.1rem;line-height:1.05}
  .cur{display:none}
  #card .draft{font-size:.66rem}
  .dot{width:36px}
}
@media (max-height:520px) and (orientation:landscape){
  #card p{display:none}
  #gauge{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
