:root{
  --bg:#0a0f1c;--bg2:#0e1526;--card:#131b2e;--card2:#18223a;--line:#263352;--fg:#e9eef8;--fg-dim:#98a6c0;
  --accent:#4cc9f0;--accent2:#b388ff;--hot:#f72585;--ok:#06d6a0;--warn:#ffd166;--bad:#ff5d73;
  --grad:linear-gradient(135deg,#4cc9f0 0%,#7b8cff 50%,#f72585 100%);
  --r:14px;--shadow:0 10px 30px rgba(0,0,0,.35);--font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--top:58px;--bot:0px;
}
:root[data-theme="light"]{
  --bg:#f4f6fb;--bg2:#eaeef7;--card:#ffffff;--card2:#f3f6fc;--line:#d5dcea;--fg:#141b2d;--fg-dim:#5a6781;
  --accent:#0b7ea8;--accent2:#6b3fd4;--hot:#c2136b;--ok:#0a8f6c;--warn:#a86a00;--bad:#c62b41;--shadow:0 8px 24px rgba(30,45,90,.12);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 var(--font);min-height:100vh;overflow-x:hidden;
  background-image:radial-gradient(900px 500px at 85% -10%,rgba(123,140,255,.14),transparent 60%),radial-gradient(700px 420px at -10% 10%,rgba(76,201,240,.10),transparent 60%);background-attachment:fixed}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.2;margin:0 0 .5rem;font-weight:650;letter-spacing:-.01em}
h1{font-size:clamp(1.5rem,3.6vw,2.3rem)}h2{font-size:1.25rem}h3{font-size:1.02rem}h4{font-size:.9rem;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.06em}
p{margin:.35rem 0 .7rem}small,.dim{color:var(--fg-dim)}.small{font-size:.85rem}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;z-index:99;background:var(--card);padding:.5rem .8rem;border-radius:8px}

/* ---------- top bar */
.top{position:sticky;top:0;z-index:40;height:var(--top);display:flex;align-items:center;gap:.5rem;padding:0 .7rem;
  background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:700;letter-spacing:.02em;color:var(--fg);margin:0 .3rem;white-space:nowrap}
.brand:hover{text-decoration:none}.brand svg{width:28px;height:28px}
.brand span b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.crumb{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--fg-dim);font-size:.9rem;padding:0 .3rem}
.navarrow{width:40px;height:40px;border-radius:50%;border:0;padding:0;cursor:pointer;position:relative;background:var(--grad);display:grid;place-items:center;flex:none;
  transition:transform .15s ease,box-shadow .2s ease,opacity .2s;box-shadow:0 4px 14px rgba(76,201,240,.25)}
