:root{color-scheme:dark;--bg:#111c24;--panel:#182731;--ink:#e9eee8;--muted:#9caeaf;--line:#30434b;--mint:#b2e3cd;--gold:#eac490;--font:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0,#203a3c55,transparent 45%),var(--bg);color:var(--ink);font:15px/1.6 var(--font)}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:10px 15px;background:#ffffff04;min-height:44px;transition:background .15s,border-color .15s}button:hover{background:#b2e3cd15;border-color:#8bb3a4}button:disabled{opacity:.4;cursor:default}a{color:var(--mint)}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}header{max-width:1300px;margin:auto;padding:28px 40px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;color:var(--ink);text-decoration:none;font-size:15px;letter-spacing:3px;font-weight:650}.brand small{display:block;font-size:9px;letter-spacing:3px;color:var(--muted);font-weight:400}.logo{font-family:Georgia,serif;position:relative;font-size:44px;line-height:1;color:var(--mint);font-style:italic}.logo span{font:24px Georgia;position:relative;left:-5px;color:var(--gold)}header button{font-size:13px;border:0}header button span{padding-left:16px;color:var(--mint)}main{max-width:1200px;margin:auto;padding:0 32px}.intro{display:flex;align-items:center;justify-content:space-between;padding:65px 10px 48px;gap:30px}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:650;color:var(--mint);margin:0 0 14px}h1{font:clamp(36px,5vw,64px)/1.08 Georgia,serif;margin:0 0 24px;letter-spacing:-1.8px}h1 em{font-weight:400;color:var(--mint)}.lede{color:var(--muted);line-height:1.7;font-size:14px;margin:0}.collection{border:1px solid var(--line);padding:25px 35px;border-radius:50% 50% 12px 12px;text-align:center;min-width:205px;background:radial-gradient(ellipse at center,#b2e3cd0b,transparent)}.collection>span{font:38px Georgia,serif;color:var(--gold)}.collection p{font-size:11px;letter-spacing:1px;color:var(--muted);margin:6px 0 15px}#seals{display:flex;justify-content:center;gap:6px}.seal{width:10px;height:10px;border:1px solid #637475;transform:rotate(45deg)}.seal.pure{background:var(--gold);border-color:var(--gold)}.seal.guided{background:var(--mint);border-color:var(--mint)}.workspace{display:grid;grid-template-columns:210px minmax(0,1fr);gap:30px;align-items:start}aside{padding:24px 0}nav{display:flex;flex-direction:column;gap:8px}nav button{text-align:left;border-color:transparent;color:var(--muted);padding:10px;font-size:12px;display:flex;align-items:center;gap:10px}nav button .n{font-size:10px;color:#90a7a6;min-width:20px}nav button.active{color:var(--mint);background:#b2e3cd0b;border-color:#a8d8bf35}nav button .s{margin-left:auto;color:var(--gold)}.aside-note{font:italic 15px/1.8 Georgia;color:#849e9f;margin:35px 10px}article{padding:30px;background:linear-gradient(140deg,#1d3037,var(--panel) 50%);border:1px solid #40565b;border-radius:17px;box-shadow:0 20px 60px #0002;overflow:hidden}.study-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.study-head .eyebrow{font-size:9px;margin:0 0 5px}h2{font:28px/1.25 Georgia,serif;margin:0}.pill{font-size:8px;letter-spacing:1.2px;color:var(--gold);border:1px solid #b59b6a55;border-radius:30px;padding:6px 10px;white-space:nowrap}#note{font-size:13px;color:var(--muted);max-width:580px;margin:18px 0 24px;min-height:42px}.steps{display:flex;list-style:none;padding:0 0 20px;margin:0;border-bottom:1px solid var(--line);gap:30px;color:#6f898c;font:11px ui-monospace,SFMono-Regular,monospace}.steps span{font:12px var(--font);margin-left:6px}.steps li.current{color:var(--mint)}.steps li.done{color:var(--gold)}.roots{display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:1.5px;margin:22px 0 0;color:var(--muted)}.roots strong{color:var(--gold);font:16px ui-monospace,monospace;letter-spacing:5px}.root-hint{letter-spacing:0;margin-left:auto;font-size:10px;color:#8b9c9f}#graph{position:relative;margin-top:10px;height:350px;border-radius:12px;background:radial-gradient(circle at 50% 50%,#b2e3cd07,transparent 70%),radial-gradient(#adcabd12 1px,transparent 1px);background-size:auto,18px 18px}#wires{position:absolute;width:100%;height:100%;left:0;top:0;overflow:visible}.wire{stroke:#799895;stroke-width:1.5;opacity:.5;fill:none}.wire.live{stroke:#b2e3cd;opacity:.85}.wire.dead{opacity:.13}.object{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;flex-direction:column;width:72px;height:72px;border-radius:15px;background:#20343e;border:1px solid #5f7b80;box-shadow:0 6px 18px #0004;padding:5px;line-height:1.2;z-index:1}.object strong{font:23px Georgia,serif;color:#dfe7e2}.object small{font:9px ui-monospace,monospace;color:var(--muted);display:block;margin-top:6px}.object.root{border-color:var(--gold)}.object.root:before{content:'ROOT';position:absolute;top:-19px;font:8px var(--font);color:var(--gold);letter-spacing:1.5px}.object.marked{background:#33594f;border-color:var(--mint);box-shadow:0 0 20px #b2e3cd15}.object.marked strong{color:#d1f7df}.object.swept{opacity:.24;border-style:dashed;box-shadow:none}.legend{display:flex;justify-content:center;gap:18px;font-size:9px;color:var(--muted);margin:5px 0 24px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:50%;border:1px solid}.root-dot{border-color:var(--gold)!important;background:#eac49055}.mark-dot{background:var(--mint);border-color:var(--mint)!important}.dead-dot{border-color:#8ca6a6!important}.memory-head{display:flex;justify-content:space-between;color:#90a7a6;font:8px ui-monospace,monospace;letter-spacing:1px;margin-bottom:9px;gap:12px}#memory,#newmemory{display:flex;width:100%;min-height:44px;border:1px solid #526a6b;border-radius:7px;padding:3px;gap:2px;overflow:hidden}.block{background:#35524d;position:relative;min-width:0;display:flex;align-items:center;justify-content:center;color:#d2e6d8;font:11px ui-monospace,monospace;border-radius:3px}.block small{position:absolute;top:2px;left:3px;color:#a2b7b2;font-size:7px}.block.garbage{background:#25343b;color:#728489}.block.free{background:repeating-linear-gradient(-45deg,#30434b55,#30434b55 3px,transparent 3px,transparent 7px);color:#9cacae}.block.empty{background:transparent;color:#718789}#compact,#repair{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}h3{font:23px Georgia,serif;margin:0 0 10px}#compact p,#repair p,#victory p{font-size:12px;color:var(--muted);margin:0 0 15px}#tray,#addresses{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}#tray button{background:#253d43;border:1px solid #688b83;font:12px ui-monospace,monospace;min-width:62px}#tray button small{display:block;font-size:9px;color:var(--muted)}#tray button.placed{opacity:.35}#packed{margin-top:8px!important;font:10px ui-monospace,monospace}#message{font-size:12px;min-height:24px;margin:18px 0 15px;color:var(--gold)}.actions{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.actions>div{display:flex;gap:5px}.actions>div button{padding:8px 10px;font-size:11px}.primary{background:var(--mint);color:#17342c;border-color:var(--mint);font-size:12px;font-weight:650;min-width:160px;display:flex;justify-content:space-between;align-items:center;gap:15px}.primary:hover{background:#caeedc;border-color:#caeedc}#victory{margin:24px 0 0;background:#b2e3cd0b;border:1px solid #b2e3cd45;padding:22px;border-radius:12px}#victory .eyebrow{color:var(--gold);font-size:9px}#victory h3{font-size:27px}#victory .primary{margin-top:20px}details{margin:38px 0 0 240px;border:1px solid var(--line);padding:18px 24px;border-radius:12px}summary{font-size:12px;color:var(--mint);cursor:pointer;min-height:24px}details[open] summary{margin-bottom:25px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.guide-grid h3{font-size:19px}.guide-grid p,details>p{font-size:12px;color:var(--muted)}details .source{font-size:11px;border-top:1px solid var(--line);padding-top:16px}footer{max-width:1200px;margin:35px auto 25px;text-align:center;font-size:9px;letter-spacing:2px;color:#80989a}footer span{padding:0 12px;color:var(--gold)}[hidden]{display:none!important}@media(max-width:900px){.workspace{grid-template-columns:150px minmax(0,1fr);gap:18px}article{padding:23px}details{margin-left:168px}nav button{font-size:11px;padding:8px 6px}.object{width:64px;height:64px}.root-hint{display:none}.legend{gap:10px}.steps{gap:18px}.actions>div button{padding:9px 7px}}@media(max-width:650px){header{padding:18px 20px}main{padding:0 16px}.brand{font-size:12px;letter-spacing:2px}.brand small{font-size:7px}.intro{padding:35px 5px 26px;gap:16px}h1{font-size:36px;letter-spacing:-1px;margin-bottom:18px}.eyebrow{font-size:8px;letter-spacing:1.5px}.lede{font-size:11px}.collection{min-width:100px;padding:20px 10px}.collection>span{font-size:28px}.collection p{font-size:8px;letter-spacing:0}#seals{gap:4px;flex-wrap:wrap}.seal{width:7px;height:7px}.workspace{display:block}aside{padding:0 0 18px}aside>.eyebrow,.aside-note{display:none}nav{flex-direction:row;flex-wrap:wrap;gap:5px}nav button{justify-content:center;min-height:44px;width:calc((100% - 35px)/8);padding:5px}nav button .n{font-size:12px;min-width:0}nav button .chapter-name,nav button .s{display:none}nav button.completed{border-bottom-color:var(--gold)}article{padding:20px 15px;border-radius:13px}h2{font-size:24px}.pill{font-size:7px;padding:5px 7px;letter-spacing:.4px}.study-head{gap:6px}#note{font-size:12px;margin:14px 0 18px;min-height:55px}.steps{gap:22px;padding-bottom:15px;font-size:10px}.steps span{font-size:11px}.roots{font-size:8px;margin-top:18px}#graph{height:360px}.object{width:58px;height:66px;border-radius:12px}.object strong{font-size:21px}.object small{font-size:8px}.legend{font-size:8px;gap:10px;flex-wrap:wrap;margin-bottom:18px}.memory-head{font-size:7px;letter-spacing:.3px}.block{font-size:9px}.block small{font-size:6px;left:1px}.actions{display:block}.actions>.primary{width:100%;margin-bottom:12px}.actions>div{justify-content:space-between}.actions>div button{font-size:11px;padding:10px 12px}details{margin:20px 0 0;padding:18px}.guide-grid{grid-template-columns:1fr;gap:15px}footer{font-size:8px;letter-spacing:1px;padding:0 16px}#victory{padding:18px}#addresses button{min-width:45px}#message{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
