@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2)format("woff2"),url(./atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(./atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2)format("woff2"),url(./atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-next-latin-ext-700-normal-CBw-mJf_.woff2)format("woff2"),url(./atkinson-hyperlegible-next-latin-ext-700-normal-292QVhS1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(./atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2)format("woff2"),url(./atkinson-hyperlegible-next-latin-700-normal-C2qZD_Q9.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--room-bg:#f3efe6;--room-ink:#1c1b22;--room-muted:#4a4852;--room-font:"Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, sans-serif;--name-fit-font:5.8;--name-fit:calc(var(--name-fit-font) + var(--name-fit-spacing,0));--board-bg:#fff;--board-frame:#fff;--board-edge:var(--tile-edge);--chip-face:#fffdf5;--chip-ink:#1c1b22;--chip-accent:#ffd64d;--star-fill:#ffd64d;--shelf:#c98a4b;--room-wall:none;--board-paper:none;--decor-ink:#4a4852;--hud-button-face:#1c1b22;--hud-button-ink:#fffdf5;--bin-rim-1:#ff5a4e;--bin-body-1:#ff7b6b;--bin-rim-2:#3a8dff;--bin-body-2:#62a6ff;--bin-rim-3:#ffc400;--bin-body-3:#ffd64d;--bin-rim-4:#6fd08c;--bin-body-4:#8ae39e;--bin-rim-5:#7c4dff;--bin-body-5:#a98bff;--bin-rim-6:#ff3d8b;--bin-body-6:#ff6db5;--bin-rim-7:#12a594;--bin-body-7:#5ed6c4;--bin-rim-8:#f07c1e;--bin-body-8:#ffab5e}*{box-sizing:border-box}html{font-size:100%}body{background:var(--room-bg);color:var(--room-ink);flex-direction:column;gap:0;min-height:100dvh;margin:0;padding:16px;font-family:Atkinson Hyperlegible Next,system-ui,sans-serif;font-size:1.125rem;line-height:1.5;display:flex}#app{flex-direction:column;flex:1;gap:0;width:100%;max-width:80rem;margin:0 auto;display:flex}.hud{flex-wrap:wrap;align-items:center;gap:12px 14px;padding:16px 0;display:flex}.help-line{flex-basis:100%}.hud-title{flex:14rem;align-items:center;gap:12px;display:flex}.hud-icon{flex-shrink:0;width:46px;height:46px}.hud-title-text{flex:1;min-width:0}.hud-title h1{overflow-wrap:anywhere;font-family:var(--room-font);margin:0;font-size:2.1rem;font-weight:700;line-height:1}.hud-sub{color:var(--room-muted);margin:4px 0 0;font-size:1rem;font-weight:700}.grade{max-width:24rem;font-family:var(--room-font);flex-direction:column;flex:16rem;gap:6px;display:flex}.grade-head{justify-content:space-between;align-items:baseline;gap:12px;font-weight:700;display:flex}.grade-name{font-size:1.1rem}.grade-count{color:var(--room-muted);font-size:1rem}.grade-bar{border:3px solid var(--bin-line);background:var(--chip-face);border-radius:12px;height:20px;position:relative;overflow:hidden}.grade-fill{width:calc(var(--fill,0) * 100%);background:var(--chip-accent);border-right:3px solid var(--bin-line);transition:width .5s cubic-bezier(.2,.9,.3,1.2);position:absolute;inset:0 auto 0 0}.grade-fill[style*="--fill: 0;"],.grade.ready .grade-fill{border-right:0}.grade-ready{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.grade-ready[hidden]{display:none}.hud-button.grade-graduate,.tidy button.grade-graduate{background:var(--star-fill);color:#1c1b22;border-color:#1c1b22}.grade-graduate:before{content:"★ "}.tidy button.grade-graduate[hidden]{display:none}@media (prefers-reduced-motion:no-preference){html:not([data-motion=reduced]) .grade-graduate{animation:1.6s ease-in-out infinite graduate-pulse}}:root[data-motion=full] .grade-graduate{animation:1.6s ease-in-out infinite graduate-pulse}@keyframes graduate-pulse{0%,to{box-shadow:0 4px 0 #0003, 0 0 0 0 var(--star-fill)}50%{box-shadow:0 4px 0 #0003, 0 0 0 7px color-mix(in srgb, var(--star-fill) 45%, transparent)}}.grade-note{text-transform:none;letter-spacing:normal;color:var(--room-muted);font-family:Atkinson Hyperlegible Next,system-ui,sans-serif;font-size:.9rem;font-weight:700;line-height:1.3}.chip{border:3px solid var(--bin-line);background:var(--chip-face);height:44px;color:var(--chip-ink);font-size:1rem;font-weight:700;font-family:var(--room-font);border-radius:22px;align-items:center;gap:8px;padding:0 16px;display:inline-flex}.chip-accent{background:var(--chip-accent)}.chip[hidden]{display:none}.welcome-back{z-index:50;cursor:pointer;max-width:calc(100% - 32px);position:fixed;top:12px;left:50%;transform:translate(-50%)}.stat-multiplier{font-weight:700}.stats{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hud-actions{flex-wrap:wrap;gap:12px;display:flex}.hud-button{border:3px solid var(--bin-line);background:var(--hud-button-face);height:44px;color:var(--hud-button-ink);font:700 1rem var(--room-font);cursor:pointer;border-radius:22px;padding:0 16px;transition:all .12s ease-out;box-shadow:0 4px #0003}.hud-button:hover:not(:disabled){transform:translateY(2px);box-shadow:0 2px #0003}.hud-button:active:not(:disabled){transform:translateY(4px);box-shadow:0 0 #0003}.hud-button[aria-pressed=true]{background:var(--chip-accent);color:var(--hud-button-face)}.hud-button[aria-pressed=true]:before{content:"✓ "}.hud-button:disabled{opacity:.5;cursor:not-allowed}.hud-button:focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:4px}.help-line{color:var(--room-muted);min-height:1.2rem;margin:0;font-size:.95rem}.help-news{color:var(--room-ink)}main{flex-direction:column;flex:1;min-width:0;display:flex}.board-frame{background:var(--board-frame);border:3px solid var(--bin-line);border-radius:26px;flex-direction:column;flex:1;padding:12px;display:flex}.board{background:var(--board-bg);border:3px solid var(--board-edge,var(--tile-edge));touch-action:none;border-radius:16px;flex:1;min-height:18rem;position:relative;overflow:hidden}.board-decor{pointer-events:none;z-index:0;color:var(--decor-ink);position:absolute;inset:0}.room-banner{display:block}.shelf{background:var(--shelf);border-top:4px solid var(--bin-line);height:34px}.piece{transform:translate(calc(var(--x,0px) + var(--dx,0px)), calc(var(--y,0px) + var(--dy,0px))) translateY(var(--lift,0px)) rotate(calc(var(--rot,0deg) * .5 + var(--tilt,0deg))) scale(var(--scale,1));width:var(--piece-size,64px);height:var(--piece-size,64px);font-family:var(--piece-font,"Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, sans-serif);font-weight:700;font-size:calc(var(--piece-size,64px) * .5625);color:var(--tile-ink);background:var(--tile-face);border:var(--tile-edge-w) solid var(--tile-edge);box-shadow:0 5px 0 var(--tile-base), 0 12px 18px var(--tile-soft);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;z-index:1;border-radius:14px;justify-content:center;align-items:center;padding:0;line-height:1;transition:transform .18s ease-out;display:flex;position:absolute;top:0;left:0}:root[data-cosmetic-font] .piece,:root[data-cosmetic-font] .bin-peek-tile{font-family:var(--piece-font)}.piece.word{width:auto;min-width:var(--piece-size,64px);font-size:calc(var(--piece-size,64px) * .4);white-space:nowrap;padding:0 .6rem}.piece.lucky{border-color:#b07d05}.piece .lucky-mark{top:calc(var(--piece-size,64px) * -.16);right:calc(var(--piece-size,64px) * -.16);width:calc(var(--piece-size,64px) * .4);height:calc(var(--piece-size,64px) * .4);box-sizing:border-box;color:#5a3d00;font:700 calc(var(--piece-size,64px) * .24) / 1 system-ui, sans-serif;pointer-events:none;background:radial-gradient(circle at 35% 30%,#fff3b0,#ffd23f 45%,#e0a800);border:2px solid #6b4a00;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;box-shadow:0 1px 2px #00000059}:root[data-contrast=high] .piece .lucky-mark{background:var(--tile-face);color:var(--tile-ink);border-color:var(--tile-ink)}@media (forced-colors:active){.piece .lucky-mark{color:canvastext;background:canvas;border-color:canvastext}}:root .piece.emoji,:root .bin-peek-tile.emoji,:root .bin-label-example.emoji{font-family:Noto Emoji,system-ui,sans-serif}.piece:hover:not(.dragging){--lift:-3px;--scale:1;box-shadow:0 8px 0 var(--tile-base), 0 16px 22px var(--tile-soft);z-index:5}.piece:focus-visible,.piece.selected{outline:var(--focus-w) solid var(--focus);outline-offset:4px;z-index:5}.piece.picked{outline-width:calc(var(--focus-w) * 2)}.pick-mark{background:var(--tile-ink);min-width:1.6em;height:1.6em;color:var(--tile-face);text-align:center;pointer-events:none;z-index:6;border-radius:999px;padding:0 .3em;font-size:.8rem;font-weight:700;line-height:1.6em;position:absolute;top:-10px;left:-10px}.piece.piece-glow{outline:var(--focus-w) solid var(--focus);outline-offset:4px;z-index:5}.piece.piece-sweep{outline:var(--focus-w) dashed var(--sweep);outline-offset:4px;z-index:5}@media (prefers-reduced-motion:no-preference){html:not([data-motion=reduced]) .piece.piece-sweep{animation:.25s ease-out sweep-in,.5s ease-in-out .25s infinite sweep-pulse}}:root[data-motion=full] .piece.piece-sweep{animation:.25s ease-out sweep-in,.5s ease-in-out .25s infinite sweep-pulse}@keyframes sweep-in{0%{outline-offset:16px;outline-color:#0000}to{outline-color:var(--sweep);outline-offset:4px}}@keyframes sweep-pulse{0%,to{outline-offset:4px}50%{outline-offset:11px}}@media (prefers-reduced-motion:no-preference){html:not([data-motion=reduced]) .piece.piece-glow{animation:1.2s ease-in-out infinite glow-pulse}}:root[data-motion=full] .piece.piece-glow{animation:1.2s ease-in-out infinite glow-pulse}@keyframes glow-pulse{0%,to{outline-offset:4px}50%{outline-offset:10px}}.piece.dragging{--lift:-10px;--tilt:-6deg;--scale:1.1;cursor:grabbing;z-index:10;box-shadow:0 5px 0 var(--tile-base), 0 24px 32px #0000004d;transition:none}.piece.wrong{color:var(--wrong-ink);border-color:var(--wrong);border-style:var(--wrong-edge-style);box-shadow:0 5px 0 var(--wrong), 0 12px 18px var(--tile-soft);animation:.4s ease-in-out shake}.piece.wrong:after{content:"✕";background:var(--wrong);width:26px;height:26px;color:var(--tile-face);border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;position:absolute;top:-6px;right:-6px}@keyframes shake{0%,to{transform:translate(calc(var(--x,0px) + var(--dx,0px)), calc(var(--y,0px) + var(--dy,0px))) translateY(var(--lift,0px)) rotate(calc(var(--rot,0deg) * .5 + var(--tilt,0deg))) scale(var(--scale,1)) translateX(0)}25%{transform:translate(calc(var(--x,0px) + var(--dx,0px)), calc(var(--y,0px) + var(--dy,0px))) translateY(var(--lift,0px)) rotate(calc(var(--rot,0deg) * .5 + var(--tilt,0deg))) scale(var(--scale,1)) translateX(-6px)}75%{transform:translate(calc(var(--x,0px) + var(--dx,0px)), calc(var(--y,0px) + var(--dy,0px))) translateY(var(--lift,0px)) rotate(calc(var(--rot,0deg) * .5 + var(--tilt,0deg))) scale(var(--scale,1)) translateX(6px)}}.bins-area{z-index:20;background:var(--room-bg);position:sticky;bottom:0}.bins{flex-direction:row;justify-content:center;align-items:flex-end;gap:64px;margin:0;padding:0;display:flex}.bin{width:216px;height:200px;font:inherit;cursor:pointer;background:0 0;border:none;flex:none;padding:0;transition:none;position:relative}.bin[data-slot="1"]{--rim:var(--bin-rim-1);--body:var(--bin-body-1)}.bin[data-slot="2"]{--rim:var(--bin-rim-2);--body:var(--bin-body-2)}.bin[data-slot="3"]{--rim:var(--bin-rim-3);--body:var(--bin-body-3)}.bin[data-slot="4"]{--rim:var(--bin-rim-4);--body:var(--bin-body-4)}.bin[data-slot="5"]{--rim:var(--bin-rim-5);--body:var(--bin-body-5)}.bin[data-slot="6"]{--rim:var(--bin-rim-6);--body:var(--bin-body-6)}.bin[data-slot="7"]{--rim:var(--bin-rim-7);--body:var(--bin-body-7)}.bin[data-slot="8"]{--rim:var(--bin-rim-8);--body:var(--bin-body-8)}.bin-peek{z-index:0;display:block;position:absolute;top:8px}.bin-peek-tile{border:2.5px solid var(--tile-edge);background:var(--tile-face);width:38px;height:38px;color:var(--tile-ink);font-family:var(--piece-font,"Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, sans-serif);border-radius:9px;justify-content:center;align-items:center;padding:0;font-size:20px;font-weight:700;line-height:normal;display:flex;position:absolute}.bin-peek-tile:first-child{left:48px;transform:rotate(-10deg)}.bin-peek-tile:nth-child(2){top:4px;left:96px;transform:rotate(7deg)}.bin-peek-tile:nth-child(3){left:140px;transform:rotate(-4deg)}.bin-peek-tile.word{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:auto;min-width:38px;max-width:4.5rem;padding:0 .3rem;font-size:.8rem;line-height:33px;display:block;overflow:hidden}.bin-rim{border:3px solid var(--bin-line);background:var(--rim);z-index:2;border-radius:16px;height:40px;padding:7px 12px;transition:all .12s ease-out;display:block;position:absolute;top:36px;left:0;right:0}.bin-mouth{background:var(--mouth);border-radius:8px;width:100%;height:100%;display:block;position:relative;overflow:hidden}.bin-fill{width:calc(var(--fill,0) * 100%);background:color-mix(in srgb, var(--rim) 70%, white);border-radius:inherit;transition:width .35s cubic-bezier(.2,.9,.3,1.2);position:absolute;inset:0 auto 0 0}.bin-body{border:3px solid var(--bin-line);background:var(--body);z-index:1;border-top:none;border-radius:0 0 26px 26px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px 10px 14px;display:flex;position:absolute;inset:72px 12px 0;container-type:inline-size}.bin-label{box-sizing:border-box;border:3px solid var(--bin-line);background:var(--plate-face);min-width:140px;color:var(--plate-ink);text-align:center;border-radius:10px;padding:6px 14px 7px;font-family:Atkinson Hyperlegible Next,system-ui,sans-serif;display:block;position:relative}.bin.full .bin-label:after{content:"✓";z-index:3;box-sizing:border-box;border:2px solid var(--bin-line);background:var(--plate-face);width:24px;height:24px;color:var(--plate-ink);text-align:center;border-radius:12px;font-size:14px;font-weight:700;line-height:20px;position:absolute;bottom:-11px;right:-11px}.bin-label-name{--name-size:1.25rem;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;font-size:clamp(calc(var(--name-size) * .7), calc((100cqi - var(--plate-inset,34px)) / var(--name-fit)), var(--name-size));font-weight:700;line-height:1.15;display:block}.bin-label-example{letter-spacing:3px;color:var(--plate-muted);font-size:.875rem;display:block}.bin-kbd{box-sizing:border-box;border:2px solid var(--bin-line);background:var(--plate-face);min-width:28px;height:28px;color:var(--plate-ink);border-bottom-width:4px;border-radius:7px;justify-content:center;align-items:center;padding:0 7px;font:700 14px Atkinson Hyperlegible Next,system-ui,sans-serif;display:flex}.bin-count{border:3px solid var(--tile-face);background:var(--tile-ink);width:36px;height:36px;color:var(--tile-face);z-index:3;border-radius:18px;justify-content:center;align-items:center;padding:0 8px;font:700 16px Atkinson Hyperlegible Next,system-ui,sans-serif;transition:all .1s ease-out;display:flex;position:absolute;top:24px;right:-10px}.bin-arrow{z-index:4;width:28px;height:26px;color:var(--focus);margin-left:-14px;font-size:20px;line-height:1;display:none;position:absolute;top:-32px;left:50%}.bin.drop-target .bin-rim{box-shadow:0 0 0 5px var(--focus);transform:translateY(-8px)}.bin.drop-target .bin-arrow{display:block}.bin-arrow:before{content:"▼";text-align:center;font-size:26px;display:block}.bin.armed .bin-rim{box-shadow:0 0 0 3px var(--focus)}.bin-rim:before{content:"";border:3px dashed var(--focus);background:color-mix(in srgb, var(--focus) 12%, transparent);pointer-events:none;z-index:-1;border-radius:20px 20px 22px 22px;display:none;position:absolute;inset:-48px -9px -9px}.bin.armed .bin-rim:before{display:block}:root:has(.piece.dragging) .bin-rim:before{display:block}.bin.drop-target .bin-rim:before{background:color-mix(in srgb, var(--focus) 28%, transparent);border-style:solid;display:block}.bin.hit .bin-count{animation:.3s ease-in-out pop}.bin.full .bin-rim{box-shadow:0 0 0 4px color-mix(in srgb, var(--rim) 60%, white)}.bin.wrong{animation:.4s ease-in-out bin-shake}.bin.wrong .bin-label{border-color:var(--wrong)}.bin:focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:4px}.bin.bin-held{outline:var(--focus-w) solid var(--focus);outline-offset:6px}.bin.bin-held .bin-rim{transform:translateY(-8px)}.bin.bin-held .bin-arrow{display:block}@keyframes pop{0%,to{transform:scale(1)}50%{transform:scale(1.35)}}@keyframes bin-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.bins[data-count="4"]{gap:clamp(12px,3vw,48px)}.bins[data-count="4"] .bin{flex:0 216px;width:auto;min-width:0}.bins[data-count="5"],.bins[data-count="6"],.bins[data-count="7"],.bins[data-count="8"]{grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:8px clamp(6px,1.5vw,24px);max-width:1480px;margin-inline:auto;display:grid}.bins[data-count="5"] .bin,.bins[data-count="6"] .bin,.bins[data-count="7"] .bin,.bins[data-count="8"] .bin{width:auto;min-width:0}@media (width>=721px){.bins[data-count="5"] .bin,.bins[data-count="6"] .bin,.bins[data-count="7"] .bin,.bins[data-count="8"] .bin{height:168px}}.tidy{color:var(--room-ink);background:var(--chip-face);border:3px solid var(--bin-line);text-align:center;box-sizing:border-box;z-index:100;border-radius:22px;width:min(24rem,90vw);max-width:90vw;padding:2rem;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 50px #0000004d}.tidy[hidden]{display:none}.tidy h2{color:var(--room-ink);margin:0 0 1rem;font-size:2rem;font-weight:700}.tidy-stars{letter-spacing:.15em;color:var(--room-muted);margin:-.5rem 0 .25rem;font-size:2.5rem;line-height:1.1}.tidy-star.earned{-webkit-text-stroke:2px var(--tile-ink);color:var(--star-fill)}.tidy-tip,.tidy-bonus{margin:0 0 .75rem;font-weight:700}.tidy-stars[hidden],.tidy-tip[hidden]{display:none}.tidy-summary{color:var(--room-muted);margin:0 0 1.5rem;font-size:1rem}.tidy-reveal{color:var(--room-ink);margin:-.75rem 0 1.25rem;font-size:1.1rem;font-style:italic}.tidy-reveal[hidden]{display:none}.tidy button{white-space:nowrap;font-family:var(--room-font);background:var(--hud-button-face);color:var(--hud-button-ink);border:3px solid var(--bin-line);cursor:pointer;border-radius:22px;padding:.75rem 1.5rem;font-size:1rem;font-weight:700;transition:all .12s ease-out;box-shadow:0 4px #0003}.tidy button:hover{transform:translateY(2px);box-shadow:0 2px #0003}.tidy button:focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:4px}.dialog-head{z-index:1;background:inherit;border-bottom:2px solid var(--bin-line);flex-wrap:wrap;align-items:center;gap:0 .75rem;margin:-1.25rem -1.25rem .5rem;padding:1.25rem 1.25rem .5rem;display:flex;position:sticky;top:-1.25rem}.dialog-head h2{flex:1;margin:0}.dialog-head .shop-balance{flex-basis:100%;margin:.25rem 0 0}.dialog-x{min-width:44px;min-height:44px;font:700 1.75rem/1 var(--room-font);background:var(--hud-button-face);color:var(--hud-button-ink);border:3px solid var(--bin-line);cursor:pointer;border-radius:50%;padding:0}.dialog-x:focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:4px}:root[data-contrast=high] .dialog-head{background:var(--plate-face)}:root[data-contrast=high] .dialog-x{background:var(--plate-ink);color:var(--plate-face)}.tidy-actions{flex-wrap:wrap;justify-content:center;gap:1rem .75rem;display:flex}.stat-sweeper{isolation:isolate;position:relative;overflow:hidden}.sweeper-bar{z-index:-1;width:calc(var(--drain,var(--left,1)) * 100%);background:var(--chip-accent);opacity:.55;transition:width 1s linear;position:absolute;inset:0 auto 0 0}.stat-sweeper.refill .sweeper-bar{transition:none}.sweeper-secs{text-align:left;font-variant-numeric:tabular-nums;min-width:3ch;display:inline-block}.stat-sweeper.paused .sweeper-bar{background:var(--room-muted);opacity:.25}:root[data-motion=reduced] .sweeper-bar{transition:none}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .sweeper-bar{transition:none}}:root[data-contrast=high] .sweeper-bar{background:var(--plate-ink);opacity:.3}.tidy,.shop,.settings{--room-ink:var(--chip-ink);--room-muted:color-mix(in srgb, var(--chip-ink) 80%, var(--chip-face));--panel-card:color-mix(in srgb, var(--board-bg) 22%, var(--chip-face))}.shop{box-sizing:border-box;background:var(--chip-face);width:min(32rem,100vw - 32px);max-width:calc(100vw - 32px);max-height:85dvh;color:var(--room-ink);font-family:var(--room-font);border:3px solid var(--bin-line);border-radius:22px;margin:auto;padding:1.25rem;overflow-y:auto;box-shadow:0 20px 50px #0000004d}.shop::backdrop{background:#00000073}.shop h2{margin:0 0 .5rem;font-size:2rem;font-weight:700}.shop-balance{margin:0 0 1rem;font-size:1.1rem;font-weight:700}.shop-tabs{flex-wrap:wrap;flex-basis:100%;gap:.5rem;margin:0 0 .5rem;display:flex}.shop-tab{min-width:44px;min-height:44px;font:700 1rem var(--room-font);background:var(--chip-face);color:var(--room-ink);border:3px solid var(--bin-line);cursor:pointer;border-bottom-width:3px;border-radius:16px;flex:8rem;padding:.5rem 1rem;transition:all .12s ease-out}.shop-tab[aria-selected=true]{background:var(--hud-button-face);color:var(--hud-button-ink);border-bottom-width:8px}.shop-tab:focus-visible,.shop-panel:focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:4px}.shop-panel{margin:0}.shop-panel[hidden]{display:none}.shop-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.shop-card{border:2px solid var(--bin-line);background:var(--panel-card);overflow-wrap:break-word;border-radius:16px;gap:.25rem;padding:.75rem 1rem;display:grid}.shop-name{margin:0;font-size:1.15rem;font-weight:700}.shop-desc,.shop-cost,.shop-type,.shop-decorative{color:var(--room-muted);margin:0}.shop-cost,.shop-type{font-weight:700}.shop-decorative{font-size:.95rem}.shop-buy,.shop-close{min-width:44px;min-height:44px;font:700 1rem var(--room-font);background:var(--hud-button-face);color:var(--hud-button-ink);border:3px solid var(--bin-line);cursor:pointer;border-radius:22px;justify-self:start;margin-top:.25rem;padding:.5rem 1.25rem;transition:all .12s ease-out;box-shadow:0 4px #0003}.shop-buy:hover:not([aria-disabled=true]),.shop-close:hover{transform:translateY(2px);box-shadow:0 2px #0003}.shop-buy[aria-disabled=true]{opacity:.55;cursor:not-allowed;box-shadow:none}.shop-buy:focus-visible,.shop-close:focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:4px}.shop-note{margin:1rem 0 .75rem;font-weight:700}.shop-close{margin-top:.5rem}:root[data-contrast=high] .shop,:root[data-contrast=high] .shop-card{background:var(--plate-face);color:var(--plate-ink);box-shadow:none}:root[data-contrast=high] .shop-desc,:root[data-contrast=high] .shop-cost,:root[data-contrast=high] .shop-type,:root[data-contrast=high] .shop-decorative{color:var(--plate-ink)}:root[data-contrast=high] .shop-buy,:root[data-contrast=high] .shop-close{background:var(--plate-ink);color:var(--plate-face);box-shadow:none}:root[data-contrast=high] .shop-buy[aria-disabled=true]{opacity:1;background:var(--plate-face);color:var(--plate-ink);border-style:dashed}:root[data-contrast=high] .shop-tab{background:var(--plate-face);color:var(--plate-ink);box-shadow:none}:root[data-contrast=high] .shop-tab[aria-selected=true]{background:var(--plate-ink);color:var(--plate-face)}.settings{box-sizing:border-box;background:var(--chip-face);width:min(34rem,100vw - 32px);max-width:calc(100vw - 32px);max-height:85dvh;color:var(--room-ink);border:3px solid var(--bin-line);border-radius:22px;margin:auto;padding:1.25rem;overflow-y:auto;box-shadow:0 20px 50px #0000004d}.settings::backdrop{background:#00000073}.settings h2,.settings-welcome{margin:0 0 .5rem;font-weight:700}.settings-intro{color:var(--room-muted);margin:0 0 1rem}.settings-group{border:2px solid var(--bin-line);background:var(--panel-card);border-radius:16px;min-width:0;margin:0 0 .75rem;padding:.25rem .75rem .5rem}.settings-group legend{padding:0 .4rem;font-weight:700}.settings-radios{border:0;min-width:0;margin:.25rem 0 0;padding:0}.settings-radios legend{padding:0}.settings-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem .75rem;min-height:44px;display:flex}.settings-row label,.settings-check{font-weight:700}.settings-check{cursor:pointer;align-items:center;gap:.6rem;min-height:44px;display:flex}.settings-check input{width:1.5rem;height:1.5rem;accent-color:var(--hud-button-face);flex:none;margin:0}.settings select{min-width:9rem;max-width:100%;min-height:44px;color:var(--room-ink);background:var(--panel-card);border:2px solid var(--bin-line);border-radius:12px;padding:.25rem .5rem}.settings select:disabled{opacity:.55;cursor:not-allowed}.settings-preview{color:var(--room-muted);margin:.5rem 0 0}.settings-help{color:var(--room-muted);margin:-.25rem 0 .5rem 2rem;font-size:.95rem}.settings-sample{color:var(--room-ink);font-weight:700}.settings-close,.settings-action{background:var(--hud-button-face);min-width:44px;min-height:44px;color:var(--hud-button-ink);border:3px solid var(--bin-line);cursor:pointer;border-radius:22px;margin-top:.5rem;padding:.5rem 1.25rem;font-weight:700;transition:all .12s ease-out;display:block;box-shadow:0 4px #0003}.settings-reset{border-style:dashed}.settings-reset-confirm{flex-wrap:wrap;gap:.75rem;display:flex}.settings-reset-confirm p{flex-basis:100%;margin:0;font-weight:700}.settings-close:hover,.settings-action:hover{transform:translateY(2px);box-shadow:0 2px #0003}.settings input:focus-visible,.settings select:focus-visible,.settings-close:focus-visible,.settings-action:focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:3px}:root[data-contrast=high] .settings,:root[data-contrast=high] .settings-group{background:var(--plate-face);color:var(--plate-ink);box-shadow:none}:root[data-contrast=high] .settings-intro,:root[data-contrast=high] .settings-preview{color:var(--plate-ink)}:root[data-contrast=high] .settings select{background:var(--plate-face);color:var(--plate-ink)}:root[data-contrast=high] .settings-close,:root[data-contrast=high] .settings-action{background:var(--plate-ink);color:var(--plate-face);box-shadow:none}:root[data-contrast=high] .room-banner,:root[data-contrast=high] .board-decor,:root[data-contrast=high] .hud-icon,:root[data-contrast=high] .shelf{display:none}:root[data-contrast=high] body,:root[data-contrast=high] .hud-sub,:root[data-contrast=high] .help-line,:root[data-contrast=high] .tidy h2,:root[data-contrast=high] .tidy-summary,:root[data-contrast=high] .grade-count,:root[data-contrast=high] .grade-note{background:var(--tile-face);color:var(--tile-ink)}:root[data-contrast=high] .tidy,:root[data-contrast=high] .tidy button{background:var(--plate-face);color:var(--plate-ink);box-shadow:none}:root[data-contrast=high] .hud-button[aria-pressed=true]{background:var(--plate-ink);color:var(--plate-face)}:root[data-contrast=high] .board,:root[data-contrast=high] .board-frame{background:var(--tile-face);border-color:var(--bin-line)}:root[data-contrast=high] .grade-bar{background:var(--tile-face)}:root[data-contrast=high] .grade-fill{background:var(--tile-ink)}:root[data-contrast=high] .tidy-star.earned{color:var(--tile-ink);-webkit-text-stroke:0}:root[data-contrast=high] .chip{background:var(--plate-face);color:var(--plate-ink);border-color:var(--bin-line)}:root[data-contrast=high] .hud-button{background:var(--plate-face);color:var(--plate-ink);border-color:var(--bin-line);box-shadow:none}:root[data-contrast=high] .bin[data-slot]{--rim:var(--tile-face);--body:var(--tile-face)}:root[data-contrast=high] .bin-peek-tile,:root[data-contrast=high] .bin-rim{background:var(--tile-face);border-color:var(--bin-line)}:root[data-contrast=high] .bin-mouth{background:var(--tile-face);border:2px solid var(--tile-ink)}:root[data-contrast=high] .bin-fill{background:var(--tile-ink)}:root[data-contrast=high] .bin-body{background:var(--tile-face);border-color:var(--bin-line)}:root[data-contrast=high] .bin-label{background:var(--plate-face);color:var(--plate-ink);border-color:var(--bin-line)}:root[data-contrast=high] .bin-count{background:var(--tile-ink);color:var(--tile-face)}:root[data-contrast=high] .bins-area{background:var(--tile-face)}@media (forced-colors:active){.room-banner,.board-decor,.hud-icon,.shelf{display:none}body{color:canvastext;background:canvas}.board,.board-frame{background:canvas;border-color:canvastext}.chip{color:canvastext;background:canvas;border-color:canvastext}.grade-bar{background:canvas;border-color:canvastext}.grade-fill{background:highlight;border-color:canvastext}.tidy-star.earned{color:canvastext;-webkit-text-stroke:0}.hud-button{color:canvastext;box-shadow:none;background:canvas;border-color:canvastext}.bin[data-slot]{--rim:CanvasText;--body:Canvas}.bin-rim{background:canvastext;border-color:canvastext}.bin-mouth{background:canvas}.bin-fill{background:highlight}.bin-body{background:canvas;border-color:canvastext}.bin-label{color:canvastext;background:canvas;border-color:canvastext}.bin-count{color:canvas;background:canvastext}.bins-area{background:canvas}.bin-peek-tile,.piece{color:canvastext;background:canvas;border-color:canvastext}}:root[data-motion=reduced] .piece{--tilt:0deg;--scale:1;--lift:0px}:root[data-motion=reduced] .piece.piece-glow,:root[data-motion=reduced] .piece.piece-sweep,:root[data-motion=reduced] .grade-graduate{animation:none}:root[data-motion=reduced] .grade-fill{transition:none}:root[data-motion=reduced] .hud-button,:root[data-motion=reduced] .tidy button,:root[data-motion=reduced] .shop-buy,:root[data-motion=reduced] .shop-close,:root[data-motion=reduced] .shop-tab,:root[data-motion=reduced] .settings-close,:root[data-motion=reduced] .settings-action{transition:background-color .12s ease-out,box-shadow .12s ease-out}:root[data-motion=reduced] .piece.dragging{--tilt:0deg;--scale:1;--lift:0px}:root[data-motion=reduced] .piece.wrong{animation:none}:root[data-motion=reduced] .piece.wrong:after{animation:.2s ease-out fade-in}:root[data-motion=reduced] .bin.drop-target .bin-rim{transform:none}:root[data-motion=reduced] .bin.wrong,:root[data-motion=reduced] .bin.hit .bin-count{animation:none}:root[data-motion=reduced] .piece,:root[data-motion=reduced] .bin-rim,:root[data-motion=reduced] .bin-count,:root[data-motion=reduced] .bin-fill{transition:none}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .piece{--tilt:0deg;--scale:1;--lift:0px}:root:not([data-motion=full]) .piece.piece-glow,:root:not([data-motion=full]) .piece.piece-sweep,:root:not([data-motion=full]) .grade-graduate{animation:none}:root:not([data-motion=full]) .grade-fill{transition:none}:root:not([data-motion=full]) .hud-button,:root:not([data-motion=full]) .tidy button,:root:not([data-motion=full]) .shop-buy,:root:not([data-motion=full]) .shop-close,:root:not([data-motion=full]) .shop-tab,:root:not([data-motion=full]) .settings-close,:root:not([data-motion=full]) .settings-action{transition:background-color .12s ease-out,box-shadow .12s ease-out}:root:not([data-motion=full]) .piece.dragging{--tilt:0deg;--scale:1;--lift:0px}:root:not([data-motion=full]) .piece.wrong{animation:none}:root:not([data-motion=full]) .piece.wrong:after{animation:.2s ease-out fade-in}:root:not([data-motion=full]) .bin.drop-target .bin-rim{transform:none}:root:not([data-motion=full]) .bin.wrong,:root:not([data-motion=full]) .bin.hit .bin-count{animation:none}:root:not([data-motion=full]) .piece,:root:not([data-motion=full]) .bin-rim,:root:not([data-motion=full]) .bin-count,:root:not([data-motion=full]) .bin-fill{transition:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}#app[data-mode=boss] .bins-area{display:none}section.boss-shelf{text-align:center;margin:8px 0 16px}.boss-title{font-family:var(--room-font);color:var(--room-ink);margin:0 0 .5rem;font-size:1.8rem;font-weight:700}.boss-instructions{color:var(--room-muted);margin:0;font-size:1.05rem}ol.shelf-slots{flex-wrap:wrap;justify-content:center;gap:10px;margin:0;padding:12px 16px 0;list-style:none;display:flex}li.shelf-slot{border:3px dashed var(--bin-line);background:color-mix(in srgb, var(--board-bg) 60%, transparent);border-radius:14px;place-items:center;width:64px;height:64px;display:grid;position:relative}li.shelf-slot.filled{background:0 0;border-style:solid}.shelf-tile{width:56px;height:56px;color:var(--tile-ink);background:var(--tile-face);border:var(--tile-edge-w) solid var(--tile-edge);box-shadow:0 5px 0 var(--tile-base), 0 12px 18px var(--tile-soft);border-radius:14px;justify-content:center;align-items:center;padding:0;font-family:Atkinson Hyperlegible Next,Atkinson Hyperlegible,system-ui,sans-serif;font-size:36px;font-weight:700;line-height:1;display:flex}li.shelf-slot.filled .shelf-tile{animation:.3s cubic-bezier(.34,1.56,.64,1) shelf-drop-in}@keyframes shelf-drop-in{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}li.shelf-slot.next{border-color:var(--focus);animation:1.2s infinite shelf-pulse}@keyframes shelf-pulse{0%,to{box-shadow:0 0 0 4px color-mix(in srgb, var(--focus) 0%, transparent)}60%{box-shadow:0 0 0 4px color-mix(in srgb, var(--focus) 60%, transparent)}}li.shelf-slot.next:before{content:"▼";color:var(--focus);font-size:16px;position:absolute;top:-28px}li.shelf-slot.hint:after{content:attr(data-hint);color:var(--room-muted);opacity:.45;font-family:Atkinson Hyperlegible Next,Atkinson Hyperlegible,system-ui,sans-serif;font-size:36px;font-weight:700}li.shelf-slot.wrong{border-color:var(--wrong);animation:.4s ease-in-out shelf-shake}@keyframes shelf-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}div.shelf-plank{background:var(--shelf);border:3px solid var(--bin-line);border-radius:6px;height:18px;margin:0 8px;box-shadow:0 6px #0000002e}:root[data-contrast=high] li.shelf-slot{border-color:var(--bin-line);background:var(--tile-face)}:root[data-contrast=high] li.shelf-slot.next{border-color:var(--focus)}:root[data-contrast=high] li.shelf-slot.wrong{border-color:var(--wrong)}:root[data-contrast=high] div.shelf-plank{background:var(--tile-ink);border-color:var(--tile-ink)}@media (forced-colors:active){li.shelf-slot{background:canvas;border-color:canvastext}li.shelf-slot.next{border-color:highlight}li.shelf-slot.wrong{border-color:canvastext}div.shelf-plank{background:canvastext;border-color:canvastext}}:root[data-motion=reduced] li.shelf-slot.filled .shelf-tile{animation:none}:root[data-motion=reduced] li.shelf-slot.next{box-shadow:0 0 0 4px var(--focus);animation:none}:root[data-motion=reduced] li.shelf-slot.wrong{animation:none}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) li.shelf-slot.filled .shelf-tile{animation:none}:root:not([data-motion=full]) li.shelf-slot.next{box-shadow:0 0 0 4px var(--focus);animation:none}:root:not([data-motion=full]) li.shelf-slot.wrong{animation:none}}ol.shelf-slots.phrase{padding-top:30px}li.shelf-slot.word{width:auto;height:auto;min-height:64px;min-width:calc(var(--chars) * .6em + 1.6em);padding:0 .3rem;font-size:1.75rem}.shelf-tile.word{white-space:nowrap;width:auto;height:auto;min-height:56px;padding:.5em .7em;font-size:1em}li.shelf-slot.word.hint:after{font-size:1em}@media (width<=720px){section.boss-shelf{margin:4px 0 8px}.boss-title{margin:0 0 .25rem;font-size:1.3rem}.boss-instructions{font-size:.85rem}li.shelf-slot{border-radius:10px;width:40px;height:40px}.shelf-tile,li.shelf-slot.hint:after{font-size:22px}.shelf-tile{width:34px;height:34px}ol.shelf-slots{gap:4px;padding:22px 0 0}li.shelf-slot.next:before{font-size:14px;top:-22px}ol.shelf-slots.phrase{row-gap:18px;padding-top:18px}li.shelf-slot.word.next:before{font-size:12px;top:-17px}li.shelf-slot.word{min-height:36px;min-width:calc(var(--chars) * .6em + 1em);border-width:2px;border-radius:8px;padding:0 .15rem;font-size:1.05rem}.shelf-tile.word{border-radius:8px;min-height:30px;padding:.25em .5em}body{padding:16px}#app{gap:0}.hud{gap:12px;padding:12px}.hud-title{flex-wrap:wrap}.hud-title h1{font-size:1.5rem}.stats{gap:8px}.chip{height:40px;padding:0 12px;font-size:.9rem}.help-line{font-size:.85rem}.board-frame{padding:8px}.board{min-height:16rem}.bins{gap:8px;margin:16px 0 0}.bin-body{padding:10px 0 12px;left:4px;right:4px}.bin{flex:1 1 0;width:auto;min-width:0;height:168px}.bin-peek{display:none}.bin-label{--plate-inset:0px;min-width:0;margin:0 -6px;padding:4px 3px 5px}.bin-label-name{--name-size:1rem}.bin-label-example{display:none}.tidy{max-width:95vw;padding:1.5rem}.tidy h2{font-size:1.5rem}}.hud-actions .hud-button-primary{order:1}@media (pointer:coarse){.help-keys{display:none}}@media (width<=720px){body{padding:8px 8px 0}.hud{gap:6px 8px;padding:8px 0 6px}.hud-icon{display:none}.hud-title{flex-wrap:nowrap;flex:1 1 0;min-width:0}.hud-title h1{overflow-wrap:normal;font-size:1.3rem}.hud-sub{font-size:.85rem}.hud-actions{flex:none;order:1;justify-content:flex-end;gap:8px}.grade{order:2}.stats{order:3}.help-line{order:4}.hud-actions .hud-button-primary{order:0}.hud-settings-toggle{width:44px;padding:0;font-size:1.4rem}.grade{flex-basis:100%;gap:4px}.grade-name,.grade-count{font-size:.9rem}.grade-bar{height:12px}.stats{flex-basis:100%;gap:6px}.chip{height:32px;padding:0 10px;font-size:.85rem}.help-line{min-height:0;font-size:.8rem;line-height:1.3}.help-more{display:none}.board-frame{border-radius:18px;padding:6px}.board{min-height:12rem}.bins{margin:8px 0 0}.bin{height:120px}@media (pointer:coarse){.bin{height:96px}.bin-kbd{display:none}}.bin-rim{top:4px}.bin-body{top:40px}.bin-count{top:-8px;right:-4px}.bins:not([data-count="2"]):not([data-count="3"]){gap:6px}.bins:not([data-count="2"]):not([data-count="3"]) .bin-label{--plate-inset:2px;margin:0 -4px;padding:3px 2px 4px}.bins:not([data-count="2"]):not([data-count="3"]) .bin-label-name{--name-size:.8125rem}@media (pointer:coarse){.shelf{height:12px}.bins[data-count="5"] .bin,.bins[data-count="6"] .bin,.bins[data-count="7"] .bin,.bins[data-count="8"] .bin{height:62px}.bins[data-count="5"],.bins[data-count="6"],.bins[data-count="7"],.bins[data-count="8"]{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:10px}.bins:not([data-count="2"]):not([data-count="3"]):not([data-count="4"]) .bin-label-name{--name-size:.75rem}.bins:not([data-count="2"]):not([data-count="3"]):not([data-count="4"]) .bin-rim{border-radius:10px;height:24px;padding:4px 8px;top:0}.bins:not([data-count="2"]):not([data-count="3"]):not([data-count="4"]) .bin-body{border-radius:0 0 14px 14px;padding:4px 0;top:20px}.bins:not([data-count="2"]):not([data-count="3"]):not([data-count="4"]) .bin-label{border-width:2px;border-radius:7px;padding:1px 2px 2px;position:static}.bins:not([data-count="2"]):not([data-count="3"]):not([data-count="4"]) .bin-count{border-width:2px;width:26px;height:26px;padding:0;font-size:12px;top:-10px}.bins:not([data-count="2"]):not([data-count="3"]):not([data-count="4"]) .bin.full .bin-label:after{content:"✓";z-index:3;box-sizing:border-box;border:2px solid var(--bin-line);background:var(--plate-face);width:18px;height:18px;color:var(--plate-ink);text-align:center;border-radius:9px;font-size:11px;font-weight:700;line-height:14px;position:absolute;bottom:-8px;left:50%;translate:-50%}:root[data-bin-skin=stickyNotes][data-room] .bins:not([data-count="2"]):not([data-count="3"]):not([data-count="4"]) .bin-rim{height:12px;top:2px}:root[data-bin-skin=stickyNotes][data-room] .bins:not([data-count="2"]):not([data-count="3"]):not([data-count="4"]) .bin-body{padding:10px 4px 4px;top:8px}:root[data-bin-skin=stickyNotes][data-room] .bins:not([data-count="2"]):not([data-count="3"]):not([data-count="4"]) .bin-body:after{width:12px;height:12px}}}.dust-puff{pointer-events:none;background:radial-gradient(circle,#f6f9f3f2 0 14%,#f6f9f399 26%,#0000 42%),radial-gradient(circle at 34% 40%,#f6f9f3bf 0 10%,#0000 24%),radial-gradient(circle at 66% 38%,#f6f9f3bf 0 9%,#0000 22%),radial-gradient(circle at 42% 66%,#f6f9f3b3 0 9%,#0000 22%),radial-gradient(circle at 64% 64%,#f6f9f3b3 0 8%,#0000 20%);width:150px;height:150px;animation:.7s ease-out forwards dust-puff;position:fixed;translate:-50% -50%}:root[data-motion=reduced] .dust-puff{animation:none;display:none}:root[data-motion=reduced] .dust-puff:before,:root[data-motion=reduced] .dust-puff:after{animation:none}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .dust-puff{animation:none;display:none}:root:not([data-motion=full]) .dust-puff:before,:root:not([data-motion=full]) .dust-puff:after{animation:none}}.dust-puff:before,.dust-puff:after{content:"";background:#f6f9f3f2;border-radius:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;animation:.7s ease-out forwards dust-specks;position:absolute;top:50%;left:50%}.dust-puff:before{box-shadow:-40px -26px #f6f9f3e6,36px -34px 0 -1px #f6f9f3e6,46px 14px #f6f9f3d9,-30px 38px 0 -1px #f6f9f3d9,4px 48px #f6f9f3cc,-50px 6px 0 -1px #f6f9f3cc}.dust-puff:after{width:5px;height:5px;margin:-2.5px 0 0 -2.5px;box-shadow:-18px -46px #f6f9f3d9,24px 40px #f6f9f3cc,52px -10px #f6f9f3cc,-46px -44px #f6f9f3bf}@keyframes dust-puff{0%{opacity:1;scale:.5}40%{opacity:.95;scale:1.05}to{opacity:0;scale:1.35}}@keyframes dust-specks{0%{scale:.4}to{scale:1.5}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fx-layer{pointer-events:none;z-index:200;position:fixed;inset:0;overflow:hidden}.fx-pop,.fx-combo,.fx-spark{translate:-50% -50%}.fx-pop{color:var(--room-ink);white-space:nowrap;pointer-events:none;paint-order:stroke;-webkit-text-stroke:3px var(--room-bg);text-stroke:3px var(--room-bg);text-shadow:-3px -3px 0 var(--room-bg), 3px -3px 0 var(--room-bg), -3px 3px 0 var(--room-bg), 3px 3px 0 var(--room-bg);--tx:0px;--ty:-40px;--delay:0s;transform:translate(calc(var(--tx)), calc(var(--ty)));opacity:1;font-family:Atkinson Hyperlegible Next,Atkinson Hyperlegible,system-ui,sans-serif;font-size:22px;font-weight:700;animation:.6s ease-out forwards fx-pop-float;position:fixed}@keyframes fx-pop-float{0%{opacity:1;transform:translate(var(--tx), var(--ty))}to{opacity:0;transform:translate(var(--tx), calc(var(--ty) - 40px))}}.fx-pop.fx-reduced{animation:.6s ease-out forwards fx-pop-fade;--tx:0px!important;--ty:0px!important}@keyframes fx-pop-fade{0%{opacity:1}to{opacity:0}}.fx-combo{font-family:var(--room-font);color:var(--chip-ink);background:var(--chip-accent);border:3px solid var(--bin-line);white-space:nowrap;pointer-events:none;--scale-start:.3;--scale-peak:1.15;--scale-end:1;--rot-wobble:5deg;--tx:0px;--ty:-80px;transform:translate(var(--tx), var(--ty)) scale(var(--scale-start)) rotate(0deg);opacity:1;border-radius:20px;justify-content:center;align-items:center;padding:8px 16px;font-size:40px;font-weight:600;animation:1.1s cubic-bezier(.34,1.56,.64,1) forwards fx-combo-pop;display:flex;position:fixed}@keyframes fx-combo-pop{0%{opacity:1;transform:translate(var(--tx), var(--ty)) scale(var(--scale-start)) rotate(0deg)}30%{transform:translate(var(--tx), var(--ty)) scale(var(--scale-peak)) rotate(var(--rot-wobble))}50%{transform:translate(var(--tx), var(--ty)) scale(var(--scale-end)) rotate(calc(var(--rot-wobble) * -1))}70%{opacity:1;transform:translate(var(--tx), calc(var(--ty) - 20px)) scale(var(--scale-end))}to{opacity:0;transform:translate(var(--tx), calc(var(--ty) - 80px)) scale(var(--scale-end))}}.fx-combo.fx-reduced{animation:1.1s ease-out forwards fx-combo-fade;--scale-start:1!important;--scale-peak:1!important;--scale-end:1!important;--tx:0px!important;--ty:0px!important}@keyframes fx-combo-fade{0%,70%{opacity:1}to{opacity:0}}.fx-shake-small{animation:.25s ease-out forwards fx-shake-small-anim}@keyframes fx-shake-small-anim{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.fx-shake-medium{animation:.32s ease-out forwards fx-shake-medium-anim}@keyframes fx-shake-medium-anim{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-8px)}20%,40%,60%,80%{transform:translate(8px)}}.fx-shake-large{animation:.4s ease-out forwards fx-shake-large-anim}@keyframes fx-shake-large-anim{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-12px)}20%,40%,60%,80%{transform:translate(12px)}}.fx-spark{pointer-events:none;--tx:0px;--ty:0px;--rot:0deg;--delay:0s;--spark-color:#ff5a4e;background:var(--spark-color);width:8px;height:8px;transform:translate(var(--tx), var(--ty)) rotate(var(--rot));opacity:1;border-radius:50%;animation:.6s ease-out forwards fx-spark-burst;position:fixed}:root[data-contrast=high] .fx-spark{background:var(--tile-ink)}@keyframes fx-spark-burst{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(var(--tx), var(--ty)) rotate(var(--rot))}}.fx-confetti{pointer-events:none;--sway:20px;--rot:0deg;--delay:0s;background:var(--chip-accent);width:6px;height:8px;transform:rotate(var(--rot));animation:1.6s ease-in forwards fx-confetti-fall;animation-delay:var(--delay);opacity:1;position:fixed;top:0;left:0}:root[data-contrast=high] .fx-confetti{background:var(--tile-ink)}@keyframes fx-confetti-fall{0%{opacity:1;transform:translateY(0) translateX(0) rotate(var(--rot))}50%{opacity:1}to{opacity:0;transform:translateY(100vh) translateX(var(--sway)) rotate(calc(var(--rot) + 720deg))}}.fx-deflate{animation:.35s ease-out forwards fx-deflate-anim}@keyframes fx-deflate-anim{0%{transform:scale(1)}20%{transform:scale(.85)}40%{transform:scale(.88)}60%{transform:scale(.82)}80%{transform:scale(.86)}to{transform:scale(1)}}.fx-deflate-reduced{animation:.35s ease-out forwards fx-deflate-opacity}@keyframes fx-deflate-opacity{0%{opacity:1}50%{opacity:.5}to{opacity:1}}:root[data-motion=reduced] .fx-pop{animation:.6s ease-out forwards fx-pop-fade;--tx:0px!important;--ty:0px!important}:root[data-motion=reduced] .fx-combo{animation:1.1s ease-out forwards fx-combo-fade;--scale-start:1!important;--scale-peak:1!important;--scale-end:1!important;--tx:0px!important;--ty:0px!important}:root[data-motion=reduced] .fx-shake-small,:root[data-motion=reduced] .fx-shake-medium,:root[data-motion=reduced] .fx-shake-large{animation:none}:root[data-motion=reduced] .fx-spark,:root[data-motion=reduced] .fx-confetti{display:none}:root[data-motion=reduced] .fx-deflate{animation:.35s ease-out forwards fx-deflate-opacity}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) .fx-pop{animation:.6s ease-out forwards fx-pop-fade;--tx:0px!important;--ty:0px!important}:root:not([data-motion=full]) .fx-combo{animation:1.1s ease-out forwards fx-combo-fade;--scale-start:1!important;--scale-peak:1!important;--scale-end:1!important;--tx:0px!important;--ty:0px!important}:root:not([data-motion=full]) .fx-shake-small,:root:not([data-motion=full]) .fx-shake-medium,:root:not([data-motion=full]) .fx-shake-large{animation:none}:root:not([data-motion=full]) .fx-spark,:root:not([data-motion=full]) .fx-confetti{display:none}:root:not([data-motion=full]) .fx-deflate{animation:.35s ease-out forwards fx-deflate-opacity}}html[data-font=mono]{--name-fit-font:7.1;--room-font:"Atkinson Hyperlegible Mono", "Atkinson Hyperlegible Next", system-ui, sans-serif}html[data-font=dyslexic]{--name-fit-font:8.5;--room-font:"OpenDyslexic", "Atkinson Hyperlegible Next", system-ui, sans-serif}html[data-font=system]{--name-fit-font:6.2;--room-font:system-ui, sans-serif}html[data-font=mono] *{font-family:Atkinson Hyperlegible Mono,Atkinson Hyperlegible Next,system-ui,sans-serif}html[data-font=dyslexic] *{font-family:OpenDyslexic,Atkinson Hyperlegible Next,system-ui,sans-serif}html[data-font=system] *{font-family:system-ui,sans-serif}html[data-spacing=wide]{--name-fit-spacing:1.4}html[data-spacing=wide] *{letter-spacing:.12em;word-spacing:.16em}html[data-spacing=wide] p,html[data-spacing=wide] li{line-height:1.5}.homeroom-picker{box-sizing:border-box;background:var(--chip-face);width:min(44rem,100vw - 32px);max-width:calc(100vw - 32px);max-height:90dvh;color:var(--chip-ink);border:3px solid var(--bin-line);border-radius:22px;margin:auto;padding:1.25rem;overflow-y:auto;box-shadow:0 20px 50px #0000004d}.homeroom-picker::backdrop{background:#00000080}.homeroom-kicker{letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.95rem;font-weight:700}.homeroom-picker h2{margin:.25rem 0 .5rem;font-weight:700}.homeroom-help{margin:0 0 1rem}.homeroom-cards{border:0;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem;min-width:0;margin:0 0 1rem;padding:0;display:grid}.homeroom-card{background:var(--board-bg);min-height:44px;color:var(--chip-ink);border:3px solid var(--bin-line);cursor:pointer;border-radius:16px;flex-direction:column;gap:.4rem;padding:.75rem;display:flex;position:relative}.homeroom-card:has(input:checked){box-shadow:0 0 0 4px var(--focus)}.homeroom-card:has(input:checked):after{content:"✓";font-weight:700;position:absolute;top:.4rem;right:.5rem}.homeroom-card input{opacity:0;width:1px;height:1px;position:absolute}.homeroom-card:has(input:focus-visible){outline:var(--focus-w) solid var(--focus);outline-offset:4px}.homeroom-card-name{font-size:1.1rem;font-weight:700}.homeroom-card-vibe{font-size:.95rem}.homeroom-swatch{border:2px solid var(--bin-line);border-radius:10px;align-items:flex-end;gap:.35rem;height:2.5rem;margin-top:auto;padding:.35rem;display:flex}.homeroom-swatch-bin{border:2px solid var(--bin-line);border-radius:6px 6px 0 0;flex:1;height:100%}.homeroom-confirm{background:var(--hud-button-face);width:100%;min-height:44px;color:var(--hud-button-ink);border:3px solid var(--bin-line);cursor:pointer;border-radius:22px;padding:.5rem 1.25rem;font-weight:700;display:block}.homeroom-confirm:disabled{opacity:.55;cursor:not-allowed}.homeroom-confirm:focus-visible{outline:var(--focus-w) solid var(--focus);outline-offset:3px}