.navarrow::before{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--card)}
.navarrow svg{position:relative;width:20px;height:20px;stroke:var(--fg);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.navarrow:hover:not(:disabled){transform:translateY(-1px) scale(1.05);box-shadow:0 6px 20px rgba(247,37,133,.35)}
.navarrow.back:hover:not(:disabled) svg{transform:translateX(-2px)}.navarrow.fwd:hover:not(:disabled) svg{transform:translateX(2px)}
.navarrow:active:not(:disabled){transform:scale(.95)}
.navarrow:disabled{opacity:.32;cursor:default;box-shadow:none;filter:grayscale(.8)}
.iconbtn{height:38px;min-width:38px;padding:0 .6rem;border-radius:10px;border:1px solid var(--line);background:var(--card);cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;flex:none}
.iconbtn:hover{border-color:var(--accent)}.iconbtn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pill{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;padding:.2rem .55rem;border-radius:99px;border:1px solid var(--line);background:var(--card);white-space:nowrap}
.pill i{width:8px;height:8px;border-radius:50%;background:var(--ok);display:inline-block}.pill.off i{background:var(--warn)}
.install{background:var(--grad);border:0;color:#fff;font-weight:650}.install:hover{filter:brightness(1.1)}

/* ---------- layout */
main{max-width:1240px;margin:0 auto;padding:1rem .9rem calc(5rem + var(--bot))}
.grid{display:grid;gap:.9rem}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.05rem;box-shadow:var(--shadow);min-width:0}
.card.flat{box-shadow:none}.card.tight{padding:.7rem .8rem}
.card>h3:first-child,.card>h2:first-child{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}.grow{flex:1;min-width:0}
.stack>*+*{margin-top:.9rem}
.hero{padding:1.6rem 1.2rem;border-radius:20px;background:linear-gradient(140deg,color-mix(in srgb,var(--accent) 16%,var(--card)),var(--card) 55%,color-mix(in srgb,var(--hot) 12%,var(--card)));border:1px solid var(--line);position:relative;overflow:hidden}
.hero p{max-width:62ch;color:var(--fg-dim);font-size:1.02rem}
.modcard{cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex;flex-direction:column;gap:.4rem;text-align:left;color:inherit;width:100%}
.modcard:hover{transform:translateY(-3px);border-color:var(--accent);text-decoration:none;box-shadow:0 14px 34px rgba(76,201,240,.18)}
.modcard .big{font-size:2rem;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
.modcard .go{margin-top:auto;color:var(--accent);font-weight:600;font-size:.9rem}

/* ---------- controls */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:.55rem .95rem;border-radius:10px;border:1px solid var(--line);background:var(--card2);cursor:pointer;font-weight:600;font-size:.9rem;transition:border-color .15s,transform .1s,filter .15s;color:var(--fg);text-decoration:none!important}
.btn:hover{border-color:var(--accent)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default}
.btn.primary{background:var(--grad);border:0;color:#fff;box-shadow:0 6px 18px rgba(123,140,255,.3)}.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent}.btn.sm{padding:.3rem .6rem;font-size:.8rem;border-radius:8px}.btn.danger:hover{border-color:var(--bad);color:var(--bad)}
input[type=text],input[type=number],input[type=search],select,textarea{background:var(--bg2);border:1px solid var(--line);border-radius:9px;padding:.45rem .6rem;width:100%;min-width:0}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
textarea{resize:vertical;min-height:120px;line-height:1.5}
label.f{display:block;font-size:.8rem;color:var(--fg-dim);margin-bottom:.2rem}
.prompt{font-size:1.02rem;min-height:150px;border-radius:14px;padding:.9rem 1rem;background:var(--bg2)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg2);flex-wrap:wrap}
.seg button{border:0;background:transparent;padding:.45rem .8rem;cursor:pointer;font-size:.87rem;font-weight:600;color:var(--fg-dim)}
.seg button[aria-pressed=true]{background:var(--grad);color:#fff}
.switch{display:inline-block;vertical-align:middle;position:relative;width:42px;height:24px;flex:none}.switch input{opacity:0;width:100%;height:100%;position:absolute;margin:0;cursor:pointer;z-index:1}
.switch span{position:absolute;inset:0;background:var(--line);border-radius:99px;transition:background .2s}.switch span::after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;transition:transform .2s}
.switch input:checked+span{background:var(--ok)}.switch input:checked+span::after{transform:translateX(18px)}
.examples{display:flex;gap:.45rem;flex-wrap:wrap}.examples button{font-size:.8rem;padding:.3rem .65rem;border-radius:99px;border:1px dashed var(--line);background:transparent;cursor:pointer;color:var(--fg-dim);text-align:left}
.examples button:hover{border-color:var(--accent);color:var(--fg);border-style:solid}
.drop{display:block;border:2px dashed var(--line);border-radius:14px;padding:1.1rem;text-align:center;color:var(--fg-dim);cursor:pointer;transition:border-color .15s,background .15s}
.drop:hover,.drop.over{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--fg)}

