:root{color-scheme:light;font-family:Arial Rounded MT Bold,Trebuchet MS,system-ui,sans-serif;background:#172537;--ink: #25313b;--panel: rgba(255, 249, 221, .94);--panel-stroke: #6b4d21;--pop-red: #e63552;--zap-blue: #00cfff;--sun: #ffd85c}*{box-sizing:border-box}html,body{width:100%;min-height:100%}body{margin:0;min-width:320px;background:radial-gradient(circle at 18% 12%,rgba(102,180,255,.18),transparent 34%),linear-gradient(135deg,#1b3150,#102131 58%,#291f3a)}body.route-studio{overflow:hidden;color:#e8eaee;background:#05060a;font-family:Oxanium,Bahnschrift,Trebuchet MS,system-ui,sans-serif}body.route-game{display:grid;place-items:center;height:100%;overflow:hidden}#app{width:100%;min-height:100vh}body.route-game #app{display:grid;width:100%;height:100%;min-height:100%;place-items:center}button{font:inherit}.vault-stage{position:relative;width:100vw;height:100vh;height:100dvh;overflow:hidden}.vault-canvas,.vault-canvas canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.vault-canvas{transition:opacity 1.2s ease}.vault-canvas.canvas-fading{opacity:0;pointer-events:none}.boot-gate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;background:#030404;transition:opacity .6s ease}.boot-gate.boot-fading{opacity:0;pointer-events:none}.boot-gate.hidden,.vault-panel.hidden,.profile-overlay.hidden,.hub-toast.hidden,.boot-init.hidden{display:none}.boot-terminal{width:min(92vw,640px);padding:clamp(20px,4vw,40px);border:1px solid rgba(255,176,58,.34);border-radius:10px;background:linear-gradient(rgba(255,176,58,.045) 50%,transparent 50%) 0 0 / 100% 4px,#0c0903eb;box-shadow:0 0 60px #ff991f1f,inset 0 0 42px #000000a6}.boot-terminal pre{min-height:7.2em;margin:0;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:clamp(13px,1.9vw,17px);line-height:1.8;color:#ffb03a;text-shadow:0 0 9px rgba(255,176,58,.55);white-space:pre-wrap}.boot-init{margin-top:18px;padding:13px 34px;border:1px solid #ffb03a;border-radius:6px;background:#ffb03a1a;color:#ffb03a;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:15px;letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;cursor:pointer;animation:boot-blink 1.2s steps(2) infinite}.boot-init:hover,.boot-init:focus-visible{background:#ffb03a;color:#1a1206;animation:none;outline:none}.vault-panel{position:absolute;right:clamp(14px,4vw,58px);bottom:clamp(16px,6vh,64px);z-index:20;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 20px 18px;border:1px solid #3a3e46;border-radius:12px;background:linear-gradient(180deg,#23262c,#141519 78%);box-shadow:0 18px 40px #0000008c,inset 0 1px #ffffff12}.panel-label{display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:.32em;text-indent:.32em;text-transform:uppercase;color:#9aa0ab}.panel-lamp{width:10px;height:10px;border-radius:50%;background:#f5a623;box-shadow:0 0 10px #f5a623cc;animation:lamp-pulse 2.2s ease-in-out infinite}.panel-lamp.lamp-alarm{animation:lamp-alarm .42s steps(2) infinite}.open-vault{min-width:188px;padding:15px 30px;border:0;border-radius:8px;background:linear-gradient(180deg,#ffc14d,#f08c12);color:#2a1a02;font-family:inherit;font-size:16px;font-weight:800;letter-spacing:.18em;text-indent:.18em;text-transform:uppercase;cursor:pointer;box-shadow:0 5px #8f5d0c,0 12px 26px #00000080;transition:transform 90ms ease,box-shadow 90ms ease,filter .15s ease}.open-vault:hover:not(:disabled){filter:brightness(1.08)}.open-vault:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px #8f5d0c,0 6px 14px #00000080}.open-vault:disabled{cursor:default;filter:saturate(.4) brightness(.75)}.panel-hint{margin:0;font-size:11px;letter-spacing:.14em;color:#6c727d;text-transform:uppercase}.vault-stage.door-opening .vault-panel{animation:panel-out .7s ease 5.7s forwards}@keyframes panel-out{to{opacity:0;transform:translateY(18px)}}.hub{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;padding:clamp(14px,3vh,30px) clamp(16px,4vw,54px);background:radial-gradient(110% 90% at 50% -14%,rgba(34,70,120,.34),transparent 58%),radial-gradient(72% 60% at 50% 112%,rgba(214,116,20,.16),transparent 60%),radial-gradient(140% 120% at 50% 50%,#101218,#0a0b10 58%,#050609);opacity:1;transition:opacity 1.1s ease}.hub.hidden{opacity:0;pointer-events:none}.hub-top{display:flex;align-items:center;justify-content:space-between;gap:16px}.hub-logo{height:clamp(44px,7.5vh,72px);width:auto;object-fit:contain}.hub-top-right{display:flex;align-items:center;gap:10px}.hub-icon-button,.profile-chip,.hub-text-button{display:inline-flex;align-items:center;gap:9px;padding:8px 14px;border:1px solid #32363e;border-radius:999px;background:#14161bd1;color:#c8cdd5;font-family:inherit;font-size:13px;letter-spacing:.06em;cursor:pointer;transition:border-color .16s ease,color .16s ease,transform .16s ease}.hub-icon-button:hover,.profile-chip:hover,.hub-text-button:hover{border-color:#f5a623;color:#fff}.hub-icon-button.muted{color:#6c727d;text-decoration:line-through}.profile-avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#3a3e46;color:#0d0f13;font-weight:800;font-size:13px;overflow:hidden}.hub-main{flex:1;display:flex;flex-direction:column;justify-content:center;gap:clamp(10px,2vh,22px);min-height:0}.hub-eyebrow{margin:0;font-size:clamp(11px,1.3vw,13px);letter-spacing:.42em;text-transform:uppercase;color:#d18a1e}.hub-greeting{margin:0;font-size:clamp(30px,5.4vw,58px);font-weight:800;line-height:1;letter-spacing:.02em;text-transform:uppercase;color:#f2f4f7;text-shadow:0 0 34px rgba(96,150,220,.35)}.hub-rail{display:flex;gap:clamp(14px,2vw,26px);align-items:stretch;padding:14px 4px 18px;overflow-x:auto;scrollbar-width:none}.hub-rail::-webkit-scrollbar{display:none}.hub-tile{flex:0 0 auto;width:clamp(220px,24vw,330px);border:1px solid #2a2e36;border-radius:16px;background:#14161b;overflow:hidden;cursor:pointer;outline:none;transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.tile-featured{width:clamp(280px,34vw,460px);animation:tile-breathe 3.4s ease-in-out infinite}.hub-tile.selected,.hub-tile:focus-visible{border-color:#f5a623;transform:translateY(-7px) scale(1.015);box-shadow:0 0 0 1px #f5a623a6,0 0 38px #f5a62338,0 26px 50px #0000008c;animation:none}.hub-tile.launching{transform:translateY(-7px) scale(1.06);filter:brightness(1.35);transition:transform .26s ease,filter .26s ease}.hub-tile.denied{animation:tile-denied .4s ease}.tile-art{position:relative;aspect-ratio:16 / 10;overflow:hidden;border-bottom:1px solid #272b32}.tile-art img{width:100%;height:100%;object-fit:cover;animation:kenburns 16s ease-in-out infinite alternate}.tile-live{position:absolute;top:10px;left:10px;display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border-radius:999px;background:#08090cc7;border:1px solid rgba(255,255,255,.14);font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:#fff}.live-dot{width:8px;height:8px;border-radius:50%;background:#ff3b30;animation:live-blink 1.6s ease-in-out infinite}.tile-meta{padding:clamp(13px,1.6vw,20px)}.tile-meta h2{margin:0;font-size:clamp(19px,2.2vw,27px);font-weight:800;letter-spacing:.03em;text-transform:uppercase;color:#f2f4f7}.tile-meta p{margin:7px 0 0;font-size:clamp(12px,1.3vw,14px);line-height:1.45;color:#9aa0ab}.tile-play{display:inline-block;margin-top:12px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#f5a623}.tile-play kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;margin:0 2px;border:1px solid #f5a623;border-radius:50%;font-family:inherit;font-size:11px;font-weight:800}.tile-locked-art{aspect-ratio:16 / 10;display:grid;place-items:center;border-bottom:1px solid #272b32;background:repeating-linear-gradient(-45deg,rgba(245,166,35,.05) 0 22px,transparent 22px 44px),#101217}.lock-glyph,.secret-glyph{font-size:clamp(34px,4vw,50px);color:#4a4f58}.tile-locked .tile-meta h2,.tile-secret .tile-meta h2{color:#8a909b}.hub-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;letter-spacing:.1em;color:#6c727d}.gamepad-status.gamepad-on{color:#7cd24a}.hub-bottom-right{display:inline-flex;align-items:center;gap:16px}.hub-lore{text-transform:uppercase;letter-spacing:.22em}.profile-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#040508d6;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.profile-overlay h2{margin:0 0 22px;font-size:clamp(28px,4.6vw,46px);font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#f2f4f7}.profile-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(14px,2.4vw,26px)}.profile-card{display:flex;flex-direction:column;align-items:center;gap:14px;width:clamp(128px,17vw,172px);padding:22px 14px;border:1px solid #2a2e36;border-radius:16px;background:#14161b;color:#e8eaee;font-family:inherit;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.profile-card:hover,.profile-card:focus-visible{border-color:var(--accent);transform:translateY(-7px);box-shadow:0 0 30px color-mix(in srgb,var(--accent) 30%,transparent),0 22px 40px #00000080;outline:none}.profile-avatar-large{position:relative;width:clamp(72px,9vw,96px);height:clamp(72px,9vw,96px);background:var(--accent);font-size:clamp(28px,3.6vw,38px)}.profile-avatar-large img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:1}.profile-avatar-large.has-sheet{background-size:300% 600%;background-position:0% 0%}.profile-avatar-large.has-sheet img,.profile-avatar-large.has-sheet>span{display:none}.profile-avatar-large.face-mirror{transform:scaleX(-1)}.profile-avatar-large.face-punch{animation:face-punch .36s cubic-bezier(.3,1.6,.5,1)}@keyframes face-punch{0%{transform:scale(1)}45%{transform:scale(1.14) rotate(-3deg)}to{transform:scale(1)}}.profile-card-name{font-size:clamp(16px,1.8vw,19px);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.hub-toast{position:absolute;left:50%;bottom:clamp(56px,11vh,96px);z-index:60;transform:translate(-50%);padding:13px 26px;border:1px solid rgba(245,166,35,.55);border-radius:999px;background:#0e0f13f0;color:#f2d8ab;font-size:13px;letter-spacing:.14em;text-transform:uppercase;box-shadow:0 14px 40px #0000008c,0 0 26px #f5a62324}.hub-toast.toast-in{animation:toast-in .42s cubic-bezier(.2,.9,.3,1.2)}@keyframes boot-blink{50%{opacity:.45}}@keyframes lamp-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes lamp-alarm{50%{background:#ff3b30;box-shadow:0 0 14px #ff3b30e6}}@keyframes live-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes tile-breathe{0%,to{box-shadow:0 0 0 1px #f5a62329,0 14px 34px #00000080}50%{box-shadow:0 0 0 1px #f5a62380,0 0 34px #f5a62333,0 14px 34px #00000080}}@keyframes kenburns{0%{transform:scale(1) translate(0)}to{transform:scale(1.12) translate(-2.4%,1.8%)}}@keyframes tile-denied{0%,to{transform:translate(0)}25%{transform:translate(-9px)}60%{transform:translate(7px)}}@keyframes toast-in{0%{transform:translate(-50%,26px);opacity:0}to{transform:translate(-50%);opacity:1}}#shell{position:relative;container-type:size;width:min(100vw,calc(100vh * 16 / 9));height:min(100vh,56.25vw);min-width:320px;min-height:180px;overflow:hidden;background:#91d56a;box-shadow:0 24px 70px #0000005c}#game-container,#game-container canvas{width:100%;height:100%;display:block;cursor:none}#shell:not(.game-started) #hud,#shell:not(.game-started) #status-bar,#shell:not(.game-started) #win-overlay{display:none}#boot-overlay,#intro-overlay{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#102131;opacity:1;transition:opacity .42s ease,transform .42s ease}#boot-overlay{z-index:40}#intro-overlay{z-index:30}#boot-overlay.hidden,#intro-overlay.hidden{display:none}#boot-overlay.boot-fading,#intro-overlay.intro-fading{opacity:0;transform:scale(1.018);pointer-events:none}.boot-splash,.intro-splash{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none}.load-game{position:absolute;left:50%;bottom:7.2%;width:42%;height:19%;transform:translate(-50%);border:0;border-radius:8px;background:transparent;cursor:pointer;pointer-events:auto;transition:box-shadow .16s ease,transform .16s ease}.load-game:hover,.load-game:focus-visible{outline:none;box-shadow:0 0 0 5px #00cfffb8,0 0 30px #ff911a61}.load-game:active{transform:translate(-50%) translateY(3px)}.intro-start{position:absolute;left:50%;bottom:clamp(4px,4.1cqh,48px);width:clamp(142px,31cqw,400px);aspect-ratio:3 / 2;padding:0;border:0;background:transparent;cursor:pointer;transform:translate(-50%) rotate(-2deg) scale(1);filter:drop-shadow(0 12px 0 rgba(71,28,9,.46)) drop-shadow(0 18px 20px rgba(0,0,0,.34));transition:transform .16s ease,filter .16s ease}.intro-start img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;-webkit-user-select:none;user-select:none}.intro-start:hover,.intro-start:focus-visible{outline:none;transform:translate(-50%) rotate(1deg) scale(1.055);filter:drop-shadow(0 14px 0 rgba(71,28,9,.44)) drop-shadow(0 22px 24px rgba(0,0,0,.38))}.intro-start:focus-visible{box-shadow:0 0 0 5px #00cfff;border-radius:14px}.intro-start:active,#intro-overlay.intro-starting .intro-start{transform:translate(-50%) rotate(-1deg) scale(.96)}#intro-overlay.intro-starting .intro-start{cursor:default;filter:drop-shadow(0 7px 0 rgba(71,28,9,.4)) drop-shadow(0 14px 16px rgba(0,0,0,.32))}#hud{position:absolute;inset:clamp(10px,1.8vw,20px) clamp(10px,2vw,24px) auto clamp(10px,2vw,24px);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;pointer-events:none}.brand-chip,.score-chip,.combo-chip{border:3px solid var(--panel-stroke);background:var(--panel);color:var(--ink);box-shadow:0 5px #54300b59,0 10px 18px #00000024}.brand-chip{max-width:min(52vw,430px);padding:clamp(7px,1vw,12px) clamp(10px,1.5vw,18px);border-radius:8px;font-size:clamp(15px,2.1vw,29px);line-height:1;color:#bb2434;text-shadow:2px 2px 0 #fff4a8}.score-chip{min-width:clamp(96px,12vw,148px);padding:clamp(7px,1vw,10px) clamp(10px,1.4vw,16px);border-radius:8px;text-align:right}.hud-stack{display:grid;gap:8px;justify-items:end}.combo-chip{min-width:clamp(92px,11vw,132px);padding:6px 12px;border-radius:8px;background:#ffd85cf5;text-align:right;transform:rotate(1.5deg)}.combo-chip.hidden{visibility:hidden}.combo-label{display:block;font-size:clamp(10px,1vw,12px);line-height:1;text-transform:uppercase;color:#6b4d21}#combo-value{font-family:Impact,Arial Black,sans-serif;font-size:clamp(22px,3.4vw,42px);line-height:.9;color:#00a6d4;text-shadow:2px 2px 0 #fff,4px 4px 0 #e63651}.combo-chip.combo-hot{animation:combo-thump .46s ease-out infinite alternate}.score-label{display:block;font-size:clamp(11px,1.1vw,14px);line-height:1;color:#5f492a;text-transform:uppercase;letter-spacing:0}#score-value{display:block;min-width:4ch;font-family:Impact,Arial Black,sans-serif;font-size:clamp(30px,5vw,62px);line-height:.9;color:#e02743;text-shadow:2px 2px 0 #fff,4px 4px 0 var(--sun)}#status-bar{position:absolute;left:0;right:0;bottom:0;height:clamp(74px,12vw,104px);display:grid;grid-template-columns:minmax(82px,1fr) clamp(92px,13vw,126px) minmax(82px,.9fr) minmax(88px,1fr);align-items:end;gap:clamp(6px,1.4vw,14px);padding:8px clamp(10px,2vw,24px) 10px;background:linear-gradient(180deg,#13233700,#132337bd 22%),linear-gradient(90deg,#6b4d21,#e6c456 14%,#70462a 30%,#22334a,#70462a 70%,#e6c456 86%,#6b4d21);border-top:4px solid #162a4d;pointer-events:none;z-index:2}.status-panel{min-height:clamp(50px,7vw,70px);border:3px solid #162a4d;border-radius:6px;background:#fff4a8f0;box-shadow:inset 0 0 0 3px #ffffff4d;color:#162a4d;display:grid;align-content:center;padding:6px clamp(8px,1.5vw,16px)}.status-score{justify-items:start}.status-ammo{justify-items:end}.status-shame{justify-items:center}.status-label{font-size:clamp(10px,1vw,13px);line-height:1;text-transform:uppercase;letter-spacing:0}#status-score-value,#ammo-value{font-family:Impact,Arial Black,sans-serif;font-size:clamp(26px,4vw,46px);line-height:1;color:#e02743;text-shadow:2px 2px 0 #fff4a8}#ammo-value{color:#00a6d4;font-size:clamp(18px,2.7vw,34px)}.shame-pips{width:min(100%,104px);display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:7px}.shame-pips span{height:clamp(14px,2vw,22px);border:2px solid #162a4d;border-radius:4px;background:#f7d89e;box-shadow:inset 0 0 0 2px #ffffff52}.shame-pips span.active{background:#e63651;box-shadow:inset 0 0 0 2px #ffffff52,0 0 12px #e636519e}.status-face-frame{width:clamp(92px,13vw,126px);height:clamp(74px,10vw,98px);border:4px solid #162a4d;border-radius:6px;background:radial-gradient(circle at 50% 25%,rgba(255,255,255,.5),transparent 45%),#fff4a8;overflow:hidden;box-shadow:0 5px #00000040}#player-face{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}#win-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:clamp(12px,4vw,44px);background:#1a2c4052;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10}#win-overlay.hidden{display:none}.win-panel{position:relative;width:min(92vw,720px);aspect-ratio:960 / 520;color:#162a4d;text-align:center;filter:drop-shadow(0 22px 24px rgba(0,0,0,.32));transform:rotate(-1.2deg)}.win-plaque{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.win-copy{position:absolute;top:21%;right:12%;bottom:14%;left:12%;display:grid;align-content:center;justify-items:center;gap:clamp(10px,2vw,20px)}.win-panel h1{max-width:12ch;margin:0;font-family:Impact,Arial Black,sans-serif;font-size:clamp(36px,6.2vw,72px);line-height:.92;color:#e63651;text-shadow:3px 3px 0 #ffffff,6px 6px 0 #00cfff}.win-panel button{min-width:clamp(170px,22vw,236px);min-height:clamp(44px,6vw,58px);border:3px solid #162a4d;border-radius:8px;background:#ffd85c;color:#162a4d;cursor:pointer;font-size:clamp(16px,2vw,22px);box-shadow:0 5px #bd5b17,0 10px 15px #0000002e;pointer-events:auto}.win-panel button:active{transform:translateY(3px);box-shadow:0 2px #bd5b17}@media(max-width:640px){body.route-studio{overflow-y:auto}.vault-stage{height:auto;min-height:100vh;min-height:100dvh}.vault-canvas,.boot-gate,.profile-overlay{position:fixed}.vault-panel{position:fixed;right:50%;transform:translate(50%);bottom:18px;width:max-content}.hub{position:relative;min-height:100vh;min-height:100dvh;padding:16px 16px 28px}.hub-greeting{font-size:clamp(26px,9vw,38px)}.hub-rail{flex-direction:column;overflow:visible;padding-right:0}.hub-tile,.tile-featured{width:100%}.hub-bottom{flex-direction:column;align-items:flex-start;gap:8px}.gamepad-status{display:none}.load-game{bottom:7%;width:48%;height:21%}.intro-start{bottom:0;width:clamp(120px,37cqw,150px)}#hud{align-items:flex-start}.brand-chip{max-width:48vw}#status-bar{height:64px;grid-template-columns:1fr 62px .85fr 1fr;gap:5px;padding:5px 7px 6px;border-top-width:3px}.status-panel{min-height:42px;border-width:2px;padding:4px 5px}.status-face-frame{width:62px;height:54px;border-width:3px}.status-label{font-size:9px}#status-score-value{font-size:22px}#ammo-value{font-size:15px}.shame-pips{gap:3px;margin-top:5px}.shame-pips span{height:13px;border-width:1px}.win-copy{top:21%;right:13%;bottom:13%;left:13%;gap:8px}.win-panel h1{font-size:clamp(29px,9vw,42px)}.win-panel button{min-width:164px;min-height:42px;font-size:15px}}@keyframes combo-thump{0%{transform:rotate(1.5deg) scale(1)}to{transform:rotate(-1deg) scale(1.045)}}@media(prefers-reduced-motion:reduce){#intro-overlay,.intro-start{transition:none}.combo-chip.combo-hot,.tile-art img,.tile-featured,.boot-init,.panel-lamp,.live-dot{animation:none}}
