.wrap{max-width:880px;margin:0 auto;padding:0 0 24px}.wrap.wide{max-width:1180px}h1.title{font-size:32px;font-weight:600;letter-spacing:-.035em;margin:4px 0 6px;line-height:1.1}h1.hero{font-size:31px;font-weight:600;letter-spacing:-.034em;text-align:center;margin:0 0 26px}p.sub{max-width:64ch;margin:0 0 4px}.eyebrow{font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;text-transform:uppercase}.eyebrow,.note{color:var(--mute)}.note{font-size:13px;line-height:1.55}.stack{display:flex;flex-direction:column;gap:24px}.stack>*{animation:rise-in .55s var(--spring) backwards}.stack>:nth-child(2){animation-delay:50ms}.stack>:nth-child(3){animation-delay:.1s}.stack>:nth-child(n+4){animation-delay:.15s}.stack-sm{display:flex;flex-direction:column;gap:12px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh2);padding:20px}.panel.plain{background:transparent;padding:0;border:0;box-shadow:none}.panel.glass{background:var(--glass)}.outlined{border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}a.panel{transition:transform var(--t-med) var(--spring),box-shadow var(--t-med)}a.panel:hover{transform:translateY(-3px);box-shadow:var(--sh3)}.sechead{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}.sechead h2{font-size:16px;font-weight:600;letter-spacing:-.02em;margin:0}.sechead .right{margin-left:auto;display:flex;gap:6px;align-items:center}.list{flex-direction:column}.item,.list{display:flex}.item{align-items:center;gap:13px;padding:12px 10px;border-radius:var(--r-sm);transition:background-color var(--t-fast);position:relative}.item+.item:before{content:"";position:absolute;top:0;left:10px;right:10px;height:1px;background:var(--line)}.item:hover{background:var(--surface2)}.item:hover+.item:before,.item:hover:before{opacity:0}.item .tx{flex:1 1;min-width:0}.item .tx b{font-weight:500;font-size:14px}.item .tx b,.item .tx small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item .tx small{font-size:12px;color:var(--mute);margin-top:1px}.item .val{font-family:var(--mono);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:44px;text-align:right}.item .meter{width:70px;height:4px}.meter i[style*="--w"]{width:0;animation:grow .9s var(--spring) forwards}@keyframes grow{to{width:var(--w)}}.item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);flex:none;cursor:pointer}.stats{display:flex;flex-wrap:wrap;gap:28px}.stat dt{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute)}.stat dd,.stat dt{font-family:var(--mono)}.stat dd{margin:6px 0 0;font-size:26px;font-weight:500;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.stat .d,.stat .dl{font-size:11.5px;color:var(--mute);margin-top:4px}.stat .d.up,.stat .dl.up{color:var(--ok)}.stat .d.dn,.stat .dl.dn{color:var(--bad)}.mapsec{margin-bottom:22px}.maph{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.maph b{font-size:13.5px;font-weight:550;text-transform:capitalize}.maph span{font-size:12px;color:var(--mute)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15px,1fr));grid-gap:3px;gap:3px}.sq{aspect-ratio:1;border-radius:4px;background:var(--bg2);opacity:0;transform:scale(.4);animation:pop .45s var(--spring) forwards;transition:transform .14s var(--spring)}.sq:hover{transform:scale(1.5);z-index:2;position:relative}@keyframes pop{to{opacity:1;transform:scale(1)}}.sq.crit{animation:pop .45s var(--spring) forwards,breathe 3s ease-in-out infinite 1s}@keyframes breathe{0%,to{opacity:1}50%{opacity:.4}}.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px;font-size:12px;color:var(--mute)}.legend i{display:inline-block;width:9px;height:9px;border-radius:2.5px;margin-right:6px;vertical-align:-1px}.week{display:grid;grid-template-columns:repeat(7,minmax(128px,1fr));grid-gap:10px;gap:10px;overflow-x:auto;padding-bottom:4px}.day{min-width:0;display:flex;flex-direction:column;gap:6px}.dayh{padding:0 2px 2px}.dayh b{display:block;font-size:13px;font-weight:550}.dayh small{font-family:var(--mono);font-size:11px;color:var(--mute)}.day.today .dayh b:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:6px;vertical-align:middle}.blk{background:var(--surface);border-radius:12px;padding:9px 10px;font-size:11.5px;line-height:1.35;border:1px solid var(--line);border-left:3px solid var(--line2);opacity:0;animation:pop .5s var(--spring) forwards;transition:transform .16s var(--spring),box-shadow .16s;box-shadow:var(--sh1)}.blk:hover{transform:translateY(-1px);box-shadow:var(--sh2)}.blk b{font-size:12px;font-weight:550}.blk b,.blk small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blk small{font-family:var(--mono);font-size:10px;color:var(--mute);margin-top:2px}.blk.fx{border-left-color:var(--ink2);background:var(--bg2)}.blk.w{border-left-color:var(--warn);background:var(--warnbg)}.blk.c{border-left-color:var(--bad);background:var(--badbg)}.blk.g{border-left-color:var(--ok);background:var(--okbg)}.daybody{display:flex;flex-direction:column;gap:6px}.freeday{margin:0;padding:9px 10px;border-radius:10px;border:1px dashed var(--line2);line-height:1.35}.free,.freeday{font-size:11.5px;color:var(--mute)}.free{padding:8px 2px;line-height:1.4}.qstem,.stem{font-size:16px;line-height:1.65;letter-spacing:-.008em;margin:0}.stem .v{font-family:var(--mono);font-size:14px;background:var(--bg2);padding:1px 6px;border-radius:5px}.opts{flex-direction:column;gap:8px;margin-top:20px}.opt,.opts{display:flex}.opt{align-items:flex-start;gap:12px;padding:13px 15px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface);font-size:14.5px;line-height:1.45;transition:.16s var(--spring);width:100%;text-align:left;box-shadow:var(--sh1)}.opt:hover{border-color:var(--line2);transform:translateX(2px)}.opt .k,.opt .ky{font-family:var(--mono);font-size:11.5px;width:22px;height:22px;border-radius:7px;background:var(--bg2);display:grid;place-items:center;flex:none;margin-top:0;color:var(--mute);transition:background-color .2s,color .2s}.opt .ot{flex:1 1;min-width:0}.opt.sel{background:var(--accent-soft);border-color:var(--accent)}.opt.sel .ky{background:var(--accent);color:var(--on-accent)}.opt.right{background:var(--okbg);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}.opt.right .k,.opt.right .ky{background:var(--ok);color:#fff}.opt.wrong{background:var(--badbg);border-color:color-mix(in srgb,var(--bad) 35%,transparent);animation:shake .4s ease}.opt.wrong .k,.opt.wrong .ky{background:var(--bad);color:#fff}.opt.right.landed{animation:nudge .5s var(--bounce)}.opt.struck{opacity:.4;text-decoration:line-through}.opt .ck{flex:none;align-self:center;fill:none;stroke:var(--ok);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;animation:ck .45s var(--spring) .1s forwards}@keyframes nudge{0%{transform:scale(.96)}60%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}@keyframes ck{to{stroke-dashoffset:0}}.conf{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.conf .lab{font-size:12.5px;color:var(--mute);margin-right:2px}.conf button{font-size:12.5px;height:32px;padding:0 13px;border-radius:10px;border:1px solid var(--line2);background:var(--surface);transition:.15s var(--spring)}.conf button:hover{box-shadow:var(--sh1)}.conf button.sel{background:var(--accent);color:var(--on-accent);border-color:transparent}.qbar{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.pill,.qbar{align-items:center}.pill{display:inline-flex;gap:5px;font-size:12px;height:24px;padding:0 10px;border-radius:var(--pill);background:var(--bg2);color:var(--ink2);white-space:nowrap}.pill.h3{background:var(--badbg);color:var(--bad)}.pill.h2{background:var(--warnbg);color:var(--warn)}.node{display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:var(--r);background:var(--surface);border:1px solid var(--line);font-size:14px}.node .d{width:7px;height:7px;border-radius:50%;flex:none;background:var(--faint)}.node.rt{background:var(--badbg);border-color:color-mix(in srgb,var(--bad) 34%,transparent)}.node.rt .d{background:var(--bad);animation:pulse 1.9s ease-in-out infinite}.node.md{background:var(--warnbg)}.node.md .d{background:var(--warn)}.node.ok2{background:var(--okbg)}.node.ok2 .d{background:var(--ok)}.node .m{margin-left:auto;font-family:var(--mono);font-size:11.5px;color:var(--mute);white-space:nowrap}.edge{height:22px;margin-left:24px;border-left:1.5px dashed var(--line2);position:relative}.edge span{position:absolute;left:12px;top:2px;font-size:11px;color:var(--mute);white-space:nowrap}.callout{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh2);padding:20px}.callout .lead{font-size:16.5px;line-height:1.55;letter-spacing:-.014em}.callout .lead b{font-weight:600}.callout .lead .hot{color:var(--bad);font-weight:550}.callout .lead .warm{color:var(--warn);font-weight:550}.callout .head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.callout .head .t{font-size:12px;color:var(--mute);font-weight:500}.callout .head .r{margin-left:auto}.callout .acts{margin-top:16px}.big{font-family:var(--mono);font-size:clamp(46px,9vw,66px);font-weight:500;line-height:.9;letter-spacing:-.05em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.big sup{font-size:.26em;font-weight:400;vertical-align:super;color:var(--mute);letter-spacing:0;margin-left:4px}.fcrow{display:flex;align-items:flex-end;gap:32px;flex-wrap:wrap}.fcmeta{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--mute);padding-bottom:5px}.fcmeta b{color:var(--ink);font-weight:550}.turn{display:flex;gap:14px;padding:13px 0;font-size:14px;line-height:1.6}.turn+.turn{border-top:1px solid var(--line)}.turn .who2{font-size:11.5px;color:var(--mute);width:62px;flex:none;padding-top:3px}.turn .t2{flex:1 1;min-width:0;color:var(--ink2)}.turn.me .t2{color:var(--ink)}.turn .t2 em{font-style:normal;color:var(--mute)}.turn.alert .t2{color:var(--bad);font-weight:500}.vit{display:flex;flex-wrap:wrap;gap:0;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.vit div{flex:1 1 76px;padding:11px 13px}.vit dt{font-size:10px;color:var(--mute);letter-spacing:.06em;text-transform:uppercase}.vit dd,.vit dt{font-family:var(--mono)}.vit dd{margin:3px 0 0;font-size:15px;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.vit dd.ab{color:var(--bad)}.drop{border:1.5px dashed var(--line2);border-radius:var(--r-lg);padding:38px 20px;text-align:center;transition:.18s var(--spring);background:var(--surface)}.drop:hover{border-color:var(--accent);background:var(--accent-soft)}.drop .gl{font-size:24px;color:var(--mute);margin-bottom:10px}.drop b{display:block;font-size:15px;font-weight:550;margin-bottom:6px}.paste{width:100%;font-family:var(--mono);font-size:12.5px;line-height:1.65;padding:14px;border:1px solid var(--line2);border-radius:var(--r);background:var(--surface);color:var(--ink);resize:vertical}.paste:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.lecpills{display:flex;flex-wrap:wrap;gap:6px}.formerr{background:var(--badbg)}.formerr,.formok{font-size:13px;color:var(--ink2);border-radius:var(--r);padding:11px 14px;margin-bottom:14px;line-height:1.5}.formok{background:var(--okbg)}.authwrap{min-height:100vh;display:grid;place-items:center;padding:24px}.authcard{width:min(420px,100%)}.asmtrow{gap:7px;align-items:center}.asmtrow,.quota-head{display:flex;margin-bottom:8px;flex-wrap:wrap}.quota-head{gap:8px}.burst{position:relative;display:grid;place-items:center;min-height:140px}.burst .bits i{position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:3px;opacity:0;animation:burst 1.1s cubic-bezier(.2,.8,.2,1) forwards}@keyframes burst{0%{transform:translate(-50%,-50%) scale(0);opacity:1}30%{opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1) rotate(var(--r));opacity:0}}.burstmsg{position:relative;font-size:22px;font-weight:700;letter-spacing:-.02em;text-align:center;animation:pop-in .6s var(--bounce) .15s both}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}}@media (prefers-reduced-motion:reduce){.burst .bits{display:none}.stack>*{animation:none}}@media (max-width:860px){h1.title{font-size:28px}}