/* ---------- chips & status */
.chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:.14rem .5rem;border-radius:99px;border:1px solid transparent;white-space:nowrap;vertical-align:middle}
.chip.user{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}
.chip.soft{background:color-mix(in srgb,var(--accent2) 18%,transparent);color:var(--accent2);border-color:color-mix(in srgb,var(--accent2) 45%,transparent)}
.chip.live{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.chip.hypo{background:color-mix(in srgb,var(--hot) 18%,transparent);color:var(--hot);border-color:color-mix(in srgb,var(--hot) 45%,transparent)}
.chip.bad{background:color-mix(in srgb,var(--bad) 18%,transparent);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.chip.warn{background:color-mix(in srgb,var(--warn) 18%,transparent);color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent)}
.chip.ok{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,transparent)}
.chip.mute{background:var(--card2);color:var(--fg-dim);border-color:var(--line)}
.klass{font-weight:800;border-radius:8px;padding:.15rem .5rem;font-size:.78rem;color:#fff;background:var(--grad)}
.note{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);padding:.55rem .8rem;border-radius:0 10px 10px 0;font-size:.9rem;margin:.6rem 0}
.note.warn{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 9%,transparent)}.note.bad{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 9%,transparent)}
.note.hypo{border-color:var(--hot);background:color-mix(in srgb,var(--hot) 9%,transparent)}.note.ok{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 9%,transparent)}

