:root{--ink: #1d2026;--paper: #fbfbf9;--panel: rgba(54, 57, 63, .82);--blue: #a9c7f7;--blue-d: #5b8def;--pink: #f3a6da;--aqua: #eafbfb;--good: #2fb67c;--bad: #e5484d;--warn: #e7a43a;--font: "Lexend", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "Space Mono", ui-monospace, Menlo, monospace;--pad: max(16px, env(safe-area-inset-left))}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#9cc4de;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}svg{display:block}#stage{position:fixed;inset:0;touch-action:none}#stage canvas{display:block;width:100%;height:100%}#ui{position:fixed;inset:0;pointer-events:none;z-index:2}#ui>*{pointer-events:auto}.hidden{opacity:0!important;pointer-events:none!important}.btn{border:2px solid var(--ink);background:var(--blue);border-radius:999px;padding:10px 22px;font-weight:500;font-size:15px;box-shadow:0 3px 0 var(--ink);transition:transform .12s,box-shadow .12s,background .2s}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 0 var(--ink);background:#bcd4fb}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.btn:disabled{background:#d7dbe0;color:#8b929c;border-color:#a7adb5;box-shadow:none}.btn.ghost{background:#fff}.btn.big{font-size:18px;padding:14px 34px}.btn.pulse{animation:pulse 1.2s infinite}@keyframes pulse{50%{box-shadow:0 3px 0 var(--ink),0 0 0 8px #5b8def40}}.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;display:inline-flex;align-items:center;gap:8px;color:#5d6470}.eyebrow svg{width:14px;height:14px;color:var(--blue-d)}.eyebrow.light{color:#e7eef8}.eyebrow.light svg{color:#9fd0ff}.muted{color:#6b727d;font-size:14px}.card{background:#fff;border:2px solid var(--ink);border-radius:22px;box-shadow:0 6px 0 var(--ink);position:relative}.close-btn{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;border:2px solid var(--ink);background:#fff;display:grid;place-items:center;padding:0;z-index:2}.close-btn svg{width:18px;height:18px}.close-btn.light{position:fixed;top:20px;right:20px}.dots{display:flex;gap:6px}.dots i{width:8px;height:8px;border-radius:50%;background:#c7ccd3;border:1.5px solid var(--ink);transition:all .2s}.dots i.on{background:var(--blue-d);width:22px;border-radius:6px}.dots.big i{width:10px;height:10px}.dots.big i.on{width:26px}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:24px var(--pad);background:#161c2661;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:fadeIn .3s ease both;z-index:20;overflow:auto}.overlay.out{animation:fadeOut .25s ease both}.overlay.about{z-index:50}@keyframes fadeIn{0%{opacity:0}}@keyframes fadeOut{to{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(18px) scale(.97)}}.task-card{position:fixed;top:max(16px,env(safe-area-inset-top));left:var(--pad);background:var(--panel);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;border-radius:20px;padding:10px;width:min(330px,calc(100vw - 120px));z-index:5;transition:opacity .3s}.task-card.flash{animation:flash .9s ease}@keyframes flash{30%{box-shadow:0 0 0 4px #a9c7f7b3}}.task-row{display:flex;align-items:center;gap:12px}.task-icon{width:44px;height:44px;flex:none;border-radius:12px;background:#fff;color:var(--ink);display:grid;place-items:center;border:2px solid var(--ink)}.task-icon svg{width:22px;height:22px}.task-text{flex:1;min-width:0}.task-num{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:.75}.task-title{font-size:15px;font-weight:500;line-height:1.25}.task-toggle{width:34px;height:34px;border-radius:50%;background:#ffffff1f;border:0;color:#fff;padding:0;display:grid;place-items:center;transition:transform .25s,background .2s}.task-toggle:hover{background:#ffffff38}.task-toggle svg{width:18px;height:18px}.task-card.open .task-toggle{transform:rotate(180deg)}.task-list{list-style:none;margin:0;padding:0;max-height:0;overflow:hidden;transition:max-height .35s ease,margin .35s}.task-card.open .task-list{max-height:400px;margin-top:10px}.task-list li{display:flex;gap:10px;align-items:flex-start;padding:8px 6px;border-top:1px solid rgba(255,255,255,.12);opacity:.55}.task-list li.now,.task-list li.done{opacity:1}.task-list .tick{width:22px;height:22px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:11px;font-family:var(--mono);background:#ffffff26}.task-list li.done .tick{background:var(--good)}.task-list li.now .tick{background:var(--blue-d)}.task-list .tick svg{width:13px;height:13px}.task-list b{display:block;font-weight:500;font-size:13px}.task-list small{display:block;font-size:11.5px;opacity:.7;margin-top:2px}.corner{position:fixed;top:max(16px,env(safe-area-inset-top));right:var(--pad);display:flex;flex-direction:column;gap:10px;z-index:5}.round-btn{width:42px;height:42px;border-radius:50%;background:#fff;border:2px solid var(--ink);display:grid;place-items:center;padding:0;box-shadow:0 2px 0 var(--ink)}.round-btn svg{width:20px;height:20px}.hub{position:fixed;inset:0;pointer-events:none!important;transition:opacity .3s}.hub>*{pointer-events:auto}.nav-btn{position:fixed;top:66%;width:48px;height:48px;border-radius:50%;border:2px solid var(--ink);background:var(--blue);display:grid;place-items:center;padding:0;box-shadow:0 3px 0 var(--ink);transition:transform .12s}.nav-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.nav-btn svg{width:22px;height:22px}.nav-btn.left{left:var(--pad)}.nav-btn.right{right:var(--pad)}.zoom{position:fixed;right:var(--pad);bottom:max(20px,env(safe-area-inset-bottom));width:48px;height:170px;border-radius:26px;background:#fff;border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink);display:flex;flex-direction:column;align-items:center;padding:14px 0 8px}.zoom-track{position:relative;flex:1;width:100%;cursor:ns-resize;touch-action:none}.zoom-track:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;transform:translate(-50%);background:repeating-linear-gradient(#c7ccd3 0 4px,transparent 4px 9px)}.zoom-thumb{position:absolute;left:50%;width:26px;height:4px;border-radius:3px;background:var(--blue-d);transform:translate(-50%,50%);transition:bottom .15s}.zoom-icon{width:26px;height:26px;margin-top:6px;color:var(--ink)}.inventory{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:6px;padding:6px;background:#ffffff8c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;border:2px solid rgba(29,32,38,.12)}.slot{width:48px;height:48px;border-radius:50%;border:2px solid var(--ink);background:#fff;display:grid;place-items:center;padding:0;font-family:var(--mono);font-weight:700;font-size:16px;transition:transform .15s}.slot:hover{transform:translateY(-2px)}.slot .art{width:34px;height:34px;display:block}.slot .art svg{width:100%;height:100%}.slot.filled{background:#eef5ff}.slot.pop{animation:pop .6s cubic-bezier(.3,1.6,.5,1)}@keyframes pop{0%{transform:scale(.4)}to{transform:scale(1)}}.whats-this{position:fixed;left:0;top:0;display:flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:7px 14px 7px 10px;font-size:14px;font-weight:500;white-space:nowrap;box-shadow:0 3px 0 var(--ink);pointer-events:none!important;opacity:0;transition:opacity .15s;z-index:4}.whats-this.show{opacity:1}.whats-this svg{width:16px;height:16px;color:var(--blue-d)}.dialog{position:fixed;left:var(--pad);bottom:max(86px,calc(env(safe-area-inset-bottom) + 86px));width:min(470px,calc(100vw - 32px));background:#fff;border:2px solid var(--ink);border-radius:20px;padding:14px 18px 12px;box-shadow:0 5px 0 var(--ink);z-index:40;cursor:pointer;opacity:0;transform:translateY(16px);pointer-events:none!important;transition:opacity .25s,transform .25s}.dialog.show{opacity:1;transform:none;pointer-events:auto!important}.dialog.place-center{left:50%;transform:translate(-50%,16px);bottom:max(24px,env(safe-area-inset-bottom))}.dialog.place-center.show{transform:translate(-50%)}.dialog .who{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#4a5160;margin-bottom:4px}.dialog.is-pip .who{color:#23968b}.dialog .line{font-size:15.5px;line-height:1.45;min-height:2.9em}.dialog .more{text-align:right;font-size:12px;color:var(--blue-d);font-weight:500;margin-top:4px}.toast{position:fixed;top:max(18px,env(safe-area-inset-top));left:50%;transform:translate(-50%,-80px);background:var(--ink);color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;z-index:60;transition:transform .35s cubic-bezier(.3,1.4,.5,1);pointer-events:none!important;max-width:calc(100vw - 32px);text-align:center}.toast.show{transform:translate(-50%)}.fader{position:fixed;inset:0;background:#eaf3f8;opacity:0;pointer-events:none!important;transition:opacity .35s;z-index:80}.fader.on{opacity:1}.overlay.title{background:#141e2e52;backdrop-filter:blur(3px)}.title-inner{text-align:center;color:#fff;max-width:560px;animation:rise .6s ease both}.title-inner h1{font-size:clamp(44px,9vw,84px);line-height:1;margin:14px 0 16px;font-weight:700;letter-spacing:-.02em;text-shadow:0 3px 0 var(--ink),0 0 30px rgba(20,30,46,.35);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill}.title-inner p{font-size:17px;line-height:1.5;margin:0 auto 26px;max-width:460px;text-shadow:0 1px 8px rgba(20,30,46,.6)}.title-logo{width:72px;height:72px;border-radius:18px;display:block;margin:0 auto 14px;box-shadow:0 10px 30px #081a4859}.title-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}a.btn{display:inline-block;text-decoration:none;color:var(--ink)}.title-inner small{display:block;margin-top:16px;opacity:.85;font-size:13px;text-shadow:0 1px 6px rgba(20,30,46,.6)}.overlay.unlock{background:#1c212a9e}.unlock-inner{text-align:center;color:#fff;display:flex;flex-direction:column;align-items:center;animation:rise .45s ease both}.unlock-inner h1{font-size:clamp(44px,8vw,68px);margin:10px 0 4px;font-weight:700;letter-spacing:-.01em}.unlock-inner .question{font-size:17px;opacity:.92;margin:0 0 22px}.unlock-art{width:150px;height:150px;background:#fff;border-radius:26px;border:2px solid var(--ink);padding:14px;margin-bottom:26px;box-shadow:0 6px 0 var(--ink);animation:pop .6s cubic-bezier(.3,1.6,.5,1) .15s both}.learn-card{width:min(760px,100%);display:grid;grid-template-columns:220px 1fr;overflow:hidden;animation:rise .35s ease both}.learn-art{background:#eef5ff;border-right:2px solid var(--ink);padding:28px;display:grid;place-items:center}.learn-art svg{width:100%;max-width:170px}.learn-body{padding:28px 30px 22px;display:flex;flex-direction:column}.learn-body h2{font-size:24px;margin:8px 40px 14px 0;line-height:1.2}.learn-text{font-size:16.5px;line-height:1.6;margin:0 0 22px;min-height:5em}.learn-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.learn-btns{display:flex;gap:8px}.about-card{width:min(520px,100%);padding:28px 30px;animation:rise .35s ease both}.about-card h2{margin:8px 0 12px;font-size:28px}.about-card p{line-height:1.55;font-size:15px}.screen{position:fixed;inset:0;z-index:10;opacity:0;transition:opacity .35s;display:flex;flex-direction:column;align-items:center;overflow:auto}.screen.show{opacity:1}.pill-label{background:#fff;border:2px solid var(--ink);border-radius:999px;padding:6px 16px;font-size:13px;font-weight:500;white-space:nowrap}.label-screen{background:radial-gradient(circle at 70% 30%,#f6ffff,var(--aqua) 60%,#dff3f6);padding:22px var(--pad) 20px;gap:14px}.board{position:relative;display:flex;gap:clamp(20px,5vw,64px);align-items:center;justify-content:center;flex-wrap:wrap}.board.has-marker .paper{cursor:none}.sheet{position:relative;transform:rotate(var(--tilt, -2deg));background:#fff;border:2px solid var(--ink);border-radius:14px;padding:12px;box-shadow:0 6px 0 var(--ink)}.paper{width:min(310px,72vw,44vh);aspect-ratio:300 / 380;touch-action:none}.paper .scan-svg{width:100%;height:100%}.paper .cell{cursor:inherit}.paper .cell-body{transition:fill .25s}.paper .cell.just-painted .cell-body{animation:ink .35s ease}@keyframes ink{0%{fill-opacity:.2}}.paper .cell:hover .cell-body{filter:brightness(.96)}.pin{position:absolute;width:16px;height:16px;border-radius:50%;background:#3a3f48;border:2px solid var(--ink);box-shadow:inset -3px -3px #00000059;z-index:2}.pin.a{top:-6px;left:-6px}.pin.b{top:-6px;right:-6px}.pin.c{top:-8px;left:50%;transform:translate(-50%)}.board-side{display:flex;flex-direction:column;gap:14px;align-items:stretch;width:min(250px,80vw)}.board-side.nudge{animation:nudge .45s ease}@keyframes nudge{25%{transform:translate(-8px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}.rules{position:relative;background:#f6f9ff;border:2px solid var(--ink);border-radius:6px;padding:18px 14px 12px;transform:rotate(1.5deg);box-shadow:4px 5px #1d20262e}.rules-title{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;text-align:center;margin-bottom:8px}.rule{display:flex;align-items:center;gap:10px;width:100%;background:none;border:2px solid transparent;border-radius:10px;padding:5px 6px;text-align:left}.rule:hover{background:#5b8def14}.rule.active{border-color:var(--ink);background:#fff}.rule-art{width:46px;flex:none}.rule-name b{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.rule-name small{display:block;font-size:11.5px;color:#5d6470;line-height:1.3}.markers{display:flex;flex-direction:column;gap:8px}.marker-btn{background:#fff;border:2px solid var(--ink);border-radius:8px;padding:6px 10px;transition:transform .15s,box-shadow .15s;box-shadow:0 3px #1d202640}.marker-btn:hover{transform:translate(-3px)}.marker-btn.active{transform:translate(-12px) rotate(-3deg);box-shadow:0 4px 0 var(--ink);background:#f2f7ff}.marker-btn .marker-svg{width:100%;height:30px}.marker-cursor{position:absolute;left:0;top:0;width:120px;pointer-events:none;transform-origin:0 50%;margin-top:-14px;opacity:0;z-index:5;filter:drop-shadow(3px 4px 0 rgba(29,32,38,.2))}.board.has-marker .marker-cursor.show{opacity:1}.marker-cursor .marker-svg{width:120px;height:30px}.label-foot{display:flex;align-items:center;gap:14px}.cells-left{font-family:var(--mono);font-size:12px;color:#5d6470}.tray{display:flex;gap:10px;padding:8px 12px;background:#fff9;border:2px solid rgba(29,32,38,.15);border-radius:16px}.tray-slot{text-align:center}.tray-slot small{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:#6b727d}.tray-img{width:46px;height:58px;border:2px dashed #a7adb5;border-radius:8px;display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:#8b929c;overflow:hidden;background:#fff}.tray-slot.filled .tray-img{border:2px solid var(--ink);animation:pop .5s cubic-bezier(.3,1.6,.5,1)}.tray-img .scan-svg{width:100%;height:100%}.scan-ui{position:fixed;inset:0;pointer-events:none!important;z-index:8;opacity:0;transition:opacity .4s}.scan-ui.show{opacity:1}.scan-ui>*{pointer-events:auto}.scan-panel{position:absolute;right:max(80px,6vw);top:12vh;width:min(290px,40vw);height:min(430px,56vh);background:#f0f6fa8c;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:2px solid rgba(29,32,38,.55);border-radius:26px;padding:16px;display:flex;flex-direction:column;gap:10px}.scan-head{display:flex;justify-content:space-between;align-items:center;font-weight:500}.scan-head .ic svg{width:18px;height:18px}.scan-progress{height:10px;border:2px solid var(--ink);border-radius:6px;background:#fff;overflow:hidden}.scan-progress i{display:block;height:100%;width:0;background:var(--blue-d);transition:width .15s}.scan-progress.big{height:14px;margin:14px 0 18px}.slice-stack{flex:1;position:relative}.slice-card{position:absolute;left:50%;top:calc(8px + var(--i) * 9px);width:64%;transform:translate(-50%) rotate(var(--r));background:#fff;border:2px solid var(--ink);border-radius:12px;padding:6px 8px 8px;animation:drop .45s cubic-bezier(.3,1.4,.5,1) both}@keyframes drop{0%{opacity:0;transform:translate(-50%) translateY(-40px) rotate(-12deg) scale(.9)}}.slice-name{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;margin-bottom:4px}.slice-img .scan-svg{width:100%;height:auto;aspect-ratio:300 / 380;max-height:120px}.scan-count{font-family:var(--mono);font-size:11px;text-align:center;color:#3a3f48}.drag-track{position:absolute;right:max(80px,6vw);top:calc(12vh + min(430px,56vh) + 18px);width:min(290px,40vw);height:52px;border-radius:999px;background:#fff;border:2px solid var(--ink);box-shadow:0 3px 0 var(--ink)}.drag-label{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;pointer-events:none;padding-left:40px}.drag-knob{position:absolute;top:2px;left:0;width:44px;height:44px;margin-left:2px;border-radius:50%;border:2px solid var(--ink);background:var(--bad);color:#fff;display:grid;place-items:center;padding:0;cursor:grab;touch-action:none;animation:knob 1.6s ease-in-out infinite}.drag-knob svg{width:20px;height:20px}.drag-track.active .drag-knob{cursor:grabbing;animation:none}.drag-track.done .drag-knob{background:var(--good);animation:none}@keyframes knob{50%{transform:translate(10px)}}.train-screen{background:#d6e2ec8c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);justify-content:center;padding:20px var(--pad) 170px}.device{width:min(900px,100%);background:linear-gradient(140deg,#16244a,#1d3a74);border:3px solid var(--ink);border-radius:38px;padding:16px 22px 18px;color:#fff;box-shadow:0 8px 0 var(--ink),inset 0 0 0 6px #2b4688;animation:rise .45s ease both}.device-top{display:flex;align-items:center;gap:12px;padding:0 6px 12px}.device-top .spark svg{width:22px;height:22px;color:#fff}.device-title{flex:1;text-align:center;font-weight:500;font-size:16px}.status-icons{display:flex;gap:6px;opacity:.85}.status-icons svg{width:16px;height:16px}.device-body{display:grid;grid-template-columns:1fr 2fr 1fr;gap:14px;align-items:stretch}.io{background:#ffffff12;border-radius:24px;padding:14px 12px;display:flex;flex-direction:column;align-items:center;gap:10px}.io-tag{background:#fff;color:var(--ink);border-radius:999px;padding:3px 12px;font-size:12px;font-weight:500}.io-card{width:100%;max-width:150px;background:#fff;border-radius:10px;padding:5px;border:2px solid #0d1630}.io-card .scan-svg{width:100%;height:auto}.net-svg{width:100%;height:auto;max-height:300px}.net-svg .edge{stroke-linecap:round;transition:stroke-width .2s}.net-svg .node circle{stroke:#0d1630;stroke-width:2.5}.net-svg .node.in circle{fill:#8f6bff}.net-svg .node.hid circle{fill:#6c8dff}.net-svg .node circle{filter:drop-shadow(0 0 calc(var(--glow, 0) * 8px) rgba(160,200,255,.9))}.net-svg .node text{fill:#fff;font:700 15px var(--mono)}.net-svg .node.out text{fill:var(--ink)}.net-svg .node-label{fill:#ffffffbf!important;font:400 10px var(--mono)!important;letter-spacing:.06em}.device-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 6px 0;flex-wrap:wrap}.train-stats{display:flex;gap:18px;font-family:var(--mono);font-size:12px;opacity:.9;flex-wrap:wrap}.train-stats b{color:#9fd0ff;margin-left:4px}.training .net-svg .edge{animation:flow .6s linear infinite;stroke-dasharray:6 5}@keyframes flow{to{stroke-dashoffset:-22}}.review-screen{background:linear-gradient(160deg,#f0f3f6d1,#d6dee6d1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:24px var(--pad) 28px;gap:18px;justify-content:center}.review-head{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.review-head svg{width:16px;height:16px}.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,150px));gap:18px 22px}.scan-card,.result-card{background:#fff;border:2px solid var(--ink);border-radius:14px;padding:8px 9px 10px;transform:rotate(var(--tilt, 0deg));box-shadow:0 4px 0 var(--ink);transition:transform .18s,box-shadow .18s;text-align:left}.scan-card:hover{transform:rotate(0) translateY(-4px) scale(1.03);box-shadow:0 7px 0 var(--ink)}.scan-card.edited{background:#f3f8ff}.scan-card-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:500;margin-bottom:6px}.scan-card-head .dot{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--ink)}.badge{display:inline-flex;align-items:center;gap:3px;background:var(--blue-d);color:#fff;border-radius:999px;padding:1px 7px 1px 5px;font-family:var(--mono);font-size:10px}.badge svg{width:11px;height:11px}.scan-card-img .scan-svg{width:100%;height:auto;aspect-ratio:300 / 380;border-radius:4px}.review-nav{display:flex;gap:14px}.overlay.inspect{background:#e8f8fae6;place-items:center}.inspect-inner{display:flex;flex-direction:column;align-items:center;gap:16px;animation:rise .3s ease both}.inspect-foot{display:flex;gap:12px}.results-card,.retrain-card,.finale-card{width:min(720px,100%);padding:26px 28px;animation:rise .35s ease both}.results-card h2,.retrain-card h2,.finale-card h2{font-size:26px;margin:8px 0 14px;line-height:1.2}.result-stats{display:flex;gap:12px;margin-bottom:8px;flex-wrap:wrap}.stat{flex:1;min-width:110px;border:2px solid var(--ink);border-radius:14px;padding:10px 14px}.stat b{display:block;font-size:30px}.stat span{font-size:13px;color:#5d6470}.stat.good{background:#e6f7ef}.stat.bad{background:#fdecec}.stat.warn{background:#fdf3e2}.result-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin:12px 0 18px;max-height:38vh;overflow:auto;padding:4px}.result-card{padding:5px 6px 7px;box-shadow:0 3px 0 var(--ink)}.result-btns{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:8px}.acc-rows{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.acc-label{font-weight:500;margin-bottom:6px}.acc-bars{display:flex;flex-direction:column;gap:6px}.acc-bar{height:28px;width:var(--w);min-width:120px;border:2px solid var(--ink);border-radius:8px;display:flex;align-items:center;padding:0 10px;font-family:var(--mono);font-size:12px;white-space:nowrap;animation:grow .9s cubic-bezier(.2,.9,.3,1) both}.acc-bar.before{background:#e3e7ec}.acc-bar.after{background:#bfe8d4;animation-delay:.35s}@keyframes grow{0%{width:0;min-width:0}}.finale-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.finale-stats>div{border:2px solid var(--ink);border-radius:14px;padding:10px 14px;background:#f3f8ff}.finale-stats b{display:block;font-size:24px}.finale-stats span{font-size:13px;color:#5d6470}.finale-card p{line-height:1.55}.scan-svg .mark-wrong .cell-body,.scan-svg .mark-missed .cell-body{filter:saturate(1.1)}@media (max-width: 760px){.learn-card{grid-template-columns:1fr}.learn-art{border-right:0;border-bottom:2px solid var(--ink);padding:16px}.learn-art svg{max-width:110px}.learn-body{padding:20px 20px 18px}.device-body{grid-template-columns:1fr 1fr}.io.mid{grid-column:1 / -1;order:-1}.review-grid{grid-template-columns:repeat(2,minmax(0,150px));gap:14px}.scan-panel{right:50%;transform:translate(50%);top:auto;bottom:150px;width:min(320px,calc(100vw - 32px));height:210px}.slice-card{width:34%}.slice-img .scan-svg{max-height:70px}.drag-track{right:50%;transform:translate(50%);top:auto;bottom:84px;width:min(320px,calc(100vw - 32px))}.dialog{bottom:max(80px,calc(env(safe-area-inset-bottom) + 80px))}.nav-btn{top:58%}.zoom{height:130px}.inventory .slot{width:42px;height:42px}.inventory .slot .art{width:28px;height:28px}.board{gap:16px}.board-side{flex-direction:row;width:auto;flex-wrap:wrap;justify-content:center}.rules{width:min(250px,90vw)}.markers{flex-direction:row}.marker-btn{width:96px;padding:4px 6px}.marker-btn.active{transform:translateY(-6px) rotate(-3deg)}}
