*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #e8e8e0;--bg: #0a0a0a;--accent: #4cff91;--amber: #ffcc44;--blue-blob: #66aaff;--red-blob: #ff6655;--plate-bg: rgba(12, 12, 12, .85);--plate-shadow: 0 8px 32px rgba(0,0,0,.7), 0 0 0 1px rgba(232,232,224,.08);--radius: 10px;--font: "Courier New", Courier, monospace}html,body{width:100%;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font);overflow:hidden;touch-action:none}#game-root{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden}#maze-viewport{position:absolute;inset:0;overflow:hidden;cursor:default}#maze-transform{position:absolute;top:0;left:0;transform-origin:0 0}#maze-transform.cam-moving{visibility:hidden}#maze-transform svg{display:block}#maze-transform.tex-mode>svg{visibility:hidden}#maze-transform.tex-mode{visibility:visible}body.tex-mode #maze-canvas{display:none}#maze-texture{position:absolute;top:0;left:0;pointer-events:none;filter:invert(1) url(#daedalus-tex-alpha);will-change:filter,transform}#maze-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#vignette{position:absolute;inset:0;background:radial-gradient(ellipse 75% 75% at 50% 50%,transparent 32%,rgba(6,6,8,.72) 100%);pointer-events:none}#trail-canvas,#player-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#fx-bloom{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}#fx-bloom[hidden]{display:none}#fx-motion{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#fx-motion[hidden]{display:none}#game-root.ui-hidden #hud,#game-root.ui-hidden #game-buttons,#game-root.ui-hidden #btn-mute,#game-root.ui-hidden #plate-level{opacity:0;pointer-events:none;transition:none}#btn-mute{top:calc(18px + env(safe-area-inset-top));left:calc(18px + env(safe-area-inset-left));right:auto;bottom:auto;transform:none;padding:9px;color:var(--ink);border:none;cursor:pointer;opacity:.7;line-height:0;outline:none;-webkit-tap-highlight-color:transparent}#btn-mute:hover{opacity:1}#btn-mute.muted{color:var(--amber);opacity:.9}#hud{position:absolute;top:calc(18px + env(safe-area-inset-top));left:50%;transform:translate(-50%);pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:8px}#timer-plate{background:#0c0c0c99;backdrop-filter:blur(6px);border-radius:8px;padding:6px 16px;box-shadow:0 2px 12px #00000080,0 0 0 1px #e8e8e00f}#name-plate{background:#0c0c0c99;backdrop-filter:blur(6px);border-radius:8px;padding:4px 12px;font-size:.8rem;letter-spacing:.1em;opacity:.85;text-align:center;max-width:min(60vw,280px);line-height:1.35;box-shadow:0 2px 12px #0006,0 0 0 1px #e8e8e00d;position:static}#name-plate #level-name{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}#timer{font-size:1.4rem;letter-spacing:.12em;color:var(--ink);opacity:.92;text-shadow:0 0 12px rgba(232,232,224,.3)}.plate{position:absolute;background:var(--plate-bg);box-shadow:var(--plate-shadow);border-radius:var(--radius);padding:14px 20px;display:flex;align-items:center;gap:12px;backdrop-filter:blur(8px);transition:opacity .4s ease,transform .4s ease}.plate.hidden{opacity:0!important;pointer-events:none}#plate-level{top:calc(18px + env(safe-area-inset-top));right:calc(18px + env(safe-area-inset-right));bottom:auto;left:auto;transform:none;font-size:.88rem;letter-spacing:.1em;padding:6px 10px;gap:0;cursor:pointer}#btn-menu{border:none;padding:2px 4px;font-size:1rem;opacity:.7;background:none}#btn-menu:hover{opacity:1;background:none;border:none}#game-buttons{position:absolute;bottom:calc(36px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;gap:18px;align-items:center;opacity:.75;transition:opacity .5s ease;pointer-events:auto;z-index:10}#game-buttons.idle{opacity:1}#btn-switch,#btn-rewind{width:54px;height:54px;border-radius:50%;padding:0;font-size:1.25rem;display:flex;align-items:center;justify-content:center;background:#0a0a0a8c;backdrop-filter:blur(10px);border:1px solid rgba(232,232,224,.2);transition:color .3s ease;outline:none;-webkit-tap-highlight-color:transparent;overflow:hidden}#btn-switch.active-blue{color:var(--blue-blob)}#btn-switch.active-red{color:var(--red-blob)}@keyframes switch-pulse-hint-blue{0%,to{color:#66aaff8c;border-color:#66aaff40;box-shadow:0 0 8px 2px #66aaff1f}50%{color:#b4dcfff2;border-color:#66aaffa6;box-shadow:0 0 22px 8px #66aaff73,0 0 44px 16px #66aaff2e}}@keyframes switch-pulse-hint-red{0%,to{color:#ff66558c;border-color:#ff665540;box-shadow:0 0 8px 2px #ff66551f}50%{color:#ffb9aff2;border-color:#ff6655a6;box-shadow:0 0 22px 8px #ff665573,0 0 44px 16px #ff66552e}}#btn-switch.switch-pulse-hint-blue{animation:switch-pulse-hint-blue 1.6s ease-in-out infinite}#btn-switch.switch-pulse-hint-red{animation:switch-pulse-hint-red 1.6s ease-in-out infinite}@keyframes switch-underglow-blue{0%{color:#fff;border-color:#ffffffe6;background:#66aaff38;box-shadow:0 0 #66aaffe6,0 0 55px 18px #66aaffa6}25%{box-shadow:0 0 0 14px #66aaff24,0 0 80px 30px #66aaff73}65%{color:var(--blue-blob);box-shadow:0 0 0 5px #66aaff0f,0 0 40px 10px #66aaff2e}to{color:var(--blue-blob);border-color:#e8e8e033;background:#0a0a0a8c;box-shadow:none}}@keyframes switch-underglow-red{0%{color:#fff;border-color:#ffffffe6;background:#ff665538;box-shadow:0 0 #ff6655e6,0 0 55px 18px #ff6655a6}25%{box-shadow:0 0 0 14px #ff665524,0 0 80px 30px #ff665573}65%{color:var(--red-blob);box-shadow:0 0 0 5px #ff66550f,0 0 40px 10px #ff66552e}to{color:var(--red-blob);border-color:#e8e8e033;background:#0a0a0a8c;box-shadow:none}}#btn-switch.switch-underglow-blue{animation:switch-underglow-blue .75s ease-out forwards}#btn-switch.switch-underglow-red{animation:switch-underglow-red .75s ease-out forwards}@keyframes rewind-active{0%{color:#fff;text-shadow:0 0 26px rgba(255,255,255,1),0 0 48px rgba(255,200,80,.85);border-color:#fffc;background:#ffcc442e}20%{color:var(--amber);text-shadow:0 0 18px rgba(255,204,68,1),0 0 34px rgba(255,200,80,.7);border-color:#ffcc44a6;background:#ffcc441a}34%{color:#fffde0;text-shadow:0 0 22px rgba(255,253,200,.9),0 0 40px rgba(255,204,68,.6);border-color:#ffe6648c;background:#ffcc4421}62%{color:var(--amber);text-shadow:0 0 10px rgba(255,204,68,.65);border-color:#ffcc4459;background:#ffcc440d}to{color:var(--amber);text-shadow:0 0 5px rgba(255,204,68,.28);border-color:#ffcc442e;background:transparent}}#btn-rewind.rewinding{animation:rewind-active 1s ease-out forwards}#btn-rewind[hidden]{display:none}#timer.rewind{color:var(--red-blob);text-shadow:0 0 14px rgba(255,102,85,.8)}button{background:none;border:1px solid rgba(232,232,224,.2);color:var(--ink);font-family:var(--font);font-size:1rem;padding:6px 12px;border-radius:6px;cursor:pointer;transition:border-color .2s,background .2s}button:hover{border-color:#e8e8e080;background:#e8e8e012}#menu-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#060606b8;backdrop-filter:blur(6px);z-index:100;transition:opacity .25s ease}#menu-overlay.hidden{opacity:0;pointer-events:none}#menu-panel{background:#0e0e0ef5;border:1px solid rgba(232,232,224,.1);border-radius:14px;box-shadow:0 16px 64px #000c;width:min(480px,92vw);max-height:calc(82vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(82dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;padding:0 0 24px;scrollbar-width:thin;scrollbar-color:rgba(232,232,224,.22) transparent}#menu-panel::-webkit-scrollbar{width:10px}#menu-panel::-webkit-scrollbar-track{background:transparent}#menu-panel::-webkit-scrollbar-thumb{background:#e8e8e02e;border-radius:8px;border:2px solid transparent;background-clip:padding-box}#menu-panel::-webkit-scrollbar-thumb:hover{background:#e8e8e052;background-clip:padding-box}#menu-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid rgba(232,232,224,.08);position:sticky;top:0;background:#0e0e0efa;border-radius:14px 14px 0 0;z-index:1}.menu-title{font-size:1.1rem;letter-spacing:.18em;opacity:.9}.menu-title .logo-mark{margin-right:12px}.menu-version{font-size:.7rem;letter-spacing:.1em;opacity:.4;vertical-align:middle}#btn-menu-close{padding:4px 8px;opacity:.6}#btn-menu-close:hover{opacity:1}.menu-section{padding:20px 24px 0}.menu-section+.menu-section{border-top:1px solid rgba(232,232,224,.07);margin-top:16px}.menu-section h3{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:.45;margin-bottom:14px;font-weight:400}#maze-list{display:flex;flex-direction:row;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;padding:2px 8px 12px;margin:0 -8px;scrollbar-width:none;cursor:grab;user-select:none}#maze-list:active{cursor:grabbing}#maze-list::-webkit-scrollbar{display:none}#maze-list.text-selecting{overflow-x:hidden}.maze-card{flex:0 0 86%;max-width:360px;scroll-snap-align:center;display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid rgba(232,232,224,.12);border-radius:10px;background:#e8e8e006;transition:border-color .15s,opacity .15s}.maze-card.active-maze{border-color:#e8e8e052;background:#e8e8e00d}.maze-card.maze-disabled{opacity:.45}.maze-card-preview{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:6px;overflow:hidden;background:#0a0a0a;border:1px solid rgba(232,232,224,.08)}.maze-card-preview img{width:100%;height:100%;object-fit:contain;display:block;-webkit-user-drag:none;user-drag:none}.maze-card-tag{position:absolute;bottom:6px;right:8px;font-size:.78rem;letter-spacing:.08em;opacity:.85;background:#0a0a0ab3;padding:2px 7px;border-radius:3px}.maze-card-check{position:absolute;top:6px;left:8px;color:var(--accent);font-size:1rem;text-shadow:0 1px 3px rgba(0,0,0,.7)}.maze-card-title{font-size:1.05rem;letter-spacing:.08em;text-align:center}.maze-beta{display:inline-block;margin-left:7px;font-size:.65rem;letter-spacing:.1em;color:var(--amber);opacity:.75;vertical-align:middle;position:relative;top:-1px}.maze-difficulty{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:-2px;color:#e8e8e0a6}.diff-circle{width:10px;height:10px;border:1.5px solid currentColor;border-radius:50%;box-sizing:border-box;background:transparent}.diff-circle.full{background:currentColor}.diff-circle.half{background:linear-gradient(to right,currentColor 50%,transparent 50%)}.best-run-name{background:#e8e8e00f;border:1px solid rgba(232,232,224,.14);border-radius:4px;color:var(--ink);font-family:var(--font);font-size:.82rem;padding:5px 8px;outline:none;box-sizing:border-box;width:100%}.best-run-name:focus{border-color:#e8e8e059}.best-run-name::placeholder{opacity:.35}.maze-img-actions{display:flex;gap:6px}.maze-img-actions button{flex:1;font-size:.78rem;padding:5px 6px;letter-spacing:.04em;opacity:.7}.maze-img-actions button:hover{opacity:1}.maze-main-actions{display:flex;gap:8px}.maze-action-primary{flex:2;padding:8px 12px;font-size:.88rem;letter-spacing:.08em;border-color:#e8e8e059}.maze-action-primary:hover{border-color:#e8e8e0b3;background:#e8e8e014}.maze-action-secondary{flex:1;padding:8px 12px;font-size:.88rem;opacity:.55}.maze-action-secondary:hover{opacity:1}.menu-body{font-size:1rem;font-weight:700;font-style:italic;line-height:1.75;letter-spacing:.08em;text-align:center;opacity:.88;margin-bottom:14px;text-shadow:0 0 18px rgba(232,232,224,.18)}.blob-blue{color:var(--blue-blob)}.blob-red{color:var(--red-blob)}.controls-table{display:flex;flex-direction:column;gap:6px}.ctrl-row{display:flex;justify-content:space-between;font-size:.85rem;padding:5px 0;border-bottom:1px solid rgba(232,232,224,.06);opacity:.65;letter-spacing:.05em}.ctrl-row span:last-child{opacity:.78;text-align:right}.ctrl-group{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;font-weight:400;opacity:.5;margin:20px 0 8px;padding-bottom:6px;border-bottom:1px solid rgba(232,232,224,.12)}.ctrl-group:first-of-type{margin-top:10px}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;cursor:pointer;font-size:.92rem;opacity:.8;border-bottom:1px solid rgba(232,232,224,.06);gap:16px}.toggle-row:last-child{border-bottom:none}.slider-row input[type=range]{width:140px;height:4px;appearance:none;-webkit-appearance:none;background:#e8e8e02e;border-radius:2px;outline:none;cursor:pointer}.slider-row input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--ink);border:none;box-shadow:0 0 8px #e8e8e066}.slider-row input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--ink);border:none}.toggle-row input[type=checkbox]{width:36px;height:20px;appearance:none;-webkit-appearance:none;background:#e8e8e026;border-radius:10px;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0;border:none;padding:0}.toggle-row input[type=checkbox]:after{content:"";position:absolute;width:14px;height:14px;background:var(--ink);border-radius:50%;top:3px;left:3px;transition:transform .2s,background .2s}.toggle-row input[type=checkbox]:checked{background:var(--accent)}.toggle-row input[type=checkbox]:checked:after{transform:translate(16px);background:var(--bg)}#win-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0a0a99;backdrop-filter:blur(4px);transition:opacity .5s;z-index:50}#win-overlay.hidden{opacity:0;pointer-events:none}.win-plate{position:static;flex-direction:column;text-align:center;gap:16px;padding:32px 48px;max-height:calc(100dvh - 32px);overflow-y:auto}.win-plate h2{font-size:1.6rem;letter-spacing:.15em;font-weight:400}.win-plate p{font-size:1.1rem;color:var(--amber)}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1rem;letter-spacing:.15em;opacity:.5;transition:opacity .6s;z-index:200}#loading.done{opacity:0;pointer-events:none}.win-preview{width:100%;max-height:min(38vh,55vw);object-fit:contain;display:block;border-radius:6px;border:1px solid rgba(232,232,224,.12);opacity:0;transition:opacity .5s ease}.win-preview.loaded{opacity:1}#player-name{background:#e8e8e00f;border:1px solid rgba(232,232,224,.18);border-radius:6px;color:var(--ink);font-family:var(--font);font-size:1rem;letter-spacing:.08em;padding:8px 14px;width:100%;outline:none;text-align:center}#player-name:focus{border-color:#e8e8e073}#player-name::placeholder{opacity:.35}.win-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.win-actions button{flex:1;min-width:100px}@keyframes pulse-glow{0%,to{opacity:.7}50%{opacity:1}}#timer.intro{animation:pulse-glow 1.5s ease-in-out infinite}.logo-mark{vertical-align:middle;flex-shrink:0}.logo-mark-win{margin-bottom:4px}#best-time{font-size:.72rem;letter-spacing:.1em;color:var(--ink);opacity:.38;text-align:center;margin-top:2px;min-height:1em}#new-best-badge{font-size:.78rem;letter-spacing:.18em;color:var(--amber);text-shadow:0 0 12px rgba(255,204,68,.7);text-transform:uppercase}#new-best-badge.hidden{display:none}.user-group{margin-bottom:4px}.user-group-header{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.45;padding:12px 2px 6px}body.gamepad-mode .gp-focus{outline:3px solid #ffcf5a!important;outline-offset:3px;box-shadow:0 0 0 3px #ffcf5a38,0 0 16px #ffcf5a73!important;border-radius:8px;position:relative;z-index:3}#osk{position:absolute;left:50%;bottom:18px;transform:translate(-50%);z-index:110;display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:10px;background:#121216f5;border:1px solid #444;box-shadow:0 8px 30px #0009}#osk.hidden{display:none}.osk-row{display:flex;gap:6px;justify-content:center}.osk-key{min-width:34px;height:42px;padding:0 10px;background:#2a2a2a;color:#e8e8e0;border:1px solid #444;border-radius:6px;font-family:inherit;font-size:15px;cursor:pointer}.osk-key.osk-wide{min-width:96px}.osk-key:hover{background:#3a3a3a}.osk-key.osk-active{background:#ffcf5a;color:#111;border-color:#ffcf5a;box-shadow:0 0 12px #ffcf5a8c}