/* ---------- tables */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:12px;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:.86rem}
th,td{padding:.42rem .6rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--card2);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-dim);position:sticky;top:0;white-space:nowrap}
tr:last-child td{border-bottom:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td input[type=number],td input[type=text]{padding:.25rem .4rem;min-width:84px}td select{padding:.25rem .3rem;min-width:70px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:.25rem .9rem;font-size:.9rem}.kv dt{color:var(--fg-dim)}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.stat{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:.65rem .8rem;min-width:0}
.stat .v{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat .l{font-size:.78rem;color:var(--fg-dim)}
.heat td{text-align:center;font-variant-numeric:tabular-nums}

/* ---------- investigation frame */
.invhead{display:flex;gap:.8rem;align-items:flex-start;flex-wrap:wrap;margin-bottom:.8rem}
.invhead h1{font-size:clamp(1.15rem,2.6vw,1.6rem);margin:0}
.tabs{display:flex;gap:.35rem;overflow-x:auto;padding:.3rem .1rem .6rem;scrollbar-width:none;-ms-overflow-style:none;position:sticky;top:var(--top);z-index:30;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);margin:0 -.9rem;padding-left:.9rem;padding-right:.9rem}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:none;border:1px solid var(--line);background:var(--card);border-radius:99px;padding:.38rem .8rem;font-size:.84rem;font-weight:600;cursor:pointer;color:var(--fg-dim);white-space:nowrap;display:flex;gap:.4rem;align-items:center}
.tab:hover{color:var(--fg);border-color:var(--accent)}.tab[aria-selected=true]{background:var(--grad);color:#fff;border-color:transparent}
.tab .n{font-size:.68rem;opacity:.75;font-weight:800}
.wsnav{display:flex;justify-content:space-between;gap:.8rem;margin-top:1.4rem;flex-wrap:wrap}
.wsnav button{display:flex;align-items:center;gap:.7rem;padding:.6rem .9rem;border-radius:14px;border:1px solid var(--line);background:var(--card);cursor:pointer;text-align:left;max-width:48%;min-width:0}
.wsnav button:hover{border-color:var(--accent)}.wsnav button.next{margin-left:auto;text-align:right;flex-direction:row-reverse}
.wsnav .navarrow{pointer-events:none;width:36px;height:36px}.wsnav small{display:block}.wsnav b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
details{border:1px solid var(--line);border-radius:12px;background:var(--card);overflow:hidden}
details+details{margin-top:.5rem}
summary{cursor:pointer;padding:.6rem .85rem;font-weight:600;display:flex;gap:.6rem;align-items:center;list-style:none;flex-wrap:wrap}
summary::-webkit-details-marker{display:none}summary::before{content:"▸";color:var(--accent);transition:transform .15s;flex:none}details[open]>summary::before{transform:rotate(90deg)}
details>.body{padding:.2rem .85rem .85rem}
.cat li{display:flex;gap:.6rem;align-items:flex-start;padding:.35rem 0;border-bottom:1px dashed var(--line);font-size:.87rem}.cat li:last-child{border:0}
.cat{list-style:none;margin:0;padding:0}.cat .id{font-family:var(--mono);color:var(--fg-dim);min-width:2.4rem;flex:none}.cat .chip{flex:none;margin-top:.1rem}

/* ---------- equations, code */
.eq{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;margin:.5rem 0;overflow-x:auto}
.eq .katex-display{margin:.3rem 0}.eqhead{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.2rem}
.steps{list-style:none;padding:0;margin:.4rem 0 0}.steps li{display:flex;gap:.5rem;font-size:.85rem;padding:.15rem 0}
.steps .m{flex:none;width:1.1rem;text-align:center;font-weight:800}.steps .m.y{color:var(--ok)}.steps .m.n{color:var(--bad)}.steps .m.c{color:var(--warn)}
pre,code{font-family:var(--mono);font-size:.82rem}pre{background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:.8rem;overflow:auto;max-height:440px;margin:.5rem 0;white-space:pre;tab-size:2}
code{background:var(--bg2);padding:.08rem .3rem;border-radius:5px}
.deriv{counter-reset:d;list-style:none;padding:0;margin:0}.deriv li{counter-increment:d;position:relative;padding:.2rem 0 .6rem 2.3rem}
.deriv li::before{content:counter(d);position:absolute;left:0;top:.15rem;width:1.6rem;height:1.6rem;border-radius:50%;background:var(--grad);color:#fff;font-size:.8rem;font-weight:800;display:grid;place-items:center}

/* ---------- plots & diagrams */
.plot{position:relative}canvas.pl{width:100%;display:block;border-radius:10px;touch-action:pan-y}
.plot-tip{position:absolute;display:none;pointer-events:none;background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:.3rem .5rem;font-size:.75rem;z-index:5;box-shadow:var(--shadow);max-width:220px}
.dgm{width:100%;height:auto;max-height:380px;display:block}
.dgm .d-line{stroke:var(--fg);stroke-width:1.6;fill:none}.dgm .d-body{fill:color-mix(in srgb,var(--accent) 22%,var(--card));stroke:var(--accent);stroke-width:1.5}
.dgm .d-pipe{stroke:var(--accent);stroke-width:9;fill:none;stroke-linecap:round;stroke-linejoin:round}.dgm .d-pipe-fill{fill:color-mix(in srgb,var(--fg-dim) 14%,var(--card));stroke:var(--fg-dim);stroke-width:2}
.dgm .d-liquid{fill:color-mix(in srgb,var(--accent) 55%,transparent);stroke:none}.dgm .d-liquid-line{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:6 4;fill:none}
.dgm .d-ground{stroke:var(--fg-dim);stroke-width:2;fill:color-mix(in srgb,var(--warn) 10%,transparent)}.dgm .d-hazard{fill:color-mix(in srgb,var(--hot) 30%,transparent);stroke:var(--hot);stroke-width:1.2;stroke-dasharray:4 3}
.dgm .d-arrow{stroke:var(--fg);stroke-width:1.8;fill:none}.dgm .d-heat{stroke:var(--hot)}.dgm .d-fill{fill:var(--fg)}.dgm .d-dim{stroke:var(--fg-dim);stroke-width:1;fill:none}
.dgm .d-text{fill:var(--fg);font:13px var(--font)}.dgm .d-small{font-size:11px;fill:var(--fg-dim)}
.player{display:flex;gap:.6rem;align-items:center;margin-top:.4rem}.player input[type=range]{flex:1;accent-color:var(--accent)}
.ladder{display:flex;gap:.3rem;flex-wrap:wrap}.ladder div{flex:1;min-width:120px;padding:.45rem .6rem;border-radius:10px;border:1px solid var(--line);font-size:.78rem;color:var(--fg-dim);background:var(--card2)}
.ladder div.on{background:var(--grad);color:#fff;border-color:transparent;font-weight:700}.ladder div.done{border-color:var(--ok);color:var(--fg)}
.gate{display:flex;gap:.7rem;align-items:flex-start;padding:.5rem 0;border-bottom:1px dashed var(--line)}.gate:last-child{border:0}
.gate .g{flex:none;width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;background:var(--line)}
.gate .g.pass{background:var(--ok)}.gate .g.fail{background:var(--bad)}.gate .g.conditional{background:var(--warn);color:#222}
.worldtabs{display:flex;gap:.4rem;flex-wrap:wrap}.worldtabs button{border:1px solid var(--line);background:var(--card2);border-radius:10px;padding:.4rem .7rem;cursor:pointer;font-size:.86rem;font-weight:600}
.worldtabs button[aria-pressed=true]{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}
.truth td,.truth th{text-align:center;font-family:var(--mono);padding:.25rem .5rem}.truth .T{color:var(--ok)}.truth .F{color:var(--bad)}.truth tr.model{background:color-mix(in srgb,var(--ok) 9%,transparent)}.truth tr.counter{background:color-mix(in srgb,var(--bad) 14%,transparent)}

/* ---------- misc */
.toast{position:fixed;left:50%;bottom:calc(1.1rem + var(--bot));transform:translate(-50%,20px);background:var(--card2);border:1px solid var(--accent);padding:.6rem 1rem;border-radius:12px;box-shadow:var(--shadow);opacity:0;transition:all .25s;z-index:80;max-width:min(92vw,560px);font-size:.9rem;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}
.busy{display:inline-block;width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
.fade{animation:fade .25s ease}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.botnav{display:none}
.modal{position:fixed;inset:0;background:rgba(5,8,16,.7);z-index:90;display:grid;place-items:center;padding:1rem}.modal .card{max-width:640px;width:100%;max-height:88vh;overflow:auto}
.tag{display:inline-block;font-size:.74rem;padding:.1rem .45rem;border-radius:6px;background:var(--card2);border:1px solid var(--line);color:var(--fg-dim);margin:.1rem .15rem .1rem 0}
.hl{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800}
hr{border:0;border-top:1px solid var(--line);margin:1rem 0}
ul.clean{margin:.3rem 0;padding-left:1.15rem}ul.clean li{margin:.2rem 0}
.imgprev{max-width:100%;max-height:320px;border-radius:10px;border:1px solid var(--line);background:#fff}
@media (max-width:760px){
  :root{--bot:60px}.brand span{display:none}.crumb{font-size:.8rem}.top .pill.net span,.top .hide-sm{display:none}
  main{padding:.7rem .6rem calc(5rem + var(--bot))}.tabs{margin:0 -.6rem;padding-left:.6rem;padding-right:.6rem}
  .botnav{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--bot);background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--line);z-index:40;justify-content:space-around;align-items:center;padding-bottom:env(safe-area-inset-bottom)}
  .botnav a{display:flex;flex-direction:column;align-items:center;font-size:.66rem;color:var(--fg-dim);gap:.1rem;padding:.3rem .5rem;border-radius:10px;min-width:54px}
  .botnav a svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.botnav a[aria-current=page]{color:var(--accent)}
  .wsnav button{max-width:100%;flex:1}.card{padding:.8rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.top,.tabs,.botnav,.wsnav,.btn,.toast{display:none!important}body{background:#fff;color:#000}.card{box-shadow:none;border-color:#bbb;break-inside:avoid}}
