:root{--night: #0b1226;--night-2: #131d3a;--ink: #24150c;--cream: #f6e7c8;--cream-dim: #d8c6a2;--ember: #f59a2c;--ember-deep: #c85a1c;--moss: #6b7a3f;--bark: #7a4a2a;--panel-h: 196px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(120% 80% at 50% 0%,#1a2850 0%,var(--night) 55%,#070b18 100%) fixed;color:var(--cream);font-family:Fredoka,ui-rounded,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit}.app{min-height:100svh;display:flex;flex-direction:column;align-items:center}.stage{position:relative;width:min(100vw,calc((100svh - var(--panel-h)) * 1408 / 768),1408px);aspect-ratio:1408 / 768;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation;background:#0d1630;box-shadow:0 30px 80px #0000008c}@media(min-width:1440px){.stage{border-radius:0 0 22px 22px}}.photo,.photo img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;object-fit:cover}.photo-lit{opacity:0;transition:opacity 1.6s ease}.stage.is-lit .photo-lit{opacity:1}.scene,.fire-canvas,.warm-glow,.vignette{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.scene{overflow:visible}.warm-glow{opacity:0;background:radial-gradient(60% 70% at 50.5% 72%,rgba(255,150,60,.42),rgba(255,110,30,.12) 45%,transparent 70%);mix-blend-mode:screen}.vignette{background:radial-gradient(120% 95% at 50% 55%,transparent 55%,rgba(4,7,18,.55) 100%)}.stage.has-match{cursor:none}.wood-drop{animation:wood-drop .55s cubic-bezier(.3,.7,.4,1) both}@keyframes wood-drop{0%{transform:translate(var(--dx),var(--dy));opacity:.2}15%{opacity:1}55%{transform:translate(var(--mx),var(--my))}82%{transform:translateY(5px)}to{transform:translate(0)}}.wood-pile{transition:opacity 1.4s ease}.wood-pile.is-hidden{opacity:0}.wood-feed{animation:wood-feed 1.05s cubic-bezier(.3,.7,.4,1) both}@keyframes wood-feed{0%{transform:translate(var(--dx),var(--dy));opacity:.2}15%{opacity:1}45%{transform:translate(var(--mx),var(--my));opacity:1}70%{transform:translate(0);opacity:1;filter:brightness(1.4)}to{transform:translateY(8px);opacity:0;filter:brightness(2.2) saturate(1.4)}}.pit-target{fill:#ffbe5a12;stroke:#ffd27a;stroke-width:4;stroke-dasharray:18 14;animation:march 1s linear infinite,pulse 1.4s ease-in-out infinite}@keyframes march{to{stroke-dashoffset:-32}}@keyframes pulse{50%{stroke-opacity:.35;fill:#ffbe5a24}}.match-cursor{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;opacity:0;z-index:6;transition:opacity .15s}.match-svg{position:absolute;width:clamp(44px,5.6vw,76px);height:clamp(44px,5.6vw,76px);left:-22%;top:-12%;transform:translate(-30%,-20%);filter:drop-shadow(0 4px 4px rgba(0,0,0,.45))}.match-cursor .match-svg{animation:wiggle 1.2s ease-in-out infinite}@keyframes wiggle{50%{rotate:-8deg}}.struck-match{position:absolute;width:0;height:0;pointer-events:none;z-index:6;animation:struck-out 1.5s ease forwards}.struck-match .match-svg{animation:strike .35s ease-out both}.match-flame{transform-box:fill-box;transform-origin:50% 100%;animation:match-flame .12s ease-in-out infinite alternate;opacity:0;animation-delay:.22s;animation-fill-mode:both}@keyframes strike{0%{translate:-60px 10px;rotate:-20deg}to{translate:0 0;rotate:0deg}}@keyframes match-flame{0%{opacity:1;scale:1 .9}to{opacity:1;scale:.92 1.08}}@keyframes struck-out{0%,70%{opacity:1}to{opacity:0}}.bubble{position:absolute;transform:translate(-50%,-100%);max-width:min(46%,300px);padding:.5em .85em .55em;background:#fff8e8;color:var(--ink);border:3px solid var(--ink);border-radius:18px;font-family:Gochi Hand,Fredoka,cursive;font-size:clamp(14px,1.7vw,23px);line-height:1.15;text-align:center;box-shadow:0 5px #24150c8c;pointer-events:none;z-index:5;animation:pop-in .28s cubic-bezier(.2,1.4,.4,1) both}.bubble:after{content:"";position:absolute;left:50%;bottom:-13px;width:18px;height:18px;background:#fff8e8;border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);transform:translate(-50%) rotate(45deg)}@keyframes pop-in{0%{opacity:0;scale:.6}to{opacity:1;scale:1}}.toast{position:absolute;left:50%;bottom:5%;transform:translate(-50%);padding:.55em 1.1em;background:#140e0ad1;border:2px solid rgba(255,210,122,.6);color:#ffe1a3;border-radius:999px;font-weight:600;font-size:clamp(13px,1.5vw,19px);white-space:nowrap;z-index:7;pointer-events:none;animation:toast .35s cubic-bezier(.2,1.3,.4,1) both;box-shadow:0 8px 30px #0006,0 0 30px #f59a2c40}@keyframes toast{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}.intro{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:4%;background:radial-gradient(75% 70% at 50% 45%,#080c1c40,#080c1cb8);z-index:8;animation:fade-in .8s ease both}.intro-card{text-align:center;max-width:620px}.intro-kicker{margin:0 0 .3em;font-family:Gochi Hand,cursive;font-size:clamp(16px,2.1vw,26px);color:#ffd27a;text-shadow:0 2px 0 var(--ink)}.intro h1{margin:0;font-size:clamp(38px,7.4vw,96px);line-height:.95;font-weight:700;letter-spacing:.01em;color:var(--cream);-webkit-text-stroke:clamp(1.5px,.25vw,3px) var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink),0 0 40px rgba(245,154,44,.55)}.intro-copy{margin:.8em auto 1.2em;max-width:34em;font-size:clamp(14px,1.7vw,20px);line-height:1.4;color:#f1e3c4;text-shadow:0 2px 6px rgba(0,0,0,.8)}.intro-note{margin:1em 0 0;font-size:clamp(11px,1.2vw,14px);color:var(--cream-dim);opacity:.85}@keyframes fade-in{0%{opacity:0}}.panel{width:min(100%,1408px);padding:14px clamp(14px,2.4vw,28px) 18px;display:grid;gap:12px;opacity:.55;transition:opacity .5s}.panel.is-on{opacity:1}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.title-block h2{margin:0;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:#ffd27a;font-weight:600}.hint{margin:2px 0 0;font-size:clamp(15px,1.6vw,19px);color:var(--cream);min-height:1.3em}.meters{display:flex;gap:12px;align-items:center}.counter{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 8px;border-radius:12px;background:#ffffff0d;border:2px solid rgba(255,255,255,.08);transition:border-color .3s,background .3s}.counter.is-done{border-color:#ffd27a8c;background:#f59a2c1f}.counter-icon .icon{width:28px;height:28px}.counter-text{display:grid;line-height:1.1}.counter-label{font-size:12px;color:var(--cream-dim)}.counter-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.counter-need{font-size:14px;color:var(--cream-dim);font-weight:500}.check{color:#ffd27a}.meter-fuel{display:grid;gap:4px;min-width:min(280px,70vw)}.meter-label{font-size:12px;color:var(--cream-dim)}.bar{display:block;height:14px;border-radius:999px;background:#ffffff14;border:2px solid rgba(255,255,255,.12);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:inherit;transition:width .4s ease}.bar-fill.fuel{background:linear-gradient(90deg,#c8372b,#f59a2c 55%,#ffe08a);box-shadow:0 0 14px #f59a2c99}.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(8px,1.4vw,16px)}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.75em 1em;min-height:56px;border:3px solid var(--ink);border-radius:16px;color:var(--cream);font-weight:600;font-size:clamp(14px,1.55vw,19px);cursor:pointer;box-shadow:0 6px 0 var(--ink),inset 0 2px #ffffff2e;text-shadow:0 2px 0 rgba(36,21,12,.7);transition:transform .08s,box-shadow .08s,filter .15s}.btn .icon{width:1.6em;height:1.6em;flex:none}.btn:hover:not(:disabled){filter:brightness(1.1)}.btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px 0 var(--ink),inset 0 2px #ffffff2e}.btn:focus-visible{outline:3px solid #ffd27a;outline-offset:3px}.btn:disabled{cursor:not-allowed;filter:saturate(.4) brightness(.75)}.btn-small{background:linear-gradient(#7d8c4a,#5c6b33)}.btn-log{background:linear-gradient(#94603a,#6e4223)}.btn-match{background:linear-gradient(#d1532f,#a2341d)}.btn-big{background:linear-gradient(#f2a23c,#d2691f);font-size:clamp(16px,2vw,24px);padding:.7em 1.4em}.btn-match.is-calling{animation:calling 1.1s ease-in-out infinite}@keyframes calling{50%{box-shadow:0 6px 0 var(--ink),0 0 0 6px #f59a2c59,0 0 30px #f59a2c99}}.badge{position:absolute;top:-10px;right:-8px;min-width:26px;height:26px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:#ffd27a;color:var(--ink);border:2.5px solid var(--ink);font-size:14px;font-weight:700;text-shadow:none;animation:pop-in .25s cubic-bezier(.2,1.4,.4,1) both}.panel-foot{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--cream-dim)}.stat strong{color:#ffd27a}.foot-buttons{display:flex;gap:6px}.link-btn{background:none;border:0;color:var(--cream-dim);padding:6px 10px;border-radius:8px;cursor:pointer}.link-btn:hover:not(:disabled){background:#ffffff12;color:var(--cream)}.link-btn:disabled{opacity:.4;cursor:default}@media(max-width:700px){.stage{width:100vw;aspect-ratio:10 / 7.2}.bubble{font-size:14px;max-width:62%;border-width:2.5px;padding:.4em .7em}.actions{grid-template-columns:1fr}.btn{min-height:52px}.meters{width:100%}.counter{flex:1}.intro h1{-webkit-text-stroke-width:1.5px;text-shadow:0 4px 0 var(--ink)}.intro-copy{display:none}}.error-page{max-width:560px;margin:20vh auto;padding:0 20px;text-align:center}.error-page a{color:#ffd27a}
