@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--paper:#f6f4ed;--ink:#29293b;--purple:#6750df;--muted:#777681;--line:#deddd5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}.shell{max-width:1240px;margin:auto;padding:0 54px}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #a998ff;outline-offset:5px}header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:700 30px 'Space Grotesk',sans-serif;letter-spacing:-2px;color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:8px}.brand-dot{color:var(--purple);margin-left:-8px}.brand-icon{font-size:29px;background:#ded5ff;border-radius:11px;padding:0 9px;transform:rotate(-8deg);letter-spacing:0}nav{display:flex;gap:36px}.nav,.sound,.text-button{border:0;background:none;color:var(--muted);font-weight:600}.nav{padding:12px 0}.nav.active{color:var(--ink);border-bottom:2px solid var(--purple)}.nav span{margin-left:8px}.sound{border:1px solid var(--line);border-radius:24px;padding:10px 15px}.sound span{font-size:12px;margin-left:5px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;display:flex;align-items:center;gap:8px;margin:36px 0 18px}.eyebrow>span,.online-dot{height:7px;width:7px;border-radius:50%;background:#7f9f59;display:inline-block}.intro h1{font:600 clamp(42px,5vw,64px)/1.08 'Space Grotesk',sans-serif;letter-spacing:-3px;margin:0}.intro h1 span{color:var(--purple)}.intro>p{color:var(--muted);line-height:1.7;font-size:15px;margin:21px 0 0}.lobby-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;margin-top:30px}.adventure{height:375px;position:relative;background:radial-gradient(ellipse at center,#e5e0f9 0,transparent 68%)}.timo{height:310px;filter:drop-shadow(0 9px 7px #29293b10);animation:bob 4s ease-in-out infinite}.lobby-timo{position:absolute;bottom:15px;left:100px;height:335px}.speech{position:absolute;border:1px solid #d8d2eb;border-radius:15px 15px 15px 2px;padding:14px 20px;background:#fffdf8;font-size:13px;line-height:1.6;z-index:2;box-shadow:0 5px 0 #e6e1f2}.adventure .speech{top:9px;left:0;transform:rotate(-5deg)}.mini-flag{position:absolute;width:77px;padding:8px;background:white;border-radius:12px;box-shadow:0 8px 22px #30204b13;z-index:2;animation:float 5s ease-in-out infinite}.mini-flag img{width:100%;display:block;max-height:44px}.flag-jp{right:35px;top:30px;transform:rotate(12deg)}.flag-br{left:20px;top:185px;transform:rotate(-13deg);animation-delay:-2s}.flag-fr{right:5px;top:225px;transform:rotate(10deg);animation-delay:-3s}.spark{position:absolute;color:#9d86e8;font-size:30px}.s1{left:88px;top:122px}.s2{right:0;top:150px;font-size:18px}.orbit{position:absolute;border:1px dashed #d3cce4;border-radius:50%;width:330px;height:280px;left:65px;top:40px;transform:rotate(-30deg)}.orbit-two{width:390px;height:170px;left:24px;top:105px;transform:rotate(20deg)}.character-tag{position:absolute;bottom:0;left:90px;background:#fffdf8;border:1px solid var(--line);border-radius:30px;padding:11px 17px;font-size:9px;font-weight:700;letter-spacing:1px;display:flex;gap:9px;align-items:center;z-index:3}.character-tag>span:last-child{color:#b79b4d}.join-card{background:#fffefa;border:1px solid #e2dfd5;border-radius:22px;padding:32px;box-shadow:0 8px 0 #eae7df;align-self:center}.tag{font-size:10px;font-weight:700;letter-spacing:1.6px;color:var(--purple)}h2{font-family:'Space Grotesk',sans-serif;font-size:25px;letter-spacing:-1px;margin:15px 0 10px}.join-card>p{font-size:13px;color:var(--muted);margin-bottom:26px}label{font-size:10px;letter-spacing:1.4px;font-weight:700;display:block;margin-bottom:10px}.name-wrap{display:flex;align-items:center;border:1px solid #dcd9d1;border-radius:10px;background:#faf9f5;padding:0 14px;gap:10px}.name-wrap span{font-size:22px;color:#aaa4b5}input{min-width:0;border:0;background:transparent;padding:17px 0;outline:0;width:100%;font-size:14px;color:var(--ink)}.name-wrap:focus-within{border-color:var(--purple);box-shadow:0 0 0 3px #6750df18}.primary{background:var(--purple);color:white;border:0;border-radius:10px;padding:17px 22px;font-weight:700;box-shadow:0 4px 0 #4a35af;transition:transform .15s,background .15s}.primary:hover{background:#5941d0;transform:translateY(-2px)}.primary:active{transform:translateY(2px);box-shadow:none}.join-card .primary{width:100%;margin-top:15px;display:flex;justify-content:space-between}.join-foot{text-align:center;color:#92909a;font-size:11px;margin-top:24px}.join-foot span{margin-right:5px}.error{color:#b64a47;font-size:12px}.error:empty{display:none}.rules{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0;margin:35px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.rules>div{display:flex;gap:13px;align-items:center}.rule-icon{background:#e8e1fc;border-radius:12px;padding:10px 13px;font-size:25px;color:var(--purple)}.mint{background:#e3eddd;color:#637d51}.peach{background:#f4e4d3;color:#b58246}.rules strong{font-size:12px}.rules p{font-size:11px;color:var(--muted);margin:7px 0 0}footer{display:flex;justify-content:space-between;align-items:center;padding:28px 0;color:#99969c;font-size:8px;letter-spacing:1.2px}footer>span:nth-child(2){text-transform:none;font-size:11px;letter-spacing:0}.footer-globe{margin-left:7px}.play-heading{display:flex;align-items:center;justify-content:space-between}.play-heading h1,.results-top h1{font:600 38px 'Space Grotesk',sans-serif;letter-spacing:-1.5px;margin:12px 0 26px}.stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fffdf8;border:1px solid var(--line);border-radius:16px;padding:20px 0}.stats>div{padding:0 24px;border-right:1px solid var(--line)}.stats>div:last-child{border:0}.stats small{display:block;font-size:9px;letter-spacing:1.5px;color:var(--muted);margin-bottom:8px}.stats strong{font:600 30px 'Space Grotesk',sans-serif}.stats i,.stats strong span{font-size:16px;font-style:normal;color:#aaa}.timer-track{height:5px;margin-top:15px;background:#e2ded1;border-radius:5px;overflow:hidden}#timer-bar{height:100%;width:100%;background:var(--purple);transition:width .1s linear}.arena{position:relative;display:flex;align-items:center;justify-content:center;gap:60px;min-height:340px;background:radial-gradient(ellipse at 50% 70%,#e9e3fb,transparent 65%);border-radius:20px}.coach{position:relative;padding-top:35px}.coach .timo{height:250px}.coach .speech{top:10px;left:-60px;font-size:11px;padding:10px 14px}.flag-stage{text-align:center;position:relative}.flag-stage>img{display:block;width:300px;height:190px;object-fit:contain;margin:25px 0;filter:drop-shadow(0 10px 9px #34304420)}.arena-decor{position:absolute;right:8%;top:35%;font-size:30px;color:#bca5e7}#guess-form{max-width:730px;margin:auto;display:flex;gap:10px}#guess-form input{background:#fffdf9;border:1px solid var(--line);border-radius:10px;padding:18px}#guess-form input:focus{border-color:var(--purple);box-shadow:0 0 0 3px #6750df15}#guess-form .primary{white-space:nowrap}#feedback{text-align:center;min-height:24px;font-size:13px;color:var(--muted);margin:22px 0 16px}.round-dots{display:flex;justify-content:center;gap:8px;margin-bottom:40px}.round-dots span{width:8px;height:8px;border-radius:50%;background:#dedbd2}.round-dots .current{background:var(--purple);box-shadow:0 0 0 3px #ddd5fb}.round-dots .correct{background:#80a465}.round-dots .timeout{background:#dd9a76}.hot strong{color:#dd783d}#points-pop{position:absolute;right:20%;top:20%;font:bold 40px 'Space Grotesk';color:var(--purple);pointer-events:none}.pop{animation:pop .7s both}.shake{animation:shake .3s}.results-top{text-align:center}.result-icon{font-size:55px;display:block;margin:20px}.results-top p{color:var(--muted)}.result-stats{margin:30px 0}#results>.primary{display:block;margin:0 auto 50px}.board-heading{display:flex;align-items:center;justify-content:space-between;margin-top:34px}.board-heading h2{font-size:30px}.board-badge{border:1px solid var(--line);padding:10px 16px;border-radius:30px;font-size:12px}.board-note{color:var(--muted);font-size:12px}.board-row{display:grid;grid-template-columns:50px 1fr 100px 90px;align-items:center;padding:18px 22px;background:#fffdf8;border-bottom:1px solid var(--line);font-size:14px}.board-row:first-child{border-radius:14px 14px 0 0}.board-row:last-child{border-radius:0 0 14px 14px}.board-row.me{background:#eae4ff}.board-row small{color:var(--muted);font-size:11px}.empty{padding:40px;background:#efede6;border-radius:15px;text-align:center;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}#confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden}#confetti i{position:absolute;top:-20px;width:9px;height:15px;animation:fall 2s ease-in forwards}@keyframes fall{to{transform:translateY(105vh) rotate(680deg)}}@keyframes bob{50%{transform:translateY(-8px) rotate(1deg)}}@keyframes float{50%{translate:0 -8px}}@keyframes flame{to{transform:scale(1.1) rotate(2deg)}}@keyframes pop{from{opacity:1;transform:translateY(25px)}to{opacity:0;transform:translateY(-45px)}}@keyframes shake{25%,75%{transform:translateX(-6px)}50%{transform:translateX(6px)}}@media(min-width:1000px){.intro{position:relative}.intro:after{content:'96 COUNTRIES.\A ENDLESS CURIOSITY.';white-space:pre;position:absolute;right:0;bottom:12px;color:#9c97a4;font-size:9px;line-height:1.9;letter-spacing:1.8px;border-left:1px solid var(--line);padding-left:20px}}@media(max-width:760px){.shell{padding:0 22px}header{height:82px}nav{gap:16px}.nav{font-size:12px}.sound{padding:8px 12px}.sound span{display:none}.brand{font-size:25px}.brand-icon{font-size:24px}.eyebrow{font-size:8px;margin-top:27px}.intro h1{letter-spacing:-2px}.lobby-grid{gap:15px;grid-template-columns:1fr;margin-top:10px}.adventure{height:300px;max-width:400px;width:100%;margin:auto}.lobby-timo{height:280px;left:85px}.adventure .speech{font-size:11px;top:10px}.flag-jp{right:10px}.flag-fr{top:200px}.flag-br{top:150px;left:0}.character-tag{left:75px;font-size:8px;bottom:-2px}.orbit{width:260px;height:220px;left:40px}.orbit-two{width:310px;height:160px;left:10px}.join-card{padding:25px}.rules{grid-template-columns:1fr;gap:20px}.rules strong{font-size:13px}.rules p{font-size:12px}footer>span:last-child{display:none}footer{font-size:7px}.play-heading h1{font-size:27px}.text-button{font-size:11px}.stats>div{padding:0 12px}.stats small{font-size:7px;letter-spacing:.6px}.stats strong{font-size:24px}.arena{gap:5px;min-height:290px}.coach .timo{height:180px}.coach .speech{font-size:9px;left:0;top:0;padding:7px}.flag-stage>img{width:180px;height:120px}.flag-stage .tag{font-size:8px}.arena-decor{display:none}#guess-form{gap:7px}#guess-form .primary{font-size:12px;padding:12px}#guess-form input{font-size:13px;padding:15px}#guess-form .primary span{display:none}.board-heading h2{font-size:23px}.board-badge{display:none}.board-row{padding:16px 10px;grid-template-columns:35px 1fr 65px 60px;font-size:12px}.desktop{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.game-settings{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 28px;padding:16px 18px;background:#eee9fa;border:1px solid #dfd7f0;border-radius:14px;width:fit-content}.game-settings label{font-size:8px;margin-bottom:6px}.game-settings select{font:600 13px 'DM Sans',sans-serif;padding:9px 30px 9px 10px;border:1px solid #d5cce8;border-radius:8px;background:#fffdf8;color:var(--ink);max-width:100%}.game-settings select:disabled{opacity:.8;color:var(--ink)}.game-settings p{font-size:11px;color:#766b88;max-width:220px;line-height:1.5;margin:0}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:730px;margin:0 auto}.choice{border:1px solid #d6cee9;border-bottom:3px solid #c9bedf;border-radius:10px;padding:16px 10px;background:#fffdf8;color:var(--ink);font-weight:600;min-height:56px;transition:background .15s,transform .15s}.choice:hover{background:#ece6ff;transform:translateY(-2px)}.choice:disabled{background:#e9e5df;color:#9a9291;cursor:default;transform:none}.round-actions{max-width:730px;margin:18px auto 0;display:flex;align-items:center;justify-content:space-between;gap:10px}.round-actions>span{font-size:12px;color:var(--purple);font-weight:600}#skip{border:1px solid var(--line);padding:10px 15px;border-radius:8px;background:#fffaf2}.round-dots .skip{background:#e4bb64}.board-row small{line-height:1.5}@media(max-width:760px){.game-settings{gap:10px;width:100%;padding:12px}.game-settings p{max-width:none;flex-basis:100%}.choices{grid-template-columns:repeat(2,1fr)}.choice{font-size:12px;padding:12px 8px}}

