*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-outer: #0d0d1a;--ui-bg: #1a1008;--ui-border: #7a5c10;--ui-border-light:#c89a28;--accent: #e8a030;--accent-dim: #a06010;--text-ui: #f0d080;--text-dark: #1a0800;--dialog-bg: #fffef2;--dialog-border: #8b5e14;--hotspot-hover: rgba(232, 160, 48, .25);--pixel-font: "Press Start 2P", monospace;--vt-font: "VT323", monospace}body{background:var(--bg-outer);display:flex;align-items:center;justify-content:center;min-height:100vh;font-family:var(--vt-font);overflow:hidden;background-image:radial-gradient(ellipse at 20% 50%,#1a0a2a 0%,transparent 60%),radial-gradient(ellipse at 80% 50%,#0a1a2a 0%,transparent 60%)}.game-shell{width:800px;display:flex;flex-direction:column;border:3px solid var(--ui-border);box-shadow:0 0 0 1px var(--ui-border-light),0 0 40px #c89a2826,inset 0 0 0 1px #000;position:relative;background:#000}.game-titlebar-spacer{width:44px;flex-shrink:0}.game-titlebar{background:var(--ui-bg);border-bottom:2px solid var(--ui-border);padding:6px 14px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.game-titlebar-text{font-family:var(--pixel-font);font-size:7px;color:var(--ui-border-light);letter-spacing:2px}.game-titlebar-dots{display:flex;gap:5px}.game-titlebar-dots span{width:8px;height:8px;border-radius:50%;display:block}.dot-red{background:#c0392b}.dot-yellow{background:#e8a030}.dot-green{background:#27ae60}.scene-area{width:100%;aspect-ratio:800 / 420;position:relative;overflow:hidden;cursor:default}.dialog-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:14px 16px;z-index:100;cursor:pointer;display:flex;align-items:flex-end}.dialog-box{background:var(--dialog-bg);border:3px solid var(--dialog-border);padding:14px 18px;position:relative;box-shadow:4px 4px #00000080;min-height:80px;width:100%}.dialog-box:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;bottom:-1px;border:1px solid var(--ui-border-light);opacity:.3;pointer-events:none}.dialog-speaker{font-family:var(--pixel-font);font-size:7px;color:var(--accent);margin-bottom:8px;letter-spacing:1px}.dialog-text{font-family:var(--vt-font);font-size:22px;color:var(--text-dark);line-height:1.3}.dialog-continue{position:absolute;bottom:10px;right:14px;font-family:var(--pixel-font);font-size:6px;color:var(--accent-dim);animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.hotspot{position:absolute;cursor:pointer;transition:filter .1s}.hotspot:hover .hotspot-highlight{opacity:1}.hotspot-highlight{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:2px dashed var(--accent);opacity:0;transition:opacity .15s;pointer-events:none;animation:dash-rotate 4s linear infinite}@keyframes dash-rotate{to{stroke-dashoffset:-20}}.hotspot-label{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#0a0800e6;border:1px solid var(--ui-border);color:var(--text-ui);font-family:var(--vt-font);font-size:18px;padding:3px 8px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:50}.hotspot:hover .hotspot-label{opacity:1}.level-complete{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0800d1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:200;animation:fadeIn .4s ease}.level-complete-title{font-family:var(--pixel-font);font-size:16px;color:var(--accent);text-align:center;line-height:1.8;text-shadow:0 0 20px rgba(232,160,48,.6)}.level-complete-sub{font-family:var(--vt-font);font-size:26px;color:#b0d080;text-align:center}.btn{font-family:var(--pixel-font);font-size:9px;color:var(--text-dark);background:var(--accent);border:none;padding:12px 24px;cursor:pointer;letter-spacing:1px;transition:background .1s,transform .1s;box-shadow:3px 3px 0 var(--accent-dim)}.btn:hover{background:#f0b840;transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--accent-dim)}.btn:active{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--accent-dim)}.btn-secondary{background:transparent;border:2px solid var(--ui-border);color:var(--text-ui);box-shadow:3px 3px #000}.btn-secondary:hover{background:#1a1200;border-color:var(--ui-border-light)}.intro-screen{width:100%;height:100%;background:linear-gradient(160deg,#1a1408,#0a0e1a);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:40px;position:relative}.intro-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.015) 2px,rgba(255,255,255,.015) 4px);pointer-events:none}.intro-logo{font-family:var(--pixel-font);font-size:13px;color:var(--accent);text-align:center;line-height:2.2;text-shadow:0 0 30px rgba(232,160,48,.5),0 0 60px rgba(232,160,48,.2);letter-spacing:2px}.intro-logo span{display:block;font-size:8px;color:var(--ui-border-light);margin-top:6px;letter-spacing:4px}.intro-subtitle{font-family:var(--vt-font);font-size:24px;color:#a09060;text-align:center}.intro-form{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:360px}.intro-label{font-family:var(--pixel-font);font-size:7px;color:var(--text-ui);letter-spacing:1px;align-self:flex-start}.intro-input{width:100%;background:#0a0800;border:2px solid var(--ui-border);color:var(--accent);font-family:var(--vt-font);font-size:26px;padding:10px 14px;outline:none;transition:border-color .15s}.intro-input:focus{border-color:var(--ui-border-light);box-shadow:0 0 12px #e8a03033}.intro-input::placeholder{color:#3a2a08}.level-intro-screen{width:100%;height:100%;background:linear-gradient(160deg,#1a1408,#0a0e1a);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px 60px;position:relative;cursor:pointer}.level-intro-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.015) 2px,rgba(255,255,255,.015) 4px);pointer-events:none}.level-intro-badge{font-family:var(--pixel-font);font-size:7px;color:var(--ui-border-light);letter-spacing:4px;border:1px solid var(--ui-border);padding:5px 14px}.level-intro-title{font-family:var(--pixel-font);font-size:18px;color:var(--accent);text-shadow:0 0 30px rgba(232,160,48,.5),0 0 60px rgba(232,160,48,.2);letter-spacing:3px}.level-intro-text{font-family:var(--vt-font);font-size:24px;color:#b0a070;text-align:center;line-height:1.5;max-width:480px;display:flex;flex-direction:column;gap:6px;min-height:180px}.level-intro-text .level-intro-objective{color:var(--accent);font-weight:700}.level-intro-cursor{color:var(--accent);animation:blink .6s step-end infinite}.level-intro-skip{font-family:var(--pixel-font);font-size:6px;color:#3a2808;letter-spacing:1px;animation:blink 1.5s step-end infinite}.outro-screen{width:100%;height:100%;background:linear-gradient(160deg,#0a1408,#0a0a1a);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:40px;position:relative}.outro-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.015) 2px,rgba(255,255,255,.015) 4px);pointer-events:none}.outro-title{font-family:var(--pixel-font);font-size:14px;color:#80d060;text-align:center;line-height:2;text-shadow:0 0 20px rgba(128,208,96,.5)}.outro-text{font-family:var(--vt-font);font-size:24px;color:#a0c080;text-align:center;line-height:1.5;max-width:500px}.outro-credits{font-family:var(--pixel-font);font-size:6px;color:#304020;text-align:center;line-height:2.5;margin-top:10px;letter-spacing:1px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.anim-fadein{animation:fadeIn .5s ease forwards}.anim-slideup{animation:slideUp .4s ease forwards}@keyframes walkBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.player-walking{animation:walkBounce .25s steps(2) infinite}.scene-name-badge{position:absolute;top:12px;left:12px;background:#0a0800bf;border:1px solid var(--ui-border);padding:5px 10px;font-family:var(--pixel-font);font-size:6px;color:var(--ui-border-light);letter-spacing:1px;pointer-events:none;z-index:10}.cd-browser-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:200}.cd-browser{width:520px;background:#0a0a18;border:2px solid #4a4a6a;box-shadow:4px 4px #0009,0 0 30px #50508c33;display:flex;flex-direction:column}.cd-browser-titlebar{background:#1a1a3a;border-bottom:1px solid #4a4a6a;padding:8px 12px;font-family:var(--pixel-font);font-size:7px;color:#8a8aaa;letter-spacing:1px}.cd-browser-filelist{padding:8px 0;max-height:260px;overflow-y:auto}.cd-browser-file{display:flex;align-items:center;gap:10px;padding:6px 14px;cursor:pointer;transition:background .1s}.cd-browser-file:hover{background:#1a1a3a}.cd-browser-file.selected{background:#1a1a40;border-left:2px solid #6a6aaa;padding-left:12px}.cd-browser-file-icon{font-size:16px;line-height:1;flex-shrink:0}.cd-browser-file-name{font-family:var(--vt-font);font-size:20px;color:#b0b0d0}.cd-browser-file.selected .cd-browser-file-name{color:#d0d0f0}.cd-browser-desc{border-top:1px solid #4a4a6a;padding:12px 14px;min-height:60px;display:flex;align-items:center}.cd-browser-file-desc{font-family:var(--vt-font);font-size:18px;color:#8a8aaa;line-height:1.4}.cd-browser-hint{color:#4a4a6a;font-style:italic}.cd-browser-instruction{background:#1a1a30;border-bottom:1px solid #4a4a6a;padding:8px 14px;font-family:var(--vt-font);font-size:20px;color:#d0d080;text-align:center;letter-spacing:.5px}.cd-browser-path{padding:6px 14px;font-family:var(--vt-font);font-size:16px;color:#6a6a8a;border-bottom:1px solid #2a2a4a;background:#08081a}.cd-browser-back{border-bottom:1px dashed #2a2a4a}.cd-browser-back .cd-browser-file-name{color:#8a8aaa;font-style:italic}.cd-browser-folder-entry .cd-browser-file-name{color:#c0c0e0;font-weight:700}.cd-browser-folder-arrow{margin-left:auto;font-size:12px;color:#4a4a6a}.cd-browser-viewer{width:340px}.img-loader-loading,.img-loader-error{display:flex;flex-direction:column;align-items:center;background:#0a0a10;padding:16px}.img-loader-error{cursor:pointer;position:relative}.img-loader-canvas-wrap{width:100%;max-width:280px;background:#2a2a3a;border:1px solid #3a3a5a;overflow:hidden;line-height:0}.img-loader-canvas-el{display:block;width:100%;height:auto;aspect-ratio:280 / 360;image-rendering:auto}.img-loader-status{font-family:var(--vt-font);font-size:16px;color:#6a6a8a;margin-top:10px}.img-loader-error-box{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0a0a14d9}.img-loader-error-icon{font-size:36px;margin-bottom:10px;animation:blink 1.2s step-end infinite}.img-loader-error-text{font-family:var(--pixel-font);font-size:10px;color:#e04040;letter-spacing:1px;line-height:1.8}.img-loader-error-sub{font-family:var(--vt-font);font-size:18px;color:#8a4040;margin-top:4px}.img-loader-error-hint{font-family:var(--pixel-font);font-size:6px;color:#4a4a6a;margin-top:14px;animation:blink 1s step-end infinite}.scene-objective{position:absolute;top:12px;right:12px;background:#0a0800bf;border:1px solid var(--ui-border);padding:5px 10px;font-family:var(--vt-font);font-size:16px;color:#c0d080;max-width:220px;text-align:right;pointer-events:none;z-index:10;line-height:1.3}.betting-ticket{width:100%;height:100%;background:repeating-linear-gradient(0deg,transparent,transparent 27px,rgba(180,140,80,.08) 27px,rgba(180,140,80,.08) 28px),linear-gradient(160deg,#f0e8c8,#e8ddb0 40%,#e0d4a0);display:flex;flex-direction:column;padding:6px 10px;position:relative;overflow:hidden}.betting-ticket:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 20% 80%,rgba(160,120,60,.06) 0%,transparent 50%),radial-gradient(circle at 75% 20%,rgba(120,100,50,.05) 0%,transparent 40%);pointer-events:none}.betting-ticket-header{text-align:center;padding:4px 0 6px;border-bottom:2px solid #8a6a20;margin-bottom:4px}.betting-ticket-logo{font-family:var(--pixel-font);font-size:12px;color:#4a3008;letter-spacing:3px}.betting-ticket-subtitle{font-family:var(--vt-font);font-size:16px;color:#7a5a20;margin-top:2px}.betting-ticket-colheads{display:flex;align-items:center;padding:4px 0;border-bottom:1px solid #b09040}.bt-col{font-family:var(--pixel-font);font-size:8px;color:#5a4010;text-align:center;letter-spacing:.5px}.bt-col-num{width:34px;flex-shrink:0}.bt-col-match{flex:1;text-align:left;padding-left:4px}.bt-col-odds{width:72px;flex-shrink:0}.betting-ticket-body{flex:1;overflow:hidden}.betting-ticket-row{display:flex;align-items:center;height:34px;border-bottom:1px solid rgba(160,130,60,.2);transition:background .3s}.betting-ticket-row:hover{background:#c8a03c14}.betting-ticket-row .bt-col-num{font-family:var(--vt-font);font-size:16px;color:#7a5a20;display:flex;align-items:center;justify-content:center;gap:2px}.bt-sport{font-size:12px;line-height:1}.betting-ticket-row .bt-col-match{font-family:var(--vt-font);color:#2a1800;text-align:left;padding-left:4px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;line-height:1.2}.bt-teams{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bt-label{font-size:13px;color:#8a6a30;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bt-cell{width:72px;flex-shrink:0;text-align:center;font-family:var(--vt-font);font-size:18px;color:#4a3008;cursor:pointer;padding:2px 0;transition:background .1s,color .1s;border-left:1px solid rgba(160,130,60,.15);-webkit-user-select:none;user-select:none}.bt-cell:hover{background:#c8a03c33}.bt-cell-selected{background:#c89a28;color:#1a0800;font-weight:700;box-shadow:inset 0 0 0 2px #a07810}.bt-cell-selected:hover{background:#d0a838}.bt-row-correct{background:#3cb43c26}.bt-row-correct .bt-cell-selected{background:#48a838;color:#fff;box-shadow:inset 0 0 0 2px #308020}.bt-row-wrong{background:#c83c3c1f}.bt-row-wrong .bt-cell-selected{background:#c04030;color:#fff;box-shadow:inset 0 0 0 2px #903020}.bt-row-neutral{opacity:.5}.betting-ticket-footer{border-top:2px solid #8a6a20;padding:6px 0 2px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.bt-footer-info{display:flex;align-items:center;gap:16px}.bt-stake{font-family:var(--vt-font);font-size:19px;color:#5a4010}.bt-stake strong{color:#2a1800}.bt-payout{font-family:var(--vt-font);font-size:19px;color:#2a6a10}.bt-payout strong{font-size:21px}.bt-payout-hint{color:#8a6a30;font-style:italic}.bt-bet-count{font-family:var(--vt-font);font-size:15px;color:#8a6a30}.bt-footer-actions{flex-shrink:0}.bt-lost-bar{display:flex;align-items:center;gap:12px}.bt-lost-text{font-family:var(--vt-font);font-size:18px;color:#c04030;font-weight:700}.gk-field{width:100%;height:100%;background:linear-gradient(180deg,#8a8580,#9a9590 30%,#7a7570);position:relative;overflow:hidden}.gk-svg{width:100%;height:100%;display:block}.gk-hud{position:absolute;top:10px;right:10px;z-index:10;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.gk-hud-lives{display:flex;gap:4px;font-size:18px}.gk-heart{transition:transform .2s,opacity .2s}.gk-heart-lost{opacity:.35;transform:scale(.8)}.gk-hud-score{background:#0a0800bf;border:1px solid var(--ui-border);padding:4px 10px;font-family:var(--vt-font);font-size:18px;color:#c0d080}.gk-hud-score strong{color:var(--accent);font-size:20px}.gk-hud-target{color:#8a9a60;font-size:15px}.gk-zones{position:absolute;bottom:0;left:0;right:0;height:90px;display:flex;z-index:8}.gk-zone{flex:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;border-top:2px solid rgba(255,255,255,.1);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.gk-zone+.gk-zone{border-left:1px solid rgba(255,255,255,.1)}.gk-zone-active:hover{background:#ffffff1f}.gk-zone-active:active{background:#e8a0304d}.gk-zone-label{font-family:var(--pixel-font);font-size:8px;color:#ffffff80;letter-spacing:1px;pointer-events:none}.gk-zone-active .gk-zone-label{color:#fffc}.gk-ball{filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.gk-flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6;animation:gkFlash .5s ease-out forwards}.gk-flash-save{background:radial-gradient(circle at center,rgba(80,255,80,.25),transparent 70%)}.gk-flash-goal{background:radial-gradient(circle at center,rgba(255,60,60,.25),transparent 70%)}@keyframes gkFlash{0%{opacity:1}to{opacity:0}}.gk-ready-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--pixel-font);font-size:14px;color:#fff;text-shadow:0 0 20px rgba(232,160,48,.8),0 2px 4px rgba(0,0,0,.6);z-index:9;pointer-events:none}.gk-attempt-info{font-family:var(--vt-font);font-size:20px;color:#8a8a6a;margin-top:-8px}@media (max-width: 768px){body{min-height:100dvh;align-items:flex-start}.game-shell{width:100vw;height:100dvh;border:none;box-shadow:none;overflow:hidden}.game-titlebar{display:none}.scene-area{flex:none;width:150%;margin-left:-25%;aspect-ratio:800 / 420}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;padding-top:calc(78.75vw + 16px);padding-left:20px;padding-right:20px;padding-bottom:24px;background:linear-gradient(to bottom,#0a080040,#0a080040 78.75vw,#0a0800f2 78.75vw);z-index:100;align-items:flex-start}.dialog-box{min-height:unset;background:transparent;border:none;box-shadow:none;padding:0;width:100%}.dialog-box:before{display:none}.dialog-speaker{font-size:10px;color:var(--accent);margin-bottom:12px}.dialog-text{font-size:28px;line-height:1.4;color:var(--dialog-bg)}.dialog-continue{position:static;display:block;text-align:right;margin-top:20px;font-size:8px;color:var(--accent-dim)}.scene-area:has(.dialog-overlay) .scene-objective{display:none}.scene-objective{position:fixed;top:auto;bottom:80px;right:auto;left:50%;transform:translate(-50%);font-size:22px;max-width:90vw;text-align:center;background:#0a0800d9;border:1px solid var(--ui-border);padding:10px 18px;z-index:200}.scene-name-badge{font-size:5px;padding:3px 7px;top:6px;left:6px}.hotspot:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.level-complete{position:fixed;top:78.75vw;bottom:0;left:0;right:0;height:auto;border-radius:0}.level-complete-title{font-size:12px}.level-complete-sub{font-size:24px}.intro-screen,.level-intro-screen,.outro-screen{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;z-index:300;justify-content:flex-start}.intro-screen{padding:60px 24px 24px;gap:20px}.intro-logo{font-size:11px}.intro-subtitle{font-size:20px}.intro-form{max-width:300px}.intro-input{font-size:22px;padding:8px 12px}.level-intro-screen{padding:60px 28px 24px;gap:14px}.level-intro-title{font-size:14px}.level-intro-text{font-size:22px;max-width:100%;min-height:120px}.outro-screen{padding:60px 24px 24px;gap:18px}.outro-title{font-size:12px}.outro-text{font-size:22px;max-width:100%}.cd-browser-overlay{position:fixed;top:0;right:0;bottom:0;left:0}.cd-browser{width:95vw;max-height:90dvh}.cd-browser-viewer{width:90vw}.betting-ticket{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;z-index:50;padding:6px}.betting-ticket-logo{font-size:10px;letter-spacing:2px}.betting-ticket-subtitle{font-size:14px}.bt-col-num,.betting-ticket-row .bt-col-num{display:none}.bt-col-odds{width:40px}.bt-cell{width:40px;font-size:13px;padding:1px 0}.bt-col{font-size:6px}.betting-ticket-colheads{padding:2px 0}.betting-ticket-row{height:28px}.bt-teams{font-size:12px}.bt-label{font-size:9px}.betting-ticket-row .bt-col-match{padding-left:2px}.betting-ticket-footer{flex-wrap:wrap;gap:4px;padding:4px 0 2px}.bt-footer-info{gap:8px}.bt-stake,.bt-payout{font-size:16px}.bt-payout strong{font-size:18px}.bt-bet-count{font-size:13px}.gk-field{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;z-index:50}.gk-hud{top:8px;right:8px}.gk-hud-score{font-size:16px;padding:3px 8px}.gk-hud-score strong{font-size:18px}.gk-hud-target{font-size:13px}.gk-zones{height:100px}.gk-zone-label{font-size:10px}.btn{font-size:8px;padding:10px 20px}}
