.app-shell.app-shell--course{max-width:480px;padding:0}.course-page{background:var(--color-background);min-height:100dvh;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex}.preview-status-bar,.preview-home-indicator{display:none}.course-header{height:36px;font-family:var(--font-display);background:#fff;flex:0 0 36px;justify-content:space-between;align-items:center;padding:6px 15px;display:flex;position:relative}.course-header h1{letter-spacing:0;white-space:nowrap;margin:0;font-size:16px;font-weight:700;line-height:16px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.course-back{place-items:center;width:44px;height:44px;margin-left:-10px;display:grid}.course-back img{display:block}.course-star-balance{color:#a35710;align-items:center;gap:4px;font-size:20px;font-weight:700;line-height:24px;display:flex}.course-star-balance>span{width:24px;height:24px;position:relative}.course-star-balance img{width:82.8%;height:79.42%;position:absolute;top:6.83%;left:8.6%}.course-cards{flex-direction:column;gap:20px;margin:0;padding:20px 12px 0 11px;list-style:none;display:flex}.course-card{aspect-ratio:352/136;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:100%;padding:0;text-decoration:none;display:block;position:relative;container-type:inline-size}.course-card:not(:disabled):active{transform:scale(.985)}.course-card--locked{opacity:1;cursor:default}.course-card-art{pointer-events:none;position:absolute;inset:0}.course-card-art img{display:block;position:absolute}.course-card-base{width:100%;height:82.35%;top:17.65%;left:0}.course-card-title{font-family:var(--font-display);white-space:nowrap;color:var(--color-primary);font-size:9.091cqw;font-weight:700;line-height:1.2;position:absolute;top:44.85%;left:9.66%}.course-card--locked .course-card-title{color:#ae9e77}.course-card--completed .course-card-title{top:32.35%}.course-card-earned-stars{width:36.08%;height:24.27%;top:63.97%;left:9.66%}.course-storage-warning{color:#a35710;margin:8px 15px 0;font-size:12px}.course-card-dots{object-fit:cover;width:24.15%;height:62.32%}.course-card-dots--one{top:28.68%;left:42.61%}.course-card-dots--two{top:30.88%;left:68.47%}.course-card--locked .course-card-dots--one{opacity:.22;left:47.73%}.course-card--locked .course-card-dots--two{opacity:.26;left:73.58%}.course-card-mascot{aspect-ratio:146/166;width:33.13%;position:absolute;top:2.274%;left:52.31%;-webkit-mask:url(../assets/figma/course/17a93.svg) .24858cqw -.87841cqw/32.8636cqw 38.6364cqw no-repeat;mask:url(../assets/figma/course/17a93.svg) .24858cqw -.87841cqw/32.8636cqw 38.6364cqw no-repeat}.course-card-art--animation .course-card-mascot{left:56.29%}.course-card-art--interaction .course-card-mascot{left:56.85%}.course-card--locked .course-card-mascot{-webkit-mask-image:url(../assets/figma/course/f81ce.svg);mask-image:url(../assets/figma/course/f81ce.svg)}.mascot-song-body{width:100%;height:100%;inset:0;transform:translateY(-.0881cqw)}.mascot-song-brow{width:30.14%;height:6.03%;top:7.83%;left:36.3%}.mascot-core{width:96.62%;height:99.545%;position:absolute;top:.686%;left:2.1%}.mascot-animation-crop{position:absolute;inset:0;overflow:hidden}.mascot-animation-crop img{width:120.82%;height:119.84%;top:-8.18%;left:-11.43%}.mascot-animation-brow{width:33.34%;height:8%;top:7.29%;left:33.7%}.mascot-interaction-wrap{aspect-ratio:329/381;width:118.68%;position:absolute;top:-2.273cqw;left:-11.96%}.mascot-interaction-body{aspect-ratio:154/197;width:84.93%;position:absolute;top:calc(50% + .01705cqw);left:8.82%;transform:translateY(-50%)}.mascot-interaction-body>span{position:absolute;inset:0;overflow:hidden}.mascot-interaction-body img{width:117.75%;height:106.84%;top:-3.67%;left:-10.39%}.mascot-interaction-brow{width:31.43%;height:6.67%;top:10%;left:34.19%}.course-card-play{filter:drop-shadow(0 0 2px #00000040);background:#ffdb00;border-radius:50px;width:20.45%;height:22.794%;position:absolute;top:69.85%;left:75%}.course-card-play img{width:25.66%;height:53.47%;top:24%;left:37%;transform:rotate(90deg)}.course-card-report-star{width:37.396%;height:93.98%;top:3.1%;left:56.872%}.course-card-report-scroll{justify-content:center;align-items:center;width:34.34%;height:80.724%;display:flex;position:absolute;top:8.132%;left:57.04%}.report-scroll-mask{width:89.297%;height:86.274%;position:relative;transform:rotate(-8.6deg);box-shadow:0 1.136cqw 1.136cqw #b46e1494;-webkit-mask:url(../assets/figma/course/a3e1e.svg) 2.9108cqw .0571cqw/28.6767cqw 33.4685cqw no-repeat;mask:url(../assets/figma/course/a3e1e.svg) 2.9108cqw .0571cqw/28.6767cqw 33.4685cqw no-repeat}.report-scroll-crop{position:absolute;inset:0;overflow:hidden}.report-scroll-crop img{width:132.57%;height:151.09%;top:-28.82%;left:-11.49%}.course-card-art--report .course-card-dots--one{top:17.76%;left:52.56%}.course-card-art--report .course-card-dots--two{top:37.85%;left:66.48%}.course-footer{min-height:max(32px, env(safe-area-inset-bottom));margin-top:auto;position:relative}@media (width>=700px) and (height>=600px){.app-shell.app-shell--course{max-width:375px;min-height:812px;margin-block:24px}.course-page{min-height:812px;padding-top:0}.preview-status-bar{color:#000;background:#fff;justify-content:space-between;align-items:flex-start;height:54px;padding:21px 29px 0 50px;font-family:Arial,sans-serif;font-size:17px;font-weight:600;line-height:22px;display:flex}.preview-status-icons{align-items:center;gap:7px;height:22px;display:flex}.course-footer{height:34px;min-height:34px}.preview-home-indicator{background:#000;border-radius:100px;width:144px;height:5px;display:block;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}}.facetime-preview{width:min(100%, calc((var(--learning-stage-height) - var(--learning-safe-top) - var(--learning-safe-bottom)) * 2.16533), 1200px);position:relative}.facetime-preview-nav{z-index:1;color:#fff;text-shadow:0 1px 3px #000;justify-content:space-between;align-items:center;gap:8px 24px;font-size:12px;display:flex;position:absolute;top:0;left:16px;right:16px}.facetime-preview-nav a{color:#fff;align-items:center;min-height:44px;display:inline-flex}.facetime-scene{aspect-ratio:812/375;background:#3d3d3d;width:100%;position:relative;overflow:hidden;container-type:inline-size}.facetime-scene--connected{background:#000}.facetime-avatar{object-fit:cover;border-radius:50%;width:14.778%;height:32%;position:absolute;top:11.867%;left:42.487%}.facetime-call-title{color:#fff;font-family:var(--font-display);letter-spacing:0;white-space:nowrap;margin:0;font-size:3.941cqw;font-weight:700;line-height:1.2;position:absolute;top:49.867%;left:50%;transform:translate(-50%)}.facetime-action{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:9.852%;min-width:44px;height:21.333%;min-height:44px;padding:0;position:absolute}.facetime-action img{width:100%;height:103.75%;display:block;position:absolute;top:0;left:0}.facetime-action:active{transform:scale(.96)}.facetime-answer{top:62.667%;left:45.074%}.facetime-hangup{bottom:8%;right:4.926%}.facetime-role-video{object-fit:contain;width:100%;height:100%;position:absolute;top:0;left:0}.facetime-role-video[hidden]{display:none}.facetime-video-status{color:#fff;text-align:center;background:#000b;border-radius:12px;padding:8px 16px;font-size:clamp(14px,2.2cqw,22px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.facetime-video-status p{margin:0}.facetime-video-status button{color:#477b00;cursor:pointer;background:#d4f680;border:0;border-radius:12px;min-height:44px;margin-top:8px;padding:4px 16px}.self-camera{background:#fff;width:32.635%;height:32.533%;position:absolute;bottom:0;left:0;overflow:hidden}.self-camera-video{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.self-camera-message{text-align:center;color:#333;background:#fff;flex-direction:column;justify-content:center;align-items:center;padding:10px;font-size:clamp(11px,1.6cqw,13px);line-height:1.4;display:flex;position:absolute;inset:0}.self-camera-message p{max-width:22em;margin:0}.self-camera-message button{color:#333;min-height:44px;font-size:inherit;cursor:pointer;background:#ffdb00;border:0;border-radius:12px;margin-top:4px;padding:4px 12px}.player-scene{width:min(100%, calc((var(--learning-stage-height) - var(--learning-safe-top) - var(--learning-safe-bottom)) * 2.16533), 1200px);aspect-ratio:812/375;isolation:isolate;color:#fff;font-family:var(--font-display);background:#000;position:relative;overflow:hidden;container-type:inline-size}.player-content{position:absolute;inset:0}.player-media-plane{width:min(100%, calc(100cqw * 375 / 812 * var(--video-aspect)));aspect-ratio:var(--video-aspect);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);container-type:inline-size}.player-video{object-fit:contain;width:100%;height:100%;display:block}.player-surface{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.player-controls{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,visibility .18s;position:absolute;inset:0}.player-controls.is-visible{opacity:1;visibility:visible}.player-controls .player-icon,.player-controls .player-progress{pointer-events:auto}.player-controls:not(.is-visible) *{pointer-events:none}.player-start{z-index:1;color:#fff;cursor:pointer;min-height:48px;font:inherit;background:#000b;border:0;border-radius:16px;padding:12px 24px;font-size:clamp(16px,2.2cqw,24px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.player-bottom-shade{pointer-events:none;width:100%;height:17.6%;position:absolute;bottom:0;left:0}.player-icon{color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;place-items:center;width:max(44px,5.419cqw);height:max(44px,5.419cqw);padding:0;display:grid;position:absolute}.player-icon:disabled{cursor:default;opacity:.45}.player-scene button:focus-visible{outline-offset:-2px;outline:3px solid #d4f680}.player-icon img{pointer-events:none;display:block}.player-back{top:1.333%;left:.616%}.player-back img{filter:drop-shadow(0 0 2px #0004);width:54.545%}.player-play{bottom:2.933%;left:1.601%}.player-play-image{width:58.764%;transform:rotate(90deg)}.player-pause-image{mix-blend-mode:screen;width:90.909%}.player-progress{background:#8b8b8b;border-radius:50px;height:.739cqw;min-height:4px;position:absolute;bottom:8%;left:8.621%;right:23.768%}.player-buffer,.player-played{border-radius:inherit;height:100%;position:absolute;top:0;left:0}.player-buffer{background:#fff}.player-played{background:#8fcd1d}.player-paw{width:4.187cqw;position:absolute;top:50%;transform:translate(-50%,-50%)}.player-progress>span,.player-paw{pointer-events:none}.player-seek{opacity:0;cursor:pointer;touch-action:none;width:100%;height:max(44px,5.419cqw);margin:0;padding:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.player-progress:has(.player-seek:focus-visible){outline-offset:10px;outline:3px solid #d4f680}.player-time{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:2.463cqw;font-weight:700;line-height:1.2;position:absolute;bottom:5.867%;left:78.079%}.player-caption-button{bottom:3.2%;right:.739%}.player-caption-button img{max-width:59.091%;max-height:59.091%}.player-caption-language{aspect-ratio:1;border:1.5px solid;border-radius:50%;place-items:center;width:59.091%;font-size:clamp(12px,1.4cqw,18px);font-weight:700;line-height:1;display:grid}.player-status{color:#fff;text-align:center;background:#000b;border-radius:12px;margin:0;padding:8px 16px;font-size:clamp(14px,2.2cqw,22px);line-height:1.5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.player-preview-label{color:#fff;white-space:nowrap;background:#0009;border-radius:12px;margin:0;padding:4px 12px;font-size:12px;line-height:1.5;position:absolute;top:16px;left:50%;transform:translate(-50%)}.player-captions{text-align:center;color:#fff;font-family:ui-rounded, "Arial Rounded MT Bold", var(--font-body);pointer-events:none;grid-template-rows:repeat(2,minmax(1.25em,auto));font-size:2.91667cqw;font-weight:700;line-height:1.25;display:grid;position:absolute;bottom:3.7037%;left:5%;right:5%}.player-captions--shadow{text-shadow:0 .0357em .0714em #000e,0 0 .0714em #000b}.player-captions--outline{-webkit-text-stroke:.15em #000;paint-order:stroke fill}.player-captions p{white-space:pre-line;overflow-wrap:anywhere;margin:0}.player-captions p[lang=en]{grid-row:1}.player-captions p[lang=zh-CN]{grid-row:2}.player-exit{background:#000000b3;position:absolute;inset:0}.player-exit-content{text-align:center;width:100%;font-weight:700;position:absolute;top:30.667%;left:0}.player-exit h2{margin:0;font-size:3.941cqw;line-height:1.1875}.player-exit p{margin:1.724cqw 0 3.079cqw;font-size:2.463cqw;line-height:1.2}.player-exit-actions{justify-content:center;gap:2.956cqw;display:flex;transform:translate(-1.601cqw)}.player-exit-actions button{cursor:pointer;border:0;border-radius:2.463cqw;width:17.734cqw;height:5.419cqw;min-height:44px;padding:0;font-size:2.463cqw;font-weight:700;line-height:1.2}.player-exit-actions .player-exit-leave{color:#adadad;background:0 0;border:3px solid #adadad}.player-exit-continue{color:#477b00;background:linear-gradient(#d2f57f,#d4f680)}@media (prefers-reduced-motion:reduce){.player-controls{transition:none}}.interaction-scene{width:min(100%, calc((var(--learning-stage-height) - var(--learning-safe-top) - var(--learning-safe-bottom)) * 2.16533), 1200px);aspect-ratio:812/375;isolation:isolate;background:var(--color-background);color:var(--color-text);font-family:var(--font-display);position:relative;overflow:hidden;container-type:inline-size}.interaction-content{position:absolute;inset:0}.interaction-scene button{cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;padding:0}.interaction-scene button:disabled{cursor:default}.interaction-scene button:focus-visible,.interaction-scene a:focus-visible{outline-offset:3px;outline:3px solid #477b00}.interaction-back{z-index:2;background:0 0;place-items:center;width:max(44px,5.419cqw);height:max(44px,5.419cqw);display:grid;position:absolute;top:1.333%;left:.616%}.interaction-back img{width:54.545%;height:54.545%}.interaction-progress{background:#d9d9d9;border-radius:50px;width:72.66%;height:1.724cqw;position:absolute;top:5.333%;left:13.67%;overflow:hidden}.interaction-progress>span{border-radius:inherit;background:#8fcd1d;height:100%;transition:width .25s ease-out;display:block}.interaction-count{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.interaction-listen{aspect-ratio:1;background:0 0;border-radius:50%;width:max(44px,7.389cqw);position:absolute;top:14.4%;left:50%;transform:translate(-50%)}.interaction-listen img{pointer-events:none;display:block;position:absolute}.listen-disc{width:100%;height:105%;inset:0}.listen-icon{width:62.5%;height:62.5%;top:18.75%;left:18.75%}.listen-wave{width:16.25%;height:16.25%;top:56.25%;left:42.5%}.interaction-listen.is-playing .listen-wave{animation:.7s ease-in-out infinite alternate listen-pulse}.interaction-audio-hint{color:#74684c;text-align:center;width:26%;margin:0;font-size:1.478cqw;position:absolute;top:31%;left:37%}.interaction-options{justify-content:space-between;display:flex;position:absolute;top:43.2%;left:14.655%;right:14.655%}.interaction-option{aspect-ratio:1;background:0 0;border-radius:2.463cqw;width:26.132%}.exercise-picture{aspect-ratio:1;background:#f3e6c9;border-radius:2.463cqw;width:100%;height:100%;display:block;position:relative;overflow:hidden}.exercise-picture img{object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;max-width:none;height:100%;position:absolute;top:0;left:0}.interaction-judge-picture{aspect-ratio:1;width:18.473%;position:absolute;top:43.2%;left:40.764%}.interaction-judge{aspect-ratio:1;background:0 0;border-radius:50%;width:12.315%;position:absolute;top:52.267%}.interaction-judge--no{left:15.517%}.interaction-judge--yes{left:72.167%}.interaction-judge img{pointer-events:none;display:block;position:absolute}.judge-disc{width:100%;height:103%;inset:0}.interaction-judge--no .judge-icon{width:54%;height:54%;top:25%;left:23%}.interaction-judge--yes .judge-icon{width:70%;height:70%;top:15%;left:15%}.interaction-scene--spoken .interaction-listen{left:66.256%}.interaction-scene--spoken .interaction-audio-hint{left:53.25%}.interaction-spoken-picture{aspect-ratio:1;width:24.631%;position:absolute;top:25.6%;left:17.98%}.interaction-microphone{aspect-ratio:1;background:0 0;border-radius:50%;width:14.778%;position:absolute;top:46.933%;left:58.867%}.interaction-microphone img{pointer-events:none;width:100%;height:102.5%;display:block;position:absolute;top:0;left:0}.interaction-microphone.has-sound img{width:110%;height:110%;top:-5%;left:-5%}.interaction-microphone.has-sound{animation:.6s ease-in-out infinite alternate microphone-pulse}.interaction-speech-bubble{background:#ffe548;border-radius:50px;width:8.744%;height:8%;position:absolute;top:36.267%;left:61.823%}.interaction-speech-bubble>span{width:42.254%;height:100%;transform:scaleY(var(--voice-level));background:#6fb112;transition:transform 80ms linear;position:absolute;top:0;left:29.577%;-webkit-mask:url(../assets/figma/interaction/speech-wave.png) 50%/contain no-repeat;mask:url(../assets/figma/interaction/speech-wave.png) 50%/contain no-repeat}.interaction-speech-bubble>img{width:18.31%;height:26.667%;position:absolute;top:94%;left:40.845%;transform:scaleY(-1)}.interaction-record-progress{background:#d9d9d9;border-radius:50px;width:14.778%;height:1.232cqw;position:absolute;top:83.467%;left:58.867%;overflow:hidden}.interaction-record-progress>span{border-radius:inherit;background:#fcb03a;height:100%;display:block}.interaction-scene--recall .interaction-microphone{top:39.733%}.interaction-scene--recall .interaction-record-progress{top:76.267%}.interaction-scene--recall .interaction-speech-bubble{top:29.067%}.interaction-record-hint{text-align:center;color:#74684c;width:43%;margin:0;font-size:clamp(10px,1.478cqw,18px);line-height:1.3;position:absolute;top:87.4%;left:45%}.interaction-record-hint.has-error{font-size:clamp(10px,1.355cqw,16px);top:86%}.interaction-scene--recall .interaction-record-hint{top:81%}.interaction-preview-skip{color:#477b00;background:0 0;font-size:clamp(10px,1.355cqw,16px);text-decoration:underline;position:absolute;bottom:2%;right:3%;padding:5px!important}.interaction-assessment{color:#477b00;justify-items:center;gap:.8cqw;width:35%;display:grid;position:absolute;top:42%;left:49%}.interaction-assessment p{margin:0;font-size:1.8cqw}.interaction-assessment strong{font-variant-numeric:tabular-nums;font-size:6.4cqw;line-height:1.15}.interaction-assessment small{margin-left:.5cqw;font-size:1.8cqw}.interaction-assessment>div{gap:1.5cqw;display:flex}.interaction-assessment button{color:#315b00;background:#a5e645;border-radius:4cqw;min-height:44px;padding:.8cqw 2cqw;font-size:1.8cqw;font-weight:700}.interaction-assessment button:first-child{background:#ede3c6}.interaction-scene--recall .interaction-assessment{top:31%}.interaction-assessment-retry{color:#477b00;background:0 0;min-height:44px;font-size:1.5cqw;text-decoration:underline;position:absolute;top:56%;left:76%;padding:1cqw!important}.interaction-unresolved{color:#74684c;justify-content:center;align-items:center;gap:16px;font-size:1.478cqw;display:flex;position:absolute;bottom:4%;left:15%;right:15%}.interaction-unresolved p{margin:0}.interaction-unresolved button{color:#477b00;background:0 0;text-decoration:underline}.interaction-correct{pointer-events:none;z-index:3;width:37.192%;height:53.867%;animation:.42s cubic-bezier(.18,.85,.3,1.15) correct-stamp;position:absolute;top:23.2%;left:31.404%;overflow:hidden}.interaction-correct>span{width:98.344%;height:83.663%;position:absolute;top:8.416%;left:.662%;overflow:hidden}.interaction-correct img{width:133.5%;max-width:none;height:155.57%;position:absolute;top:-32.7%;left:-9.64%}.is-wrong{animation:.45s ease-in-out choice-shake}.interaction-overlay{text-align:center;background:var(--color-background);z-index:5;flex-direction:column;justify-content:center;align-items:center;gap:1.5cqw;padding:5cqw;display:flex;position:absolute;inset:0}.interaction-overlay h2,.interaction-summary h2{color:#477b00;margin:0;font-size:3.94cqw}.interaction-overlay p{color:#74684c;margin:0;font-size:1.97cqw;line-height:1.5}.interaction-overlay button,.interaction-summary button,.interaction-summary a{color:#315b00;background:#a5e645;border-radius:50px;justify-content:center;align-items:center;min-height:44px;padding:1.1cqw 3cqw;font-size:1.97cqw;font-weight:700;text-decoration:none;display:inline-flex}.interaction-intro>a{color:#74684c;font-size:1.478cqw}.interaction-transition>span{transform-origin:0;background:#8fcd1d;border-radius:50px;width:9cqw;height:.7cqw;animation:1.2s ease-out both transition-fill;display:block}.interaction-summary{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.5cqw;display:flex;position:absolute;inset:20% 10% 8%}.interaction-summary p{margin:0;font-size:1.97cqw}.interaction-summary .interaction-summary-note{color:#74684c;font-size:1.6cqw}.interaction-summary>div{gap:2cqw;margin-top:1cqw;display:flex}.interaction-summary button{background:#ede3c6}.interaction-storage-hint{color:#9e502a;margin:0;font-size:1.3cqw;position:absolute;bottom:1%;left:1%}.interaction-exit{color:#fff;z-index:6;text-align:center;background:#000b;place-items:center;display:grid;position:absolute;inset:0}.interaction-exit h2{margin:0;font-size:3.941cqw}.interaction-exit p{margin:1.724cqw 0 3.079cqw;font-size:2.463cqw}.interaction-exit-actions{justify-content:center;gap:2.956cqw;display:flex}.interaction-exit-actions button{color:#477b00;background:#d4f680;border-radius:2.463cqw;width:17.734cqw;height:5.419cqw;min-height:44px;font-size:2.463cqw;font-weight:700}.interaction-exit-actions button:first-child{color:#adadad;background:0 0;border:3px solid #adadad}.interaction-catalog-day{margin:24px 0}.interaction-catalog-day h2{margin:0 0 12px;font-size:20px}.interaction-catalog-groups{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.interaction-catalog-groups a{border:1px solid var(--color-border);color:var(--color-primary);border-radius:12px;padding:10px 14px;text-decoration:none}@keyframes choice-shake{0%,to{transform:translate(0)}18%,54%{transform:translate(-.85cqw)}36%,72%{transform:translate(.85cqw)}}@keyframes correct-stamp{0%{opacity:0;transform:scale(.65)rotate(-8deg)}75%{opacity:1;transform:scale(1.06)rotate(2deg)}to{transform:scale(1)}}@keyframes microphone-pulse{0%{transform:scale(1)}to{transform:scale(1.035)}}@keyframes listen-pulse{0%{transform:scaleY(.6)}to{transform:scaleY(1.1)}}@keyframes transition-fill{0%{opacity:.5;transform:scaleX(.1)}to{opacity:1;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.interaction-scene *,.interaction-scene :before,.interaction-scene :after{transition:none!important;animation:none!important}}.app-shell.app-shell--learning{background:#000;width:100%;max-width:none;height:100dvh;min-height:0;padding:0;position:fixed;inset:0;overflow:hidden}.learning-stage{--learning-stage-height:100dvh;--learning-safe-top:env(safe-area-inset-top);--learning-safe-bottom:env(safe-area-inset-bottom);width:100vw;height:100dvh;padding:var(--learning-safe-top) env(safe-area-inset-right) var(--learning-safe-bottom) env(safe-area-inset-left);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.learning-stage-content{place-items:center;width:100%;min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.learning-stage--interaction{background:var(--color-background)}.learning-stage--interaction .learning-stage-content{padding:0;display:grid;overflow:hidden}@media (aspect-ratio<=1){.learning-stage{--learning-stage-height:100vw;--learning-safe-top:env(safe-area-inset-left);--learning-safe-bottom:env(safe-area-inset-right);width:100dvh;height:100vw;padding:var(--learning-safe-top) env(safe-area-inset-top) var(--learning-safe-bottom) env(safe-area-inset-bottom);transform:translate(-50%,-50%)rotate(90deg)}}.completion-scene{width:min(100%, calc((var(--learning-stage-height) - var(--learning-safe-top) - var(--learning-safe-bottom)) * 2.16533), 1200px);aspect-ratio:812/375;isolation:isolate;background:var(--color-background);font-family:var(--font-display);position:relative;overflow:hidden;container-type:inline-size}.completion-scene h1{color:#d68913;white-space:nowrap;margin:0;font-size:3.941cqw;font-weight:700;line-height:1.1875;position:absolute;top:17.333%;left:50%;transform:translate(-50%)}.completion-balance{color:#a35710;background:#fff;border-radius:80px;justify-content:center;align-items:center;gap:.493cqw;min-width:12.315%;height:7.467%;padding-inline:1.724cqw;font-size:2.463cqw;font-weight:700;line-height:1.2;animation:.42s ease-out 3.6s both completion-balance-pop;display:flex;position:absolute;top:5.333%;right:2.463%}.completion-balance>span{width:2.956cqw;height:2.956cqw;position:relative}.completion-balance img{width:82.8%;height:79.42%;position:absolute;top:6.83%;left:8.6%}.completion-stars{transform-origin:50% 52%;pointer-events:none;animation:.8s ease-in-out 2.15s backwards completion-shared-bounce;position:absolute;inset:0}.completion-star{aspect-ratio:1;width:14.778%;position:absolute;overflow:visible}.completion-star--left{--star-angle:-20deg;--star-delay:.65s;top:35.2%;left:24.138%}.completion-star--center{--star-angle:0deg;--star-delay:0s;--star-lift:-2%;--star-peak-scale:1.035;--star-rebound:-1%;top:28.267%;left:42.611%}.completion-star--right{--star-angle:20deg;--star-delay:1.1s;top:35.2%;left:61.084%}.completion-star:before,.completion-star:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.completion-star:before{animation:completion-glow 1.25s ease-out calc(var(--star-delay) + .16s) both;background:radial-gradient(circle,#ffe16d66 0%,#ffdf5955 28%,#fff1b533 49%,#0000 69%);inset:-26%}.completion-star:after{animation:completion-ring 1s ease-out calc(var(--star-delay) + .32s) both;border:.25cqw solid #ffdf7766;inset:0;box-shadow:0 0 .8cqw #ffdc8544,inset 0 0 .8cqw #ffec9b55}.completion-star-motion{transform:rotate(var(--star-angle));transform-origin:50% 78%;animation:completion-star-jump 1.1s linear var(--star-delay) backwards;position:absolute;inset:8.333%}.completion-star-crop{position:absolute;inset:0;overflow:visible}.completion-star-crop img{width:114%;max-width:none;height:114%;position:absolute;top:-5%;left:-7%}.completion-sparkles{pointer-events:none;position:absolute;inset:0}.completion-particle{animation:completion-sparkle 1.05s ease-out var(--particle-delay) both;display:block;position:absolute}.completion-particle--ray{background:currentColor;border-radius:1cqw;width:.55cqw;height:2.1cqw}.completion-particle--dot{background:currentColor;border-radius:50%;width:.55cqw;height:.55cqw}.completion-particle--spark{width:1.55cqw;height:1.55cqw}.completion-particle--spark img{width:100%;height:100%;display:block}.completion-particle--gold{color:#f7cf59}.completion-particle--pink{color:#f3b5b3}.completion-particle--blue{color:#9ed4e4}.completion-reward{background:#ffffffe6;border-radius:.739cqw;width:34.236%;height:25.067%;animation:.42s cubic-bezier(.2,.8,.3,1.2) 2.85s both completion-reward-arrive;position:absolute;top:67.733%;left:32.882%;box-shadow:.246cqw .246cqw .246cqw #0004}.completion-reward h2,.completion-reward p{white-space:nowrap;margin:0;position:absolute;left:7.194%;right:23%}.completion-reward h2{color:#a35710;font-size:2.463cqw;line-height:1.3;top:12.766%}.completion-reward p{color:#757575;font-size:1.97cqw;line-height:1.125;top:44.681%}.completion-reward .completion-coins{color:#5a9c00;top:68.085%}.completion-reward>img{aspect-ratio:1;width:10.791%;position:absolute;top:34.043%;left:79.856%}.completion-flying-coins{pointer-events:none;position:absolute;inset:0}.completion-flying-coins img{filter:drop-shadow(0 0 .35cqw #ffd84680);width:2.8cqw;height:2.8cqw;animation:completion-coin-flight .7s cubic-bezier(.4,0,.7,.8) var(--coin-delay) both;position:absolute;top:83%;left:50%}.completion-continue{color:var(--color-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;text-decoration:none;position:absolute;inset:0}.completion-continue>span{font-size:1.724cqw;line-height:1.4;animation:.3s ease-out 3.6s both completion-hint-arrive;position:absolute;bottom:4%;right:2.463%}.completion-continue:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.completion-storage-warning{color:#a35710;margin:0;font-size:1.5cqw;position:absolute;top:2%;left:50%;transform:translate(-50%)}@keyframes completion-star-jump{0%{opacity:0;transform:translateY(48%) rotate(calc(var(--star-angle) - 10deg)) scale(.32)}14%{opacity:1;transform:translateY(12%) rotate(calc(var(--star-angle) - 6deg)) scale(.8);animation-timing-function:ease-out}34%{opacity:1;transform:translateY(var(--star-lift,-10%)) rotate(calc(var(--star-angle) + 3deg)) scale(var(--star-peak-scale,1.055));animation-timing-function:ease-in}50%{transform:translateY(4%) rotate(calc(var(--star-angle) - 2deg)) scale(1.035, .975);animation-timing-function:ease-out}66%{transform:translateY(var(--star-rebound,-4%)) rotate(calc(var(--star-angle) + 1deg)) scale(.995, 1.015);animation-timing-function:ease-in}80%{transform:translateY(1%) rotate(var(--star-angle)) scale(1.008, .996);animation-timing-function:ease-out}92%{transform:translateY(-0.6%) rotate(var(--star-angle)) scale(1)}to{opacity:1;transform:translateY(0) rotate(var(--star-angle)) scale(1)}}@keyframes completion-shared-bounce{0%,to{transform:translateY(0)scale(1)}20%{transform:translateY(.6%)scale(1.012,.987)}45%{transform:translateY(-2%)scale(.995,1.015)}70%{transform:translateY(.3%)scale(1.006,.996)}}@keyframes completion-glow{0%{opacity:0;transform:scale(.35)}35%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.18)}}@keyframes completion-ring{0%{opacity:0;transform:scale(.55)}20%{opacity:.8}to{opacity:0;transform:scale(1.35)}}@keyframes completion-sparkle{0%{opacity:0;transform:translateY(1.6cqw) rotate(var(--particle-angle)) scale(.25)}25%{opacity:1;transform:translateY(0) rotate(var(--particle-angle)) scale(1)}70%{opacity:.85}to{opacity:0;transform:translateY(-1.4cqw) rotate(calc(var(--particle-angle) + 12deg)) scale(.55)}}@keyframes completion-reward-arrive{0%{opacity:0;transform:translateY(18%)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes completion-coin-flight{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}12%{opacity:1}45%{opacity:1;transform:translate(10cqw,-17cqw)scale(1.1)}85%{opacity:1}to{opacity:0;transform:translate(39cqw,-34cqw)scale(.45)}}@keyframes completion-balance-pop{0%,to{transform:scale(1)}40%{transform:scale(1.12)}}@keyframes completion-hint-arrive{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.completion-stars,.completion-star-motion,.completion-reward,.completion-balance,.completion-continue>span{animation:none}.completion-star:before,.completion-star:after,.completion-sparkles,.completion-flying-coins{display:none}}.app-shell.app-shell--materials{max-width:1000px}.materials-clips{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0 40px;padding:0;list-style:none;display:grid}.materials-clips a{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:18px;flex-direction:column;gap:4px;padding:20px;font-size:18px;font-weight:600;text-decoration:none;display:flex}.materials-clips small{color:var(--color-muted);font-size:12px;font-weight:400}.materials-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.materials-cards figure{margin:0}.materials-cards img{background:#eee6d2;border-radius:12px;width:100%;height:auto;display:block}.materials-cards figcaption{padding:8px 0;font-size:14px}@media (width<=520px){.materials-clips,.materials-cards{grid-template-columns:1fr}}:root{--color-background:#fffae6;--color-text:#333;--color-primary:#477b00;--color-muted:#74684c;--color-border:#ded5b8;--color-surface:#fffdf5;--font-body:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-display:var(--font-body);--radius:18px}*{box-sizing:border-box}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-body);margin:0;line-height:1.65}a{color:var(--color-primary);text-underline-offset:4px}a:focus-visible,button:focus-visible{outline:3px solid var(--color-primary);outline-offset:5px}button{font:inherit}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}h1{letter-spacing:-1px;margin:16px 0;font-size:clamp(28px,6vw,40px);line-height:1.25}h1:focus{outline:none}h2{font-size:21px}p{margin:8px 0}.app-shell{max-width:640px;min-height:100dvh;padding:max(40px, env(safe-area-inset-top)) 24px max(40px, env(safe-area-inset-bottom));margin:0 auto}.eyebrow{color:var(--color-muted);letter-spacing:1px;margin-top:24px;font-size:13px}.description{color:var(--color-muted)}.lesson-list{margin:36px 0 20px;padding:0;list-style:none}.lesson-list li{border-bottom:1px solid var(--color-border)}.lesson-link{align-items:center;gap:20px;padding:20px 4px;font-size:22px;font-weight:700;text-decoration:none;display:flex}.lesson-link:hover{background:var(--color-surface)}.lesson-link>:last-child{margin-left:auto}.lesson-number{color:var(--color-muted);font-size:14px;font-weight:400}.lesson-link small{color:var(--color-muted);font-size:12px;font-weight:400;display:block}.report-link,.back-link,.design-link{align-items:center;min-height:44px;display:inline-flex}.preview-note{border-top:1px dashed var(--color-border);color:var(--color-muted);margin-top:40px;padding-top:24px;font-size:13px}.empty-state{border:1px dashed var(--color-border);border-radius:var(--radius);background:var(--color-surface);margin:32px 0;padding:28px}.empty-state p{color:var(--color-muted)}@media (width<=380px){.app-shell:not(.app-shell--course):not(.app-shell--learning){padding-inline:18px}}
