:root{--bg:#1c2a14;--amber:#f0b648;--leaf:#8fd06a;--red:#ff6b4a;--text:#fbf6ea;--glow:0 0 18px rgba(240,182,72,.55)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
#scene3d{position:fixed;inset:0;width:100%;height:100%;display:block}
.screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px 18px;text-align:center;background:radial-gradient(ellipse at 50% 30%,rgba(70,60,20,.4),rgba(14,18,8,.9) 72%);z-index:5;overflow-y:auto}
.screen[hidden]{display:none}
.screen.clear{background:linear-gradient(180deg,rgba(14,18,8,.05),rgba(14,18,8,.2) 40%,rgba(14,18,8,.85))}
.dim{background:rgba(14,18,8,.78);backdrop-filter:blur(6px)}
.logo{display:flex;flex-direction:column;align-items:center}
.logo h1{margin:0;font-size:clamp(50px,15vw,96px);line-height:.88;letter-spacing:.05em;font-weight:900;background:linear-gradient(180deg,#fff4d0,#f0b648 50%,#a8601e);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 0 rgba(0,0,0,.45)) drop-shadow(0 0 14px rgba(240,182,72,.45))}
.brand{font-size:22px;font-weight:800;letter-spacing:.2em;color:var(--leaf);text-shadow:0 0 12px rgba(143,208,106,.6);align-self:flex-end}
.subtitle{margin:0 0 6px;letter-spacing:.06em;font-size:15px;text-shadow:0 2px 6px #000}
.kicker{margin:0;font-size:12px;letter-spacing:.24em;opacity:.8}
h2{margin:0 0 4px;letter-spacing:.12em;font-size:24px;text-shadow:var(--glow)}
button{font:inherit;color:inherit;cursor:pointer}
.big{min-width:220px;padding:15px 28px;font-size:21px;font-weight:800;letter-spacing:.16em;border:2px solid var(--amber);border-radius:14px;background:linear-gradient(180deg,rgba(240,182,72,.35),rgba(140,80,20,.25));box-shadow:var(--glow)}
.small{min-width:190px;padding:10px 18px;font-size:14px;letter-spacing:.14em;border:1px solid rgba(240,182,72,.55);border-radius:12px;background:rgba(20,24,10,.7)}
.link{text-decoration:none;color:var(--text);display:inline-block}
.howto{max-width:440px;font-size:12.5px;opacity:.85;line-height:1.5;text-shadow:0 1px 4px #000}
.info{margin:0;opacity:.9;font-size:14px;max-width:440px;text-shadow:0 1px 4px #000;line-height:1.4}
.result{font-size:46px;font-weight:900;margin:0;color:var(--amber);text-shadow:var(--glow)}
.small-result{font-size:26px}
.goals,.upgrades{list-style:none;margin:4px 0;padding:0;width:min(100%,420px);display:flex;flex-direction:column;gap:6px;text-align:left}
.goals li{padding:8px 12px;border-radius:10px;background:rgba(20,24,10,.72);border:1px solid rgba(240,182,72,.3);font-size:15px}
.upgrades li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:rgba(20,24,10,.75);border:1px solid rgba(240,182,72,.3)}
.upgrades li b{flex:1;font-size:15px}
.upgrades li small{display:block;font-weight:400;opacity:.75;font-size:11.5px}
.upgrades .dots{letter-spacing:2px;color:var(--amber);font-size:13px}
.upgrades button{min-width:76px;padding:8px 10px;border-radius:10px;border:1px solid var(--amber);background:rgba(240,182,72,.25);font-weight:800;font-size:13px}
.upgrades button:disabled{opacity:.35}
.grid{display:grid;grid-template-columns:repeat(3,96px);gap:9px;margin:4px 0 8px}
.grid button{height:74px;border-radius:12px;border:1px solid rgba(240,182,72,.55);background:rgba(40,34,14,.75);font-size:20px;font-weight:900;padding:4px}
.grid button small{display:block;font-size:9.5px;font-weight:600;opacity:.85;line-height:1.15;margin-top:3px}
.grid button.done{border-color:var(--leaf)}
.grid button:disabled{opacity:.3}
#hud{position:fixed;inset:0;pointer-events:none;z-index:3}
#hud[hidden]{display:none}
.top{position:absolute;top:calc(env(safe-area-inset-top) + 8px);left:10px;right:10px;display:flex;align-items:center;gap:8px}
.icon{pointer-events:auto;width:40px;height:40px;border-radius:12px;border:1px solid rgba(240,182,72,.55);background:rgba(20,24,10,.72);font-size:16px}
.tag{font-size:11.5px;letter-spacing:.1em;padding:6px 9px;border-radius:10px;background:rgba(20,24,10,.72);border:1px solid rgba(240,182,72,.3);white-space:nowrap}
.res{margin-left:auto;font-size:12.5px;font-weight:800;text-align:right;line-height:1.3;text-shadow:0 1px 3px #000,0 0 8px #000}
.hudgoals{position:absolute;top:calc(env(safe-area-inset-top) + 56px);left:10px;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;max-width:62vw}
.hudgoals li{font-size:12px;padding:3px 8px;border-radius:8px;background:rgba(20,24,10,.66);border-left:3px solid var(--amber)}
.hudgoals li.ok{border-left-color:var(--leaf);opacity:.75}
.boss{position:absolute;top:calc(env(safe-area-inset-top) + 56px);right:10px;width:38vw;max-width:220px;text-align:right;font-size:11px;letter-spacing:.14em;color:#ffd5c8}
.boss[hidden]{display:none}
.bar{margin-top:3px;height:9px;border-radius:6px;background:rgba(255,255,255,.12);overflow:hidden;border:1px solid rgba(255,107,74,.7)}
.bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ff6b4a,#f0b648)}
.message{position:absolute;top:30%;left:0;right:0;text-align:center;font-size:clamp(22px,7vw,40px);font-weight:900;letter-spacing:.08em;text-shadow:0 0 16px rgba(0,0,0,.9),0 3px 0 rgba(0,0,0,.5);opacity:0;transition:opacity .25s;padding:0 12px}
.message.shown{opacity:1}
.side{position:absolute;right:10px;top:calc(env(safe-area-inset-top) + 120px);display:flex;flex-direction:column;gap:7px;align-items:flex-end}
.chip{pointer-events:auto;padding:8px 11px;border-radius:11px;border:1px solid rgba(240,182,72,.6);background:rgba(20,24,10,.75);font-size:12px;font-weight:800;letter-spacing:.06em}
.tools{position:absolute;left:8px;right:8px;bottom:calc(env(safe-area-inset-bottom) + 176px);display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.tools[hidden]{display:none}
.tool{pointer-events:auto;padding:9px 10px;border-radius:11px;border:1px solid rgba(240,182,72,.6);background:rgba(20,24,10,.8);font-size:12px;font-weight:800}
.tool.on{background:rgba(240,182,72,.5);box-shadow:0 0 14px rgba(240,182,72,.6)}
.bottom{position:absolute;left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 14px);display:flex;justify-content:space-between;align-items:flex-end;padding:0 14px}
.stick{pointer-events:auto;width:132px;height:132px;border-radius:50%;border:2px solid rgba(251,246,234,.35);background:rgba(20,24,10,.35);position:relative;touch-action:none}
.knob{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:rgba(240,182,72,.55);border:2px solid var(--amber);box-shadow:var(--glow);pointer-events:none}
.actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.act{pointer-events:auto;width:86px;height:86px;border-radius:50%;font-weight:900;letter-spacing:.06em;font-size:14px;touch-action:none;line-height:1.05}
.act.bite{width:98px;height:98px;border:3px solid var(--red);background:radial-gradient(circle,rgba(255,107,74,.55),rgba(255,107,74,.15));font-size:16px}
.act.call{border:3px solid var(--leaf);background:radial-gradient(circle,rgba(143,208,106,.5),rgba(143,208,106,.12))}
.act.door{width:auto;height:auto;border-radius:12px;padding:10px 14px;border:2px solid var(--amber);background:rgba(240,182,72,.35)}
.act[hidden]{display:none}
.act.pressed{transform:scale(.93)}
.labels{position:fixed;inset:0;pointer-events:none;z-index:4;overflow:hidden}
.bubble{position:absolute;transform:translate(-50%,-100%);max-width:170px;padding:5px 9px;border-radius:12px;background:#fffef6;color:#1a1a12;font-size:12px;font-weight:700;line-height:1.25;box-shadow:0 2px 0 rgba(0,0,0,.35);text-align:center;animation:pop .18s ease-out}
.bubble:after{content:"";position:absolute;left:50%;bottom:-6px;margin-left:-6px;border:6px solid transparent;border-bottom:0;border-top-color:#fffef6}
.pop{position:absolute;transform:translate(-50%,-50%);font-weight:900;font-size:14px;color:var(--amber);text-shadow:0 2px 0 #000,0 0 8px #000;animation:rise 1.1s ease-out forwards;white-space:nowrap}
@keyframes pop{0%{transform:translate(-50%,-100%) scale(.5)}100%{transform:translate(-50%,-100%) scale(1)}}
@keyframes rise{0%{opacity:1;margin-top:0}100%{opacity:0;margin-top:-40px}}
@media (orientation:landscape) and (max-height:500px){.stick{width:110px;height:110px}.act{width:70px;height:70px}.act.bite{width:80px;height:80px}.tools{bottom:calc(env(safe-area-inset-bottom) + 10px);left:140px;right:200px}}
