.mascot-art{display:block;position:relative;aspect-ratio:100/110;flex-shrink:0;pointer-events:none}.mascot-art--head{aspect-ratio:100/92}.mascot-art--support{aspect-ratio:1}@media(max-width:860px){.hero-visual .float-mascot{left:0}}.mascot-image{display:block;width:100%;height:100%;object-fit:contain;user-select:none}.brand .logo .mascot-image{width:28px;height:28px}.auth-logo .auth-mascot .mascot-image{width:32px;height:32px}.coach-fab .mascot-art{width:42px;height:42px}.coach-mascot.mascot-art{aspect-ratio:100/92}.lesson-mascot .mascot-image{width:100%;height:100%}#boot .bootmascot{aspect-ratio:100/92}#boot .bootmascot img{display:block;width:100%;height:100%;object-fit:contain}.ct-cheer.mascot-art{display:inline-block;aspect-ratio:100/92}.ct-typing-buddy{position:fixed;left:20px;bottom:20px;width:48px}@media(max-width:1180px){.ct-typing-buddy{display:none}}.ct-typing-buddy[data-pose=typing],.ct-typing-buddy[data-pose=fast-typing]{animation:mascot-type 2.8s ease-in-out infinite}.ct-typing-buddy[data-pose=celebrating]{animation:mascot-hop .45s ease-out}.ct-page.paused .ct-typing-buddy,body.chill-focus .ct-typing-buddy{visibility:hidden}.ct-pause-art{position:relative;width:54px;margin:0 auto .5rem}.ct-pause-art .ct-panel-m{margin:0}.ct-pause-cat{position:absolute;width:25px;right:-10px;bottom:0}@keyframes mascot-type{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-1px) rotate(-1deg)}}@keyframes mascot-hop{0%,to{transform:translateY(0)}45%{transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.mascot-art,.float-mascot,.coach-mascot,#boot .bootmascot,.ct-done-in{animation:none!important;transition:none!important}.coach{transition:none!important}.coach-stars{display:none!important}}.celebration-layer{position:fixed;inset:0;z-index:1600;pointer-events:none;isolation:isolate}.celebration-overlay{position:fixed;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;overflow:auto;padding:22px;background:#2c213f42;backdrop-filter:blur(7px);pointer-events:auto;overscroll-behavior:contain;animation:celebration-appear .28s ease-out both;color:#322640;font-family:Manrope,system-ui,sans-serif}.celebration-scene{position:relative;isolation:isolate;width:min(760px,100%);max-height:calc(100dvh - 44px);overflow:auto;background:#fffdf9;border:1px solid rgba(66,44,83,.12);border-radius:26px;box-shadow:0 30px 100px #20142c30;animation:celebration-card-in .38s cubic-bezier(.22,1,.36,1) both;scrollbar-width:thin}.celebration-tier-5 .celebration-scene{width:min(900px,100%)}.celebration-topline{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 25px 0;color:#74677e;font-size:.68rem;font-weight:700;letter-spacing:.02em}.celebration-topline>div{display:flex;align-items:center;gap:11px}.celebration-topline button{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:0;background:transparent;color:inherit;cursor:pointer}.celebration-topline .celebration-skip{gap:8px;font-size:.72rem;padding:4px}.celebration-skip span{font-size:1.4rem;font-weight:400;line-height:1}.celebration-sound{width:34px;border-radius:50%}.celebration-sound svg{width:19px;height:19px}.celebration-sound:hover,.celebration-skip:hover{color:#3f22ec!important}.celebration-scene button:focus-visible{outline:3px solid #3F22EC;outline-offset:4px}.celebration-art{position:relative;height:248px;max-width:740px;margin:0 auto;overflow:hidden;isolation:isolate}.celebration-art:after{content:"";position:absolute;bottom:14px;left:26%;right:26%;height:12px;border-radius:50%;background:#38294409;z-index:-1}.celebration-tier-5 .celebration-art{height:282px;max-width:820px}.celebration-mascot{position:absolute;display:block;bottom:9px;padding:0!important;border:0!important;box-shadow:none!important;background:transparent!important;cursor:pointer;border-radius:45%;z-index:3;transform-origin:50% 85%;animation:celebration-hop 1.15s ease-in-out 3 .25s}.celebration-mascot .mascot-art{width:100%;height:auto;aspect-ratio:1;display:block}.celebration-mascot .mascot-image{width:100%;height:100%;object-fit:contain;display:block}.celebration-rocco{left:calc(50% - 176px);width:212px}.celebration-companion{left:calc(50% + 1px);width:174px;animation-delay:.5s}.celebration-mascot.did-tap{animation:celebration-tap .65s cubic-bezier(.3,.7,.3,1) both}.celebration-art-duet .celebration-rocco{left:calc(50% - 182px);transform:rotate(-6deg)}.celebration-art-duet .celebration-companion{left:calc(50% + 3px);transform:rotate(8deg)}.celebration-art-dance .celebration-mascot{animation:celebration-dance .6s ease-in-out 6}.celebration-art-dance .celebration-companion{animation-delay:.3s}.celebration-art-fireworks{background:radial-gradient(ellipse at center,#f6f1ff 2%,#fffdf9 71%)}.celebration-art-fireworks .celebration-mascot{animation:celebration-watch 3.8s ease-in-out 1}.celebration-art-fireworks .celebration-rocco{left:calc(50% - 170px);width:184px}.celebration-art-fireworks .celebration-companion{width:154px;left:calc(50% + 12px)}.celebration-mark{width:46px;height:46px;color:var(--color,#FA58A7);overflow:visible}.celebration-orbit{position:absolute;inset:0;pointer-events:none;z-index:1}.celebration-orbit .celebration-mark{position:absolute;width:32px;height:32px;left:calc(12% + var(--i)*17%);top:calc(17px + var(--i)*3px);transform:rotate(calc(var(--i)*19deg));animation:celebration-bloom .6s cubic-bezier(.2,1.7,.4,1) both;animation-delay:calc(var(--i)*.16s)}.celebration-orbit .celebration-mark:nth-child(2){top:63px;width:23px;height:23px}.celebration-orbit .celebration-mark:nth-child(4){top:71px;width:25px;height:25px}.celebration-pennants{position:absolute;left:5%;right:5%;top:23px;height:36px;border-top:2px solid #513967;border-radius:50%;display:flex;justify-content:space-around;gap:12px;transform:rotate(-3deg);z-index:0}.celebration-pennants i{width:25px;height:33px;clip-path:polygon(0 0,100% 0,50% 100%);transform:rotate(5deg);animation:celebration-flag-wave .7s ease-in-out 5}.celebration-pennants i:nth-child(2n){transform:rotate(-6deg);animation-delay:.15s}.celebration-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:5}.celebration-particles i{position:absolute;top:-18px;left:var(--x);width:7px;height:12px;background:var(--color);border-radius:2px;opacity:0;animation:celebration-confetti 3.2s cubic-bezier(.2,.6,.5,1) var(--delay) both}.celebration-particles i:nth-child(3n){width:8px;height:8px;border-radius:50%}.celebration-particles i:nth-child(4n){width:5px;height:15px;clip-path:polygon(0 0,100% 15%,75% 100%,0 85%)}.celebration-particles.is-mini i{top:45%;left:50%;animation:celebration-burst .85s ease-out var(--delay) both;--tx:calc((var(--i) - 12)*12px);--ty:calc(-30px - var(--i)*7px)}.celebration-fireworks{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.celebration-firework{position:absolute;left:var(--x);top:var(--y);width:1px;height:1px}.celebration-firework i{position:absolute;width:4px;height:15px;background:var(--color);border-radius:60%;opacity:0;transform-origin:center;animation:celebration-firework 1.8s ease-out var(--delay) 2 both;--distance:62px}.celebration-garden{position:absolute;bottom:8px;left:3%;right:3%;height:190px;display:flex;align-items:flex-end;justify-content:space-between;z-index:0;pointer-events:none}.celebration-stem{height:var(--height);width:4px;background:#03e29d;border-radius:100% 40%;position:relative;transform:rotate(calc((var(--i) - 3)*5deg));transform-origin:bottom;animation:celebration-grow .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*.13s)}.celebration-stem:before,.celebration-stem:after{content:"";position:absolute;left:-17px;top:55%;width:19px;height:10px;border-radius:2px 100%;background:#03e29d;transform:rotate(20deg)}.celebration-stem:after{left:3px;top:70%;transform:rotate(-40deg)}.celebration-stem>.celebration-mark{position:absolute;top:-22px;left:-21px;transform:rotate(calc(var(--i)*22deg))}.celebration-gift,.celebration-trophy{position:absolute;left:calc(50% - 95px);bottom:11px;width:190px;height:207px;padding:0;border:0;background:transparent;cursor:pointer;z-index:4}.celebration-gift svg,.celebration-trophy svg{width:100%;height:100%;overflow:visible}.celebration-gift{animation:celebration-gift-wiggle .75s ease-in-out 3 .45s}.celebration-gift-lid{transform-origin:65% 70%;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .35s}.celebration-gift.is-open{animation:none}.celebration-gift.is-open .celebration-gift-lid{transform:translate(8px,-83px) rotate(18deg);opacity:.25}.celebration-art-gift .celebration-rocco{left:calc(50% - 258px);width:183px;bottom:16px;animation:celebration-hop 1.1s ease-in-out 2 .6s}.celebration-art-gift .celebration-companion{left:calc(50% + 104px);width:160px;bottom:9px}.celebration-art-gift.is-open .celebration-rocco{animation:celebration-tap .7s ease-out both}.celebration-art-trophy .celebration-rocco{left:calc(50% - 243px);width:191px}.celebration-art-trophy .celebration-companion{left:calc(50% + 107px);width:152px}.celebration-trophy{height:219px;width:199px;left:calc(50% - 99px);bottom:4px;animation:celebration-trophy-in .8s cubic-bezier(.2,1.5,.4,1) both}.celebration-trophy.is-revealed{filter:drop-shadow(0 0 16px #EFCA6280)}.celebration-spotlight{position:absolute;inset:0 25%;background:linear-gradient(#efca6220,#efca6200);clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);transform-origin:50% 0;animation:celebration-spotlight 3.6s ease-in-out both}.celebration-interaction-hint{position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:.62rem;font-weight:600;letter-spacing:.025em;color:#766c7e;z-index:6}.celebration-door{position:absolute;left:calc(50% - 63px);bottom:26px;width:126px;height:179px;border:5px solid #3F22EC;border-radius:65px 65px 3px 3px;perspective:700px;background:#e9fbef;padding:0;cursor:pointer;z-index:4;overflow:visible;box-shadow:8px 9px #3f22ec0c}.celebration-door-leaf{position:absolute;inset:0;background:#f4b5de;border-radius:58px 58px 0 0;border:1px solid #513967;transform-origin:0 50%;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.celebration-door-leaf i{position:absolute;right:13px;top:99px;width:9px;height:9px;border-radius:50%;background:#efca62;border:1px solid #513967}.celebration-door-leaf .celebration-mark{position:absolute;width:36px;left:40px;top:38px;color:#3f22ec}.celebration-door-world{position:absolute;inset:0;border-radius:58px 58px 0 0;overflow:hidden;background:linear-gradient(#fff2d5,#d8fff2)}.celebration-door-world .celebration-mark{position:absolute;width:30px;top:28px;left:8px;color:#efca62}.celebration-door-world .celebration-mark:first-child{top:81px;left:67px;color:#fa58a7}.celebration-door-world>span{position:absolute;left:-13px;bottom:-10px;width:146px;height:60px;background:#dff700;border-radius:50%}.celebration-door.is-open .celebration-door-leaf{transform:rotateY(-105deg)}.celebration-art-world .celebration-rocco{width:177px;left:calc(50% - 254px)}.celebration-art-world .celebration-companion{width:153px;left:calc(50% + 101px)}.celebration-art-parade .celebration-rocco{left:calc(50% - 255px);width:180px;animation:celebration-march 4.5s ease-in-out both}.celebration-art-parade .celebration-companion{left:calc(50% - 92px);width:154px;animation:celebration-march 4.5s ease-in-out .17s both}.celebration-parade-friends{position:absolute;display:flex;align-items:flex-end;gap:8px;left:calc(50% + 65px);bottom:22px;animation:celebration-march 4.5s ease-in-out .32s both}.celebration-parade-friends .mascot-art{width:70px;height:70px}.celebration-parade-friends .mascot-art:nth-child(2){width:81px;height:81px;transform:translateY(-6px)}.celebration-flag{position:absolute;bottom:85px;left:calc(50% - 150px);height:102px;width:3px;background:#52366b;z-index:4;transform:rotate(-8deg);animation:celebration-march 4.5s ease-in-out both}.celebration-flag i{position:absolute;left:2px;top:0;width:53px;height:38px;display:grid;place-items:center;background:#dff700;color:#3f22ec;font-size:25px;font-style:normal;clip-path:polygon(0 0,100% 7%,88% 53%,100% 100%,0 95%)}.celebration-book{position:absolute;width:195px;height:118px;left:calc(50% - 95px);bottom:38px;display:flex;perspective:600px;z-index:4;transform:rotate(-4deg);animation:celebration-bloom .7s ease-out both}.celebration-book>span{flex:1;border:2px solid #3F22EC;border-radius:7px 9px 0 0;background:#f4b5de;transform:rotateY(13deg);box-shadow:0 5px #efca62;display:flex;align-items:center;justify-content:center;position:relative}.celebration-book>span+span{transform:rotateY(-13deg);background:#fffdf9;display:block;padding:21px 15px}.celebration-book i{display:block;height:3px;background:#efca62;margin-bottom:13px;width:100%;transform:rotate(-1deg)}.celebration-book>span+span .celebration-mark{position:absolute;width:30px;bottom:5px;right:10px}.celebration-art-book .celebration-rocco{left:calc(50% - 240px);width:190px;animation:none}.celebration-art-book .celebration-companion{left:calc(50% + 92px);width:149px}.celebration-calendar{position:absolute;left:calc(50% - 64px);bottom:35px;width:128px;height:150px;border:2px solid #3F22EC;border-radius:12px;background:#fffdf9;transform:rotate(-5deg);z-index:4;box-shadow:7px 7px #f4b5de}.celebration-calendar span{display:block;padding:10px 5px;background:#fa58a7;color:#fff;font-size:9px;text-align:center;font-weight:800;border-radius:9px 9px 0 0}.celebration-calendar b{display:block;text-align:center;font-size:59px;line-height:1.45;color:#3f22ec}.celebration-calendar>.celebration-mark{position:absolute;width:30px;right:-10px;bottom:-10px;color:#03e29d}.celebration-art-calendar .celebration-rocco{left:calc(50% - 237px);width:172px}.celebration-art-calendar .celebration-companion{left:calc(50% + 95px);width:146px}.celebration-gold-star{position:absolute;width:145px;height:145px;left:calc(50% - 72px);top:2px;color:#efca62;animation:celebration-star-unfurl 1s cubic-bezier(.2,1.6,.4,1) both}.celebration-art-gold .celebration-mascot{width:150px}.celebration-art-gold .celebration-rocco{left:calc(50% - 175px)}.celebration-art-gold .celebration-companion{left:calc(50% + 28px)}.celebration-speed-lines{position:absolute;left:15%;right:28%;top:80px;transform:rotate(-6deg)}.celebration-speed-lines i{display:block;height:5px;margin:18px;background:#dff700;border-radius:30px;animation:celebration-speed .5s ease-out 6}.celebration-speed-lines i:nth-child(2){margin-left:28px;background:#fa58a7;animation-delay:.17s}.celebration-hsk-world{position:absolute;inset:auto 0 0;width:100%;height:100%;z-index:0}.celebration-hsk-badge{position:absolute;left:calc(50% - 59px);top:48px;width:118px;height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#3f22ec;background:#dff700;border:2px solid #3F22EC;border-radius:43% 47% 41% 49%;transform:rotate(-7deg);z-index:4;box-shadow:6px 7px #f4b5de;animation:celebration-trophy-in .9s cubic-bezier(.2,1.2,.4,1) .2s both}.celebration-hsk-badge span{font-size:12px;font-weight:900;letter-spacing:.18em;margin-left:.18em}.celebration-hsk-badge strong{font-size:67px;line-height:1.04;font-weight:900;letter-spacing:-.06em}.celebration-hsk-badge i{position:absolute;bottom:-11px;right:-4px;background:#03e29d;border:2px solid #fffdf9;border-radius:50%;width:33px;height:33px;display:grid;place-items:center;font-size:22px;font-style:normal}.celebration-art-hsk .celebration-rocco{left:calc(50% - 250px);width:190px;bottom:10px}.celebration-art-hsk .celebration-companion{left:calc(50% + 97px);width:159px;bottom:11px}.celebration-art-hsk .celebration-orbit .celebration-mark{top:21px;width:22px;height:22px}.celebration-scene-hsk.celebration-level-7{background:#302052;color:#fffdf9}.celebration-scene-hsk.celebration-level-7 .celebration-topline,.celebration-scene-hsk.celebration-level-7 .celebration-subtitle,.celebration-scene-hsk.celebration-level-7 .celebration-stats dt,.celebration-scene-hsk.celebration-level-7 .celebration-bottom{color:#e3d3f0}.celebration-scene-hsk.celebration-level-7 .celebration-eyebrow,.celebration-scene-hsk.celebration-level-7 .celebration-stats dd{color:#dff700}.celebration-scene-hsk.celebration-level-7 .celebration-stats,.celebration-scene-hsk.celebration-level-7 .celebration-bottom{border-color:#ffffff29}.celebration-scene-hsk.celebration-level-7 .celebration-continue{background:#dff700;color:#302052;border-color:#dff700}.celebration-scene-hsk.celebration-level-7 .celebration-actions .btn-ghost{color:#e3d3f0}.celebration-copy{position:relative;z-index:6;text-align:center;padding:0 40px 25px}.celebration-eyebrow{margin:1px 0 10px;color:#3f22ec;font-size:.69rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.celebration-copy h2{margin:0 auto;font-size:clamp(2rem,4.5vw,3.1rem);line-height:1.08;font-weight:850;letter-spacing:-.055em;max-width:650px;text-wrap:balance}.celebration-tier-5 .celebration-copy h2{font-size:clamp(2.4rem,5.4vw,3.8rem)}.celebration-subtitle{font-size:.85rem;line-height:1.55;max-width:465px;margin:12px auto 0;color:#807187;text-wrap:balance}.celebration-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:20px 34px;margin:23px auto 21px;padding:19px 8px 0;border-top:1px solid #39274412;max-width:560px}.celebration-stats>div{display:flex;flex-direction:column-reverse;gap:3px;max-width:170px}.celebration-stats dt{font-size:.64rem;line-height:1.4;color:#807187;font-weight:600}.celebration-stats dd{font-size:1.55rem;line-height:1.15;font-weight:800;letter-spacing:-.045em;margin:0;color:#3f22ec}.celebration-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:22px}.celebration-actions .celebration-continue{display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:13px 23px;border-radius:11px;font-size:.8rem;min-height:47px;min-width:214px}.celebration-actions .btn-ghost{font-size:.73rem;color:#776981;background:transparent}.celebration-next{font-size:.76rem;font-weight:700;color:#3f22ec;margin:16px auto}.celebration-complete-track{position:relative;height:6px;background:#3f22ec10;max-width:270px;margin:18px auto 26px;border-radius:10px}.celebration-complete-track i{display:block;width:100%;height:100%;background:#03e29d;border-radius:inherit;transform-origin:left;animation:celebration-fill 3.4s cubic-bezier(.2,.8,.4,1) both}.celebration-complete-track span{position:absolute;right:0;top:10px;font-size:9px;font-weight:800;color:#807187}.celebration-bottom{margin:0 25px;padding:13px 0 14px;border-top:1px solid #39274412;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#ab9eaf;font-size:.5rem;font-weight:800;letter-spacing:.17em}.celebration-bottom i{font-size:12px;font-style:normal;color:#fa58a7}.celebration-small{position:fixed;width:126px;height:85px;transform:translate(-50%,-100%);pointer-events:none!important;z-index:1;contain:layout style;isolation:isolate}.celebration-small>.celebration-mark{position:absolute;width:24px;height:24px;left:51px;top:34px;color:#dff700;filter:drop-shadow(0 1px 0 #3F22EC40);animation:celebration-small-star var(--duration,.7s) ease-out both}.celebration-small>.celebration-mark:nth-child(2){left:20px;top:49px;width:17px;height:17px;color:#fa58a7;--sx:-26px;--sy:-33px;animation-delay:35ms}.celebration-small>.celebration-mark:nth-child(3){left:88px;top:44px;width:20px;height:20px;color:#03e29d;--sx:25px;--sy:-40px;animation-delay:65ms}.celebration-small>.mascot-art{position:absolute;width:64px;height:64px;left:30px;top:16px;animation:celebration-tiny-mascot var(--duration,.7s) ease-out both}.celebration-small>.mascot-art+.celebration-mark{left:84px;top:14px;width:18px;height:18px;color:#fa58a7}.celebration-small-message{position:absolute;top:76px;left:50%;transform:translate(-50%);font-family:Manrope,system-ui,sans-serif;font-size:12px;font-weight:800;line-height:1.35;white-space:nowrap;color:#3f22ec;text-shadow:0 1px 4px white;animation:celebration-small-caption var(--duration,.9s) ease both}.celebration-small-streak{height:104px}.celebration-small .celebration-particles{overflow:visible}.celebration-small .celebration-particles.is-mini i{--tx:calc((var(--i) - 5)*15px);--ty:calc(-14px - var(--i)*6px);animation-duration:.55s;animation-delay:calc(var(--i)*11ms);width:5px;height:8px}.celebration-small .celebration-fireworks{overflow:visible}.celebration-small .celebration-firework{left:50%!important;top:50%!important}.celebration-small .celebration-firework i{--distance:38px;height:10px;width:3px;animation-duration:.65s;animation-iteration-count:1}.celebration-small-check-bounce>.celebration-mark,.celebration-small-check>.celebration-mark{color:#03e29d;animation-name:celebration-tiny-check;width:35px;height:35px;left:44px;top:25px}.celebration-small-check-bounce>.celebration-mark:nth-child(n+2){display:none}.celebration-small-flower-bloom>.celebration-mark{animation-name:celebration-tiny-flower;color:#fa58a7}.celebration-small-heart-float>.celebration-mark{animation-name:celebration-tiny-heart;color:#fa58a7}.celebration-small-heart-float>.celebration-mark:nth-child(n+2){display:none}.celebration-small-ear-perk>.mascot-art{animation-name:celebration-ears}.celebration-small-jumping-star>.celebration-mark{animation-name:celebration-tiny-check}.celebration-small-sparkle-trio>.celebration-mark{animation-name:celebration-tiny-flower;transform-origin:center}.celebration-small-gold-star>.celebration-mark{color:#efca62;width:32px;height:32px}.celebration-small-star-bounce>.celebration-mark{animation-name:celebration-tiny-check}.celebration-pop-ring{position:absolute;left:43px;top:25px;width:40px;height:40px;border:3px solid #03E29D;border-radius:50%;animation:celebration-ring .6s ease-out both}.celebration-underline{position:absolute;left:-17px;bottom:10px;width:160px;height:35px;overflow:visible}.celebration-underline path{fill:none;stroke:#03e29d;stroke-width:5;stroke-linecap:round;stroke-dasharray:1;animation:celebration-underline .7s ease-out both}.celebration-small-ribbon-wave .celebration-underline path{stroke:#fa58a7;stroke-width:9}.celebration-streak-tail{position:absolute;left:24px;top:44px;height:7px;width:84px;border-radius:40px;background:linear-gradient(90deg,transparent,#DFF700,#03E29D);transform:rotate(-27deg);z-index:-1;animation:celebration-comet .8s ease-out both}.celebration-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.celebration-milestone-toast{position:fixed;right:22px;bottom:22px;display:flex;align-items:center;gap:12px;width:min(300px,calc(100vw - 32px));padding:12px 14px 12px 7px;background:#fffdf9;box-shadow:0 8px 36px #30205218;border:1px solid #3F22EC14;border-radius:18px;color:#322640;pointer-events:none;animation:celebration-card-in .3s ease-out both}.celebration-milestone-toast>.mascot-art{flex:0 0 68px;width:68px;height:68px}.celebration-milestone-toast>div{display:flex;flex-direction:column;gap:5px;padding-right:4px}.celebration-milestone-toast span{font-size:9px;color:#83718e}.celebration-milestone-toast strong{font-size:12px;line-height:1.45;color:#3f22ec}.celebration-milestone-toast small{font-size:10px;color:#83718e}.celebration-milestone-toast>.celebration-mark{position:absolute;right:6px;top:-11px;width:25px;height:25px;color:#efca62}.celebration-milestone-toast.is-reduced{animation:none}.celebration-milestone-toast>.celebration-toast-art{position:relative;flex:0 0 76px;width:76px;height:76px;display:block}.celebration-toast-art>.mascot-art{width:68px;height:68px}.celebration-toast-calendar{position:absolute;bottom:-1px;right:-2px;width:31px;height:34px;background:#fffdf9;border:1.5px solid #3F22EC;border-top:9px solid #FA58A7;border-radius:4px;transform:rotate(9deg);display:grid;place-items:center}.celebration-toast-calendar b{font-size:15px;color:#3f22ec}.celebration-toast-flashcards{position:absolute;bottom:3px;right:-2px;width:31px;height:36px}.celebration-toast-flashcards i{position:absolute;inset:0;background:#dff700;border:1.5px solid #3F22EC;border-radius:3px;transform:rotate(-13deg)}.celebration-toast-flashcards i:nth-child(2){transform:translate(5px) rotate(4deg);background:#f4b5de}.celebration-toast-flashcards i:nth-child(3){transform:translate(8px) rotate(16deg);background:#fffdf9;color:#03e29d;font-size:19px;text-align:center;font-style:normal}.celebration-toast-book{position:absolute;right:-8px;bottom:2px;width:42px;height:30px;display:flex;transform:rotate(10deg)}.celebration-toast-book i{width:50%;background:#f4b5de;border:1.5px solid #3F22EC;border-radius:5px 7px 0 0}.celebration-toast-book i+i{background:#dff700}.celebration-small>.celebration-tiny-trophy{position:absolute;left:38px;top:12px;width:49px;height:58px;animation:celebration-tiny-check var(--duration) ease both}.celebration-tiny-speed{position:absolute;left:5px;top:28px;width:80px;transform:rotate(-7deg)}.celebration-tiny-speed i{display:block;height:3px;background:#dff700;border-radius:4px;margin:9px 0;animation:celebration-speed .45s ease-out 3}.celebration-tiny-speed i:nth-child(2){background:#fa58a7;margin-left:13px;animation-delay:.12s}.celebration-tiny-sun{position:absolute;left:33px;top:31px;width:61px;height:31px;border-radius:80px 80px 0 0;background:#efca62;border-bottom:3px solid #FA58A7;animation:celebration-tiny-check var(--duration) ease both}.celebration-tiny-sun i{position:absolute;left:29px;top:-15px;width:3px;height:9px;background:#efca62;transform-origin:1px 40px}.celebration-tiny-sun i:nth-child(2){transform:rotate(40deg)}.celebration-tiny-sun i:nth-child(3){transform:rotate(-40deg)}@keyframes celebration-appear{0%{opacity:0}to{opacity:1}}@keyframes celebration-card-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes celebration-hop{0%,38%,to{transform:translateY(0) rotate(0)}17%{transform:translateY(-17px) rotate(-3deg)}25%{transform:translateY(-15px) rotate(2deg)}}@keyframes celebration-tap{0%,to{transform:translateY(0) rotate(0)}40%{transform:translateY(-25px) rotate(-8deg)}65%{transform:translateY(-9px) rotate(6deg)}}@keyframes celebration-dance{0%,to{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(6deg) translateY(-9px)}}@keyframes celebration-watch{0%,to{transform:rotate(0)}30%,65%{transform:rotate(-5deg) translateY(-4px)}}@keyframes celebration-bloom{0%{opacity:0;transform:scale(.3) rotate(-30deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes celebration-grow{0%{opacity:0;transform:scaleY(.1)}to{opacity:1;transform:scaleY(1)}}@keyframes celebration-flag-wave{0%,to{rotate:0deg}50%{rotate:8deg}}@keyframes celebration-confetti{0%{opacity:0;transform:translateY(-12px) rotate(var(--rotate))}9%{opacity:1}78%{opacity:.9}to{opacity:0;transform:translate(var(--dx),330px) rotate(calc(var(--rotate) + 280deg))}}@keyframes celebration-burst{0%{opacity:0;transform:translate(0) rotate(0)}10%{opacity:1}to{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(calc(var(--rotate) + 170deg))}}@keyframes celebration-firework{0%,20%{opacity:0;transform:rotate(var(--angle)) translateY(-4px) scaleY(.25)}35%{opacity:.95}70%,to{opacity:0;transform:rotate(var(--angle)) translateY(calc(-1 * var(--distance))) scaleY(.7)}}@keyframes celebration-gift-wiggle{0%,65%,to{transform:rotate(0)}18%{transform:rotate(-4deg)}35%{transform:rotate(4deg)}48%{transform:rotate(-3deg)}}@keyframes celebration-trophy-in{0%{opacity:0;transform:translateY(25px) scale(.8) rotate(-12deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}@keyframes celebration-spotlight{0%{transform:rotate(-28deg);opacity:0}20%{opacity:1}70%{transform:rotate(22deg)}to{transform:rotate(0);opacity:.6}}@keyframes celebration-march{0%{transform:translate(-80px);opacity:0}18%{opacity:1}30%{transform:translate(-40px) translateY(-6px)}50%{transform:translate(-23px)}65%{transform:translate(-12px) translateY(-5px)}80%{transform:translate(-5px)}to{transform:translate(0);opacity:1}}@keyframes celebration-star-unfurl{0%{opacity:0;transform:scale(.2) rotate(-110deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes celebration-speed{0%{opacity:0;transform:translate(40px) scaleX(.4)}25%{opacity:1}to{opacity:0;transform:translate(-40px) scaleX(1)}}@keyframes celebration-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes celebration-small-star{0%{opacity:0;transform:scale(.3) translate(0)}25%{opacity:1}to{opacity:0;transform:translate(var(--sx,0px),var(--sy,-48px)) rotate(24deg) scale(.7)}}@keyframes celebration-tiny-mascot{0%{opacity:0;transform:translateY(13px) scale(.7)}25%,70%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-12px) scale(.9)}}@keyframes celebration-ears{0%{opacity:0;transform:scale(.8)}25%{opacity:1;transform:scale(1.08,.94) rotate(-5deg)}70%{opacity:1;transform:scale(.98,1.07) rotate(3deg)}to{opacity:0;transform:scale(1)}}@keyframes celebration-tiny-check{0%{opacity:0;transform:translateY(12px) scale(.6)}30%{opacity:1;transform:translateY(-12px) scale(1.1)}55%,75%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-6px)}}@keyframes celebration-tiny-flower{0%{opacity:0;transform:scale(0) rotate(-45deg)}38%,70%{opacity:1;transform:scale(1.2) rotate(15deg)}to{opacity:0;transform:scale(.9) rotate(40deg)}}@keyframes celebration-tiny-heart{0%{opacity:0;transform:translateY(15px) scale(.6)}25%{opacity:1;transform:translateY(0) scale(1.1)}to{opacity:0;transform:translateY(-48px) scale(.8)}}@keyframes celebration-small-caption{0%{opacity:0;translate:0 7px}20%,78%{opacity:1;translate:0 0}to{opacity:0;translate:0 -5px}}@keyframes celebration-ring{0%{opacity:.7;transform:scale(.5)}to{opacity:0;transform:scale(1.8)}}@keyframes celebration-underline{0%{opacity:0;stroke-dashoffset:1}20%{opacity:1}65%{opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:0}}@keyframes celebration-comet{0%{opacity:0;transform:translate(-20px) rotate(-27deg) scaleX(.2)}40%{opacity:1;transform:translate(0) rotate(-27deg) scaleX(1)}to{opacity:0;transform:translate(20px) rotate(-27deg) scaleX(.2)}}.celebration-overlay.is-reduced,.celebration-overlay.is-reduced *,.celebration-small.is-reduced,.celebration-small.is-reduced *,.celebration-milestone-toast.is-reduced,.celebration-milestone-toast.is-reduced *{animation:none!important;transition:none!important}.celebration-overlay.is-reduced .celebration-particles,.celebration-overlay.is-reduced .celebration-fireworks{display:none}.celebration-small.is-reduced>.celebration-mark{color:#03e29d;width:25px;height:25px;left:50px;top:33px;filter:none}@media(prefers-reduced-motion:reduce){.celebration-overlay,.celebration-overlay *,.celebration-small,.celebration-small *,.celebration-milestone-toast,.celebration-milestone-toast *{animation:none!important;transition:none!important}.celebration-particles,.celebration-fireworks{display:none}}@media(max-width:600px){.celebration-overlay{padding:10px;align-items:center}.celebration-scene{max-height:calc(100dvh - 20px);border-radius:20px}.celebration-topline{padding:13px 15px 0;font-size:.59rem;gap:6px}.celebration-topline>div{gap:3px}.celebration-topline>span{max-width:160px}.celebration-art{height:218px;margin-top:0}.celebration-tier-5 .celebration-art{height:232px}.celebration-rocco{width:172px;left:calc(50% - 143px)}.celebration-companion{width:140px;left:calc(50% + 6px)}.celebration-copy{padding:3px 20px 21px}.celebration-copy h2{font-size:2.25rem}.celebration-tier-5 .celebration-copy h2{font-size:2.65rem}.celebration-eyebrow{font-size:.61rem;letter-spacing:.12em}.celebration-subtitle{font-size:.79rem;margin-top:11px;max-width:300px}.celebration-stats{gap:15px 21px;margin:20px auto 17px;padding-top:17px}.celebration-stats dd{font-size:1.32rem}.celebration-stats dt{font-size:.59rem}.celebration-stats>div{max-width:128px}.celebration-actions{gap:6px;margin-top:19px}.celebration-actions .celebration-continue{width:100%;min-width:0;font-size:.79rem}.celebration-actions .btn-ghost{min-height:38px}.celebration-bottom{margin:0 17px;padding:12px 0;font-size:.43rem;letter-spacing:.13em}.celebration-art-duet .celebration-rocco{left:calc(50% - 142px)}.celebration-art-duet .celebration-companion{left:calc(50% + 7px)}.celebration-art-fireworks .celebration-rocco{width:158px;left:calc(50% - 145px)}.celebration-art-fireworks .celebration-companion{width:129px;left:calc(50% + 12px)}.celebration-gift{width:142px;height:169px;left:calc(50% - 71px);bottom:22px}.celebration-art-gift .celebration-rocco{width:132px;left:calc(50% - 177px);bottom:25px}.celebration-art-gift .celebration-companion{width:112px;left:calc(50% + 71px);bottom:24px}.celebration-interaction-hint{font-size:.57rem;bottom:8px}.celebration-trophy{width:147px;height:180px;left:calc(50% - 73px);bottom:22px}.celebration-art-trophy .celebration-rocco{width:142px;left:calc(50% - 181px);bottom:15px}.celebration-art-trophy .celebration-companion{width:111px;left:calc(50% + 72px);bottom:19px}.celebration-door{width:104px;height:151px;left:calc(50% - 52px);bottom:27px}.celebration-door-leaf .celebration-mark{left:29px;top:30px}.celebration-art-world .celebration-rocco{width:135px;left:calc(50% - 177px)}.celebration-art-world .celebration-companion{width:111px;left:calc(50% + 74px)}.celebration-art-parade .celebration-rocco{left:calc(50% - 176px);width:133px}.celebration-art-parade .celebration-companion{left:calc(50% - 48px);width:109px}.celebration-parade-friends{left:calc(50% + 60px);gap:0;bottom:19px}.celebration-parade-friends .mascot-art{width:42px;height:42px}.celebration-parade-friends .mascot-art:nth-child(2){width:48px;height:48px}.celebration-parade-friends .mascot-art:nth-child(3){display:none}.celebration-flag{left:calc(50% - 86px);height:88px;bottom:66px}.celebration-flag i{width:40px;height:29px;font-size:19px}.celebration-art-hsk .celebration-rocco{width:143px;left:calc(50% - 181px);bottom:2px}.celebration-art-hsk .celebration-companion{width:114px;left:calc(50% + 69px);bottom:5px}.celebration-hsk-badge{width:96px;height:105px;left:calc(50% - 48px);top:57px}.celebration-hsk-badge strong{font-size:55px}.celebration-hsk-badge span{font-size:10px}.celebration-hsk-badge i{width:28px;height:28px;font-size:19px}.celebration-art-hsk .celebration-orbit .celebration-mark{top:30px;width:19px;height:19px}.celebration-art-book .celebration-rocco{left:calc(50% - 180px);width:140px}.celebration-art-book .celebration-companion{left:calc(50% + 77px);width:110px}.celebration-book{width:146px;height:97px;left:calc(50% - 73px);bottom:24px}.celebration-calendar{width:105px;height:127px;left:calc(50% - 53px);bottom:30px}.celebration-calendar b{font-size:45px}.celebration-art-calendar .celebration-rocco{left:calc(50% - 178px);width:136px}.celebration-art-calendar .celebration-companion{left:calc(50% + 76px);width:109px}.celebration-garden{height:154px;left:7%;right:7%}.celebration-stem{max-height:108px}.celebration-stem:nth-child(2),.celebration-stem:nth-child(6){display:none}.celebration-stem>.celebration-mark{width:37px;height:37px;left:-17px}.celebration-orbit .celebration-mark{width:24px;height:24px}.celebration-pennants i{width:19px;height:26px}}@media(max-width:360px){.celebration-overlay{padding:6px}.celebration-scene{max-height:calc(100dvh - 12px)}.celebration-art{height:190px}.celebration-tier-5 .celebration-art{height:209px}.celebration-copy{padding-right:15px;padding-left:15px}.celebration-copy h2{font-size:2rem}.celebration-tier-5 .celebration-copy h2{font-size:2.2rem}.celebration-topline{font-size:.55rem;padding:9px 12px 0}.celebration-stats{gap:13px 18px}.celebration-stats>div{max-width:116px}.celebration-art-gift .celebration-rocco,.celebration-art-trophy .celebration-rocco,.celebration-art-hsk .celebration-rocco,.celebration-art-world .celebration-rocco,.celebration-art-book .celebration-rocco,.celebration-art-calendar .celebration-rocco{left:calc(50% - 158px);width:120px}.celebration-art-gift .celebration-companion,.celebration-art-trophy .celebration-companion,.celebration-art-hsk .celebration-companion,.celebration-art-world .celebration-companion,.celebration-art-book .celebration-companion,.celebration-art-calendar .celebration-companion{left:calc(50% + 63px);width:97px}.celebration-hsk-badge{top:34px}.celebration-art-parade .celebration-rocco{left:calc(50% - 156px);width:116px}.celebration-art-parade .celebration-companion{left:calc(50% - 42px);width:100px}.celebration-parade-friends{left:calc(50% + 54px)}.celebration-parade-friends .mascot-art{width:35px;height:35px}.celebration-parade-friends .mascot-art:nth-child(2){width:42px;height:42px}}.celebration-overlay{background:#1e104a8a;backdrop-filter:blur(10px)}.celebration-scene{z-index:2;border:2px solid #fff;box-shadow:0 0 0 7px #f4b5de35,0 30px 120px #160b6266;animation:celebration-grand-entrance .72s cubic-bezier(.16,1,.3,1) both}.celebration-grand-finale{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.celebration-aurora{position:absolute;inset:0;background:radial-gradient(ellipse at 10% 80%,#fa58a755,transparent 50%),radial-gradient(ellipse at 90% 25%,#03e29d44,transparent 50%),radial-gradient(ellipse at 50% 0%,#3f22ec88,transparent 60%);animation:celebration-aurora-in 1.5s ease-out both}.celebration-grand-rays{position:absolute;left:calc(50% - 80vmax);top:calc(50% - 80vmax);width:160vmax;height:160vmax;background:repeating-conic-gradient(from 5deg,#efca621c 0deg 9deg,transparent 9deg 24deg);border-radius:50%;animation:celebration-grand-rays 6s ease-out both}.celebration-cannons{position:absolute;inset:0}.celebration-cannons>i{position:absolute;left:var(--launch);top:85%;width:10px;height:19px;border-radius:3px;background:var(--color);opacity:0;animation:celebration-cannon-flight var(--flight) cubic-bezier(.16,.55,.45,1) var(--delay) both}.celebration-cannons>i:nth-child(3n){width:12px;height:12px;border-radius:50%}.celebration-cannons>i:nth-child(4n){width:7px;height:30px;border-radius:12px}.celebration-cannons>i:nth-child(5n){width:18px;height:18px;clip-path:polygon(50% 0,62% 36%,100% 50%,62% 64%,50% 100%,38% 64%,0 50%,38% 36%)}.celebration-grand-finale>.celebration-fireworks{overflow:visible}.celebration-grand-finale .celebration-firework i{--distance:clamp(80px,12vw,170px);width:5px;height:26px;animation-duration:2.4s;animation-iteration-count:2}.celebration-grand-stars{position:absolute;inset:0}.celebration-grand-stars .celebration-mark{position:absolute;left:var(--x);top:var(--y);width:clamp(22px,3vw,48px);height:clamp(22px,3vw,48px);opacity:0;animation:celebration-grand-star 3.4s ease-out var(--delay) both}.celebration-stage-halo{position:absolute;width:240px;height:240px;left:calc(50% - 120px);top:4px;z-index:-1;pointer-events:none;background:radial-gradient(circle,#efca6266,#f4b5de22 55%,transparent 70%)}.celebration-stage-halo i{position:absolute;inset:24px;border:2px solid #efca62;border-radius:50%;animation:celebration-halo-unfurl 1.4s cubic-bezier(.16,1,.3,1) both}.celebration-stage-halo i:nth-child(2){inset:6px;border:2px dashed #fa58a777;animation-delay:.15s}.celebration-stage-halo i:nth-child(3){inset:42px;border-color:#03e29d;animation-delay:.3s}.celebration-copy h2{animation:celebration-title-rise .75s cubic-bezier(.16,1,.3,1) .22s both;text-shadow:0 3px 0 #f4b5de55}.celebration-stats>div{animation:celebration-title-rise .55s ease-out .4s both}.celebration-stats>div:nth-child(2){animation-delay:.52s}.celebration-stats>div:nth-child(3){animation-delay:.64s}.celebration-actions .celebration-continue{box-shadow:0 6px #29139b,0 12px 24px #3f22ec33;transition:transform .15s,box-shadow .15s}.celebration-actions .celebration-continue:active{transform:translateY(4px);box-shadow:0 2px #29139b}.celebration-tier-5 .celebration-scene{box-shadow:0 0 0 8px #efca6255,0 0 90px #f4b5de44,0 35px 120px #160b6288}@keyframes celebration-grand-entrance{0%{opacity:0;transform:translateY(50px) scale(.84) rotate(-3deg)}65%{opacity:1;transform:translateY(-5px) scale(1.015) rotate(.6deg)}to{opacity:1;transform:none}}@keyframes celebration-cannon-flight{0%{opacity:0;transform:translate(0) rotate(0)}8%{opacity:1}42%{opacity:1;transform:translate(calc(var(--travel)*.7),var(--rise)) rotate(calc(var(--spin)*.45))}80%{opacity:1}to{opacity:0;transform:translate(var(--travel),var(--fall)) rotate(var(--spin))}}@keyframes celebration-grand-star{0%{opacity:0;transform:scale(0) rotate(-70deg)}20%,55%{opacity:.9;transform:scale(1) rotate(var(--tilt))}to{opacity:0;transform:translateY(-35px) scale(.6) rotate(45deg)}}@keyframes celebration-grand-rays{0%{opacity:0;transform:rotate(-18deg) scale(.7)}20%{opacity:1}to{opacity:.4;transform:rotate(18deg) scale(1)}}@keyframes celebration-aurora-in{0%{opacity:0}to{opacity:1}}@keyframes celebration-halo-unfurl{0%{opacity:0;transform:scale(.25) rotate(-90deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes celebration-title-rise{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:none}}@media(max-width:600px){.celebration-cannons>i:nth-child(n+57){display:none}.celebration-grand-stars .celebration-mark:nth-child(n+9){display:none}.celebration-scene{box-shadow:0 0 0 3px #f4b5de55,0 18px 60px #160b6266}.celebration-stage-halo{width:200px;height:200px;left:calc(50% - 100px)}}.celebration-overlay.is-reduced .celebration-grand-finale{display:none}@media(prefers-reduced-motion:reduce){.celebration-grand-finale{display:none}}.celebration-gift img,.celebration-trophy img{width:100%;height:100%;object-fit:contain;display:block}.celebration-gift img{position:absolute;inset:0;transition:opacity .25s,transform .45s}.celebration-gift-opened{opacity:0;transform:translateY(8px) scale(.9)}.celebration-gift.is-open .celebration-gift-closed{opacity:0;transform:scale(.9)}.celebration-gift.is-open .celebration-gift-opened{opacity:1;transform:none}.celebration-painted-image{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;pointer-events:none;user-select:none}.celebration-painted-world{position:absolute;inset:0;z-index:0;pointer-events:none}.celebration-painted-world>.celebration-painted-image{position:absolute;width:165px;height:165px;top:0;opacity:.8}.celebration-world-left{left:0;transform:rotate(-7deg)}.celebration-world-right{right:0;transform:rotate(7deg)}.celebration-painted-world-mountains .celebration-world-right,.celebration-painted-world-ocean .celebration-world-right{transform:scaleX(-1) rotate(-7deg)}.celebration-painted-book{position:absolute;left:calc(50% - 98px);bottom:27px;width:196px;height:185px;z-index:4;transform:rotate(-4deg);animation:celebration-bloom .7s ease-out both;pointer-events:none}.celebration-painted-calendar{position:absolute;left:calc(50% - 85px);bottom:24px;width:170px;height:190px;z-index:4;pointer-events:none}.celebration-painted-calendar b{position:absolute;left:40%;top:58%;width:39%;text-align:center;font-size:35px;color:#46326a;font-weight:800;line-height:1;transform:rotate(8deg)}.celebration-painted-garden{position:absolute;inset:0;pointer-events:none;z-index:0}.celebration-painted-garden>.celebration-painted-image{position:absolute;bottom:0;width:145px;height:180px;left:0;transform:rotate(-8deg);animation:celebration-grow .8s ease-out both}.celebration-painted-garden>.celebration-painted-image+img{left:auto;right:0;transform:rotate(8deg);animation-delay:.15s}@media(max-width:600px){.celebration-painted-world>.celebration-painted-image{width:100px;height:110px;top:4px}.celebration-painted-book{width:146px;height:143px;left:calc(50% - 73px);bottom:21px}.celebration-painted-calendar{width:132px;height:156px;left:calc(50% - 66px);bottom:25px}.celebration-painted-calendar b{font-size:28px}.celebration-painted-garden>.celebration-painted-image{width:95px;height:130px}}@media(prefers-reduced-motion:reduce){.celebration-painted-book,.celebration-painted-garden>.celebration-painted-image{animation:none}}.celebration-painted-door{position:absolute;left:calc(50% - 85px);bottom:23px;width:170px;height:205px;padding:0;border:0;background:transparent;perspective:700px;z-index:4;cursor:pointer}.celebration-painted-door-view{position:absolute;left:20%;top:11%;width:52%;height:75%;overflow:hidden}.celebration-painted-door-view img{object-fit:cover}.celebration-painted-door-leaf{display:block;position:absolute;inset:0;transform-origin:20% 50%;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.celebration-painted-door.is-open .celebration-painted-door-leaf{transform:rotateY(-78deg)}.celebration-painted-star{position:absolute;width:160px;height:160px;object-fit:contain;left:calc(50% - 80px);top:0;pointer-events:none;animation:celebration-star-unfurl 1s cubic-bezier(.2,1.6,.4,1) both}.celebration-painted-badge{position:absolute;left:calc(50% - 85px);top:24px;width:170px;height:170px;z-index:4;pointer-events:none;animation:celebration-trophy-in .9s cubic-bezier(.2,1.2,.4,1) .2s both}.celebration-painted-badge>img{display:block;width:100%;height:100%;object-fit:contain}.celebration-painted-badge>span{position:absolute;inset:32% 20% 20%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;font-weight:800;line-height:1.05;color:#46326a;text-shadow:0 1px 1px #fff8}.celebration-painted-badge strong{font-size:38px}@media(max-width:600px){.celebration-painted-door{width:134px;height:171px;left:calc(50% - 67px);bottom:26px}.celebration-painted-star{width:125px;height:125px;left:calc(50% - 62px)}.celebration-painted-badge{width:136px;height:136px;left:calc(50% - 68px);top:28px}.celebration-painted-badge strong{font-size:30px}}@media(prefers-reduced-motion:reduce){.celebration-painted-door-leaf{transition:none}.celebration-painted-star,.celebration-painted-badge{animation:none}}.activity-nav{position:sticky;top:76px;z-index:40;background:var(--card-bg);border:1px solid var(--border-soft);border-radius:16px;margin-bottom:14px;box-shadow:0 3px 12px #17171705}.activity-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;min-height:64px}.activity-bar button,.activity-menu summary{min-height:44px}.activity-back{background:none;border:0;font-weight:600;color:var(--text-muted);white-space:nowrap}.activity-position{display:flex;flex:1;min-width:0;gap:6px;flex-direction:column;font-size:.8rem;font-variant-numeric:tabular-nums}.activity-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;max-width:260px}.activity-save-state{font-size:.7rem;color:var(--text-muted)}.activity-save-state.error{color:#a32468}.activity-menu{position:relative}.activity-menu summary{display:grid;place-items:center;list-style:none;cursor:pointer;width:32px}.activity-menu summary::-webkit-details-marker{display:none}.activity-menu>div{position:absolute;right:0;width:230px;padding:16px;border:1px solid var(--border-soft);border-radius:12px;background:var(--card-bg);box-shadow:var(--shadow-md)}.activity-menu p{font-size:.78rem;color:var(--text-muted);margin-top:8px}.activity-menu button{background:none;border:0;color:var(--zoom);font-weight:600}.activity-questions{margin:0 0 16px;font-size:.82rem}.activity-questions summary{cursor:pointer;padding:10px 4px;min-height:44px}.activity-questions summary span{float:right;color:var(--text-muted)}.activity-question-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:7px;max-height:240px;overflow:auto;padding:8px 2px}.activity-question-grid button{height:44px;border:1px solid var(--border-soft);background:var(--card-bg);border-radius:10px;color:var(--text-muted)}.activity-question-grid .answered{background:#edf8f2;color:#26704c}.activity-question-grid .current{border:2px solid var(--zoom);color:var(--zoom)}.activity-paging{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}.activity-paging button{min-height:44px}.activity-nav>p{padding:0 14px 12px;font-size:.8rem;color:#a32468}.activity-review-note{font-size:.8rem;color:var(--text-muted);margin-bottom:12px}.chill-focus .activity-nav{top:8px}.chill-play>.activity-nav{max-width:1120px;margin:0 auto 20px}.activity-bar button:focus-visible,.activity-question-grid button:focus-visible{outline:2px solid var(--zoom);outline-offset:3px}@media(max-width:600px){.activity-nav{top:72px}.activity-bar{padding:8px;gap:8px}.activity-back span,.activity-title,.activity-save-state{display:none}.activity-position{font-size:.82rem}.activity-bar .btn{padding:8px 10px;white-space:nowrap}.activity-bar .timer{font-size:.8rem}.activity-menu summary{width:24px}.wrap.section:has(.activity-nav){padding:18px 14px}.activity-paging{flex-wrap:wrap}.activity-nav .activity-menu p{line-height:1.5}}@media(prefers-reduced-motion:reduce){.activity-nav *{scroll-behavior:auto}}.saved-activities{margin:16px 0 24px;border:1px solid var(--border-soft);border-radius:16px;padding:12px 18px}.saved-activities summary{font-size:.9rem;font-weight:650;cursor:pointer;min-height:44px;padding-top:10px}.saved-activity{display:flex;gap:16px;justify-content:space-between;align-items:center;min-height:52px;font-size:.85rem;color:var(--text-main);border-top:1px solid var(--border-soft)}.saved-activity>span:last-child{color:var(--zoom);font-size:.78rem;white-space:nowrap}@media(max-width:560px){.saved-activity{flex-wrap:wrap;gap:4px;padding:12px 0}}body:has(.activity-nav) .nav-cta .sign-up-button{display:none}.activity-bar>.btn-secondary{background:var(--card-bg);color:var(--zoom);border:1px solid var(--border-soft);box-shadow:none}.activity-bar>.btn-secondary:hover{border-color:var(--zoom);background:#f5f3ff}.activity-nav a,.activity-nav button{scroll-margin-top:160px}.activity-bar{flex-wrap:nowrap}.activity-guard{position:fixed;inset:0;z-index:250;display:grid;place-items:center;background:#17171755;padding:20px}.activity-guard .card{max-width:440px;padding:24px}.activity-guard p{margin:12px 0;color:var(--text-muted)}@media(max-width:440px){.session-wrap .choice-list.tone-grid{grid-template-columns:minmax(0,1fr)}.session-wrap .q-meta{flex-wrap:wrap}.session-wrap .choice{min-width:0;overflow-wrap:anywhere}}@media(min-width:601px){.wrap.section:has(.activity-nav){padding:32px 24px}}.te{position:relative;cursor:text;outline:none;padding:var(--s-2) 0}.te-text{position:relative;font-family:var(--font-zh);color:var(--c-ink-3);line-height:var(--te-line);letter-spacing:.02em;transition:transform .16s var(--ease);word-break:break-all}.te-xl{--te-size: calc(2.6rem * var(--zh-scale))}.te-lg{--te-size: calc(2rem * var(--zh-scale))}.te-md{--te-size: calc(1.5rem * var(--zh-scale))}.te{--te-line: calc(var(--te-size) * 1.75);font-size:var(--te-size)}.te.show-py{--te-line: calc(var(--te-size) * 2.35)}.te-w.key .te-c{text-decoration:underline dotted color-mix(in srgb,var(--c-panda) 55%,transparent);text-underline-offset:.28em;text-decoration-thickness:2px}.te-c{position:relative;display:inline-block;min-width:.5em;text-align:center;transition:color 90ms linear}.te-c.ok{color:var(--c-ink)}.te-c.ok.fixed{color:var(--c-ink);text-decoration:underline wavy color-mix(in srgb,var(--c-gold) 60%,transparent);text-underline-offset:.3em}.te-c.bad{color:var(--c-rose)}.te-c[data-typed]:after{content:attr(data-typed);position:absolute;left:50%;top:100%;transform:translate(-50%,-.35em);font-size:.42em;color:var(--c-rose);line-height:1;white-space:nowrap}.te-c.hid:before{content:"";position:absolute;left:18%;right:18%;bottom:.18em;border-bottom:3px dotted var(--line-strong)}.te-c.peek{color:var(--c-gold)}.te.show-py .te-c[data-py]:not(.p):before{content:attr(data-py);position:absolute;left:50%;bottom:100%;transform:translate(-50%,.25em);font-family:var(--font-text);font-size:.36em;line-height:1;color:var(--c-ink-3);white-space:nowrap;border:0}.te.show-py .te-c.ok[data-py]:before{color:var(--c-ink-2)}.te.show-py .te-c.hid[data-py]:before{content:attr(data-py);left:50%;right:auto;bottom:100%;border:0}.te-c.flash{animation:te-shake .26s var(--ease);color:var(--c-rose)}@keyframes te-shake{0%,to{transform:none}30%{transform:translate(-3px)}60%{transform:translate(3px)}}.te-c.ok{animation:te-pop .18s var(--ease)}@keyframes te-pop{0%{transform:translateY(2px);opacity:.6}to{transform:none;opacity:1}}.te-caret{position:absolute;left:0;top:0;width:3px;border-radius:2px;background:var(--c-panda);transition:transform 90ms var(--ease);will-change:transform;animation:te-blink 1.1s steps(1) infinite;pointer-events:none}.te:not(.focused) .te-caret{opacity:.25;animation:none}@keyframes te-blink{50%{opacity:0}}.te-comp{position:absolute;left:0;top:0;transform-origin:bottom left;translate:0 -100%;font-family:var(--font-text);font-size:.45em;padding:2px 8px;border-radius:var(--r-pill);background:var(--c-sky-soft);color:var(--c-sky);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity 80ms;z-index:2}.te-chill .te-comp{display:none}.te-candidates{position:absolute;z-index:6;display:flex;gap:4px;max-width:100%;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-sm);font:.85rem var(--font-text)}.te-candidates button{min-height:40px;padding:4px 8px;border-radius:6px;color:var(--c-ink-2);overflow-wrap:anywhere}.te-candidates button:hover,.te-candidates button:focus-visible{background:var(--surface-2);color:var(--c-panda)}.te-candidates button:focus-visible{outline:2px solid var(--c-panda);outline-offset:-2px}.te-chill:not(.focused):not(:focus-within) .te-candidates{display:none}.te-tap{display:none;text-align:center;margin-top:var(--s-2);font-size:.85rem;font-family:var(--font-text)}.ime-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:var(--s-3);padding:8px;border-radius:var(--r-s);background:var(--surface-2);border:1px solid var(--line);font-size:1rem}.ime-buf{font-family:var(--font-text);color:var(--c-sky);font-weight:600;padding:0 6px}.ime-cand{display:inline-flex;align-items:center;gap:4px;min-height:40px;padding:0 10px;border-radius:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font-family:var(--font-zh);font-size:1.2rem}.ime-cand kbd{font-family:var(--font-text);font-size:.7rem;color:var(--c-ink-3)}@media(max-width:560px){.te-lg{--te-size: calc(1.55rem * var(--zh-scale))}.te-xl{--te-size: calc(2.2rem * var(--zh-scale))}.te.show-py{--te-line: calc(var(--te-size) * 2.5)}}.answer .ime-bar,.te .ime-bar{max-width:100%;flex-wrap:wrap}.answer .ime-cand,.te .ime-cand{height:auto;min-height:40px;max-width:100%;white-space:normal;flex-wrap:wrap;text-align:left;padding:.4rem .6rem;overflow-wrap:anywhere}.answer .ime-cand small,.te .ime-cand small{font-family:var(--font-text);font-size:.75rem;overflow-wrap:anywhere}.answer .ime-buf,.te .ime-buf{max-width:100%;overflow-wrap:anywhere;white-space:normal}:root{--fluff:#f4b5de;--poison:#dff700;--busy:#fa58a7;--zoom:#3f22ec;--meeting:#03e29d;--giraffe:#efca62;--background:#ffffff;--text-main:#171717;--text-muted:#6b7280;--border-soft:#e5e7eb;--card-bg:#ffffff;--shadow-sm:0 1px 2px rgba(17,17,17,.04),0 1px 3px rgba(17,17,17,.06);--shadow-md:0 4px 6px -1px rgba(17,17,17,.05),0 10px 24px -6px rgba(17,17,17,.1);--shadow-lg:0 20px 48px -12px rgba(63,34,236,.18);--r:20px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;color:var(--text-main);background:var(--background);line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(680px 460px at 88% -8%,rgba(63,34,236,.06),transparent 60%),radial-gradient(560px 420px at -6% 12%,rgba(3,226,157,.07),transparent 60%),radial-gradient(620px 520px at 50% 118%,rgba(250,88,167,.05),transparent 60%)}h1,h2,h3,h4,.display{font-family:Manrope,sans-serif;letter-spacing:-.02em;line-height:1.12}.mono{font-family:JetBrains Mono,monospace}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--poison);color:var(--text-main)}.btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.95rem;padding:.72rem 1.4rem;border-radius:999px;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;white-space:nowrap}.btn:active{transform:translateY(1px) scale(.99)}.btn-primary{background:var(--zoom);color:#fff;box-shadow:0 6px 18px -6px #3f22ec99}.btn-primary:hover{box-shadow:0 10px 28px -6px #3f22ecb3;transform:translateY(-1px)}.btn-secondary{background:var(--poison);color:var(--text-main)}.btn-secondary:hover{filter:brightness(.97);transform:translateY(-1px)}.btn-ghost{background:#fff;border:1px solid var(--border-soft);color:var(--text-main)}.btn-ghost:hover{border-color:#cfcfe6;box-shadow:var(--shadow-sm)}.btn-success{background:var(--meeting);color:#04261b}.btn-lg{padding:.95rem 1.9rem;font-size:1.02rem}.btn-sm{padding:.5rem 1rem;font-size:.85rem}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none}.nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.85rem clamp(1rem,4vw,2.5rem);background:#ffffffd1;backdrop-filter:blur(14px);border-bottom:1px solid var(--border-soft)}.brand{display:flex;align-items:center;gap:.6rem;font-family:Manrope;font-weight:800;font-size:1.18rem;letter-spacing:-.03em;white-space:nowrap;flex:none}.brand .logo{width:34px;height:34px;border-radius:11px;background:var(--zoom);display:grid;place-items:center;box-shadow:0 4px 12px -3px #3f22ec80}.brand .logo span{color:var(--poison);font-weight:800;font-size:1.1rem}.nav-links{display:flex;align-items:center;gap:.35rem}.nav-links a{padding:.5rem .85rem;border-radius:999px;font-weight:500;font-size:.92rem;color:var(--text-muted);transition:.18s}.nav-links a:hover{color:var(--text-main);background:#f6f6fb}.nav-links a.active{color:var(--zoom);background:#3f22ec14;font-weight:600}.nav-cta{display:flex;align-items:center;gap:.6rem;flex:none}.streak-pill{display:inline-flex;align-items:center;gap:.35rem;font-weight:700;font-size:.85rem;padding:.4rem .8rem;border-radius:999px;background:var(--giraffe);color:#4a370a}.menu-toggle{display:none}.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}.section{padding:clamp(2.5rem,6vw,4.5rem) 0}.card{background:var(--card-bg);border:1px solid var(--border-soft);border-radius:var(--r);box-shadow:var(--shadow-sm)}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center;padding-top:clamp(2rem,5vw,3.5rem)}.hero-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;color:var(--zoom);background:#3f22ec12;padding:.4rem .85rem;border-radius:999px;margin-bottom:1.3rem}.hero h1{font-size:clamp(2.4rem,5.2vw,3.7rem);font-weight:800}.hero h1 .grad{background:linear-gradient(105deg,var(--zoom),var(--busy));-webkit-background-clip:text;background-clip:text;color:transparent}.hero p.lead{font-size:1.12rem;color:var(--text-muted);margin:1.2rem 0 1.9rem;max-width:30rem}.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap}.hero-stats{display:flex;gap:1.8rem;margin-top:2.2rem}.hero-stats .s b{font-family:Manrope;font-size:1.5rem;font-weight:800;display:block}.hero-stats .s span{font-size:.82rem;color:var(--text-muted)}.hero-visual{position:relative}.demo-card{background:#fff;border:1px solid var(--border-soft);border-radius:24px;box-shadow:var(--shadow-lg);padding:1.4rem;transform:rotate(1.2deg)}.demo-card .dc-q{font-weight:600;font-size:.96rem;margin-bottom:.9rem}.demo-card .dc-type{font-size:.72rem;font-weight:700;color:var(--zoom);background:#3f22ec14;padding:.2rem .6rem;border-radius:999px;display:inline-block;margin-bottom:.7rem}.demo-trace{font-family:JetBrains Mono;font-size:.9rem;line-height:1.7;background:#fafafe;border:1px solid var(--border-soft);border-radius:14px;padding:.9rem}.demo-trace .ok{color:var(--meeting)}.demo-trace .bad{color:var(--busy);background:#fa58a71f;border-radius:3px}.demo-trace .cur{border-bottom:2px solid var(--zoom)}.demo-trace .pend{color:#bdbdca}.float-mascot{position:absolute;bottom:-32px;left:-26px;width:96px;filter:drop-shadow(0 12px 18px rgba(63,34,236,.22));animation:bob 4s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-9px)}}.loop{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-top:2rem}.loop .step{background:#fff;border:1px solid var(--border-soft);border-radius:16px;padding:1rem;position:relative}.loop .step .n{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:.8rem;font-family:Manrope;color:#fff;margin-bottom:.6rem}.loop .step h4{font-size:.95rem;margin-bottom:.25rem}.loop .step p{font-size:.82rem;color:var(--text-muted)}.section-head{text-align:center;max-width:36rem;margin:0 auto 2.4rem}.section-head h2{font-size:clamp(1.8rem,4vw,2.4rem);font-weight:800}.section-head p{color:var(--text-muted);margin-top:.6rem}.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;align-items:stretch}.price-card{background:#fff;border:1px solid var(--border-soft);border-radius:24px;padding:1.8rem;display:flex;flex-direction:column;position:relative;transition:.2s}.price-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.price-card.feat{border:2px solid var(--zoom);box-shadow:var(--shadow-lg)}.price-card .badge{position:absolute;top:-13px;left:50%;transform:translate(-50%);background:var(--zoom);color:#fff;font-size:.72rem;font-weight:700;padding:.3rem .9rem;border-radius:999px}.price-card h3{font-size:1.2rem;margin-bottom:.3rem}.price-card .amt{font-family:Manrope;font-size:2.4rem;font-weight:800;margin:.3rem 0}.price-card .amt small{font-size:.9rem;font-weight:500;color:var(--text-muted)}.price-card ul{list-style:none;margin:1.2rem 0;flex:1;display:flex;flex-direction:column;gap:.6rem}.price-card li{font-size:.9rem;display:flex;gap:.55rem;align-items:flex-start;color:#3f3f46}.price-card li svg{flex-shrink:0;margin-top:3px}.page-title{font-size:clamp(1.6rem,3.5vw,2.1rem);font-weight:800;margin-bottom:.3rem}.page-sub{color:var(--text-muted);margin-bottom:1.8rem}.paper-line{color:var(--text-soft);font-weight:600;font-size:.95rem;margin:-.05rem 0 1.4rem}.paper-line b{font-family:JetBrains Mono,monospace;letter-spacing:.3px;color:var(--text-main)}.exam-code{font-family:JetBrains Mono,monospace;font-weight:700;font-size:.72rem;letter-spacing:.4px;background:#eef0ff;color:var(--zoom);padding:.12rem .45rem;border-radius:6px;vertical-align:middle}.exam-code.lg{font-size:.62em;padding:.18rem .5rem}.crumb{display:flex;gap:.5rem;align-items:center;font-size:.85rem;color:var(--text-muted);margin-bottom:1.1rem;flex-wrap:wrap}.crumb b{color:var(--text-main)}.crumb .sep{opacity:.4}.back-row{display:flex;gap:.5rem;align-items:center;margin-bottom:1.1rem;flex-wrap:wrap}.back-btn{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;font-size:.85rem;color:var(--text-muted);background:#fff;border:1px solid var(--border-soft);border-radius:999px;padding:.42rem .9rem;cursor:pointer;transition:.15s}.back-btn:hover{color:var(--text-main);border-color:#cdcde8;background:#f9f9fc}.back-btn.ghost{color:var(--zoom)}.sel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}.sel-card{background:#fff;border:1px solid var(--border-soft);border-radius:18px;padding:1.3rem;cursor:pointer;transition:.18s;position:relative;overflow:hidden}.sel-card:hover{border-color:#cdcde8;box-shadow:var(--shadow-md);transform:translateY(-2px)}.sel-card .ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:1.3rem;margin-bottom:.85rem}.sel-card h4{font-size:1.05rem;margin-bottom:.2rem}.sel-card .meta{font-size:.82rem;color:var(--text-muted)}.sel-card .locktag{position:absolute;top:.9rem;right:.9rem;font-size:.7rem;font-weight:700;color:#9a6a00;background:var(--giraffe);padding:.15rem .55rem;border-radius:999px}.sel-card.locked{opacity:.85}.mastery-bar{height:6px;border-radius:999px;background:#f0f0f5;margin-top:.9rem;overflow:hidden}.mastery-bar i{display:block;height:100%;border-radius:999px;transition:width .5s}.sel-card .mlabel{font-size:.72rem;font-weight:600;margin-top:.45rem;color:var(--text-muted)}.mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem}.mode-card{border:1px solid var(--border-soft);border-radius:18px;padding:1.4rem;cursor:pointer;background:#fff;transition:.18s}.mode-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:#cdcde8}.mode-card .ic{font-size:1.5rem;margin-bottom:.6rem}.mode-card h4{font-size:1.05rem;margin-bottom:.3rem}.mode-card p{font-size:.85rem;color:var(--text-muted)}.session-wrap{max-width:780px;margin:0 auto}.q-header{position:sticky;top:62px;z-index:20;background:#ffffffe6;backdrop-filter:blur(10px);border:1px solid var(--border-soft);border-radius:16px;padding:.8rem 1.1rem;margin-bottom:1.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.q-progress{flex:1;min-width:140px}.q-progress .bar{height:8px;border-radius:999px;background:#f0f0f5;overflow:hidden}.q-progress .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--zoom),var(--busy));border-radius:999px;transition:width .4s}.q-progress .lab{font-size:.76rem;color:var(--text-muted);margin-top:.3rem}.q-meta{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.tag{font-size:.74rem;font-weight:700;padding:.25rem .65rem;border-radius:999px}.tag.type{background:#3f22ec14;color:var(--zoom)}.tag.marks{background:var(--poison);color:#3a3a00}.tag.topic{background:#f4f4f8;color:#52525b}.timer{font-family:JetBrains Mono;font-weight:600;font-size:.9rem;color:var(--text-muted)}.q-card{padding:clamp(1.3rem,3vw,2rem)}.q-text{font-size:1.25rem;font-weight:600;font-family:Manrope;line-height:1.4;margin-bottom:1.3rem}.answer-box{width:100%;max-width:100%;min-height:150px;border:1.5px solid var(--border-soft);border-radius:16px;padding:1rem 1.1rem;font-size:1.02rem;font-family:Inter;resize:vertical;transition:.18s;color:var(--text-main);background:#fcfcff;overflow-wrap:anywhere;word-break:break-word}.answer-box:focus{outline:none;border-color:var(--zoom);box-shadow:0 0 0 4px #3f22ec1a;background:#fff}.sym-pad{margin:.6rem 0 0}.sym-toggle{font-family:Manrope;font-weight:700;font-size:.82rem;color:var(--zoom);background:#3f22ec12;border:1px solid var(--border-soft);border-radius:999px;padding:.35rem .85rem;cursor:pointer;transition:background .15s}.sym-toggle:hover{background:#3f22ec21}.sym-tray{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.6rem}.sym-tray[hidden]{display:none}.sym-caret{display:inline-block;font-size:.7rem;transition:transform .15s}.sym-toggle.open{background:#3f22ec29}.sym-btn{min-width:36px;height:36px;padding:0 .5rem;border:1px solid var(--border-soft);border-radius:10px;background:#fff;font-size:1rem;font-family:JetBrains Mono,Inter,monospace;cursor:pointer;color:var(--text-main);transition:border-color .12s,background .12s,transform .08s}.sym-btn:hover{border-color:var(--zoom);background:#3f22ec0f}.sym-btn:active{transform:scale(.92)}.ic-svg{display:inline-block;vertical-align:-.15em;flex:none}.topic-card .ic .ic-svg,.mode-card .ic .ic-svg,.pc-card .pc-ic .ic-svg{width:24px;height:24px}.mode-card .ic{color:var(--zoom)}.stat .lab .ic-svg{width:15px;height:15px;vertical-align:-.18em;margin-right:.25rem;opacity:.85}.subj-ic .ic-svg,.ds-ic .ic-svg{width:20px;height:20px}.onb-opt .ic .ic-svg{width:26px;height:26px}.locktag .ic-svg,.pc-lock .ic-svg{width:13px;height:13px;margin-right:.15rem}.panel h3 .ic-svg,.weak-panel h3 .ic-svg{width:18px;height:18px;margin-right:.3rem;vertical-align:-.18em}.footer-links{margin-top:.7rem;font-size:.8rem}.footer-links a{color:var(--zoom);text-decoration:none;font-weight:600}.footer-links a:hover{text-decoration:underline}.legal-card{max-width:760px;margin:0 auto;text-align:left}.legal-card h3{margin:1.4rem 0 .4rem;font-size:1.05rem;color:var(--text-main)}.legal-card p,.legal-card li{color:var(--text-soft);line-height:1.6;font-size:.95rem}.legal-card ul{margin:.3rem 0 .3rem 1.1rem;display:flex;flex-direction:column;gap:.35rem}.legal-updated{color:var(--text-muted);font-size:.85rem;margin-bottom:.4rem}.legal-note{margin-top:1.6rem;padding:.85rem 1rem;background:#f7f7fc;border-radius:10px;font-size:.82rem;color:var(--text-muted)}.legal-foot{margin-top:1.4rem}.price-card{position:relative}.badge-soft{background:#eef0ff;color:var(--zoom)}.price-tag{color:var(--text-muted);font-size:.88rem;margin-top:.15rem}.price-strike{color:var(--text-muted);font-size:.82rem;margin:.1rem 0 .2rem}.price-strike{text-decoration:none}.price-fine{color:var(--text-muted);font-size:.76rem;margin-top:.6rem;text-align:center}.price-codes{text-align:center;color:var(--text-muted);font-size:.85rem;margin:1.4rem auto 0;max-width:520px}.dprice-badge.soft{background:#eef0ff;color:var(--zoom)}.refer-card{position:relative;overflow:hidden;display:flex;gap:1.1rem;align-items:flex-start;max-width:680px;margin:1.8rem auto 0;text-align:left;padding:1.45rem 1.55rem;border-radius:18px;background:linear-gradient(135deg,#f6f4ff,#eef0ff 55%,#e7fbf4);border:1.5px solid rgba(63,34,236,.12);box-shadow:0 12px 30px -16px #3f22ec66}.refer-card:after{content:"";position:absolute;right:-44px;top:-44px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(3,226,157,.22),transparent 70%);pointer-events:none}.refer-ic{flex:none;width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,var(--zoom),#6a4bff);color:#fff;box-shadow:0 7px 16px -5px #3f22ec8c}.refer-body{position:relative;z-index:1;flex:1;min-width:0}.refer-body h3{margin:0 0 .35rem;font-size:1.18rem;font-family:Manrope;font-weight:800}.refer-body p{color:var(--text-soft);font-size:.92rem;line-height:1.55;margin:0 0 1rem}.refer-row{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.refer-btn{display:inline-flex;align-items:center;gap:.5rem;border:none;cursor:pointer;font-family:Manrope;font-weight:800;font-size:.92rem;color:#fff;padding:.62rem 1.15rem;border-radius:999px;background:linear-gradient(135deg,var(--zoom),#6a4bff);box-shadow:0 9px 18px -6px #3f22ec8c;transition:transform .08s ease,box-shadow .12s ease,filter .12s ease}.refer-btn:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 13px 24px -6px #3f22ec99}.refer-btn:active{transform:translateY(0)}.refer-btn .refer-arrow{transition:transform .12s ease}.refer-btn:hover .refer-arrow{transform:translate(3px)}.refer-label{font-size:.78rem;color:var(--text-muted)}.refer-code{font-family:JetBrains Mono,monospace;font-weight:700;background:var(--poison);color:#1a1a00;padding:.2rem .6rem;border-radius:8px;letter-spacing:.5px}.onb-wide{max-width:680px}.onb-opt.subj .onb-tick{width:22px;height:22px;border-radius:50%;border:2px solid var(--border-soft);display:grid;place-items:center;color:#fff;font-size:.7rem;font-weight:800}.onb-assign-list{display:flex;flex-direction:column;gap:.8rem;margin-top:1rem;text-align:left}.onb-assign{border:1.5px solid var(--border-soft);border-radius:14px;padding:.9rem 1rem}.oa-head{display:flex;align-items:center;gap:.5rem;font-family:Manrope;font-weight:700;margin-bottom:.6rem}.oa-selects{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.oa-selects label{display:flex;flex-direction:column;gap:.25rem;font-size:.76rem;color:var(--text-muted);font-weight:600}.oa-select{font-family:inherit;font-size:.9rem;padding:.5rem .6rem;border:1.5px solid var(--border-soft);border-radius:10px;background:#fff;color:var(--text-main)}.oa-papers{margin-top:.7rem}.oa-papers-lab{display:block;font-size:.76rem;color:var(--text-muted);font-weight:600;margin-bottom:.4rem}.oa-papers-lab small{font-weight:500}.oa-paper-chips{display:flex;flex-wrap:wrap;gap:.4rem}.oa-chip{font-family:inherit;font-size:.8rem;padding:.4rem .7rem;border:1.5px solid var(--border-soft);border-radius:999px;background:#fff;color:var(--text-soft);cursor:pointer;transition:border-color .1s,background .1s}.oa-chip:hover{border-color:var(--zoom)}.oa-chip.on{font-weight:700}.msub-papers{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.1rem}.msub-paper{font-family:inherit;font-size:.72rem;padding:.22rem .5rem;border:1.3px solid var(--border-soft);border-radius:999px;background:#fff;color:var(--text-muted);cursor:pointer;transition:border-color .1s,background .1s}.msub-paper:hover{border-color:var(--zoom);color:var(--zoom)}.msub-paper.on{font-weight:700}@media(max-width:520px){.oa-selects{grid-template-columns:1fr}}.paper-picker{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:.2rem 0 1.3rem}.paper-picker .pp-lab{font-size:.72rem;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.pp-chips{display:flex;flex-wrap:wrap;gap:.45rem}.pp-chip{font-family:inherit;font-size:.84rem;font-weight:600;padding:.42rem .85rem;border:1.5px solid var(--border-soft);border-radius:999px;background:#fff;color:var(--text-soft);cursor:pointer;transition:border-color .1s,background .1s,color .1s}.pp-chip:hover{border-color:var(--zoom);color:var(--zoom)}.pp-chip.on{font-weight:800}.msub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.8rem}.msub-card{text-align:left;background:#fff;border:1.5px solid var(--border-soft);border-radius:16px;padding:.9rem 1rem;cursor:pointer;display:flex;flex-direction:column;gap:.45rem;transition:border-color .12s,transform .08s,box-shadow .12s}.msub-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px #14142812}.msub-card.active{box-shadow:0 6px 18px #14142814}.msub-top{display:flex;align-items:center;gap:.55rem}.msub-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none}.msub-name{font-family:Manrope;font-weight:800;font-size:1rem}.msub-meta{font-size:.74rem;color:var(--text-muted)}.msub-bar{height:7px;border-radius:99px;background:#eee;overflow:hidden}.msub-bar i{display:block;height:100%;border-radius:99px}.msub-stats{font-size:.74rem;color:var(--text-soft);font-weight:600}.msub-add{border:1.5px dashed var(--border-soft);border-radius:16px;background:#fafafe;color:var(--text-muted);font-weight:600;font-size:.85rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;min-height:120px}.msub-add:hover{border-color:var(--zoom);color:var(--zoom)}.msub-add-ic{display:grid;place-items:center}.refer-status{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;color:#04936a;font-weight:800;background:#03e29d29;padding:.38rem .75rem;border-radius:999px}.refer-il{display:flex;flex-direction:column;gap:.2rem;text-align:left;font-size:.78rem;color:var(--text-muted);font-weight:600;margin-bottom:.5rem}.refer-linkbox{display:flex;align-items:center;gap:.5rem;background:#f7f7fc;border-radius:10px;padding:.5rem .7rem;margin:.6rem 0}.refer-linkbox code{flex:1;font-family:JetBrains Mono,monospace;font-size:.78rem;word-break:break-all;color:var(--zoom)}.refer-progress{display:flex;flex-direction:column;gap:.35rem;margin:.6rem 0;text-align:left}.rp-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;gap:.5rem}.rp-on{color:var(--meeting);font-weight:700;font-size:.78rem}.rp-off{color:var(--text-muted);font-size:.78rem}.refer-count{font-weight:700;text-align:center;margin:.3rem 0}.refer-codebig{text-align:center;background:#03e29d1f;border-radius:10px;padding:.7rem;margin:.5rem 0}.refer-codebig b{font-family:JetBrains Mono,monospace;letter-spacing:.5px}.mode-card-mcq{border-color:var(--meeting)}.mcq-choices{display:flex;flex-direction:column;gap:.7rem;margin-top:1.2rem}.mcq-choice{display:flex;align-items:center;gap:.85rem;text-align:left;width:100%;background:#fff;border:1.5px solid var(--border-soft);border-radius:14px;padding:.85rem 1rem;font-family:inherit;font-size:1rem;color:var(--text-main);cursor:pointer;transition:border-color .12s,background .12s,transform .08s}.mcq-choice:hover:not(.locked){border-color:var(--zoom);background:#3f22ec0a}.mcq-choice:active:not(.locked){transform:scale(.99)}.mcq-letter{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-family:Manrope;font-weight:800;font-size:.9rem;background:#3f22ec1a;color:var(--zoom)}.mcq-ctext{flex:1}.mcq-choice.locked{cursor:default}.mcq-choice.correct{border-color:var(--meeting);background:#03e29d1f}.mcq-choice.correct .mcq-letter{background:var(--meeting);color:#063}.mcq-choice.wrong{border-color:var(--busy);background:#fa58a71a}.mcq-choice.wrong .mcq-letter{background:var(--busy);color:#fff}.mcq-model{background:#f7f7fc;border-left:3px solid var(--meeting);border-radius:10px;padding:.85rem 1rem;margin:.4rem 0 1rem;font-size:.95rem;line-height:1.5}.q-actions{display:flex;gap:.7rem;margin-top:1.1rem;align-items:center;flex-wrap:wrap}.hint-link{font-size:.85rem;color:var(--text-muted);cursor:pointer;margin-left:auto}.hint-link:hover{color:var(--zoom)}.fb{margin-top:1.3rem;border-radius:16px;padding:1.2rem;border:1px solid var(--border-soft)}.fb.win{background:#03e29d12;border-color:#03e29d66}.fb.partial{background:#fa58a70f;border-color:#fa58a759}.fb-score{display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem}.fb-score .ring{width:54px;height:54px;flex-shrink:0}.fb-score h3{font-size:1.15rem}.fb-score p{font-size:.85rem;color:var(--text-muted)}.fb-list{display:grid;gap:.4rem;margin:.6rem 0}.fb-list .row{display:flex;gap:.55rem;align-items:flex-start;font-size:.92rem}.fb-list .row.inc{color:#0a6b4d}.fb-list .row.miss{color:#a32468}.fb-list .row svg{flex-shrink:0;margin-top:3px}.fb-tip{background:#fff;border:1px dashed var(--giraffe);border-radius:12px;padding:.75rem .9rem;font-size:.88rem;margin-top:.8rem;display:flex;gap:.6rem;align-items:flex-start}.fb-tip b{color:#9a6a00}.fb-sub{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:1rem 0 .4rem}.model-reveal{background:#fff;border:1px solid var(--border-soft);border-radius:12px;padding:.9rem 1rem;font-size:.95rem;line-height:1.7;overflow-wrap:anywhere;word-break:break-word;max-width:100%}.mascot-bubble{display:flex;gap:.8rem;align-items:flex-start;margin-top:1.2rem;background:#faf7ff;border:1px solid #ece6ff;border-radius:16px;padding:.9rem 1rem}.mascot-bubble .m{width:48px;flex-shrink:0}.mascot-bubble .txt{font-size:.92rem}.mascot-bubble .txt b{color:var(--zoom)}.trace-stage{margin-top:1.2rem}.trace-box{font-family:JetBrains Mono;font-size:clamp(.96rem,2.4vw,1.06rem);line-height:1.85;background:#fafafe;border:1.5px solid var(--border-soft);border-radius:16px;padding:clamp(1rem,3vw,1.4rem);cursor:text;min-height:150px;letter-spacing:.2px;transition:.18s;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%;overflow-x:hidden}.trace-box.focus{border-color:var(--zoom);box-shadow:0 0 0 4px #3f22ec1a}.trace-box .ok{color:#0a8f63}.trace-box .bad{color:var(--busy);background:#fa58a729;border-radius:3px}.trace-box .bad.sp{background:#fa58a747}.trace-box .pend{color:#c2c2cf}.trace-box .cur{position:relative}.trace-box .cur:before{content:"";position:absolute;left:-1px;top:6%;height:88%;width:2px;background:var(--zoom);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.trace-stats{display:flex;gap:1.4rem;margin-top:.9rem;align-items:center;flex-wrap:wrap}.trace-stats .st b{font-family:Manrope;font-size:1.3rem;font-weight:800;display:block;line-height:1}.trace-stats .st span{font-size:.74rem;color:var(--text-muted)}.trace-acc-bar{flex:1;min-width:120px;height:8px;border-radius:999px;background:#f0f0f5;overflow:hidden}.trace-acc-bar i{display:block;height:100%;border-radius:999px;transition:width .25s}.hidden-input{position:absolute;opacity:0;pointer-events:none;left:-9999px}.trace-modes{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin:.5rem 0 1.1rem}.trace-mode{text-align:left;background:#fff;border:1.5px solid var(--border-soft);border-radius:14px;padding:.85rem 1rem;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;font-family:inherit;color:var(--text-main);min-width:0;transition:border-color .15s,box-shadow .15s,background .15s}.trace-mode:hover{border-color:#cdcde8;box-shadow:var(--shadow-sm)}.trace-mode b{font-family:Manrope;font-size:.98rem;display:flex;align-items:center;gap:.55rem;line-height:1.2}.trace-mode span{font-size:.8rem;color:var(--text-muted);line-height:1.4}.trace-mode .tm-dot{width:16px;height:16px;border-radius:50%;border:2px solid #cfcfe0;flex:none;display:grid;place-items:center;background:#fff}.trace-mode.on{border-color:var(--zoom);background:#3f22ec0b;box-shadow:0 0 0 3px #3f22ec1a}.trace-mode.on .tm-dot{border-color:var(--zoom)}.trace-mode.on .tm-dot:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--zoom)}.trace-mode:focus-visible{outline:3px solid rgba(63,34,236,.4);outline-offset:2px}.tm-pill{font-size:.68rem;font-weight:800;padding:.12rem .5rem;border-radius:999px;background:#eef0ff;color:var(--zoom);margin-left:auto;white-space:nowrap}@media(max-width:560px){.trace-modes{grid-template-columns:1fr}}mark.kt{background:#efca6257;color:inherit;border-radius:4px;padding:0 .1em;box-shadow:inset 0 -2px #9a6a0099}mark.kt.kt-ok{background:#03e29d33;box-shadow:inset 0 -2px #0a8f63}mark.kt.kt-bad{background:#fa58a72e;box-shadow:inset 0 -2px 0 var(--busy)}.kt-legend{font-size:.78rem;color:var(--text-muted);margin:.55rem 0 0;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.kt-legend i{display:inline-block;width:16px;height:12px;border-radius:3px;background:#efca6257;box-shadow:inset 0 -2px #9a6a0099}.kt-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.35rem 0 .2rem}.kt-chip{font-size:.78rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;background:#efca6247;color:#5b4200}.kt-chip.ok{background:#03e29d2e;color:#0a6b4d}.kt-chip.miss{background:#fa58a724;color:#a32468}.kb-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;font-size:.86rem;font-weight:700;margin:.2rem 0 .4rem;flex-wrap:wrap}.kb-head small{font-weight:500;color:var(--text-muted)}.kb-bar{height:8px;border-radius:999px;background:#f0f0f5;overflow:hidden;margin-bottom:.9rem}.kb-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--zoom),var(--meeting));border-radius:999px;transition:width .3s}.kb-list{list-style:none;display:flex;flex-direction:column;gap:.55rem;margin:0;padding:0}.kb-item{border:1.5px solid var(--border-soft);border-radius:14px;padding:.7rem .85rem;background:#fff;display:flex;gap:.7rem;align-items:flex-start;min-width:0;transition:border-color .18s,background .18s,opacity .18s}.kb-item .kb-num{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-family:Manrope;font-weight:800;font-size:.78rem;background:#f4f4f8;color:#52525b}.kb-item .kb-body{flex:1;min-width:0}.kb-item .kb-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.15rem;display:flex;gap:.5rem;align-items:center}.kb-item.locked{opacity:.6}.kb-item.locked .kb-text{color:var(--text-muted)}.kb-item.active{border-color:var(--zoom);box-shadow:0 0 0 4px #3f22ec1a}.kb-item.active .kb-num{background:var(--zoom);color:#fff}.kb-item.done{border-color:#03e29d8c;background:#03e29d0f}.kb-item.done .kb-num{background:var(--meeting);color:#04261b}.kb-item .trace-box{min-height:0;padding:.55rem .7rem;margin-top:.2rem;border-radius:10px;font-size:clamp(.92rem,2.3vw,1rem);line-height:1.75}.kb-text{font-size:.95rem;line-height:1.6;overflow-wrap:anywhere;word-break:break-word}.kt-summary{margin-top:.9rem;border:1px solid var(--border-soft);border-radius:12px;padding:.75rem .9rem;font-size:.88rem;background:#fff}.kt-summary b{font-family:Manrope}.fb-note{font-size:.76rem;color:var(--text-muted);margin-top:.7rem;line-height:1.45}.fb-mini{font-size:.86rem;color:#3f3f46;margin:.25rem 0 .1rem;line-height:1.5}.fb-mini ul{margin:.2rem 0 0 1.1rem}.fb-mini li{margin:.12rem 0}.fb-list .row.miss .why{display:block;font-size:.8rem;color:var(--text-muted);margin-top:.1rem}.trace-switch{font-size:.82rem;color:var(--text-muted);cursor:pointer;background:none;border:none;font-family:inherit;text-decoration:underline;padding:.2rem .1rem}.trace-switch:hover{color:var(--zoom)}.trace-switch:focus-visible{outline:2px solid rgba(63,34,236,.4);outline-offset:2px;border-radius:4px}.wb-card{padding:clamp(1.3rem,3vw,2rem)}.wb-kicker{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--busy);margin-bottom:.5rem}.wb-blank{display:inline-block;border-bottom:2px solid var(--zoom);min-width:90px;font-family:JetBrains Mono;font-size:.95rem;padding:.1rem .3rem;text-align:center;color:var(--zoom);background:#3f22ec0a}.wb-blank-input{display:inline-block;border:none;border-bottom:2px solid var(--zoom);min-width:100px;width:auto;font-family:JetBrains Mono;font-size:.95rem;padding:.15rem .3rem;text-align:center;background:#3f22ec0d;color:var(--text-main)}.wb-blank-input:focus{outline:none;background:#3f22ec1f}.wb-blank-input.right{border-color:var(--meeting);color:#0a8f63;background:#03e29d1a}.wb-blank-input.wrong{border-color:var(--busy);color:var(--busy);background:#fa58a71a}.wb-text{font-size:1.08rem;line-height:2.2}.wb-chunks{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0}.wb-chunk{background:#fff;border:1.5px solid var(--border-soft);border-radius:12px;padding:.75rem 1rem;font-size:.95rem;cursor:grab;display:flex;gap:.7rem;align-items:center;transition:.15s;user-select:none}.wb-chunk:hover{border-color:#cdcde8}.wb-chunk.dragging{opacity:.5;border-style:dashed}.wb-chunk.over{border-color:var(--zoom);box-shadow:0 0 0 3px #3f22ec1f}.wb-chunk .grip{color:#c4c4d0;font-size:1.1rem;cursor:grab}.wb-chunk .num{width:22px;height:22px;border-radius:7px;background:#f4f4f8;display:grid;place-items:center;font-size:.78rem;font-weight:700;flex-shrink:0}.wb-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.wb-chip{padding:.5rem .95rem;border-radius:999px;border:1.5px solid var(--border-soft);background:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:.15s}.wb-chip:hover{border-color:#cdcde8}.wb-chip.sel{background:var(--zoom);color:#fff;border-color:var(--zoom)}.wb-chip.right{background:var(--meeting);color:#04261b;border-color:var(--meeting)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.stat{background:#fff;border:1px solid var(--border-soft);border-radius:18px;padding:1.2rem}.stat .lab{font-size:.8rem;color:var(--text-muted);display:flex;gap:.4rem;align-items:center;margin-bottom:.5rem}.stat .val{font-family:Manrope;font-size:2rem;font-weight:800;line-height:1}.stat .val small{font-size:.95rem;color:var(--text-muted);font-weight:600}.dash-2col{display:grid;grid-template-columns:1.3fr 1fr;gap:1.2rem}.panel{background:#fff;border:1px solid var(--border-soft);border-radius:20px;padding:1.4rem}.panel h3{font-size:1.05rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.weak-row{display:flex;align-items:center;gap:.9rem;padding:.7rem 0;border-bottom:1px solid #f3f3f7}.weak-row:last-child{border-bottom:none}.weak-row .nm{flex:1;font-weight:600;font-size:.92rem}.weak-row .pct{font-family:JetBrains Mono;font-size:.85rem;font-weight:600;color:var(--text-muted)}.weak-row .mini{width:90px;height:7px;border-radius:999px;background:#f0f0f5;overflow:hidden}.weak-row .mini i{display:block;height:100%;border-radius:999px}.reco{background:linear-gradient(120deg,#3f22ec0d,#fa58a70d);border:1px solid #ece6ff;border-radius:16px;padding:1.1rem;display:flex;gap:.9rem;align-items:center;margin-top:1rem}.reco .m{width:54px;flex-shrink:0}.reco .t{flex:1}.reco .t b{display:block;font-size:.96rem;margin-bottom:.15rem}.reco .t span{font-size:.83rem;color:var(--text-muted)}.empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty .m{width:110px;margin:0 auto 1rem}.empty h3{color:var(--text-main);margin-bottom:.4rem}.modal-bg{position:fixed;inset:0;background:#1111116b;backdrop-filter:blur(4px);z-index:100;display:grid;place-items:center;padding:1rem;animation:fade .2s}@keyframes fade{0%{opacity:0}}.modal{background:#fff;border-radius:24px;max-width:440px;width:100%;padding:2rem;box-shadow:var(--shadow-lg);text-align:center;animation:pop .25s}@keyframes pop{0%{transform:scale(.93);opacity:0}}.modal .m{width:84px;margin:0 auto .8rem}.modal h3{font-size:1.4rem;margin-bottom:.5rem}.modal p{color:var(--text-muted);margin-bottom:1.3rem;font-size:.95rem}.modal .actions{display:flex;flex-direction:column;gap:.6rem}.modal .small{font-size:.78rem;margin-top:.4rem}.close-x{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--text-muted);background:#f5f5f9}.close-x:hover{background:#ececf3}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:var(--text-main);color:#fff;padding:.8rem 1.3rem;border-radius:999px;font-size:.9rem;font-weight:500;z-index:200;box-shadow:var(--shadow-lg);animation:toastin .3s}@keyframes toastin{0%{transform:translate(-50%,16px);opacity:0}}.confetti{position:fixed;width:9px;height:14px;z-index:300;pointer-events:none;border-radius:2px;top:-20px}.fxbit{position:fixed;z-index:300;pointer-events:none;will-change:transform,opacity;line-height:1}.fade-in{animation:fadein .4s ease}@keyframes fadein{0%{opacity:0;transform:translateY(8px)}}.footer{border-top:1px solid var(--border-soft);padding:2rem 0;color:var(--text-muted);font-size:.85rem;text-align:center}.footer a{color:var(--zoom)}img,svg{max-width:100%}.session-wrap{min-width:0}.practice-shell{width:min(100% - 32px,1120px);margin:0 auto}.q-card,.wb-card{max-width:100%}.brand .logo{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#efe9ff,#e2f9f0);box-shadow:0 4px 12px -4px #3f22ec59;overflow:hidden;display:grid;place-items:center}.brand .logo svg{width:28px;height:28px;display:block}#boot{position:fixed;inset:0;z-index:999;display:grid;place-items:center;background:#fff;transition:opacity .45s ease}#boot.hide{opacity:0;pointer-events:none}#boot .bootbox{text-align:center}#boot .bootmascot{width:96px;margin:0 auto .9rem;animation:bob 2.2s ease-in-out infinite}#boot .bootname{font-family:Manrope;font-weight:800;font-size:1.25rem;letter-spacing:-.02em}#boot .bootsub{font-size:.82rem;color:var(--text-muted);margin-top:.2rem}#boot .bootbar{width:160px;height:6px;border-radius:999px;background:#f0f0f5;overflow:hidden;margin:1.1rem auto 0}#boot .bootbar i{display:block;height:100%;width:42%;border-radius:999px;background:linear-gradient(90deg,var(--zoom),var(--busy));animation:load 1.05s ease-in-out infinite}@keyframes load{0%{margin-left:-42%}to{margin-left:100%}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.coach{position:fixed;left:20px;bottom:20px;z-index:80;width:min(290px,calc(100vw - 40px));display:flex;align-items:flex-end;gap:.55rem;pointer-events:none;transform:translate(-130%);opacity:0;transition:transform .55s cubic-bezier(.2,.9,.3,1.25),opacity .4s}.coach.show{transform:translate(0);opacity:1;pointer-events:auto}.coach-mascot{width:62px;flex-shrink:0;filter:drop-shadow(0 6px 12px rgba(63,34,236,.18))}.coach.mood-idle .coach-mascot{animation:bob 3.4s ease-in-out infinite}.coach.mood-celebrating .coach-mascot,.coach.mood-streak .coach-mascot{animation:pop2 .55s ease}.coach.mood-encouraging .coach-mascot{animation:nudge .6s ease}.coach.mood-retry .coach-mascot{animation:shakeY .55s ease}@keyframes pop2{0%{transform:scale(.7)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes nudge{0%{transform:translate(-9px)}to{transform:translate(0)}}@keyframes shakeY{0%,to{transform:translateY(0)}25%{transform:translateY(-3px)}75%{transform:translateY(3px)}}.coach-bubble{position:relative;background:#fff;border:1px solid #ece6ff;border-left:4px solid var(--fluff);border-radius:16px 16px 16px 4px;padding:.7rem .85rem;box-shadow:var(--shadow-md);max-width:100%}.coach-bubble .who{font-family:Manrope;font-weight:800;font-size:.72rem;color:var(--busy);margin-bottom:.15rem;letter-spacing:.01em}.coach-bubble .msg{font-size:.85rem;line-height:1.4;color:var(--text-main)}.coach-bubble .msg b{color:var(--zoom)}.coach-bubble .badge{display:inline-flex;align-items:center;gap:.25rem;margin-top:.4rem;font-size:.7rem;font-weight:700;color:#9a6a00;background:var(--giraffe);padding:.12rem .55rem;border-radius:999px}.coach-close{position:absolute;top:-9px;right:-9px;width:20px;height:20px;border-radius:50%;background:#fff;border:1px solid var(--border-soft);display:grid;place-items:center;font-size:.66rem;color:var(--text-muted);box-shadow:var(--shadow-sm);cursor:pointer}.coach-fab{display:none}.coach-stars{position:absolute;left:26px;bottom:54px;width:8px;height:8px;pointer-events:none}.star-p{position:absolute;font-size:14px;line-height:1;animation:starup 1.2s ease-out forwards;text-shadow:0 0 5px rgba(223,247,0,.6)}@keyframes starup{0%{transform:translate(0) scale(.5);opacity:0}18%{opacity:1}to{transform:translate(var(--dx),-92px) scale(1.15) rotate(var(--dr));opacity:0}}@media(max-width:1180px){.coach{width:auto;left:14px;bottom:14px}.coach.collapsed .coach-mascot,.coach.collapsed .coach-bubble,.coach.collapsed .coach-stars{display:none}.coach-fab{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#efe9ff,#e2f9f0);border:1px solid #ece6ff;box-shadow:var(--shadow-md);pointer-events:auto;cursor:pointer}.coach-fab svg{width:42px}.coach:not(.collapsed) .coach-fab{display:none}}@media(prefers-reduced-motion:reduce){.coach-mascot,#boot .bootmascot{animation:none!important}.star-p{animation-duration:.6s}}.sign-up-button{background:var(--zoom);color:#fff;border-radius:999px;padding:.58rem 1.15rem;font-weight:700;font-size:.92rem;box-shadow:0 6px 18px -7px #3f22ec99;transition:.15s}.sign-up-button:hover{filter:brightness(1.08);box-shadow:0 9px 24px -7px #3f22ecb8;transform:translateY(-1px)}.sign-in-button{background:#fff;color:var(--text-main);border:1.5px solid var(--border-soft);border-radius:999px;padding:.55rem 1.1rem;font-weight:600;font-size:.92rem;transition:.15s}.sign-in-button:hover{border-color:var(--zoom);color:var(--zoom)}.plan-chip{border:1px solid var(--border-soft);background:#fff;border-radius:999px;padding:.45rem .8rem;font-weight:700;font-size:.8rem;color:var(--text-muted);cursor:pointer}.plan-chip.prem{background:linear-gradient(120deg,var(--zoom),var(--busy));color:#fff;border:none}.nav-skel{display:inline-block;width:158px;height:38px;border-radius:999px;background:linear-gradient(90deg,#f2f2f8 25%,#e9e9f3 37%,#f2f2f8 63%);background-size:400% 100%;animation:navskel 1.3s ease-in-out infinite}@keyframes navskel{0%{background-position:100% 0}to{background-position:-100% 0}}.nav-m-auth{display:none}.auth-wrap{max-width:460px}.auth-card{padding:clamp(1.6rem,4vw,2.3rem);display:flex;flex-direction:column}.auth-logo{display:flex;align-items:center;gap:.5rem;font-family:Manrope;font-weight:800;font-size:1.05rem;margin-bottom:1.1rem}.auth-logo .auth-mascot{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#efe9ff,#e2f9f0);display:grid;place-items:center;overflow:hidden}.auth-logo .auth-mascot svg{width:32px}.auth-card h1{font-size:clamp(1.35rem,4vw,1.6rem);margin-bottom:.35rem}.auth-sub{color:var(--text-muted);font-size:.92rem;line-height:1.5;margin-bottom:1.3rem}.auth-card label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;font-weight:700;color:var(--text-muted);margin-bottom:.85rem;letter-spacing:.01em}.auth-input{border:1.5px solid var(--border-soft);border-radius:12px;padding:.75rem .9rem;font-size:.98rem;font-family:Inter;color:var(--text-main);background:#fcfcff;transition:.15s;width:100%;max-width:100%}.auth-input:focus{outline:none;border-color:var(--zoom);box-shadow:0 0 0 4px #3f22ec1a;background:#fff}.auth-btn{width:100%;justify-content:center;margin-top:.4rem}.auth-or{display:flex;align-items:center;gap:.7rem;color:var(--text-muted);font-size:.78rem;margin:1rem 0}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--border-soft)}.auth-note{text-align:center;font-size:.8rem;line-height:1.45;color:var(--text-muted);margin-top:.75rem}.auth-note b{color:var(--text-main);font-weight:700}.auth-switch{text-align:center;font-size:.88rem;color:var(--text-muted);margin-top:1.1rem}.auth-switch a{color:var(--zoom);font-weight:600;cursor:pointer}.auth-err{background:#fa58a71a;border:1px solid rgba(250,88,167,.4);color:#a32468;border-radius:12px;padding:.7rem .9rem;font-size:.86rem;margin-bottom:1.1rem}.auth-forgot{font-size:.82rem;color:var(--zoom);cursor:pointer;align-self:flex-end;margin:-.4rem 0 .9rem}.gicon{width:17px;height:17px;flex-shrink:0}.pb{font-weight:800;font-size:.76rem;padding:.32rem .75rem;border-radius:999px;display:inline-block}.pb.free{background:#f4f4f8;color:#52525b}.pb.prem{background:linear-gradient(120deg,var(--zoom),var(--busy));color:#fff}.dash-badge{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem;flex-wrap:wrap}.acct-card{max-width:560px}.acct-row{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid #f3f3f7;font-size:.95rem}.acct-row:last-of-type{border:none}.acct-row .k{color:var(--text-muted)}.acct-row .v{font-weight:600;text-align:right;word-break:break-word}.acct-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.3rem}.upgrade-nudge{background:linear-gradient(120deg,#3f22ec0f,#fa58a70f);border:1px solid #ece6ff;border-radius:18px;padding:1.2rem;display:flex;gap:.9rem;align-items:center;margin-bottom:1.4rem;flex-wrap:wrap}.upgrade-nudge .m{width:52px;flex-shrink:0}.upgrade-nudge .t{flex:1;min-width:180px}.upgrade-nudge .t b{display:block;font-size:.98rem;margin-bottom:.15rem}.upgrade-nudge .t span{font-size:.85rem;color:var(--text-muted)}.onb-card{max-width:560px}.onb-dots{display:flex;gap:.4rem;justify-content:center;margin:.2rem 0 1rem}.onb-dot{width:28px;height:6px;border-radius:999px;background:var(--border-soft);transition:.2s}.onb-dot.on{background:var(--zoom)}.onb-dot.done{background:var(--meeting)}.onb-grid{display:grid;gap:.7rem;margin-top:1.3rem;text-align:left}.onb-opt{display:flex;align-items:center;gap:.9rem;background:#fff;border:1.5px solid var(--border-soft);border-radius:16px;padding:1rem 1.1rem;cursor:pointer;transition:.16s;position:relative}.onb-opt:hover{border-color:#cdcde8;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.onb-opt.sel{border-color:var(--zoom);background:#3f22ec0a;box-shadow:0 6px 18px -10px #3f22ec80}.onb-opt .ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:1.4rem;background:#3f22ec12;flex-shrink:0}.onb-opt .onb-txt h4{font-size:1.02rem;margin:0}.onb-opt .onb-txt p{font-size:.82rem;color:var(--text-muted);margin:.1rem 0 0}.onb-tick{margin-left:auto;color:var(--meeting);font-weight:800;font-size:1.1rem}.onb-actions{margin-top:1.4rem;display:flex;justify-content:center}.onb-foot{margin-top:1.2rem;text-align:left}.voice-model{margin-bottom:.9rem}.voice-stage{margin-top:.6rem}.voice-status{font-size:.92rem;color:var(--text-main);background:#fafafe;border:1px solid var(--border-soft);border-radius:12px;padding:.7rem .9rem;margin-bottom:.7rem}.voice-status.warn{background:#efca6224;border-color:#efca6280;color:#7a5b00}.voice-transcript{font-family:JetBrains Mono,monospace;font-size:.85rem;color:var(--text-muted);min-height:1.2rem;margin-bottom:.6rem;line-height:1.5}.voice-bar{height:8px;border-radius:999px;background:#f0f0f5;overflow:hidden;margin-bottom:.9rem}.voice-bar i{display:block;height:100%;width:0;border-radius:999px;transition:width .25s ease,background .25s ease}.voice-actions{display:flex;gap:.6rem;flex-wrap:wrap}.testi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.testi-card{background:#fff;border:1px solid var(--border-soft);border-radius:18px;padding:1.4rem;box-shadow:var(--shadow-sm)}.testi-card .stars{color:var(--giraffe);font-size:1.05rem;letter-spacing:1px;display:block}.testi-q{font-size:.95rem;line-height:1.55;margin:.7rem 0 1.1rem}.testi-who{display:flex;align-items:center;gap:.7rem}.testi-av{width:38px;height:38px;border-radius:50%;background:var(--fluff);color:#7a1f54;display:grid;place-items:center;font-weight:800;font-family:Manrope;font-size:1rem}.testi-who b{display:block;font-size:.9rem}.testi-who small{color:var(--text-muted);font-size:.78rem}.dash-subject{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#fff;border:1px solid var(--border-soft);border-radius:16px;padding:.8rem 1rem;margin-bottom:1.2rem;box-shadow:var(--shadow-sm)}.dash-subject .ds-info{display:flex;align-items:center;gap:.8rem}.dash-subject .ds-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:1.3rem;background:#3f22ec12}.dash-subject .ds-info b{font-family:Manrope;font-size:1rem}.dash-subject .ds-meta{display:block;font-size:.8rem;color:var(--text-muted)}.subj-picker{margin-bottom:1.4rem}.subj-picker-head{font-family:Manrope;font-weight:700;font-size:.9rem;color:var(--text-muted);margin:0 0 .6rem;text-transform:uppercase;letter-spacing:.04em}.subj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}.subj-card{text-align:left;background:#fff;border:1px solid var(--border-soft);border-radius:14px;padding:.85rem .9rem;cursor:pointer;display:flex;flex-direction:column;gap:.25rem;transition:border-color .15s,box-shadow .15s,transform .1s}.subj-card:hover{border-color:var(--zoom);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.subj-card.active{border-color:var(--zoom);background:#3f22ec0d;box-shadow:0 10px 26px -16px #3f22ec73}.subj-card .subj-ic{font-size:1.5rem}.subj-card .subj-nm{font-family:Manrope;font-weight:700;font-size:.98rem}.subj-card .subj-bl{font-size:.76rem;color:var(--text-muted);line-height:1.3}.enter-hint{font-size:.78rem;color:var(--text-muted);margin-left:auto;align-self:center}.enter-hint b{font-weight:700;color:var(--text-main)}.paper-cta{display:flex;align-items:center;gap:1rem;background:linear-gradient(120deg,#3f22ec0f,#fa58a70f);border:1.5px solid var(--zoom);border-radius:18px;padding:1.1rem 1.3rem;cursor:pointer;margin-bottom:1.4rem;transition:transform .12s,box-shadow .15s}.paper-cta:hover{transform:translateY(-2px);box-shadow:0 16px 38px -18px #3f22ec73}.paper-cta .pc-ic{font-size:2rem;width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:#fff;box-shadow:var(--shadow-sm);flex:0 0 auto}.paper-cta .pc-body{flex:1}.paper-cta .pc-body h3{font-family:Manrope;font-size:1.1rem;margin:0 0 .2rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.paper-cta .pc-body p{font-size:.86rem;color:var(--text-muted);margin:0;line-height:1.4}.paper-cta .pc-go{font-family:Manrope;font-weight:700;color:var(--zoom);white-space:nowrap;align-self:center}.paper-cta .pc-lock{font-size:.7rem;font-weight:700;background:var(--zoom);color:#fff;padding:.18rem .55rem;border-radius:999px}.paper-cta.locked{border-style:dashed}.mix-cta{background:linear-gradient(120deg,#03e29d1a,#3f22ec0f);border-color:var(--meeting)}.mix-cta .pc-go{color:var(--meeting)}.paper-cta-head{margin:.2rem 0 .7rem}.paper-cta-head h3{font-family:Manrope;font-size:1.05rem;margin:0 0 .2rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.paper-cta-head p{font-size:.86rem;color:var(--text-muted);margin:0;line-height:1.4}.paper-cta-head .pc-lock{font-size:.7rem;font-weight:700;background:var(--zoom);color:#fff;padding:.18rem .55rem;border-radius:999px}.paper-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.8rem;margin-bottom:1.4rem}.paper-grid .paper-cta{margin-bottom:0;padding:.9rem 1rem;gap:.7rem}.paper-grid .paper-cta .pc-ic{width:42px;height:42px;font-size:1.4rem}.paper-grid .paper-cta h4{font-family:Manrope;font-size:.96rem;margin:0 0 .15rem}.paper-grid .paper-cta p{font-size:.78rem;color:var(--text-muted);margin:0}.paper-grid .paper-cta .pc-go{font-size:.85rem}.mix-chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:.7rem 0;justify-content:center}.mix-chip{font-family:inherit;font-size:.82rem;font-weight:600;padding:.4rem .8rem;border:1.5px solid var(--border-soft);border-radius:999px;background:#fff;color:var(--text-soft);cursor:pointer;transition:border-color .1s,background .1s,color .1s}.mix-chip:hover:not(.locked){border-color:var(--zoom);color:var(--zoom)}.mix-chip.locked{opacity:.5;cursor:not-allowed}.mix-chip.on{font-weight:800}.mix-count{display:flex;gap:.4rem;justify-content:center;align-items:center;margin:.6rem 0 .2rem;flex-wrap:wrap}.mix-count .lab{font-size:.8rem;color:var(--text-muted);font-weight:600}.mix-num{font-family:inherit;font-weight:700;font-size:.85rem;padding:.35rem .75rem;border:1.5px solid var(--border-soft);border-radius:10px;background:#fff;color:var(--text-soft);cursor:pointer}.mix-num.on{border-color:var(--zoom);color:var(--zoom)}.mix-info{font-size:.82rem;color:var(--text-muted);text-align:center;margin:.5rem 0 0}.char-panel{margin-top:1.4rem}.char-count{font-size:.74rem;font-weight:700;color:var(--zoom);background:#eef0ff;padding:.15rem .55rem;border-radius:999px;margin-left:.5rem;vertical-align:middle}.char-intro{color:var(--text-soft);font-size:.88rem;margin:.2rem 0 1rem;line-height:1.5}.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.8rem}.char-card{text-align:center;border:1.5px solid var(--border-soft);border-radius:14px;padding:.7rem .5rem;cursor:pointer;background:#fff;transition:transform .1s,box-shadow .12s,border-color .12s}.char-card:hover:not(.locked){transform:translateY(-2px);box-shadow:0 8px 20px #14142814}.char-card.active{border-color:var(--zoom);box-shadow:0 0 0 2px #3f22ec2e}.char-card.locked{cursor:default;background:#fafafe}.char-art{position:relative;width:56px;margin:0 auto .35rem}.char-card.locked .char-art{filter:grayscale(1) opacity(.35)}.char-lock{position:absolute;inset:0;display:grid;place-items:center;color:var(--text-muted)}.char-name{font-family:Manrope;font-weight:800;font-size:.86rem}.char-sub{font-size:.68rem;color:var(--text-muted);line-height:1.3;margin-top:.1rem}.char-card.mystery{background:linear-gradient(135deg,#f7f6fc,#edf0f6)}.char-card.mystery .char-art svg{filter:grayscale(1) brightness(.95) opacity(.16)}.char-q{position:absolute;inset:0;display:grid;place-items:center;font-family:Manrope;font-weight:800;font-size:1.55rem;color:#b3b7c6}.coll-head{margin-bottom:.4rem}.coll-sum{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1rem}.coll-stat{background:#fff;border:1.5px solid var(--border-soft);border-radius:14px;padding:.6rem .95rem;min-width:118px}.coll-stat b{font-family:Manrope;font-weight:800;font-size:1.35rem;display:block;line-height:1.1}.coll-stat span{font-size:.68rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.coll-subj{margin-top:1.3rem;border:1.5px solid var(--border-soft);border-radius:18px;padding:1.05rem 1.05rem 1.15rem;background:#fff}.coll-subj-head{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.coll-subj-ic{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:#fff;flex:none}.coll-subj-name{font-family:Manrope;font-weight:800;font-size:1.05rem;line-height:1.15}.coll-subj-meta{font-size:.74rem;color:var(--text-muted);margin-top:.1rem}.coll-badges{margin-left:auto;display:flex;gap:.4rem;flex-wrap:wrap}.coll-badge{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;white-space:nowrap}.coll-badge.got{background:#e7f9ef;color:#0f9d58}.coll-badge.myst{background:#f1eef9;color:#7a5af8}.coll-bar{height:8px;border-radius:999px;background:#eef0f4;overflow:hidden;margin:.8rem 0 1rem}.coll-bar>i{display:block;height:100%;border-radius:999px;transition:width .55s ease}.coll-empty{margin-top:1.3rem;text-align:center;border:1.5px dashed var(--border-soft);border-radius:18px;padding:2rem 1.2rem;background:#fff}.modal .m-unlock{width:118px}.unlock-tag{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--zoom);background:#eef0ff;padding:.25rem .7rem;border-radius:999px;margin:0 0 .5rem}.sel-or{display:flex;align-items:center;gap:.8rem;color:var(--text-muted);font-size:.82rem;margin:0 0 1.1rem}.sel-or:before,.sel-or:after{content:"";flex:1;height:1px;background:var(--border-soft)}.dash-pricing{margin-top:clamp(2.5rem,6vw,4rem);border-top:1px solid var(--border-soft);padding-top:clamp(2rem,5vw,3rem)}.dash-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;align-items:stretch}.dprice-card{background:#fff;border:1px solid var(--border-soft);border-radius:18px;padding:1.4rem;position:relative;display:flex;flex-direction:column}.dprice-card.feat{border-color:var(--zoom);box-shadow:0 16px 40px -18px #3f22ec66}.dprice-badge{position:absolute;top:-11px;left:50%;transform:translate(-50%);background:var(--zoom);color:#fff;font-size:.72rem;font-weight:700;padding:.25rem .8rem;border-radius:999px;white-space:nowrap}.dprice-card h4{font-family:Manrope;font-size:1.05rem;margin-bottom:.3rem}.dprice-amt{font-family:Manrope;font-weight:800;font-size:1.8rem}.dprice-amt small{font-size:.85rem;font-weight:600;color:var(--text-muted)}.dprice-sub{font-size:.82rem;color:var(--text-muted);margin:.2rem 0 .9rem}.dprice-card ul{list-style:none;margin:0 0 1.1rem;display:flex;flex-direction:column;gap:.45rem}.dprice-card ul li{display:flex;gap:.5rem;align-items:flex-start;font-size:.85rem}.dprice-card .btn{margin-top:auto}@media(max-width:860px){.hero{grid-template-columns:1fr;gap:1.5rem}.hero-visual{order:-1;max-width:380px}.price-grid,.dash-price-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}.dash-2col{grid-template-columns:1fr}.dash-subject{flex-direction:column;align-items:flex-start}.subj-grid{grid-template-columns:repeat(2,1fr)}.paper-cta{flex-direction:column;text-align:center;align-items:stretch}.paper-cta .pc-ic{margin:0 auto}.paper-cta .pc-go{align-self:center}}@media(max-width:960px){.nav-links{display:none}.nav-links.open{display:flex;position:absolute;top:60px;right:1rem;flex-direction:column;background:#fff;border:1px solid var(--border-soft);border-radius:16px;padding:.6rem;box-shadow:var(--shadow-md);align-items:stretch}.nav-links.open a{padding:.6rem 1rem}.nav-links.open .nav-m-auth{display:flex;flex-direction:column;gap:.45rem;border-top:1px solid var(--border-soft);margin-top:.35rem;padding-top:.55rem}.nav-links.open .nav-m-auth.top{border-top:none;border-bottom:1px solid var(--border-soft);margin:0 0 .35rem;padding:.15rem 0 .6rem}.nav-links.open .nav-m-auth .sign-in-button,.nav-links.open .nav-m-auth .sign-up-button{width:100%;text-align:center;padding:.7rem 1rem;font-size:.95rem}.menu-toggle{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;border:1px solid var(--border-soft)}}@media(max-width:560px){.nav-cta{gap:.45rem}.nav-cta .sign-in-button{display:none}.nav-cta .sign-up-button{padding:.52rem .95rem;font-size:.88rem}.nav-skel{width:104px;height:34px}}@media(max-width:400px){.nav:has(.nav-cta .sign-up-button) .brand-text{display:none}}:root{--text-soft:#3f3f46}.brand{text-decoration:none}.brand-soft{color:var(--zoom)}.nav-links a{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:1.2rem}.year-card{text-align:left;background:#fff;border:1.5px solid var(--border-soft);border-radius:22px;padding:1.5rem 1.4rem;cursor:pointer;position:relative;overflow:hidden;transition:transform .15s,box-shadow .18s,border-color .15s;display:flex;flex-direction:column;gap:.4rem;min-height:170px}.year-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#cdcde8}.year-card.active{border-color:var(--zoom);box-shadow:0 0 0 3px #3f22ec1f}.year-card .yr-big{font-family:Manrope;font-weight:800;font-size:2.2rem;line-height:1;color:var(--zoom)}.year-card .yr-sub{color:var(--text-muted);font-size:.9rem}.year-card .yr-meta{margin-top:auto;font-size:.78rem;font-weight:700;color:var(--text-soft)}.year-card .yr-bg{position:absolute;right:-30px;bottom:-30px;width:130px;height:130px;border-radius:50%;opacity:.12}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin-top:1rem}.subj-tile{text-align:left;background:#fff;border:1.5px solid var(--border-soft);border-radius:20px;padding:1.2rem 1.2rem 1.1rem;cursor:pointer;transition:transform .15s,box-shadow .18s,border-color .15s;display:flex;flex-direction:column;gap:.5rem;position:relative}.subj-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#cdcde8}.subj-tile .st-ic{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;color:#fff}.subj-tile h3{font-size:1.1rem}.subj-tile p{font-size:.84rem;color:var(--text-muted);line-height:1.4}.subj-tile .st-meta{font-size:.76rem;color:var(--text-soft);font-weight:600;display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.2rem}.unit-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;margin-top:1rem}.unit-card{text-align:left;background:#fff;border:1.5px solid var(--border-soft);border-radius:20px;padding:1.2rem 1.25rem;cursor:pointer;transition:transform .15s,box-shadow .18s,border-color .15s;display:flex;flex-direction:column;gap:.5rem;position:relative}.unit-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#cdcde8}.unit-card .uc-num{font-family:JetBrains Mono;font-size:.72rem;font-weight:700;letter-spacing:.4px;color:var(--text-muted)}.unit-card h3{font-size:1.08rem}.unit-card .uc-topics{font-size:.82rem;color:var(--text-muted);line-height:1.45}.unit-card .uc-foot{display:flex;align-items:center;gap:.6rem;margin-top:.3rem;font-size:.78rem;color:var(--text-soft);font-weight:600}.unit-card .uc-foot .mastery-bar{flex:1;margin:0}.topic-list{display:flex;flex-direction:column;gap:.7rem;margin-top:1rem}.topic-row{display:flex;align-items:center;gap:1rem;background:#fff;border:1.5px solid var(--border-soft);border-radius:18px;padding:.95rem 1.1rem;cursor:pointer;text-align:left;transition:transform .12s,box-shadow .15s,border-color .12s}.topic-row:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:#cdcde8}.topic-row .tr-num{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-family:Manrope;font-weight:800;font-size:.9rem;flex:none}.topic-row .tr-body{flex:1;min-width:0}.topic-row h3{font-size:1rem;margin:0 0 .15rem}.topic-row .tr-sub{font-size:.8rem;color:var(--text-muted);line-height:1.4;overflow:hidden;text-overflow:ellipsis}.topic-row .tr-right{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex:none;min-width:110px}.topic-row .tr-right .mastery-bar{width:110px;margin:0}.topic-row .tr-right .mlabel{font-size:.7rem;font-weight:700;color:var(--text-muted)}.topic-row.soon{opacity:.6;cursor:default}.topic-row.soon:hover{transform:none;box-shadow:none}.pill-soon{font-size:.7rem;font-weight:800;padding:.18rem .55rem;border-radius:999px;background:#f4f4f8;color:#6b6b7a}.steps-pill{display:inline-flex;gap:.3rem;align-items:center;font-size:.72rem;font-weight:700}.steps-pill i{width:9px;height:9px;border-radius:50%;background:#e6e6ee;display:inline-block}.steps-pill i.done{background:var(--meeting)}.steps-pill i.part{background:var(--giraffe)}@media(max-width:860px){.year-grid{grid-template-columns:1fr}.year-card{min-height:0}.topic-row .tr-right{min-width:84px}.topic-row .tr-right .mastery-bar{width:84px}}.hub-head{display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.hub-head .hh-ic{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;color:#fff;flex:none}.hub-head h1{font-size:clamp(1.5rem,3.4vw,2rem);margin-bottom:.15rem}.hub-head .hh-sub{color:var(--text-muted);font-size:.92rem}.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.2rem}.hub-card{background:#fff;border:1.5px solid var(--border-soft);border-radius:22px;padding:1.3rem;cursor:pointer;display:flex;flex-direction:column;gap:.45rem;position:relative;overflow:hidden;transition:transform .15s,box-shadow .18s,border-color .15s;text-align:left}.hub-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.hub-card .hc-step{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.hub-card h3{font-size:1.15rem;display:flex;align-items:center;gap:.5rem}.hub-card p{font-size:.86rem;color:var(--text-muted);line-height:1.45;flex:1}.hub-card .hc-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8rem;font-weight:700;margin-top:.4rem}.hub-card .hc-go{color:var(--zoom)}.hub-card.learn{border-color:#03e29d80}.hub-card.practise{border-color:#3f22ec73}.hub-card.challenge{border-color:#fa58a773}.hub-card.next{box-shadow:0 0 0 3px #3f22ec1f}.hub-card .hc-badge{position:absolute;top:.9rem;right:.9rem;font-size:.68rem;font-weight:800;padding:.18rem .55rem;border-radius:999px;background:var(--poison);color:#3a3a00}.hub-card .hc-badge.done{background:#03e29d33;color:#0a6b4d}.hub-card .hc-badge.bridge{background:linear-gradient(120deg,var(--zoom),var(--busy));color:#fff}.learn-card{margin-top:1.2rem;display:grid;grid-template-columns:1.3fr .9fr;gap:1.2rem}.learn-card .lc-text{padding:1.4rem}.learn-card .lc-text h3{font-size:1.05rem;margin-bottom:.4rem;display:flex;gap:.5rem;align-items:center}.learn-card .lc-intro{color:var(--text-soft);line-height:1.55;margin-bottom:.8rem}.learn-card ul{margin:.2rem 0 .9rem 1.1rem;display:flex;flex-direction:column;gap:.4rem;font-size:.95rem;line-height:1.5}.learn-card .lc-fig{padding:1rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;background:#fafafe}.learn-card .lc-fig svg{max-width:100%;height:auto;max-height:280px}.learn-card .lc-fig .cap{font-size:.78rem;color:var(--text-muted)}.terms{display:flex;flex-wrap:wrap;gap:.4rem}.term-chip{font-size:.8rem;font-weight:700;padding:.3rem .7rem;border-radius:999px;background:#efca624d;color:#5b4200;cursor:pointer;border:1px solid transparent}.term-chip:hover,.term-chip.open{border-color:#c79a30;background:#efca6273}.term-def{margin-top:.6rem;background:#fff;border:1px dashed var(--giraffe);border-radius:12px;padding:.65rem .85rem;font-size:.9rem;min-height:2.4rem}.term-def b{color:#7a5b00}.more-ways{margin-top:1.4rem}.more-ways h3{font-size:.95rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.7rem}.way-row{display:flex;flex-wrap:wrap;gap:.6rem}.way-btn{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;font-size:.86rem;padding:.55rem 1rem;border-radius:999px;background:#fff;border:1.5px solid var(--border-soft);cursor:pointer;color:var(--text-main);transition:.15s}.way-btn:hover{border-color:var(--zoom);color:var(--zoom)}.way-btn.on{border-color:var(--zoom);background:#3f22ec0f;color:var(--zoom)}@media(max-width:860px){.hub-grid,.learn-card{grid-template-columns:1fr}}.tag.lvl-easy{background:#03e29d2e;color:#0a6b4d}.tag.lvl-medium{background:#efca624d;color:#6a4a00}.tag.lvl-hard{background:#fa58a729;color:#a32468}.tag.lvl-bridge{background:linear-gradient(120deg,var(--zoom),var(--busy));color:#fff}.bridge-banner{display:flex;gap:.6rem;align-items:center;background:linear-gradient(120deg,#3f22ec14,#fa58a714);border:1px solid #ece6ff;border-radius:12px;padding:.6rem .9rem;font-size:.85rem;margin-bottom:1rem}.bridge-banner b{color:var(--zoom)}.q-text code,.rt code{font-family:JetBrains Mono,monospace;font-size:.9em;background:#f3f3f9;border:1px solid #e6e6f0;border-radius:6px;padding:.05em .35em}.q-text pre,.rt pre,.model-reveal pre{font-family:JetBrains Mono,monospace;font-size:.88rem;line-height:1.55;background:#1f1f2b;color:#f4f4fb;border-radius:12px;padding:.9rem 1rem;overflow-x:auto;margin:.6rem 0;white-space:pre;font-weight:500}.q-data{font-family:JetBrains Mono,monospace;font-size:.86rem;background:#fafafe;border:1px solid var(--border-soft);border-radius:12px;padding:.7rem .9rem;margin:.4rem 0 1rem;white-space:pre-wrap}.q-fig{margin:.4rem 0 1rem;display:flex;justify-content:center;background:#fafafe;border:1px solid var(--border-soft);border-radius:14px;padding:.8rem}.q-fig svg{max-width:100%;height:auto;max-height:300px}.recap-kicker{font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--meeting);margin-bottom:.4rem;display:flex;gap:.5rem;align-items:center}.recap-kicker .rk-type{background:#03e29d24;color:#0a6b4d;padding:.12rem .5rem;border-radius:999px}.choice-list{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem}.choice{display:flex;align-items:center;gap:.8rem;text-align:left;width:100%;background:#fff;border:1.5px solid var(--border-soft);border-radius:14px;padding:.8rem 1rem;font-family:inherit;font-size:1rem;color:var(--text-main);cursor:pointer;transition:border-color .12s,background .12s,transform .08s}.choice:hover:not(.locked){border-color:var(--zoom);background:#3f22ec0a}.choice.locked{cursor:default}.choice.correct{border-color:var(--meeting);background:#03e29d1f}.choice.wrong{border-color:var(--busy);background:#fa58a71a}.choice .ltr{flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-family:Manrope;font-weight:800;font-size:.9rem;background:#3f22ec1a;color:var(--zoom)}.choice.correct .ltr{background:var(--meeting);color:#063}.choice.wrong .ltr{background:var(--busy);color:#fff}.tf-row{display:flex;gap:.8rem;margin-top:1rem}.tf-row .choice{justify-content:center;font-weight:700}.gap-text{font-size:1.08rem;line-height:2.3}.gap-input{display:inline-block;border:none;border-bottom:2px solid var(--zoom);min-width:110px;width:auto;font-family:JetBrains Mono;font-size:.95rem;padding:.15rem .4rem;text-align:center;background:#3f22ec0d;color:var(--text-main);margin:0 .15rem}.gap-input:focus{outline:none;background:#3f22ec1f}.gap-input.right{border-color:var(--meeting);color:#0a8f63;background:#03e29d1a}.gap-input.wrong{border-color:var(--busy);color:var(--busy);background:#fa58a71a}.term-input{width:100%;max-width:420px;border:1.5px solid var(--border-soft);border-radius:14px;padding:.8rem 1rem;font-size:1.05rem;font-family:JetBrains Mono;background:#fcfcff;color:var(--text-main);transition:.15s}.term-input:focus{outline:none;border-color:var(--zoom);box-shadow:0 0 0 4px #3f22ec1a;background:#fff}.term-input.right{border-color:var(--meeting);background:#03e29d14}.term-input.wrong{border-color:var(--busy);background:#fa58a70f}.calc-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-top:.8rem}.calc-row .unit{font-family:JetBrains Mono;font-weight:700;color:var(--text-muted)}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1rem;margin-top:1rem}.match-col{display:flex;flex-direction:column;gap:.55rem}.match-item{text-align:left;background:#fff;border:1.5px solid var(--border-soft);border-radius:12px;padding:.7rem .85rem;font-family:inherit;font-size:.92rem;color:var(--text-main);cursor:pointer;transition:.12s;position:relative;min-height:46px}.match-item:hover:not(.done){border-color:var(--zoom)}.match-item.sel{border-color:var(--zoom);background:#3f22ec0f;box-shadow:0 0 0 3px #3f22ec1a}.match-item.done{border-color:#03e29d99;background:#03e29d14;cursor:default}.match-item.wrongflash{border-color:var(--busy);background:#fa58a71a}.match-item .mi-tag{position:absolute;top:-8px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--meeting);color:#04261b;font-size:.7rem;font-weight:800;display:grid;place-items:center}.order-list{display:flex;flex-direction:column;gap:.55rem;margin-top:1rem}.order-item{display:flex;align-items:center;gap:.7rem;background:#fff;border:1.5px solid var(--border-soft);border-radius:12px;padding:.65rem .8rem;font-size:.95rem;cursor:grab;user-select:none;transition:.12s}.order-item.dragging{opacity:.5;border-style:dashed}.order-item.over{border-color:var(--zoom);box-shadow:0 0 0 3px #3f22ec1f}.order-item .oi-num{width:24px;height:24px;border-radius:7px;background:#f4f4f8;display:grid;place-items:center;font-size:.78rem;font-weight:700;flex:none}.order-item .oi-txt{flex:1}.order-item .oi-btns{display:flex;gap:.25rem}.order-item .oi-btns button{width:30px;height:30px;border-radius:8px;border:1px solid var(--border-soft);background:#fff;font-size:.85rem;cursor:pointer;color:var(--text-soft)}.order-item .oi-btns button:hover{border-color:var(--zoom);color:var(--zoom)}.order-item.right{border-color:#03e29d99;background:#03e29d0f}.order-item.wrong{border-color:#fa58a799;background:#fa58a70f}.spot-text{font-size:1.1rem;line-height:2;margin-top:.8rem}.spot-word{cursor:pointer;border-radius:6px;padding:.05em .2em;transition:.1s;border-bottom:2px solid transparent}.spot-word:hover{background:#3f22ec14}.spot-word.sel{background:#fa58a72e;border-bottom-color:var(--busy)}.spot-word.right{background:#03e29d33;border-bottom-color:var(--meeting)}.spot-word.missed{background:#efca6259;border-bottom-color:#c79a30}.label-wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem;align-items:start;margin-top:.8rem}.label-fig{background:#fafafe;border:1px solid var(--border-soft);border-radius:14px;padding:.6rem;display:flex;justify-content:center}.label-fig svg{max-width:100%;height:auto}.label-inputs{display:flex;flex-direction:column;gap:.55rem}.label-inputs label{display:flex;align-items:center;gap:.6rem;font-size:.9rem}.label-inputs .ln{width:26px;height:26px;border-radius:50%;background:var(--zoom);color:#fff;font-weight:800;font-size:.78rem;display:grid;place-items:center;flex:none}.label-inputs input{flex:1;min-width:0}.lbl-marker{fill:var(--zoom);stroke:#fff;stroke-width:2}.lbl-marker-text{fill:#fff;font:800 11px Manrope,sans-serif}.lbl-leader{stroke:var(--zoom);stroke-width:1.5;stroke-dasharray:3 3}.dg-text{font:600 11px Inter,sans-serif;fill:#3f3f46}.dg-title{font:800 13px Manrope,sans-serif;fill:#171717}.recap-fb{margin-top:1rem;border-radius:14px;padding:.9rem 1rem;border:1px solid var(--border-soft);display:flex;gap:.7rem;align-items:flex-start;font-size:.93rem;line-height:1.5}.recap-fb.ok{background:#03e29d14;border-color:#03e29d66}.recap-fb.bad{background:#fa58a70f;border-color:#fa58a759}.recap-fb.part{background:#efca6224;border-color:#efca6280}.recap-fb b{display:block;margin-bottom:.15rem}.recap-fb .fix{display:block;margin-top:.35rem;font-size:.86rem;color:var(--text-soft)}.working{margin-top:.6rem;background:#fff;border:1px dashed var(--border-soft);border-radius:12px;padding:.6rem .9rem;font-size:.88rem}.working ol{margin:.2rem 0 0 1.1rem;display:flex;flex-direction:column;gap:.2rem}.working .wk-h{font-weight:800;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.recap-done{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}.recap-dots{display:flex;gap:.3rem;flex-wrap:wrap;margin:.3rem 0 .8rem}.recap-dots i{width:12px;height:12px;border-radius:4px;background:#ececf3;display:inline-block}.recap-dots i.ok{background:var(--meeting)}.recap-dots i.bad{background:var(--busy)}.recap-dots i.cur{background:var(--zoom)}@media(max-width:680px){.match-grid,.label-wrap{grid-template-columns:1fr}.tf-row{flex-direction:column}}.level-picker{display:flex;flex-wrap:wrap;gap:.45rem;margin:.5rem 0 .9rem}.level-btn{font-family:inherit;font-size:.8rem;font-weight:700;padding:.4rem .75rem;border:1.5px solid var(--border-soft);border-radius:999px;background:#fff;color:var(--text-soft);cursor:pointer;display:inline-flex;gap:.35rem;align-items:center;transition:.12s}.level-btn:hover{border-color:var(--zoom);color:var(--zoom)}.level-btn.on{border-color:var(--zoom);background:#3f22ec12;color:var(--zoom)}.level-btn .lv-n{width:18px;height:18px;border-radius:6px;background:#f0f0f6;display:grid;place-items:center;font-size:.7rem}.level-btn.on .lv-n{background:var(--zoom);color:#fff}.level-note{font-size:.8rem;color:var(--text-muted);margin-top:-.4rem;margin-bottom:.8rem}.trace-box .hid{color:#b9b9c9;letter-spacing:.5px}.trace-box .hid.cur{color:#b9b9c9}.trace-box .hid.ok{color:#0a8f63}.trace-box .hid.bad{color:var(--busy);background:#fa58a729}.trace-box .vis{color:#5b5b70}.trace-box .vis.ok{color:#0a8f63}.trace-box .vis.bad{color:var(--busy);background:#fa58a729}.trace-prompt{font-size:.95rem;color:var(--text-soft);margin-bottom:.6rem;padding:.6rem .9rem;background:#fff;border:1px solid var(--border-soft);border-radius:12px}.trace-prompt b{color:var(--zoom)}.trace-help{font-size:.8rem;color:var(--text-muted);margin-top:.5rem}.kb-item .trace-box .hid{letter-spacing:.3px}.fb-working{margin-top:.8rem}.sim-wrap{display:grid;grid-template-columns:1.25fr .85fr;gap:1.2rem;margin-top:1rem}.sim-stage{background:#fff;border:1.5px solid var(--border-soft);border-radius:20px;padding:1rem;display:flex;align-items:center;justify-content:center;min-height:300px;overflow:hidden}.sim-stage svg,.sim-stage canvas{max-width:100%;height:auto}.sim-panel{display:flex;flex-direction:column;gap:.9rem}.sim-task{background:linear-gradient(120deg,#03e29d1a,#3f22ec0f);border:1px solid #d9f5ea;border-radius:16px;padding:.9rem 1rem;font-size:.95rem}.sim-task b{display:block;font-family:Manrope;margin-bottom:.2rem}.sim-controls{background:#fff;border:1.5px solid var(--border-soft);border-radius:16px;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.7rem}.sim-controls label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:700;color:var(--text-soft)}.sim-controls input[type=range]{width:100%;accent-color:var(--zoom)}.sim-controls .sc-val{font-family:JetBrains Mono;font-weight:600;color:var(--zoom);font-size:.85rem}.sim-readout{background:#fafafe;border:1px solid var(--border-soft);border-radius:16px;padding:.8rem 1rem;font-size:.9rem;line-height:1.5}.sim-readout b{color:var(--zoom)}.sim-check{background:#fff;border:1.5px solid var(--border-soft);border-radius:16px;padding:.9rem 1rem}.sim-check h4{font-size:.9rem;margin-bottom:.5rem}.sim-toggle-row{display:flex;gap:.5rem;flex-wrap:wrap}@media(max-width:860px){.sim-wrap{grid-template-columns:1fr}}.dash-year{display:inline-flex;gap:.4rem;margin-left:auto}.dash-year button{font-family:inherit;font-weight:700;font-size:.82rem;padding:.4rem .8rem;border-radius:999px;border:1.5px solid var(--border-soft);background:#fff;cursor:pointer;color:var(--text-soft)}.dash-year button.on{border-color:var(--zoom);color:var(--zoom);background:#3f22ec0f}.unit-progress{display:flex;flex-direction:column;gap:.5rem}.up-row{display:flex;align-items:center;gap:.7rem;font-size:.88rem}.up-row .nm{flex:1;font-weight:600}.up-row .mini{width:120px;height:7px;border-radius:999px;background:#f0f0f5;overflow:hidden}.up-row .mini i{display:block;height:100%;border-radius:999px}.up-row .pct{font-family:JetBrains Mono;font-size:.78rem;color:var(--text-muted);width:60px;text-align:right}.home-years{margin-top:clamp(3rem,7vw,5rem)}.home-subjects{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem}.home-subjects span{display:inline-flex;align-items:center;gap:.4rem;font-size:.84rem;font-weight:700;padding:.45rem .85rem;border-radius:999px;background:#fff;border:1.5px solid var(--border-soft)}.home-subjects span i{width:10px;height:10px;border-radius:50%;display:inline-block}.journey{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.9rem;margin-top:1.6rem}.journey .jstep{background:#fff;border:1px solid var(--border-soft);border-radius:18px;padding:1.1rem}.journey .jstep .n{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;font-weight:800;font-family:Manrope;margin-bottom:.6rem}.journey .jstep h4{font-size:1rem;margin-bottom:.25rem}.journey .jstep p{font-size:.84rem;color:var(--text-muted);line-height:1.45}.plan-note{text-align:center;color:var(--text-muted);font-size:.85rem;margin-top:1rem}.session-wrap{padding-bottom:84px}@media(min-width:1181px){.session-wrap{padding-bottom:0}}.nav-ic{margin-right:.1rem;opacity:.8}.chill-land{padding-top:clamp(2.5rem,8vh,5.5rem);padding-bottom:4rem;max-width:620px}.cl-head{text-align:center;margin-bottom:2rem}.cl-ic{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#3f22ec14;color:var(--zoom);margin-bottom:.9rem}.cl-head .page-sub{margin-bottom:0}.cl-form{display:flex;flex-direction:column;gap:1rem}.cl-field{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;font-weight:600;color:var(--text-muted)}.cl-select{font-family:inherit;font-size:1rem;font-weight:500;color:var(--text-main);padding:.8rem 2.6rem .8rem 1rem;border:1.5px solid var(--border-soft);border-radius:14px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 1rem center;-webkit-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s,box-shadow .15s;width:100%;min-width:0}.cl-select:hover{border-color:#cfcfe6}.cl-select:focus{outline:none;border-color:var(--zoom);box-shadow:0 0 0 4px #3f22ec1a}.cl-start{justify-content:center;margin-top:.6rem}.cl-surprise{align-self:center;display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem;color:var(--zoom);padding:.5rem .9rem;border-radius:999px;transition:background .15s}.cl-surprise:hover{background:#3f22ec12}.cl-totals{text-align:center;color:var(--text-muted);font-size:.82rem;margin-top:2rem}.ct-page{--ct-size:clamp(1.15rem,2.3vw,1.62rem);--ct-lh:1.85;max-width:980px;margin:0 auto;padding:clamp(1rem,3vh,1.8rem) clamp(1rem,4vw,2rem) 1.2rem;min-height:calc(100vh - 68px);min-height:calc(100dvh - 68px);display:flex;flex-direction:column}.chill-play>.activity-nav{position:static;align-self:stretch;max-width:none;margin:0 0 .6rem;border:0;background:transparent;box-shadow:none}.chill-play>.activity-nav .activity-bar{padding:0;min-height:44px}.chill-play .activity-position{display:none}.chill-play .activity-save-state{margin-left:auto}.ct-browse{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.ct-browse .activity-questions{flex:1;min-width:0;margin:0}.ct-browse .activity-questions summary span{display:none}.ct-browse .activity-paging{flex:none;margin:0;gap:.3rem}.ct-browse:has(.activity-questions[open]){align-items:flex-start}.ct-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;position:relative;z-index:5}.ct-switch-wrap{position:relative;min-width:0;flex:1}.ct-switch{display:inline-flex;align-items:center;gap:.45rem;max-width:100%;font-family:Manrope;font-weight:700;font-size:.95rem;color:var(--text-main);padding:.5rem .85rem;margin-left:-.85rem;border-radius:999px;transition:background .15s}.ct-switch span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ct-switch:hover,.ct-switch[aria-expanded=true]{background:#3f22ec12}.ct-dn{color:var(--zoom);font-size:.8rem}.ct-tools{display:flex;align-items:center;gap:.25rem;position:relative;flex:none}.ct-tool{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:500;color:var(--text-muted);padding:.5rem .75rem;border-radius:999px;transition:color .15s,background .15s}.ct-tool:hover,.ct-tool[aria-expanded=true]{color:var(--zoom);background:#3f22ec12}.ct-pop{position:absolute;top:calc(100% + .4rem);left:-.85rem;width:min(340px,calc(100vw - 2rem));background:#fff;border:1px solid var(--border-soft);border-radius:18px;box-shadow:var(--shadow-md);padding:1rem;display:flex;flex-direction:column;gap:.8rem;animation:fadein .15s ease}.ct-pop[hidden]{display:none}.ct-pop-right{left:auto;right:0;width:min(380px,calc(100vw - 2rem))}.ct-set{display:flex;align-items:center;justify-content:space-between;gap:.8rem;font-size:.84rem;color:var(--text-muted);font-weight:600}.ct-seg{display:inline-flex;background:#f4f4f9;border-radius:999px;padding:3px;gap:2px;flex-wrap:wrap;justify-content:flex-end}.ct-seg button{font-size:.8rem;font-weight:600;color:var(--text-muted);padding:.32rem .7rem;border-radius:999px;transition:background .12s,color .12s}.ct-seg button:hover{color:var(--text-main)}.ct-seg button.on{background:#fff;color:var(--zoom);box-shadow:var(--shadow-sm)}.ct-main{flex:1;display:flex;flex-direction:column;justify-content:center;position:relative;padding-bottom:6vh}.ct-stage{position:relative;cursor:text;outline:none}.ct-input{position:absolute;top:0;left:0;width:2px;height:1.5em;opacity:0;padding:0;border:0;resize:none;overflow:hidden;font-size:16px;color:transparent;background:transparent;caret-color:transparent;pointer-events:none;z-index:-1}.ct-viewport{position:relative;overflow:hidden;height:calc(var(--ct-size) * var(--ct-lh) * 3);font-family:JetBrains Mono,ui-monospace,monospace;font-size:var(--ct-size);line-height:var(--ct-lh);-webkit-mask-image:linear-gradient(#000 calc(100% - .35em),transparent);mask-image:linear-gradient(#000 calc(100% - .35em),transparent)}.ct-words{position:relative;display:flex;flex-wrap:wrap;align-content:flex-start;transition:transform .2s ease,opacity .16s ease;will-change:transform;user-select:none;-webkit-user-select:none;color:#b9b9c8;font-variant-ligatures:none}.ct-w{position:relative;display:inline-block;margin-right:.6em;white-space:pre}.ct-w span{transition:none}.ct-w span.ok{color:var(--text-main)}.ct-w span.bad{color:var(--busy)}.ct-w span.x{color:var(--busy);opacity:.6}.ct-w.miss{text-decoration:underline;text-decoration-color:#fa58a78c;text-decoration-thickness:2px;text-underline-offset:.28em}.ct-w span.flash{animation:ctflash .32s ease}@keyframes ctflash{0%{color:var(--busy);background:#fa58a729;border-radius:3px}to{background:transparent}}.ct-caret{position:absolute;top:0;left:0;width:2px;height:1.2em;margin-top:calc((var(--ct-lh) * 1em - 1.2em) / 2);margin-left:-1px;border-radius:2px;background:var(--zoom);transition:transform 85ms linear;will-change:transform;pointer-events:none;animation:ctblink 1.05s ease-in-out infinite}.ct-caret.typing{animation:none}@keyframes ctblink{0%,45%{opacity:1}55%,92%{opacity:0}to{opacity:1}}.ct-stage .ct-unfocused{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;font-size:.9rem;font-weight:600;color:var(--text-muted);opacity:0;pointer-events:none;transition:opacity .2s ease .4s}.ct-stage:not(.focused) .ct-words{opacity:.35;filter:blur(2px);transition:opacity .2s ease .4s,filter .2s ease .4s,transform .2s ease}.ct-stage:not(.focused) .ct-caret{opacity:0}.ct-stage:not(.focused) .ct-unfocused{opacity:1}.ct-page.paused .ct-stage .ct-unfocused{opacity:0}.ct-stage.swap .ct-words{opacity:0;transition:none}.ct-under{margin-top:1rem;display:flex;flex-direction:column;gap:.55rem}.ct-done{font-size:.9rem;color:var(--text-muted)}.ct-done b{color:#0a8f63;font-weight:700}.ct-done-in{display:inline-flex;align-items:center;gap:.35rem;animation:fadein .3s ease}.ct-cheer{display:inline-block;width:22px;margin-right:.15rem}.ct-stats{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;font-size:.85rem;color:var(--text-muted)}.ct-done[hidden]{display:none}.chill-stats{font-variant-numeric:tabular-nums}.ct-stats b{font-family:Manrope;font-weight:800;color:var(--zoom);font-size:1rem}.ct-page.no-stats .ct-stats{visibility:hidden}.ct-panel{position:absolute;inset:0 0 6vh;display:grid;place-items:center;z-index:4}.ct-panel[hidden]{display:none}.ct-panel-in{text-align:center;background:#ffffffeb;backdrop-filter:blur(6px);border-radius:24px;padding:1.6rem 1.8rem;animation:fadein .18s ease}.ct-panel-in h3{font-size:1.4rem;margin-bottom:.3rem}.ct-panel-m{width:54px;margin:0 auto .5rem}.ct-panel-sub{color:var(--text-muted);font-size:.9rem;margin-bottom:1.1rem}.ct-panel-btns{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center}.ct-page.paused .ct-stage .ct-words{opacity:.12;filter:blur(3px)}.ct-page.paused .ct-caret{opacity:0}.ct-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:var(--text-muted)}.ct-meta{font-weight:500}.ct-keys{display:flex;gap:1rem;flex-wrap:wrap;opacity:.8}.ct-page kbd,.ct-exit-focus kbd{font-family:JetBrains Mono,monospace;font-size:.72rem;background:#f4f4f9;border:1px solid var(--border-soft);border-bottom-width:2px;border-radius:6px;padding:.05rem .35rem;color:var(--text-main)}.ct-exit-focus{display:none}body.chill-focus .nav,body.chill-focus .coach,body.chill-focus .coach-fab{display:none!important}body.chill-focus .ct-page{min-height:100vh;min-height:100dvh;padding-top:1rem}body.chill-focus .ct-top,body.chill-focus .chill-play>.activity-nav,body.chill-focus .ct-browse,body.chill-focus .ct-foot,body.chill-focus .chill-en,body.chill-focus .te-tap,body.chill-focus .ct-cheer{display:none}body.chill-focus .ct-main{padding-top:2.5rem;justify-content:center}body.chill-focus .ct-stats{visibility:visible}body.chill-focus .ct-exit-focus{display:inline-flex;align-items:center;gap:.4rem;position:fixed;top:1rem;right:1.2rem;font-size:.78rem;color:var(--text-muted);opacity:.45;padding:.4rem .6rem;border-radius:999px;transition:opacity .2s}body.chill-focus .ct-exit-focus:hover{opacity:1;background:#f6f6fb}@media(max-width:860px){.ct-keys,.ct-tool span{display:none}}@media(max-width:600px){.ct-page{--ct-size:1.08rem;--ct-lh:1.75;min-height:0;padding-top:.7rem}.ct-top{flex-wrap:wrap;gap:.3rem}.ct-main{justify-content:flex-start;padding-top:1.6rem;padding-bottom:1rem}.ct-panel{inset:0}.ct-panel-btns .btn{width:100%;justify-content:center}.ct-foot{margin-top:.5rem}}@media(prefers-reduced-motion:reduce){.ct-caret,.ct-words{transition:none}}.chill-cta{display:flex;align-items:center;gap:1rem;margin-top:clamp(2rem,5vw,3rem);padding:1.1rem 1.3rem;border-radius:var(--r);border:1px solid var(--border-soft);background:#fff;transition:border-color .15s,box-shadow .2s}.chill-cta:hover{border-color:#cfcfe6;box-shadow:var(--shadow-md)}.chill-cta .cc-ic{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#3f22ec14;color:var(--zoom)}.chill-cta .cc-body{flex:1;display:flex;flex-direction:column;gap:.15rem;min-width:0}.chill-cta .cc-body b{font-family:Manrope;font-size:1.05rem}.chill-cta .cc-body span{font-size:.88rem;color:var(--text-muted)}.chill-cta .cc-go{flex:none;font-weight:700;color:var(--zoom);font-size:.9rem}@media(max-width:600px){.chill-cta{flex-wrap:wrap}.chill-cta .cc-go{width:100%;padding-left:calc(46px + 1rem)}}.promo{position:relative;overflow:hidden;text-align:center;color:#d9d3ff;padding:1.1rem 1rem 1.2rem;background:radial-gradient(900px 160px at 50% 0%,#3a1c8f 0%,transparent 70%),linear-gradient(180deg,#1d1160,#160c45);border-bottom:2px solid var(--busy);box-shadow:0 2px 18px -4px #fa58a799}.promo-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.55rem}.promo p{margin:0}.promo-head{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:.2rem .6rem}.promo-big{font-family:Manrope,sans-serif;font-weight:800;font-size:clamp(2rem,5vw,3.2rem);line-height:1;letter-spacing:-.01em;color:#fff3fb;text-shadow:0 0 6px #ff9ad5,0 0 16px var(--busy),0 0 32px var(--busy)}.promo-sub{font-family:Manrope,sans-serif;font-weight:700;font-size:clamp(1rem,2vw,1.3rem);color:#7ff5cf;text-shadow:0 0 10px rgba(3,226,157,.6)}.promo-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem .8rem;font-weight:600;font-size:.98rem}.promo-code{font-family:JetBrains Mono,monospace;font-weight:600;font-size:1.35rem;letter-spacing:.22em;color:var(--poison);padding:.35rem .9rem .35rem 1.1rem;border:2px dashed var(--poison);border-radius:10px;background:#dff7000f;text-shadow:0 0 10px rgba(223,247,0,.7);box-shadow:0 0 14px -2px #dff70073;transition:transform .15s}.promo-code:hover{transform:scale(1.04)}.promo-cta{display:inline-flex;align-items:center;font-weight:700;font-size:.92rem;color:#fff;background:var(--busy);padding:.65rem 1.3rem;border-radius:999px;box-shadow:0 0 22px -2px #fa58a7cc;transition:transform .15s,box-shadow .2s}.promo-cta:hover{transform:translateY(-1px);box-shadow:0 0 30px #fa58a7e6}.promo-stars i{position:absolute;width:6px;height:6px;background:#fff;opacity:.7;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:promoTwinkle 3s ease-in-out infinite}.promo-stars i:nth-child(1){left:4%;top:28%}.promo-stars i:nth-child(2){left:27%;top:14%;animation-delay:.6s}.promo-stars i:nth-child(3){left:41%;top:72%;animation-delay:1.2s}.promo-stars i:nth-child(4){left:69%;top:70%;animation-delay:1.8s}.promo-stars i:nth-child(5){left:82%;top:24%;animation-delay:.3s}.promo-stars i:nth-child(6){left:95%;top:60%;animation-delay:2.2s}@keyframes promoTwinkle{0%,to{opacity:.2;transform:scale(.7)}50%{opacity:.9;transform:scale(1.2)}}@media(prefers-reduced-motion:reduce){.promo-stars i{animation:none}}@media(max-width:520px){.promo-code{font-size:1.1rem}.promo-row{font-size:.88rem}}:root{--zh-scale:1;--font-zh:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--tone-1:#3f22ec;--tone-2:#0a8f63;--tone-3:#9a6a00;--tone-4:#a32468;--tone-0:#6b7280}[lang=zh-CN],[lang=zh],.hz{font-family:var(--font-zh)}.subtle{color:var(--text-muted);font-size:.88rem}.center{justify-content:center;text-align:center}.hz{font-weight:500;line-height:1.25;letter-spacing:.02em;color:var(--text-main)}.hz.md{font-size:calc(1.35rem * var(--zh-scale))}.hz.lg{font-size:calc(1.8rem * var(--zh-scale))}.hz.xl{font-size:calc(3rem * var(--zh-scale))}.hz.xxl{font-size:calc(4.4rem * var(--zh-scale));line-height:1.1}.pinyin{font-family:Inter,system-ui,sans-serif;font-weight:500}.py-lg{font-size:1.15rem}.py-xl{font-size:1.5rem;font-weight:600}.tone-1{color:var(--tone-1)}.tone-2{color:var(--tone-2)}.tone-3{color:var(--tone-3)}.tone-4{color:var(--tone-4)}.tone-0,.tone-5{color:var(--tone-0)}.big-en{font-family:Manrope,sans-serif;font-weight:700;font-size:1.3rem;line-height:1.35;letter-spacing:-.01em}.gloss{font-size:1.02rem;color:var(--text-soft)}.gloss .mw{color:var(--text-muted);font-size:.9rem}.ex-en{color:var(--text-muted);font-size:.92rem;margin:.3rem 0 0}.ex-py{display:block;margin-top:.2rem;font-size:.92rem}.zh-chip{font-size:1.15rem}.task .prompt{display:flex;flex-direction:column;align-items:center;gap:.45rem;text-align:center;margin:.2rem 0 1rem}.task .prompt:empty{display:none}.task .q-text{margin-bottom:.8rem}.word-hero{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;padding:1rem 0 1.2rem}.word-hero-copy{display:flex;flex-direction:column;align-items:center;gap:.4rem;min-width:0;max-width:100%;overflow-wrap:anywhere}.word-hero--illustrated{flex-direction:row;justify-content:center;gap:clamp(1rem,3vw,2rem)}.word-illustration{display:block;width:clamp(120px,18vw,180px);height:auto;aspect-ratio:1;object-fit:contain;flex-shrink:0}.word-illustration--detail{width:180px;max-width:100%;margin:0 auto .75rem}.word-illustration--feedback{width:120px;max-width:100%;margin:.8rem auto 0}.way-row.center{justify-content:center}.way-btn.audio-btn{padding:.45rem .85rem}.way-btn.audio-btn.sm{padding:.4rem .65rem}.model-reveal.example{margin-top:.4rem}.model-reveal .way-row{margin-top:.5rem}.term-def p{margin:.15rem 0}.term-def .parts,.term-def .cf{font-size:1.15rem}.term-chip small{font-weight:600;opacity:.8;font-family:Inter,sans-serif}.opt-gloss{margin-left:auto;font-size:.8rem;color:var(--text-muted)}.choice .hz.md{font-size:calc(1.3rem * var(--zh-scale))}.choice.selected{border-color:var(--zoom);background:#3f22ec0f;box-shadow:0 0 0 3px #3f22ec1a}.choice-list.tone-grid{display:grid;grid-template-columns:1fr 1fr}.tone-btn .py-lg{font-size:1.3rem;font-weight:700}.focus-note{margin:.4rem 0 0}.pattern-box{font-family:var(--font-zh);font-size:1.15rem;text-align:center}.recap-fb .fix .way-btn{margin-left:.3rem;vertical-align:middle}.recap-fb .kt-chips{margin:.45rem 0 .2rem}.calc-row .term-input{flex:1;min-width:0;max-width:100%}.term-input.zh{font-family:var(--font-zh);font-size:calc(1.2rem * var(--zh-scale))}.gap-text.hz{font-size:calc(1.6rem * var(--zh-scale));line-height:2}.gap-text .wb-blank{font-family:var(--font-zh);font-size:inherit;min-width:2.4em}.wb-blank.right{border-color:var(--meeting);color:#0a8f63;background:#03e29d1a}.wb-blank.wrong{border-color:var(--busy);color:var(--busy);background:#fa58a71a}.wb-chip{font-family:var(--font-zh);font-size:calc(1.1rem * var(--zh-scale))}.wb-chip[disabled]{opacity:.35;cursor:default}.wb-chip.placed{opacity:1}.build-slot{min-height:64px;border:1.5px dashed var(--border-soft);border-radius:16px;padding:.8rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;background:#fcfcff;margin-top:1rem}.build-slot.right{border-style:solid;border-color:var(--meeting);background:#03e29d0f}.build-slot.wrong{border-style:solid;border-color:var(--busy);background:#fa58a70f}.marks{font-family:var(--font-zh);font-size:1.3rem;margin:.4rem 0;letter-spacing:.05em}.mk.ok{color:#0a8f63}.mk.miss{color:#9a6a00;background:#efca624d;border-radius:3px}.mk.extra,.mk.wrong{color:var(--busy);background:#fa58a729;border-radius:3px;text-decoration:line-through}.level-picker span.level-btn{cursor:default}.recap-kicker span:not(.rk-type){color:var(--text-muted)}.tokline{font-family:var(--font-zh);line-height:2.1;color:var(--text-main)}.tokline.md{font-size:calc(1.25rem * var(--zh-scale))}.tokline.lg{font-size:calc(1.6rem * var(--zh-scale))}.tokline.xl{font-size:calc(2rem * var(--zh-scale))}.tokline rt{font-family:Inter,sans-serif;font-size:.42em;color:var(--text-muted)}.tok{position:relative;cursor:pointer;border-radius:4px;transition:background .12s}.tok:hover{background:#3f22ec0f}.tok.key{box-shadow:inset 0 -2px #9a6a0099;background:#efca6233}.hint-wrap{position:relative;display:inline-flex;align-items:center}.hint-wrap .hint-link{margin-left:0}.hint-pop{position:absolute;left:50%;top:calc(100% + .55rem);transform:translate(-50%);z-index:30;background:var(--text-main);color:#fff;padding:.65rem 1.1rem;border-radius:999px;font-size:.9rem;font-weight:500;box-shadow:var(--shadow-lg);white-space:nowrap;animation:hintin .25s;font-family:Inter,sans-serif;line-height:1.4}.hint-pop:before{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;background:var(--text-main);transform:translate(-50%) rotate(45deg);border-radius:2px}.hint-pop b,.hint-pop [lang=zh-CN]{font-family:var(--font-zh);font-weight:700}.hint-pop .pinyin span{color:var(--poison)!important}.hint-pop small{opacity:.7}.hint-pop .arr{opacity:.55}@keyframes hintin{0%{transform:translate(-50%,6px);opacity:0}}.tok .hint-pop{font-size:.9rem;line-height:1.4}@media(max-width:560px){.hint-pop{white-space:normal;width:max-content;max-width:min(320px,calc(100vw - 2.5rem));border-radius:16px;text-align:center}}.te{position:relative;cursor:text;outline:none}.te-trace{background:#fafafe;border:1.5px solid var(--border-soft);border-radius:16px;padding:clamp(1rem,3vw,1.4rem);transition:.18s}.te-trace.focused{border-color:var(--zoom);box-shadow:0 0 0 4px #3f22ec1a}.te-viewport{position:relative}.te-viewport.te-scroll{overflow:hidden;max-height:calc(3 * var(--te-line))}.te-text{position:relative;font-family:"JetBrains Mono",var(--font-zh);color:#c2c2cf;line-height:var(--te-line);letter-spacing:.04em;transition:transform .2s ease;word-break:break-all;font-variant-ligatures:none}.te-xl{--te-size:calc(2.4rem * var(--zh-scale))}.te-lg{--te-size:calc(1.75rem * var(--zh-scale))}.te-md{--te-size:calc(1.35rem * var(--zh-scale))}.te{--te-line:calc(var(--te-size) * 1.85);font-size:var(--te-size)}.te.show-py{--te-line:calc(var(--te-size) * 2.45)}.te-center .te-text{text-align:center}.te-w{display:inline}.te-w.key .te-c{text-decoration:underline;text-decoration-color:#9a6a0099;text-decoration-thickness:2px;text-underline-offset:.28em}.te-w[data-w]{cursor:help}.te-c{position:relative;display:inline-block;min-width:.5em;text-align:center}.te-c.p{min-width:.35em}.te-c.ok{color:#0a8f63}.te-c.ok.fixed{color:#0a8f63;background:#efca6247;border-radius:3px}.te-c.bad{color:var(--busy);background:#fa58a729;border-radius:3px}.te-c[data-typed]:after{content:attr(data-typed);position:absolute;left:50%;top:100%;transform:translate(-50%,-.3em);font-family:JetBrains Mono,monospace;font-size:.4em;color:var(--busy);line-height:1;white-space:nowrap}.te-c.hid{color:transparent}.te-c.hid:before{content:"";position:absolute;left:18%;right:18%;bottom:.18em;border-bottom:3px dotted #b9b9c9}.te-c.peek{color:#9a6a00}.te.show-py .te-c[data-py]:not(.p):before{content:attr(data-py);position:absolute;left:50%;bottom:100%;transform:translate(-50%,.3em);font-family:Inter,sans-serif;font-size:.34em;font-weight:500;line-height:1;color:#b9b9c9;white-space:nowrap;border:0}.te.show-py .te-c.ok[data-py]:before{color:#5b5b70}.te.show-py .te-c.hid[data-py]:before{left:50%;right:auto;bottom:100%}.te-c.flash{animation:ctflash .32s ease;color:var(--busy)}.te-caret{position:absolute;left:0;top:0;width:2px;border-radius:2px;background:var(--zoom);transition:transform 85ms linear;will-change:transform;pointer-events:none;animation:blink 1s steps(1) infinite}.te-caret.typing{animation:none}.te:not(.focused) .te-caret{opacity:0;animation:none}.te-comp{position:absolute;left:0;top:0;translate:0 -100%;font-family:JetBrains Mono,monospace;font-size:.45em;padding:.15rem .55rem;border-radius:999px;background:#3f22ec14;color:var(--zoom);font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity 80ms;z-index:2}.te-comp.on{opacity:1}.te-input{position:absolute;left:0;top:0;width:2px;height:1.2em;padding:0;border:0;margin:0;opacity:0;resize:none;overflow:hidden;font-size:16px;color:transparent;background:transparent;caret-color:transparent;z-index:-1}.te-tap{display:none;text-align:center;font-size:.9rem;font-weight:600;color:var(--text-muted);margin-top:.5rem;font-family:Inter,sans-serif}.te:not(.focused) .te-tap{display:block}.ime-bar{align-items:center}.ime-bar .ime-buf{cursor:default;font-family:JetBrains Mono,monospace}.ime-bar .ime-cand{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-zh);font-size:1.1rem}.ime-bar .ime-cand kbd{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--text-muted)}.te-chill{--te-size:calc(var(--ct-size) * 1.15 * var(--zh-scale));--te-line:calc(var(--te-size) * var(--ct-lh))}.te-chill.show-py{--te-line:calc(var(--te-size) * 2.35)}.te-chill .te-text{color:#b9b9c8;letter-spacing:.06em}.te-chill .te-c.ok{color:var(--text-main)}.te-chill .te-c.bad{color:var(--busy);background:none}.te-chill .te-caret{animation:ctblink 1.05s ease-in-out infinite}.te-chill .te-caret.typing{animation:none}.te-chill:not(.focused) .te-text{opacity:.35;filter:blur(2px);transition:opacity .2s ease .4s,filter .2s ease .4s,transform .2s ease}.te-chill .te-tap{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);margin:0}.te-chill.show-py .te-c[data-py]:not(.p):before{color:#c9c9d6}.te-chill.show-py .te-c.ok[data-py]:before{color:var(--text-muted)}.ct-page.paused .te-chill .te-text{opacity:.12;filter:blur(3px)}.ct-page.paused .te-chill .te-tap{opacity:0}.ct-en{color:var(--text-muted);font-size:.98rem;margin-top:.9rem;line-height:1.5}.ct-tool[aria-pressed=true]{color:var(--zoom)}.ct-tool[aria-pressed=false]{opacity:.7}.word-hint{top:auto;bottom:calc(100% + .4rem)}.word-hint:before{top:auto;bottom:-5px}.ct-under .ct-panel-btns{margin-top:.2rem}.ct-done kbd{font-family:JetBrains Mono,monospace;font-size:.72rem;background:#f4f4f9;border:1px solid var(--border-soft);border-bottom-width:2px;border-radius:6px;padding:.05rem .35rem;color:var(--text-main)}.ct-cheer svg{width:22px;display:inline-block;vertical-align:middle}.demo-card.demo .demo-trace{padding:.9rem 1rem}.demo-card .te-bare .te-text{color:#bdbdca}.demo-card .te-bare .te-c.ok{color:var(--meeting)}.demo-card .te-bare .te-tap{font-size:.8rem;margin-top:.2rem}.demo-en{font-family:Inter,sans-serif;font-size:.85rem;color:var(--text-muted);margin-top:.35rem;text-align:center}.demo-foot{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-top:.8rem;font-size:.8rem;color:var(--text-muted)}.demo-foot b{font-family:Manrope;color:var(--zoom)}.demo-help{font-size:.76rem;color:var(--text-muted);margin-top:.6rem;line-height:1.45}.demo-help .trace-switch{font-size:.76rem;padding:0}.demo-tag{display:inline-block}.stage-group+.stage-group{margin-top:1.6rem}.stage-group .subj-picker-head{margin-top:1.2rem}.home-years .stage-group .year-grid{margin-top:.2rem}.year-card .yr-big{white-space:nowrap}.level-facts{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:-.8rem 0 1.4rem}.recap-dots button{width:12px;height:12px;border-radius:4px;background:#ececf3;display:inline-block;font-size:0;padding:0;border:0}.recap-dots button.ans{background:#cdc6fb}.recap-dots button.cur{background:var(--zoom)}.timer.low{color:var(--busy)}.review-q summary{cursor:pointer;list-style:none}.review-q summary::-webkit-details-marker{display:none}.hub-card p [lang=zh-CN]{color:var(--text-main)}.learn-card .lc-fig .hz{text-align:center}.tr-zh{font-weight:500;color:var(--text-muted);margin-left:.3rem}.word-search{display:flex;gap:.7rem;margin-bottom:.6rem}.word-search .auth-input{flex:1}.word-search .cl-select{width:auto;min-width:150px}.word-layout{display:grid;grid-template-columns:1fr;gap:1.2rem;align-items:start}.word-layout:has(.word-detail){grid-template-columns:1.3fr 1fr}.word-list{list-style:none;max-height:70vh;overflow:auto;margin:0 -.2rem}.word-row{width:100%;text-align:left;background:none;cursor:pointer;padding:.7rem .2rem}.word-row.on{background:#3f22ec0d;border-radius:10px}.word-row .wr-zh{font-size:1.25rem;min-width:3.2em}.word-row .wr-g{color:var(--text-muted);font-weight:500;font-size:.86rem}.word-detail{position:sticky;top:80px}.word-detail .close-x{position:absolute}.set-sub{display:block;font-size:.76rem;color:var(--text-muted);margin-top:.15rem}.acct-row{align-items:center}.acct-row .v .ct-seg{justify-content:flex-end}.kb-help .ct-seg{margin:.6rem 0 .9rem}.kb-help h2{font-size:1.2rem;margin-bottom:.4rem}.kb-test{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:600;color:var(--text-muted);margin:1rem 0 .4rem}.onb-opt.know{padding:.85rem 1.1rem}.onb-actions{gap:.6rem;flex-wrap:wrap}.placement .hz{margin:.6rem 0 .2rem}.lesson-copy h2{font-family:Manrope;font-size:1.25rem;font-weight:700;line-height:1.4;margin-bottom:.8rem}.lesson-copy h3{font-size:1rem;margin:1.3rem 0 .5rem}.lesson-copy p{line-height:1.6;margin:.4rem 0}.lesson-copy code,.task code,.level-note code{font-family:JetBrains Mono,monospace;font-size:.9em;background:#f3f3f9;border:1px solid #e6e6f0;border-radius:6px;padding:.05em .35em}.lesson-copy kbd{font-family:JetBrains Mono,monospace;font-size:.75rem;background:#f4f4f9;border:1px solid var(--border-soft);border-bottom-width:2px;border-radius:6px;padding:.05rem .35rem}.sound-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin:.4rem 0}.sound-list li{background:#fff;border:1.5px solid var(--border-soft);border-radius:14px;padding:.6rem .85rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.say{display:inline-flex;align-items:center;gap:.4rem}.say-zh{font-size:1.2rem}.syl-demo{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:1.3rem;margin:1rem 0}.syl-demo .part{font-family:JetBrains Mono,monospace;font-weight:600;padding:.3rem .7rem;border-radius:10px}.syl-demo .ini{background:#3f22ec14;color:var(--zoom)}.syl-demo .fin{background:#03e29d24;color:#0a6b4d}.tone-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;margin:.8rem 0}.tone-card{background:#fff;border:1.5px solid var(--border-soft);border-radius:18px;padding:1rem;display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.radicals{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;margin:.8rem 0}.rad{padding:1rem;display:flex;flex-direction:column;gap:.25rem;border-radius:18px}.rad-zh{font-size:2rem;color:var(--zoom)}.strokes{font-size:1.2rem;letter-spacing:.3em}@media(max-width:860px){.word-layout:has(.word-detail){grid-template-columns:1fr}.word-detail{position:relative;top:0}}@media(max-width:560px){.word-hero--illustrated{flex-direction:column;gap:.75rem}.word-illustration--hero{width:144px}.te-xl{--te-size:calc(2rem * var(--zh-scale))}.te-lg{--te-size:calc(1.45rem * var(--zh-scale))}.te.show-py{--te-line:calc(var(--te-size) * 2.6)}.hz.xl{font-size:calc(2.5rem * var(--zh-scale))}.choice-list.tone-grid{grid-template-columns:1fr 1fr}.word-search{flex-direction:column}}.demo-card .demo-foot{justify-content:flex-end}.demo-card .demo-help{text-align:right;padding-left:70px}.dash-year{flex-wrap:wrap;justify-content:flex-end}.dash-year button{white-space:nowrap}@media(max-width:860px){.dash-year{margin-left:0;width:100%;justify-content:flex-start}}.te-done .te-tap{display:none!important}.account-page{max-width:900px}.account-page>.panel,.personal-dashboard>.panel{margin-bottom:1.4rem}.account-prompt{max-width:740px;margin:2rem auto;text-align:center;padding:2.5rem}.account-prompt .btn{margin:.5rem}.account-page label{display:grid;gap:.5rem;max-width:440px;margin:1rem 0}.account-page .btn{margin:.35rem .35rem .35rem 0}.account-page details{margin-top:1.4rem}.account-notice{background:var(--surface,#f7f5fc);padding:1.2rem;border-radius:14px;margin-top:1rem}.device-list{list-style:none;padding:0}.device-list li{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--border,#eee)}.device-list small{display:block;color:var(--text-muted)}.legal-links{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}.pricing-intro{text-align:center;margin-bottom:2rem}.pricing-intro img{margin:auto}.pricing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}.price-card{display:flex;flex-direction:column;gap:.9rem;padding:2rem!important}.price-card h2{font-size:2.7rem;letter-spacing:-.05em;margin:0}.price-card h2 small{font-size:1rem;letter-spacing:normal}.price-card ul{padding-left:1.2rem;line-height:2;flex:1}.price-card.best{border:2px solid var(--zoom,#3f22ec);background:#faf9ff}.price-card small,.pricing-note,.muted{color:var(--text-muted)}.pricing-note{max-width:800px;margin:2rem auto;text-align:center;font-size:.9rem}.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.12em;color:var(--zoom,#3f22ec)}.word-filters{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0 1.6rem}.word-bank-layout{display:grid;gap:1.5rem}.vocabulary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.vocabulary-card{border:1px solid var(--border,#e3e6e8);border-radius:22px;background:#fff;text-align:center;padding:1.2rem;display:flex;flex-direction:column;align-items:center;min-width:0;box-shadow:0 3px 10px #17233c03}.vocabulary-card.learning{background:#faf8ff}.vocabulary-card.mastered{background:#f4fbf8}.vocabulary-art{height:180px;display:flex;align-items:center;justify-content:center;width:100%;margin-bottom:.8rem}.vocabulary-art img{width:100%;height:100%;object-fit:contain;max-width:180px;margin:0}.vocabulary-text-first{font-size:3.2rem;font-weight:500;color:var(--text)}.vocabulary-card h3{font-size:1.65rem;line-height:1.5;margin:.3rem 0}.vocabulary-meta{font-size:.7rem;color:var(--text-muted)}.reveal-meaning{border:0;background:none;color:var(--text);font:inherit;font-size:.84rem;cursor:pointer;min-height:46px;padding:.7rem .3rem}.reveal-meaning:hover{text-decoration:underline}.vocabulary-actions{display:flex;align-items:center;justify-content:center;gap:.25rem;flex-wrap:wrap;margin-top:auto}.vocabulary-actions .btn{font-size:.75rem;padding:.35rem .45rem}.word-detail{max-width:700px;margin:auto}.journey-card{max-width:790px;margin:auto;padding:2rem!important}.journey-card>img{display:block;margin:1.2rem auto}.journey-card h1{text-align:center;font-size:2rem}.journey-card>p{text-align:center;color:var(--text-muted)}.journey-progress{height:5px;background:#eeebf7;border-radius:4px;margin-top:1.2rem}.journey-progress i{display:block;height:100%;background:var(--zoom);border-radius:4px}.journey-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1.5rem 0}.journey-options button{font:inherit;text-align:left;padding:1rem 1.2rem;border:1px solid #dedde7;background:#fff;border-radius:14px;cursor:pointer}.journey-options button.selected{border-color:var(--zoom);background:#f3efff;color:#302093}.journey-summary{background:#f8f6ff;border-radius:16px;padding:1rem 1.5rem}.journey-summary b{display:inline-block;min-width:130px}.personal-welcome{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:2rem}.personal-welcome h1{font-size:2.5rem;margin:.5rem 0}.personal-welcome p{color:var(--text-muted)}.continue-panel{border:1px solid #d9d0ff!important;background:linear-gradient(110deg,#fbfaff,#fff)}.personal-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.5rem 0}.personal-stats strong{display:block;font-size:2rem}.personal-stats span{font-size:.82rem;color:var(--text-muted)}.personal-dashboard .panel{padding:1.6rem}.personal-dashboard section{margin:1.5rem 0}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.panel-heading select{border:1px solid #dedde7;border-radius:8px;background:#fff;padding:.4rem}.activity-chart{height:145px;display:flex;align-items:stretch;gap:8px;padding-top:20px;margin-bottom:2rem}.activity-chart>div{flex:1;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;position:relative}.activity-chart i{width:100%;min-height:3px;background:#8b78ec;border-radius:5px;display:block}.activity-chart small{position:absolute;top:calc(100% + 5px);font-size:.65rem;color:var(--text-muted)}.skill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}.skill-grid b{text-transform:capitalize}.skill-grid span{display:block;font-size:.8rem;color:var(--text-muted);margin:.4rem 0}.skill-grid progress,.compact-levels progress{width:100%;height:5px;accent-color:var(--zoom)}.compact-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:1.4rem}.compact-levels a{display:grid;gap:.4rem;text-decoration:none;color:var(--text)}.compact-levels span{font-size:.8rem;color:var(--text-muted)}.personal-dashboard summary,.account-page summary{cursor:pointer;font-weight:600}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b7aaff;outline-offset:3px}@media(max-width:1000px){.vocabulary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pricing-grid{gap:.7rem}.price-card{padding:1.4rem!important}.skill-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.pricing-grid{grid-template-columns:1fr}.vocabulary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vocabulary-card{padding:.8rem;border-radius:18px}.vocabulary-art{height:140px}.personal-stats,.skill-grid{grid-template-columns:repeat(2,1fr)}.personal-welcome h1{font-size:1.8rem}.personal-welcome>img{width:80px!important}.journey-card{padding:1.1rem!important}.journey-card h1{font-size:1.6rem}.journey-options{grid-template-columns:1fr}.compact-levels{grid-template-columns:repeat(2,1fr)}.nav-cta>.sign-in-button{font-size:.75rem;padding:.3rem}.nav-cta .plan-chip{display:none}.vocabulary-actions .btn{font-size:.7rem}.device-list li{flex-wrap:wrap}.account-prompt{padding:1.4rem}.personal-dashboard .panel{padding:1.2rem}.pricing-intro h1{font-size:2rem}}
