:root{--paper:#f5f4ec;--ink:#24443f;--muted:#697b71;--green:#286b5d;--greenlight:#e6ecdd;--orange:#e38755;--line:#dfe4d8;--radius:22px;--sans:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:var(--sans);background:var(--paper);color:var(--ink);overscroll-behavior:none}body{font-size:15px}button,input{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default;opacity:.52}button:focus-visible,a:focus-visible{outline:3px solid #e0984c;outline-offset:4px}button{border:0}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{font-weight:850;font-size:clamp(36px,5vw,68px);line-height:1.02;letter-spacing:-3px}h2{font-size:30px;line-height:1.12;letter-spacing:-1px}h3{font-size:18px;letter-spacing:-.3px}p{line-height:1.6}.muted{color:var(--muted)}.eyebrow{display:flex;align-items:center;gap:8px;color:var(--green);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:2px;margin-bottom:15px}.dot{width:7px;height:7px;border-radius:50%;background:#73a577;display:inline-block}.shell{max-width:1320px;margin:auto;padding:25px 46px 30px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:30px}.brand{display:flex;align-items:center;gap:10px;font-weight:850;font-size:23px;letter-spacing:-1px;background:none;padding:0}.brand img{width:37px;height:37px}.brand span small{font-size:10px;letter-spacing:1.5px;display:block;text-align:left;color:var(--muted);margin-top:-3px}.top-actions{display:flex;align-items:center;gap:9px}.icon-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff9;width:41px;height:41px;border-radius:50%}.icon-button svg{width:19px;height:19px}.pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#ffffff80;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:700}.profile-pill{background:var(--greenlight);border:0;font-weight:750;border-radius:999px;padding:5px 16px 5px 5px;display:flex;align-items:center;gap:8px}.profile-pill canvas{width:30px;height:34px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;border-radius:13px;padding:12px 19px;font-weight:750;font-size:14px;transition:transform .12s,background .12s}.btn:active{transform:translateY(2px)}.primary{background:var(--green);color:#fffaf0;box-shadow:0 4px 0 #1b5046}.secondary{background:#fffaf0;border:1px solid #d2dacb}.soft{background:#e6ecdd}.danger{color:#a54838;background:#fae5dc}.full{width:100%}.btn svg{width:18px;height:18px}.hero{display:grid;grid-template-columns: .83fr 1.17fr;align-items:center;gap:30px;min-height:345px}.hero-copy{padding:5px 0 25px}.hero-copy h1 em{font-style:normal;color:var(--orange)}.hero-copy>p{max-width:385px;margin:20px 0 21px;font-size:16px;color:var(--muted)}.hero-art{height:355px;position:relative;border-radius:36px;background:radial-gradient(ellipse at 50% 55%,#e0e8d9,transparent 70%);overflow:hidden}.hero-art canvas{width:100%;height:100%;display:block}.scene-tag{position:absolute;bottom:22px;left:28px;background:#fffcf1e6;border:1px solid #f7fff08c;border-radius:13px;padding:9px 13px;box-shadow:0 7px 18px #213d3911;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700}.scene-tag small{display:block;font-size:10px;color:var(--muted);font-weight:500}.scene-tag .marker{width:31px;height:31px;border-radius:50%;background:#e9ad75;display:grid;place-items:center}.hero-art .floating{position:absolute;right:35px;top:40px;background:#fffaf0;padding:11px 16px;border-radius:14px;box-shadow:0 5px 25px #31472d0a;transform:rotate(5deg);font-size:13px;font-weight:700}.steps{display:flex;gap:15px;align-items:center;font-size:11px;color:var(--muted);margin-top:22px}.steps b{color:var(--green);background:var(--greenlight);display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;margin-right:3px;font-size:10px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:9px 0 16px}.section-head h2{font-size:24px}.section-head p{font-size:12px}.locations{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.location-card{position:relative;overflow:hidden;text-align:left;border:2px solid transparent;border-radius:20px;padding:0;background:#e8e9dd;transition:transform .15s,border-color .15s}.location-card:hover{transform:translateY(-3px)}.location-card.active{border-color:var(--green)}.location-card canvas{width:100%;height:135px;display:block;background:#e5e8dc}.location-info{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#fffdf3;gap:10px}.location-info span{display:block;font-size:10px;color:var(--muted);margin-top:3px}.location-info strong{font-size:14px}.location-check{width:23px;height:23px;border-radius:50%;background:#f0f3e7;display:grid;place-items:center;font-size:12px}.active .location-check{background:var(--green);color:white}.bottom-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:17px;margin-top:20px}.play-card{background:var(--green);border-radius:21px;padding:21px;color:#fff9e8;display:flex;align-items:center;gap:19px;justify-content:space-between}.play-card h3{font-size:21px}.play-card p{font-size:12px;color:#daead7;max-width:260px}.play-card .btn{background:#f1c785;color:#304a3b;box-shadow:0 3px 0 #ba955a;white-space:nowrap}.join-card{border:1px solid #dce3d7;border-radius:21px;padding:20px;background:#faf9f0;display:flex;align-items:center;gap:18px;justify-content:space-between}.join-card p{font-size:12px}.join-card .btn{white-space:nowrap}.footer{display:flex;justify-content:space-between;gap:15px;margin-top:27px;font-size:11px;color:var(--muted)}.link-button{background:none;padding:0;text-decoration:underline;text-underline-offset:3px;color:var(--muted);font-size:11px}.footer-links{display:flex;gap:15px}.badge-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.badge{padding:10px 13px;border-radius:12px;font-size:12px;background:#e7ecdb;display:flex;align-items:center;gap:8px}.badge.locked{opacity:.48;background:#eeeee5}.form-field{margin:14px 0}.form-field>label{display:block;font-weight:700;font-size:12px;margin-bottom:7px}.field{display:block;width:100%;border:1px solid #cdd7c8;background:#fffdf4;color:var(--ink);border-radius:12px;padding:12px 13px;min-height:44px;outline:none}.field:focus{border-color:var(--green);box-shadow:0 0 0 3px #2c73581a}.helper{font-size:12px;line-height:1.5;color:var(--muted);margin-top:8px}.swatches{display:flex;flex-wrap:wrap;gap:9px}.swatch{width:37px;height:37px;border-radius:50%;border:3px solid transparent;box-shadow:inset 0 0 0 1px #0001;position:relative}.swatch.active:after{content:'';position:absolute;inset:-5px;border:2px solid var(--green);border-radius:50%}.option-row{display:flex;gap:7px;flex-wrap:wrap}.option{border:1px solid #d9e0d1;padding:8px 11px;background:#f8f8ef;border-radius:10px;font-size:12px}.option.active{background:var(--green);border-color:var(--green);color:white}dialog{border:1px solid #d6e0d0;border-radius:25px;max-width:690px;width:calc(100% - 32px);padding:0;background:var(--paper);color:var(--ink);box-shadow:0 25px 100px #173c3540;max-height:calc(100dvh - 30px)}dialog::backdrop{background:#13392f88;backdrop-filter:blur(5px)}.dialog-head{padding:22px 26px 0;display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-head h2{font-size:25px}.dialog-body{padding:17px 26px 25px;overflow:auto}.dialog-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:21px}.creator-grid{display:grid;grid-template-columns:180px 1fr;gap:25px}.avatar-stage{border-radius:21px;background:radial-gradient(ellipse at 50% 70%,#ced9be,transparent 66%),#e8ecdd;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:305px}.avatar-stage canvas{width:170px;height:240px}.avatar-stage p{font-size:11px;margin:0 15px 15px;text-align:center;color:var(--muted)}.separator{height:1px;background:var(--line);margin:19px 0}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:15px 0}.setting-row p{font-size:12px;color:var(--muted)}.switch{min-width:46px;width:46px;height:27px;padding:3px;border-radius:999px;background:#b8c5b5}.switch[aria-checked=true]{background:var(--green)}.switch:after{content:'';display:block;background:#fff8e9;border-radius:50%;width:21px;height:21px;transition:transform .15s}.switch[aria-checked=true]:after{transform:translateX(19px)}.notice{background:#e5ebdc;border:1px solid #d6dfcb;border-radius:13px;padding:12px 14px;font-size:12px;line-height:1.5}.code-box{font-size:34px;font-weight:850;letter-spacing:7px;text-align:center;border:1px dashed #b9c9b4;background:#e9eddf;padding:14px;border-radius:15px;margin:16px 0}.versus-row{display:flex;align-items:center;justify-content:center;gap:35px;margin:10px 0 20px}.versus-person{text-align:center;width:150px}.versus-person canvas{width:110px;height:125px;display:block;margin:auto}.versus-person strong{display:block;font-size:17px}.versus-person small{font-size:11px;color:var(--muted)}.vs{font-weight:850;color:#cc9566;font-size:20px;transform:rotate(-10deg)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.stat{text-align:center;background:#e9eddf;border-radius:14px;padding:16px 6px}.stat b{font-size:27px;display:block}.stat span{font-size:10px;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#234d43;color:#fff9ec;border-radius:13px;padding:12px 18px;box-shadow:0 5px 30px #213e3330;max-width:min(90vw,530px);font-size:13px;line-height:1.4;z-index:100;opacity:0;pointer-events:none;transition:.2s}.show-toast#toast{opacity:1;transform:translate(-50%,0)}
/* Gameplay: one camera, reachable controls, no page scrolling. */
body.in-game{overflow:hidden;touch-action:none}.game{height:100dvh;width:100%;position:relative;overflow:hidden;background:#c0ccae;touch-action:none;user-select:none}.world-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.hud{position:absolute;z-index:2;top:max(14px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));display:flex;align-items:start;justify-content:space-between;gap:15px;pointer-events:none}.hud>*{pointer-events:auto}.target-card{display:flex;align-items:center;gap:10px;padding:9px 17px 9px 7px;border:1px solid #fff8ebd0;border-radius:17px;background:#faf9ebeb;box-shadow:0 5px 20px #193c3214;min-width:205px}.target-card canvas{width:47px;height:56px}.target-card small{font-size:9px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:var(--muted);display:block;margin-bottom:3px}.target-card b{display:block;font-size:14px}.target-card span{font-size:10px;color:var(--muted)}.score-center{text-align:center;background:#fdfbeeea;border:1px solid #fff8ebd0;box-shadow:0 5px 20px #193c3214;padding:9px 21px;border-radius:17px;min-width:170px}.score-center small{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);display:block}.score-numbers{font-weight:850;font-size:24px;display:flex;gap:16px;align-items:center;justify-content:center;line-height:1.3}.score-numbers i{color:#9aa999;font-style:normal;font-size:16px}.score-center .round-dots{font-size:11px;letter-spacing:5px;color:var(--green)}.timer-card{display:flex;gap:9px;align-items:center}.timer{min-width:68px;background:#fdfbeeea;border-radius:14px;padding:10px 12px;font-size:23px;font-weight:800;font-variant-numeric:tabular-nums;text-align:center}.timer.danger-time{background:#f9d3b7}.hud .icon-button{background:#fcfaeeed}.status-bar{position:absolute;top:105px;left:50%;transform:translateX(-50%);font-size:11px;color:#fffaf0;padding:6px 11px;border-radius:999px;background:#2e6253dd;z-index:2;white-space:nowrap}.scene-caption{position:absolute;left:25px;bottom:185px;font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#28473780;font-weight:700;pointer-events:none}.joystick{position:absolute;left:max(27px,env(safe-area-inset-left));bottom:max(25px,env(safe-area-inset-bottom));width:132px;height:132px;border-radius:50%;background:#ffffff45;border:1px solid #fff8e3aa;box-shadow:inset 0 0 0 18px #fafde32e,0 5px 25px #37523c0a;display:grid;place-items:center;touch-action:none;z-index:4}.stick{width:59px;height:59px;background:#fafbeaee;border:2px solid #ccd8b9;border-radius:50%;box-shadow:0 5px 0 #3c634b21;pointer-events:none;display:grid;place-items:center}.stick svg{opacity:.55}.control-actions{position:absolute;right:max(25px,env(safe-area-inset-right));bottom:max(27px,env(safe-area-inset-bottom));display:flex;align-items:end;gap:13px;z-index:4}.action-button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;border-radius:50%;border:2px solid #fff9e1aa;width:68px;height:68px;background:#faf8e2e8;box-shadow:0 4px 0 #6f866a4a;font-size:9px;font-weight:800;letter-spacing:1px}.action-button svg{width:24px;height:24px}.action-button.inspect{width:94px;height:94px;background:var(--green);color:#fff8de;border-color:#cbdcb4;box-shadow:0 5px 0 #1e5042}.action-button.inspect svg{width:28px;height:28px}.action-button:active{transform:translateY(3px)}.action-button.emote{width:48px;height:48px;margin-bottom:5px}.action-button.emote svg{width:20px;height:20px}.game-help{position:absolute;bottom:13px;left:50%;transform:translateX(-50%);font-size:10px;color:#2f543ea0;pointer-events:none;white-space:nowrap}.center-message{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);text-align:center;z-index:3;pointer-events:none}.countdown-number{font-size:100px;line-height:1;font-weight:900;color:#fffae8;text-shadow:0 5px 0 #396c5040;letter-spacing:-6px}.countdown-label{background:#fff9e4e8;padding:9px 16px;border-radius:13px;font-weight:750;font-size:15px;display:inline-block;margin-top:14px}.round-result{min-width:260px;background:#faf9eefa;border:1px solid #ffffeb;border-radius:25px;padding:27px 32px;box-shadow:0 18px 60px #224c3940}.round-result h2{font-size:28px}.round-result p{font-size:13px;color:var(--muted);margin-top:9px}.round-result .score{font-size:48px;font-weight:850;letter-spacing:-2px;margin:12px 0}.round-result small{font-size:11px;color:var(--muted)}.match-result .dialog-body{text-align:center}.winner-portrait{width:130px;height:145px}.results-table{width:100%;border-collapse:collapse;margin:17px 0;font-size:12px;text-align:left}.results-table th{font-weight:600;color:var(--muted);padding:9px 7px;border-bottom:1px solid #d4decf}.results-table td{padding:10px 7px;border-bottom:1px solid #e0e7d9;font-variant-numeric:tabular-nums}.results-table td:last-child{text-align:right}.results-table th:last-child{text-align:right}.result-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.confetti{position:absolute;width:7px;height:12px;top:-20px;pointer-events:none;animation:fall 2.3s ease-in both;z-index:10}.progress-line{width:80%;max-width:190px;height:4px;background:#d5dec9;border-radius:5px;margin:18px auto 0;overflow:hidden}.progress-line i{height:100%;display:block;background:#608568;transition:width .15s}.legal p{font-size:13px;margin:10px 0}.legal h3{margin-top:20px}.smallcode{font:11px ui-monospace,monospace;word-break:break-all;padding:12px;background:#e8ecdf;border-radius:10px}.error-text{color:#a04c39;font-size:12px;margin-top:10px}.busy{opacity:.6;pointer-events:none}body.reduced *,body.reduced *:before,body.reduced *:after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
@keyframes fall{from{transform:translateY(-20px) rotate(0)}to{transform:translateY(90vh) rotate(480deg);opacity:0}}
@media(min-width:1500px){.shell{padding-top:40px}.hero{min-height:390px}.hero-art{height:405px}.location-card canvas{height:155px}}
@media(max-width:900px){.shell{padding:18px 24px 25px}.topbar{margin-bottom:15px}.hero{gap:5px;min-height:285px}.hero-art{height:300px}.hero-copy h1{font-size:47px}.hero-copy>p{font-size:13px;margin:16px 0}.hero-copy .eyebrow{font-size:9px}.steps{gap:8px;font-size:9px}.location-card canvas{height:108px}.location-info{padding:10px}.bottom-grid{gap:12px}.play-card,.join-card{padding:17px}.play-card h3{font-size:18px}.play-card p,.join-card p{font-size:11px}.join-card{gap:10px}.btn{font-size:12px;padding:10px 15px}.topbar .pill{display:none}}
@media(max-width:600px){h1{letter-spacing:-2px}.shell{padding:18px 18px 25px}.topbar{gap:9px}.brand{font-size:21px}.brand img{width:33px;height:33px}.profile-pill{padding-right:10px;font-size:12px}.top-actions{gap:6px}.topbar .icon-button{width:36px;height:36px}.hero{display:flex;flex-direction:column;align-items:stretch}.hero-copy{padding:16px 0 0}.hero-copy h1{font-size:46px}.hero-copy>p{max-width:300px;font-size:14px;margin:15px 0}.hero-copy .eyebrow{margin-bottom:13px}.hero-art{height:245px;margin-top:-6px}.hero-art .floating{top:20px;right:10px;font-size:11px}.scene-tag{bottom:15px;left:9px}.steps{font-size:10px;margin-top:18px}.locations{grid-template-columns:repeat(2,1fr);gap:11px}.location-card canvas{height:106px}.section-head{margin-top:10px}.section-head h2{font-size:22px}.section-head p{max-width:100px;text-align:right;font-size:10px}.bottom-grid{grid-template-columns:1fr}.play-card{padding:18px}.play-card p{max-width:200px}.join-card{padding:17px}.footer{flex-direction:column;gap:10px;font-size:10px}.footer-links{gap:14px}.creator-grid{grid-template-columns:104px 1fr;gap:17px}.avatar-stage{min-height:300px}.avatar-stage canvas{width:103px;height:170px}.avatar-stage p{font-size:9px;margin:0 8px 15px}.dialog-head{padding:19px 19px 0}.dialog-body{padding:15px 19px 22px}.dialog-head h2{font-size:23px}.swatch{width:30px;height:30px}.swatches{gap:8px}.option{font-size:10px;padding:7px 8px}.form-field{margin:12px 0}.target-card{padding:5px 8px 5px 2px;min-width:unset;gap:4px;max-width:152px}.target-card canvas{width:34px;height:45px}.target-card small{font-size:7px;letter-spacing:.8px}.target-card b{font-size:12px;max-width:96px;overflow:hidden;text-overflow:ellipsis}.target-card span{font-size:8px}.hud{left:10px;right:10px;top:10px;gap:7px}.score-center{padding:7px 10px;min-width:88px}.score-center small{font-size:7px;letter-spacing:.5px}.score-numbers{font-size:21px;gap:9px}.round-dots{display:none}.timer{font-size:19px;padding:9px 8px;min-width:51px}.timer-card{gap:6px}.timer-card .icon-button{width:32px;height:32px}.status-bar{top:81px;font-size:9px}.joystick{width:111px;height:111px;left:16px;bottom:29px}.stick{width:51px;height:51px}.control-actions{right:16px;bottom:32px;gap:9px}.action-button{width:55px;height:55px;font-size:8px}.action-button.inspect{width:79px;height:79px}.action-button.emote{position:absolute;bottom:89px;right:0;width:42px;height:42px}.game-help{font-size:8px;bottom:10px}.scene-caption{left:18px;bottom:161px;font-size:9px}.countdown-number{font-size:83px}}
@media(max-height:520px) and (orientation:landscape){.shell{padding:14px 28px}.topbar{margin-bottom:6px}.hero{min-height:245px}.hero-art{height:250px}.hero-copy h1{font-size:42px}.hero-copy>p{font-size:12px;max-width:330px}.hero-copy{padding:4px 0}.hero-copy .eyebrow{margin-bottom:10px}.steps{margin-top:15px}.hud{top:9px;left:15px;right:15px}.target-card{padding:4px 13px 4px 4px}.target-card canvas{height:47px;width:40px}.score-center{padding:5px 15px;min-width:140px}.score-numbers{font-size:21px}.score-center .round-dots{display:none}.timer{font-size:19px;padding:8px 12px}.status-bar{top:78px;font-size:9px}.joystick{width:104px;height:104px;left:24px;bottom:19px}.stick{width:49px;height:49px}.control-actions{right:23px;bottom:20px}.action-button{width:57px;height:57px;font-size:8px}.action-button.inspect{width:78px;height:78px}.action-button.emote{width:43px;height:43px}.scene-caption{bottom:145px;font-size:9px}.game-help{bottom:8px;font-size:9px}.countdown-number{font-size:73px}.round-result{padding:19px 26px}.round-result h2{font-size:24px}.round-result .score{font-size:32px;margin:9px}.creator-grid{grid-template-columns:170px 1fr}.avatar-stage{min-height:250px}.avatar-stage canvas{height:205px;width:130px}.dialog-head{padding-top:15px}.dialog-body{padding-top:12px}.winner-portrait{height:86px;width:80px}.stats-grid{margin:10px 0}.stat{padding:10px}.results-table{margin:11px 0}.results-table td,.results-table th{padding:6px}}
/* English headlines are slightly longer; keep natural wraps on phones and tablets. */
html[lang="en"] .hero-copy h1{font-size:clamp(32px,4.35vw,60px);text-wrap:balance}
@media(max-width:600px){html[lang="en"] .hero-copy h1{font-size:clamp(32px,10.3vw,46px)}}
