.enginar-badge{display:inline-flex;align-items:center;flex-shrink:0;gap:8px;min-height:32px;padding:4px 12px 4px 10px;border:1px solid var(--border);border-radius:999px;color:var(--text-2);font-family:var(--font-mono);font-size:.65rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;text-decoration:none;white-space:nowrap;transition:border-color .15s ease,color .15s ease}.enginar-badge:hover{color:var(--text);border-color:var(--text-2)}.enginar-badge b{color:var(--text);font-weight:700;text-transform:none;letter-spacing:.02em;font-size:1.1em}.enginar-badge-mark{flex-shrink:0;display:block}.enginar-badge-mark--dark{display:none}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .enginar-badge-mark--light{display:none}:root:not([data-theme=light]) .enginar-badge-mark--dark{display:block}}:root[data-theme=dark] .enginar-badge-mark--light{display:none}:root[data-theme=dark] .enginar-badge-mark--dark{display:block}@media (max-width: 600px){.enginar-badge--compact{padding:4px 10px}.enginar-badge--compact .enginar-badge-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}}.theme-toggle{display:inline-grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:99px;border:1.5px solid var(--border-strong);background:transparent;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s}.theme-toggle:hover{background:var(--accent-soft);border-color:var(--accent)}.theme-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.app-shell{display:flex;flex-direction:column;height:100%}.app-header{position:relative;z-index:40;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;height:56px;padding:0 16px;font-family:var(--font);color:var(--text);background:var(--surface);border-bottom:1px solid var(--border)}.app-header-brand{display:flex;align-items:center;gap:14px;min-width:0}.app-header-logo{flex-shrink:0}.app-main{position:relative;flex:1;min-height:0;overflow-y:auto}@media (max-width: 480px){.app-header-brand{gap:8px}}.landing{font-family:var(--font);color:var(--text);background:var(--bg);min-height:100vh;overflow-x:hidden}.landing-nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 24px;height:64px;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.landing-brand{display:flex;align-items:center;gap:14px;min-width:0}.landing-logo{flex-shrink:0}.landing-hero-logo{margin-bottom:20px}.landing-nav-links{display:flex;align-items:center;gap:8px}.nav-link{background:none;color:var(--text-2);font-family:inherit;font-size:15px;font-weight:600;padding:8px 14px;border-radius:8px;border:none;cursor:pointer;transition:color .15s,background .15s}.nav-link:hover{color:var(--text);background:var(--accent-soft)}.nav-cta-sm{background:var(--accent-fill);color:var(--on-accent);font-family:inherit;font-size:14px;font-weight:800;padding:10px 20px;border-radius:30px;border:none;cursor:pointer;transition:opacity .15s,transform .1s;margin-left:4px;white-space:nowrap}.nav-cta-sm:hover{opacity:.9;transform:scale(1.02)}.landing :focus-visible{outline:3px solid var(--focus);outline-offset:2px}.landing-hero{min-height:78vh;display:flex;align-items:center;justify-content:center;gap:48px;padding:80px 40px;position:relative;overflow:hidden}.landing-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle closest-side at 70% 50%,color-mix(in srgb,var(--accent) 12%,transparent) 0%,transparent 100%);pointer-events:none}.landing-hero-content{flex:1;max-width:640px;position:relative;z-index:1}.landing-badge{display:inline-block;background:var(--accent-soft);color:var(--accent-text);font-size:13px;font-weight:700;padding:6px 16px;border-radius:99px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);margin-bottom:20px}.parents-badge{background:var(--success-soft);color:var(--success-text);border-color:color-mix(in srgb,var(--success) 35%,transparent)}.landing-h1{font-size:clamp(32px,4.6vw,54px);font-weight:800;color:var(--text);line-height:1.1;letter-spacing:-1.5px;margin-bottom:20px;text-wrap:balance}.landing-subhead{font-size:clamp(16px,2vw,19px);color:var(--text-2);line-height:1.65;margin-bottom:36px;max-width:480px}.landing-hero-btns{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.landing-cta-primary{display:inline-block;background:var(--accent-fill);color:var(--on-accent);font-family:inherit;font-size:17px;font-weight:800;padding:16px 32px;border-radius:99px;border:none;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:var(--shadow-lg);text-decoration:none}.landing-cta-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--shadow-md)}.landing-cta-primary:active{transform:scale(.98)}.landing-pricing .landing-cta-primary{width:100%;max-width:340px;font-size:19px;padding:20px 32px}.landing-cta-secondary{background:var(--surface);color:var(--accent-text);font-family:inherit;font-size:16px;font-weight:700;padding:16px 28px;border-radius:99px;border:2px solid var(--accent);cursor:pointer;transition:background .15s}.landing-cta-secondary:hover{background:var(--accent-soft)}.landing-hero-visual{flex-shrink:0;position:relative;width:360px;height:360px;display:flex;align-items:center;justify-content:center}.hero-globe{font-size:180px;line-height:1;animation:float 4s ease-in-out infinite;filter:drop-shadow(0 16px 28px var(--drop-shadow))}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}.hero-bubbles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.hero-bubble{position:absolute;background:var(--surface);color:var(--text);font-size:13px;font-weight:700;padding:10px 16px;border-radius:99px;border:1px solid var(--border);box-shadow:var(--shadow-md);white-space:nowrap;animation:pop-in .5s ease backwards,float-subtle 5s ease-in-out infinite}.hero-bubble.b1{top:10%;left:-20px;animation-delay:.2s,.2s}.hero-bubble.b2{top:55%;right:-10px;animation-delay:.5s,.5s}.hero-bubble.b3{bottom:12%;left:10px;animation-delay:.8s,.8s}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes float-subtle{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.landing-section{padding:62px 40px;max-width:1100px;margin:0 auto}.landing-h2{font-size:clamp(28px,4vw,44px);font-weight:800;color:var(--text);text-align:center;letter-spacing:-1px;margin-bottom:14px}.landing-h2.left{text-align:left}.landing-section-sub{font-size:17px;color:var(--text-2);text-align:center;margin-bottom:36px;max-width:520px;margin-left:auto;margin-right:auto}.landing-how .landing-section-sub{margin-bottom:36px}.how-steps{display:flex;align-items:flex-start;gap:0;justify-content:center}.how-step{flex:1;max-width:280px;text-align:center;padding:0 16px}.how-icon{font-size:56px;margin-bottom:20px;display:block}.how-step h3{font-size:19px;font-weight:800;color:var(--text);margin-bottom:10px}.how-step p{font-size:15px;color:var(--text-2);line-height:1.65}.how-step-arrow{font-size:28px;color:var(--accent);align-self:center;margin-bottom:80px;flex-shrink:0;padding:0 8px}.landing-parents{text-align:center}.landing-parents .landing-badge{margin-bottom:16px}.landing-parents .landing-section-sub{margin-bottom:36px}.parents-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:800px;margin:0 auto}.parent-card{background:var(--surface);border-radius:20px;padding:28px 24px;text-align:left;border:2px solid var(--border);transition:transform .15s,border-color .15s}.parent-card:hover{transform:translateY(-3px);border-color:var(--accent)}.parent-icon{font-size:36px;margin-bottom:14px}.parent-card h3{font-size:18px;font-weight:800;color:var(--text);margin-bottom:8px}.parent-card p{font-size:14px;color:var(--text-2);line-height:1.65}.landing-demo{text-align:center}.demo-placeholder{max-width:720px;margin:0 auto;background:var(--surface);border-radius:20px;border:2px dashed var(--border-strong);padding:56px 40px;display:flex;flex-direction:column;align-items:center;gap:16px;cursor:default}.demo-play{width:72px;height:72px;border-radius:50%;background:var(--accent-fill);color:var(--on-accent);font-size:28px;display:flex;align-items:center;justify-content:center;padding-left:4px}.demo-placeholder p{color:var(--text-2);font-size:16px;font-weight:600}.two-col{display:flex;gap:48px;align-items:center}.two-col-text{flex:1;min-width:0}.two-col>.byte-mockup,.two-col>.screenshot-mockup{flex:0 0 360px}.landing-lead{font-size:17px;line-height:1.6;color:var(--text-2);margin:0 0 18px}.landing-points{list-style:none;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:10px}.landing-points li{font-size:15px;line-height:1.5;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px 14px}.journey-badge{background:var(--spark-soft);color:var(--spark-text);border-color:color-mix(in srgb,var(--spark) 50%,transparent)}.landing-games,.landing-levels,.landing-sparks{text-align:center}.lang-switch{display:inline-flex;flex-shrink:0;border:1.5px solid var(--border-strong);border-radius:99px;overflow:hidden}.lang-btn{background:none;border:none;color:var(--text-2);font-family:inherit;font-size:12px;font-weight:800;padding:6px 11px;cursor:pointer;letter-spacing:.04em}.lang-btn.active{background:var(--accent-fill);color:var(--on-accent)}.mock-top{background:var(--stage-surface);color:var(--stage-text);font-size:12px;font-weight:700;padding:10px 14px;text-align:left}.screenshot-mockup{border-radius:16px;overflow:hidden;border:2px solid var(--stage-frame);box-shadow:var(--shadow-lg)}.map-mockup{background:var(--stage-bg)}.mock-svg{display:block;width:100%;height:auto}.mock-shape{stroke-width:1.5;stroke-linejoin:round}.mock-shape.locked{fill:var(--map-locked);stroke:var(--map-locked-stroke)}.mock-shape.next{fill:var(--map-neighbour);stroke:var(--map-neighbour-stroke);stroke-dasharray:4 3}.mock-shape.open{fill:var(--map-open);stroke:var(--map-open-stroke)}.mock-shape.current{fill:var(--map-current);stroke:var(--map-current-stroke)}.mock-shape.target{fill:var(--map-target-fill);stroke:var(--map-target);stroke-width:2.5}.mock-here{font-size:9px;font-weight:800;fill:var(--map-pin-text)}.mock-pin{font-size:15px}.mock-goal{font-size:8px;font-weight:800;fill:var(--map-target)}.mock-legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:8px 14px 12px;font-size:11px;color:var(--stage-text-2)}.mock-legend span{display:inline-flex;align-items:center;gap:5px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.current{background:var(--map-current)}.dot.open{background:var(--map-open)}.dot.next{background:var(--map-neighbour);border:1px solid var(--map-neighbour-stroke)}.dot.locked{background:var(--map-locked);border:1px solid var(--map-locked-stroke)}.byte-mockup{border-radius:16px;overflow:hidden;border:2px solid var(--stage-frame);box-shadow:var(--shadow-lg);background:var(--surface);text-align:left}.byte-mock-top{display:flex;justify-content:space-between;background:var(--stage-surface);color:var(--stage-text);font-size:12px;font-weight:700;padding:10px 14px}.byte-mock-game{position:relative;height:150px;background:linear-gradient(var(--stage-bg),var(--stage-surface));overflow:hidden}.gg-star{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--stage-text)}.gg-star.s1{top:14%;left:12%}.gg-star.s2{top:30%;left:70%}.gg-star.s3{top:62%;left:28%}.gg-star.s4{top:48%;left:90%}.gg-alien{position:absolute;top:14px;font-size:22px}.gg-alien.a1{left:22%}.gg-alien.a2{left:44%;top:26px}.gg-alien.a3{left:66%}.gg-laser{position:absolute;left:calc(50% - 2px);bottom:54px;width:4px;height:34px;border-radius:2px;background:var(--spark);box-shadow:0 0 8px var(--spark)}.gg-ship{position:absolute;left:calc(50% - 22px);bottom:10px;width:44px;height:44px;background:var(--play-sky);clip-path:polygon(50% 0,100% 100%,50% 80%,0 100%)}.byte-mock-chat{background:var(--surface);padding:10px;display:flex;flex-direction:column;gap:6px}.mock-bubble{font-size:12px;padding:7px 11px;border-radius:12px;max-width:88%;line-height:1.4}.mock-bubble b{display:block;font-size:10px;color:var(--accent-text);margin-bottom:2px}.mock-bubble.ai{background:var(--accent-soft);color:var(--text);align-self:flex-start;border-bottom-left-radius:3px}.mock-bubble.kid{background:var(--accent-fill);color:var(--on-accent);align-self:flex-end;border-bottom-right-radius:3px}.byte-mock-done{background:var(--success);color:var(--on-accent);text-align:center;font-size:13px;font-weight:800;padding:10px}.games-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.game-card{background:var(--surface);border:2px solid var(--border);border-radius:18px;padding:18px 12px;font-family:inherit;color:var(--text);transition:transform .15s,border-color .15s,box-shadow .15s;cursor:pointer;display:flex;flex-direction:column}.game-card:hover,.game-card:focus-visible{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow-lg)}.game-watch{align-self:center;margin-top:auto;padding-top:10px;font-size:12px;font-weight:800;color:var(--accent-text)}.game-card:hover .game-watch,.game-card:focus-visible .game-watch{color:var(--text)}.demo-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:16px}.demo-modal{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:22px;width:min(820px,100%);max-height:100%;overflow-y:auto;padding:22px 22px 24px;display:flex;flex-direction:column;align-items:center;gap:14px;box-shadow:var(--shadow-lg)}.demo-modal-close{position:absolute;top:10px;right:12px;width:40px;height:40px;border:none;border-radius:50%;background:var(--accent-soft);color:var(--text);font-size:26px;line-height:1;cursor:pointer}.demo-modal-close:hover,.demo-modal-close:focus-visible{background:var(--border)}.demo-modal-head{display:flex;align-items:center;gap:12px;align-self:stretch;padding-right:48px}.demo-modal-icon{font-size:36px}.demo-modal-head h3{margin:0 0 2px;font-size:20px;font-weight:800;color:var(--text)}.demo-modal-head p{margin:0;font-size:14px;color:var(--text-2)}.demo-modal-frame{width:min(100%,calc((100dvh - 230px) * 760 / 360));aspect-ratio:760 / 360;background:var(--stage-bg);border-radius:14px;overflow:hidden;display:flex;align-items:center;justify-content:center}.demo-modal-frame iframe{width:100%;height:100%;border:0;display:block;touch-action:none}.demo-modal-status{color:var(--stage-text);font-size:14px;padding:16px;text-align:center}.demo-modal-hint{margin:0;font-size:14px;font-weight:700;color:var(--accent-text);text-align:center}.demo-modal-cta{margin-top:2px}.game-icon{font-size:34px;display:block;margin-bottom:8px}.game-card h3{font-size:15px;font-weight:800;color:var(--text);margin:0 0 6px}.game-card p{font-size:13px;line-height:1.45;color:var(--text-2);margin:0}.levels-row{display:flex;gap:16px;align-items:stretch;text-align:left;margin-bottom:24px}.level-card{flex:1;background:var(--surface);border:2px solid var(--border);border-radius:22px;padding:24px}.level-card.l2{border-color:var(--accent)}.level-card h3{font-size:20px;font-weight:800;margin:8px 0;color:var(--text)}.level-card p{font-size:15px;line-height:1.55;color:var(--text-2);margin:0 0 12px}.level-tag{display:inline-block;font-size:12px;font-weight:800;color:var(--on-accent);background:var(--accent-fill);border-radius:99px;padding:3px 12px}.level-card:not(.l2) .level-tag{background:var(--accent-soft);color:var(--accent-text)}.level-arrow{align-self:center;font-size:28px;color:var(--accent);font-weight:800}.level-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}.level-chip{font-size:12px;font-weight:700;border-radius:99px;padding:4px 10px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2)}.level-chip.done{background:var(--success-soft);border-color:transparent;color:var(--success-text)}.level-card .level-note{font-size:14px;font-weight:700;color:var(--accent-text);margin:0}.stars-band{display:flex;gap:16px;align-items:center;justify-content:center;background:var(--spark-soft);border:2px solid color-mix(in srgb,var(--spark) 55%,transparent);border-radius:18px;padding:16px 22px;text-align:left}.stars-band-stars{font-size:30px}.stars-band strong{font-size:17px;color:var(--spark-text)}.stars-band p{margin:2px 0 0;font-size:14px;color:var(--text);line-height:1.5}.landing-journey .chars-label{font-size:12px;font-weight:800;color:var(--spark-text);text-transform:uppercase;letter-spacing:.8px;margin:18px 0 10px;text-align:left}.landing-journey .chars-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;max-width:320px}.landing-journey .char-bubble{background:var(--surface);border:2px solid var(--border);border-radius:14px;padding:6px;display:flex;justify-content:center;transition:transform .15s,border-color .15s}.landing-journey .char-bubble:hover{transform:scale(1.08);border-color:var(--accent)}.sparks-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.spark-card{background:var(--spark-soft);border:2px solid color-mix(in srgb,var(--spark) 55%,transparent);border-radius:18px;padding:22px 18px}.spark-icon{font-size:32px}.spark-card h3{font-size:16px;font-weight:800;color:var(--spark-text);margin:8px 0 6px}.spark-card p{font-size:14px;line-height:1.5;color:var(--text);margin:0}.landing-sparks .landing-section-sub{max-width:640px}.landing-faq .landing-h2{margin-bottom:28px}.faq-list{max-width:700px;margin:0 auto;display:flex;flex-direction:column;gap:0;border-radius:16px;overflow:hidden;border:2px solid var(--border)}.faq-item{border-bottom:1px solid var(--border);background:var(--surface)}.faq-item:last-child{border-bottom:none}.faq-item.open{background:var(--surface-2)}.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:16px;font-weight:700;color:var(--text);text-align:left;gap:16px;transition:color .15s}.faq-q:hover,.faq-item.open .faq-q{color:var(--accent-text)}.faq-arrow{font-size:11px;color:var(--accent-text);flex-shrink:0}.faq-a{padding:0 24px 20px;font-size:15px;color:var(--text-2);line-height:1.7}.landing-pricing{text-align:center}.pricing-card{background:var(--surface);border-radius:28px;padding:44px 40px;max-width:440px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:4px;border:2px solid var(--border);box-shadow:var(--shadow-lg)}.pricing-price{font-size:72px;font-weight:800;color:var(--text);letter-spacing:-3px;line-height:1}.pricing-period{font-size:17px;color:var(--text-3);margin-bottom:28px}.pricing-features{list-style:none;width:100%;display:flex;flex-direction:column;gap:12px;margin-bottom:28px;text-align:left}.pricing-features li{font-size:15px;color:var(--text);font-weight:600}.pricing-note{font-size:13px;color:var(--text-3);margin-top:16px;text-align:center;max-width:280px;line-height:1.5}.landing-footer{background:var(--surface);border-top:1px solid var(--border);padding:34px 40px}.footer-inner{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:20px}.footer-brand{font-size:22px;font-weight:800;color:var(--text)}.footer-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.footer-link{background:none;color:var(--text-2);font-family:inherit;font-size:14px;font-weight:600;padding:8px 14px;border-radius:8px;border:none;cursor:pointer;text-decoration:none;transition:color .15s}.footer-link:hover{color:var(--text)}.footer-love{font-size:14px;color:var(--text-2)}.footer-copy{font-size:12px;color:var(--text-3)}@media (max-width: 860px){.landing-hero{flex-direction:column;padding:60px 24px;text-align:center;min-height:auto}.landing-hero-content,.landing-subhead{max-width:100%}.landing-hero-btns{justify-content:center}.landing-hero-visual{width:260px;height:260px}.hero-globe{font-size:130px}.landing-section{padding:45px 24px}.how-steps{flex-direction:column;align-items:center}.how-step-arrow{transform:rotate(90deg);margin:0}.how-step{max-width:100%}.two-col{flex-direction:column;gap:28px}.two-col>.byte-mockup,.two-col>.screenshot-mockup{flex:none;width:100%;max-width:380px}.two-col-text .landing-h2.left{text-align:center}.two-col-text{width:100%}.games-grid{grid-template-columns:repeat(2,1fr)}.levels-row{flex-direction:column}.level-arrow{transform:rotate(90deg)}.sparks-row{grid-template-columns:1fr}.stars-band{flex-direction:column;text-align:center}.parents-grid{grid-template-columns:1fr;max-width:480px}.parent-card{padding:22px 20px}.landing-nav-links .nav-link{display:none}.landing-nav{padding-left:16px;padding-right:16px}}@media (max-width: 480px){.landing-h1{letter-spacing:-.5px}.landing-hero-visual{width:200px;height:200px}.hero-globe{font-size:100px}.hero-bubble{font-size:11px;padding:8px 12px}.pricing-card{padding:32px 24px}.faq-q{font-size:14px;padding:16px 18px}.faq-a{padding:0 18px 16px}.landing-nav-links{gap:4px}.nav-cta-sm{padding:9px 12px;margin-left:0}.landing-brand{gap:8px}.lang-btn{padding:6px 9px}}@media (max-width: 384px){.landing[data-language=en] .landing-brand .enginar-badge{display:none}}.landing-pricing .landing-h2{margin-bottom:28px}@media (max-width: 600px){.demo-modal-backdrop{padding:0}.demo-modal{width:100%;height:100%;max-height:none;border-radius:0;border:none;justify-content:center;padding:60px 16px 24px}.demo-modal-frame{width:min(100%,calc((100dvh - 250px) * 760 / 360));border-radius:10px}}.home-screen{height:100%;display:flex;flex-direction:column;font-family:var(--font);color:var(--text);background:var(--bg);overflow:hidden}.mission-banner{flex-shrink:0;padding:10px 20px;text-align:center;font-size:15px;font-weight:700;letter-spacing:.01em;color:var(--text);background:var(--accent-soft);border-bottom:1px solid var(--border)}.destination-banner{margin-top:4px;font-size:14px;font-weight:700;color:var(--play-coral-text)}.build-banner-btn{margin-left:10px;border-radius:999px;padding:4px 12px;font-size:var(--fs-label);font-weight:800;color:var(--map-pin-text);background:var(--spark)}.build-note{margin:8px 16px 0;padding:10px 14px;border-radius:14px;font-size:14px;font-weight:700;flex-shrink:0;color:var(--spark-text);background:var(--spark-soft);border:1px solid var(--spark)}.home-header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:16px 20px;flex-shrink:0}.home-greeting{font-size:20px;font-weight:800;color:var(--text)}.home-header-actions{display:flex;align-items:center;gap:8px}.level-badge{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:4px 12px;border-radius:99px;font-size:var(--fs-label);font-weight:800;color:var(--spark-text);background:var(--spark-soft);border:1px solid var(--spark)}.level-progress{display:inline-flex;margin:6px 0 0 6px;padding:4px 10px;border-radius:99px;white-space:nowrap;font-size:var(--fs-label);font-weight:800;color:var(--text-2);background:var(--surface);border:1px solid var(--border-strong)}.how-to-play-btn{padding:10px 14px;border-radius:99px;white-space:nowrap;cursor:pointer;font-size:14px;font-weight:800;color:var(--on-accent);background:var(--accent-fill);border:none;transition:background .15s}.how-to-play-btn:hover{background:var(--accent-text)}.profile-btn{width:44px;height:44px;border-radius:50%;font-size:22px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1.5px solid var(--border-strong);transition:border-color .15s,background .15s}.profile-btn:hover{background:var(--accent-soft);border-color:var(--accent)}.map-container{position:relative;width:100%;height:55vh;flex-shrink:0;overflow:hidden;background:var(--stage-bg);border-top:1px solid var(--stage-border);border-bottom:1px solid var(--stage-border)}.map-frame{width:100%;height:100%;border:none;display:block}.map-locked-note{position:absolute;bottom:12px;left:50%;transform:translate(-50%);pointer-events:none;white-space:nowrap;padding:8px 18px;border-radius:20px;font-size:13px;font-weight:700;color:var(--stage-text);background:var(--stage-surface);border:1px solid var(--stage-border)}.route-preview{position:absolute;left:16px;bottom:16px;z-index:5;width:min(360px,calc(100% - 88px));display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:18px;color:var(--stage-text);background:var(--stage-surface);border:1px solid var(--stage-border);box-shadow:0 8px 28px var(--drop-shadow)}.route-preview-close{position:absolute;top:8px;right:10px;width:32px;height:32px;border-radius:50%;font-size:15px;cursor:pointer;color:var(--stage-text);background:var(--stage-bg);border:1px solid var(--stage-border)}.route-preview-title{font-size:18px;font-weight:800;padding-right:36px}.route-preview-steps{font-size:13px;font-weight:800;color:var(--stage-sky)}.route-preview-label{font-size:14px;font-weight:700;color:var(--stage-text-2)}.route-preview-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:96px;overflow-y:auto}.route-chip{padding:4px 10px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap;color:var(--stage-text);background:var(--stage-bg);border:1px dashed var(--map-neighbour-stroke)}.route-chip.air{border:1px dashed var(--stage-sky)}.route-chip.target{background:var(--map-target-fill);border:1px solid var(--map-target)}.route-preview-go{width:100%;margin-top:2px}.route-notice{position:absolute;left:50%;top:16px;transform:translate(-50%);z-index:6;width:min(420px,calc(100% - 32px));display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center;padding:14px 16px;border-radius:16px;font-size:15px;font-weight:800;color:var(--text);background:var(--warning-soft);border:2px solid var(--warning);box-shadow:0 8px 28px var(--drop-shadow)}.home-loading{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.country-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg)}.country-group-title{font-size:var(--fs-label);font-weight:800;color:var(--text-2);letter-spacing:.02em;margin:6px 4px 0}.country-card{display:flex;align-items:center;gap:14px;padding:16px;border-radius:16px;cursor:pointer;background:var(--surface);border:2px solid var(--border);transition:border-color .15s,transform .1s}.country-card:hover{border-color:var(--accent);transform:translateY(-1px)}.country-card-flag{font-size:32px}.country-card-name{font-size:17px;font-weight:700;color:var(--text)}.country-card-status{font-size:var(--fs-label);color:var(--text-2);margin-top:2px}.country-card.completed{border-color:var(--success);background:var(--success-soft)}.country-card.completed .country-card-status{color:var(--success-text);font-weight:700}.country-card.current{border-color:var(--map-current);box-shadow:0 0 0 3px color-mix(in srgb,var(--map-current) 35%,transparent)}.country-card.new-country{border-color:var(--spark);box-shadow:0 0 0 3px color-mix(in srgb,var(--spark) 35%,transparent);animation:new-country-glow 1.6s ease-in-out infinite}.country-card-status.new{color:var(--spark-text);font-weight:800}@keyframes new-country-glow{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--spark) 15%,transparent)}}.country-card.locked{cursor:default;background:var(--surface-2)}.country-card.locked:hover{border-color:var(--border);transform:none}.country-card-name.locked{color:var(--text-2)}.country-card.next{border-style:dashed;border-color:var(--border-strong)}.country-card.next:hover{border-color:var(--border-strong)}.locked-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:16px;border-radius:16px;font-size:16px;font-weight:700;text-align:left;cursor:pointer;font-family:inherit;color:var(--text);background:var(--surface);border:2px solid var(--border)}.locked-row:hover{border-color:var(--accent)}.locked-row-chevron{font-size:18px;color:var(--text-2);transition:transform .2s}.locked-row-chevron.open{transform:rotate(180deg)}.locked-list{display:flex;flex-direction:column;gap:8px}.locked-list .country-card{padding:10px 14px}.locked-list .country-card-flag{font-size:22px}.locked-list .country-card-name{font-size:15px}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--overlay)}.celebration-card{width:100%;max-width:420px;border-radius:22px;padding:24px 20px 20px;text-align:center;font-family:var(--font);color:var(--text);background:var(--surface);border-top:6px solid var(--spark);box-shadow:var(--shadow-lg);animation:celebration-pop .35s ease-out}.celebration-emoji{font-size:56px;line-height:1;margin-bottom:8px}.celebration-title{font-size:22px;font-weight:800;color:var(--text);margin-bottom:8px}.celebration-body{font-size:var(--fs-body);color:var(--text-2);margin-bottom:14px}.celebration-target{margin:0 auto 14px;padding:8px 14px;border-radius:14px;font-size:16px;font-weight:800;max-width:340px;color:var(--play-coral-text);background:var(--play-coral-soft);border:2px solid var(--play-coral)}.celebration-target.explorer{color:var(--spark-text);background:var(--spark-soft);border-color:var(--spark)}.celebration-countries{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:18px}.celebration-chip{border-radius:999px;padding:6px 14px;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;color:var(--accent-text);background:var(--accent-soft);border:2px solid var(--accent)}.celebration-chip:hover{background:var(--surface)}.celebration-ok{width:100%;max-width:240px}.home-screen :focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media (max-width: 480px){.home-header{padding:12px 16px}.home-greeting{font-size:18px}.how-to-play-btn{padding:9px 11px;font-size:13px}.route-preview{left:8px;right:8px;bottom:8px;width:auto;padding:10px 12px;gap:5px;border-radius:14px}.route-preview-close{top:6px;right:8px;width:28px;height:28px;font-size:13px}.route-preview-title{font-size:15px}.route-preview-steps,.route-preview-label{font-size:12px}.route-preview-chips{gap:4px;max-height:58px}.route-chip{padding:2px 8px;font-size:12px}.route-preview-go{padding:9px 14px;font-size:15px}}.country-screen{min-height:100%;padding:0 0 40px;font-family:var(--font);color:var(--text);background:var(--bg)}.screen-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--surface);border-bottom:1px solid var(--border)}.back-btn{min-width:44px;min-height:44px;padding:4px 8px;border-radius:12px;font-size:20px;font-weight:700;color:var(--accent-text);background:none}.back-btn:hover{background:var(--accent-soft)}.screen-title{font-size:20px;font-weight:800;color:var(--text)}.country-game-title{text-align:center;padding:12px 20px 0;font-size:var(--fs-body);font-weight:700;color:var(--text-2)}.country-loading{display:flex;justify-content:center;padding:40px}.country-no-games{text-align:center;color:var(--text-2);padding:40px 20px;font-size:var(--fs-body);margin:0}.task-list{padding:16px;display:flex;flex-direction:column;gap:12px}.task-card{padding:18px;border-radius:16px;cursor:pointer;background:var(--surface);border:2px solid var(--border);transition:border-color .15s,transform .1s}.task-card:hover{border-color:var(--accent);transform:translateY(-1px)}.task-card.locked{cursor:default;background:var(--surface-2)}.task-card.locked:hover{border-color:var(--border);transform:none}.task-card.locked .task-card-title{color:var(--text-2)}.task-card.completed{border-color:var(--success);background:var(--success-soft)}.task-card.readonly{cursor:default}.task-card.readonly:hover{border-color:var(--success);transform:none}.task-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}.task-card-title{font-size:17px;font-weight:800;color:var(--text)}.task-card-desc{font-size:var(--fs-body);color:var(--text-2);line-height:1.5}.task-card-stars{font-size:16px;margin-top:8px;letter-spacing:2px}.task-status-badge{font-size:var(--fs-label);font-weight:700;padding:4px 10px;border-radius:99px;flex-shrink:0}.task-status-badge.done{color:var(--success-text);background:var(--surface);border:1px solid var(--success)}.task-status-badge.locked{color:var(--text-2);background:var(--surface);border:1px solid var(--border-strong)}.country-complete-panel{display:flex;flex-direction:column;align-items:center;gap:10px;margin:12px 16px 0;padding:16px;border-radius:16px;background:var(--spark-soft);border:2px solid var(--spark)}.country-complete-title{font-size:17px;font-weight:800;color:var(--spark-text);text-align:center}.country-complete-panel .btn-primary{width:100%;max-width:280px}.game-demo-overlay{background:var(--overlay);z-index:100}.game-demo-card{max-width:520px;width:95vw;padding:0;overflow:hidden}.game-demo-title{padding:16px 20px 8px;text-align:center;font-weight:800;font-size:18px;color:var(--text)}.game-demo-frame{width:100%;height:320px;border:none;display:block;background:var(--stage-bg)}.game-demo-body{padding:12px 20px 8px;text-align:center;color:var(--text-2);font-size:15px}.game-demo-actions{padding:0 20px 20px;display:flex;justify-content:center}.game-demo-actions .btn-primary{width:100%;max-width:260px}.task-screen{height:100%;display:flex;flex-direction:column;overflow:hidden;font-family:var(--font);color:var(--text);background:var(--bg)}.task-mission-banner{flex-shrink:0;padding:14px 20px;text-align:center;font-size:17px;font-weight:800;line-height:1.5;letter-spacing:.01em;color:var(--on-accent);background:var(--accent-fill);box-shadow:var(--shadow-md)}.preview-section{position:relative;flex-shrink:0;background:var(--stage-bg);border-bottom:1px solid var(--border)}.preview-section.fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;height:100vh!important}.preview-frame{width:100%;height:100%;border:none;display:block}.preview-placeholder{height:100%;display:flex;align-items:center;justify-content:center;color:var(--stage-text-2);font-size:var(--fs-body);font-style:italic}.preview-controls{position:absolute;top:8px;left:8px;right:8px;display:flex;justify-content:space-between;pointer-events:none}.preview-btn{width:40px;height:40px;border-radius:50%;font-size:17px;display:flex;align-items:center;justify-content:center;pointer-events:all;cursor:pointer;color:var(--on-accent);background:var(--accent-fill);border:1px solid var(--stage-border);box-shadow:0 2px 8px var(--drop-shadow)}.preview-btn:hover{background:var(--accent-text)}.preview-btn.end{margin-left:auto}.spark-bar{height:38px;display:flex;align-items:center;justify-content:center;gap:16px;flex-shrink:0;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--border)}.spark-text{font-size:var(--fs-label);font-weight:700;color:var(--spark-text)}.spark-text.low{color:var(--danger-text)}.spark-done{font-size:var(--fs-label);font-weight:700;color:var(--success-text)}.out-of-sparks{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.out-of-sparks .bubble{max-width:420px}.mission-start{display:flex;align-items:center;justify-content:center;flex:1;padding:24px}.mission-start-btn{width:100%;padding:18px 24px;border:none;border-radius:16px;font-family:inherit;font-size:19px;font-weight:800;letter-spacing:.02em;cursor:pointer;color:var(--on-accent);background:var(--accent-fill);box-shadow:var(--shadow-lg);transition:background .15s}.mission-start-btn:hover{background:var(--accent-text)}.mission-start-btn:disabled{cursor:not-allowed;opacity:.6}.chat-section{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--surface)}.message-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.bubble{max-width:80%;padding:10px 14px;border-radius:18px;font-size:var(--fs-bubble);font-weight:500;line-height:1.5}.bubble-text{white-space:pre-wrap}.bubble.byte{align-self:flex-start;color:var(--text);background:var(--accent-soft);border-bottom-left-radius:4px}.bubble.kid{align-self:flex-end;color:var(--on-accent);background:var(--accent-fill);border-bottom-right-radius:4px}.byte-row{display:flex;align-items:flex-end;gap:8px;align-self:flex-start;max-width:88%}.byte-row>.bubble.byte{max-width:none;min-width:0}.byte-avatar{flex-shrink:0}.byte-label{font-size:var(--fs-label);font-weight:700;color:var(--accent-text);margin-bottom:4px}.typing-dots{display:inline-flex;align-items:center;gap:5px;height:22px;margin-top:2px}.typing-dots i{width:8px;height:8px;border-radius:50%;background:var(--text-2);animation:typing-bounce 1.2s infinite ease-in-out}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-6px);opacity:1}}@media (prefers-reduced-motion: reduce){.typing-dots i{animation:none;opacity:.8}}.input-row{display:flex;gap:8px;padding:10px;background:var(--surface);border-top:1px solid var(--border)}.chat-input{flex:1;height:44px;padding:0 16px;border-radius:22px;font-family:inherit;font-size:var(--fs-body);color:var(--text);background:var(--surface-2);border:1.5px solid var(--border-strong);outline:none}.chat-input::placeholder{color:var(--text-2)}.chat-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.send-btn{height:44px;padding:0 20px;border-radius:22px;font-family:inherit;font-size:var(--fs-label);font-weight:700;color:var(--on-accent);background:var(--accent-fill);transition:background .15s}.send-btn:hover:not(:disabled){background:var(--accent-text)}.send-btn:disabled{opacity:.55;cursor:default}.im-done-btn{margin:8px 10px;padding:13px;border-radius:24px;font-family:inherit;font-size:16px;font-weight:800;text-align:center;color:var(--on-accent);background:var(--success);transition:opacity .15s}.im-done-btn:disabled{opacity:.6;cursor:default}.im-done-btn .spinner{width:18px;height:18px;display:inline-block}.im-done-btn.ready{animation:ready-glow 1.6s ease-in-out infinite}@keyframes ready-glow{0%,to{box-shadow:0 0 color-mix(in srgb,var(--success) 55%,transparent);transform:scale(1)}50%{box-shadow:0 0 0 8px color-mix(in srgb,var(--success) 0%,transparent);transform:scale(1.02)}}@media (prefers-reduced-motion: reduce){.im-done-btn.ready{animation:none;box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 35%,transparent)}}.task-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);z-index:150;padding:10px 22px;border-radius:20px;white-space:nowrap;font-size:15px;font-weight:700;color:var(--stage-text);background:var(--stage-surface);border:1px solid var(--stage-border);box-shadow:var(--shadow-md)}.pass-overlay{background:var(--overlay)}.pass-card{border-top:6px solid var(--success)}.pass-emoji{font-size:56px;text-align:center;margin-bottom:8px;line-height:1}.pass-card .modal-title{color:var(--success-text)}.pass-card .btn-primary{background:var(--success)}.pass-card .btn-primary:hover{background:var(--success);opacity:.9}.mission-complete-overlay{background:var(--overlay);z-index:200}.mission-complete-card{border-top:6px solid var(--spark)}.mission-complete-emoji{font-size:64px;text-align:center;margin-bottom:8px}.mission-complete-card .modal-title{color:var(--text);font-size:22px}.mission-complete-card .modal-body{text-align:center}.build-welcome{min-height:100%;padding:28px 16px 40px;display:flex;flex-direction:column;align-items:center;gap:16px;font-family:var(--font);color:var(--text);background:var(--bg);text-align:center}.build-welcome-sparkles{font-size:26px;letter-spacing:8px;animation:celebration-pop .5s ease-out}.build-welcome-title{font-size:30px;font-weight:800;color:var(--text)}.build-welcome-sub{font-size:19px;font-weight:800;color:var(--text-2)}.build-welcome-byte{display:flex;align-items:flex-end;gap:10px;max-width:560px;text-align:left}.build-welcome-avatar{flex-shrink:0}.build-welcome-bubble{max-width:100%}.build-welcome-rule{margin-top:8px;font-weight:700}.build-welcome-error{color:var(--danger-text);font-weight:700}.build-welcome-start{max-width:320px;font-size:20px;padding:18px 24px;animation:ready-glow 1.6s ease-in-out infinite}.build-card-grid{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;width:100%;max-width:1100px}.build-card{width:320px;border-radius:24px;overflow:hidden;display:flex;flex-direction:column;color:var(--text);background:var(--surface);border:2px solid var(--border);box-shadow:var(--shadow-md);animation:celebration-pop .4s ease-out}.build-card-grid.single .build-card{width:min(560px,100%)}.build-card.chosen{border-color:var(--accent)}.build-card.demo-first{border-color:var(--spark)}.build-card-demo{background:var(--stage-bg);aspect-ratio:760 / 360}.build-card-grid.single .build-card.demo-first .build-card-demo{aspect-ratio:16 / 9}.build-card-demo iframe{width:100%;height:100%;border:none;display:block;pointer-events:none}.build-card-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:8px;align-items:center}.build-card-title{font-size:22px;font-weight:800;color:var(--text)}.build-card-line{font-size:17px;font-weight:800;color:var(--spark-text)}.build-card-meta{font-size:var(--fs-label);color:var(--text-2);font-weight:600}.build-card-btn{margin-top:6px;max-width:240px}.build-country-panel{margin:16px;padding:20px;border-radius:20px;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;background:var(--surface);border:2px solid var(--border)}.build-chapter-label{padding:4px 14px;border-radius:999px;font-size:var(--fs-label);font-weight:800;color:var(--spark-text);background:var(--spark-soft);border:1px solid var(--spark)}.build-chapter-title{font-size:24px;font-weight:800;color:var(--text)}.build-game-title{font-size:15px;font-weight:700;color:var(--text-2)}.build-country-text{font-size:var(--fs-body);color:var(--text);line-height:1.5;padding:0 8px}.build-country-btn{max-width:300px}.game-demo-actions-only{padding:16px}.build-banner{flex-shrink:0;padding:14px 20px;text-align:center;font-size:17px;font-weight:800;line-height:1.5;letter-spacing:.01em;color:var(--on-accent);background:var(--accent-fill);box-shadow:var(--shadow-md)}.build-start-btn{width:100%;padding:18px 24px;border-radius:16px;font-family:inherit;font-size:19px;font-weight:800;color:var(--on-accent);background:var(--accent-fill);box-shadow:var(--shadow-lg);transition:background .15s}.build-start-btn:hover{background:var(--accent-text)}.build-start-btn:disabled{opacity:.6;cursor:not-allowed}.spark-bar-count{font-size:var(--fs-label);font-weight:800;color:var(--spark-text)}.empty-stage-caption{position:absolute;left:50%;bottom:18px;transform:translate(-50%);max-width:90%;pointer-events:none;padding:10px 18px;border-radius:999px;font-size:15px;font-weight:800;text-align:center;color:var(--spark);background:var(--stage-surface);border:2px solid var(--spark);animation:empty-glow 2.4s ease-in-out infinite}@keyframes empty-glow{50%{box-shadow:0 0 18px color-mix(in srgb,var(--spark) 45%,transparent)}}.build-preview{display:flex}.build-stage{position:relative;flex:1;min-width:0;height:100%}.build-preview.fullscreen .build-stage{height:100%}.stage-label{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:2;padding:3px 14px;border-radius:999px;pointer-events:none;white-space:nowrap;font-size:13px;font-weight:800;color:var(--stage-text);background:var(--stage-surface);border:1px solid var(--stage-border)}.goal-box.hidden{display:none}.goal-label{color:var(--spark);font-weight:800;font-size:15px;text-align:center}.goal-frame{position:relative;aspect-ratio:760 / 360;overflow:hidden;border-radius:10px;background:var(--stage-bg);border:2px solid var(--spark);box-shadow:0 0 14px color-mix(in srgb,var(--spark) 25%,transparent)}.goal-preview-frame{pointer-events:none}.goal-caption{color:var(--stage-text-2);font-size:13px;font-weight:700;text-align:center;line-height:1.35}.goal-box.side{flex:0 0 clamp(300px,34%,440px);height:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:var(--stage-surface);border-left:2px dashed var(--stage-border)}.goal-box.side .goal-frame{width:min(100%,calc((45vh - 96px) * 760 / 360))}.goal-box.thumb{position:absolute;top:52px;right:8px;z-index:5;width:min(34%,150px);display:flex;flex-direction:column;gap:2px}.goal-box.thumb .goal-label{align-self:center;padding:1px 8px;border-radius:999px;font-size:12px;background:var(--stage-surface)}.goal-box.thumb .goal-frame{width:100%}.goal-box.thumb.open{top:8px;right:8px;bottom:8px;left:8px;width:auto;z-index:6;align-items:center;justify-content:center;gap:6px;padding:10px;border-radius:14px;background:var(--stage-bg);border:2px solid var(--spark)}.goal-box.thumb.open .goal-label{font-size:15px;background:none}.goal-box.thumb.open .goal-frame{width:min(100%,calc((45vh - 96px) * 760 / 360))}.goal-tap{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:transparent;border:none;cursor:pointer;padding:0}.bubble.byte.idle-hint{background:var(--spark-soft);border:1px dashed var(--spark)}.suggestion-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 12px 6px}.suggestion-title{font-size:13px;color:var(--text-2);font-weight:700}.suggestion-chip{border-radius:999px;padding:6px 14px;font-family:inherit;font-size:var(--fs-label);font-weight:700;cursor:pointer;color:var(--spark-text);background:var(--spark-soft);border:2px solid var(--spark)}.build-confetti{font-size:40px;letter-spacing:6px;display:block;margin-bottom:6px;animation:celebration-pop .5s ease-out}.build-confetti.big{font-size:56px}.build-level-done{animation:celebration-pop .4s ease-out}.build-next-level{color:var(--accent-text);font-weight:700}.step-checklist{display:flex;flex-direction:column;align-items:center;justify-content:center}.step-checklist-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.step-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:800;line-height:1.2;white-space:nowrap;border:2px solid transparent;transition:background .2s,border-color .2s}.step-chip:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.step-chip-icon{font-size:15px}.step-chip-tick{color:var(--success-text);font-weight:800}.step-chip.done{color:var(--success-text);background:var(--success-soft);border-color:var(--success)}.step-chip.available{color:var(--spark-text);background:var(--spark-soft);border-color:var(--spark);box-shadow:0 0 0 3px color-mix(in srgb,var(--spark) 18%,transparent);animation:chip-glow 2s ease-in-out infinite}.step-chip.waiting{color:var(--text-2);background:var(--surface-2);border-color:var(--border)}.step-chip.waiting .step-chip-icon{filter:grayscale(1);opacity:.7}.step-chip.open{border-color:var(--accent)}.step-chip.pop{animation:dot-pop .6s ease-out}@keyframes chip-glow{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--spark) 28%,transparent)}}@keyframes dot-pop{0%{transform:scale(.4)}60%{transform:scale(1.2)}to{transform:scale(1)}}.step-checklist.compact{padding:6px 12px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border)}.step-checklist.compact .step-chip{padding:3px 8px;font-size:12px}.step-checklist.compact .step-chip-icon{font-size:14px}.step-bubble{position:relative;margin:8px auto 0;max-width:360px;width:100%;box-sizing:border-box;text-align:left;padding:10px 30px 10px 12px;border-radius:14px;font-size:var(--fs-label);line-height:1.4;color:var(--text);background:var(--surface);border:2px solid var(--accent-soft);box-shadow:var(--shadow-md)}.step-bubble-title{font-weight:800;margin-bottom:2px}.step-bubble-choices{margin-top:4px;font-weight:700;color:var(--accent-text)}.step-bubble-example{margin-top:4px;font-style:italic;color:var(--text-2)}.step-bubble-close{position:absolute;top:4px;right:6px;border:0;background:none;font-size:18px;line-height:1;cursor:pointer;padding:4px;color:var(--text-2)}.dev-all-label{font-size:11px;border-radius:6px;padding:1px 6px;margin:-6px 0 8px;color:var(--spark-text);background:var(--spark-soft);border:1px dashed var(--spark)}@media (max-width: 480px){.step-checklist.compact .step-checklist-row{gap:4px}.step-checklist.compact .step-chip{padding:3px 7px;font-size:11.5px}.step-checklist.compact .step-chip.waiting .step-chip-label{display:none}}@media (prefers-reduced-motion: reduce){.step-chip.pop,.step-chip.available,.empty-stage-caption,.build-welcome-start{animation:none}}.privacy-page{min-height:100%;background:var(--bg);color:var(--text)}.privacy-wrap{display:grid;grid-template-columns:220px minmax(0,760px);gap:clamp(32px,5vw,72px);max-width:1100px;margin:0 auto;padding:clamp(32px,6vw,88px) clamp(16px,4vw,40px)}.privacy-nav{position:sticky;top:24px;align-self:start;display:grid;gap:16px}.privacy-nav ul{display:grid;gap:4px;margin:0;padding:0;list-style:none}.privacy-nav a{display:block;padding:8px 12px;border-radius:10px;color:var(--text-2);font-size:var(--fs-label);line-height:1.35;text-decoration:none}.privacy-nav a:hover{color:var(--text);background:var(--surface-2)}.privacy-nav a:focus-visible,.privacy-prose a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.privacy-lang{display:inline-flex;justify-self:start;border:1.5px solid var(--border-strong);border-radius:99px;overflow:hidden}.privacy-nav .privacy-lang-btn{padding:6px 12px;border-radius:0;color:var(--text-2);font-size:12px;font-weight:800;letter-spacing:.04em}.privacy-nav .privacy-lang-btn.active{background:var(--accent-fill);color:var(--on-accent)}.privacy-header{display:grid;gap:14px;padding-bottom:28px;margin-bottom:8px;border-bottom:1px solid var(--border)}.privacy-header h1{margin:0;font-size:clamp(1.75rem,1.4rem + 2vw,2.75rem);line-height:1.15;overflow-wrap:anywhere}.privacy-updated{margin:0;color:var(--text-2);font-family:var(--font-mono);font-size:.875rem}.privacy-prose{color:var(--text-2);font-size:var(--fs-body);line-height:1.65}.privacy-prose h2{margin:40px 0 12px;color:var(--text);font-size:1.375rem;line-height:1.3;scroll-margin-top:24px}.privacy-prose p,.privacy-prose li{max-width:68ch}.privacy-prose p{margin:0}.privacy-prose p+p,.privacy-prose p+ul,.privacy-prose p+.privacy-table-wrap,.privacy-prose .privacy-table-wrap+p{margin-top:12px}.privacy-prose>p:first-child{margin-top:20px}.privacy-prose ul{display:grid;gap:8px;margin:0;padding-left:1.2em}.privacy-prose strong{color:var(--text)}.privacy-prose a{color:var(--accent-text);overflow-wrap:anywhere}.privacy-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.privacy-prose table{width:100%;border-collapse:collapse;font-size:.9375rem;line-height:1.5}.privacy-prose th,.privacy-prose td{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.privacy-prose th{color:var(--text);background:var(--surface-2);font-weight:700}.privacy-prose tbody tr:last-child td{border-bottom:none}@media (max-width: 859px){.privacy-wrap{grid-template-columns:minmax(0,1fr);gap:24px}.privacy-nav{position:static;min-width:0}.privacy-nav ul{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.privacy-nav li{flex:none}.privacy-nav ul a{white-space:nowrap;border:1px solid var(--border);background:var(--surface)}}@media (max-width: 480px){.privacy-prose th,.privacy-prose td{padding:8px 10px}.privacy-prose table{font-size:.875rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}#root{height:100%}button{cursor:pointer;border:none;font-family:inherit;color:inherit}input{font-family:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.auth-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.auth-screen-long{align-items:flex-start;overflow-y:auto;padding:40px 24px}.auth-card{width:100%;max-width:440px;padding:40px 36px;border-radius:28px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md)}.auth-card-wide{max-width:480px}.auth-card-center{text-align:center}.auth-emoji{font-size:56px;display:flex;justify-content:center;margin-bottom:12px}.auth-title{font-size:26px;font-weight:800;color:var(--text);text-align:center;margin-bottom:8px}.auth-subtitle{font-size:var(--fs-body);color:var(--text-2);text-align:center;line-height:1.5;margin-bottom:28px}.auth-error{color:var(--danger-text);font-size:var(--fs-label);font-weight:600;text-align:center;margin:12px 0}.auth-success{color:var(--success-text);font-size:var(--fs-label);font-weight:600;margin-bottom:12px}.auth-note{font-size:var(--fs-label);color:var(--text-2);margin-top:16px}.auth-google{display:flex;justify-content:center;margin-bottom:12px}.auth-dev-buttons{margin-top:16px;display:flex;flex-direction:column;gap:8px}.field{margin-bottom:20px}.field-label{display:block;font-size:15px;font-weight:700;color:var(--text);margin-bottom:8px}.field-hint{display:block;font-size:var(--fs-label);color:var(--text-2);margin-bottom:8px}.text-input{width:100%;padding:14px 16px;border-radius:14px;font-size:16px;color:var(--text);background:var(--surface);border:2px solid var(--border-strong);outline:none;transition:border-color .15s,box-shadow .15s}.text-input::placeholder{color:var(--text-2)}.text-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.local-signin{width:100%;margin-bottom:12px}.local-signin .field{margin-bottom:14px;text-align:left}.local-signin-hint{font-size:var(--fs-label);color:var(--text-2);margin-top:6px}.auth-privacy{font-size:var(--fs-label);color:var(--text-2);text-align:center;line-height:1.5;margin:16px 0 4px}.auth-privacy a{color:var(--accent-text);font-weight:700}.lang-picker{display:flex;gap:12px}.lang-option{flex:1;padding:14px;border-radius:14px;font-size:16px;font-weight:700;text-align:center;color:var(--accent-text);background:var(--surface);border:2px solid var(--border-strong);transition:background .15s,border-color .15s,color .15s}.age-picker{display:flex;flex-wrap:wrap;gap:10px}.age-option{width:52px;height:52px;border-radius:50%;font-size:17px;font-weight:700;color:var(--accent-text);background:var(--surface);border:2px solid var(--border-strong);transition:background .15s,border-color .15s,color .15s}.lang-option:hover,.age-option:hover{border-color:var(--accent)}.lang-option.selected,.age-option.selected{color:var(--on-accent);background:var(--accent-fill);border-color:var(--accent-fill)}.char-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.char-option{padding:4px;border-radius:14px;cursor:pointer;background:color-mix(in srgb,var(--on-accent) 92%,var(--accent));border:3px solid transparent;transition:background .15s,border-color .15s}.char-option:hover{border-color:var(--border-strong)}.char-option.selected{background:color-mix(in srgb,var(--on-accent) 80%,var(--accent));border-color:var(--accent)}.char-img{width:100%;aspect-ratio:1;display:block}.char-name{font-size:12px;font-weight:700;color:var(--map-pin-text);margin-top:2px;text-align:center}.btn-primary{width:100%;padding:16px;border-radius:30px;background:var(--accent-fill);color:var(--on-accent);font-family:var(--font);font-size:17px;font-weight:800;text-align:center;transition:background .15s,opacity .15s,transform .1s;margin-top:8px}.btn-primary:hover{background:var(--accent-text)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.55;cursor:default}.btn-secondary{width:100%;padding:14px;border-radius:30px;background:transparent;color:var(--accent-text);font-family:var(--font);font-size:15px;font-weight:700;border:2px solid var(--border-strong);text-align:center;margin-top:10px;transition:background .15s}.btn-secondary:hover{background:var(--accent-soft)}.btn-secondary:disabled{opacity:.55;cursor:default}@keyframes celebration-pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.profile-screen{min-height:100%;padding-bottom:40px;background:var(--bg)}.profile-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--surface);border-bottom:1px solid var(--border)}.profile-loading{display:flex;justify-content:center;padding:40px}.profile-card{margin:20px 16px 0;padding:28px;border-radius:20px;display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface);border:2px solid var(--border)}.profile-card .dev-skip-btn{margin-top:14px}.profile-character{width:72px;height:72px;border-radius:50%;margin-bottom:8px;background:color-mix(in srgb,var(--on-accent) 92%,var(--accent));border:3px solid var(--accent)}.profile-change-char{display:block;width:calc(100% - 32px);margin:12px 16px}.char-picker{margin:0 16px 16px;padding:16px;border-radius:16px;background:var(--surface);border:2px solid var(--border)}.char-picker .char-grid{margin-bottom:12px}.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--on-accent);margin-bottom:8px;flex-shrink:0}.avatar-c0{background:var(--accent-fill)}.avatar-c1{background:var(--success)}.avatar-c2{background:var(--danger)}.avatar-c3{background:var(--stage-surface)}.avatar-c4{background:var(--map-target-fill)}.profile-name{font-size:24px;font-weight:800;color:var(--text)}.profile-joined{font-size:var(--fs-label);color:var(--text-2);margin-bottom:16px}.stats-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;row-gap:12px;gap:0}.stat-box{display:flex;flex-direction:column;align-items:center;padding:0 20px}.stat-num{font-size:26px;font-weight:800;color:var(--accent-text)}.stat-label{font-size:13px;color:var(--text-2);margin-top:2px}.stat-divider{width:1px;height:36px;background:var(--border)}.stat-num.low{color:var(--danger-text)}@media (max-width: 480px){.stat-box{padding:0 10px}.stat-num{font-size:22px}}.section-title{font-size:17px;font-weight:800;color:var(--text);padding:20px 16px 12px}.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 16px;margin-bottom:8px}.badge-card{padding:14px 10px;border-radius:14px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;background:var(--surface);border:2px solid var(--border)}.badge-card.locked{background:var(--surface-2)}.badge-card.locked .badge-emoji{filter:grayscale(1);opacity:.6}.badge-card.explorer:not(.locked){border-color:var(--spark);background:var(--spark-soft)}.badge-emoji{font-size:28px}.badge-name{font-size:13px;font-weight:700;color:var(--text)}.badge-name.locked{color:var(--text-2)}.badge-desc{font-size:12px;color:var(--text-2);line-height:1.3}.group-box{display:flex;gap:10px;padding:0 16px;margin-bottom:8px}.group-input{flex:1;height:48px;padding:0 16px;border-radius:14px;font-size:18px;font-weight:700;text-align:center;letter-spacing:3px;color:var(--text);background:var(--surface);border:2px solid var(--border-strong);outline:none}.group-input::placeholder{color:var(--text-2)}.group-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.join-btn{height:48px;padding:0 20px;border-radius:14px;font-weight:700;font-size:15px;color:var(--on-accent);background:var(--accent-fill)}.join-btn:hover:not(:disabled){background:var(--accent-text)}.join-btn:disabled{opacity:.6;cursor:default}.join-spinner{width:16px;height:16px;display:inline-block}.tabs{display:flex;padding:4px;margin:0 16px 14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border)}.tab{flex:1;padding:10px;border-radius:10px;font-size:var(--fs-label);font-weight:600;text-align:center;color:var(--text-2);background:none;transition:background .15s,color .15s}.tab.active{color:var(--accent-text);background:var(--surface);font-weight:800;box-shadow:var(--shadow-sm)}.leader-list{padding:0 16px;display:flex;flex-direction:column;gap:8px}.leader-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--surface);border:2px solid var(--border)}.leader-row .avatar{margin-bottom:0}.leader-row.self{border-color:var(--accent);background:var(--accent-soft)}.leader-rank{font-size:var(--fs-label);font-weight:800;color:var(--text-2);width:28px;text-align:center}.leader-main{flex:1}.leader-name{font-size:15px;font-weight:700;color:var(--text)}.leader-stats{font-size:13px;color:var(--text-2);margin-top:1px}.trophy{font-size:22px;margin-left:auto}.empty-state{text-align:center;color:var(--text-2);font-size:var(--fs-body);font-style:italic;padding:20px 16px}.spinner{width:22px;height:22px;border:3px solid color-mix(in srgb,var(--on-accent) 40%,transparent);border-top-color:var(--on-accent);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto}.spinner.dark{border-color:var(--accent-soft);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.logout-btn{background:none;color:var(--text-2);font-size:var(--fs-label);font-weight:600;padding:8px}.logout-btn:hover{color:var(--danger-text)}.text-link{background:none;color:var(--accent-text);font-size:15px;font-weight:700;padding:8px 4px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:200;padding:24px}.modal-card{font-family:var(--font);color:var(--text);background:var(--surface);border-radius:24px;padding:36px 28px;max-width:380px;width:100%;text-align:center;box-shadow:var(--shadow-lg)}.modal-title{font-size:24px;font-weight:800;color:var(--text);margin-bottom:12px}.modal-body{font-size:var(--fs-body);color:var(--text-2);line-height:1.6;margin-bottom:24px}.modal-stars{font-size:36px;margin-bottom:8px}.modal-btn-row{display:flex;flex-direction:column;gap:10px}.explorer-line{color:var(--spark-text)!important;font-weight:800;text-align:center}.dev-skip-btn{align-self:center;margin:6px auto;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:800;cursor:pointer;flex-shrink:0;color:var(--spark-text);background:var(--spark-soft);border:1px dashed var(--spark)}.dev-skip-btn:disabled{opacity:.5}.play-screen{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;background:var(--stage-bg)}.play-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 10px;background:var(--stage-surface);border-bottom:1px solid var(--stage-border)}.play-back-btn{border:none;border-radius:999px;padding:10px 20px;cursor:pointer;font-family:inherit;font-size:16px;font-weight:800;color:var(--on-accent);background:var(--accent-fill);box-shadow:0 3px 12px var(--drop-shadow);transition:background .15s}.play-back-btn:hover{background:var(--accent-text)}.play-title{color:var(--stage-text-2);font-weight:700;font-size:16px}.play-logo{margin-left:auto}.play-stage{position:relative;flex:1;min-height:0}.play-frame{width:100%;height:100%;border:none;display:block}.play-placeholder{height:100%;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;color:var(--stage-text);font-size:var(--fs-body);font-style:italic}.build-play-celebration{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:12px 16px;color:var(--map-pin-text);background:var(--spark)}.build-play-celebration .build-confetti{font-size:28px;margin:0;display:inline}.build-play-title{font-size:20px;font-weight:800}.build-play-stars{font-size:18px;font-weight:800}.build-play-sub{font-size:var(--fs-label);font-weight:700}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--overlay)}.tour-card{position:relative;width:100%;max-width:460px;border-radius:26px;padding:28px 22px 22px;text-align:center;font-family:var(--font);color:var(--text);background:var(--surface);border-top:6px solid var(--success);box-shadow:var(--shadow-lg);animation:celebration-pop .3s ease-out}.tour-skip{position:absolute;top:12px;right:14px;padding:8px 14px;border-radius:99px;cursor:pointer;font-size:var(--fs-label);font-weight:700;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border)}.tour-skip:hover{color:var(--text);border-color:var(--border-strong)}.tour-visual{position:relative;width:132px;height:132px;margin:6px auto 14px;border-radius:50%;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}.tour-visual-big{font-size:72px;line-height:1;animation:tour-bob 2.4s ease-in-out infinite}.tour-visual-small{position:absolute;right:-4px;bottom:2px;font-size:40px;line-height:1;filter:drop-shadow(0 2px 4px var(--drop-shadow))}@keyframes tour-bob{50%{transform:translateY(-6px)}}.tour-speaker{font-size:var(--fs-label);font-weight:800;color:var(--success-text);letter-spacing:.04em;margin-bottom:6px}.tour-text{font-size:19px;font-weight:700;line-height:1.45;margin:0 0 18px;min-height:5.8em;color:var(--text)}.tour-dots{display:flex;justify-content:center;gap:8px;margin-bottom:16px}.tour-dot{width:10px;height:10px;border-radius:50%;background:var(--border-strong);transition:all .2s}.tour-dot.active{width:26px;border-radius:99px;background:var(--success)}.tour-buttons{display:flex;gap:10px}.tour-buttons .btn-primary{flex:2;font-size:18px;background:var(--success)}.tour-buttons .btn-primary:hover{background:var(--success);opacity:.9}.tour-buttons .btn-secondary{flex:1}.tour-other{display:block;margin:12px auto 0;background:none;border:none;cursor:pointer;text-decoration:underline;font-size:var(--fs-label);font-weight:700;color:var(--text-2)}.tour-other:hover{color:var(--text)}@media (prefers-reduced-motion: reduce){.tour-visual-big{animation:none}}@media (max-width: 480px){.tour-text{font-size:17px}}
