@font-face{font-family:Tim Display;src:url(/fonts/display.woff2) format("woff2");font-display:swap}@font-face{font-family:Tim Body;src:url(/fonts/body.woff2) format("woff2");font-display:swap}:root{--bg: #17120c;--panel: #241a10;--panel2: #2f2214;--line: #4a3826;--accent: #ffcc33;--accent-dk: #b8912a;--denim: #4c6a95;--denim-lt: #6f8db3;--red: #c1352b;--cream: #f2ead9;--fg: #ede4d0;--danger: #ff4d5e;color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}#game,.stick-zone,.act-btn{touch-action:none}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg);font-family:Tim Body,system-ui,sans-serif;color:var(--fg)}#app{position:fixed;inset:0;display:grid;place-items:center;overflow:hidden}#game{display:block;image-rendering:auto;background:#0c0a06}.overlay{position:absolute;inset:0;pointer-events:none}#hud{padding:env(safe-area-inset-top,10px) 14px 0}.hud-row{display:flex;align-items:center;gap:10px;padding-top:10px}.hearts{display:flex;gap:3px}.heart{font-size:24px;line-height:24px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.6))}.hud-spacer{flex:1}.hud-cash{font-family:Tim Display,sans-serif;color:var(--accent);font-size:20px;letter-spacing:1px;text-shadow:0 2px 3px rgba(0,0,0,.7)}.mute-btn{pointer-events:auto;cursor:pointer;background:#140e088c;border:1px solid var(--line);border-radius:8px;padding:2px 7px;font-size:16px;line-height:1}.floor-label{font-family:Tim Display,sans-serif;color:var(--cream);font-size:15px;text-transform:uppercase;letter-spacing:1px;text-shadow:0 2px 3px rgba(0,0,0,.7)}.mini-dot{width:12px;height:12px;border-radius:3px}.hud-loadout{gap:12px}.weapon-badge{display:flex;align-items:center;gap:6px;background:#140e088c;border:1px solid var(--line);border-radius:8px;padding:3px 10px 3px 4px}.weapon-badge span{font-family:Tim Display,sans-serif;font-size:12px;letter-spacing:.5px;color:var(--accent)}.gear-row{display:flex;gap:4px}.gear-row canvas{background:#140e0880;border:1px solid var(--line);border-radius:6px}.shop-prompt{position:absolute;left:0;right:0;bottom:22%;text-align:center;font-family:Tim Display,sans-serif;font-size:15px;letter-spacing:1px;color:#1a1205;transition:opacity .2s ease;opacity:0;pointer-events:none}.shop-prompt:before{content:""}#hud-prompt:not(:empty){background:var(--accent);width:max-content;margin:0 auto;padding:7px 16px;border-radius:20px;box-shadow:0 4px 10px #00000080}.stick-zone{position:absolute;bottom:0;width:42%;height:42%;max-height:260px;pointer-events:auto}.stick-zone.left{left:0}.stick-zone.right{right:0}.stick-base,.stick-knob{position:absolute;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .12s ease}.stick-base{width:118px;height:118px;border:2px solid rgba(255,235,200,.28);background:#ffebc80d}.stick-knob{width:54px;height:54px;background:#ffcc3347;border:2px solid rgba(255,204,51,.5)}.stick-zone.active .stick-base,.stick-zone.active .stick-knob{opacity:1}.stick-home{position:absolute;left:50%;bottom:20%;transform:translate(-50%);width:120px;height:120px;border-radius:50%;border:2px dashed rgba(255,235,200,.28);display:flex;align-items:center;justify-content:center;text-align:center;pointer-events:none;transition:opacity .15s ease}.stick-home span{font-family:Tim Display,sans-serif;font-size:11px;letter-spacing:1px;color:#ffebc8b3;line-height:1.3}.stick-zone.active .stick-home{opacity:0}#touch-controls{display:none}body.touch #touch-controls{display:block}.action-buttons{position:absolute;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%);display:flex;gap:14px;pointer-events:none}.act-btn{pointer-events:auto;font-family:Tim Display,sans-serif;border:2px solid var(--line);background:#241a10d9;color:var(--accent);border-radius:12px;padding:10px 14px;font-size:16px}.act-btn.swap{font-size:22px;line-height:1}.act-btn.shop-btn{display:none;background:var(--accent);color:#1a1205;border-color:var(--accent-dk)}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(120% 120% at 50% 0%,#3c2814e6,#080603f0);backdrop-filter:blur(2px);pointer-events:auto;text-align:center;padding:24px;overflow-y:auto;touch-action:pan-y;-webkit-overflow-scrolling:touch}.screen h1{font-family:Tim Display,sans-serif;color:var(--accent);font-size:clamp(30px,8vw,58px);line-height:.98;letter-spacing:2px;text-shadow:0 4px 0 #7a1a12,0 6px 12px rgba(0,0,0,.7)}.screen h2{font-family:Tim Display,sans-serif;color:var(--danger);font-size:clamp(26px,7vw,48px);letter-spacing:2px}.screen h3{font-family:Tim Display,sans-serif;color:var(--accent);font-size:18px;letter-spacing:1px}.screen p{font-size:15px;max-width:560px;line-height:1.5}.tim-line{color:var(--cream);font-style:italic}.title-small{font-family:Tim Display,sans-serif;color:var(--denim-lt);font-size:clamp(16px,4vw,24px);letter-spacing:6px}.title-logo{display:flex;flex-direction:column;align-items:center;gap:2px}.mission-tag{font-family:Tim Display,sans-serif;color:#1a1205;background:var(--accent);display:inline-block;padding:3px 10px;border-radius:4px;font-size:12px;letter-spacing:1px;margin-bottom:8px}.briefing{display:flex;align-items:flex-start;gap:14px;max-width:620px;background:#140e0899;border:1px solid var(--line);border-radius:12px;padding:14px 16px;text-align:left}.briefing-text p{font-size:14px;margin:4px 0;color:var(--cream)}.big-portrait,.briefing-portrait canvas,.win-portrait canvas{border-radius:12px;background:#00000040;border:2px solid var(--line);flex-shrink:0}.btn{pointer-events:auto;cursor:pointer;font-family:Tim Display,sans-serif;border:none;border-radius:12px;padding:14px 30px;font-size:18px;letter-spacing:1px;text-transform:uppercase;color:#1a1205;background:var(--accent);box-shadow:0 4px 0 var(--accent-dk),0 8px 16px #00000080;transition:transform .06s ease}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--accent-dk),0 4px 8px #00000080}.hint{color:var(--fg);opacity:.6;font-size:12px}.hint code{color:var(--accent)}.shop{justify-content:flex-start;padding-top:max(16px,env(safe-area-inset-top))}.shop-panel{position:relative;width:min(560px,94vw);max-height:92vh;overflow-y:auto;background:var(--panel);border:2px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 12px 40px #0009;display:flex;flex-direction:column;gap:12px;touch-action:pan-y;-webkit-overflow-scrolling:touch}.shop-close-x{position:sticky;top:-16px;align-self:flex-end;margin:-8px -8px -14px 0;z-index:5;pointer-events:auto;cursor:pointer;width:40px;height:40px;border-radius:50%;border:2px solid var(--line);background:var(--panel2);color:var(--accent);font-size:22px;line-height:1}.shop-header{display:flex;align-items:center;gap:12px}.tim-portrait canvas{width:48px;height:48px;border-radius:10px;background:#00000040;border:2px solid var(--line)}.shop-head-text{flex:1}.shop-head-text .tim-line{font-size:13px;margin-top:2px}.shop-cash{font-family:Tim Display,sans-serif;color:var(--accent);font-size:20px;white-space:nowrap}.tim-advice{font-size:13px;background:#4c6a9526;border-left:3px solid var(--denim);border-radius:6px;padding:8px 10px;color:var(--cream);text-align:left}.shop-section-title{font-family:Tim Display,sans-serif;color:var(--accent);font-size:14px;letter-spacing:1px;border-bottom:1px solid var(--line);padding-bottom:4px}.shop-grid{display:flex;flex-direction:column;gap:8px}.shop-item{display:flex;align-items:center;gap:10px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:8px 10px}.shop-icon{width:44px;height:44px;flex-shrink:0}.shop-item-info{flex:1;text-align:left}.shop-item-name{font-family:Tim Display,sans-serif;font-size:14px;color:var(--fg);letter-spacing:.5px}.shop-item-desc{font-size:12px;opacity:.7;line-height:1.3}.shop-item-action{flex-shrink:0}.mini-btn{font-family:Tim Display,sans-serif;cursor:pointer;border:none;border-radius:8px;padding:8px 12px;font-size:14px;color:#1a1205;background:var(--accent);box-shadow:0 3px 0 var(--accent-dk);white-space:nowrap}.mini-btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--accent-dk)}.mini-btn.broke{background:#6a5a44;color:#c9b59a;box-shadow:0 3px #443a2c}.tag{font-family:Tim Display,sans-serif;font-size:12px;padding:6px 10px;border-radius:8px;letter-spacing:.5px}.tag.owned{background:#ffffff14;color:#9fb}.tag.equipped{background:var(--denim);color:#fff}
