:root{--ink:#141414;--muted:#6e6c67;--faint:#9c9a94;--line:#e3e1db;--paper:#f4f3ef;--card:#fff;--accent:#e8711c;--sans:"Inter", system-ui, -apple-system, "Helvetica Neue", sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:#e8e7e2;margin:0}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}.mono{font-family:var(--mono);letter-spacing:-.01em}.muted{color:var(--muted)}#app{background:var(--card);border-left:1px solid var(--line);border-right:1px solid var(--line);flex-direction:column;max-width:720px;height:100dvh;margin:0 auto;display:flex;overflow:hidden}header.top{justify-content:space-between;align-items:flex-start;padding:13px 16px 10px;display:flex}header .title{letter-spacing:-.01em;font-size:15px;font-weight:600}header .sub{color:var(--muted);margin-top:2px;font-size:11.5px}#hdr-step{white-space:nowrap;margin-left:12px;padding-top:2px;font-size:11px}#viewport{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex:auto;min-height:0;position:relative}#gl{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.callout{border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6;border-radius:3px;max-width:calc(100% - 128px);padding:6px 7px 5px;position:absolute;top:10px;left:10px}.callout-h{color:var(--muted);margin-bottom:3px;font-size:9.5px}.callout-items{flex-wrap:wrap;align-items:flex-start;gap:2px 3px;display:flex}.part-btn{text-align:center;background:0 0;border:0;width:42px;padding:0;position:relative}.part-btn img{width:34px;height:34px;margin:0 auto;transition:transform .12s;display:block}.part-btn .x{background:var(--ink);color:#fff;font-family:var(--mono);border-radius:2px;padding:1px 3px;font-size:9px;line-height:1.2;position:absolute;top:22px;right:0}.part-btn .n{color:var(--muted);white-space:nowrap;margin-top:1px;font-size:8.5px;line-height:1.1;display:block}.part-btn:hover img,.part-btn.hot img{filter:drop-shadow(0 0 0 var(--accent)) brightness(1.04);transform:translateY(-1px)}.part-btn.hot .x{background:var(--accent)}.more{font-family:var(--mono);color:var(--muted);align-self:center;font-size:9.5px}.vp-right{flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:10px;right:10px}.chip{border:1px solid var(--line);background:#ffffffeb;border-radius:3px;padding:4px 9px;font-size:11px}.chip:hover{border-color:var(--faint)}.plan{border:1px solid var(--line);background:#ffffffeb;border-radius:3px;padding:4px 5px 5px}.plan-h{color:var(--muted);margin-bottom:3px;font-size:9px}#plan{width:62px;height:73px;display:block}.scalebar{color:var(--muted);align-items:center;gap:7px;font-size:10px;display:flex;position:absolute;bottom:10px;left:12px}.scalebar .bar{border-left:1px solid var(--ink);border-right:1px solid var(--ink);width:40px;height:7px;display:block;position:relative}.scalebar .bar:after{content:"";border-top:1px solid var(--ink);position:absolute;top:3px;left:0;right:0}.count{color:var(--muted);font-size:10.5px;position:absolute;bottom:9px;right:12px}.count b{color:var(--ink);font-weight:500}.caption{color:var(--ink);white-space:nowrap;background:#ffffffe6;border-radius:2px;padding:3px 8px;font-size:10.5px;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}#panel{scrollbar-width:thin;flex:0 0 37%;padding:14px 18px 12px;overflow-y:auto}#panel.intro,#panel.done{flex-basis:40%}.step-head{grid-template-columns:34px 1fr;align-items:start;gap:4px 10px;display:grid}.step-head .num{letter-spacing:-.03em;font-size:34px;font-weight:500;line-height:.95}.step-head h2{letter-spacing:-.01em;margin:1px 0 2px;font-size:15px;font-weight:600}.step-head p{margin:0;font-size:12.5px;line-height:1.4}.subs{gap:4px;margin:8px 0 0 44px;padding:0;list-style:none;display:grid}.subs li{grid-template-columns:18px 1fr;gap:8px;font-size:12.5px;line-height:1.35;display:grid}.subs .dot{background:var(--ink);color:#fff;border-radius:50%;place-items:center;width:17px;height:17px;margin-top:.5px;font-size:10px;font-weight:600;display:grid}.meta-line{color:var(--muted);margin:9px 0 0 44px;font-size:11px}.tip{border-left:2px solid var(--line);color:var(--muted);margin:6px 0 0 44px;padding:2px 0 2px 10px;font-size:11.5px;line-height:1.4}.cols{grid-template-columns:44px 1fr;gap:10px;display:grid}.cols .lab{color:var(--muted);padding-top:3px;font-size:11px}.cols h2{letter-spacing:-.01em;margin:0 0 4px;font-size:15px;font-weight:600}.cols p{margin:0;font-size:13px;line-height:1.42}.cols .meta-line,.cols .tip{margin-left:0}.tray-h{color:var(--muted);margin:12px 0 6px;font-size:10.5px}.inv{grid-template-columns:repeat(4,1fr);gap:2px 8px;display:grid}.inv .it{border-bottom:1px solid #f0efea;grid-template-columns:30px auto 1fr;align-items:center;gap:5px;min-width:0;padding:3px 0;display:grid}.inv img{width:30px;height:30px}.inv .q{font-family:var(--mono);color:var(--muted);font-size:10px}.inv .nm{min-width:0;font-size:10.5px;line-height:1.15}.inv .nm small{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;font-size:9.5px;display:block;overflow:hidden}.notes{gap:0;margin-top:10px;display:grid}.notes .row{border-bottom:1px solid #f0efea;grid-template-columns:12px 92px 1fr;align-items:center;gap:10px;padding:4px 0;font-size:12px;display:grid}.notes .sw{border-radius:2px;width:12px;height:12px}.notes .what{font-family:var(--mono);color:var(--muted);font-size:10.5px}footer.nav{border-top:1px solid var(--line);grid-template-columns:1fr 2fr;gap:10px;padding:10px 12px 12px;display:grid}.btn{border-radius:3px;height:42px;font-size:13.5px;font-weight:500}.btn.ghost{border:1px solid var(--line);background:#fff}.btn.ghost:disabled{color:var(--faint);cursor:default}.btn.solid{background:var(--ink);color:#fff;border:1px solid var(--ink)}.btn.solid:hover,.btn.solid.hover{background:#2a2a2a}.btn.ghost:not(:disabled):hover,.btn.ghost.hover{border-color:var(--faint)}.btn.pressed{filter:brightness(.92);transform:scale(.985)}#cursor{z-index:50;pointer-events:none;width:22px;height:22px;position:fixed;top:0;left:0}#cursor svg{filter:drop-shadow(0 1px 1px #00000040);position:absolute;top:-2px;left:-4px}#cursor .ripple{opacity:0;border:2px solid #14141480;border-radius:50%;width:28px;height:28px;position:absolute;top:-14px;left:-14px}@media (width<=480px){.inv{grid-template-columns:repeat(2,1fr)}.callout-items .part-btn:nth-child(n+6){display:none}header .sub{font-size:10.5px}#panel{flex-basis:44%}}
