:root{--ink:#1c1a2e;--ink2:#3b3757;--muted:#5f5a7a;--paper:#fffdf6;--paper2:#f4f0ff;--white:#fff;--line:#dcd6ee;--violet:#6e44ff;--violet-hi:#8261ff;--violet-lo:#5a31f0;--violet-t:#eee8ff;--pink:#ff3e8a;--pink-t:#ffe3ef;--blue:#2d7ff9;--blue-t:#e2eeff;--cyan:#14c8e8;--cyan-t:#dcf7fc;--lime:#8be000;--lime-t:#eefad5;--grass:#22c55e;--grass-d:#15803d;--grass-t:#dcfce7;--sun:#ffc93c;--sun-t:#fff3c4;--orange:#ff7a1a;--orange-t:#ffe6d1;--red:#ff4d4d;--red-d:#c81e3c;--red-t:#ffe0e0;--bw:2.5px;--pop-xs:0 2px 0 var(--ink);--pop-sm:0 3px 0 var(--ink);--pop:0 4px 0 var(--ink);--pop-lg:0 6px 0 var(--ink);--focus:#2d7ff9;--green:var(--violet);--green2:var(--violet-lo);--green-edge:var(--ink);--mint:var(--violet-t);--peach:var(--orange-t);--lavender:var(--violet-t);--cream:var(--sun-t);--honey:var(--sun);--amber:var(--sun);--rose:var(--pink);--edge:var(--ink);--glow:#fffbf0;--scrim:#16122cc7;--shadow:0 12px 30px #1c1a2e3d, 0 2px 6px #1c1a2e1f;--radius:18px;--spring:cubic-bezier(.25, 1.35, .45, 1);--bounce:cubic-bezier(.2, 1.6, .4, 1);--ts:1;--fs:calc(14px * var(--ts));--display:ui-rounded, "SF Pro Rounded", "Nunito", "Varela Round", "Arial Rounded MT Bold", -apple-system, "Segoe UI", sans-serif;--serif:var(--display);--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;font-family:var(--sans);color:var(--ink);font-size:var(--fs);-webkit-font-smoothing:antialiased;background:#1c1a2e;margin:0;overflow:hidden}canvas#game{touch-action:none;outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{pointer-events:none;z-index:10;-webkit-user-select:none;user-select:none;position:fixed;inset:0}#ui input,#ui textarea{-webkit-user-select:text;user-select:text}#ui>*{pointer-events:auto}#ui .passthrough,#ui .passthrough *{pointer-events:none}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}::selection{background:var(--sun);color:var(--ink)}kbd{border:2px solid var(--ink);min-width:1.85em;height:1.7em;box-shadow:0 2px 0 var(--ink);font:800 .8em var(--display);color:var(--ink);text-align:center;background:#fff;border-radius:7px;place-items:center;padding:0 .45em;line-height:1;display:inline-grid}h1,h2,h3{font-family:var(--display);letter-spacing:-.015em;margin:0 0 .5em;font-weight:800}small{color:var(--muted)}@keyframes ui-in{0%{opacity:0}to{opacity:1}}@keyframes ui-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes ui-lift{0%{opacity:0;translate:0 12px}}@keyframes ui-pop{0%{opacity:0;translate:0 10px;scale:.94}}@keyframes ui-wiggle{0%,to{rotate:0deg}25%{rotate:-6deg}50%{rotate:5deg}75%{rotate:-3deg}}@keyframes ui-bob{0%,to{translate:0}50%{translate:0 -4px}}.btn{--lift:3px;border:var(--bw) solid var(--ink);color:var(--ink);cursor:pointer;font:800 .95em var(--display);letter-spacing:.005em;box-shadow:0 var(--lift) 0 var(--ink);transition:transform .16s var(--spring), box-shadow .16s var(--spring), background .14s, color .14s;white-space:nowrap;background:#fff;border-radius:14px;justify-content:center;align-items:center;gap:.45em;padding:.5em 1.05em .55em;display:inline-flex;position:relative;top:0}.btn:hover{background:var(--sun-t);box-shadow:0 calc(var(--lift) + 2px) 0 var(--ink);transform:translateY(-2px)}.btn:active{background:var(--paper2);transform:translateY(calc(var(--lift) - 1px));box-shadow:0 1px 0 var(--ink);transition-duration:60ms}.btn.primary{background:var(--violet);color:#fff}.btn.primary:hover{background:var(--violet-hi)}.btn.primary:active{background:var(--violet-lo)}.btn.ghost{box-shadow:none;background:0 0;border-color:#0000}.btn.ghost:hover{box-shadow:none;background:#6e44ff1a;transform:none}.btn.ghost:active{box-shadow:none;background:#6e44ff2e;transform:scale(.96)}.btn.danger{color:var(--red-d)}.btn.danger:hover,.btn.danger.ghost:hover{background:var(--red-t)}.btn.small{--lift:2px;border-width:2px;border-radius:11px;padding:.3em .75em .36em;font-size:.85em}.btn.big{--lift:5px;border-width:3px;border-radius:18px;padding:.72em 1.5em .8em;font-size:1.08em}.btn[disabled],.btn.disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.5);transform:none}.btn[disabled]:hover,.btn.disabled:hover,.btn[disabled]:active,.btn.disabled:active{box-shadow:0 var(--lift) 0 var(--ink);background:#fff;transform:none}.btn.primary[disabled]:hover,.btn.primary[disabled]:active{background:var(--violet)}.btn.ghost[disabled]:hover,.btn.ghost[disabled]:active{box-shadow:none;background:0 0}.btn.selected{background:var(--sun)}.btn.selected:hover{background:#ffd35f}.chip{font:750 .82em var(--display);border:2px solid var(--ink);color:var(--ink);background:#fff;border-radius:999px;align-items:center;gap:.35em;padding:.2em .65em;display:inline-flex}.chip.pref{background:var(--pink-t)}.chip.ok{background:var(--grass-t);color:var(--grass-d)}.chip.ok .pc-ico,.chip.ok svg{color:var(--grass-d)}.chip.warn{background:var(--sun-t)}.chip.selected{background:var(--sun);box-shadow:0 2px 0 var(--ink)}button.chip{cursor:pointer;color:var(--ink);transition:background .14s, transform .16s var(--spring), box-shadow .16s var(--spring)}button.chip:hover{background:var(--sun-t);box-shadow:0 3px 0 var(--ink);transform:translateY(-2px)}button.chip:active{background:var(--paper2);box-shadow:none;transition-duration:60ms;transform:translateY(1px)}button.chip.selected:hover,button.chip.selected:active{background:var(--sun);box-shadow:0 2px 0 var(--ink)}.row{flex-wrap:wrap;align-items:center;gap:.5em;display:flex}.col{flex-direction:column;gap:.5em;display:flex}.spacer{flex:1}.muted{color:var(--muted)}.credits{font-weight:800;font-family:var(--display);font-variant-numeric:tabular-nums;align-items:center;gap:.3em;display:inline-flex}.credits small{font-weight:700}.coin{width:.9em;height:.9em;box-shadow:0 0 0 1.5px var(--ink);background:radial-gradient(circle at 35% 32%,#fff3b0 0 18%,#ffcd3c 45%,#e89a12 100%);border-radius:50%;flex:none;display:inline-block}.swatch{border:2px solid var(--ink);width:1.9em;height:1.9em;box-shadow:0 2px 0 var(--ink);cursor:pointer;transition:transform .16s var(--spring), box-shadow .16s;border-radius:50%;padding:0}.swatch:hover{transform:translateY(-2px)scale(1.06)}.swatch:active{transition-duration:60ms;transform:scale(.9)}.swatch.selected{box-shadow:0 0 0 3px #fff, 0 0 0 5.5px var(--ink)}.swatches{flex-wrap:wrap;gap:.5em;padding:2px;display:flex}.seg{border:var(--bw) solid var(--ink);box-shadow:var(--pop-xs);background:#fff;border-radius:14px;flex-wrap:wrap;justify-self:start;gap:3px;padding:3px;display:inline-flex}.seg button{cursor:pointer;font:800 .9em var(--display);color:var(--ink2);transition:background .14s, color .14s, transform .16s var(--spring);background:0 0;border:0;border-radius:10px;padding:.38em .85em .42em}.seg button:hover{background:var(--violet-t);color:var(--ink)}.seg button:active{transition-duration:60ms;transform:scale(.95)}.seg button.on,.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:var(--violet);color:#fff;box-shadow:inset 0 -3px #1c1a2e59}.seg button:focus-visible{outline-offset:1px}.overlay{opacity:0;z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(120% 90% at 50% 0,#6e44ff5c,#120e28bd);place-items:center;transition:opacity .2s;display:grid;position:fixed;inset:0}.overlay.in{opacity:1}.dialog{background:var(--paper);color:var(--ink);border:3px solid var(--ink);max-width:min(460px,92vw);box-shadow:0 8px 0 var(--ink), 0 30px 80px #0006;transition:transform .34s var(--bounce);border-radius:26px;padding:1.4em 1.6em 1.3em;position:relative;transform:translateY(18px)scale(.92)rotate(-1.5deg)}.dialog.wide{max-width:min(760px,94vw)}.overlay.in .dialog{transform:none}.dialog h2{font:900 1.6em/1.15 var(--display);color:var(--ink);letter-spacing:-.02em;text-underline-offset:-.14em;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-line:underline;text-decoration-color:#ffc93cd9;text-decoration-thickness:.34em}.dialog-body{color:var(--ink2);margin-bottom:1.3em;line-height:1.5}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6em;display:flex}.toasts{z-index:60;flex-direction:column;align-items:center;gap:10px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%);pointer-events:none!important}.toast{max-width:min(560px,90vw);color:var(--ink);border:var(--bw) solid var(--ink);box-shadow:var(--pop);opacity:0;transition:opacity .2s, transform .38s var(--bounce);font:800 .95em/1.25 var(--display);background:#fff;border-radius:999px;align-items:center;gap:.55em;padding:.42em 1.1em .46em .45em;display:inline-flex;transform:translateY(-16px)scale(.86)rotate(-3deg)}.toast:before{content:"i";background:var(--violet);color:#fff;border:2px solid var(--ink);width:1.65em;height:1.65em;font:900 .85em/1 var(--display);border-radius:50%;flex:none;place-items:center;display:grid}.toast.in{opacity:1;transform:none}.toast.success{background:var(--grass-t)}.toast.success:before{content:"✓";background:var(--grass);color:var(--ink)}.toast.warn{background:var(--sun-t)}.toast.warn:before{content:"!";background:var(--orange);color:var(--ink)}.hint{color:var(--ink);border:var(--bw) solid var(--ink);box-shadow:var(--pop);font:800 1em var(--display);opacity:0;transition:opacity .18s, transform .26s var(--spring);background:#fff;border-radius:999px;padding:.4em 1.05em .45em;position:fixed;bottom:13%;left:50%;transform:translate(-50%,8px)scale(.94);pointer-events:none!important}.hint.show{opacity:1;transform:translate(-50%)}.crosshair{width:7px;height:7px;box-shadow:0 0 0 2px var(--ink);transition:transform .18s var(--spring), background .15s;background:#fff;border-radius:50%;margin:-3.5px 0 0 -3.5px;position:fixed;top:50%;left:50%;pointer-events:none!important}.crosshair.active{background:var(--sun);transform:scale(2.1)}.hud-top{align-items:center;gap:8px;display:flex;position:fixed;top:14px;right:14px}.hud{animation:.25s ease-out ui-in}.hud-pill{color:var(--ink);border:var(--bw) solid var(--ink);box-shadow:var(--pop-sm);font:800 .95em var(--display);background:#fff;border-radius:999px;align-items:center;gap:.4em;padding:.28em .85em .32em;display:inline-flex}.hud-pill small{color:var(--muted)}.hud-save{background:var(--grass-t);font-size:.8em;transition:opacity .4s}.hud-save.error{background:var(--red);color:#fff}.hud-bottom-left{flex-wrap:wrap;gap:.5em;max-width:70vw;display:flex;position:fixed;bottom:14px;left:16px}.hud-key{color:#fff;font:800 .82em var(--display);background:#1c1a2eb8;border-radius:999px;align-items:center;gap:.45em;padding:.2em .75em .2em .25em;display:inline-flex}.hud-key kbd{box-shadow:none;border-width:1.5px}.hud-left{flex-direction:column;align-items:flex-start;gap:14px;max-width:300px;display:flex;position:fixed;top:16px;left:16px}.hud-order{color:var(--ink);border:var(--bw) solid var(--ink);box-shadow:var(--pop);background:#fff;border-radius:16px;flex-direction:column;align-items:flex-start;gap:.15em;padding:.55em .8em .6em;display:flex}.hud-q-bar{background:var(--paper2);border:2px solid var(--ink);border-radius:999px;width:100%;min-width:150px;height:10px;margin-top:.35em;display:block;overflow:hidden}.hud-q-bar i{background:repeating-linear-gradient(-45deg, var(--sun) 0 6px, #ffad0a 6px 12px);border-radius:0 999px 999px 0;height:100%;display:block}.hud-quest .hud-q-ready{color:var(--violet-lo);margin-top:.15em}.hud-order .over,.tutorial-card .over{border:2px solid var(--ink);background:var(--orange);color:var(--ink);font:900 .68em var(--display);letter-spacing:.14em;text-transform:uppercase;border-radius:999px;padding:.15em .6em;display:inline-block;transform:rotate(-2deg)}.hud-quest .over{background:var(--sun)}.hud-order b{font:850 1.1em/1.2 var(--display);margin-top:.15em}.hud-order .st{font:700 .9em var(--display);color:var(--ink2)}.click-to-play{background:var(--violet);color:#fff;border:var(--bw) solid var(--ink);box-shadow:var(--pop);font:850 1em var(--display);border-radius:999px;align-items:center;gap:.5em;padding:.5em 1.25em .55em;animation:2.4s ease-in-out infinite ui-bob;display:inline-flex;position:fixed;top:58%;left:50%;transform:translate(-50%);pointer-events:none!important}.tutorial-card{width:min(300px,40vw);color:var(--ink);border:3px solid var(--ink);box-shadow:var(--pop-lg);animation:ui-pop .35s var(--bounce);background:#fff;border-radius:20px;padding:.8em .95em .7em;position:fixed;top:62px;right:16px}.tutorial-card .over{background:var(--violet);color:#fff}.tutorial-card h3{font:900 1.15em/1.2 var(--display);color:var(--ink);margin:.35em 0 .25em}.tutorial-card p{color:var(--ink2);margin:0 0 .6em;font-size:.92em;line-height:1.45}.tutorial-card .row{gap:.3em}.tutorial-card .btn.ghost{color:var(--muted)}.tutorial-card .btn.ghost:hover{color:var(--ink)}.gm{flex-direction:column;align-items:flex-start;gap:.12em;display:flex}.gm-item{color:#ece6ff;font:900 clamp(1.45rem, 2.5vw, 2.1rem)/1.18 var(--display);letter-spacing:-.01em;cursor:pointer;-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink);transform-origin:0;transition:color .12s, transform .22s var(--bounce);background:0 0;border:0;align-items:center;gap:.45em;padding:.1em .4em .14em 0;display:inline-flex;position:relative}.gm-cap{background:var(--pink);border:3px solid var(--ink);width:.66em;height:.56em;box-shadow:0 .09em 0 var(--ink);transition:transform .22s var(--bounce);border-radius:.17em;flex:none;transform:scale(0)rotate(-20deg)}.gm-item.sel{color:var(--sun);transform:translate(.2em)rotate(-1.5deg)}.gm-item.sel .gm-cap{transform:scale(1)rotate(-8deg)}.gm-item:active{transition-duration:60ms;transform:translate(.2em)scale(.96)}.gm-item:active .gm-cap{transform:scale(.8)translateY(.08em)}.gm-item:focus-visible{outline:none}.gm-item.minor{color:#c9c1ec;-webkit-text-stroke-width:4px;text-shadow:0 2px 0 var(--ink);margin-top:.9em;font-size:clamp(.95rem,1.3vw,1.1rem)}.gm-item.minor.sel{color:#fff}.gm-item[disabled]{opacity:.4;cursor:default}.gm-hint{color:#fff;font:800 .95em var(--display);cursor:pointer;-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;background:0 0;border:0;border-radius:8px;align-items:center;gap:.5em;padding:.3em .2em;transition:color .14s;display:inline-flex}.gm-hint:hover{color:var(--sun)}.gm-hint kbd{-webkit-text-stroke:0;transition:transform .16s var(--spring), box-shadow .16s, background .14s}button.gm-hint:hover kbd{background:var(--sun);box-shadow:0 4px 0 var(--ink);transform:translateY(-2px)}button.gm-hint:active kbd{background:var(--paper2);box-shadow:0 1px 0 var(--ink);transition-duration:60ms;transform:translateY(1px)}.title-screen{background:radial-gradient(70% 110% at 0%,#6e44ff80,#6e44ff00 70%),linear-gradient(90deg,#1c1a2ed1 0%,#1c1a2e80 32%,#1c1a2e0f 64%,#1c1a2e00 100%);align-items:center;animation:.6s ease-out ui-in;display:flex;position:fixed;inset:0}.title-screen.behind>*{visibility:hidden}.ts-main{flex-direction:column;gap:clamp(1.4rem,5vh,3rem);margin-left:clamp(2rem,8vw,8.5rem);display:flex}.ts-brand{flex-direction:column;align-items:flex-start;display:flex}.logo{color:#fff}.logo-caps{gap:.32em;margin:0 0 .75em .08em;font-size:clamp(1.25rem,2vw,1.75rem);display:flex}.logo-caps i{background:var(--c);border:.11em solid var(--ink);width:1.9em;height:1.78em;box-shadow:0 .17em 0 var(--ink), inset 0 -.26em 0 #00000029;animation:cap-in .6s calc(.15s + var(--i) * 70ms) cubic-bezier(.2, .9, .3, 1.25) backwards, cap-float 5s calc(1.2s + var(--i) * .5s) ease-in-out infinite;border-radius:.4em;display:block;position:relative}.logo-caps i:nth-child(odd){rotate:-4deg}.logo-caps i:nth-child(2n){rotate:3deg}.logo-caps i:before{content:"";background:color-mix(in srgb, var(--c) 70%, #fff);border-radius:.26em;position:absolute;inset:.1em .17em .4em;box-shadow:inset 0 -.05em #00000014}.logo-caps i.homing:after{content:"";background:var(--ink);opacity:.55;border-radius:1em;width:.4em;height:.09em;margin-left:-.2em;position:absolute;bottom:.56em;left:50%}@keyframes cap-in{0%{opacity:0;translate:0 -.8em;scale:.9}55%{opacity:1}}@keyframes cap-float{0%,to{translate:0}50%{translate:0 -.15em}}.logo-word{font:900 clamp(3.4rem, 7.2vw, 6.2rem)/.95 var(--display);letter-spacing:-.03em;color:#fff;-webkit-text-stroke:.12em var(--ink);paint-order:stroke fill;text-shadow:0 .075em 0 var(--ink), 0 .3em .5em #00000040;animation:ui-lift .6s .32s var(--spring) backwards;padding:0 .06em .12em 0}.logo-word span{display:inline-block}.logo.small .logo-word{font-size:1.8em}.logo.small .logo-caps{margin-bottom:.4em;font-size:.55em}.ts-tag{background:var(--sun);color:var(--ink);border:var(--bw) solid var(--ink);box-shadow:var(--pop-sm);font:850 clamp(.95rem, 1.3vw, 1.15rem)/1.3 var(--display);animation:ui-lift .6s .44s var(--spring) backwards;border-radius:999px;align-self:flex-start;margin:.9em 0 0 .15em;padding:.3em .95em .36em;transform:rotate(-2deg)}.title-screen .gm-item{animation:ui-lift .5s .52s var(--spring) backwards}.title-screen .gm-item:nth-child(2){animation-delay:.58s}.title-screen .gm-item:nth-child(3){animation-delay:.64s}.title-screen .gm-item:nth-child(4){animation-delay:.7s}.ts-corner,.ts-ver{animation:.6s ease-out .8s backwards ui-in}.title-screen.again .logo-word,.title-screen.again .ts-tag,.title-screen.again .gm-item,.title-screen.again .ts-corner,.title-screen.again .ts-ver{animation:none}.title-screen.again .logo-caps i{animation:cap-float 5s calc(var(--i) * .5s) ease-in-out infinite}.ts-corner{align-items:center;gap:.7em;display:flex;position:fixed;bottom:1.3rem;right:1.4rem}.caps{gap:.35em;display:flex}.cap{font:850 .85em var(--display);border:var(--bw) solid var(--ink);min-width:2.7em;height:2.35em;color:var(--ink);box-shadow:var(--pop-sm);cursor:pointer;transition:transform .16s var(--spring), background .14s, box-shadow .16s var(--spring);background:#fff;border-radius:11px;place-items:center;padding:0 .6em;display:inline-grid}.cap:hover{background:var(--sun-t);box-shadow:0 5px 0 var(--ink);transform:translateY(-2px)}.cap:active{box-shadow:0 1px 0 var(--ink);transition-duration:60ms;transform:translateY(2px)}.cap.on{background:var(--sun)}.cap.on:hover{background:#ffd35f}.cap.icon{min-width:2.35em;font-size:1.05em}.ts-ver{font:800 .75em var(--display);color:#ffffff8c;position:fixed;bottom:1.2rem;left:1.4rem}.pause{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:radial-gradient(70% 110% at 0%,#6e44ff73,#6e44ff00 72%),linear-gradient(90deg,#1c1a2edb,#1c1a2e80 45%,#1c1a2e38);align-items:center;animation:.18s ease-out ui-in;display:flex;position:fixed;inset:0}.pause-main{animation:ui-rise .26s var(--spring);flex-direction:column;gap:1em;margin-left:clamp(2rem,8vw,8.5rem);display:flex}.pause-over{background:var(--pink);color:var(--ink);border:var(--bw) solid var(--ink);box-shadow:var(--pop-sm);font:900 .85em var(--display);letter-spacing:.22em;text-transform:uppercase;border-radius:999px;align-self:flex-start;padding:.25em .8em;transform:rotate(-3deg)}.pause-foot{position:fixed;bottom:1.5rem;left:clamp(2rem,8vw,8.5rem)}.ctl-grid{grid-template-columns:repeat(auto-fill,minmax(16em,1fr));gap:.35em 1.6em;width:min(36em,80vw);display:grid}.ctl-row{font:750 .95em var(--display);align-items:center;gap:.7em;padding:.3em 0;display:flex}.ctl-keys{gap:.25em;min-width:6.5em;display:inline-flex}.panel{background:var(--paper);border:3px solid var(--ink);width:min(760px,94vw);max-height:92vh;box-shadow:var(--pop-lg);border-radius:24px;padding:1.4em 1.6em;position:fixed;inset:4vh 50% auto auto;overflow:auto;transform:translate(50%)}.panel header{align-items:center;gap:1em;margin-bottom:1em;display:flex}.panel header h2{flex:1;margin:0}.form{grid-template-columns:minmax(150px,36%) 1fr;align-items:center;gap:.7em 1.2em;display:grid}.form h3{color:var(--ink);grid-column:1/-1;margin:.8em 0 0;font-size:1.05em}.form label{font-size:.93em;font-weight:700}.form input[type=range]{width:100%;accent-color:var(--violet)}.form select{font:inherit;border:2px solid var(--ink);background:#fff;border-radius:10px;padding:.35em .5em}.keybind{min-width:5.5em}.os{background:var(--ink);border-radius:28px;padding:14px;display:flex;position:fixed;inset:3.5vh 3.5vw;box-shadow:0 30px 80px #00000073}.os-screen{background-position:50%;background-size:cover;border-radius:16px;flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.os-body{background:var(--paper);flex:1;display:flex;overflow:hidden}.os-body>.app{flex:1;padding:1.1em 1.3em;overflow:auto}.store{grid-template-columns:200px 1fr 300px;gap:1em;height:100%;display:grid}.store nav{flex-direction:column;gap:2px;display:flex;overflow:auto}.store nav button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:.45em .7em;font-size:.92em}.store nav button.on{background:var(--violet);color:#fff}.store nav .grp{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:.9em 0 .2em .7em;font-size:.72em;font-weight:800}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-content:start;gap:.8em;display:grid;overflow:auto}.card{border:var(--bw) solid var(--ink);cursor:pointer;text-align:left;color:var(--ink);box-shadow:var(--pop-sm);transition:box-shadow .18s var(--spring), transform .18s var(--spring), background .14s;background:#fff;border-radius:18px;flex-direction:column;gap:.35em;padding:.55em;display:flex}.card:hover{box-shadow:0 6px 0 var(--ink);transform:translateY(-3px)rotate(-.6deg)}.card:nth-child(2n):hover{transform:translateY(-3px)rotate(.6deg)}.card:active{box-shadow:0 1px 0 var(--ink);transition-duration:60ms;transform:translateY(2px)}.card.on{outline:3px solid var(--violet);outline-offset:3px}.card:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.card .thumb{aspect-ratio:4/3;background:linear-gradient(160deg,#f4f0ff,#e4efff);border-radius:12px;place-items:center;display:grid;overflow:hidden}.card .thumb img{object-fit:contain;width:100%;height:100%}.card .name{font-size:.9em;font-weight:800;line-height:1.25}.card .meta{justify-content:space-between;align-items:center;gap:.3em;font-size:.85em;display:flex}.detail{border:var(--bw) solid var(--ink);box-shadow:var(--pop-sm);background:#fff;border-radius:18px;flex-direction:column;gap:.6em;padding:.9em;display:flex;overflow:auto}.detail .preview{aspect-ratio:1;background:linear-gradient(160deg,#f4f0ff,#e2eeff);border-radius:14px;position:relative;overflow:hidden}.detail .preview canvas{width:100%;height:100%;display:block}.detail h3{margin:0}.list{flex-direction:column;gap:.6em;display:flex}.order-card{border:var(--bw) solid var(--ink);box-shadow:var(--pop);background:#fff;border-radius:20px;flex-direction:column;gap:.5em;padding:1em 1.1em;display:flex}.order-card .quote{font-family:var(--display);font-size:1.05em;line-height:1.5}.order-card .who{align-items:center;gap:.5em;font-size:.9em;display:flex}.avatar{width:1.9em;height:1.9em;font-weight:900;font-family:var(--display);color:#fff;border:2px solid var(--ink);border-radius:50%;flex:none;place-items:center;font-size:.85em;display:inline-grid}.money-table{background:var(--paper2);border:2px dashed #1c1a2e47;border-radius:14px;grid-template-columns:1fr auto;gap:.3em 1em;padding:.7em .9em;font-size:.93em;display:grid}.money-table .total{border-top:2px solid var(--ink);padding-top:.3em;font-weight:900}.note{color:var(--muted);font-size:.85em}.cart-bar{background:var(--sun-t);border:var(--bw) solid var(--ink);border-radius:16px;align-items:center;gap:.8em;padding:.7em .9em;display:flex}.ws-steps{background:var(--ink);border:var(--bw) solid var(--ink);border-radius:16px;gap:4px;padding:5px;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%);box-shadow:0 4px #00000059,0 10px 26px #00000040}.ws-steps button{font:800 .88em var(--display);cursor:pointer;color:#ffffffb8;transition:background .14s, color .14s, transform .16s var(--spring);background:0 0;border:0;border-radius:11px;padding:.42em .85em .48em}.ws-steps button:hover{color:#fff;background:#ffffff1f}.ws-steps button:active{background:#ffffff0f;transition-duration:60ms;transform:scale(.95)}.ws-steps button.done{color:var(--lime)}.ws-steps button.on{background:var(--violet);color:#fff;box-shadow:inset 0 -3px #0000004d}.ws-tray{background:var(--paper);border:3px solid var(--ink);width:min(320px,34vw);box-shadow:var(--pop-lg), 0 18px 40px #00000038;border-radius:22px;flex-direction:column;gap:.7em;padding:1em;display:flex;position:fixed;top:70px;bottom:14px;right:14px;overflow:auto}.ws-tray h3{font:900 1.35em/1.15 var(--display);color:var(--ink);letter-spacing:-.02em;margin:0}.ws-tray h4{font-family:var(--display)}.ws-tip{color:var(--muted);font-size:.88em;line-height:1.45}.part-tile{border:2px solid var(--ink);box-shadow:var(--pop-xs);cursor:grab;-webkit-user-select:none;user-select:none;transition:box-shadow .16s var(--spring), transform .16s var(--spring), background .14s;background:#fff;border-radius:14px;align-items:center;gap:.6em;padding:.5em .6em;display:flex}.part-tile:not(.placed):hover{box-shadow:0 4px 0 var(--ink);transform:translateY(-2px)}.part-tile:not(.placed):active{cursor:grabbing;box-shadow:none;transition-duration:60ms;transform:translateY(1px)}.part-tile.on{outline:3px solid var(--violet);outline-offset:2px}.part-tile.placed{opacity:.45;cursor:default;box-shadow:none}.part-tile .icon{border:2px solid var(--ink);border-radius:10px;flex:none;place-items:center;width:2.4em;height:2.4em;font-size:1.2em;display:grid}.ws-bottom{flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:fixed;bottom:14px;left:14px}.ws-bottom .hud-pill{font-size:.9em}.deco-bar{background:var(--paper);border:3px solid var(--ink);box-shadow:var(--pop);border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5em;max-width:94vw;padding:.5em .7em;display:flex;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.deco-catalog{background:var(--paper);border:3px solid var(--ink);width:min(360px,40vw);box-shadow:var(--pop-lg);border-radius:22px;flex-direction:column;gap:.6em;padding:1em;display:flex;position:fixed;top:14px;bottom:80px;left:14px}.deco-catalog .grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));margin:-5px -6px -8px -4px;padding:5px 6px 8px 4px}.deco-catalog .card{padding:.4em}.deco-catalog .card .name{font-size:.78em}.deco-catalog .thumb.loading{background:linear-gradient(100deg,#fff0 20%,#ffffffb3 50%,#fff0 80%) 0 0/200% 100%,linear-gradient(160deg,#f4f0ff,#e4efff);animation:1.3s linear infinite decoShimmer}@keyframes decoShimmer{0%{background-position:200% 0,0 0}to{background-position:0 0,0 0}}.deco-rgb{width:min(300px,86vw);animation:ui-pop .2s var(--spring);position:absolute;bottom:calc(100% + 10px);right:0}.place-status{border:var(--bw) solid var(--ink);box-shadow:var(--pop-sm);font:850 .9em var(--display);border-radius:999px;padding:.4em .95em;position:fixed;top:58%;left:50%;transform:translate(-50%);pointer-events:none!important}.place-status.bad{background:var(--red);color:#fff}.place-status.ok{background:var(--grass);color:var(--ink)}.box-card{background:var(--paper);border:3px solid var(--ink);box-shadow:var(--pop);border-radius:20px;align-items:center;gap:.8em;padding:.8em 1em;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.unbox-item{border:3px solid var(--ink);box-shadow:var(--pop);font:850 1em var(--display);animation:pop .4s var(--bounce);background:#fff;border-radius:18px;padding:.6em 1.1em;position:fixed;top:18%;left:50%;transform:translate(-50%)}@keyframes pop{0%{opacity:0;transform:translate(-50%,12px)scale(.85)}to{opacity:1;transform:translate(-50%)scale(1)}}.photo-frame{position:fixed;inset:0;pointer-events:none!important}.photo-frame .guide{border:1px solid #fff9;position:absolute;box-shadow:0 0 0 100vmax #00000040}.photo-frame .thirds{background-image:linear-gradient(90deg,#0000 33.2%,#ffffff40 33.3%,#0000 33.4% 66.5%,#ffffff40 66.6%,#0000 66.7%),linear-gradient(#0000 33.2%,#ffffff40 33.3%,#0000 33.4% 66.5%,#ffffff40 66.6%,#0000 66.7%);position:absolute;inset:0}.photo-bar{background:var(--paper);border:3px solid var(--ink);box-shadow:var(--pop);border-radius:999px;align-items:center;gap:.6em;padding:.4em .6em;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.flash{opacity:0;background:#fff;transition:opacity .35s;position:fixed;inset:0;pointer-events:none!important}.flash.on{opacity:.8;transition:none}.typing-card{background:var(--paper);border:3px solid var(--ink);box-shadow:var(--pop);border-radius:20px;align-items:center;gap:.8em;max-width:94vw;padding:.7em 1em;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.typing-text{font-family:var(--display);border:2px solid var(--ink);white-space:nowrap;text-overflow:clip;text-align:left;direction:rtl;background:#fff;border-radius:12px;min-width:16em;max-width:36em;min-height:1.5em;padding:.3em .6em;font-size:1.1em;overflow:hidden}.typing-text span{direction:ltr;unicode-bidi:bidi-override}.celebrate{text-align:center}.celebrate .big{font:900 2.4em var(--display);color:var(--violet);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}@keyframes ui-from-left{0%{opacity:0;translate:-16px}}@keyframes ui-from-right{0%{opacity:0;translate:16px}}@keyframes ui-from-top{0%{opacity:0;translate:0 -10px}}@keyframes ui-out{to{opacity:0;scale:.985}}.deco-bar,.photo-bar,.box-card,.typing-card,.ws-bottom{animation:ui-pop .28s var(--spring)}.deco-catalog{animation:ui-from-left .28s var(--spring)}.ws-tray{animation:ui-from-right .3s var(--spring)}.ws-steps{animation:ui-from-top .28s var(--spring)}.photo-frame{animation:.3s ease-out ui-in}.ui-leave{pointer-events:none!important;animation:.17s ease-in forwards ui-out!important}.mode-veil{opacity:0;background:#1c1a2e;position:fixed;inset:0;pointer-events:none!important}.mode-veil.go{animation:.34s ease-out veil-out}@keyframes veil-out{0%{opacity:.4}to{opacity:0}}[data-wallet-glow]{--wf-gain:#8ff0ae;--wf-spend:#ffb48a}.wallet-gain{--wf:var(--wf-gain);animation:wallet-flash .75s var(--spring)}.wallet-spend{--wf:var(--wf-spend);animation:wallet-flash .75s var(--spring)}@keyframes wallet-flash{18%{background-color:var(--wf);box-shadow:0 0 0 3px var(--ink), 0 0 0 7px var(--wf);scale:1.08}}html.reduce-motion *,html.reduce-motion :before,html.reduce-motion :after{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
