:root{--bg: #0f1d12;--bg-elev: #16291c;--panel: #1f6f3f;--panel-dim: #14502c;--accent: #f7c948;--accent-warm: #e87a3a;--text: #f3efe0;--text-dim: #b8c6b2;--danger: #d24a3a;--radius: 12px;--shadow: 0 6px 24px rgba(0, 0, 0, .35);--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font-family:inherit;font-size:1rem;padding:.75rem 1.25rem;border:none;border-radius:var(--radius);background:var(--panel);color:var(--text);cursor:pointer;box-shadow:var(--shadow);transition:transform .05s ease,background .15s ease}button:hover{background:var(--panel-dim)}button:active{transform:translateY(1px)}button.primary{background:var(--accent);color:#1a1a1a;font-weight:700}input[type=text]{font-family:inherit;font-size:1.1rem;padding:.75rem 1rem;border-radius:var(--radius);border:2px solid var(--panel-dim);background:var(--bg-elev);color:var(--text);width:100%;max-width:320px}input[type=text]:focus{outline:none;border-color:var(--accent)}.screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1.5rem 3.5rem;gap:1.5rem;text-align:center}.screen:has(input:focus){justify-content:flex-start;padding-top:1rem}.screen input{scroll-margin-top:1rem}.app-footer{position:relative;left:0;right:0;bottom:0;padding:.6rem 1rem;font-size:.8rem;color:var(--text-dim);text-align:center;pointer-events:none;background:linear-gradient(to top,#0f1d12d9,#0f1d1200)}.app-footer a{pointer-events:auto;color:var(--accent);text-decoration:underline;text-underline-offset:2px}.app-footer a:hover{color:var(--accent-warm)}.footer-credit{margin:0 0 .4rem}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1rem}.sync-banner{padding:.75rem 1rem;background:#e87a3af2;color:#1a1a1a;text-align:center;font-weight:700}.splash-cta{margin-top:.5rem;font-size:.9rem;color:var(--text-dim)}.splash-cta a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.screen h1{margin:0;font-size:clamp(2rem,6vw,3.5rem);color:var(--accent);letter-spacing:.02em}.logo{width:clamp(220px,60vw,360px);height:auto;background:#fff;border-radius:24px;padding:12px;box-shadow:var(--shadow);display:block}.screen h2{margin:0;font-size:clamp(1.2rem,3vw,1.6rem);color:var(--text-dim);font-weight:500}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(180px,calc(50% - .625rem)),1fr));gap:1.25rem;width:100%;max-width:960px}.card-tile{cursor:pointer;text-align:left;transition:transform .15s ease,box-shadow .15s ease}.card-tile:hover{transform:scale(1.04)}.card-tile.selected{transform:scale(1.02);box-shadow:0 0 0 3px var(--accent),0 0 16px #f7c94866}.store-page{gap:1rem}.store-sub{color:var(--text-dim);margin:0}.store-page .payhip-embed-page{width:100%;max-width:760px;min-height:520px}.privacy-page{gap:1rem;text-align:left;max-width:640px;margin:0 auto}.privacy-sub{color:var(--text-dim);margin:0}.privacy-body{display:flex;flex-direction:column;gap:.5rem;line-height:1.5}.privacy-body h2{margin:1rem 0 0;font-size:1.1rem;color:var(--accent)}.privacy-body ul{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.35rem}.card-tile--locked{cursor:default;position:relative;opacity:.6}.card-tile--locked img{opacity:.45;filter:grayscale(60%)}.card-tile--locked:hover{transform:none}.card-tile__locked-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000a6;color:#f3efe0;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .7rem;border-radius:4px;pointer-events:none;white-space:nowrap}.card-tile img{width:100%;height:auto;display:block}.landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;gap:2.5rem;padding:2rem 1.5rem 4rem;text-align:center}.landing-hero{display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding-top:1rem}.landing-tagline{margin:0;font-size:clamp(1.2rem,3vw,1.6rem);color:var(--text-dim)}.landing-section{max-width:640px;width:100%;display:flex;flex-direction:column;align-items:center;gap:.75rem}.landing-section h2{margin:0;font-size:clamp(1.3rem,3.5vw,1.8rem);color:var(--accent)}.landing-section p{margin:0;color:var(--text);line-height:1.6}.landing-section-sub{color:var(--text-dim)!important}.landing .placeholder{color:var(--text-dim);font-style:italic}.landing-story{max-width:720px}.story-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.story-tab{font-family:inherit;font-size:.95rem;padding:.55rem 1rem;border:2px solid var(--panel-dim);border-radius:var(--radius);background:transparent;color:var(--text-dim);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.story-tab:hover{color:var(--text);border-color:var(--accent)}.story-tab.is-active{background:var(--accent);border-color:var(--accent);color:var(--bg)}.story-panel{width:100%;display:flex;flex-direction:column;align-items:center;gap:.75rem;min-height:6rem;padding:1.5rem;background:var(--bg-elev);border:2px solid var(--panel-dim);border-radius:var(--radius)}.story-panel h2{margin:0;font-size:clamp(1.3rem,3.5vw,1.8rem);color:var(--accent)}.story-panel a:not(.button-link){color:var(--accent);font-weight:inherit;text-decoration:underline}.story-panel a:not(.button-link):hover{color:var(--text)}.story-panel .team-photo{margin:0;width:100%;max-width:480px;display:flex;flex-direction:column;align-items:center;gap:.5rem}.story-panel .team-photo img{width:100%;height:auto;border-radius:var(--radius);border:2px solid var(--panel-dim)}.story-panel .team-photo figcaption{font-size:.85rem;color:var(--text-dim)}.card-grid--showcase{max-width:1040px}.card-tile--showcase{margin:0;cursor:default}.card-tile--showcase:hover{transform:none}.landing-cta-band{max-width:640px;width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem 1.5rem;background:var(--bg-elev);border:2px solid var(--panel-dim);border-radius:var(--radius)}.landing-cta-band h2{margin:0;color:var(--accent)}.button-link{display:inline-flex;align-items:center;justify-content:center;font-family:inherit;font-size:1rem;padding:.75rem 1.25rem;border-radius:var(--radius);background:var(--panel);color:var(--text);cursor:pointer;box-shadow:var(--shadow);text-decoration:none;transition:transform .05s ease,background .15s ease}.button-link:hover{background:var(--panel-dim)}.button-link:active{transform:translateY(1px)}.level-track{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.level-node{width:64px;height:64px;border-radius:50%;background:var(--panel-dim);display:grid;place-items:center;font-weight:700;font-size:1.2rem;color:var(--text);cursor:pointer}.level-node.cleared{background:var(--accent);color:#1a1a1a}.level-node.current{background:var(--accent-warm);color:#1a1a1a;box-shadow:0 0 0 4px #e87a3a4d}.level-node.locked{background:var(--bg-elev);color:var(--text-dim);cursor:not-allowed}.row{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.player-list{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:360px}.player-row{display:flex;gap:.5rem}.player-row .player-select{flex:1;font-weight:600;font-size:1.1rem}.player-row .player-remove{background:var(--danger);font-weight:600}.game-canvas-wrap{width:100%;height:100vh;height:100dvh;background:#000;display:flex;align-items:center;justify-content:center;position:relative}.hud{position:absolute;top:0;left:0;right:0;padding:.75rem 1rem;display:flex;justify-content:space-between;pointer-events:none;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.7);z-index:10}.hud .pill{background:#00000073;padding:.4rem .8rem;border-radius:999px;pointer-events:auto}.instructions-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:40}.instructions-modal{background:var(--bg-elev);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.5rem;width:100%;max-width:32rem;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;display:flex;flex-direction:column;gap:.85rem}.instructions-body{display:grid;grid-template-columns:1fr;gap:.85rem 1.25rem}@media(min-aspect-ratio:3/2){.instructions-modal{max-width:56rem;padding:1.5rem 1.75rem}.instructions-body{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}}.evolution-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000e0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:1.5rem;text-align:center;z-index:20}.evolution-stage{position:relative;width:240px;height:240px}.evolution-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(.9);transition:opacity .6s ease,transform .6s ease;filter:drop-shadow(0 6px 12px rgba(0,0,0,.4))}.evolution-img.in{opacity:1;transform:scale(1)}.evolution-img.out{opacity:0;transform:scale(1.08)}.evolution-name{transition:color .6s ease,opacity .6s ease}.evolution-name.in{color:var(--accent);opacity:1}.evolution-name.out{color:var(--text-dim);opacity:.6}.evolution-arrow{color:var(--text-dim);margin:0 .4rem}.confetti-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.confetti-piece{position:absolute;top:-24px;display:block;will-change:transform;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes confetti-fall{0%{transform:translate3d(0,-24px,0) rotate(var(--rot-start, 0deg));opacity:0}6%{opacity:1}94%{opacity:1}to{transform:translate3d(var(--sway, 0px),110vh,0) rotate(var(--rot-end, 720deg));opacity:0}}.victory-headline{background:linear-gradient(90deg,#f7c948,#ff8ac1,#b478e3,#5ca6e8,#9efc9b,#f7c948);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:victory-shimmer 6s linear infinite}@keyframes victory-shimmer{0%{background-position:0% 0}to{background-position:300% 0}}.leaderboard-list{width:100%;max-width:480px;display:flex;flex-direction:column;gap:.5rem}.leaderboard-row{display:grid;grid-template-columns:2.5rem 1fr auto;align-items:center;gap:.75rem;background:var(--bg-elev);padding:.75rem 1rem;border-radius:var(--radius)}.leaderboard-row .rank{color:var(--accent);font-weight:700}.leaderboard-row.me{border:2px solid var(--accent)}