/* Streak atmosphere stays behind controls and never covers a flag. */
body{transition:background-color .7s ease;background-color:var(--paper)}body.fire-mode{background-color:#fff0da}.shell{position:relative;z-index:1}
#heat-glow,#heat-pulse{position:fixed;inset:0;pointer-events:none;z-index:0}#heat-glow{opacity:0;background:radial-gradient(ellipse at left bottom,rgba(255,106,24,var(--heat)),transparent 62%),radial-gradient(ellipse at right top,rgba(255,174,39,var(--heat)),transparent 60%);box-shadow:inset 0 0 85px #ff922b30;transition:opacity .7s ease}.fire-mode #heat-glow{opacity:1}
#heat-pulse{z-index:4;opacity:0;background:radial-gradient(ellipse at center,transparent 40%,#ffab48aa 100%)}#heat-pulse.ignite{animation:ignite-screen 1.1s ease-out both}#heat-pulse.boost{animation:boost-screen .65s ease-out both}
@keyframes ignite-screen{0%{opacity:0}25%{opacity:.8}100%{opacity:0}}@keyframes boost-screen{0%{opacity:0}30%{opacity:.35}100%{opacity:0}}
.on-fire{background:radial-gradient(ellipse at center,#ffcc8138,transparent 70%)}.on-fire .arena-decor{opacity:0}
.flag-stage{padding-right:110px}.flag-stage>.tag{width:300px}#flames{position:absolute;right:0;top:48%;transform:translateY(-50%);width:100px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;pointer-events:none}
.streak-flame{display:block;height:var(--flame-size,48px);width:calc(var(--flame-size,48px)*.72);filter:drop-shadow(0 0 9px #ff952b80);transition:height .45s,width .45s;animation:fire-dance .85s ease-in-out infinite alternate;animation-delay:var(--delay)}.streak-flame svg{width:100%;height:100%;display:block}.streak-flame+.streak-flame{margin-top:-10px}
@keyframes fire-dance{from{transform:rotate(-4deg) scaleX(.94)}to{transform:rotate(4deg) scaleY(1.07)}}
@media(max-width:1000px){.arena{gap:15px}.flag-stage{padding-right:90px}#flames{width:80px}}
@media(max-width:760px){.flag-stage{padding-right:50px}.flag-stage>.tag{width:150px}.flag-stage>img{width:150px}.coach .timo{height:155px}.arena{gap:0}#flames{width:47px}.streak-flame{height:calc(var(--flame-size)*.65);width:calc(var(--flame-size)*.46)}}
@media(max-width:380px){.flag-stage>.tag,.flag-stage>img{width:130px}.coach .timo{height:125px}}
@media(prefers-reduced-motion:reduce){#heat-pulse{display:none}.streak-flame{animation:none}}
.photo-entry{display:flex;align-items:center;gap:13px;margin:20px 0}.player-avatar,.leader-avatar{border-radius:50%;background:#e9e0ff;color:#6750df;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;position:relative}.player-avatar{width:62px;height:62px;font-size:32px;border:3px solid #fff;box-shadow:0 0 0 1px #d9d0e9}.player-avatar img,.leader-avatar img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.photo-entry p{font-size:10px;color:var(--muted);line-height:1.5;margin:7px 0}.photo-button{border:1px solid #d6cee9;background:#f3edff;border-radius:8px;padding:10px 12px;color:var(--purple);font:600 12px 'DM Sans',sans-serif}.leader-player{display:flex;align-items:center;gap:12px;min-width:0}.leader-player strong{overflow-wrap:anywhere}.leader-avatar{width:38px;height:38px;font-size:16px}.camera-heading{display:flex;justify-content:space-between;align-items:center}.camera-heading h2{margin:0}#camera-dialog{width:min(440px,calc(100% - 32px));border:1px solid #ddd3ed;border-radius:22px;background:#fffdf8;color:var(--ink);padding:25px;box-shadow:0 20px 100px #29293b40}#camera-dialog::backdrop{background:#24203580;backdrop-filter:blur(4px)}#camera-dialog>p{font-size:12px;line-height:1.6;color:var(--muted)}.camera-frame{width:230px;max-width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;margin:22px auto;background:#eae5f5;border:5px solid #d7c9f7}.camera-frame video,.camera-frame img{width:100%;height:100%;object-fit:cover}.camera-frame video{transform:scaleX(-1)}.camera-actions{display:flex;gap:12px;justify-content:center;margin:20px 0}.camera-actions .primary{font-size:13px;padding:13px 18px}#camera-status{min-height:38px;text-align:center}.camera-note{font-size:10px!important;text-align:center}@media(max-width:760px){.leader-player{gap:6px}.leader-avatar{width:29px;height:29px}.photo-entry{gap:10px}}
.challenge-clock{display:flex;align-items:center;gap:15px;margin-top:20px}.challenge-clock>span{font-size:10px;font-weight:700;letter-spacing:1px}.challenge-clock>strong{font:700 30px 'Space Grotesk';color:var(--purple);font-variant-numeric:tabular-nums}.challenge-track{height:9px;flex:1;background:#e2ded1;overflow:hidden;border-radius:10px}#game-timer-bar{height:100%;width:100%;background:var(--purple);transition:width .1s linear}.music-settings{margin:0 0 25px;padding:16px 18px;background:#fffaf2;border:1px solid var(--line);border-radius:14px}.music-settings select{padding:9px;border:1px solid #d5cce8;border-radius:8px;background:#fffdf8;font:600 13px 'DM Sans';color:var(--ink)}#youtube-picker{margin-top:18px;max-width:650px}.music-input-row{display:flex;gap:10px;margin-bottom:15px}.music-input-row input{background:white;border:1px solid var(--line);border-radius:8px;padding:12px}.music-input-row button{flex-shrink:0}#music-status,#youtube-container>p{font-size:12px;color:var(--muted);line-height:1.5}#youtube-container{width:min(100%,390px);margin-top:15px}#youtube-player{min-height:220px;width:100%;border:0;border-radius:10px}@media(max-width:480px){.music-input-row{flex-wrap:wrap}.music-input-row input{flex-basis:100%}}
