:root{--bg:#040f0f;--bg-secondary:#2d3a3a;--primary:#248232;--accent:#2ba84a;--text:#fcfffc;--text-muted:#fcfffca6;--danger:#e85d4c;--font-display:"Outfit", system-ui, sans-serif;--font-body:"Space Grotesk", system-ui, sans-serif;--radius:12px;--shadow:0 12px 40px #00000059;--page-pad-x:clamp(1rem, 4vw, 1.5rem);--touch:2.75rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{max-width:100%;min-height:100%}body{font-family:var(--font-body);background:radial-gradient(ellipse 80% 50% at 50% -10%, #2482320f, transparent 55%), radial-gradient(ellipse 60% 40% at 90% 80%, #2ba84a03, transparent 50%), var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}button,input{font:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100dvh;padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);flex-direction:column;display:flex;overflow-x:hidden}.page{width:min(960px,100% - 2rem);padding:1.25rem var(--page-pad-x) 2rem;flex:1;min-width:0;margin-inline:auto}.btn{min-height:var(--touch);cursor:pointer;touch-action:manipulation;border:none;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.6rem;font-weight:600;transition:transform .15s,background .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:var(--bg);box-shadow:0 0 #2ba84a66}.btn-primary:hover{background:#34c456;box-shadow:0 8px 24px #2ba84a59}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-ghost{color:var(--text);background:0 0;border:1px solid #fcfffc33}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.field{flex-direction:column;gap:.4rem;width:100%;display:flex}.field label{color:var(--text-muted);letter-spacing:.02em;font-size:.85rem}.field input{background:var(--bg-secondary);border-radius:var(--radius);width:100%;color:var(--text);min-height:var(--touch);border:1px solid #fcfffc1f;outline:none;padding:.9rem 1rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2ba84a33}.field input::placeholder{color:#fcfffc59}@media (width<=480px){.page{padding-top:1rem;padding-bottom:1.5rem}.btn{padding-inline:1.2rem}}.home{flex-direction:column;justify-content:center;align-items:flex-start;min-height:100dvh;padding-block:3rem;display:flex;position:relative}.home-glow{pointer-events:none;z-index:0;background:radial-gradient(circle,#16231a11,#0000 70%);width:min(480px,80vw);height:min(480px,80vw);position:absolute;inset:20% auto auto -10%}.home>:not(.home-glow){z-index:1;position:relative}.lang-switch{width:min(960px,100%);padding:.75rem var(--page-pad-x) 0;z-index:50;flex-direction:row;flex-shrink:0;justify-content:flex-end;gap:.5rem;margin-inline:auto;display:flex}.lang-switch-btn{min-width:3.25rem;min-height:var(--touch);color:var(--text-muted);letter-spacing:.06em;cursor:pointer;touch-action:manipulation;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040f0fb8;border:1px solid #fcfffc33;border-radius:999px;padding:.55rem .9rem;font-weight:700;transition:color .15s,border-color .15s,background .15s}.lang-switch-btn:hover{color:var(--text);border-color:#fcfffc66}.lang-switch-btn.is-active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.home-kicker{letter-spacing:.12em;color:var(--accent);margin:0 0 .75rem;font-size:.85rem;font-weight:700}.home-brand{font-family:var(--font-display);letter-spacing:-.04em;overflow-wrap:anywhere;margin:0;font-size:clamp(2.75rem,14vw,6.5rem);font-weight:800;line-height:.95}.home-tagline{max-width:28rem;color:var(--text-muted);margin:1.25rem 0 2.25rem;font-size:clamp(1rem,2.6vw,1.15rem);line-height:1.45}.home-form{flex-direction:column;gap:1rem;width:min(360px,100%);display:flex}.home-cta{width:100%;font-size:1.05rem}.home-leaderboard{color:var(--text-muted);margin-top:2rem;font-size:.95rem}.home-leaderboard:hover{color:var(--accent)}.form-error{color:var(--danger);margin:0;font-size:.9rem}.game{flex-direction:column;min-height:0;display:flex}.game-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-bottom:1.25rem;display:flex}.game-loading{color:var(--text-muted);text-align:center;padding:3rem 0}.game-stage{flex-direction:column;flex:1;gap:1rem;min-height:0;display:flex}.timer{align-items:center;gap:.75rem;display:flex}.timer-ring{--ratio:1;background:conic-gradient(var(--accent) calc(var(--ratio) * 360deg), #fcfffc1f 0);border-radius:50%;flex-shrink:0;place-items:center;width:64px;height:64px;display:grid;position:relative}.timer-ring:before{content:"";background:var(--bg);border-radius:50%;position:absolute;inset:5px}.timer-value{font-family:var(--font-display);font-size:1rem;font-weight:700;position:relative}.timer-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.timer--urgent .timer-ring{background:conic-gradient(var(--danger) calc(var(--ratio) * 360deg), #fcfffc1f 0);animation:.8s ease-in-out infinite pulse-urgent}.timer--urgent .timer-value{color:var(--danger)}@keyframes pulse-urgent{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.scoreboard{gap:.75rem;min-width:0;display:flex}.scoreboard-item{background:var(--bg-secondary);border-radius:var(--radius);flex-direction:column;gap:.15rem;min-width:0;padding:.55rem .9rem;display:flex}.scoreboard-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:.7rem}.scoreboard-value{font-family:var(--font-display);font-size:1.25rem;font-weight:700}.map-wrap{width:100%;max-width:min(480px,100%);box-shadow:var(--shadow);background:linear-gradient(160deg,#2d3a3ae6,#040f0f80);border:1px solid #fcfffc14;border-radius:20px;margin:0 auto;padding:1rem;transition:box-shadow .25s,border-color .25s}.map-wrap.map--success{border-color:var(--accent);box-shadow:0 0 0 3px #2ba84a40, var(--shadow)}.map-wrap.map--error{border-color:var(--danger);box-shadow:0 0 0 3px #e85d4c33, var(--shadow);animation:.35s shake}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.map-svg{width:100%;height:auto;max-height:min(46dvh,420px);animation:.45s cubic-bezier(.22,1,.36,1) map-in;display:block}@keyframes map-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.map-path{fill:var(--accent);stroke:var(--primary);stroke-width:1.2px;filter:drop-shadow(0 8px 20px #2ba84a40)}.guess-form{flex-direction:column;gap:.85rem;width:100%;display:flex}.guess-panel{flex-direction:column;gap:.75rem;width:100%;max-width:420px;margin:0 auto;display:flex}.guess-actions{flex-wrap:nowrap;gap:.75rem;display:flex}.guess-actions .btn{flex:1 1 0;min-width:0}.guess-hint{color:var(--text-muted);margin:0;font-size:.85rem}.guess-form--wrong input{border-color:var(--danger)!important}.guess-form--correct input{border-color:var(--accent)!important}.result{flex-direction:column;justify-content:center;align-items:flex-start;min-height:0;display:flex}.result-kicker{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin:0 0 .5rem;font-size:.8rem;font-weight:600}.result-title{font-family:var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0 0 1.75rem;font-size:clamp(1.5rem,6vw,2.6rem);font-weight:700}.result-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;width:100%;margin-bottom:1.25rem;display:grid}.result-stat{background:var(--bg-secondary);border-radius:var(--radius);min-width:0;padding:1rem 1.4rem}.result-stat-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.35rem;font-size:.75rem;display:block}.result-stat-value{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2rem);font-weight:700}.result-submit{color:var(--text-muted);margin:0 0 1.75rem;font-size:.95rem}.result-review{flex-direction:column;gap:.45rem;width:100%;max-width:520px;max-height:min(280px,40dvh);margin:0 0 1.5rem;padding:0;list-style:none;display:flex;overflow:auto}.result-review-item{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid #fcfffc0f;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1rem;display:flex}.result-review-item.is-correct{border-color:#2ba84a66}.result-review-item.is-wrong{border-color:#e85d4c40}.result-review-main{flex-direction:column;gap:.15rem;min-width:0;display:flex}.result-review-main span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.result-review-pts{font-family:var(--font-display);flex-shrink:0;font-weight:700}.result-review-item.is-correct .result-review-pts{color:var(--accent)}.result-actions{flex-wrap:wrap;gap:.75rem;width:100%;display:flex}.result-actions .btn-ghost{text-decoration:none}.leaderboard-actions{margin-top:2rem}.leaderboard-header{justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-bottom:1.5rem;display:flex}.leaderboard-header>div{min-width:0}.leaderboard-header .btn{flex:none}.leaderboard-title{font-family:var(--font-display);letter-spacing:-.03em;overflow-wrap:anywhere;margin:0;font-size:clamp(1.75rem,8vw,3rem);font-weight:800}.leaderboard-note,.leaderboard-empty{color:var(--text-muted);margin-bottom:1.25rem}.leaderboard-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.leaderboard-row{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid #fcfffc0f;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.9rem 1.1rem;display:grid}.leaderboard-row:first-child{border-color:#2ba84a73}.leaderboard-rank{font-family:var(--font-display);color:var(--accent);min-width:2.2rem;font-weight:700}.leaderboard-player{flex-direction:column;gap:.15rem;min-width:0;display:flex}.leaderboard-player strong{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;overflow:hidden}.leaderboard-player span,.leaderboard-scores span{color:var(--text-muted);font-size:.8rem}.leaderboard-scores{text-align:right;flex-direction:column;gap:.15rem;display:flex}.leaderboard-scores strong{font-family:var(--font-display);font-size:1.1rem}@media (width<=720px){.game-header{flex-direction:column;align-items:stretch}.timer{justify-content:flex-start}.scoreboard{width:100%}.scoreboard-item{flex:1}.result-actions .btn{flex:9rem}.result-stats{grid-template-columns:1fr 1fr}.result-stat:last-child{grid-column:1/-1}}@media (width<=560px){.home-tagline{margin:1rem 0 1.75rem}.home-leaderboard{margin-top:1.5rem}.game-header{margin-bottom:.85rem}.timer-ring{width:52px;height:52px}.map-wrap{border-radius:16px;padding:.7rem}.result-stat{padding:.85rem 1rem}.result-review-item{gap:.7rem;padding:.65rem .8rem}.leaderboard-row{grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);gap:.35rem .85rem;padding:.8rem .9rem}.leaderboard-scores{text-align:left;flex-flow:wrap;grid-column:2;gap:.75rem}}@media (width<=400px){.lang-switch{padding-top:.5rem}.scoreboard{gap:.45rem}.scoreboard-item{padding:.45rem .6rem}}@media (height<=720px){.home,.result{justify-content:flex-start;padding-top:.5rem}.map-svg{max-height:min(38dvh,320px)}}@media (height<=560px) and (width>=560px){.lang-switch{padding-top:.4rem;padding-bottom:0}.page.home{grid-template-columns:minmax(0,1.15fr) minmax(16rem,.85fr);grid-template-areas:"kicker form""brand form""tagline form""link form";align-content:center;align-items:center;gap:.4rem 1.5rem;padding-top:.35rem;padding-bottom:.75rem;display:grid}.home-kicker{grid-area:kicker;margin:0}.home-brand{grid-area:brand;font-size:clamp(2.2rem,8vw,3.6rem)}.home-tagline{grid-area:tagline;margin:0;font-size:.95rem}.home-form{grid-area:form;width:100%}.home-leaderboard{grid-area:link;margin-top:.25rem}.page.game{padding-top:.5rem;padding-bottom:.75rem}.game-header{flex-direction:row;align-items:center;margin-bottom:.5rem}.game-stage{flex-direction:row;align-items:stretch;gap:1.25rem}.map-wrap{flex:45%;max-width:none;margin:0;padding:.5rem}.map-svg{max-height:min(72dvh,280px)}.guess-panel{flex:45%;justify-content:center;max-width:none;margin:0}.timer-ring{width:44px;height:44px}.result-review{max-height:min(160px,32dvh)}}
