:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ink:#172033;--ink-soft:#2c3a58;--paper:#fffaf0;--surface:#fff;--line:#172033;--yellow:#ffd84d;--blue:#5dd7ff;--pink:#ff78b7;--green:#64db87;--orange:#ff9b45;--violet:#8677ff;--shadow:0 16px 0 #1720331f;--radius-card:8px;--font-display:"Fredoka", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-main:"Outfit", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box}body{min-width:320px;min-height:100dvh;color:var(--ink);font-family:var(--font-main);background:radial-gradient(circle at 10% 12%,#ffd84d73,#0000 24rem),radial-gradient(circle at 86% 18%,#5dd7ff66,#0000 20rem),linear-gradient(#f6fcff 0%,#fff7de 58%,#f0fff5 100%);margin:0}h1,h2,h3,.brand-button strong,.star-counter,.coin-counter,.primary-action,.secondary-action,.choice-card strong,.sentence-slots span,.tile-grid button{font-family:var(--font-display)}button{font:inherit}button:focus-visible{outline-offset:4px;outline:4px solid #172033}#root{min-height:100dvh}.app-shell{width:min(1180px,100%);min-height:100dvh;margin:0 auto;padding:18px}.app-header{border:3px solid var(--line);border-radius:var(--radius-card);background:#ffffffeb;grid-template-columns:minmax(190px,1fr) auto auto;align-items:center;gap:12px;min-height:74px;margin-bottom:16px;padding:10px;display:grid;box-shadow:0 8px #1720331a}.brand-button,.top-nav button,.star-counter,.coin-counter,.primary-action,.secondary-action,.module-button,.back-button,.choice-card,.tile-grid button,.clear-action{border:3px solid var(--line);color:var(--ink);background:var(--surface);cursor:pointer}.brand-button{text-align:left;background:0 0;border:0;align-items:center;gap:10px;min-width:0;padding:6px;display:flex}.brand-mark{aspect-ratio:1;border:3px solid var(--line);background:var(--green);width:48px;color:var(--ink);box-shadow:4px 4px 0 var(--line);border-radius:50%;flex:none;place-items:center;font-size:1.45rem;font-weight:1000;display:grid}.brand-button strong,.brand-button small{display:block}.brand-button strong{font-size:clamp(1.05rem,2.2vw,1.35rem);line-height:1}.brand-button small{color:var(--ink-soft);font-family:var(--font-mono);text-transform:uppercase;margin-top:3px;font-size:.74rem;font-weight:800}.top-nav{justify-content:center;align-items:center;gap:8px;display:flex}.top-nav button{border-radius:999px;min-height:44px;padding:0 14px;font-weight:900}.top-nav button.is-active{background:var(--yellow);box-shadow:3px 3px 0 var(--line)}.star-counter{background:#fff3a8;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-width:84px;min-height:48px;padding:0 20px;font-weight:1000;display:flex}.star-counter span,.seed-icon{aspect-ratio:1;border:3px solid var(--line);background:var(--yellow);border-radius:50% 50% 50% 0;width:20px;display:inline-block;transform:rotate(-35deg)}.closing-banner{border:3px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);background:#fff;padding:clamp(36px,5vw,56px) clamp(36px,14vw,180px) clamp(36px,5vw,56px) clamp(36px,5vw,56px);position:relative;overflow:visible}.closing-banner h2{color:var(--ink);font-size:clamp(1.8rem,4vw,2.6rem);font-family:var(--font-display);margin:0 0 10px;line-height:1.1}.closing-banner p{color:var(--ink-soft);margin:0 0 28px;font-size:clamp(1rem,2vw,1.2rem);font-weight:800}.closing-banner .primary-action{background:var(--green);letter-spacing:.02em;min-height:60px;box-shadow:7px 7px 0 var(--line);transition:transform .16s var(--ease-out), box-shadow .16s var(--ease-out);justify-content:center;align-items:center;padding:0 40px;font-size:1.2rem;display:inline-flex}@media (hover:hover) and (pointer:fine){.closing-banner .primary-action:not(:disabled):hover{box-shadow:9px 9px 0 var(--line);transform:scale(1.05)translateY(-2px)}}.closing-banner .primary-action:not(:disabled):active{box-shadow:2px 2px 0 var(--line);transform:scale(.96)translate(2px,2px)}.closing-mascot{z-index:5;pointer-events:none;position:absolute;top:50%;right:48px;transform:translateY(-46%)}.closing-mascot .mascot-scene.hide-ship{width:160px;min-height:180px}.closing-mascot .mascot-scene.hide-ship .alien{min-width:130px;max-width:150px;position:absolute;top:0;bottom:auto;left:10%}@media (width<=700px){.closing-mascot{top:50%;right:28px;transform:translateY(-46%)}.closing-mascot .mascot-scene.hide-ship{width:110px;min-height:140px}.closing-mascot .mascot-scene.hide-ship .alien{min-width:100px;max-width:120px}}.course-layout,.lesson-layout,.rewards-layout{gap:16px;display:grid}.pitch-layout{gap:40px;display:grid}.hero-panel,.launch-card,.lesson-card,.rewards-hero,.pitch-cover,.tech-section,.repair-summary{border:3px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);background:#fffffff0}.hero-panel{grid-template-columns:minmax(0,1fr) minmax(300px,430px);align-items:center;gap:clamp(18px,4vw,48px);min-height:min(620px,100dvh - 128px);padding:clamp(20px,4vw,46px);display:grid;overflow:hidden}.hero-copy{max-width:660px}.eyebrow{border:3px solid var(--line);background:var(--yellow);text-transform:uppercase;border-radius:999px;width:fit-content;margin:0 0 10px;padding:7px 10px;font-size:.78rem;font-weight:1000}.hero-copy h1,.pitch-cover h1,.rewards-hero h1{letter-spacing:0;margin:0;font-size:clamp(2.4rem,6vw,5rem);line-height:.95}.hero-copy p,.pitch-cover p,.rewards-hero p,.design-section p,.tech-section p,.launch-card p,.module-card p,.badge-card p,.repair-summary p{color:var(--ink-soft);font-size:clamp(1rem,2vw,1.2rem);font-weight:750;line-height:1.45}.hero-copy>p{max-width:58ch}.hero-actions,.lesson-actions{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.primary-action,.secondary-action,.module-button,.back-button,.clear-action{min-height:56px;box-shadow:5px 5px 0 var(--line);transition:transform .16s var(--ease-out), box-shadow .16s var(--ease-out);border-radius:999px;padding:0 20px;font-size:1rem;font-weight:1000}.primary-action{background:var(--green)}.secondary-action{background:#fff}.stop-action{background:var(--orange);color:#172033}.primary-action:disabled,.secondary-action:disabled{cursor:not-allowed;opacity:.6}@media (hover:hover) and (pointer:fine){.primary-action:not(:disabled):hover,.secondary-action:not(:disabled):hover,.module-button:hover,.back-button:hover,.clear-action:hover,.choice-card:hover,.tile-grid button:hover{box-shadow:7px 7px 0 var(--line);transform:scale(1.05)translateY(-2px)}}.primary-action:not(:disabled):active,.secondary-action:not(:disabled):active,.module-button:active,.back-button:active,.clear-action:active,.choice-card:active,.tile-grid button:active{box-shadow:2px 2px 0 var(--line);transform:scale(.96)translate(2px,2px)}.brand-button:active .brand-mark,.faq-question:active,.start-planet-btn:active,.path-dot:active{transition:transform .1s var(--ease-out);transform:scale(.96)}.status-strip{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.status-strip>div{border:3px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-sizing:border-box;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:12px 18px;display:flex}.status-strip span,.module-topline span,.lesson-header span,.prompt-panel span,.pitch-grid span{color:var(--ink-soft);font-family:var(--font-mono);text-transform:uppercase;font-size:.78rem;font-weight:900}.status-strip strong{font-size:clamp(1.55rem,4vw,2.3rem);line-height:1}.module-grid,.badge-grid,.pitch-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.module-card,.badge-card,.pitch-grid article{border:3px solid var(--line);border-radius:var(--radius-card);background:var(--surface);align-content:start;gap:12px;min-height:310px;padding:18px;display:grid;box-shadow:0 9px #1720331f}.module-yellow{--module:var(--yellow);--module-soft:#fff4b7}.module-blue{--module:var(--blue);--module-soft:#d9f6ff}.module-pink{--module:var(--pink);--module-soft:#ffe0ef}.module-violet{--module:var(--violet);--module-soft:#eae7ff}.module-card,.badge-card,.lesson-card{background:linear-gradient(180deg, var(--module-soft), #fffffff5 42%), var(--surface)}.module-topline,.lesson-header,.translator-topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.module-topline>span{border:3px solid var(--line);min-width:56px;color:var(--ink);text-align:center;background:#fff;border-radius:999px;padding:7px 8px}.module-card h2,.badge-card h2,.launch-card h2,.tech-section h2,.design-section h2,.repair-summary h2,.prompt-panel h2{margin:0;font-size:clamp(1.55rem,3vw,2.3rem);line-height:1}.mini-progress{flex-wrap:wrap;gap:7px;margin-top:auto;display:flex}.mini-progress button{border:3px solid var(--line);cursor:pointer;background:#fff;border-radius:50%;width:44px;height:44px}.mini-progress button.is-complete{background:var(--module)}.module-button{background:var(--module);width:100%;margin-top:4px}.launch-card{justify-content:space-between;align-items:center;gap:16px;padding:22px;display:flex}.lesson-card{gap:16px;min-height:calc(100dvh - 120px);padding:clamp(14px,3vw,26px);display:grid}.lesson-header{align-items:flex-start}.lesson-header div{text-align:right;gap:4px;display:grid}.lesson-header strong{font-size:1rem}.back-button{background:#fff;min-height:46px;padding:0 15px}.mission-banner{border:3px solid var(--line);border-radius:var(--radius-card);background:#fffc;grid-template-columns:auto 1fr;align-items:center;gap:16px;padding:18px;display:grid}.mission-banner h1{margin:0;font-size:clamp(2rem,6vw,4.2rem);line-height:.95}.mission-banner p{max-width:72ch;color:var(--ink-soft);margin:6px 0 0;font-weight:800}.mission-body{gap:14px;display:grid}.sound-stage,.translator-panel,.prompt-panel,.sentence-builder{border:3px solid var(--line);border-radius:var(--radius-card);background:#fff;padding:clamp(16px,3vw,26px)}.sound-stage{align-content:center;min-height:260px;display:grid}.target-label{border:3px solid var(--line);background:var(--module);width:fit-content;font-family:var(--font-mono);text-transform:uppercase;border-radius:999px;margin-bottom:12px;padding:7px 10px;font-size:.78rem;font-weight:1000}.sound-stage h2{letter-spacing:0;margin:0;font-size:clamp(6rem,20vw,12rem);line-height:.8}.sound-stage p{color:var(--ink-soft);margin:14px 0 0;font-size:clamp(1.05rem,3vw,1.35rem);font-weight:900}.phonics-row{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.phonics-row span,.phonics-row button{border:3px solid var(--line);border-radius:var(--radius-card);background:var(--yellow);text-align:center;min-width:58px;font-size:clamp(1.2rem,4vw,2rem);font-weight:1000;line-height:1;font-family:var(--font-display);color:var(--ink);cursor:pointer;padding:10px 14px}.translator-panel{gap:12px;display:grid}.translator-panel.is-listening{background:#f1fff5}.translator-topline>div{align-items:center;gap:10px;display:flex}.translator-topline strong{font-family:var(--font-mono);text-transform:uppercase;font-size:.95rem}.live-dot{aspect-ratio:1;border:3px solid var(--line);background:var(--ink-soft);border-radius:50%;width:18px;display:inline-block}.is-listening .live-dot{background:var(--green);animation:.8s steps(2,jump-none) infinite pulse}.server-pill{border:3px solid var(--line);font-family:var(--font-mono);text-transform:uppercase;background:#ffe0e0;border-radius:999px;padding:7px 10px;font-size:.72rem;font-weight:1000}.server-pill.online{background:#d9ffe3}.meter,.ship-progress-track{border:3px solid var(--line);background:#fff;border-radius:999px;height:22px;overflow:hidden}.meter span,.ship-progress-track span{transform-origin:0;background:var(--orange);width:100%;height:100%;transition:transform 90ms linear;display:block}.translator-panel p,.prompt-panel p{color:var(--ink);margin:0;font-size:clamp(1.05rem,3vw,1.45rem);font-weight:900;line-height:1.25}.voice-readout{flex-wrap:wrap;gap:8px;display:flex}.voice-readout span{border:2px solid var(--line);color:var(--ink-soft);font-family:var(--font-mono);background:#f8fbff;border-radius:999px;padding:7px 9px;font-size:.75rem;font-weight:850}.system-note{border:3px solid var(--line);border-radius:var(--radius-card);color:var(--ink);background:#fff3c4;margin:0;padding:12px 14px;font-weight:850}.prompt-panel{gap:8px;display:grid}.choice-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.choice-card{border-radius:var(--radius-card);background:#fff;place-items:center;gap:10px;min-height:250px;padding:16px;transition:transform .15s,box-shadow .15s;display:grid;box-shadow:6px 6px #17203326}.choice-card strong{font-size:clamp(3rem,10vw,6rem);line-height:.9}.choice-card span:last-child{color:var(--ink-soft);font-weight:900}.choice-card.is-selected{transform:translate(3px,3px);box-shadow:2px 2px #17203333}.choice-card.is-correct{background:#ddffe6}.sentence-builder{gap:14px;display:grid}.sentence-slots,.tile-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.sentence-slots span,.tile-grid button{border:3px solid var(--line);border-radius:var(--radius-card);background:#fff;place-items:center;min-height:74px;font-size:clamp(1.4rem,4vw,2.2rem);font-weight:1000;display:grid}.sentence-slots span{background:#f3f8ff}.tile-grid button{background:var(--yellow);box-shadow:4px 4px 0 var(--line);transition:transform .15s,box-shadow .15s}.tile-grid button.is-used{opacity:.35;pointer-events:none}.clear-action{width:fit-content}.success-row{border:3px solid var(--line);border-radius:var(--radius-card);background:#e9fff0;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.success-row>div{align-items:center;gap:10px;font-size:1.05rem;display:flex}.word-reveal-card{border-radius:var(--radius-card);background:linear-gradient(135deg,#8250ff1f 0%,#3cc8ff1a 100%);border:2px solid #8250ff40;align-items:flex-start;gap:20px;width:100%;max-width:500px;margin:0 auto;padding:24px;animation:.45s cubic-bezier(.22,1,.36,1) both word-reveal-in;display:flex;box-shadow:0 8px 32px #8250ff1f}@keyframes word-reveal-in{0%{opacity:0;transform:scale(.88)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}.word-reveal-emoji{filter:drop-shadow(0 4px 8px #00000026);flex-shrink:0;font-size:4rem;line-height:1;animation:.5s cubic-bezier(.22,1,.36,1) .15s both emoji-pop}@keyframes emoji-pop{0%{transform:scale(0)rotate(-20deg)}to{transform:scale(1)rotate(0)}}.word-reveal-content{flex-direction:column;gap:8px;display:flex}.word-reveal-title{color:var(--violet);letter-spacing:.04em;font-size:1.8rem;font-weight:800;line-height:1}.word-reveal-desc{color:var(--ink);opacity:.8;margin:0;font-size:.95rem;line-height:1.6}.rewards-hero,.pitch-cover{grid-template-columns:minmax(280px,430px) 1fr;align-items:center;gap:clamp(18px,4vw,42px);padding:clamp(16px,3vw,28px);display:grid}.rewards-hero{grid-template-columns:minmax(280px,430px) 1fr}.pitch-cover{grid-template-columns:1fr minmax(280px,420px)}.pitch-grid article{background:#fff;min-height:260px}.pitch-grid h2{margin:0;font-size:clamp(1.35rem,3vw,2rem);line-height:1.05}.pitch-grid p{color:var(--ink-soft);margin:0;font-weight:750;line-height:1.45}.tech-section{grid-template-columns:.8fr 1.2fr;gap:18px;padding:24px;display:grid}.tech-list{flex-wrap:wrap;align-content:center;gap:10px;display:flex}.tech-list span{border:3px solid var(--line);background:var(--yellow);border-radius:999px;padding:12px 14px;font-weight:1000}.design-section,.repair-summary{padding:24px}.design-tokens{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.design-tokens span{aspect-ratio:1;border:3px solid var(--line);border-radius:var(--radius-card);width:clamp(62px,10vw,92px)}.token-yellow{background:var(--yellow)}.token-blue{background:var(--blue)}.token-pink{background:var(--pink)}.token-green{background:var(--green)}.ship-progress-track{margin-top:12px}.ship-progress-track span{background:var(--green)}.mascot-scene{isolation:isolate;min-height:clamp(320px,48vw,470px);position:relative}.mascot-scene:not(.mood-launch) .ship-wrap{animation:gentleFloat 3s var(--ease-in-out) infinite}.mascot-scene:not(.mood-launch) .alien{animation:breathe 4s var(--ease-in-out) infinite}.mascot-scene .eye{transform-origin:50%}.mascot-scene .eye.left:before,.mascot-scene .eye.right:before{animation:4s ease-in-out infinite blink}.mascot-scene:not(.mood-launch) .antenna{animation:gentleSway 3s var(--ease-in-out) infinite}.mascot-scene:not(.mood-launch) .antenna.right{animation-delay:-1.5s}.ship-wrap{z-index:2;aspect-ratio:1;place-items:center;width:42%;min-width:150px;display:grid;position:absolute;top:12%;right:8%;transform:rotate(10deg)}.ship{border:4px solid var(--line);background:#fff;border-radius:52% 52% 42% 42%;width:58%;height:74%;position:relative;box-shadow:8px 8px #17203329}.ship:before{content:"";aspect-ratio:1;border:4px solid var(--line);background:var(--orange);border-radius:50%;width:44%;position:absolute;top:-20%;left:50%;transform:translate(-50%)}.ship-window{aspect-ratio:1;border:4px solid var(--line);background:var(--blue);border-radius:50%;width:46%;position:absolute;top:21%;left:50%;transform:translate(-50%)}.ship-fin{border:4px solid var(--line);background:var(--pink);width:34%;height:26%;position:absolute;bottom:15%}.ship-fin.left{border-radius:70% 10% 20% 70%;left:-24%}.ship-fin.right{border-radius:10% 70% 70% 20%;right:-24%}.ship-flame{border:4px solid var(--line);background:var(--yellow);transform-origin:top;border-radius:0 0 50% 50%;width:34%;height:30%;position:absolute;bottom:-30%;left:50%;translate:-50%}.alien{z-index:3;aspect-ratio:.82;border:4px solid var(--line);background:var(--green);border-radius:48% 48% 36% 36%;width:46%;min-width:170px;max-width:250px;position:absolute;bottom:5%;left:7%;box-shadow:8px 8px #1720332e}.alien:before,.alien:after{content:"";border:4px solid var(--line);background:var(--green);border-radius:999px;width:28%;height:18%;position:absolute;top:43%}.alien:before{left:-20%;transform:rotate(-20deg)}.alien:after{right:-20%;transform:rotate(20deg)}.antenna{background:var(--line);width:4px;height:24%;position:absolute;top:-18%}.antenna.left{left:30%;transform:rotate(-22deg)}.antenna.right{right:30%;transform:rotate(22deg)}.antenna:before{content:"";aspect-ratio:1;border:4px solid var(--line);background:var(--yellow);border-radius:50%;width:22px;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.eye{aspect-ratio:1;border:4px solid var(--line);background:#fff;border-radius:50%;width:26%;position:absolute;top:24%}.eye:before{content:"";aspect-ratio:1;background:var(--ink);border-radius:50%;width:32%;position:absolute;top:34%;left:34%}.eye.left{left:18%}.eye.right{right:18%}.smile{border-bottom:5px solid var(--line);border-radius:0 0 999px 999px;width:34%;height:16%;position:absolute;top:51%;left:50%;transform:translate(-50%)}.belly{aspect-ratio:1.25;border:4px solid var(--line);background:#b9f8c9;border-radius:50%;width:46%;position:absolute;bottom:10%;left:50%;transform:translate(-50%)}.is-launching .ship-wrap{animation:1.2s ease-in-out infinite launchBob}.picture-badge{aspect-ratio:1;border:3px solid var(--line);background:#fff;border-radius:50%;flex:none;place-items:center;width:76px;display:inline-grid;position:relative}.picture-badge>span,.picture-badge:before,.picture-badge:after{content:"";display:block;position:absolute}.art-star>span{aspect-ratio:1;border:3px solid var(--line);background:var(--yellow);border-radius:50% 50% 50% 0;width:34px;transform:rotate(-35deg)}.art-moon>span{aspect-ratio:1;border:3px solid var(--line);background:var(--yellow);border-radius:50%;width:38px}.art-moon:after{aspect-ratio:1;background:#fff;border-radius:50%;width:32px;translate:8px -4px}.art-sun>span{aspect-ratio:1;border:3px solid var(--line);background:var(--orange);border-radius:50%;width:40px}.art-leaf>span{border:3px solid var(--line);background:var(--green);border-radius:70% 12%;width:44px;height:30px;transform:rotate(-20deg)}.art-planet>span{aspect-ratio:1;border:3px solid var(--line);background:var(--blue);border-radius:50%;width:44px}.art-planet:after{border:3px solid var(--line);border-radius:50%;width:58px;height:16px;transform:rotate(-16deg)}.art-rocket>span,.art-ship>span{border:3px solid var(--line);background:var(--pink);border-radius:50% 50% 28% 28%;width:30px;height:50px}.art-rocket:after,.art-ship:after{border:3px solid var(--line);background:var(--yellow);border-radius:0 0 50% 50%;width:18px;height:16px;bottom:11px}.art-jump>span{border:3px solid var(--line);background:var(--green);border-radius:50%;width:38px;height:38px}.art-jump:after{border-bottom:4px solid var(--line);border-radius:50%;width:52px;height:22px;transform:translateY(12px)rotate(-12deg)}.art-paint>span{border:3px solid var(--line);background:var(--violet);border-radius:999px 999px 20px 20px;width:42px;height:28px}.art-path>span{border-top:5px dotted var(--line);border-radius:50%;width:46px;height:28px;transform:rotate(-20deg)}@keyframes pulse{50%{opacity:.35}}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes gentleSway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes blink{0%,96%,to{transform:scaleY(1)}98%{transform:scaleY(.1)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02,.98)}}@keyframes twinkle{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}@keyframes spinSlow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes wiggleAntLeft{0%{transform:rotate(-22deg)}to{transform:rotate(-45deg)}}@keyframes wiggleAntRight{0%{transform:rotate(22deg)}to{transform:rotate(45deg)}}@keyframes lookingAround{0%,to{transform:translate(0)}33%{transform:translate(-3px,-1px)}66%{transform:translate(3px,-1px)}}@keyframes glowPulse{0%{background:var(--yellow);box-shadow:none}to{background:var(--orange);box-shadow:0 0 12px var(--orange)}}@keyframes childBounce{0%{transform:translateY(0)scale(1)}to{transform:translateY(-20px)scale(.96,1.04)}}@keyframes flameFlicker{0%{opacity:.8;transform:scaleY(.85)}to{opacity:1;transform:scaleY(1.15)}}@keyframes pathFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes victoryBounce{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes floatUp{0%{opacity:0;transform:translateY(100px)scale(0)rotate(0)}15%{opacity:1}to{opacity:0;transform:translateY(-120px)scale(1.2)rotate(25deg)}}@keyframes rainbowFlame{0%{filter:hue-rotate()}to{filter:hue-rotate(360deg)}}@keyframes floatCrown{0%{transform:translate(-50%)translateY(0)}to{transform:translate(-50%)translateY(-6px)}}@keyframes launchBob{50%{transform:translateY(-12px)rotate(10deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=900px){.app-header{grid-template-columns:1fr}.top-nav{justify-content:stretch}.top-nav button{flex:1}.star-counter,.coin-counter{width:fit-content}.hero-panel,.rewards-hero,.pitch-cover,.tech-section{grid-template-columns:1fr}.pitch-cover .mascot-scene{order:-1}.module-grid,.badge-grid,.pitch-grid,.choice-grid{grid-template-columns:1fr}.choice-card{min-height:190px}}@media (width<=560px){.app-shell{padding:10px}.app-header{margin-bottom:10px}.brand-mark{width:42px}.top-nav{gap:6px}.top-nav button{min-height:40px;padding:0 10px;font-size:.9rem}.hero-panel{min-height:auto;padding:16px}.hero-actions,.lesson-actions,.success-row,.launch-card{grid-template-columns:1fr;display:grid}.primary-action,.secondary-action,.module-button,.clear-action{width:100%}.status-strip,.mission-banner{grid-template-columns:1fr}.lesson-header{align-items:stretch}.lesson-header div{text-align:left}.translator-topline,.module-topline{flex-direction:column;align-items:flex-start}.sentence-slots,.tile-grid{grid-template-columns:1fr}.mascot-scene{min-height:300px}}.lesson-grid{grid-template-columns:1fr 360px;align-items:start;gap:20px;display:grid}.mascot-side-panel{border:3px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);background:linear-gradient(#d9f6ff,#fffffff5 60%);flex-direction:column;padding:16px;display:flex}.mascot-panel-header{text-align:center;border-bottom:3px solid var(--line);margin-bottom:16px;padding-bottom:12px}.mascot-panel-header h2{margin:0;font-size:1.5rem;font-weight:1000}.cabin-status{font-family:var(--font-mono);text-transform:uppercase;color:var(--ink-soft);margin:4px 0 0;font-size:.76rem;font-weight:900}.clickable-sound-stage{transition:transform .15s,box-shadow .15s}@media (hover:hover) and (pointer:fine){.clickable-sound-stage:hover{transform:translateY(-2px);box-shadow:0 18px #17203326}}.clickable-sound-stage .target-label{align-items:center;gap:6px;display:inline-flex}.alien{transform-origin:bottom}.mascot-scene.mood-listening .antenna.left{animation:.25s ease-in-out infinite alternate wiggleAntLeft}.mascot-scene.mood-listening .antenna.right{animation:.25s ease-in-out infinite alternate wiggleAntRight}.mascot-scene.mood-listening .antenna:before{box-shadow:0 0 15px var(--green), 0 0 5px var(--green) inset;background:var(--green)!important}.mascot-scene.mood-listening .eye:before{transition:transform .12s var(--ease-out);transform:scale(1.25)}.mascot-scene.mood-reading .alien{animation:gentleSway 4s var(--ease-in-out) infinite}.mascot-scene.mood-reading .eye:before{top:54%;left:30%}.mascot-scene.mood-reading .smile{border-bottom-width:4px;width:28%}.mascot-scene.mood-reading .book{z-index:12;border:4px solid var(--line);background:#e8484a;border-radius:4px 4px 10px 10px;width:58%;height:28%;position:absolute;bottom:18%;left:50%;transform:translate(-50%)rotate(-3deg);box-shadow:6px 6px #17203324}.mascot-scene.mood-reading .book:before{content:"";background:var(--line);width:4px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.mascot-scene.mood-reading .book:after{content:"";background:#1720331f;border-radius:2px;width:34%;height:3px;position:absolute;top:28%;left:12%;box-shadow:0 11px #1720331f,0 22px #1720331f,0 33px #1720331f}.mascot-scene.mood-reading .book .bookmark{background:var(--orange);border:3px solid var(--line);border-top:0;border-radius:0 0 3px 3px;width:8px;height:16px;position:absolute;bottom:-16px;right:18%}.mascot-scene.mood-reading .alien:before,.mascot-scene.mood-reading .alien:after{z-index:7}.mascot-scene.mood-reading .alien:before{transform:rotate(-16deg)translateY(-2px)}.mascot-scene.mood-reading .alien:after{transform:rotate(16deg)translateY(-2px)}.mascot-scene.mood-thinking .eye:before{animation:1.8s ease-in-out infinite lookingAround}.mascot-scene.mood-thinking .antenna:before{animation:1s ease-in-out infinite alternate glowPulse}.mascot-scene.mood-happy .alien{animation:.55s ease-out infinite alternate childBounce}.mascot-scene.mood-happy .smile{border:4px solid var(--line);background:#ff5080;border-top:0;border-radius:0 0 999px 999px;height:26%}.mascot-scene.mood-retry .antenna.left{transform-origin:bottom;transform:rotate(-58deg)translateY(6px)}.mascot-scene.mood-retry .smile{border-bottom:0;border-top:5px solid var(--line);border-radius:0;width:24%;height:4px;top:56%}.mascot-scene.mood-retry .eye{transform:scaleY(.72)}.pitch-cover{grid-template-columns:1fr 400px;align-items:center;gap:30px;display:grid}.pitch-tagline{margin:12px 0 20px!important;font-size:1.3rem!important;font-weight:800!important}.pitch-problem-outcome{grid-template-columns:1fr 1fr;gap:16px;display:grid}.pitch-card{border:3px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);background:#fff;padding:24px;position:relative}.pitch-card-accent-red:before,.pitch-card-accent-green:before{content:"";border-radius:0 2px 2px 0;width:4px;height:calc(100% - 24px);position:absolute;top:12px;left:0}.pitch-card-accent-red:before{background:#c33}.pitch-card-accent-green:before{background:#284}.pitch-card h2,.pitch-card h3{margin:0;font-size:clamp(1.05rem,2vw,1.2rem);font-weight:600;line-height:1.45}.pitch-card p{font-size:1rem;line-height:1.5}.card-badge{border:3px solid var(--line);text-transform:uppercase;border-radius:999px;margin-bottom:12px;padding:6px 10px;font-size:.74rem;font-weight:1000;display:inline-block}.badge-red{color:#c33;background:#ffebeb}.badge-green{color:#284;background:#e9fff0}.design-timeline{flex-direction:column;gap:0;margin-top:20px;display:flex}.timeline-item{align-items:flex-start;gap:20px;padding-bottom:28px;display:flex;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-dot{border:3px solid var(--line);z-index:2;border-radius:50%;flex:0 0 20px;width:20px;height:20px;margin-top:20px;position:relative}.timeline-item:before{content:"";background:var(--line);width:3px;height:100%;position:absolute;top:20px;left:8px;transform:translate(-50%)}.timeline-item:last-child:before{display:none}.timeline-card{border:3px solid var(--line);border-radius:var(--radius-card);border-left:6px solid var(--tl-color);background:#fff;flex:1;padding:18px 22px;box-shadow:6px 6px #1720331f}.timeline-card h3{margin:0 0 4px;font-size:1.15rem;line-height:1.3}.timeline-card p{color:var(--ink-soft);margin:0;font-size:.92rem;line-height:1.5}@media (width<=700px){.timeline-item{gap:14px}.timeline-dot{flex:0 0 16px;width:16px;height:16px;margin-top:16px}.timeline-item:before{left:7px}.timeline-card{padding:14px 16px}}.origin-story{border:3px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);text-align:center;background:linear-gradient(135deg,#f8fff5 0%,#fff 100%);flex-direction:column;align-items:center;padding:40px 44px;display:flex;position:relative;overflow:hidden}.origin-quote-mark{font-size:18rem;line-height:1;font-family:var(--font-display);color:#64db871a;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-52%)}.origin-story>div{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative}.origin-story h2{font-size:clamp(1.5rem,3.5vw,2.4rem);line-height:1.2;font-family:var(--font-display);color:var(--ink);text-align:center;max-width:600px;margin:10px 0 16px}.origin-text{color:var(--ink-soft);text-align:center;max-width:600px;margin:0;font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.65}.pitch-architecture,.design-section{border:3px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);background:#fff;padding:30px}.architecture-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:24px;display:grid}.arch-item{border:3px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);background:linear-gradient(180deg, var(--module-soft), #fffffff5 42%), var(--surface);padding:24px 18px 18px;position:relative}.arch-yellow{--module:var(--yellow);--module-soft:#fff4b7}.arch-blue{--module:var(--blue);--module-soft:#d9f6ff}.arch-pink{--module:var(--pink);--module-soft:#ffe0ef}.arch-green{--module:var(--green);--module-soft:#d9ffe3}.arch-item h3{margin:0 0 8px;font-size:1.15rem;font-weight:950}.arch-item p{margin:0;font-size:.95rem;line-height:1.5}.judge-faq-section{border:3px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);background:#fffffff0;padding:30px}.faq-accordion{gap:10px;margin-top:20px;display:grid}.faq-item{border:3px solid var(--line);border-radius:var(--radius-card);background:#fff;overflow:hidden}.faq-question{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:18px;font-size:1.1rem;font-weight:900;display:flex}@media (hover:hover) and (pointer:fine){.faq-question:hover{background:#fdfaf4}}.faq-answer{border-top:2px dashed var(--line);background:#fff9e6;padding:0 18px 18px}.faq-answer p{color:var(--ink-soft);margin:12px 0 0;font-size:.95rem!important;line-height:1.5!important}.faq-toggle-icon{font-size:1.1rem;font-family:var(--font-mono);transition:transform .18s var(--ease-out)}@media (width<=900px){.lesson-grid{grid-template-columns:1fr}.architecture-grid{grid-template-columns:repeat(2,1fr)}.pitch-problem-outcome{grid-template-columns:1fr}}@media (width<=560px){.architecture-grid{grid-template-columns:1fr}}.sparkle-particle{pointer-events:none;z-index:9999;font-size:2.5rem;animation:1.2s cubic-bezier(.25,1,.5,1) forwards floatUp;position:fixed}.orbit-heading{text-align:center;letter-spacing:.03em;font-size:1.6rem}.path-subtitle{text-align:center;color:var(--ink-soft);margin:-6px 0 0;font-size:.95rem}.flight-path-section{border:3px solid var(--line);border-radius:var(--radius-card);background:#17203305;margin-top:40px;padding:30px 20px;position:relative;overflow:hidden}.flight-path-container{flex-direction:column;align-items:center;gap:80px;width:100%;max-width:800px;margin:0 auto;padding:80px 0;display:flex;position:relative}.flight-path-line{border-left:6px dashed var(--line);z-index:1;width:8px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-3px)}.path-marker{font-family:var(--font-mono);color:var(--ink-soft);white-space:nowrap;font-size:.72rem;font-weight:1000;position:absolute;left:24px;translate:0 -50%}.path-marker:before{content:"";background:var(--line);width:8px;height:2px;position:absolute;top:50%;right:calc(100% + 6px);translate:0 -1px}.path-node-wrap{z-index:2;align-items:center;width:100%;display:flex;position:relative}.path-node-wrap.left{justify-content:flex-start;padding-right:50%}.path-node-wrap.right{justify-content:flex-end;padding-left:50%}.path-planet-bubble{border:3px solid var(--line);background:var(--surface);width:290px;box-shadow:6px 6px 0 var(--line);text-align:center;border-radius:24px;flex-direction:column;align-items:center;padding:20px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;display:flex;position:relative}@media (hover:hover) and (pointer:fine){.path-planet-bubble:hover{box-shadow:8px 8px 0 var(--line);transform:rotate(1deg)scale(1.03)}}.color-yellow{background:#fffde6}.color-blue{background:#e6f7ff}.color-pink{background:#ffe6f2}.color-violet{background:#f2e6ff}.planet-details h3{margin:10px 0 6px;font-size:1.4rem}.planet-details p{color:var(--ink-soft);margin:0 0 10px;font-size:.88rem;line-height:1.35}.planet-node-progress{background:var(--line);color:#fff;border-radius:999px;margin-bottom:8px;padding:3px 8px;font-size:.85rem;font-weight:800;display:inline-block}.mini-progress-dots{justify-content:center;gap:6px;margin-bottom:12px;display:flex}.path-dot{border:2px solid var(--line);cursor:pointer;box-sizing:border-box;background:#fff;border-radius:50%;outline:none;width:12px;height:12px;padding:0;transition:transform .15s cubic-bezier(.34,1.56,.64,1),background-color .15s,border-color .15s;display:inline-block}@media (hover:hover) and (pointer:fine){.path-dot:hover{border-color:var(--ink);transform:scale(1.4)}}.path-dot.is-complete{background:var(--green)}.path-dot.is-current-target{border-color:var(--orange);animation:1.5s infinite pulseRing;background:var(--yellow)!important}@keyframes pulseRing{0%{box-shadow:0 0 #ff9b45cc}70%{box-shadow:0 0 0 10px #ff9b4500}to{box-shadow:0 0 #ff9b4500}}.start-planet-btn{min-height:38px!important;box-shadow:3px 3px 0 var(--line)!important;padding:0 16px!important;font-size:.9rem!important}.ship-avatar-indicator{z-index:10;filter:drop-shadow(0 3px 6px #0000002e);justify-content:center;align-items:center;display:flex;position:absolute;left:50%;translate:-50% 30%}.path-ship-wrap{place-items:center;width:80px;height:80px;display:grid;transform:rotate(180deg)}.path-ship{border:4px solid var(--line);background:#fff;border-radius:52% 52% 42% 42%;width:52px;height:60px;position:relative;box-shadow:5px 5px #1720331f}.path-ship:before{content:"";aspect-ratio:1;border:4px solid var(--line);background:var(--orange);border-radius:50%;width:46%;position:absolute;top:-16%;left:50%;transform:translate(-50%)}.path-ship-window{aspect-ratio:1;border:4px solid var(--line);background:var(--blue);border-radius:50%;width:46%;position:absolute;top:24%;left:50%;transform:translate(-50%)}.path-ship-fin{border:4px solid var(--line);background:var(--pink);width:32%;height:24%;position:absolute;bottom:18%}.path-ship-fin.left{border-radius:70% 10% 20% 70%;left:-22%}.path-ship-fin.right{border-radius:10% 70% 70% 20%;right:-22%}.path-ship-flame{border:4px solid var(--line);background:var(--yellow);transform-origin:top;border-radius:0 0 50% 50%;width:40%;height:32%;animation:.4s ease-in-out infinite alternate flameFlicker;position:absolute;bottom:-30%;left:50%;translate:-50%}.animate-float{animation:3s ease-in-out infinite pathFloat}.indicator-tooltip{background:var(--yellow);border:2px solid var(--line);white-space:nowrap;box-shadow:2px 2px 0 var(--line);border-radius:8px;padding:2px 8px;font-size:.72rem;font-weight:700;position:absolute;top:-36px;left:50%;translate:-50%}.path-node-wrap.locked{opacity:1}.lock-milestone-text{color:#c33;font-size:.85rem;font-weight:700}.home-victory-banner{color:var(--green);text-align:center;margin-top:10px;font-size:1.1rem;font-weight:900;animation:1s ease-in-out infinite victoryBounce}.orbit-complete-banner{border:3px solid var(--line);background:var(--green);box-shadow:6px 6px 0 var(--line);z-index:5;border-radius:999px;align-items:center;gap:12px;padding:16px 24px;font-size:1.3rem;display:flex;position:relative}.orbit-complete-banner strong{font-family:var(--font-display);font-size:1.2rem}.milestone-badge{border:3px solid var(--line);box-shadow:4px 4px 0 var(--line);text-align:left;background:#fffdf5;border-radius:12px;margin-top:15px;padding:15px}.milestone-subtext{margin-top:4px!important;font-size:.85rem!important;font-weight:400!important}.milestone-track{border:3px solid var(--line);background:#fff;border-radius:999px;height:14px;margin-top:8px;overflow:hidden}.milestone-fill{background:var(--green);height:100%}.shop-section{border:3px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow);background:#fff;margin-top:30px;padding:24px}.shop-subtitle{color:var(--ink-soft);margin-bottom:20px;font-size:.95rem}.shop-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:30px;display:grid}.shop-card{border:3px solid var(--line);box-shadow:5px 5px 0 var(--line);text-align:center;background:#fcfdfe;border-radius:16px;flex-direction:column;align-items:center;padding:18px;transition:transform .2s,box-shadow .2s;display:flex}@media (hover:hover) and (pointer:fine){.shop-card:hover{box-shadow:7px 7px 0 var(--line);transform:translateY(-3px)}}.shop-card.bought{opacity:.9;background:#f0fff4}.shop-emoji{margin-bottom:10px;font-size:3rem}.shop-card h3{margin:0 0 6px;font-size:1.25rem}.shop-card p{color:var(--ink-soft);margin:0 0 16px;font-size:.85rem;line-height:1.35}.shop-action-row{justify-content:space-between;align-items:center;gap:10px;width:100%;margin-top:auto;display:flex}.price-tag{border:2px solid var(--line);background:#ffd84d;border-radius:6px;padding:2px 8px;font-size:.95rem;font-weight:800}.buy-btn{min-height:36px!important;box-shadow:3px 3px 0 var(--line)!important;padding:0 12px!important;font-size:.85rem!important}.rainbow-flame-grad{background:linear-gradient(#f36,#f93,#ff3,#3c6,#39f,#93f)!important;animation:.8s linear infinite rainbowFlame!important}.mascot-crown{z-index:5;filter:drop-shadow(0 2px 0 var(--line));font-size:2.8rem;animation:1.5s ease-in-out infinite alternate floatCrown;position:absolute;top:-38px;left:50%;transform:translate(-50%)}.seed-log-section{border:3px solid var(--line);border-radius:var(--radius-card);background:#17203305;margin-top:40px;padding:30px 20px}.seed-log-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-top:20px;display:grid}.seed-log-card{border:3px solid var(--line);background:var(--surface);box-shadow:4px 4px 0 var(--line);border-radius:20px;flex-direction:column;gap:10px;padding:16px;transition:box-shadow .2s;display:flex}.seed-log-header{align-items:center;gap:10px;display:flex}.seed-log-header h3{font-family:var(--font-display);margin:0;font-size:1rem}.seed-log-track{background:var(--line);border-radius:999px;width:100%;height:10px;overflow:hidden}.seed-log-fill{background:var(--yellow);border-radius:999px;height:100%}.seed-log-count{color:var(--text);text-align:right;font-size:.8rem;font-weight:800}.seed-log-dots{flex-wrap:wrap;gap:8px;display:flex}.seed-log-dot{border:2px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;width:28px;height:28px;transition:background .2s,transform .15s}.seed-log-dot.is-complete{background:var(--green);border-color:var(--green)}@media (width<=768px){.shop-grid{grid-template-columns:1fr}.flight-path-container{gap:60px;padding:40px 0}.path-node-wrap.left,.path-node-wrap.right{justify-content:flex-start;padding-left:50px;padding-right:0}.path-planet-bubble{width:240px}}.writing-target-panel{text-align:center;border:3px solid var(--line);border-radius:var(--radius-card);background:#fff9;flex-direction:column;align-items:center;gap:12px;margin-bottom:20px;padding:20px;display:flex}.writing-word-display{align-items:center;gap:15px;display:flex}.writing-emoji{filter:drop-shadow(0 4px 6px #0000001a);font-size:3rem}.writing-target-word{color:var(--ink);letter-spacing:.1em;margin:0;font-size:2.8rem;font-weight:1000}.writing-description{color:var(--ink-soft);max-width:500px;margin:0;font-size:.95rem;line-height:1.5}.writing-instruction{color:var(--ink);margin:8px 0 0;font-size:1.1rem;font-weight:800}.writing-canvas-wrap{border:4px solid var(--line);border-radius:var(--radius-card);width:100%;max-width:620px;box-shadow:6px 6px 0 var(--line);background:#fff;margin:0 auto 20px;position:relative;overflow:hidden}.writing-canvas{cursor:crosshair;background:#fff;width:100%;height:200px;display:block}.canvas-placeholder{color:#1720338c;pointer-events:none;font-size:1.5rem;font-weight:800;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.writing-local-feedback{color:#e11d48;border:2px solid var(--line);text-align:center;max-width:500px;box-shadow:3px 3px 0 var(--line);background:#ffe4e6;border-radius:12px;margin:10px auto;padding:10px 16px;font-size:1rem;font-weight:900}.writing-local-feedback.is-checking{color:var(--ink);background:#f0f0f0}.giant-start-btn{display:block;box-shadow:10px 10px 0 var(--line)!important;border-width:5px!important;border-radius:24px!important;margin:20px 0!important;padding:24px 48px!important;font-size:clamp(2rem,6vw,3.5rem)!important}.audio-guide-btn{background:var(--yellow-soft,#fff4b7);border:3px solid var(--line);cursor:pointer;box-shadow:3px 3px 0 var(--line);transition:transform .16s var(--ease-out), box-shadow .16s var(--ease-out);border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:1.1rem;font-weight:1000;display:inline-flex}@media (hover:hover) and (pointer:fine){.audio-guide-btn:hover{box-shadow:5px 5px 0 var(--line);transform:scale(1.05)translateY(-1px)}}.audio-guide-btn:active{box-shadow:1px 1px 0 var(--line);transform:scale(.96)translate(1px,1px)}.coin-counter{background:#e0f7ff;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-width:84px;min-height:48px;padding:0 20px;font-weight:1000;display:flex}.coin-counter span,.coin-icon{aspect-ratio:1;border:3px solid var(--line);background:var(--yellow);border-radius:50%;width:20px;display:inline-block;position:relative;box-shadow:inset -2px -2px #1720332e}.coin-counter span:after,.coin-icon:after{content:"";border:1.5px solid var(--line);border-radius:50%;position:absolute;inset:3px}.rewards-shop-section{border:3px solid var(--line);border-radius:var(--radius-card);background:#ffffffeb;gap:16px;margin-top:24px;padding:20px;display:grid;box-shadow:0 8px #1720331a}.shop-intro{color:var(--ink-soft);font-weight:750;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;margin:0;font-size:.8rem}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-top:12px;display:grid}.shop-card{border:3px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:6px 6px 0 var(--line);grid-template-columns:100px 1fr;align-items:center;gap:16px;padding:18px;display:grid}.shop-card-preview{background:var(--blue);border:3px solid var(--line);box-shadow:3px 3px 0 var(--line);aspect-ratio:1;border-radius:12px;justify-content:center;align-items:center;padding:8px;display:flex}.shop-card-info{flex-direction:column;gap:4px;display:flex}.shop-card-info h3{margin:0;font-size:1.35rem;font-weight:900}.shop-card-info p{color:var(--ink-soft);margin:0;font-size:.88rem;font-weight:650;line-height:1.35}.shop-card-footer{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.price-tag{border:2.5px solid var(--line);box-shadow:2px 2px 0 var(--line);background:#fff3a8;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.82rem;font-weight:850;display:flex}.price-tag .coin-icon{border:2px solid var(--line);width:14px;height:14px;box-shadow:none}.price-tag .coin-icon:after{border-width:1px;inset:1.5px}.buy-button,.equip-button{border:3px solid var(--line);cursor:pointer;box-shadow:3px 3px 0 var(--line);border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:900;transition:transform .1s,box-shadow .1s}@media (hover:hover) and (pointer:fine){.buy-button:hover,.equip-button:hover{box-shadow:5px 5px 0 var(--line);transform:translateY(-2px)}}.buy-button:active,.equip-button:active{box-shadow:1px 1px 0 var(--line);transform:translateY(1px)}.buy-button{background:var(--green)}.buy-button:disabled{color:#a0aec0;cursor:not-allowed;box-shadow:none;background:#e2e8f0;border-color:#cbd5e0;transform:none}.equip-button{background:var(--yellow)}.equip-button.is-equipped{background:var(--pink);color:#fff}.checking-state-container{flex-direction:column;align-items:center;gap:16px;width:100%;max-width:320px;margin:0 auto;display:flex}.checking-btn{width:100%;position:relative;overflow:hidden}.grading-loading-bar{border:3px solid var(--line);width:100%;height:14px;box-shadow:2px 2px 0 var(--line);background:#1720331a;border-radius:999px;position:relative;overflow:hidden}.grading-loading-bar-fill{background:linear-gradient(90deg, var(--yellow) 0%, var(--orange) 50%, var(--yellow) 100%);transform-origin:0;background-size:200% 100%;border-radius:999px;width:100%;height:100%;animation:2.5s cubic-bezier(.25,.8,.25,1) forwards gradingProgress,1.5s linear infinite gradingShimmer}@keyframes gradingProgress{0%{transform:scaleX(0)}15%{transform:scaleX(.2)}45%{transform:scaleX(.55)}75%{transform:scaleX(.85)}90%{transform:scaleX(.96)}to{transform:scaleX(1)}}@keyframes gradingShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
