:root{--bg: #57575f;--panel: #34343d;--text: #f4f0ff;--gap: clamp(3px, 1.2vmin, 8px);--app-pad: clamp(12px, 3vmin, 28px);--menu-tab-height: 38px;--menu-card-peek: 8px;--inset-fill: rgba(0, 0, 0, .28);--inset-border: rgba(244, 240, 255, .22)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#root{min-height:100%;display:flex;justify-content:center}.app{width:100%;max-width:min(92vmin,560px);padding:var(--app-pad);--controls-inset-rest: var(--gap);--controls-inset: var(--controls-inset-rest);padding-bottom:calc(var(--menu-tab-height) + var(--menu-card-peek) + clamp(10px,2vmin,18px));display:flex;flex-direction:column;gap:clamp(8px,2vmin,14px);align-items:center}.header{width:100%;display:flex;align-items:center;justify-content:space-between}.title{margin:0;font-size:clamp(1.4rem,5vmin,2.2rem)}.score{margin:0;font-size:clamp(.95rem,3.2vmin,1.3rem);font-weight:600;font-variant-numeric:tabular-nums;padding:.35em .9em;border-radius:10px;border:1px solid var(--inset-border);background:var(--inset-fill)}.peek-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font:inherit;font-size:clamp(.72rem,2.2vmin,.85rem);font-weight:600;color:var(--bg);background:var(--text);padding:.4em 1.1em;border-radius:999px;-webkit-user-select:none;user-select:none;touch-action:none;transition:transform .08s ease}.peek-button:active{transform:scale(.96)}.playfield{width:100%;border-radius:clamp(8px,2vmin,16px);box-shadow:0 8px 30px #00000059;overflow:hidden;line-height:0}.playfield--square{border-radius:0}.playfield canvas{display:block}.controls{width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;order:1;padding-left:var(--gap);padding-right:var(--controls-inset);transition:padding-right .18s ease}.controls .peek-button{justify-self:start}.controls .shuffle-button{justify-self:center}.controls .replay-button{justify-self:end}.app--completed{--controls-inset: calc(clamp(14px, 3.2vmin, 22px) + 1px) }.replay-button,.shuffle-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font:inherit;font-size:clamp(.72rem,2.2vmin,.85rem);font-weight:600;color:var(--bg);background:var(--text);padding:.4em 1.1em;border-radius:999px;transition:transform .08s ease}.replay-button:active,.shuffle-button:active{transform:scale(.96)}@media (prefers-reduced-motion: reduce){.controls,.menu,.menu-backdrop,.menu-levels-panel-wrap,.objective-box__fill,.objective-panel__face{transition:none}}.objective-panel{display:grid;width:100%;padding:clamp(10px,2.4vmin,16px) clamp(14px,3.2vmin,22px);border-radius:10px;border:1px solid var(--inset-border);background:var(--inset-fill)}.objective-panel__face{grid-area:1 / 1;transition:opacity .22s ease}.objective-panel__face[inert]{opacity:0}.objective-box{display:flex;flex-direction:column;gap:clamp(6px,1.6vmin,10px)}.objective-box__label{font-size:clamp(1rem,3.5vmin,1.2rem);font-weight:600}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.swatch{vertical-align:-.12em;margin-inline-end:.1em}.swatch--quilt,.swatch--stack{position:relative;display:inline-block;width:1em;height:1em}.swatch__block{position:absolute;top:0;right:0;bottom:0;left:0;background-size:100% 100%;background-repeat:no-repeat;background-blend-mode:multiply;mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}.swatch--stack .swatch__master{top:-35%;right:-35%;bottom:-35%;left:-35%;width:170%;height:170%}.swatch__base,.swatch__master{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;vertical-align:initial}.objective-box__meters{display:flex;flex-direction:column;gap:clamp(4px,1vmin,7px)}.objective-box__meter{display:flex;align-items:center;gap:clamp(10px,2.6vmin,16px)}.objective-box__track{flex:1;height:clamp(8px,1.8vmin,12px);border-radius:999px;background:#00000047;overflow:hidden}.objective-box__fill{height:100%;border-radius:inherit;background:var(--text);transition:width .28s ease}.objective-box__count{font-size:clamp(.85rem,3vmin,1rem);font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0}.win-banner{display:flex;align-items:center;justify-content:space-between;gap:clamp(12px,3vmin,22px)}.win-banner__label{font-size:clamp(1rem,3.5vmin,1.3rem);font-weight:600}.next-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font:inherit;font-size:clamp(.9rem,3vmin,1.1rem);font-weight:600;color:var(--bg);background:var(--text);padding:.5em 1.4em;border-radius:999px;transition:transform .08s ease;white-space:nowrap;flex-shrink:0}.next-button:active{transform:scale(.96)}.next-button:focus-visible{outline:3px solid var(--text);outline-offset:3px}.menu{--menu-peek: calc( var(--menu-tab-height) + var(--menu-card-peek) + env(safe-area-inset-bottom, 0px) );--menu-deliver-rise: 22px;position:fixed;left:50%;bottom:0;z-index:25;width:100%;max-width:min(92vmin,560px);display:flex;flex-direction:column;align-items:center;transform:translate(-50%) translateY(calc(100% - var(--menu-peek)));transition:transform .24s ease}.menu.is-open{transform:translate(-50%) translateY(0)}.menu-tab{--menu-seam-ink: rgba(244, 240, 255, .55);touch-action:none;align-self:flex-end;margin-right:calc(var(--app-pad) + var(--controls-inset-rest));transition:transform .08s ease;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:var(--menu-tab-height);padding:0 1.2em;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--inset-border);border-bottom:none;cursor:pointer;font:inherit;font-size:clamp(.68rem,2vmin,.8rem);font-weight:600;font-variant:small-caps;line-height:1;color:var(--text);background:var(--panel);border-radius:12px 12px 0 0;transform-origin:bottom center}.menu-grip{width:100%;height:2px;margin-bottom:4px;border-radius:999px;background:var(--menu-seam-ink)}.menu-tab:active{transform:scale(.96)}.menu.is-delivering:not(.is-open){transform:translate(-50%) translateY(calc(100% - var(--menu-peek) - var(--menu-deliver-rise)))}.menu-card{width:100%;display:flex;flex-direction:column;gap:0;padding:clamp(14px,3.2vmin,22px);padding-bottom:calc(clamp(14px,3.2vmin,22px) + env(safe-area-inset-bottom,0px));background:var(--panel);border-radius:0}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#00000080;opacity:0;pointer-events:none;transition:opacity .24s ease}.menu-backdrop.is-open{opacity:1;pointer-events:auto}.menu-modes{display:flex;gap:clamp(8px,2vmin,12px)}.menu-modes .menu-option{flex:1 1 0;min-width:0}.menu-option{display:flex;flex-direction:column;align-items:flex-start;gap:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;text-align:left;color:var(--text);background:var(--inset-fill);border:1px solid var(--inset-border);border-radius:10px;padding:.7em .9em;transition:transform .08s ease}.menu-option:active{transform:scale(.99)}.menu-option__label{font-size:clamp(.95rem,3vmin,1.1rem);font-weight:600}.menu-option__note{font-size:clamp(.7rem,2.2vmin,.82rem);opacity:.7}.menu-option.is-current,.menu-level.is-current,.menu-theme-option.is-current{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.menu-theme{display:flex;flex-direction:column;gap:clamp(6px,1.6vmin,10px);margin-top:clamp(10px,2.5vmin,16px)}.menu-theme-options{display:flex;flex-wrap:wrap;gap:clamp(8px,2vmin,12px)}.menu-theme-option{flex:1 1 0;min-width:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-size:clamp(.9rem,2.8vmin,1.05rem);font-weight:600;color:var(--text);background:var(--inset-fill);border:1px solid var(--inset-border);border-radius:10px;padding:.6em .4em;text-align:center;transition:transform .08s ease}.menu-theme-option:active{transform:scale(.97)}.menu-section-label{font-size:clamp(.72rem,2.2vmin,.82rem);font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.6}.menu-levels{display:flex;flex-wrap:wrap;gap:clamp(8px,2vmin,12px)}.menu-level{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-size:clamp(1rem,3.2vmin,1.2rem);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text);background:var(--inset-fill);border:1px solid var(--inset-border);border-radius:10px;min-width:2.6em;padding:.5em 0;text-align:center;transition:transform .08s ease}.menu-level:active:not(:disabled){transform:scale(.96)}.menu-levels-panel-wrap{display:grid;grid-template-rows:0fr;transition:grid-template-rows .24s ease}.menu-levels-panel-wrap.is-open{grid-template-rows:1fr}.menu-levels-panel{overflow:hidden;min-height:0;display:flex;gap:clamp(12px,3vmin,18px);align-items:stretch;padding-top:clamp(10px,2.4vmin,16px)}.menu-continue-col{display:flex;flex-direction:column;gap:clamp(6px,1.6vmin,10px)}.menu-replay-col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:clamp(6px,1.6vmin,10px);padding-left:clamp(12px,3vmin,18px);border-left:1px solid var(--inset-border)}.menu-continue{min-width:2.8em;padding:.55em .2em;font-size:clamp(1.1rem,3.6vmin,1.35rem)}.menu-tab:focus-visible,.menu-option:focus-visible,.menu-level:focus-visible,.menu-theme-option:focus-visible{outline:3px solid var(--text);outline-offset:2px}.error-screen{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:clamp(16px,5vmin,40px)}.error-card{width:100%;max-width:min(90vmin,420px);padding:clamp(20px,5vmin,36px);display:flex;flex-direction:column;gap:clamp(12px,3vmin,20px);align-items:center;text-align:center;background:var(--panel);border-radius:clamp(8px,2vmin,16px);box-shadow:0 8px 30px #00000059}.error-title{margin:0;font-size:clamp(1.3rem,4.5vmin,1.9rem);letter-spacing:.02em}.error-message{margin:0;font-size:clamp(.95rem,3vmin,1.15rem);line-height:1.5;opacity:.85}.error-reload{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font:inherit;font-size:clamp(1rem,3vmin,1.2rem);font-weight:600;color:var(--bg);background:var(--text);padding:.6em 1.6em;border-radius:999px}.stage-sheet{padding:1.5rem;overflow:auto;max-width:100%}.stage-sheet h1{margin:0 0 .35rem;font-size:1.15rem;font-weight:600}.stage-sheet p{margin:0 0 1.25rem;max-width:62ch;font-size:.9rem;line-height:1.5;opacity:.75}.stage-sheet canvas{display:block}.level-flight{--flight-ms: .7s;position:fixed;top:0;left:0;z-index:30;pointer-events:none;margin-left:-18px;margin-top:-18px;transition:transform var(--flight-ms) cubic-bezier(.4,0,.2,1)}.level-flight__tile{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;font-size:.9rem;font-weight:700;color:var(--bg);background:var(--text);transition:transform var(--flight-ms) ease-in,opacity var(--flight-ms) ease-in}.level-flight.is-landing .level-flight__tile{transform:scale(.42);opacity:.25}
