@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(./barlow-400-qiz4-Cze.woff2)format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(./barlow-500-BPAOfeC8.woff2)format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(./barlow-600-DILqtrty.woff2)format("woff2")}@font-face{font-family:Barlow;font-style:normal;font-weight:700;font-display:swap;src:url(./barlow-700-A9pxMQ4z.woff2)format("woff2")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(./barlow-semi-condensed-500-G0uxJNrM.woff2)format("woff2")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(./barlow-semi-condensed-600-BkLiAYu4.woff2)format("woff2")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(./barlow-semi-condensed-700-BpqDG8I9.woff2)format("woff2")}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-weight:800;font-display:swap;src:url(./barlow-semi-condensed-800-C0_dLkYa.woff2)format("woff2")}:root{--bg:#eef0f1;--panel:#fff;--panel-alt:#f2f3f4;--panel-border:#d5d8da;--panel-border-light:#9aa0a6;--primary:#0f7a86;--primary-light:#1fb3c4;--primary-dark:#0a545c;--accent:#fc3;--accent-dark:#e0a800;--magenta:#e2007a;--text:#181b1d;--text-muted:#54595d;--text-faint:#82888d;--success:#1f8a4c;--danger:#c62828;--paper:#f5efe0;--paper-text:#241f14;--paper-muted:#6b6248;--bezel:#b7bbbf;--bezel-dark:#7d8288;--btn-face-top:#f5f7f9;--btn-face-bottom:#ced5da;--btn-face-active-top:#c2c9ce;--btn-face-active-bottom:#aab2b8;--btn-border:#838d94;--font:"Barlow", sans-serif;--font-display:"Barlow Semi Condensed", sans-serif;--radius-sm:4px;--radius-md:8px;--radius-lg:10px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--header-h:clamp(18px, 9.5vh, 160px);--footer-h:clamp(16px, 8vh, 140px);--game-area-h:calc(100vh - var(--header-h) - var(--footer-h) - var(--safe-top) - var(--safe-bottom));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (max-width:960px){:root{--header-h:clamp(40px, 9.5vh, 160px);--footer-h:clamp(36px, 8vh, 140px)}}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--bezel);width:100%;height:100%;color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;touch-action:none;margin:0;padding:0;overflow:hidden}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:default}img,svg{-webkit-user-drag:none;user-drag:none;pointer-events:none}button{touch-action:manipulation;font-family:inherit}#app{background:var(--bezel);flex-direction:column;width:100%;height:100%;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.chrome-bar{height:calc(var(--header-h) + var(--safe-top));padding-top:var(--safe-top);padding-left:calc(10px + var(--safe-left));padding-right:calc(12px + var(--safe-right));background:var(--panel-alt);border-bottom:1px solid var(--panel-border);z-index:1100;pointer-events:none;justify-content:space-between;align-items:center;gap:8px;display:flex;position:fixed;top:0;left:0;right:0}.chrome-menu-btn{pointer-events:auto;min-width:0;height:min(11.5vw, calc(var(--header-h) * .62));border-radius:var(--radius-sm);border:1px solid var(--btn-border);background:linear-gradient(180deg, var(--btn-face-top), var(--btn-face-bottom));color:var(--text);font-family:var(--font-display);font-weight:600;font-size:min(3.7vw, calc(var(--header-h) * .2));white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;align-items:center;gap:7px;padding:0 clamp(11px,3.6vw,20px) 0 clamp(8px,2.6vw,13px);display:flex;overflow:hidden}.chrome-menu-btn:active{background:linear-gradient(180deg, var(--btn-face-active-top), var(--btn-face-active-bottom))}.chrome-menu-btn svg{flex-shrink:0;width:1.15em;height:1.15em}.chrome-highscore-btn{pointer-events:auto;min-width:0;height:min(11.5vw, calc(var(--header-h) * .62));border-radius:var(--radius-sm);border:1px solid var(--accent-dark);background:linear-gradient(180deg, #ffe08a, var(--accent));color:#2b2004;font-family:var(--font-display);font-weight:700;font-size:min(3.7vw, calc(var(--header-h) * .2));white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;align-items:center;gap:7px;padding:0 clamp(11px,3.6vw,20px) 0 clamp(8px,2.6vw,13px);display:flex;overflow:hidden}.chrome-highscore-btn:active{background:linear-gradient(180deg, var(--accent), var(--accent-dark))}.chrome-highscore-btn svg{flex-shrink:0;width:1.15em;height:1.15em}.chrome-bar__title{transform:translate(-50%, calc(-50% + var(--safe-top) / 2));text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:1px;max-width:min(38%,320px);display:flex;position:absolute;top:50%;left:50%}.chrome-bar__clock{font-family:var(--font-display);font-weight:600;font-size:min(2.6vw, calc(var(--header-h) * .15));letter-spacing:.03em;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.chrome-bar__clock:empty{display:none}.chrome-bar__game-title{font-family:var(--font-display);font-weight:700;font-size:min(3.6vw, calc(var(--header-h) * .2));color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.chrome-bar__game-title:empty{display:none}.chrome-bar__brand{pointer-events:none;flex-shrink:1;align-items:center;gap:6px;min-width:0;display:flex}.chrome-bar__logo{height:min(12.6vw, calc(var(--header-h) * .72));object-fit:contain;flex-shrink:0;width:auto;max-width:40vw}.chrome-bar__wordmark{font-family:var(--font-display);letter-spacing:.04em;color:var(--text);white-space:nowrap;font-size:.72rem;font-weight:800}.chrome-footer-bar{height:calc(var(--footer-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);padding-top:6px;padding-left:calc(10px + var(--safe-left));padding-right:calc(10px + var(--safe-right));z-index:1100;pointer-events:none;background:0 0;justify-content:space-between;align-items:center;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.chrome-footer-bar>*{pointer-events:auto}.chrome-footer-btn{-webkit-appearance:none;appearance:none;border:1px solid var(--btn-border);background:linear-gradient(180deg, var(--btn-face-top), var(--btn-face-bottom));color:var(--text-muted);border-radius:var(--radius-sm);padding:min(2vw, calc(var(--footer-h) * .12)) clamp(9px, 3.2vw, 16px);font-family:var(--font-display);font-weight:600;font-size:min(3.7vw, calc(var(--footer-h) * .24));white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;align-items:center;gap:6px;min-width:0;display:flex;overflow:hidden}.chrome-footer-btn:active{background:linear-gradient(180deg, var(--btn-face-active-top), var(--btn-face-active-bottom))}.chrome-footer-btn__icon{flex-shrink:0;width:.95em;height:.95em;display:inline-flex}.chrome-footer-btn__icon svg{width:100%;height:100%}@media (max-width:960px){.chrome-menu-btn,.chrome-highscore-btn{height:max(30px, min(11.5vw, calc(var(--header-h) * .62)));font-size:max(12px, min(3.7vw, calc(var(--header-h) * .2)))}.chrome-footer-btn{padding:max(4px, min(2vw, calc(var(--footer-h) * .12))) clamp(9px, 3.2vw, 16px);font-size:max(12px, min(3.7vw, calc(var(--footer-h) * .24)))}}.chrome-footer-paper-warn{color:var(--accent-dark);font-family:var(--font-display);font-weight:700;font-size:min(2.2vw, calc(var(--footer-h) * .13));white-space:nowrap;align-items:center;gap:5px;display:none}.chrome-footer-paper-warn--empty{color:var(--danger)}.chrome-footer-paper-warn__icon{flex-shrink:0;width:.9em;height:.9em;display:inline-flex}.chrome-footer-paper-warn__icon svg{width:100%;height:100%}.chrome-footer-cooldown-badge{-webkit-appearance:none;appearance:none;cursor:pointer;color:var(--text-muted);font-family:var(--font-display);font-weight:700;font-size:min(2.2vw, calc(var(--footer-h) * .13));white-space:nowrap;background:0 0;border:none;align-items:center;gap:5px;padding:0;display:none}.chrome-footer-cooldown-badge__icon{flex-shrink:0;width:.9em;height:.9em;display:inline-flex}.chrome-footer-cooldown-badge__icon svg{width:100%;height:100%}.chrome-footer-unread-badge{color:var(--accent-dark);font-family:var(--font-display);font-weight:700;font-size:min(2vw, calc(var(--footer-h) * .12));white-space:nowrap}.chrome-footer-version{color:var(--text-muted);opacity:.6;font-weight:400;font-size:min(1.7vw, calc(var(--footer-h) * .1));white-space:nowrap;margin-top:2px}.chrome-footer-credit{color:#4a4e51;letter-spacing:.02em;pointer-events:none;flex-direction:column;align-items:center;gap:1px;max-width:min(58%,640px);display:flex;position:absolute;top:calc(50% - 4px);left:50%;transform:translate(-50%,-50%)}.chrome-footer-credit__line{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.chrome-footer-credit strong{font-weight:700}.chrome-footer-credit__line--main{font-size:min(3vw, calc(var(--footer-h) * .18))}.chrome-footer-credit__line--sub{font-style:italic;font-size:min(2.22vw, calc(var(--footer-h) * .132))}.chrome-footer-credit__line--wrap{white-space:normal;text-align:center;line-height:1.25;font-size:min(1.9vw, calc(var(--footer-h) * .11));opacity:.85;margin-top:2px}.menu-screen{padding:calc(var(--header-h) + 10px + var(--safe-top)) calc(12px + var(--safe-right)) calc(var(--footer-h) + 10px + var(--safe-bottom)) calc(12px + var(--safe-left));flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;display:flex;position:relative;overflow:hidden}.menu-card{z-index:0;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-lg);width:100%;max-width:3400px;min-height:0;padding:16px calc(16px + var(--safe-right)) 12px calc(16px + var(--safe-left));flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden;box-shadow:0 3px #0000001f,0 10px 26px #0000002e}.menu-header{border-bottom:1px solid var(--panel-border);margin-bottom:12px;padding-bottom:10px}.menu-header h1{font-family:var(--font-display);letter-spacing:.005em;color:var(--text);margin:0;font-size:clamp(.546rem,2.438vw,3.12rem);font-weight:800}.menu-grid{touch-action:pan-y;-webkit-overflow-scrolling:touch;flex-direction:row;flex:1;justify-content:safe center;align-items:flex-start;gap:40px;width:100%;min-height:0;display:flex;overflow-y:auto}.menu-column{flex-direction:column;align-items:flex-start;gap:40px;display:flex}.menu-cluster{flex-direction:column;align-items:flex-start;gap:16px;display:flex}.menu-tile{aspect-ratio:3.3;border:clamp(2px, .35vw, 3px) solid var(--btn-border);color:var(--text);text-align:left;background:linear-gradient(#eef0f2 0%,#e2e5e9 100%);border-radius:clamp(10px,1.4vw,16px);flex-direction:row;justify-content:space-between;align-items:center;gap:clamp(8px,1.6vw,14px);padding:clamp(3px,.7vh,8px) clamp(10px,2vw,20px);display:flex;position:relative;overflow:hidden;box-shadow:0 2px #0000001a}.menu-tile:active{background:linear-gradient(#e2e5e9 0%,#d7dade 100%);transform:translateY(1px);box-shadow:inset 0 1px 4px #00000026}.menu-tile__text{gap:calc(3px * var(--menu-tile-scale,1));flex-direction:column;min-width:0;display:flex}.menu-tile__title-row{align-items:baseline;gap:calc(5px * var(--menu-tile-scale,1));min-width:0;display:flex}.menu-tile__title{font-family:var(--font);font-weight:800;font-size:calc(1.08rem * var(--menu-tile-scale,1));color:var(--text);overflow-wrap:break-word;min-width:0;line-height:1.18}.menu-tile__new-badge{white-space:nowrap;font-family:var(--font-display);font-weight:800;font-size:calc(.62rem * var(--menu-tile-scale,1));letter-spacing:.02em;color:#4a3400;border-radius:calc(999px * var(--menu-tile-scale,1));padding:calc(2px * var(--menu-tile-scale,1)) calc(7px * var(--menu-tile-scale,1));background:#ffd23f;flex-shrink:0}.menu-tile__subtitle{font-size:calc(.76rem * var(--menu-tile-scale,1));color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menu-tile__note{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:calc(.68rem * var(--menu-tile-scale,1));color:var(--tile-accent,var(--accent-dark));margin-top:calc(2px * var(--menu-tile-scale,1));text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.menu-tile__icon{width:calc(46px * var(--menu-tile-scale,1));height:calc(46px * var(--menu-tile-scale,1));background:var(--tile-accent,var(--primary));color:#fff;border:1px solid #00000040;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:inset 0 -2px #0000002e,inset 0 1px #ffffff59}.menu-tile__icon svg{width:calc(24px * var(--menu-tile-scale,1));height:calc(24px * var(--menu-tile-scale,1))}.highscore-board{touch-action:pan-y;-webkit-overflow-scrolling:touch;flex-direction:row;flex:1;justify-content:flex-start;align-items:flex-start;min-height:0;display:flex;overflow-y:auto}.highscore-board__column{flex-direction:column;flex:none;min-width:0;display:flex}.highscore-board__game{border:1px solid var(--panel-border);border-radius:var(--radius-md);min-width:0}.highscore-board__game-title{padding:calc(8px * var(--hb-scale,1)) calc(12px * var(--hb-scale,1));font-family:var(--font-display);font-weight:800;font-size:calc(.95rem * var(--hb-scale,1));color:#fff;background:var(--tile-accent,var(--primary));border-radius:var(--radius-md) var(--radius-md) 0 0}.highscore-board__row:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.highscore-board__row{gap:calc(6px * var(--hb-scale,1));padding:calc(7px * var(--hb-scale,1)) calc(12px * var(--hb-scale,1));border-top:1px solid var(--panel-border);font-size:calc(.85rem * var(--hb-scale,1));flex-direction:column;display:flex}.highscore-board__row-main{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.btn.highscore-board__play-btn{font-size:calc(.68rem * var(--hb-scale,1));padding:calc(3px * var(--hb-scale,1)) calc(9px * var(--hb-scale,1));align-self:flex-start}.btn.highscore-board__delete-btn{margin-top:calc(2px * var(--hb-scale,1));font-size:calc(.64rem * var(--hb-scale,1));padding:calc(2px * var(--hb-scale,1)) calc(8px * var(--hb-scale,1));color:var(--danger);align-self:flex-end}.highscore-board__values{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;min-width:0;display:flex}.highscore-board__row:first-of-type{border-top:none}.highscore-board__label{color:var(--text-muted);flex-shrink:0}.highscore-board__value{text-align:right;color:var(--text);flex-direction:column;align-items:flex-end;max-width:100%;display:flex}.highscore-board__value-main{white-space:normal;text-align:right;max-width:100%}.highscore-board__value-num{white-space:nowrap}.highscore-board__value-name{overflow-wrap:anywhere}.highscore-board__value strong{font-family:var(--font-display);color:var(--accent-dark)}.highscore-board__value-time{font-size:calc(.68rem * var(--hb-scale,1));color:var(--text-faint);font-variant-numeric:tabular-nums}.highscore-board__value--empty{color:var(--text-faint);font-style:italic}.game-stage{background:var(--bg);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.game-stage__canvas-wrap{flex:1;position:relative;overflow:hidden}.game-stage canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.game-stage__overlay{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.game-stage__overlay>*{pointer-events:auto}.game-stage__loading{background:var(--bg);color:var(--text-muted);font-family:var(--font-display);z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:1rem;font-weight:700;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.game-stage__loading-spinner{border:4px solid var(--btn-border);border-top-color:var(--accent);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite game-stage-loading-spin}@keyframes game-stage-loading-spin{to{transform:rotate(360deg)}}.screen-loading{background:var(--bg);color:var(--text-muted);font-family:var(--font-display);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:1rem;font-weight:700;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.screen-loading:before{content:"";border:4px solid var(--btn-border);border-top-color:var(--accent);border-radius:50%;width:38px;height:38px;animation:.8s linear infinite game-stage-loading-spin}.btn{-webkit-appearance:none;appearance:none;border:1px solid var(--btn-border);cursor:pointer;font-family:var(--font-display);letter-spacing:.02em;border-radius:var(--radius-sm);color:var(--text);background:linear-gradient(180deg, var(--btn-face-top), var(--btn-face-bottom));padding:clamp(9px,1.8vw,16px) clamp(16px,3.4vw,28px);font-size:clamp(.322rem,1.438vw,1.84rem);font-weight:700;transition:transform 60ms,box-shadow 60ms;box-shadow:0 3px #0003}.btn:active{box-shadow:none;background:linear-gradient(180deg, var(--btn-face-active-top), var(--btn-face-active-bottom));transform:translateY(3px)}.admin-panel .btn{padding:clamp(6px,1.3vw,12px) clamp(11px,2.4vw,20px);font-size:clamp(.28rem,1.05vw,1.32rem)}.btn--accent{background:linear-gradient(180deg, #ffe08a, var(--accent));color:#2b2004;border-color:var(--accent-dark);box-shadow:0 3px 0 var(--accent-dark)}.btn--accent:active{box-shadow:none;background:linear-gradient(180deg, var(--accent), var(--accent-dark))}.btn--ghost{box-shadow:none;border:1px solid var(--btn-border);color:var(--text-muted);background:0 0}.btn--ghost:active{background:var(--panel-alt);transform:none}.btn:disabled{opacity:.45;pointer-events:none}.btn--choice{border:2px solid var(--accent-dark);padding:clamp(4px,min(2.6vw,2.2vh),24px) clamp(20px,3.2vw,32px);font-size:clamp(.35rem,min(1.75vw,2.6vh),2.24rem)}.btn__icon{vertical-align:-.2em;width:1.15em;height:1.15em;margin-right:.35em;display:inline-flex}.hs-print-btn{background:linear-gradient(180deg, var(--primary-light), var(--primary));color:#fff;border:2px solid var(--primary-dark);box-shadow:0 3px 0 var(--primary-dark), 0 0 0 4px #1fb3c447;padding:clamp(11px,2.2vw,19px) clamp(16px,3.4vw,28px);font-size:clamp(.35rem,1.563vw,2rem);animation:1.8s ease-in-out infinite hs-print-btn-pulse}.hs-print-btn:active{box-shadow:none;background:linear-gradient(180deg, var(--primary), var(--primary-dark));animation:none}@keyframes hs-print-btn-pulse{0%,to{box-shadow:0 3px 0 var(--primary-dark), 0 0 0 4px #1fb3c447}50%{box-shadow:0 3px 0 var(--primary-dark), 0 0 0 9px #1fb3c40d}}.hs-save-only-btn{background:linear-gradient(180deg, var(--primary-light), var(--primary));color:#fff;border:2px solid var(--primary-dark)}.hs-save-only-btn:active{background:linear-gradient(180deg, var(--primary), var(--primary-dark))}.hs-name-actions{flex-direction:column;gap:clamp(4px,1.2vh,10px);margin-top:clamp(4px,1.2vh,10px);display:flex}.hs-name-actions .btn{width:100%;padding:clamp(5px,min(1.9vw,2vh),15px) clamp(13px,2.8vw,22px);font-size:clamp(.3rem,min(1.375vw,2.4vh),1.76rem)}.btn__icon svg{width:100%;height:100%}.modal-scrim{top:calc(var(--header-h) + 8px + var(--safe-top));bottom:calc(var(--footer-h) + 8px + var(--safe-bottom));z-index:1000;touch-action:pan-y;background:#1e22258c;justify-content:safe center;align-items:safe center;padding:12px 20px;display:flex;position:fixed;left:0;right:0;overflow-y:auto}.modal-panel{touch-action:pan-y;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:calc(100% - 40px);padding:clamp(40px,6vh,60px) clamp(14px,3vw,28px) clamp(14px,3vh,28px);position:relative;overflow-y:auto;box-shadow:0 3px #00000026,0 16px 40px #0000004d}.modal-panel--wide{max-width:720px}.hopper-caught-panel{max-width:min(60vw,900px)}.ticket-result-panel{max-width:min(45vw,640px)}.ticket-tear-hint{border-radius:var(--radius-md);background:linear-gradient(180deg, var(--primary-light), var(--primary));color:#fff;font-family:var(--font-display);box-shadow:0 3px 0 var(--primary-dark), 0 0 0 4px #1fb3c447;margin:clamp(6px,1.6vh,14px) 0;padding:clamp(8px,1.8vh,16px) clamp(10px,2.4vw,20px);font-size:clamp(1.1rem,min(4.2vw,5.5vh),2.6rem);font-weight:800;line-height:1.15;animation:1.8s ease-in-out infinite hs-print-btn-pulse}.modal-panel--keyboard{width:min(80vw,1000px);max-width:min(80vw,1000px);padding-top:clamp(28px,5vh,60px)}@media (max-width:960px){.modal-scrim:has(.modal-panel--keyboard){z-index:1200;padding:0;top:0;bottom:0}.modal-panel--keyboard{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100%;padding:clamp(10px,2.4vh,20px) clamp(10px,3vw,20px)}.modal-panel--keyboard .modal-fit-wrap{flex-direction:column;height:100%;display:flex}.modal-panel--keyboard .modal-fit-wrap>.osk{flex:1;min-height:0}.modal-panel--keyboard h2{font-size:clamp(.5rem,min(4vw,5vh),3.2rem)}.modal-panel--keyboard p{font-size:clamp(.4rem,min(3vw,3.6vh),2.2rem)}}.modal-panel__close-wrap{z-index:6;height:0;position:sticky;top:0;overflow:visible}.modal-panel__close{border:1px solid var(--panel-border);background:var(--panel-alt);width:clamp(14.7px,3.28vw,58.8px);height:clamp(14.7px,3.28vw,58.8px);color:var(--text-muted);cursor:pointer;z-index:5;border-radius:999px;justify-content:center;align-items:center;font-size:clamp(.364rem,1.625vw,2.08rem);line-height:1;display:flex;position:absolute;top:8px;right:8px}.modal-panel__close:hover{background:var(--panel-border)}.modal-panel h2{font-family:var(--font-display);color:var(--text);margin:0 0 4px;font-size:clamp(.35rem,min(1.938vw,3.4vh),2.48rem)}.modal-panel p{color:var(--text-muted);font-size:clamp(.28rem,min(1.313vw,2.3vh),1.68rem);line-height:1.4}.game-intro-panel{max-width:min(75vw,960px)}.game-intro-panel h2{font-size:clamp(.35rem,min(1.5vw,2.7vh),1.9rem)}.game-intro-list{color:var(--text-muted);margin:10px 0 0;padding-left:24px;font-size:clamp(.35rem,min(1.5vw,2.6vh),1.9rem);line-height:1.4}.game-intro-list li{margin-bottom:clamp(2px,1.2vh,8px)}.game-intro-list li::marker{color:var(--accent-dark)}.field-input{border-radius:var(--radius-sm);border:1px solid var(--btn-border);background:var(--panel-alt);width:100%;color:var(--text);font-family:var(--font-display);letter-spacing:.03em;outline:none;padding:clamp(2px,min(1.8vw,1.6vh),15px) clamp(10px,2.2vw,17px);font-size:clamp(.3rem,min(1.625vw,3.4vh),2.08rem)}.field-input:focus{border-color:var(--primary)}.field-error{color:var(--danger);min-height:1.2em;font-size:clamp(.28rem,1.25vw,1.6rem)}.modal-actions{justify-content:flex-end;gap:10px;margin-top:clamp(4px,2vh,16px);display:flex}.modal-actions .btn{padding:clamp(4px,1vh,9px) clamp(10px,2vw,16px);font-size:clamp(.3rem,min(1.4vw,2.2vh),1rem)}.ticket-card{background:var(--paper);color:var(--paper-text);border-radius:var(--radius-md);border:1px solid #e2d9bd;padding:14px 16px;position:relative;box-shadow:0 2px #0000001a}.ticket-card:before{content:"";background:repeating-linear-gradient(90deg, var(--accent) 0 10px, #2b2004 10px 14px);border-radius:var(--radius-md) var(--radius-md) 0 0;height:6px;position:absolute;top:0;left:0;right:0}.orientation-lock{display:none}@media (orientation:portrait){html:not(.orientation-dismissed) .orientation-lock{z-index:9999;background:var(--bezel-dark);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4vh;padding:6vh 8vw;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}html:not(.orientation-dismissed) #app,html:not(.orientation-dismissed) .chrome-bar,html:not(.orientation-dismissed) .chrome-footer-bar{visibility:hidden;pointer-events:none}}.orientation-lock__icon{color:#fff;flex-shrink:0;width:min(45vw,280px);height:min(45vw,280px);animation:1.8s ease-in-out infinite orientation-lock-rotate}@keyframes orientation-lock-rotate{0%,15%{transform:rotate(0)}50%,65%{transform:rotate(-90deg)}to{transform:rotate(-90deg)}}.orientation-lock__text{color:#fff;max-width:90vw;font-family:var(--font-display);margin:0;font-size:clamp(.532rem,6.4vw,6.4rem);font-weight:800;line-height:1.3}.orientation-lock__text span{font-family:var(--font);color:#ffffffbf;margin-top:1.6vh;font-size:clamp(.322rem,3.6vw,3.6rem);font-weight:500;display:block}.orientation-lock__dismiss{-webkit-appearance:none;appearance:none;border-radius:var(--radius-md);color:#fff;font-family:var(--font);cursor:pointer;background:0 0;border:2px solid #ffffff8c;padding:clamp(8px,1.6vh,16px) clamp(16px,3.2vw,28px);font-size:clamp(.4rem,2.6vw,1.4rem);font-weight:700}.orientation-lock__dismiss:active{background:#ffffff26}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--btn-border);border-radius:3px}::-webkit-scrollbar-track{background:0 0}.osk{-webkit-user-select:none;user-select:none;flex-direction:column;align-self:stretch;gap:8px;width:100%;display:flex}.osk__row{justify-content:center;gap:8px;display:flex}.osk__row--end{justify-content:flex-end}.osk__key{border-radius:var(--radius-sm);border:1px solid var(--btn-border);background:linear-gradient(180deg, var(--btn-face-top), var(--btn-face-bottom));min-width:0;height:clamp(44px,min(9.5vh,6.5vw),92px);color:var(--text);font-family:var(--font-display);flex:1;justify-content:center;align-items:center;font-size:clamp(.462rem,min(3.667vh,2.062vw),2.64rem);font-weight:600;display:flex;box-shadow:0 3px #0003}.osk__letters .osk__key{height:var(--osk-letter-key-size,clamp(44px, min(9.5vh, 6.5vw), 92px));font-size:var(--osk-letter-font-size,clamp(.462rem, min(3.667vh, 2.062vw), 2.64rem))}.osk__letters{gap:var(--osk-letter-row-gap,8px);flex-direction:column;display:flex}.osk__key:active{box-shadow:none;background:linear-gradient(180deg, var(--btn-face-active-top), var(--btn-face-active-bottom));transform:translateY(2px)}.osk__key--wide{flex:1.8}.osk--numeric .osk__row{gap:var(--osk-row-gap,6px)}.osk--numeric .osk__key{width:var(--osk-key-size,78px);height:var(--osk-key-size,78px);flex:none;font-size:1.4rem}.osk__key--accent{background:linear-gradient(180deg, #ffe08a, var(--accent));color:#2b2004;border-color:var(--accent-dark)}.osk__with-extra{flex-direction:row;align-items:flex-start;gap:14px;width:100%;display:flex}.osk__main{flex:auto;min-width:0}.osk__numpad{gap:var(--osk-letter-row-gap,8px);flex-direction:column;flex-shrink:0;width:clamp(84px,18.75vw,336px);display:flex}.osk__numpad .osk__key{height:var(--osk-letter-key-size,clamp(40px, min(9.5vh, 6.5vw), 88px));font-size:var(--osk-letter-font-size,clamp(.42rem, min(3.333vh, 1.875vw), 2.4rem))}.osk__row--center{justify-content:center}.osk__row--center .osk__key{flex:none;width:calc(33.3333% - 5.33333px)}.scroll-list{touch-action:pan-y;overscroll-behavior:contain;overflow-y:auto}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip-row--picker{flex-wrap:wrap;justify-content:center;gap:clamp(4px,1.4vh,8px);width:100%;display:flex}.chip--picker{flex:72px;max-width:220px;padding:clamp(8px,3.4vh,30px) clamp(6px,2vw,16px);font-size:clamp(.504rem,4vh,2.88rem)}.chip{-webkit-appearance:none;appearance:none;font-family:var(--font-display);color:#fff;background:var(--chip-color,var(--primary));white-space:nowrap;border:1px solid #00000026;border-radius:999px;padding:clamp(7px,1.6vh,16px) clamp(13px,2.4vh,24px);font-size:clamp(.42rem,3.333vh,2.4rem);font-weight:700;box-shadow:0 2px #0003}.chip:active{box-shadow:none;transform:translateY(2px)}.chip--outline{color:var(--text-muted);box-shadow:none;background:0 0}.chip--removable{cursor:pointer}.list-row{border:none;border-bottom:1px solid var(--panel-border);width:100%;color:var(--text);font-family:var(--font);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:8px;padding:11px 14px;font-size:.95rem;display:flex}.list-row:active{background:var(--panel-alt)}.list-row__meta{color:var(--text-faint);font-size:.78rem}.breadcrumb{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(4px,1vh,10px);min-height:calc(4*clamp(7px,1.6vh,16px) + 2.6*clamp(.42rem,3.333vh,2.4rem) + clamp(4px,1vh,10px));font-size:clamp(.322rem,2.556vh,1.84rem);display:flex}.breadcrumb__sep{color:var(--text-faint)}.switch-lane-buttons{left:0;right:0;top:calc(var(--header-h) + var(--safe-top) + var(--game-area-h) * .38);z-index:15;gap:clamp(8px,2vw,18px);padding:0 clamp(16px,6vw,72px);display:flex;position:absolute}.switch-choice-banner{left:0;right:0;top:calc(var(--header-h) + 3.5vh + var(--safe-top));z-index:15;border:1px solid var(--accent-dark);background:linear-gradient(180deg, #ffe08a, var(--accent));color:#2b2004;width:-moz-fit-content;width:fit-content;box-shadow:0 3px 0 var(--accent-dark);pointer-events:none;border-radius:999px;justify-content:center;align-items:center;gap:clamp(3px,1.4vh,10px);margin:0 auto;padding:clamp(3px,1.4vh,10px) clamp(10px,3vw,22px);position:absolute}.switch-choice-banner__arrow,.switch-choice-banner__text{align-items:center;display:inline-flex}.switch-choice-banner__arrow{font-size:clamp(.6rem,5vh,2.1rem);line-height:1}.switch-choice-banner__text{font-family:var(--font-display);white-space:nowrap;font-size:clamp(.45rem,3.7vh,1.55rem);font-weight:800}.stage-highscore-banner{left:0;right:0;top:calc(var(--header-h) + 8px + var(--safe-top));z-index:16;pointer-events:none;justify-content:center;padding:0 12px;display:flex;position:absolute}.stage-highscore-banner__pill{background:var(--panel-alt);border:1px solid var(--panel-border);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:baseline;gap:8px;max-width:100%;padding:7px 16px;display:inline-flex;overflow:hidden}.stage-highscore-banner__label{font-size:min(2vw, calc(var(--header-h) * .13));color:var(--text-faint);text-transform:uppercase;letter-spacing:.04em}.stage-highscore-banner__value{font-family:var(--font-display);font-weight:800;font-size:min(2.6vw, calc(var(--header-h) * .17));color:var(--accent-dark)}.stage-highscore-banner__names{font-size:min(2.2vw, calc(var(--header-h) * .15));color:var(--text-muted);text-overflow:ellipsis;overflow:hidden}.stage-top-bar{top:calc(var(--header-h) + 46px + var(--safe-top));z-index:15;padding:10px calc(12px + var(--safe-right)) 10px calc(12px + var(--safe-left));background:var(--panel);border-bottom:1px solid var(--panel-border);justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;left:0;right:0;box-shadow:0 4px 12px #0000000f}.stage-sheet{left:0;right:0;bottom:calc(var(--footer-h) + var(--safe-bottom));z-index:15;background:var(--panel);border-top:1px solid var(--panel-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;touch-action:pan-y;flex-direction:column;max-height:46%;padding:12px 14px;display:flex;position:absolute;overflow-y:auto;box-shadow:0 -6px 20px #0000001f}@media (max-height:500px){.stage-sheet{max-height:30%}}.stage-center-panel{left:0;right:0;top:calc((var(--header-h) + var(--footer-h)) / 2 + 20px + var(--safe-top));bottom:calc((var(--header-h) + var(--footer-h)) / 2 + 20px + var(--safe-bottom));z-index:15;padding:0 calc(16px + var(--safe-right)) 0 calc(16px + var(--safe-left));touch-action:pan-y;flex-direction:column;justify-content:safe center;align-items:safe center;gap:12px;display:flex;position:absolute;overflow-y:auto}.stage-sheet__title{font-family:var(--font-display);color:var(--text-muted);margin-bottom:8px;font-size:.85rem;font-weight:600}.hud-badge{pointer-events:none;top:calc(54px + var(--safe-top));right:calc(8px + var(--safe-right));z-index:20;border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:var(--panel);font-family:var(--font-display);color:var(--accent-dark);align-items:center;gap:6px;padding:8px 14px;font-size:.82rem;font-weight:600;display:flex;position:absolute;box-shadow:0 2px #0000001a}.tile-grid{grid-template-columns:repeat(var(--cols,4), 1fr);aspect-ratio:1;gap:8px;width:min(100%,480px);margin:0 auto;display:grid}.tile-grid__cell{aspect-ratio:1;border:1px solid var(--panel-border);border-radius:var(--radius-sm);background:var(--panel-alt);padding:0;position:relative;overflow:visible;box-shadow:0 2px #0000001f}.tile-grid__cell:before{content:"";position:absolute;top:-5px;bottom:-5px;left:-5px;right:-5px}.tile-grid__cell img{object-fit:cover;border-radius:inherit;width:100%;height:100%;display:block}.tile-grid__cell--found{outline:3px solid var(--success);outline-offset:-3px}.tile-grid__cell--wrong{outline:3px solid var(--danger);outline-offset:-3px}.tile-grid__cell--hidden img{visibility:hidden}.tile-grid__cell--matched{outline:3px solid var(--accent-dark);outline-offset:-3px;opacity:.55}@keyframes tileGridPenaltyFloat{0%{opacity:0;transform:translate(-50%)}15%{opacity:1}to{opacity:0;transform:translate(-50%,-22px)}}.tile-grid__penalty-badge{background:var(--danger);color:#fff;font-family:var(--font-display);pointer-events:none;border-radius:999px;padding:2px 8px;font-size:.85rem;font-weight:700;animation:.7s ease-out forwards tileGridPenaltyFloat;position:absolute;top:50%;left:50%;transform:translate(-50%)}.memory-back{background:linear-gradient(180deg, var(--primary-light), var(--primary));color:#ffffffbf;font-family:var(--font-display);justify-content:center;align-items:center;font-size:1.1rem;font-weight:800;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.memory-back:after{content:"?"}.memory-player-panel{border-radius:var(--radius-lg);border:3px solid var(--panel-border);background:var(--panel);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:14px 8px;transition:border-color .2s,box-shadow .2s;display:flex;box-shadow:0 2px #0000001a}.memory-player-panel--active{border-color:var(--accent-dark);border-width:5px;box-shadow:0 0 0 4px #ffcc3359,0 3px #00000026}.memory-player-panel__name{font-family:var(--font-display);color:var(--text);text-align:center;font-size:clamp(.294rem,1.313vw,1.68rem);font-weight:800}.memory-player-panel__score{font-family:var(--font-display);color:var(--primary);font-size:clamp(.7rem,3.125vw,4rem);font-weight:800;line-height:1}.memory-player-panel--active .memory-player-panel__score{color:var(--accent-dark)}.memory-turn-toast{top:calc(var(--header-h) + 14px + var(--safe-top));background:var(--accent);color:#2b2004;font-family:var(--font-display);opacity:0;pointer-events:none;z-index:30;white-space:nowrap;border-radius:999px;padding:8px 18px;font-size:clamp(.308rem,1.375vw,1.76rem);font-weight:800;transition:opacity .2s,transform .2s;position:absolute;left:50%;transform:translate(-50%)translateY(-8px);box-shadow:0 3px #0000002e}.memory-turn-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}.seq{touch-action:pan-y;flex-direction:column;flex:none;gap:4px;width:100%;height:clamp(240px,52vh,640px);display:flex;overflow-y:auto}.seq-row{height:var(--seq-row-height,24px);grid-template-columns:clamp(48px,9vw,84px) 1fr;align-items:stretch;gap:6px;display:grid}.seq-row__label{-webkit-appearance:none;appearance:none;border:1px solid var(--btn-border);border-radius:var(--radius-sm);background:linear-gradient(180deg, var(--btn-face-top), var(--btn-face-bottom));color:var(--text);font-family:var(--font-display);font-weight:700;font-size:var(--seq-label-font,.66rem);padding:2px 4px;line-height:1.15;overflow:hidden}.seq-row__label:active{background:linear-gradient(180deg, var(--btn-face-active-top), var(--btn-face-active-bottom))}.seq-row__cells{gap:3px;height:100%;display:grid}.seq-cell{-webkit-appearance:none;appearance:none;background:var(--panel-alt);border:none;border:1px solid var(--panel-border);border-radius:3px;width:100%;height:100%}.seq-cell--downbeat{background:#e6e8ea}.seq-cell--active{background:var(--tick-color,var(--primary-light));border-color:#0000}.seq-cell--playhead{outline:2px solid var(--accent-dark);outline-offset:1px}.seq-controls-bar{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:8px;display:flex}.seq-controls{border:1px solid var(--panel-border);border-radius:var(--radius-md);background:var(--panel-alt);justify-content:center;align-items:center;gap:clamp(4px,1.6vw,10px);padding:clamp(3px,1vw,6px) clamp(6px,2vw,12px);display:flex}.seq-controls__bpm{font-family:var(--font-display);text-align:center;min-width:clamp(22.4px,5vw,89.6px);font-size:clamp(.28rem,1.25vw,1.6rem);font-weight:700}.seq-controls__volume{max-width:200px;height:28px;accent-color:var(--primary);touch-action:pan-x;flex:1}.seq-controls-bar .btn{min-width:0;padding:clamp(6px,1.8vw,12px) clamp(10px,3vw,22px);font-size:clamp(.28rem,1.25vw,1.6rem)}.seq-controls-bar .btn--accent{min-width:clamp(49px,10.94vw,196px)}.melody-tracks{flex-direction:column;flex-shrink:0;gap:6px;width:100%;padding-top:2px;display:flex}.melody-track{border:1px solid var(--panel-border);border-radius:var(--radius-md);background:var(--panel-alt);flex-direction:column;gap:4px;padding:4px 6px;display:flex}.melody-track__header{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.melody-track__toggle{-webkit-appearance:none;appearance:none;border:1px solid var(--btn-border);border-radius:var(--radius-sm);background:linear-gradient(180deg, var(--btn-face-top), var(--btn-face-bottom));width:clamp(18px,4vw,26px);height:clamp(18px,4vw,26px);color:var(--text);flex-shrink:0;font-size:clamp(.5rem,1.6vw,.85rem);line-height:1}.melody-track__toggle:active{background:linear-gradient(180deg, var(--btn-face-active-top), var(--btn-face-active-bottom))}.melody-track__label{font-family:var(--font-display);white-space:nowrap;flex-shrink:0;font-size:clamp(.42rem,1.4vw,.8rem);font-weight:700}.melody-track__instrument{border:1px solid var(--btn-border);border-radius:var(--radius-sm);background:var(--panel);min-width:70px;color:var(--text);font-family:var(--font);flex:1;padding:clamp(2px,.6vh,5px) clamp(4px,1vw,8px);font-size:clamp(.4rem,1.3vw,.75rem)}.melody-track__clear{flex-shrink:0;min-width:0!important;padding:clamp(2px,.6vh,5px) clamp(6px,1.6vw,10px)!important;font-size:clamp(.38rem,1.15vw,.7rem)!important}.melody-preview{gap:2px;height:clamp(8px,1.6vh,14px);display:grid}.melody-preview__tick{background:var(--panel);border:1px solid var(--panel-border);border-radius:2px}.melody-preview__tick--downbeat{background:#e6e8ea}.melody-preview__tick--active{background:var(--accent);border-color:#0000}.melody-preview__tick--playhead{outline:1px solid var(--accent-dark);outline-offset:1px}.melody-roll{flex-direction:column;gap:1px;display:flex}.melody-roll__row{grid-template-columns:clamp(26px,6vw,42px) 1fr;align-items:stretch;gap:4px;height:clamp(14px,2.6vh,20px);display:grid}.melody-roll__row--black .melody-cell{background:#dfe2e5}.melody-roll__row--black .melody-cell--downbeat{background:#d3d6da}.melody-roll__label{font-family:var(--font);color:var(--text-muted);justify-content:flex-end;align-items:center;padding-right:3px;font-size:clamp(6px,1.5vh,9px);line-height:1;display:flex}.melody-roll__cells{gap:2px;height:100%;display:grid}.melody-cell{-webkit-appearance:none;appearance:none;border:1px solid var(--panel-border);background:var(--panel);border-radius:2px;width:100%;height:100%}.melody-cell--downbeat{background:#e6e8ea}.melody-cell--active{background:var(--accent);border-color:#0000}.melody-cell--playhead{outline:2px solid var(--accent-dark);outline-offset:1px}.shutter-host{left:0;right:0;bottom:calc(var(--footer-h) + 14px + var(--safe-bottom));z-index:15;justify-content:center;display:none;position:absolute}.shutter-btn{-webkit-appearance:none;appearance:none;background:linear-gradient(180deg, #ff6b57, var(--danger));color:#fff;border:6px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:clamp(56px,12.5vw,224px);height:clamp(56px,12.5vw,224px);display:flex;box-shadow:0 6px #8f1f1f,0 10px 24px #0000004d}.shutter-btn:active{transform:translateY(5px);box-shadow:0 1px #8f1f1f}.shutter-btn svg{width:43%;height:43%}.berlin-map{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-md);position:relative;overflow:hidden;box-shadow:0 2px #00000014}.berlin-map--collapsed{cursor:pointer;width:100%;height:clamp(29.4px,11.67vh,117.6px)}.berlin-map--expanded{width:100%;height:min(60vh,480px);margin-top:8px}.berlin-map-modal-panel{flex-direction:column;min-height:0;display:flex}.berlin-map-modal-panel>h2{flex-shrink:0}.berlin-map-modal-panel .berlin-map--expanded{flex:auto;height:auto;min-height:140px}.berlin-map-modal-panel .berlin-map__zoom-row,.berlin-map-modal-panel>.btn{flex-shrink:0}.berlin-map__svg{width:100%;height:100%;display:block}.berlin-map__hint{color:var(--text-faint);pointer-events:none;background:#ffffffbf;border-radius:999px;padding:1px 6px;font-size:.62rem;position:absolute;bottom:4px;right:6px}.berlin-map__boundary{fill:var(--primary);fill-opacity:.07;stroke:var(--primary);stroke-opacity:.5;stroke-width:3px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.berlin-map__dot{fill:var(--text-faint);opacity:.45}.berlin-map__marker{stroke:#fff;stroke-width:3px}.berlin-map__marker--start{fill:var(--primary)}.berlin-map__marker--target{fill:var(--accent-dark)}.berlin-map__zoom-row{justify-content:center;gap:10px;margin-top:8px;display:flex}.berlin-map__zoom-row .btn{min-width:52px;padding:8px 18px;font-size:1.2rem;line-height:1}.berlin-map__label{font-family:var(--font-display);fill:var(--text);text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:5px;font-size:26px;font-weight:800}.connection-puzzle-map-zone{left:0;right:0;top:calc(var(--header-h) + var(--safe-top));height:calc(var(--game-area-h) * .25);padding:clamp(28px, 6vh, 44px) calc(12px + var(--safe-right)) 8px calc(12px + var(--safe-left));z-index:15;align-items:center;display:flex;position:absolute}.connection-puzzle-map-zone .berlin-map--collapsed{height:100%}.connection-puzzle-start-target-zone{left:0;right:0;top:calc(var(--header-h) + var(--safe-top) + var(--game-area-h) * .25);height:calc(var(--game-area-h) * .2);padding:4px calc(16px + var(--safe-right)) 4px calc(16px + var(--safe-left));z-index:15;justify-content:center;align-items:center;display:flex;position:absolute}.connection-puzzle-connections-zone{left:0;right:0;top:calc(var(--header-h) + var(--safe-top) + var(--game-area-h) * .45);bottom:calc(var(--footer-h) + var(--safe-bottom));padding:4px calc(16px + var(--safe-right)) 4px calc(16px + var(--safe-left));touch-action:pan-y;z-index:15;flex-direction:column;justify-content:safe center;gap:clamp(6px,1.2vh,14px);display:flex;position:absolute;overflow-y:auto}.connection-puzzle-building-content{flex-direction:column;gap:clamp(6px,1.2vh,14px);width:100%;display:flex}.connection-puzzle-picker-label{font-size:clamp(.4rem,min(1.8vh,3vw),1.1rem)}.touch-test-overlay{z-index:5000;background:var(--bezel);touch-action:manipulation;position:fixed;top:0;bottom:0;left:0;right:0}.touch-test-grid{gap:2px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.touch-test-cell{-webkit-appearance:none;appearance:none;background:var(--panel-border-light);cursor:pointer;border:none;border-radius:0;padding:0}.touch-test-cell--tested{background:var(--success)}@keyframes touch-test-tap{0%{filter:brightness()}30%{filter:brightness(1.5)}to{filter:brightness()}}.touch-test-cell--tap{animation:.26s ease-out touch-test-tap}.touch-test-done{z-index:1;padding:12px 28px;font-size:1rem;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.screensaver-overlay{z-index:6000;cursor:pointer;background:#14181a;flex-direction:column;justify-content:center;align-items:center;gap:clamp(16px,3vh,36px);display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.screensaver-track{flex-shrink:0;width:100%;height:40vh;position:relative;overflow:hidden}.screensaver-train{filter:drop-shadow(0 clamp(10px,2vh,26px) clamp(16px,3vh,34px) #00000080);width:clamp(350px,78.13vw,1400px);animation:22s linear infinite screensaver-scroll;position:absolute;top:50%;left:0}.screensaver-train img{width:100%;height:auto;display:block}@keyframes screensaver-scroll{0%{transform:translate(100vw,-50%)}to{transform:translate(-100%,-50%)}}.screensaver-message{z-index:1;text-align:center;max-width:min(92vw,760px);font-family:var(--font-display);color:#fff;flex-shrink:0;padding:0 20px;font-size:clamp(.588rem,2.625vw,3.36rem);font-weight:700;position:relative}.screensaver-hint{color:#fff9;font-size:clamp(.308rem,1.375vw,1.76rem);font-weight:600;position:absolute;bottom:clamp(24px,6vh,56px);left:50%;transform:translate(-50%)}.hopper-easter-egg{z-index:1150;cursor:pointer;animation-duration:var(--hopper-duration,9s);filter:drop-shadow(0 2px 3px #00000059);background:0 0;border:none;justify-content:center;align-items:center;padding:0;animation-timing-function:linear;animation-fill-mode:forwards;display:flex;position:fixed}.hopper-easter-egg img{object-fit:contain;animation:.5s ease-in-out infinite hopper-easter-egg-bounce;display:block}.hopper-easter-egg--ltr{animation-name:hopper-easter-egg-walk-ltr;left:-60px}.hopper-easter-egg--rtl{animation-name:hopper-easter-egg-walk-rtl;right:-60px}@keyframes hopper-easter-egg-walk-ltr{0%{transform:translate(0)}to{transform:translate(calc(100vw + 120px))}}@keyframes hopper-easter-egg-walk-rtl{0%{transform:translate(0)scaleX(-1)}to{transform:translate(calc(-100vw - 120px))scaleX(-1)}}@keyframes hopper-easter-egg-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.mm-panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius-sm);font-family:var(--font-display);gap:clamp(3px,1vh,8px);padding:clamp(3px,1vh,6px) clamp(5px,1.6vw,10px);display:flex;position:absolute;box-shadow:0 2px #0000001a}.mm-panel--left-mid{flex-direction:column;gap:10px;top:50%;left:10px;transform:translateY(-50%)}.mm-panel--left-bottom{bottom:calc(var(--footer-h) + 10px + var(--safe-bottom));left:10px}.mm-panel--top-left{top:calc(var(--header-h) + 7vh);max-width:190px;padding:clamp(4px,1.2vh,8px) clamp(6px,1.9vw,12px);left:10px}.mm-sound-toggle{color:var(--text-muted);font-family:var(--font-display);white-space:normal;text-align:left;background:0 0;border:none;align-items:center;gap:clamp(3px,1vh,6px);min-width:0;padding:clamp(1px,.6vh,2px) clamp(2px,.8vw,4px);font-size:clamp(.42rem,2.4vh,.9rem);font-weight:700;display:flex}.mm-sound-toggle__icon{width:clamp(11px,2.6vh,20px);height:clamp(11px,2.6vh,20px);color:var(--text-faint);flex-shrink:0}.mm-sound-toggle__icon svg{width:100%;height:100%}.mm-sound-toggle--active{color:var(--text)}.mm-sound-toggle--active .mm-sound-toggle__icon{color:var(--primary)}.mm-panel--top-right{top:calc(var(--header-h) + 1.4vh);flex-direction:column;align-items:flex-end;gap:clamp(3px,1.2vh,8px);padding:clamp(4px,1.6vh,10px) clamp(7px,2.4vw,16px);right:10px}.mm-panel__header-row{flex-direction:row;align-items:center;gap:clamp(5px,2vw,14px);display:flex}.mm-panel__text-col{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.mm-panel__day{font-size:min(3.2vw, calc(var(--header-h) * .24));color:var(--text-muted);font-weight:600}.mm-panel__delivered{font-size:min(4.2vw, calc(var(--header-h) * .32));color:var(--text);font-weight:800;line-height:1.1}.mm-clock{flex-shrink:0;width:clamp(23.1px,5.16vw,92.4px);height:clamp(23.1px,5.16vw,92.4px);position:relative}.mm-clock__face{border:3px solid var(--panel-border);background:#fff8e0;border-radius:50%;width:100%;height:100%;transition:background .4s,border-color .4s;position:relative}.mm-clock__face--night{background:#2a3454;border-color:#1b2338}.mm-clock__hand{background:var(--text);transform-origin:50% 100%;border-radius:1px;width:5%;height:34%;margin-top:-34%;margin-left:-2.5%;position:absolute;top:50%;left:50%}.mm-clock__face--night .mm-clock__hand{background:#e3e9f7}.mm-clock__badge{background:var(--panel);width:45%;height:45%;color:var(--accent-dark);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:-10%;right:-10%;box-shadow:0 1px 2px #00000040}.mm-clock__badge svg{width:100%;height:100%}.mm-speed-row{gap:6px;display:flex}.mm-speed-btn{border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:var(--panel);width:clamp(14.7px,3.28vw,58.8px);height:clamp(14.7px,3.28vw,58.8px);color:var(--text-muted);justify-content:center;align-items:center;display:flex;box-shadow:0 2px #0000001a}.mm-speed-btn svg{width:55%;height:55%}.mm-speed-btn--active{background:var(--primary);border-color:var(--primary);color:#fff}.mm-depot-group{flex-direction:column;align-items:center;gap:6px;display:flex}.mm-depot-group:empty{display:none}.mm-depot-group .mm-depot-item{cursor:grab;touch-action:none;position:static}.mm-resource-drag-ghost{filter:drop-shadow(0 4px 8px #00000059);opacity:.9;pointer-events:none;z-index:2000;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.mm-depot-hint{background:var(--accent);color:#2b2004;border-radius:var(--radius-sm);max-width:200px;font-family:var(--font-display);z-index:60;pointer-events:auto;padding:10px 12px;position:absolute;top:50%;left:78px;transform:translateY(-50%);box-shadow:0 3px #00000026}.mm-depot-hint:before{content:"";border:9px solid #0000;border-right-color:var(--accent);position:absolute;top:50%;left:-9px;transform:translateY(-50%)}.mm-depot-hint p{margin:0 0 8px;font-size:.82rem;font-weight:700;line-height:1.3}.mm-depot-hint__btn{width:100%;color:var(--accent);background:#2b2004;border-color:#2b2004;justify-content:center}.mm-line-column{flex-direction:column;gap:10px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.mm-line-circle{background:var(--mm-line-color,var(--primary));color:#fff;border:2px solid #00000040;border-radius:50%;width:clamp(14.7px,3.28vw,58.8px);height:clamp(14.7px,3.28vw,58.8px);font-size:.75rem;font-weight:800;box-shadow:0 2px #0003}.mm-line-circle--empty{background:var(--panel);border-style:dashed;border-color:var(--mm-line-color,var(--btn-border));box-shadow:none}.mm-line-circle--armed{background:var(--danger);border-color:var(--danger)}.mm-week-modal{border-radius:var(--radius-lg);color:#eaf2fb;text-align:center;background:linear-gradient(165deg,#0c3a63,#082948);border:none;padding-top:6px}.mm-week-modal__badge{color:#fc3;background:#ffffff1f;border:2px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:clamp(21px,4.69vw,84px);height:clamp(21px,4.69vw,84px);margin:0 auto 6px;display:flex}.mm-week-modal__badge svg{width:55%;height:55%}.mm-week-modal .mm-week-modal__title{font-family:var(--font-display);color:#fc3;margin:0 0 6px;font-size:1.5rem;font-weight:800}.mm-week-modal .mm-week-modal__text{color:#c9d9ea;margin:0 0 10px;font-size:.95rem;line-height:1.4}.mm-week-modal .mm-week-modal__grant{color:#8be29a;font-family:var(--font-display);background:#6fc67829;border:1px solid #6fc6788c;border-radius:999px;align-items:center;gap:8px;margin:0 auto 14px;padding:6px 16px;font-size:.85rem;font-weight:700;display:inline-flex}.mm-week-modal .mm-week-modal__grant svg{flex-shrink:0;width:18px;height:18px}.mm-week-modal__row{gap:12px;display:flex}.mm-week-modal__btn{border-radius:var(--radius-md);color:#eaf2fb;font-family:var(--font-display);background:#ffffff14;border:1px solid #ffffff40;flex-direction:column;flex:1;align-items:center;gap:8px;padding:16px 10px;font-size:.95rem;font-weight:700;display:flex}.mm-week-modal__btn svg{color:#6fc6ff;width:clamp(11.9px,2.66vw,47.6px);height:clamp(11.9px,2.66vw,47.6px)}.mm-week-modal__btn:active{background:#ffffff2e}.mm-week-modal__btn:disabled{opacity:.4}.hs-cabinet{left:10px;right:10px;top:calc(var(--header-h) + 10px + var(--safe-top));bottom:calc(var(--footer-h) + 10px + var(--safe-bottom));z-index:15;border-radius:var(--radius-lg);touch-action:pan-y;background:linear-gradient(165deg,#4a4d55,#24262b);border:3px solid #17181b;flex-direction:column;justify-content:space-evenly;align-items:center;padding:clamp(4px,1.6vh,26px) clamp(12px,3vw,32px);transition:box-shadow .3s;display:flex;position:absolute;overflow:hidden auto;box-shadow:0 8px #00000059,inset 0 2px #ffffff14}.hs-cabinet--win-glow{box-shadow:0 8px #00000059,0 0 26px 6px #ffcc33bf,inset 0 2px #ffffff14}.hs-marquee{border-radius:calc(var(--radius-lg) - 4px) calc(var(--radius-lg) - 4px) 0 0;background:linear-gradient(#7a1010,#4a0a0a);border-bottom:2px solid #2a0606;flex-direction:column;align-items:center;gap:4px;width:100%;padding:clamp(2px,.8vh,10px) 6px clamp(1px,.4vh,4px);display:flex}.hs-marquee__lights{justify-content:space-between;width:100%;padding:0 4px;display:flex}.hs-marquee__lights span{background:#fc3;border-radius:50%;width:clamp(2.4px,.55vw,9.8px);height:clamp(2.4px,.55vw,9.8px);animation:1.6s ease-in-out infinite hsMarqueeTwinkle;box-shadow:0 0 4px 1px #ffcc33e6}.hs-marquee__lights span:nth-child(odd){animation-delay:.4s}.hs-marquee__lights span:nth-child(3n){animation-delay:.8s}@keyframes hsMarqueeTwinkle{0%,to{opacity:1}50%{opacity:.35}}.hs-marquee__title{font-family:var(--font-display);letter-spacing:.04em;color:#fc3;text-shadow:0 0 8px #fc39,0 2px #0006;font-size:clamp(.3rem,2.5vw,3.2rem);font-weight:800}.hs-reels-frame{justify-content:center;width:100%;display:flex;position:relative}.hs-reels{background:linear-gradient(180deg, var(--btn-face-top), var(--btn-face-bottom));border:clamp(3px, .6vw, 6px) solid var(--text);border-radius:var(--radius-lg);gap:clamp(8px,1.8vw,18px);padding:clamp(3px,2vh,18px);display:flex;box-shadow:0 4px #00000040,inset 0 2px 6px #00000026}.hs-reel-window{background:var(--panel);border:2px solid var(--panel-border-light);border-radius:var(--radius-sm);width:clamp(34px,min(15vw,30vh),320px);height:clamp(34px,min(15vw,30vh),320px);position:relative;overflow:hidden}.hs-reel-window:after{content:"";pointer-events:none;background:linear-gradient(115deg,#ffffff8c 0%,#fff0 22% 78%,#ffffff40 100%);position:absolute;top:0;bottom:0;left:0;right:0}.hs-reel-strip{will-change:transform;flex-direction:column;display:flex}.hs-symbol{object-fit:contain;flex-shrink:0;width:clamp(34px,min(15vw,30vh),320px);height:clamp(34px,min(15vw,30vh),320px);display:block}.hs-payline{pointer-events:none;background:#d6242c8c;height:2px;position:absolute;top:50%;left:calc(clamp(3px,.6vw,6px) + clamp(10px,2vh,18px));right:calc(clamp(3px,.6vw,6px) + clamp(10px,2vh,18px));transform:translateY(-50%);box-shadow:0 0 4px #d6242c99}.hs-paytable{border-radius:var(--radius-md);background:#00000047;border:1px solid #ffcc3340;flex-wrap:wrap;justify-content:center;gap:clamp(4px,1vh,8px) clamp(6px,1.4vw,14px);width:100%;padding:clamp(2px,1.6vh,14px) clamp(8px,1.6vw,16px);display:flex}.hs-paytable__item{background:#0000004d;border-radius:999px;align-items:center;gap:clamp(3px,.6vw,6px);padding:clamp(2px,.6vh,5px) clamp(8px,1.4vw,14px) clamp(2px,.6vh,5px) clamp(3px,.6vw,5px);display:flex}.hs-paytable__item img{object-fit:contain;width:clamp(14px,3.13vw,56px);height:clamp(14px,3.13vw,56px)}.hs-paytable__item span{font-family:var(--font-display);color:#f4d9a0;font-size:clamp(.294rem,1.313vw,1.68rem);font-weight:700}.hs-panel{justify-content:center;gap:clamp(10px,2.4vw,22px);width:100%;display:flex}.hs-readout{text-align:center;max-width:260px;font-family:var(--font-display);color:#fc3;border-radius:var(--radius-sm);text-shadow:0 0 6px #ffcc338c;background:#1a1c1f;border:2px solid #050505;flex:1;padding:clamp(2px,1.2vh,14px) 10px;font-size:clamp(.28rem,3.6vh,3.2rem);font-weight:800;box-shadow:inset 0 2px 4px #0009}.hs-message{min-height:1.6em;font-family:var(--font-display);color:#e8e6e0;text-align:center;font-size:clamp(.3rem,4vh,3.52rem);font-weight:800}.hs-message--win{color:#6fe28a}.hs-spin-btn{font-family:var(--font-display);border:2px solid var(--danger);background:linear-gradient(180deg, #e04b4b, var(--danger));color:#fff;border-radius:999px;padding:clamp(2px,2vh,26px) clamp(20px,7vw,76px);font-size:clamp(.3rem,4vh,3.36rem);font-weight:800;box-shadow:0 4px #8f1c1c}.hs-spin-btn:active{transform:translateY(2px);box-shadow:0 2px #8f1c1c}.hs-spin-btn:disabled{opacity:.5;box-shadow:none}.hs-invest{justify-content:flex-start}.hs-invest__header{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.hs-invest__header .hs-marquee__title{font-size:clamp(.3rem,2vw,2.6rem)}.hs-invest__remaining{max-width:320px;font-size:clamp(.3rem,2.8vh,2.6rem)}.hs-invest__list{flex-direction:column;flex:1;justify-content:safe center;gap:clamp(2px,.8vh,12px);width:84%;min-height:0;display:flex;overflow-y:auto}.hs-invest__row{border-radius:var(--radius-md);background:#00000047;border:1px solid #ffcc3340;justify-content:space-between;align-items:center;gap:clamp(10px,2vw,20px);padding:clamp(3px,1.4vh,16px) clamp(14px,2.4vw,24px);display:flex}.hs-invest__info{flex-direction:row;flex:1;align-items:baseline;gap:clamp(8px,1.6vw,18px);min-width:0;display:flex}.hs-invest__label{font-family:var(--font-display);color:#fc3;white-space:nowrap;font-size:clamp(.3rem,2.8vh,2.6rem);font-weight:800}.hs-invest__effect{color:#d8d5cd;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:clamp(.2rem,1.7vh,1.6rem);overflow:hidden}.hs-invest__spent{font-family:var(--font-display);color:#fc3;text-align:right;white-space:nowrap;flex-shrink:0;font-size:clamp(.18rem,1.5vh,1.4rem);font-weight:700}.hs-invest__controls{flex-shrink:0;gap:clamp(4px,1vw,8px);display:flex}.hs-invest__btn{font-family:var(--font-display);border-radius:var(--radius-sm);background:linear-gradient(180deg, var(--btn-face-top), var(--btn-face-bottom));width:clamp(12px,3.1vw,56px);height:clamp(12px,4.3vh,56px);color:var(--text);border:2px solid #050505;font-size:clamp(.17rem,1.4vh,1.3rem);font-weight:800;box-shadow:0 2px #0000004d}.hs-invest__btn:active{box-shadow:none;transform:translateY(1px)}.hs-invest__btn:disabled{opacity:.35;box-shadow:none}.setlist-layout{flex-direction:row;flex:1;gap:12px;width:100%;min-height:0;display:flex}.setlist-sidebar{background:var(--panel-alt);border:1px solid var(--panel-border);border-radius:var(--radius-md);touch-action:pan-y;flex-direction:column;flex:none;gap:8px;width:clamp(150px,19vw,240px);height:100%;padding:10px;display:flex;overflow-y:auto}.setlist-sidebar.setlist-drop-hover{outline:3px solid var(--accent);outline-offset:-3px}.setlist-sidebar__title{font-family:var(--font-display);color:var(--text);font-size:.95rem;font-weight:800}.setlist-sidebar__hint{color:var(--text-muted);margin:-4px 0 2px;font-size:.7rem}.setlist-sidebar__chips{flex-direction:column;gap:6px;min-height:30px;display:flex}.setlist-sidebar__progress{color:var(--text-muted);text-align:center;font-size:.75rem}.setlist-result{text-align:center;min-height:1.4em;font-size:.78rem;font-weight:600}.setlist-result--win{color:var(--success)}.setlist-result--fail{color:var(--danger)}.setlist-chip{box-sizing:border-box;background:linear-gradient(180deg, var(--btn-face-top), var(--btn-face-bottom));border:1px solid var(--btn-border);border-radius:var(--radius-sm);width:100%;font-family:var(--font-display);color:var(--text);text-align:center;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;padding:7px 8px;font-size:.78rem;font-weight:700;box-shadow:0 2px #0000001a}.setlist-chip--ghost{z-index:3000;pointer-events:none;opacity:.95;position:fixed;transform:scale(1.05);box-shadow:0 8px 18px #00000059}.setlist-chip--dragged-source{opacity:.25}.setlist-schedule{touch-action:pan-y;flex-direction:column;flex:1;gap:12px;min-height:0;padding:2px 4px 12px 0;display:flex;overflow-y:auto}.setlist-stage{border:1px solid var(--panel-border);border-radius:var(--radius-md);background:var(--panel)}.setlist-stage__title{font-family:var(--font-display);color:#fff;background:var(--primary);border-radius:var(--radius-md) var(--radius-md) 0 0;padding:8px 14px;font-size:1rem;font-weight:800}.setlist-stage__days{flex-flow:wrap;display:flex}.setlist-day-column{border-right:1px solid var(--panel-border);border-bottom:1px solid var(--panel-border);flex-direction:column;flex:200px;min-width:190px;display:flex}.setlist-day-column:last-child{border-right:none}.setlist-day-column__title{text-align:center;font-family:var(--font-display);background:var(--panel-alt);border-bottom:1px solid var(--panel-border);color:var(--text-muted);padding:6px;font-size:.78rem;font-weight:700}.setlist-act-row{border-top:1px solid var(--panel-border);flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;font-size:.74rem;display:flex}.setlist-act-row:first-of-type{border-top:none}.setlist-act-row--special{background:#ffcc332e;font-style:italic}.setlist-act-row__time{font-variant-numeric:tabular-nums;min-width:62px;color:var(--text-muted);flex-shrink:0;font-size:.68rem}.setlist-act-row__name{min-width:0;color:var(--text-muted);flex:1;font-weight:600}.setlist-slot{border:2px dashed var(--panel-border-light);border-radius:var(--radius-sm);background:var(--panel-alt);min-width:0;min-height:24px;color:var(--text-faint);flex:1;justify-content:center;align-items:center;padding:2px;font-weight:700;display:flex}.setlist-slot--fixed{color:var(--text);background:0 0;border:none;justify-content:flex-start;padding:0;font-weight:600}.setlist-slot--filled{border-style:solid;border-color:var(--panel-border);background:0 0}.setlist-slot--correct{border-color:var(--success);background:#1f8a4c24}.setlist-slot--wrong{border-color:var(--danger);background:#c6282824}.setlist-slot.setlist-drop-hover{outline:3px solid var(--accent);outline-offset:1px}.setlist-slot__hint{font-size:.85rem}.setlist-slot__solution:not(:empty){color:var(--danger);flex-basis:100%;padding-left:68px;font-size:.66rem;font-style:italic}
