:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;background:#070811;color:#f8efe6;font-synthesis:none}*{box-sizing:border-box}html,body,#experience{width:100%;height:100%;margin:0;overflow:hidden}body{background:#070811}.intro,.controls-hint,.quality,.music,.blow-meter{opacity:0;visibility:hidden}body.scene-ready .intro,body.scene-ready .controls-hint,body.scene-ready .quality,body.scene-ready .music,body.scene-ready .blow-meter{opacity:1;visibility:visible}canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.vignette,.grain{position:fixed;inset:0;pointer-events:none;z-index:2}.vignette{background:linear-gradient(90deg,rgba(2,3,10,.48),transparent 28%,transparent 72%,rgba(2,3,10,.42)),radial-gradient(circle at 50% 48%,transparent 42%,rgba(2,3,9,.54) 100%)}.grain{opacity:.055;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");animation:grain .22s steps(2) infinite}@keyframes grain{0%{transform:translate(0)}25%{transform:translate(-1.5%,1%)}50%{transform:translate(1%,-1.5%)}75%{transform:translate(.5%,1.5%)}}.intro{position:fixed;z-index:4;top:clamp(32px,7vh,76px);left:clamp(24px,6vw,88px);width:min(350px,calc(100vw - 48px));pointer-events:none;text-shadow:0 2px 24px rgba(0,0,0,.7);transition:opacity 1.5s ease,transform 1.5s ease,visibility 0s linear}.eyebrow{margin:0 0 16px;color:#a9b5d2;font-size:10px;letter-spacing:.34em;font-weight:500}h1{margin:0;font:600 clamp(34px,4vw,59px)/.94 Inter,sans-serif;letter-spacing:-.055em}h1 em{color:#e7a369;font:inherit;font-weight:400}.lead{width:min(350px,85vw);margin:25px 0 0;color:#eeeff7a3;font-size:11px;line-height:1.8;letter-spacing:.025em}.lead b{color:#f2c19a;font-weight:500}.blow-meter{position:fixed;z-index:6;top:clamp(25px,5vh,52px);left:50%;width:min(430px,calc(100vw - 420px));min-width:280px;transform:translate(-50%);padding:14px 17px 11px;border:1px solid rgba(255,255,255,.13);border-radius:17px;background:linear-gradient(135deg,#0c0e1cc2,#0708117a);box-shadow:0 18px 55px #00000040,inset 0 1px #ffffff09;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:opacity .8s ease .2s,transform .8s ease .2s,visibility 0s linear}.blow-meter__copy{display:flex;align-items:baseline;justify-content:center}.blow-meter__copy span{color:#f5e9df;font:500 11px/1 Inter,sans-serif;letter-spacing:.06em}.blow-meter__track{height:5px;margin-top:11px;overflow:hidden;border-radius:999px;background:#ffffff17;box-shadow:inset 0 1px 3px #00000052}.blow-meter__fill{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e96d46,#f4b068 55%,#ffe1a3);box-shadow:0 0 14px #f2975799;transition:width .65s cubic-bezier(.22,.8,.25,1)}.blow-meter__candles{position:absolute;top:12px;right:calc(100% + 13px);display:flex;gap:5px}.blow-meter__candles i{position:relative;width:4px;height:15px;border-radius:2px;background:#dfc3a6;opacity:.9;transition:opacity .4s ease,filter .4s ease}.blow-meter__candles i:before{content:"";position:absolute;left:-2px;bottom:13px;width:8px;height:11px;border-radius:55% 45% 58% 42%/72% 65% 35% 28%;background:#f6a24f;box-shadow:0 0 9px #ed7d37;transform-origin:50% 100%;animation:mini-flame 1s ease-in-out infinite alternate}.blow-meter__candles i.is-out{opacity:.32;filter:grayscale(1)}.blow-meter__candles i.is-out:before{opacity:0;transform:scale(0)}.blow-meter:after{content:attr(data-contributor);position:absolute;top:calc(100% + 8px);left:50%;color:#f2c19ac2;font:500 8px/1 Inter,sans-serif;letter-spacing:.12em;white-space:nowrap;opacity:0;transform:translate(-50%,-4px);pointer-events:none}.blow-meter.has-contribution:after{animation:contribution 1.8s ease both}.blow-meter.candle-out{animation:meter-pulse .85s ease}.blow-meter.is-complete{border-color:#e7a36961}.blow-meter.is-complete .blow-meter__copy span{color:#e7a369}@keyframes mini-flame{0%{transform:rotate(-5deg) scale(.88,1.08)}to{transform:rotate(5deg) scale(1.05,.92)}}@keyframes contribution{0%{opacity:0;transform:translate(-50%,-4px)}18%,65%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,5px)}}@keyframes meter-pulse{45%{border-color:#f6af69a6;box-shadow:0 18px 55px #00000040,0 0 28px #ef7e4133}}.controls-hint{position:fixed;z-index:4;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;gap:10px;color:#f0f1f794;font-size:9px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;pointer-events:none;transition:opacity 1s ease}.mouse-icon{width:15px;height:22px;border:1px solid rgba(255,255,255,.45);border-radius:9px;position:relative}.mouse-icon:after{content:"";position:absolute;width:2px;height:4px;border-radius:2px;background:#e7a369;left:6px;top:4px;animation:scroll 1.8s ease-in-out infinite}@keyframes scroll{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(6px);opacity:1}}.quality{position:fixed;z-index:5;right:clamp(20px,4vw,52px);top:clamp(24px,5vh,52px);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:10px 14px;background:#07081157;color:#ffffffb3;font:500 8px/1 Inter,sans-serif;letter-spacing:.18em;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;gap:8px;cursor:pointer}.music{position:fixed;z-index:5;right:clamp(20px,4vw,52px);top:clamp(72px,11vh,108px);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:9px 13px;background:#07081157;color:#ffffffad;font:500 8px/1 Inter,sans-serif;letter-spacing:.18em;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;gap:8px;cursor:pointer}.music-bars{display:flex;align-items:flex-end;gap:2px;height:10px}.music-bars i{width:2px;height:4px;border-radius:2px;background:#c96a79}.music.playing .music-bars i{animation:music-bar .8s ease-in-out infinite alternate}.music.playing .music-bars i:nth-child(2){animation-delay:.2s}.music.playing .music-bars i:nth-child(3){animation-delay:.4s}@keyframes music-bar{to{height:10px;background:#ff8092}}.quality:hover{border-color:#e7a36973}.quality-dot{width:5px;height:5px;border-radius:50%;background:#e7a369;box-shadow:0 0 8px #e7a369}.loader{position:fixed;inset:0;z-index:20;display:grid;place-content:center;justify-items:center;gap:12px;background:radial-gradient(circle at center,#111426,#05060d 70%);transition:opacity 1.2s ease,visibility 1.2s}.loader.hidden{opacity:0;visibility:hidden}.loader p{margin:7px 0 0;font:500 18px/1 Inter,sans-serif;letter-spacing:.03em}.loader span{color:#7d8296;font-size:9px;letter-spacing:.2em}.loader-flame{width:17px;height:26px;border-radius:52% 48% 55% 45%/68% 61% 39% 32%;background:radial-gradient(circle at 50% 72%,#fff8cf 0 8%,#ffc36b 27%,#ed6b30 58%,transparent 70%);filter:drop-shadow(0 0 12px #f28d42);animation:flame 1.1s ease-in-out infinite alternate}@keyframes flame{0%{transform:rotate(-4deg) scale(.92,1.06)}to{transform:rotate(5deg) scale(1.04,.94)}}.birthday-popup{position:fixed;inset:0;z-index:18;display:grid;place-items:center;padding:24px;background:#03040aa3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s ease}.birthday-popup.is-visible{opacity:1;visibility:visible}.birthday-popup__layout{width:min(820px,100%);display:grid;grid-template-columns:minmax(0,1fr) 280px;align-items:stretch;gap:16px}.birthday-popup__card{position:relative;width:100%;padding:48px 42px 40px;overflow:hidden;border:1px solid rgba(244,176,104,.35);border-radius:28px;background:radial-gradient(circle at 50% 0,rgba(102,48,67,.72),transparent 48%),linear-gradient(145deg,#121426f7,#070811fa);box-shadow:0 32px 100px #0000009e,0 0 50px #e7a3691f;text-align:center;transform:translateY(16px) scale(.96);transition:transform .55s cubic-bezier(.2,.8,.2,1),border-color .4s ease}.birthday-popup.is-visible .birthday-popup__card{transform:translateY(0) scale(1)}.birthday-popup.is-opened .birthday-popup__card{border-color:#f4b068b8;box-shadow:0 32px 100px #0000009e,0 0 70px #e7a3694d}.birthday-popup__gift{display:block;margin-bottom:18px;font-size:48px;filter:drop-shadow(0 8px 18px rgba(231,163,105,.35))}.birthday-popup h2{margin:0;color:#fff4ea;font:600 clamp(25px,4vw,36px)/1.12 Inter,sans-serif;letter-spacing:-.04em}.birthday-popup p{margin:17px auto 28px;color:#eeeff7ad;font:400 13px/1.7 Inter,sans-serif}.birthday-popup__button-anchor{height:42px;display:flex;align-items:center;justify-content:center}.birthday-popup__button{position:relative;z-index:3;border:0;border-radius:999px;padding:14px 24px;background:linear-gradient(135deg,#e68455,#f2b06d);color:#160c0a;font:700 11px/1 Inter,sans-serif;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;box-shadow:0 10px 30px #e7844d47;transition:transform .2s ease,box-shadow .2s ease;will-change:left,top,transform}.birthday-popup__button:hover{transform:translateY(-2px);box-shadow:0 14px 38px #e7844d66}.birthday-popup__button.is-floating{position:fixed;z-index:22;margin:0;transition:left .48s cubic-bezier(.22,.8,.22,1),top .48s cubic-bezier(.22,.8,.22,1),transform .2s ease,box-shadow .2s ease}.birthday-popup__button.is-escaping{pointer-events:none;cursor:default}.birthday-popup__button.is-escaping:hover{transform:none;box-shadow:0 10px 30px #e7844d47}.birthday-popup__button.is-catchable{animation:catchable-pulse 1s ease-in-out infinite alternate}.birthday-popup__close{position:absolute;top:14px;right:16px;width:34px;height:34px;border:1px solid rgba(255,255,255,.12);border-radius:50%;background:#ffffff0a;color:#ffffffb8;font:300 22px/1 Inter,sans-serif;cursor:pointer}.birthday-popup__leaderboard{min-width:0;padding:24px 18px 18px;overflow:hidden;border:1px solid rgba(255,255,255,.11);border-radius:28px;background:linear-gradient(155deg,#111424e0,#070811d1);box-shadow:0 28px 80px #0000005c;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.birthday-popup__leaderboard-heading{padding:2px 5px 17px;border-bottom:1px solid rgba(255,255,255,.08)}.birthday-popup__leaderboard-heading span{display:block;margin-bottom:7px;color:#e7a369;font:600 8px/1 Inter,sans-serif;letter-spacing:.18em}.birthday-popup__leaderboard-heading strong{color:#fff4ea;font:600 17px/1.2 Inter,sans-serif;letter-spacing:-.025em}.blow-leaderboard{max-height:270px;margin:12px 0 0;padding:0;overflow-y:auto;list-style:none;scrollbar-width:thin;scrollbar-color:rgba(231,163,105,.35) transparent}.blow-leaderboard li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 5px;border-bottom:1px solid rgba(255,255,255,.055)}.blow-leaderboard li:last-child{border-bottom:0}.blow-leaderboard__rank{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#ffffff0f;color:#ffffff80;font:600 9px/1 Inter,sans-serif}.blow-leaderboard li:nth-child(1) .blow-leaderboard__rank{background:linear-gradient(135deg,#ffd878,#d99036);color:#2a1706}.blow-leaderboard li:nth-child(2) .blow-leaderboard__rank{background:linear-gradient(135deg,#e1e6ed,#8f9baa);color:#19202a}.blow-leaderboard li:nth-child(3) .blow-leaderboard__rank{background:linear-gradient(135deg,#d9925f,#8f4d2f);color:#251008}.blow-leaderboard__name{overflow:hidden;color:#ffffffdb;font:500 10px/1.2 Inter,sans-serif;text-overflow:ellipsis;white-space:nowrap}.blow-leaderboard__count{color:#e7a369;font:600 9px/1 Inter,sans-serif;white-space:nowrap}.blow-leaderboard__empty{display:block!important;padding:24px 5px!important;color:#ffffff6b;font:400 10px/1.6 Inter,sans-serif;text-align:center}.gift-video-overlay{position:fixed;inset:0;z-index:40;display:none;overflow:hidden;background:#000}.gift-video-overlay.is-visible{display:block}.gift-video{width:100%;height:100%;display:block;object-fit:contain;background:#000}.gift-video__close{position:absolute;z-index:4;top:18px;right:20px;width:40px;height:40px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:#05060c7a;color:#fff;font:300 25px/1 Inter,sans-serif;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer}.troll-flash{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:#000;opacity:0;visibility:hidden;pointer-events:none}.troll-flash.is-visible{opacity:1;visibility:visible}.troll-flash img{width:min(620px,72vw);max-height:82vh;object-fit:contain}@keyframes catchable-pulse{to{box-shadow:0 14px 42px #f2b06d8c,0 0 0 5px #f2b06d14}}body.interacted .controls-hint{opacity:0}body.interacted .intro{opacity:.72;transform:translateY(-5px)}@media(max-width:700px){.intro{top:28px;left:22px}.lead{display:none}.quality{top:auto;bottom:max(24px,env(safe-area-inset-bottom));right:18px}.music{top:auto;bottom:max(68px,calc(env(safe-area-inset-bottom) + 44px));right:18px}.controls-hint{left:22px;transform:none}h1{font-size:clamp(40px,12vw,56px)}.blow-meter{top:auto;bottom:116px;width:calc(100vw - 44px);min-width:0;padding:12px 14px 10px}.blow-meter__candles{top:auto;right:14px;bottom:calc(100% + 13px)}.blow-meter__copy span{font-size:10px}.birthday-popup__card{padding:42px 24px 32px;border-radius:22px}.birthday-popup{overflow-y:auto;place-items:start center}.birthday-popup__layout{grid-template-columns:1fr;margin:auto 0;padding:20px 0}.birthday-popup__leaderboard{border-radius:22px}.blow-leaderboard{max-height:190px}.gift-video__close{top:13px;right:14px}}@media(prefers-reduced-motion:reduce){.grain,.loader-flame,.mouse-icon:after,.blow-meter__candles i:before{animation:none}}
