*,*:before,*:after{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;padding:0;overflow:hidden;background-color:#000;color:#fff;font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}#root{display:flex;align-items:stretch;justify-content:stretch;width:100%;height:100%}@media(min-resolution:2dppx){body{background-color:#000}}.flame-row{position:absolute;bottom:calc(5% + var(--row-blur) * .4px);left:50%;display:flex;gap:clamp(8px,2vw,22px);transform:translate(-50%);filter:blur(calc(var(--row-blur) * 1px));pointer-events:none;z-index:var(--zIndex)}.flame{width:calc(14px + var(--flare) * 8px);height:calc(80px + 90px * var(--heat));transform-origin:bottom center;transform:scaleY(var(--scale)) translateY(calc(var(--heat) * -2px));border-radius:50% 50% 40% 40%/70% 70% 35% 35%;opacity:calc(.55 * var(--intensity) * var(--heat) * var(--night-inv));filter:blur(1px) brightness(calc(.92 + var(--heat) * .25));will-change:transform,opacity;background:radial-gradient(ellipse at bottom,var(--flare-white) 0%,var(--flame-gold) 28%,var(--flame-orange) 54%,rgba(255,110,0,.18) 70%,rgba(184,50,0,.12) 85%,transparent 100%);animation-delay:var(--delay);animation:flame-flicker calc(2.4s + 1.6s * (1 - var(--heat))) cubic-bezier(.4,0,.2,1) infinite}@keyframes flame-flicker{0%{transform:scaleY(var(--scale)) translate(0) translateY(0)}25%{transform:scaleY(calc(var(--scale) * 1.08)) translate(var(--drift)) translateY(-1.4px)}55%{transform:scaleY(calc(var(--scale) * .94)) translate(calc(var(--drift) * -.6)) translateY(.8px)}to{transform:scaleY(var(--scale)) translate(0) translateY(0)}}@media(prefers-reduced-motion:reduce){.flame{animation:none!important}}.embers{position:absolute;bottom:4%;left:50%;width:80vw;max-width:1200px;height:120px;transform:translate(-50%);pointer-events:none;z-index:2}.ember{width:var(--size);height:var(--size);bottom:0;left:var(--x);position:absolute;border-radius:50%;transform:scale(var(--cluster)) translate(var(--sway));background:radial-gradient(circle at center,rgba(255,200,140,calc(.8 + .2 * var(--glow))),rgba(255,130,40,.35) 60%,transparent 85%);filter:blur(1.5px);opacity:calc(var(--ember-opacity) * var(--intensity));animation-delay:var(--delay);animation:ember-rise calc(8s + var(--rise) * .35) linear infinite}@keyframes ember-rise{0%{opacity:0;transform:scale(var(--cluster)) translate(var(--sway)) translateY(0)}15%{opacity:calc(.8 * var(--ember-opacity))}to{opacity:0;transform:translate(calc(var(--drift) * 2)) translateY(calc(var(--rise) * -1.6)) scale(.1)}}@media(prefers-reduced-motion:reduce){.ember{animation:none!important}}:root{--black: #000;--coal: #0c0704;--ember-red: #b83200;--flame-orange: #ff6a00;--flame-gold: #ffd27a;--flare-white: #fff3dc;--night: 0;--night-inv: 1;--intensity: 1}.room{position:relative;width:100vw;height:100vh;background:radial-gradient(circle at center 60%,#140a06,#050200 70%,#000);overflow:hidden;color-scheme:dark;animation:camera-drift 60s ease-in-out infinite}.room:before{content:"";position:absolute;inset:0;background:radial-gradient(circle,transparent 62%,rgba(0,0,0,.45));pointer-events:none;z-index:1}.room:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at center bottom,rgba(255,140,80,.22) 0%,transparent 70%);opacity:calc(.28 + .18 * var(--intensity) * var(--night-inv));filter:blur(36px) saturate(.75);mix-blend-mode:screen;z-index:0}.fireplace-shell{position:absolute;bottom:0;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:3}.mantle{width:100%;height:56px;background:linear-gradient(to bottom,#ffffff0f,#191919 18%,#0b0b0b);box-shadow:0 10px 28px #000000d9}.hearth{width:100%;height:84px;background:linear-gradient(to bottom,#ffffff0a,#0b0b0b,#050505);box-shadow:inset 0 8px 16px #000000e6}.firebox{position:relative;width:100vw;max-width:1400px;height:420px;background:radial-gradient(circle at center bottom,#120804,#070301 45%,#000 80%);overflow:hidden}.logs{position:absolute;bottom:4%;left:50%;transform:translate(-50%);width:80vw;max-width:1200px;height:60px;border-radius:30px;background:linear-gradient(to top,#0b0502,#020100);box-shadow:inset 0 0 18px #ff5a1e40,0 12px 24px #000c;animation:log-pulse 12s ease-in-out infinite}.logs:after{content:"";position:absolute;inset:6px;border-radius:inherit;background:radial-gradient(circle at 30% 50%,rgba(255,80,20,.25),transparent 60%),radial-gradient(circle at 70% 60%,rgba(255,120,40,.18),transparent 65%);mix-blend-mode:screen;opacity:calc(.6 * var(--intensity));pointer-events:none}.glow{position:absolute;bottom:4%;left:50%;transform:translate(-50%);width:90vw;max-width:1600px;height:340px;background:radial-gradient(ellipse at 50% 80%,rgba(255,160,60,.35),rgba(255,120,30,.18) 40%,rgba(255,90,20,.12) 55%,transparent 75%);filter:blur(calc(42px * var(--intensity))) saturate(1.1);opacity:calc(.45 * var(--intensity) * var(--night-inv) + .2);mix-blend-mode:screen;animation:glow-pulse 12s ease-in-out infinite}.heat-webgl{position:absolute;inset:0;pointer-events:none;z-index:4;mix-blend-mode:soft-light;opacity:calc(.45 + var(--intensity) * .12);filter:blur(.3px);-webkit-mask-image:radial-gradient(circle at 50% 80%,rgba(0,0,0,1) 0%,transparent 85%);mask-image:radial-gradient(circle at 50% 80%,rgba(0,0,0,1) 0%,transparent 85%)}.sound-toggle{position:absolute;top:18px;right:18px;width:42px;height:42px;border-radius:999px;border:none;background:#00000059;color:#ffc88cd9;box-shadow:0 0 12px #ffa03c80;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.45;z-index:10;transition:all .3s ease}.room:not(:hover) .sound-toggle{opacity:.02;pointer-events:none}.sound-toggle:hover{transform:scale(1.08);box-shadow:0 0 18px #ffb45099}.sound-toggle:active{transform:scale(.96)}@keyframes camera-drift{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.002) translateY(-.6px)}}@keyframes glow-pulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes log-pulse{0%,to{filter:brightness(calc(.95 + var(--night) * .08))}50%{filter:brightness(calc(1.05 + var(--night) * .12))}}@media(prefers-reduced-motion:reduce){.flame,.glow,.ember,.logs{animation:none!important}.sound-toggle{display:none}}@supports (content-visibility: auto){.firebox{content-visibility:auto;contain-intrinsic-size:420px}}.app{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;gap:0;background-color:#000}
