:root{--bg: #fff8ec;--bg-2: #fdecd0;--card: #ffffff;--ink: #3b3a4a;--ink-soft: #77758a;--ink-faint: #b3afbf;--line: #eee4d2;--green: #58c35f;--green-dark: #3a9a42;--sun: #ffc93c;--sun-dark: #e8a800;--sky: #7cc6fe;--coral: #ff8a7a;--red: #ef6461;--blue: #4f8fe6;--island: var(--green);--island-dark: color-mix(in srgb, var(--island) 72%, #000);--island-soft: color-mix(in srgb, var(--island) 16%, #fff);--radius: 1.5rem;--radius-s: .9rem;--depth: .35rem;--shadow-card: 0 .15rem 0 rgba(59, 58, 74, .06), 0 .6rem 1.6rem rgba(120, 90, 40, .1);--touch: 4.5rem;--pad: clamp(.75rem, 2.2vmin, 1.75rem);--font: -apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-num: "Chalkboard SE", "Avenir Next Rounded", "Arial Rounded MT Bold", var(--font)}html{font-size:clamp(11px,1.95vmin,22px)}@media(max-height:500px){html{font-size:clamp(10px,2.7vh,14px)}}*,*:before,*:after{box-sizing:border-box}html,body{height:100%;margin:0}body{background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.9) 0,transparent 30rem),radial-gradient(circle at 90% 95%,rgba(255,214,150,.35) 0,transparent 28rem),linear-gradient(180deg,#fffaf1 0%,var(--bg) 50%,var(--bg-2) 100%);background-attachment:fixed;color:var(--ink);font-family:var(--font);font-size:1.25rem;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior:none}#root{height:100%;height:100dvh;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button{font:inherit;color:inherit;touch-action:manipulation;cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:.25rem solid var(--sky);outline-offset:.2rem}.icon{width:1.2em;height:1.2em;flex:none;display:inline-block;vertical-align:-.2em}.big-btn{--face: var(--green);--edge: var(--green-dark);min-height:max(44px,var(--touch));min-width:max(44px,var(--touch));padding:0 1.75rem;border:0;border-radius:999px;background:var(--face);color:#fff;font-size:1.6rem;font-weight:800;letter-spacing:.04em;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;box-shadow:0 var(--depth) 0 var(--edge),0 calc(var(--depth) + .4rem) 1rem #0000001a;transform:translateY(0);transition:transform .08s ease,box-shadow .08s ease,opacity .2s}.big-btn:active:not(:disabled){transform:translateY(var(--depth));box-shadow:0 0 0 var(--edge),0 .2rem .4rem #0000001a}.big-btn:disabled{opacity:.45}.big-btn.soft{--face: #fff;--edge: #e4d8c3;color:var(--ink)}.big-btn.ghost{--face: rgba(255, 255, 255, .75);--edge: rgba(0, 0, 0, .08);color:var(--ink)}.big-btn.danger{--face: var(--coral);--edge: #d9685a}.big-btn .icon{width:1.1em;height:1.1em}.icon-btn{padding:0;width:max(44px,var(--touch));font-size:1.9rem;position:relative}.icon-btn .icon{width:2.2rem;height:2.2rem}.chip{min-height:max(44px,3.5rem);padding:0 1.4rem;border:0;border-radius:999px;background:#fff;box-shadow:0 .2rem #e4d8c3;font-size:1.35rem;font-weight:800;margin-top:.75rem}.chip:active{transform:translateY(.2rem);box-shadow:none}.badge{position:absolute;top:-.4rem;right:-.4rem;min-width:1.9rem;height:1.9rem;padding:0 .4rem;border-radius:999px;background:var(--coral);color:#fff;font-size:1.1rem;font-weight:800;line-height:1.9rem;text-align:center;font-family:var(--font-num);pointer-events:none;box-shadow:0 0 0 .15rem #fff}.tappable{cursor:pointer}.tappable:active{transform:scale(.92)}.row{display:flex;flex-direction:row;align-items:center}.col{display:flex;flex-direction:column}.center{align-items:center;justify-content:center}.wrap{flex-wrap:wrap}.gap-m{gap:.75rem}.gap-l{gap:1.5rem}.gap-xl{gap:3.5rem}.muted{color:var(--ink-soft)}.warn{color:#9a5b00;background:#fff3d6}.mascot{position:relative;flex:none;display:inline-block}.mascot.s{width:3.75rem}.mascot.m{width:6rem}.mascot.l{width:10rem}.mascot-svg{display:block;width:100%;height:auto;overflow:visible}.m-body{transform-origin:60px 120px;animation:breathe 3.2s ease-in-out infinite}.m-sprout{transform-origin:62px 36px;animation:sway 2.8s ease-in-out infinite}.m-eyes{transform-origin:60px 70px;animation:blink 4.5s infinite}.m-mouth-open{opacity:0}.mascot.speaking .m-mouth-open{animation:talk-open .32s steps(1) infinite alternate}.mascot.speaking .m-mouth-closed{animation:talk-close .32s steps(1) infinite alternate}.mascot.speaking .m-body{animation:bob .5s ease-in-out infinite alternate}.mascot.mood-cheer .m-body{animation:hop .8s ease-in-out infinite}.mascot.mood-sleep .m-body{animation:breathe 4.5s ease-in-out infinite}.mascot-wave{position:absolute;right:-8%;top:22%;width:22%;aspect-ratio:1;border-radius:50%;border:.2rem solid var(--sky);border-left-color:transparent;border-bottom-color:transparent;transform:rotate(45deg);animation:pulse .8s ease-in-out infinite}.bounce{animation:bounce .9s ease-in-out infinite;outline:.3rem solid var(--sun);outline-offset:.15rem}.glow{animation:glow 2.2s ease-in-out infinite}.highlight{animation:highlight 1.2s ease-in-out 2}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02,.985)}}@keyframes sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes talk-open{0%{opacity:1}to{opacity:0}}@keyframes talk-close{0%{opacity:0}to{opacity:1}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-3px) rotate(1deg)}}@keyframes hop{0%,to{transform:translateY(0) scale(1)}15%{transform:translateY(0) scale(1.06,.94)}45%{transform:translateY(-14px) scale(.97,1.04)}}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-.6rem)}}@keyframes glow{0%,to{box-shadow:0 var(--depth, .35rem) 0 var(--edge, var(--green-dark)),0 0 #ffc93cbf}50%{box-shadow:0 var(--depth, .35rem) 0 var(--edge, var(--green-dark)),0 0 0 1rem #ffc93c00}}@keyframes highlight{0%,to{box-shadow:0 0 #ffc93c00}50%{box-shadow:0 0 0 .6rem #ffc93ccc}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes slide-in{0%{opacity:0;transform:translate(5rem)}to{opacity:1;transform:translate(0)}}@keyframes rise-in{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.start-screen{width:100%;height:100%;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.75rem;position:relative;overflow:hidden}.start-title{font-size:clamp(2.6rem,7vmin,4.2rem);font-weight:900;letter-spacing:.35em;padding-left:.35em;color:var(--green-dark);text-shadow:0 .2rem 0 #fff,0 .45rem 0 rgba(58,154,66,.15);animation:rise-in .6s ease-out both}.start-screen .mascot.l{width:clamp(9rem,26vmin,15rem);animation:pop-in .6s .15s cubic-bezier(.2,1.6,.4,1) both}.start-cta{--edge: var(--green-dark);display:flex;align-items:center;gap:.75rem;min-height:5.5rem;padding:0 2.75rem;border-radius:999px;background:var(--green);color:#fff;font-size:2.1rem;font-weight:900;animation:glow 2.2s ease-in-out infinite,rise-in .6s .3s ease-out both}.start-hand{display:inline-block;animation:bounce 1s ease-in-out infinite}.start-screen:before,.start-screen:after{content:"";position:absolute;width:16rem;height:5rem;border-radius:999px;background:#fff;opacity:.7;box-shadow:4rem -2rem 0 -.5rem #fff,8rem 0 0 -1rem #fff;z-index:-1}.start-screen:before{top:12%;left:-18rem;animation:drift 38s linear infinite}.start-screen:after{bottom:14%;left:-18rem;transform:scale(.7);animation:drift 52s 8s linear infinite}@keyframes drift{to{left:110%}}.map{height:100%;display:grid;grid-template-columns:minmax(17rem,26rem) 1fr;position:relative}.long-press.parent-lock{position:absolute;top:.9rem;right:.9rem;z-index:5;width:max(44px,3.25rem);height:max(44px,3.25rem);border:0;border-radius:50%;background:#ffffffb3;color:var(--ink-faint);display:flex;align-items:center;justify-content:center}.parent-lock .icon{width:1.5rem;height:1.5rem}.long-press{position:relative}.long-press:after{content:"";position:absolute;inset:-.25rem;border-radius:50%;background:conic-gradient(var(--green) calc(var(--hold-p, 0) * 1turn),transparent 0);-webkit-mask:radial-gradient(circle,transparent 58%,#000 60%);mask:radial-gradient(circle,transparent 58%,#000 60%);opacity:0}.long-press.pressing{color:var(--green-dark)}.long-press.pressing:after{opacity:1;animation:hold-ring var(--hold, 3s) linear forwards}@property --hold-p{syntax: "<number>"; inherits: false; initial-value: 0;}@keyframes hold-ring{to{--hold-p: 1}}.today{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:var(--pad);position:relative}.today-hero{display:flex;flex-direction:column;align-items:center}.bubble{position:relative;display:flex;align-items:center;gap:.6rem;padding:.75rem 1.25rem;margin-bottom:.9rem;border-radius:1.25rem;background:#fff;box-shadow:var(--shadow-card);font-size:2rem;animation:rise-in .5s ease-out both}.bubble:after{content:"";position:absolute;left:50%;bottom:-.6rem;width:1.2rem;height:1.2rem;background:#fff;transform:translate(-50%) rotate(45deg);border-radius:.2rem}.bubble-text{font-size:1.25rem;font-weight:800;color:var(--ink)}.today-btn{min-height:5.25rem;width:min(100%,20rem);font-size:1.9rem}.today-skip{border:0;background:transparent;color:var(--ink-soft);font-size:1rem;text-decoration:underline;min-height:2.75rem}.today-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}.pill{display:inline-flex;align-items:center;gap:.4rem;min-height:max(44px,3.25rem);padding:0 1rem;border:0;border-radius:999px;background:#fff;box-shadow:0 .2rem #eadfca;font-family:var(--font-num);font-size:1.4rem}.pill .icon{width:1.7rem;height:1.7rem}.map-trails{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1rem var(--pad) 4rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem;scroll-behavior:smooth}.isle{width:min(100%,36rem);display:flex;flex-direction:column;align-items:center}.isle-banner{width:100%;display:flex;align-items:center;gap:.9rem;padding:.9rem 1.2rem;border-radius:var(--radius);background:radial-gradient(circle,rgba(255,255,255,.16) .18rem,transparent .2rem) 0 0 / 1.1rem 1.1rem,linear-gradient(135deg,var(--island),color-mix(in srgb,var(--island) 82%,#000));color:#fff;box-shadow:0 var(--depth) 0 var(--island-dark),var(--shadow-card)}.isle-emblem{width:3.5rem;height:3.5rem;flex:none;border-radius:50%;background:#ffffffeb;display:flex;align-items:center;justify-content:center;font-size:2rem;box-shadow:inset 0 -.2rem #00000014}.isle-text{min-width:0;flex:1}.isle-name{margin:0;font-size:1.45rem;font-weight:900;line-height:1.2;letter-spacing:.05em}.isle-desc{margin:0;font-size:.95rem;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.isle-stars{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .75rem;border-radius:999px;background:#ffffff40;font-family:var(--font-num);font-size:1.15rem;font-weight:700}.trail{position:relative;max-width:100%}.trail-line{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.trail-bg,.trail-done{fill:none;stroke-linecap:round}.trail-bg{stroke:#eadcc3;stroke-width:1.1;stroke-dasharray:.01 1.6}.trail-done{stroke:var(--island);stroke-width:.5;opacity:.55}.node{--size: 5.25rem;position:absolute;width:var(--size);height:var(--size);transform:translate(-50%,-50%);border:0;padding:0;background:transparent;display:flex;align-items:center;justify-content:center}.node-ring{position:absolute;inset:-.45rem;border-radius:50%;background:conic-gradient(var(--island) calc(var(--p, 0) * 1turn),#efe6d6 0);-webkit-mask:radial-gradient(circle,transparent 62%,#000 64%);mask:radial-gradient(circle,transparent 62%,#000 64%)}.node-face{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0,var(--island-soft) 70%);box-shadow:0 var(--depth) 0 var(--island-dark),inset 0 -.25rem #0000000d;display:flex;align-items:center;justify-content:center;transition:transform .08s}.node:active .node-face{transform:translateY(var(--depth));box-shadow:0 0 0 var(--island-dark)}.node-icon{font-size:2.4rem;line-height:1}.node.locked .node-face{background:#f2ede4;box-shadow:0 var(--depth) 0 #ddd3c3}.node.locked .node-ring{display:none}.node-lock{width:1.9rem;height:1.9rem;color:#c9c0b0}.node.done .node-face{background:radial-gradient(circle at 35% 30%,#fff8d9 0,#ffd966 75%);box-shadow:0 var(--depth) 0 var(--sun-dark)}.node.done .node-ring{background:var(--sun)}.node-crown{position:absolute;top:-1.4rem;width:2rem;height:2rem;filter:drop-shadow(0 .1rem 0 rgba(0,0,0,.1))}.node.today{--size: 6.25rem;z-index:2}.node.today .node-face{animation:glow 2.2s ease-in-out infinite;--edge: var(--island-dark)}.node-flag{position:absolute;top:-2.9rem;padding:.3rem .9rem;border-radius:.8rem;background:var(--island-dark);color:#fff;font-size:1.05rem;font-weight:900;letter-spacing:.1em;white-space:nowrap;animation:bounce 1.4s ease-in-out infinite}.node-flag:after{content:"";position:absolute;left:50%;bottom:-.4rem;border:.45rem solid transparent;border-top-color:var(--island-dark);border-bottom:0;transform:translate(-50%)}.node-label{position:absolute;top:calc(100% + .7rem);left:50%;transform:translate(-50%);white-space:nowrap;font-size:.85rem;font-weight:700;color:var(--ink-soft);pointer-events:none}.node.locked .node-label{color:var(--ink-faint)}.map-end{font-size:3rem;opacity:.8}@media(orientation:portrait),(max-width:760px){.map{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.today{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:.75rem 1rem;padding:.75rem 4.5rem .75rem var(--pad);background:#ffffff8c;border-bottom:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.today-hero{flex-direction:row-reverse;gap:.6rem}.today-hero .mascot.l{width:4.5rem}.bubble{margin:0;font-size:1.5rem;padding:.5rem .9rem}.bubble:after{left:auto;right:-.45rem;bottom:50%;transform:translateY(50%) rotate(45deg)}.today-btn{width:auto;min-height:4.25rem;font-size:1.5rem}}@media(orientation:landscape)and (max-height:500px){.map{grid-template-columns:17rem 1fr}.today{gap:.6rem;padding:.5rem}.bubble{margin-bottom:.5rem;padding:.4rem .8rem}.pill{padding:0 .7rem}.today-hero .mascot.l{width:6rem}.today-btn{min-height:4rem;font-size:1.4rem}}.voice-banner{width:min(100%,36rem);display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius-s);background:#fff3d6;color:#7a4d00;font-size:1rem;user-select:text;-webkit-user-select:text}.voice-banner-close{margin-left:auto;flex:none;width:2.75rem;height:2.75rem;border:0;border-radius:50%;background:#0000000f}.stickers{height:100%;display:flex;flex-direction:column;padding:var(--pad);gap:1rem}.stickers-top{display:flex;align-items:center;gap:1.25rem}.stickers-title{display:inline-flex;align-items:center;gap:.6rem;font-size:2.2rem;font-weight:900;font-family:var(--font-num)}.stickers-title .icon{width:2.6rem;height:2.6rem}.sticker-grid{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:1.1rem;align-content:start;padding:1.25rem;border-radius:var(--radius);background:linear-gradient(90deg,rgba(0,0,0,.03) 1px,transparent 1px) 0 0 / 1.5rem 1.5rem,linear-gradient(rgba(0,0,0,.03) 1px,transparent 1px) 0 0 / 1.5rem 1.5rem,#fffdf8;box-shadow:var(--shadow-card)}.sticker{aspect-ratio:1;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3.4rem}.sticker.have{border:.35rem solid #fff;background:radial-gradient(circle at 35% 30%,#fff,#fff2d6);box-shadow:0 .3rem .6rem #0000001f;animation:pop-in .35s ease-out both}.sticker.have:nth-child(3n){transform:rotate(-6deg)}.sticker.have:nth-child(3n+1){transform:rotate(5deg)}.sticker.have:active{transform:rotate(-10deg) scale(1.12)}.sticker.empty{border:.2rem dashed #e6dccb;color:#e6dccb;font-size:2.2rem;font-weight:900}.lesson{height:100%;display:flex;flex-direction:column;padding:.75rem var(--pad) var(--pad);gap:.75rem;background:radial-gradient(circle at 0 0,color-mix(in srgb,var(--island) 22%,transparent) 0,transparent 26rem),radial-gradient(circle at 100% 100%,color-mix(in srgb,var(--island) 14%,transparent) 0,transparent 30rem)}.lesson-top{display:flex;align-items:center;gap:1rem}.lesson-top .icon-btn{width:max(44px,3.75rem);min-width:max(44px,3.75rem);min-height:max(44px,3.75rem)}.lesson-top .icon-btn .icon{width:1.8rem;height:1.8rem;color:var(--ink-soft)}.lesson-skill{display:flex;align-items:center;gap:.6rem;padding:.35rem 1rem .35rem .4rem;border-radius:999px;background:#fffc;box-shadow:0 .15rem #0000000d}.lesson-skill-icon{width:2.75rem;height:2.75rem;border-radius:50%;background:var(--island-soft);display:flex;align-items:center;justify-content:center;font-size:1.6rem}.lesson-skill-text{display:flex;flex-direction:column;line-height:1.2}.lesson-skill-text b{font-size:1rem}.lesson-skill-text small{font-size:.8rem;color:var(--ink-soft)}.progress{flex:1;display:flex;align-items:center;gap:.35rem;min-width:0}.seg{flex:1;height:.9rem;border-radius:999px;background:#00000012;transition:background .3s}.seg.done{background:linear-gradient(180deg,color-mix(in srgb,var(--island) 80%,#fff),var(--island));box-shadow:inset 0 -.15rem #0000001a}.seg.current{background:color-mix(in srgb,var(--island) 30%,#fff);animation:pulse 1.6s ease-in-out infinite}.progress-goal{font-size:1.6rem;margin-left:.2rem}.lesson-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(19rem,1fr);gap:1rem}.lesson-scene,.lesson-answer{min-height:0;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:clamp(.75rem,2cqi,1.5rem);display:flex;flex-direction:column;align-items:center;gap:1rem;overflow:auto}.lesson-scene{container-type:inline-size;justify-content:safe center;border:.2rem solid color-mix(in srgb,var(--island) 25%,#fff)}.lesson-answer{justify-content:space-between;background:color-mix(in srgb,var(--island) 7%,#fff)}.lesson-tools{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.lesson-tools .big-btn{font-size:1.2rem;min-height:max(44px,3.75rem);padding:0 1.25rem}.lesson-tools .icon{color:var(--island-dark)}.support-panel{width:100%;container-type:inline-size;border-top:.2rem dashed var(--line);padding-top:.9rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;animation:rise-in .4s ease-out}.support-title{align-self:flex-start;padding:.2rem .8rem;border-radius:999px;background:#fff3d6;font-size:1rem;font-weight:800;color:#8a5a00}@media(orientation:portrait){.lesson-body{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto}.lesson-answer{gap:.75rem}}@media(max-width:560px){.lesson-skill-text{display:none}.lesson-skill{padding:.3rem}}.numpad{display:flex;flex-direction:column;gap:.6rem;width:100%;max-width:30rem}.numpad-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem}.numpad-key,.choice-key{--face: #fff;--edge: color-mix(in srgb, var(--island) 45%, #c9bfae);min-height:4.5rem;border:.15rem solid color-mix(in srgb,var(--island) 30%,#fff);border-radius:1.1rem;background:var(--face);box-shadow:0 .3rem 0 var(--edge);font-family:var(--font-num);font-size:2.2rem;font-weight:800;color:var(--ink);transition:transform .06s,box-shadow .06s}.numpad-key:active:not(:disabled),.choice-key:active:not(:disabled){transform:translateY(.3rem);box-shadow:0 0 0 var(--edge);background:var(--island-soft)}.numpad-key:disabled,.choice-key:disabled{opacity:.5}.choicepad{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.9rem;width:100%;max-width:32rem}.choice-key{min-height:6rem;font-size:2rem;padding:.5rem .75rem;display:flex;align-items:center;justify-content:center}.choice-key.long{font-size:1.6rem;letter-spacing:.04em}.choice-thing{width:4rem;height:4rem}.build-answer{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem}.build-hint{margin:0;font-size:2.2rem;letter-spacing:.2em;opacity:.7}.build-done{min-height:5.5rem;padding:0 2.5rem;font-size:2rem}.strategy{background:var(--card);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-card);display:flex;flex-direction:column;align-items:center;gap:1.25rem;max-width:min(58rem,100%);animation:pop-in .3s ease-out}.strategy-options{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem}.strategy-key{width:8.5rem;min-height:8.5rem;border:.3rem solid transparent;border-radius:1.5rem;background:#f7f3ea;box-shadow:0 .3rem #e6dccb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;transition:transform .1s,border-color .1s}.strategy-key.chosen{border-color:var(--green);background:#eaf7e6;transform:scale(1.06)}.strategy-icon{font-size:3.2rem;line-height:1}.strategy-label{font-size:1.05rem;font-weight:800;color:var(--ink-soft)}.strategy-actions{display:flex;gap:1.5rem}.strategy-skip,.strategy-confirm{width:5.5rem;height:5.5rem;border:0;border-radius:50%;display:flex;align-items:center;justify-content:center}.strategy-skip{background:#f1ede4;color:var(--ink-soft);box-shadow:0 .3rem #ddd3c1}.strategy-confirm{background:var(--green);color:#fff;box-shadow:0 .3rem 0 var(--green-dark)}.strategy-skip .icon,.strategy-confirm .icon{width:2.6rem;height:2.6rem}.strategy-confirm:disabled{opacity:.35}.crash{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;text-align:center;padding:1.5rem}@media(max-height:500px){.lesson{padding-top:.4rem;gap:.4rem}.lesson-scene,.lesson-answer{padding:.6rem;gap:.5rem}.numpad-key,.choice-key{min-height:max(44px,3.6rem)}.choice-key{min-height:max(52px,4.5rem)}}.overlay{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:var(--pad);background:#fff8eceb;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .25s ease-out;overflow:auto}.overlay-big{font-size:clamp(5rem,16vmin,9rem);line-height:1;animation:pop-in .5s cubic-bezier(.2,1.6,.4,1) both}.strategy-overlay{flex-direction:row;flex-wrap:wrap}.demo{background:#3b3a4a59}.demo-card{width:min(52rem,100%);max-height:100%;display:flex;flex-direction:column;gap:.9rem;padding:1.25rem;border-radius:var(--radius);background:#fff;box-shadow:0 1.5rem 3rem #0003;animation:rise-in .35s ease-out}.demo-head{display:flex;align-items:center;gap:.75rem}.demo-title{font-size:1.3rem;font-weight:900}.demo-steps{margin-left:auto;display:flex;gap:.4rem}.demo-steps i{width:.9rem;height:.9rem;border-radius:50%;background:#eee6d8}.demo-steps i.done{background:var(--green)}.demo-steps i.cur{background:var(--sun);transform:scale(1.3)}.demo-board{container-type:inline-size;min-height:16rem;display:flex;align-items:center;justify-content:center;padding:1.25rem;border-radius:1rem;background:#fbf8f1;border:.5rem solid #c89b62;box-shadow:inset 0 0 0 .2rem #b5854c,inset 0 .4rem 1rem #0000000f;overflow:auto}.demo-line{margin:0;min-height:2.8rem;text-align:center;font-size:1.35rem;font-weight:700;color:var(--ink);animation:fade-in .4s ease-out}.demo-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.demo-actions .big-btn{font-size:1.35rem;min-height:max(44px,4rem)}.celebrate{background:#fff7d6f2;overflow:hidden}.confetti{position:absolute;inset:0;pointer-events:none}.confetti span{position:absolute;top:-4rem;font-size:3rem;animation:fall 2.4s ease-in forwards}.confetti span:nth-child(1){left:8%}.confetti span:nth-child(2){left:24%}.confetti span:nth-child(3){left:42%}.confetti span:nth-child(4){left:60%}.confetti span:nth-child(5){left:76%}.confetti span:nth-child(6){left:90%}@keyframes fall{to{transform:translateY(110vh) rotate(540deg);opacity:.6}}.rest{background:linear-gradient(180deg,#d9f0ff,#f2fbe9)}.rest-sky{font-size:4.5rem;width:100%;max-width:44rem;position:relative}.rest-bird{position:absolute;font-size:2.75rem;animation:fly 6s linear infinite}@keyframes fly{0%{left:0;transform:translateY(0)}50%{transform:translateY(-1.25rem)}to{left:90%;transform:translateY(0)}}.rest-tree{font-size:clamp(6rem,18vmin,9.5rem);line-height:1;transition:transform 1s ease-out;transform-origin:50% 100%}.rest-caption{font-size:3rem;margin:0}.end{background:#f0fae6f5}.sticker-gift{width:10.5rem;height:10.5rem;border-radius:50%;border:.45rem solid #fff;background:radial-gradient(circle at 35% 30%,#fff,#fff2d6);box-shadow:0 .6rem 1.4rem #00000026;display:flex;align-items:center;justify-content:center;animation:pop-in .6s .3s cubic-bezier(.2,1.6,.4,1) both}.sticker-new{font-size:6.5rem}.placement-stars{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;max-width:30rem}.placement-star .icon{width:3rem;height:3rem}.placement-star{animation:pop-in .4s cubic-bezier(.2,1.6,.4,1) both}.placement-star:nth-child(2){animation-delay:.1s}.placement-star:nth-child(3){animation-delay:.2s}.placement-star:nth-child(4){animation-delay:.3s}.placement-star:nth-child(n+5){animation-delay:.4s}.placement-start{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.4rem;border-radius:999px;background:#fff;box-shadow:var(--shadow-card);font-size:1.4rem;font-weight:800}.placement-start-icon{font-size:2rem}.overlay-icon{width:1em;height:1em;filter:drop-shadow(0 .3rem 0 rgba(0,0,0,.08))}@media(max-height:500px){.overlay .mascot.l{width:6rem}.demo-board{min-height:10rem}}.scene{--obj: clamp(max(44px, 2.6rem), 7.5cqi, 4.4rem);--cell: clamp(max(40px, 2.4rem), 9.5cqi, 4.8rem);width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;border-radius:var(--radius-s);padding:.5rem}.scene .row{flex-wrap:wrap;justify-content:center}.thing{width:100%;height:100%;display:block;overflow:visible}.thing-emoji{display:flex;align-items:center;justify-content:center;font-size:calc(var(--obj) * .72);line-height:1}.joiner{font-family:var(--font-num);font-size:clamp(2rem,7cqi,3.2rem);font-weight:900;color:var(--ink-faint)}.objects{display:flex;flex-direction:column;align-items:center}.obj-grid{display:grid;grid-template-columns:repeat(var(--cols, 5),var(--obj));gap:.5rem;padding:.6rem;border-radius:1.2rem;background:#00000006}.obj-grid.arriving{animation:slide-in .7s ease-out both}.obj{position:relative;width:var(--obj);height:var(--obj);border:0;border-radius:.9rem;background:transparent;display:flex;align-items:center;justify-content:center;padding:.25rem}button.obj{background:#fff;box-shadow:0 .15rem #0000000f}.obj-emoji{width:100%;height:100%}.obj.crossed .obj-emoji{opacity:.25;filter:grayscale(1)}.obj-cross{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--red);font-size:calc(var(--obj) * .75);font-weight:900;animation:pop-in .25s ease-out}.obj .badge{top:-.5rem;right:-.5rem;background:var(--blue);animation:pop-in .2s ease-out}.hidden-box{position:relative;width:calc(var(--obj) * 2.3);height:calc(var(--obj) * 2.1);border:0;border-radius:.6rem .6rem 1rem 1rem;background:linear-gradient(180deg,#e9c48f,#d6a566);box-shadow:inset 0 -.4rem #00000014,0 .3rem #b98546;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:.8rem}.box-lid{position:absolute;top:-.8rem;left:-.4rem;right:-.4rem;height:1.3rem;border-radius:.5rem;background:#c99352;box-shadow:0 .2rem #0000001a}.box-label{font-family:var(--font-num);font-size:calc(var(--obj) * .8);font-weight:900;color:#fff;text-shadow:0 .15rem 0 rgba(0,0,0,.15)}.dots{--dot: clamp(2rem, 7cqi, 3.6rem);display:grid;gap:.6rem;padding:1rem;border-radius:1.25rem;background:#fff;border:.25rem solid var(--line)}.dots.dice{grid-template-columns:repeat(3,var(--dot));grid-template-rows:repeat(3,var(--dot));border-radius:1.75rem;box-shadow:0 .4rem #e6dccb}.dots.frame{grid-template-columns:repeat(5,var(--dot));grid-template-rows:repeat(2,var(--dot))}.dots.scatter{--dot: clamp(1.8rem, 6cqi, 3rem);grid-template-columns:repeat(5,var(--dot));grid-template-rows:repeat(4,var(--dot));border-style:dashed}.dot-cell{border-radius:50%}.dots.frame .dot-cell{border:2px dashed var(--line)}.dot-cell.on{background:radial-gradient(circle at 35% 30%,#ffb3a8,var(--coral) 60%,#e56a5a);box-shadow:0 .15rem #0000001f;border:0;animation:pop-in .2s ease-out both}.dots-cover{width:min(20rem,80cqi);aspect-ratio:3 / 2;border:.3rem dashed var(--line);border-radius:1.5rem;background:#fbf7ef;font-size:2.2rem;font-weight:900}.frames{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.25rem}.tenframe{display:grid;grid-template-columns:repeat(5,var(--cell));grid-template-rows:repeat(2,var(--cell));padding:.35rem;gap:.3rem;border-radius:.9rem;background:linear-gradient(180deg,#d9a766,#c08a4a);box-shadow:0 .35rem #9b6b33,0 .6rem 1rem #0000001f;transition:box-shadow .2s}.tenframe.small{--cell: clamp(1.6rem, 4.5cqi, 2.6rem)}.frames.pair{--cell: clamp(max(44px, 1.9rem), 5.4cqi, 3.6rem)}.tenframe.target{box-shadow:0 .35rem #9b6b33,0 0 0 .3rem #ffc93c99}.tf-cell{border:0;border-radius:.4rem;background:#fffaf0;box-shadow:inset 0 .2rem #00000014;padding:0;display:flex;align-items:center;justify-content:center}.counter{width:80%;height:80%;border-radius:50%;position:relative;box-shadow:0 .15rem #0003,inset 0 -.2rem #00000026;animation:pop-in .22s ease-out both}.counter:before{content:"";position:absolute;inset:18%;border-radius:50%;border:.12rem solid rgba(255,255,255,.35)}.counter.red{background:radial-gradient(circle at 35% 30%,#ff9f9a,var(--red) 55%,#d64845)}.counter.blue{background:radial-gradient(circle at 35% 30%,#9cc4ff,var(--blue) 55%,#3a6fc4)}.counter.crossed{opacity:.35}.counter.crossed:after{content:"\2715";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ink);font-weight:900;font-size:calc(var(--cell) * .6)}.counter.marked{outline:.25rem solid var(--sun);outline-offset:.12rem}.grab{cursor:grab}.draggable{transition:transform .18s ease-out;animation:none}.dragging{cursor:grabbing;filter:drop-shadow(0 .6rem .6rem rgba(0,0,0,.25));animation:none}.split-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem 1.5rem}.numberline{width:100%;display:flex;flex-direction:column;align-items:center}.numberline svg{width:100%;max-width:48rem;height:auto;overflow:visible}.nl-axis{stroke:var(--ink);stroke-width:4;stroke-linecap:round}.nl-tick{stroke:var(--ink);stroke-width:3}.nl-num{font-family:var(--font-num);font-size:26px;font-weight:700;fill:var(--ink)}.nl-num.start{fill:var(--green-dark);font-size:32px}.nl-hop{fill:none;stroke:#e6dccb;stroke-width:4;stroke-dasharray:8 8}.nl-hop.done{stroke:var(--green);stroke-dasharray:none}.nl-frog{transition:transform .45s cubic-bezier(.3,.7,.4,1)}.nl-frog-jump{animation:frog-jump .45s ease-out}@keyframes frog-jump{0%{transform:translateY(0)}45%{transform:translateY(-36px)}to{transform:translateY(0)}}.bond{width:min(100%,26rem);height:auto}.bond.small{width:min(100%,12rem)}.bond-line{stroke:#c9c0b0;stroke-width:6;stroke-linecap:round}.bond-circle{fill:#fff;stroke:var(--island);stroke-width:5}.bond-circle.whole{fill:var(--island-soft)}.bond-circle.unknown{stroke-dasharray:10 8;fill:#fff9e6;stroke:var(--sun)}.bond-num{font-family:var(--font-num);font-size:44px;font-weight:800;fill:var(--ink)}.bond-num-small{font-family:var(--font-num);font-size:18px;fill:var(--ink-soft)}.compare-num{font-family:var(--font-num);font-size:clamp(4rem,16cqi,7rem);font-weight:900;line-height:1}.compare-aligned{--c: clamp(2rem, 6.5cqi, 3.6rem);display:grid;gap:.6rem .4rem;padding:.6rem;border-radius:1rem;background:#00000006}.compare-cell{width:var(--c);height:var(--c);display:flex;align-items:center;justify-content:center}.compare-spread{display:flex;flex-direction:column;gap:1rem;width:100%}.compare-row{display:flex;gap:.4rem;padding:.5rem .75rem;border-radius:999px;background:#00000006}.compare-row.wide{justify-content:space-between}.compare-thing{width:clamp(2rem,6.5cqi,3.4rem);height:clamp(2rem,6.5cqi,3.4rem)}.equation{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1rem;font-family:var(--font-num);font-weight:900}.eq-num{font-size:clamp(3.2rem,12cqi,5.5rem);line-height:1}.eq-op{font-size:clamp(2.4rem,9cqi,4rem);color:var(--ink-faint)}.eq-box{width:clamp(4rem,13cqi,6rem);height:clamp(4.4rem,14cqi,6.5rem);border:.3rem dashed var(--sun);border-radius:1.1rem;background:#fff9e6;display:flex;align-items:center;justify-content:center;font-size:clamp(2.6rem,9cqi,3.8rem);color:var(--sun-dark);animation:pulse 2s ease-in-out infinite}.house{--w: min(16rem, 60cqi);display:flex;flex-direction:column;align-items:center;font-family:var(--font-num);font-weight:900}.roof{width:calc(var(--w) * 1.15);height:calc(var(--w) * .45);clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(180deg,#ff9e8f,var(--coral));color:#fff;display:flex;align-items:flex-end;justify-content:center;font-size:calc(var(--w) * .2);padding-bottom:.2rem}.rooms{width:var(--w);display:grid;grid-template-columns:1fr 1fr;border:.3rem solid var(--ink);border-top:0;border-radius:0 0 .6rem .6rem;background:#fff}.rooms span{height:calc(var(--w) * .4);display:flex;align-items:center;justify-content:center;font-size:calc(var(--w) * .2)}.rooms span+span{border-left:.3rem solid var(--ink)}.bigtext{text-align:center}.bigtext-main{font-family:var(--font-num);font-size:clamp(3rem,12cqi,6rem);font-weight:900;line-height:1.1}.bigtext-sub{font-size:clamp(1.3rem,4cqi,2rem);color:var(--ink-soft)}.split-text{font-family:var(--font-num);font-size:clamp(1.8rem,6cqi,2.6rem);font-weight:900;color:var(--green-dark)}.build{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.5rem}.build-tools{display:flex;flex-direction:column;align-items:center;gap:.5rem}.tray{position:relative;cursor:grab;width:calc(var(--cell) * 2);height:calc(var(--cell) * 2);border-radius:1.2rem;background:linear-gradient(180deg,#fff,#f3ece0);box-shadow:0 .3rem #e1d6c4,inset 0 0 0 .2rem #efe6d6;display:flex;align-items:center;justify-content:center}.tray .counter{width:calc(var(--cell) * .95);height:calc(var(--cell) * .95)}.tray.hint:after{content:"\1f446";position:absolute;bottom:-1.2rem;right:-.8rem;font-size:calc(var(--cell) * .9);pointer-events:none;animation:drag-hint 1.8s ease-in-out infinite}@keyframes drag-hint{0%,15%{transform:translate(0);opacity:0}30%{opacity:1}75%{transform:translate(calc(var(--cell) * -3),calc(var(--cell) * -.5));opacity:1}to{transform:translate(calc(var(--cell) * -3),calc(var(--cell) * -.5));opacity:0}}.tray-under{position:absolute;transform:translate(.35rem,.35rem);animation:none}.tray-under.two{transform:translate(-.35rem,.2rem)}.split{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%}.plates{display:flex;flex-wrap:wrap;justify-content:center;gap:1.25rem}.plate{--t: clamp(max(44px, 2.2rem), 6cqi, 3.4rem);min-width:calc(var(--t) * 3.6);min-height:calc(var(--t) * 2.4);padding:.7rem 1rem;border-radius:999px;background:radial-gradient(ellipse at 50% 40%,#fff 55%,#eee6d8);box-shadow:0 .3rem #ddd2bf,0 .6rem 1rem #00000014;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.3rem;max-width:calc(var(--t) * 6.5)}.plate.big{max-width:calc(var(--t) * 8);min-width:calc(var(--t) * 5)}.plate.target.waiting{box-shadow:0 .3rem #ddd2bf,0 0 0 .3rem #ffc93c99}.plate-thing{width:var(--t);height:var(--t)}.plate-thing.arrived{animation:pop-in .25s ease-out both}.drag-thing{display:inline-flex;cursor:grab;transition:transform .18s ease-out}.plate-empty{font-size:2rem;color:var(--green);font-weight:900}.pattern{--pc: clamp(3rem, 10cqi, 5.5rem);display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem}.pattern-card{min-width:var(--pc);min-height:var(--pc);padding:.4rem;border-radius:1rem;background:#fff;box-shadow:0 .25rem #e6dccb;display:flex;align-items:center;justify-content:center;animation:rise-in .4s ease-out both}.pattern-card .tenframe.small{--cell: clamp(.9rem, 2.4cqi, 1.5rem)}.pattern-card.unknown{border:.25rem dashed var(--sun);background:#fff9e6;box-shadow:none}.pattern-thing{width:calc(var(--pc) * .8);height:calc(var(--pc) * .8)}.pattern-num{font-family:var(--font-num);font-size:calc(var(--pc) * .6);font-weight:900}.pattern-q{font-family:var(--font-num);font-size:calc(var(--pc) * .6);font-weight:900;color:var(--sun-dark);animation:pulse 1.6s ease-in-out infinite}html:has(.parent){font-size:clamp(14px,12.5px + .35vw,17px)}.parent{--p-bg: #f4f6f8;--p-surface: #fff;--p-subtle: #f8fafb;--p-border: #e3e8ee;--p-border-strong: #cfd7e1;--p-ink: #1d2433;--p-ink-2: #4a5568;--p-ink-3: #6b7686;--p-brand: #2b8540;--p-brand-hover: #236d34;--p-brand-soft: #e9f5ec;--p-brand-ink: #1f6b33;--p-amber-soft: #fff6e5;--p-amber-ink: #8a5a00;--p-blue-soft: #eaf2fd;--p-blue-ink: #245ea8;--p-red-soft: #fdeeed;--p-red-ink: #a8322a;--p-radius: .875rem;--p-radius-s: .5rem;--p-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);--p-touch: max(44px, 2.75rem);--p-max: 72rem;--p-gutter: clamp(1rem, 3vw, 2rem);height:100%;display:flex;flex-direction:column;background:var(--p-bg);color:var(--p-ink);font-size:1rem;line-height:1.6;font-variant-numeric:tabular-nums;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.parent h1,.parent h2,.parent h3,.parent h4{color:var(--p-ink);line-height:1.35;letter-spacing:.01em}.parent .muted{color:var(--p-ink-3)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.print-only{display:none}.parent-top{display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand exit" "tabs tabs";align-items:center;column-gap:1.5rem;padding:.5rem max(var(--p-gutter),(100% - var(--p-max)) / 2) 0;background:var(--p-surface);border-bottom:1px solid var(--p-border)}.parent-bar{display:contents}.parent-title{grid-area:brand;margin:0;display:flex;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:700}.brand-mark{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:.5rem;background:var(--p-brand-soft);font-size:1.125rem}.exit-btn{grid-area:exit}.tabs{grid-area:tabs;align-self:end;display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;margin:0 calc(var(--p-gutter) * -1);padding:0 var(--p-gutter)}.tabs::-webkit-scrollbar{display:none}.tab{flex:none;scroll-snap-align:start;min-height:var(--p-touch);padding:0 1rem;border:0;border-bottom:3px solid transparent;background:transparent;font-size:.9375rem;font-weight:600;color:var(--p-ink-3);white-space:nowrap;transition:color .15s,border-color .15s}.tab:hover{color:var(--p-ink)}.tab.active{color:var(--p-brand-ink);border-bottom-color:var(--p-brand)}@media(min-width:56rem){.parent-top{grid-template-columns:auto 1fr auto;grid-template-areas:"brand tabs exit";padding-top:0}.tabs{margin:0;padding:0;align-self:stretch;align-items:stretch}.tab{min-height:3.75rem}}.parent-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1.5rem var(--p-gutter) 3rem}.report,.sessions,.guide,.settings{max-width:var(--p-max);margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}.p-card{background:var(--p-surface);border:1px solid var(--p-border);border-radius:var(--p-radius);box-shadow:var(--p-shadow);padding:clamp(1rem,2.4vw,1.5rem);margin:0;min-width:0}.p-card h2{margin:0 0 .75rem;font-size:1.125rem;font-weight:700}.p-card h3{margin:1.25rem 0 .5rem;font-size:1rem;font-weight:700}.p-card p{margin:.375rem 0}.card-head{margin-bottom:1rem}.card-head h2{margin:0}.card-sub{margin:.25rem 0 0!important;color:var(--p-ink-3);font-size:.875rem;line-height:1.55}.card-head.with-action{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem}.section-head h2{margin:0;font-size:1.5rem}.section-head p{margin:.25rem 0 0}.p-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-height:var(--p-touch);padding:0 1.125rem;border-radius:.625rem;border:1px solid transparent;font-size:.9375rem;font-weight:600;line-height:1.2;text-align:center;transition:background .15s,border-color .15s,color .15s}.p-btn.small{padding:0 .875rem;font-size:.875rem}.p-btn:disabled{opacity:.45}.p-btn.primary{background:var(--p-brand);color:#fff}.p-btn.primary:hover:not(:disabled){background:var(--p-brand-hover)}.p-btn.soft{background:var(--p-brand-soft);color:var(--p-brand-ink)}.p-btn.soft:hover{background:#dcefe1}.p-btn.ghost{background:var(--p-surface);border-color:var(--p-border-strong);color:var(--p-ink-2)}.p-btn.ghost:hover{background:var(--p-subtle)}.p-btn.danger{background:#c9392f;color:#fff}.p-input{min-height:var(--p-touch);padding:0 .875rem;border:1px solid var(--p-border-strong);border-radius:.625rem;font:inherit;background:#fff;color:var(--p-ink)}.p-input:focus{border-color:var(--p-brand);outline:3px solid var(--p-brand-soft)}.form-error,.form-ok{border-radius:var(--p-radius-s);padding:.5rem .75rem;font-size:.9375rem}.form-error{color:var(--p-red-ink);background:var(--p-red-soft)}.form-ok{color:var(--p-brand-ink);background:var(--p-brand-soft)}.parent .warn{padding:.5rem .75rem;border-radius:var(--p-radius-s);color:var(--p-amber-ink);background:var(--p-amber-soft);border-color:#f3dca8}.confirm{margin-top:.75rem;padding:.875rem 1rem;border-radius:.75rem;background:var(--p-amber-soft);border:1px solid #f3dca8}.gate{align-items:center;justify-content:center;padding:1rem}.gate-card{background:#fff;border:1px solid var(--p-border);border-radius:1.25rem;padding:2rem;width:min(27.5rem,100%);display:flex;flex-direction:column;gap:.875rem;box-shadow:0 12px 32px #10182814}.gate-card h1{margin:0;font-size:1.5rem}.gate-question{font-size:1.875rem;font-weight:700}.gate-input{min-height:3.75rem;font-size:1.75rem;text-align:center;border:2px solid var(--p-border-strong);border-radius:.875rem}.gate-input:focus{border-color:var(--p-brand);outline:3px solid var(--p-brand-soft)}.empty-state{text-align:center;padding:2.5rem 1.25rem}.empty-state p{max-width:34rem;margin:.5rem auto}.empty-icon{display:inline-grid;place-items:center;width:3.5rem;height:3.5rem;margin-bottom:.75rem;border-radius:1rem;background:var(--p-brand-soft);font-size:1.75rem}.report-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem 1.5rem}.report-title h2{margin:0;font-size:clamp(1.375rem,1.1rem + 1vw,1.75rem);font-weight:750}.report-title p{margin:.25rem 0 0;font-size:.9375rem}.eyebrow{margin:0 0 .25rem!important;font-size:.8125rem;font-weight:700;color:var(--p-brand-ink);letter-spacing:.08em}.report-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;max-width:26rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(9rem,42%),1fr));gap:.75rem}.stat{background:var(--p-surface);border:1px solid var(--p-border);border-radius:var(--p-radius);box-shadow:var(--p-shadow);padding:.875rem 1rem}.stat-label{color:var(--p-ink-3);font-size:.8125rem;font-weight:600}.stat-value{margin-top:.125rem;font-size:1.75rem;font-weight:750;line-height:1.2;color:var(--p-ink)}.stat-value small{font-size:.875rem;font-weight:600;margin-left:.25rem;color:var(--p-ink-3)}.summary-card{border-left:4px solid var(--p-brand)}.summary-text{font-size:1.0625rem;line-height:1.85;color:var(--p-ink-2)}.ability-grid{display:grid;gap:1.5rem;align-items:center}.radar-wrap{max-width:30rem;margin:0 auto;width:100%}.radar{width:100%;height:auto;display:block}.radar-ring,.radar-axis{fill:none;stroke:var(--p-border);stroke-width:1}.radar-ring.outer{stroke:var(--p-border-strong)}.radar-area{fill:#2b854029;stroke:var(--p-brand);stroke-width:2;stroke-linejoin:round}.radar-dot{stroke:#fff;stroke-width:2}.radar-label{font-size:14px;font-weight:700;fill:var(--p-ink)}.radar-score{font-size:13px;font-weight:700}.radar-ring-label{font-size:10px;fill:var(--p-ink-3)}.dim-list{list-style:none;margin:0;padding:0;display:grid;gap:.875rem}.dim-head,.dim-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.dim-name{display:inline-flex;align-items:center;gap:.5rem;font-weight:650}.dim-dot{width:.625rem;height:.625rem;border-radius:50%;background:var(--dim, var(--p-brand));flex:none}.dim-value{font-weight:750}.meter{height:.5rem;margin:.375rem 0;border-radius:999px;background:#edf0f4;overflow:hidden}.meter-fill{display:block;height:100%;border-radius:inherit;background:var(--dim, var(--p-brand))}.dim-meta{font-size:.8125rem}.level-badge{display:inline-block;padding:.0625rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap;background:#eef1f4;color:var(--p-ink-3)}.level-concrete{background:var(--p-amber-soft);color:var(--p-amber-ink)}.level-pictorial{background:var(--p-blue-soft);color:var(--p-blue-ink)}.level-abstract{background:var(--p-brand-soft);color:var(--p-brand-ink)}.level-mastered{background:var(--p-brand);color:#fff}.scoring-note{margin:1.25rem 0 0!important;padding:.75rem 1rem;border-radius:var(--p-radius-s);background:var(--p-subtle);border:1px dashed var(--p-border-strong);font-size:.8125rem;color:var(--p-ink-2);line-height:1.7}@media(min-width:48rem){.ability-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:2rem}}.goal-list{display:grid;gap:.875rem}.goal{border:1px solid var(--p-border);border-top:3px solid var(--dim, var(--p-brand));border-radius:.75rem;padding:.875rem 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}.goal-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.goal-head h3{margin:0;display:inline-flex;align-items:center;gap:.5rem;font-size:1.0625rem}.goal-facts{margin:0;display:grid;gap:.625rem}.goal-facts dt{font-size:.75rem;font-weight:700;color:var(--p-ink-3);letter-spacing:.04em}.goal-facts dd{margin:.125rem 0 0;font-size:.9375rem;color:var(--p-ink-2)}.goal-facts cite{display:block;margin-top:.125rem;font-style:normal;font-size:.75rem;color:var(--p-ink-3)}.goal-next{margin-top:auto;padding:.75rem;border-radius:var(--p-radius-s);background:var(--p-brand-soft);font-size:.9375rem}.goal-next p{margin:0 0 .5rem}.goal-next p:only-child{margin:0}.goal-next .p-btn{background:#fff}@media(min-width:60rem){.goal-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.report-pair{display:grid;gap:1.25rem}@media(min-width:64rem){.report-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}.chart{margin:0}.chart svg{width:100%;height:auto}.chart figcaption{margin-top:.5rem;font-size:.8125rem}.chart-axis{stroke:var(--p-border-strong);stroke-width:1.5}.chart-bar{fill:var(--p-brand)}.chart-label{font-size:12px;fill:var(--p-ink-3);text-anchor:middle}.chart-value{font-size:12px;font-weight:700;fill:var(--p-ink-2);text-anchor:middle}.legend{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.875rem;font-size:.8125rem;color:var(--p-ink-3)}.legend-item{display:inline-flex;align-items:center;gap:.375rem}.legend-item i{width:.75rem;height:.75rem;border-radius:.1875rem;display:inline-block}.strategy-rows{display:flex;flex-direction:column;gap:.625rem}.strategy-row{display:grid;grid-template-columns:4.5rem 1fr 3.25rem;align-items:center;gap:.75rem}.strategy-week,.strategy-total{font-size:.8125rem;color:var(--p-ink-3)}.strategy-total{text-align:right}.stack{display:flex;height:1.5rem;border-radius:.375rem;overflow:hidden;background:#edf0f4}.stack-seg{min-width:2px}.stack-empty{font-size:.75rem;color:var(--p-ink-3);padding-left:.625rem;line-height:1.5rem}.insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(17rem,100%),1fr));gap:.875rem}.insight{border-radius:.75rem;padding:.875rem 1rem;background:var(--p-amber-soft);border:1px solid #f3dca8;display:flex;flex-direction:column;gap:.25rem}.insight h3{margin:0;font-size:1rem}.insight-detail{color:var(--p-amber-ink);font-size:.875rem}.insight .p-btn{align-self:flex-start;margin-top:.5rem;background:#fff}.placement-start{font-size:1rem}.placement-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(15rem,100%),1fr));gap:.5rem}.placement-list li{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:var(--p-radius-s);font-size:.9375rem}.placement-list .passed{background:var(--p-brand-soft)}.placement-list .failed{background:var(--p-subtle);border:1px solid var(--p-border)}.placement-name{flex:1;min-width:0}.placement-score{font-weight:700;color:var(--p-ink-2)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.25rem}.skill-table{width:100%;border-collapse:collapse;font-size:.9375rem}.skill-table th,.skill-table td{text-align:left;padding:.625rem .75rem;border-bottom:1px solid var(--p-border);white-space:nowrap}.skill-table thead th{font-size:.8125rem;color:var(--p-ink-3);font-weight:700;background:var(--p-subtle)}.island-row th{padding-top:1rem;border-bottom-color:transparent}.island-tag{display:inline-flex;align-items:center;gap:.375rem;font-size:.8125rem;font-weight:700;color:var(--p-ink-2)}.island-tag:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--island)}.row-locked td{color:#a3acb8}.stage-pill{display:inline-block;padding:0 .5rem;border-radius:999px;background:#eef1f4;font-size:.75rem;font-weight:700;color:var(--p-ink-2)}.status{font-size:.8125rem;font-weight:600}.status-done{color:var(--p-brand-ink)}.status-learning{color:var(--p-blue-ink)}@media(max-width:30rem){.report-actions{align-items:stretch;width:100%;max-width:none}.stat-value{font-size:1.5rem}.skill-table th,.skill-table td{padding:.5rem}.strategy-row{grid-template-columns:3.75rem 1fr 2.75rem;gap:.5rem}}.session-list{display:flex;flex-direction:column;gap:.75rem}.session{padding:0}.session-summary{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.5rem 1rem;padding:1rem clamp(1rem,2.4vw,1.5rem);padding-right:3rem;min-height:var(--p-touch);cursor:pointer;list-style:none;position:relative}.session-summary::-webkit-details-marker{display:none}.session-summary:after{content:"";position:absolute;right:1.25rem;top:1.4rem;width:.5rem;height:.5rem;border-right:2px solid var(--p-ink-3);border-bottom:2px solid var(--p-ink-3);transform:rotate(45deg);transition:transform .2s}.session[open] .session-summary:after{transform:translateY(.2rem) rotate(225deg)}.session-when{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem}.session-when .muted{font-size:.875rem}.session-stats{display:flex;gap:1rem;font-size:.875rem;color:var(--p-ink-3);white-space:nowrap}.session-stat b{font-size:1.0625rem;color:var(--p-ink)}.session-skills{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.375rem}.chip-tag{padding:.0625rem .5rem;border-radius:999px;background:#eef1f4;color:var(--p-ink-2);font-size:.75rem;font-weight:600}.attempt-list{list-style:none;margin:0;padding:0 clamp(1rem,2.4vw,1.5rem) .5rem;border-top:1px solid var(--p-border)}.attempt{display:grid;grid-template-columns:1.75rem minmax(0,1fr);gap:.25rem .75rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--p-border)}.attempt:last-child{border-bottom:0}.attempt-index{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:50%;background:#eef1f4;font-size:.75rem;font-weight:700;color:var(--p-ink-3)}.attempt-ok .attempt-index{background:var(--p-brand-soft);color:var(--p-brand-ink)}.attempt-label{font-weight:700;font-size:1.0625rem;word-break:break-word}.attempt-sub{font-size:.8125rem}.attempt-tags{grid-column:2;display:flex;flex-wrap:wrap;gap:.375rem}.tag{padding:.125rem .5rem;border-radius:.375rem;background:#eef1f4;color:var(--p-ink-2);font-size:.8125rem;white-space:nowrap}.tag-ok{background:var(--p-brand-soft);color:var(--p-brand-ink)}.tag-hint{background:var(--p-amber-soft);color:var(--p-amber-ink)}.tag-retry,.tag-error{background:var(--p-red-soft);color:var(--p-red-ink)}.tag-error{white-space:normal}.tag-strategy{background:var(--p-blue-soft);color:var(--p-blue-ink)}.load-more{align-self:center}@media(min-width:48rem){.attempt{grid-template-columns:1.75rem minmax(0,1fr) auto}.attempt-tags{grid-column:3;justify-content:flex-end;max-width:28rem}}.principles{margin:0;padding-left:1.375rem;display:flex;flex-direction:column;gap:.5rem}.principles p{color:var(--p-ink-2)}.guide-island{display:flex;flex-direction:column;gap:.625rem}.guide-island-title{margin:.75rem 0 0;font-size:1.25rem;padding-left:.75rem;border-left:4px solid var(--island)}.guide-island-title small{font-size:.875rem;font-weight:400;margin-left:.5rem}.guide-card summary{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .75rem;cursor:pointer;list-style:none;min-height:var(--p-touch);padding-right:1.5rem;position:relative}.guide-card summary::-webkit-details-marker{display:none}.guide-card summary:after{content:"\25b8";position:absolute;right:0;color:var(--p-ink-3);transition:transform .2s}.guide-card[open] summary:after{transform:rotate(90deg)}.guide-icon{font-size:1.625rem}.guide-name{font-weight:700;font-size:1.0625rem}.guide-goal{font-size:.875rem}.guide-body h4{margin:1rem 0 .375rem;font-size:.9375rem}.game{background:var(--p-subtle);border:1px solid var(--p-border);border-radius:.75rem;padding:.625rem .875rem;margin-top:.5rem}.game ol,.phrases,.donts{margin:.375rem 0;padding-left:1.375rem}.phrases li{color:var(--p-brand-ink)}.donts li{color:var(--p-red-ink)}.field{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .875rem;padding:.75rem 0;border-bottom:1px solid var(--p-border)}.field:last-child{border-bottom:0}.field-label{font-weight:600;min-width:8.75rem}.field-hint{flex-basis:100%;color:var(--p-ink-3);font-size:.875rem}.field input[type=range]{flex:1;min-width:min(12.5rem,100%);height:var(--p-touch);accent-color:var(--p-brand)}.toggle{cursor:pointer;min-height:var(--p-touch)}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle-track{order:2;width:3.25rem;height:1.875rem;border-radius:999px;background:#cfd7e1;position:relative;transition:background .2s;flex:none;margin-left:auto}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:calc(1.875rem - 6px);height:calc(1.875rem - 6px);border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s}.toggle input:checked+.toggle-track{background:var(--p-brand)}.toggle input:checked+.toggle-track:after{transform:translate(1.375rem)}.toggle input:focus-visible+.toggle-track{outline:3px solid var(--sky);outline-offset:2px}.toggle .field-label{order:1;flex:1}.toggle .field-hint{order:3}.voice-select{flex:1;min-width:min(15rem,100%);max-width:100%;text-overflow:ellipsis}.voice-actions{flex-wrap:wrap;align-items:center;padding:.5rem 0}@media print{@page{size:A4;margin:12mm 12mm 14mm}html,html:has(.parent){font-size:9pt}.goals,.after-goals{order:1}.dim-meta{display:none}.goals{break-before:page}.card-head{margin-bottom:2mm}.insights{gap:2.5mm}.insight{padding:2mm 3mm}.goal-facts dd{font-size:.75rem!important;line-height:1.5}.goal-facts dt{font-size:.6875rem}.goal-head h3{font-size:.9375rem}body{background:#fff!important}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}#root,.parent,.parent-body{display:block;height:auto!important;overflow:visible!important;padding:0!important;background:#fff}.parent-top,.no-print,.placement{display:none!important}.print-only{display:inline}p.print-only,div.print-only{display:block}.report{max-width:none;gap:3mm}.p-card,.stat{box-shadow:none;border-color:#d5dbe2;padding:3.5mm 4mm}.ability,.summary-card,.stat-grid,.stat,.goal,.insight,.report-pair>.p-card{break-inside:avoid}.card-head,.p-card h2{break-after:avoid}.report-head{border-bottom:2px solid var(--p-brand);padding-bottom:2mm}.stat-grid{grid-template-columns:repeat(5,1fr);gap:2mm}.stat{padding:2mm 3mm}.stat-value{font-size:1.5rem}.summary-text{font-size:1rem;line-height:1.7}.ability-grid{grid-template-columns:1.1fr 1fr;gap:5mm}.radar-wrap{max-width:72mm}.report-pair{grid-template-columns:1fr 1fr;gap:3mm}.goal-list{grid-template-columns:repeat(3,1fr);gap:2.5mm}.goal-next p{margin:0}.dim-list{gap:1.5mm}.scoring-note{margin-top:2mm!important;padding:1.5mm 2.5mm}.goal{padding:2.5mm 3mm;gap:1.5mm}.goal-facts{gap:1mm}.goal-next{padding:1.5mm 2mm;font-size:.8125rem!important;line-height:1.5}.table-wrap{display:none}.skill-print ul{list-style:none;margin:0;padding:0;columns:3;column-gap:6mm}.skill-print li{display:flex;justify-content:space-between;gap:3mm;padding:.8mm 0;border-bottom:1px solid var(--p-border);font-size:.8125rem;break-inside:avoid}}
