:root{color:#12254d;font-synthesis:none;--ink:#102550;--muted:#5c6f91;--line:#d9e4f6;--paper:#fff;--ice:#f3f7ff;--blue:#2868f0;--cyan:#38cff6;--violet:#7865fa;--night:#091b45;--gold:#efb44c;--shadow:0 18px 45px #1f4b9d1f;background:#f3f7ff;font-family:Microsoft YaHei,Noto Sans CJK SC,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--ice);scroll-behavior:smooth;min-width:320px}body{background:var(--ice);min-width:320px;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.home-shell,.content-page,.learning-page,.simple-page,.typing-page{flex-direction:column;min-height:100vh;display:flex}.content-page,.learning-page,.simple-page{color:var(--ink);background:var(--ice)}.loading-page{color:var(--blue);place-items:center;font-weight:800;display:grid}.site-header{z-index:5;justify-content:space-between;align-items:center;gap:18px;width:min(1180px,100% - 48px);min-height:84px;margin:0 auto;display:flex;position:relative}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{background:#071b49;border:1px solid #90e5ff70;border-radius:13px;place-items:center;width:42px;height:42px;display:grid;overflow:hidden;box-shadow:0 8px 20px #1a90ed52}.brand-mark img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.brand-copy{gap:4px;line-height:1;display:grid}.brand strong{letter-spacing:.07em;font-size:1.05rem}.brand small{color:var(--muted);letter-spacing:.19em;font-size:.57rem}.brand-dark{color:#f4f8ff}.brand-dark small{color:#cad8ff}.brand-dark .brand-mark{border-color:#9af2ff8a;box-shadow:0 8px 22px #37b5ff61}.back-link{color:var(--muted);background:0 0;border:0;align-items:center;gap:7px;padding:9px 0;font-weight:800;display:inline-flex}.back-link svg{width:17px;height:17px}.header-actions,.home-nav,.home-header-controls,.home-account-actions{align-items:center;display:flex}.header-actions,.home-nav{gap:18px}.header-actions a,.home-nav a{color:var(--muted);font-size:.88rem;font-weight:800;text-decoration:none}.home-nav a{color:#dbe6ff}.home-nav a:hover{color:#fff}.home-header-controls{gap:22px}.home-account-actions{gap:8px}.home-account-actions a{color:#eff6ff;background:#0b21506b;border:1px solid #bedbff7a;border-radius:11px;justify-content:center;align-items:center;min-height:36px;padding:0 13px;font-size:.82rem;font-weight:900;text-decoration:none;transition:transform .2s,border-color .2s,background .2s,box-shadow .2s;display:inline-flex;box-shadow:inset 0 1px #ffffff1a}.home-account-actions a:hover{background:#2455a98c;border-color:#9feeff;transform:translateY(-2px);box-shadow:0 9px 22px #2c83ff3d}.home-account-actions .home-register-link{color:#082453;background:linear-gradient(110deg,#a8f2ff,#8dc8ff 58%,#c3b4ff);border-color:#8eedffb8;box-shadow:0 8px 20px #48b8ff47}.home-account-actions .home-register-link:hover{background:linear-gradient(110deg,#c6f8ff,#a7dbff 58%,#d6cbff)}.aurora-starport{z-index:0;background:var(--night);position:absolute;inset:0;overflow:hidden}.starport-poster{object-fit:cover;object-position:center;opacity:.93;width:100%;height:100%;display:block}.starport-canvas{mix-blend-mode:screen;inset:0;width:100%!important;height:100%!important;position:absolute!important}.home-shell{isolation:isolate;color:#eef4ff;background:var(--night);position:relative;overflow:hidden}.home-shell:before{z-index:1;content:"";pointer-events:none;background:#05123a5c;position:absolute;inset:0}.home-header,.growth-hero,.growth-route,.home-note,.home-shell .site-footer{z-index:2}.growth-hero{width:min(1180px,100% - 48px);margin:0 auto;padding:clamp(46px,7vh,82px) 0 32px;position:relative}.eyebrow{color:var(--blue);letter-spacing:.16em;margin:0;font-size:.68rem;font-weight:900}.home-shell .eyebrow{color:#85e8ff}.growth-hero h1{color:#fff;letter-spacing:-.055em;text-wrap:balance;filter:drop-shadow(0 5px 18px #0a194f6b);max-width:980px;margin:14px 0 16px;font-family:Microsoft YaHei UI,Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-size:clamp(3.1rem,5.15vw,4.75rem);font-weight:900;line-height:.99}.growth-hero h1>span{white-space:nowrap;color:#0000;-webkit-text-stroke:.35px #e1f5ff52;background:linear-gradient(105deg,#fff 0%,#f8fbff 44%,#d9f5ff 72%,#d8ccff 100%);-webkit-background-clip:text;background-clip:text;width:max-content;max-width:100%;animation:.72s cubic-bezier(.2,.8,.2,1) both hero-title-reveal;display:block}.growth-hero h1 .hero-title-destination{letter-spacing:-.04em;font-size:.88em;animation-delay:90ms}.hero-title-destination strong{color:#0000;font-weight:inherit;-webkit-text-stroke:.45px #c8f4ff6b;filter:drop-shadow(0 0 12px #5bd3ff47);background:linear-gradient(100deg,#8feeff 0%,#a7dfff 42%,#cdbdff 100%);-webkit-background-clip:text;background-clip:text}.growth-hero>p:last-of-type{color:#e4edff;text-wrap:balance;max-width:620px;margin:0;font-size:1.03rem;line-height:1.75}.hero-launch,.primary-link,.primary-button{color:#fff;background:var(--blue);border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 19px;font-weight:900;text-decoration:none;transition:transform .22s,box-shadow .22s,background .22s;display:inline-flex;box-shadow:0 10px 22px #2868f040}.hero-launch{color:var(--night);background:#fff;margin-top:22px}.hero-launch:hover,.primary-link:hover,.primary-button:hover{transform:translateY(-2px);box-shadow:0 16px 28px #2868f04d}.hero-launch svg{width:18px;height:18px}.growth-route{grid-template-columns:repeat(3,1fr);gap:16px;width:min(1180px,100% - 48px);margin:auto auto 0;display:grid;position:relative}.growth-card{color:#f7fbff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#091b45a6;border:1px solid #b4d7ff6e;border-radius:22px;flex-direction:column;min-height:268px;padding:20px 22px;text-decoration:none;transition:transform .32s cubic-bezier(.2,.8,.2,1),border-color .25s,background .25s;display:flex;overflow:hidden;box-shadow:0 18px 44px #020f2e40}.growth-card:hover{background:#0f2a63d1;border-color:#9eeeff;transform:translateY(-9px)scale(1.012)}.growth-card.python{border-color:#beaeff7a}.growth-card.cpp{border-color:#91e3ff7a}.route-index{color:#9fbcff;letter-spacing:.16em;font-size:.73rem;font-weight:900}.route-icon{color:#8beaff;background:#2c77e340;border:1px solid #caf5ff73;border-radius:14px;place-items:center;width:43px;height:43px;margin:16px 0 11px;display:grid}.route-icon svg{width:25px;height:25px}.growth-card.python .route-icon{color:#c6b8ff}.growth-card p{color:#b8c8f2;letter-spacing:.14em;margin:0;font-size:.65rem;font-weight:900}.growth-card h2{color:#fff;letter-spacing:-.035em;margin:7px 0 2px;font-size:1.7rem}.growth-card em{color:#a9cbff;font-size:.83rem;font-style:normal}.growth-card>span:not(.route-index):not(.route-icon){color:#dfe9ff;margin-top:12px;font-size:.88rem;line-height:1.6}.growth-card b{color:#8ceaff;align-items:center;gap:5px;margin-top:auto;padding-top:14px;font-size:.87rem;display:inline-flex}.growth-card b svg{width:16px;height:16px}.home-note{color:#ccdaff;margin:18px auto 22px;font-size:.83rem;position:relative}.site-footer{border-top:1px solid var(--line);width:min(1180px,100% - 48px);color:var(--muted);text-align:center;gap:9px;margin:auto auto 0;padding:26px 0 30px;font-size:.76rem;display:grid;position:relative}.home-shell .site-footer{color:#ccdaff;border-color:#c4dcff47}.site-footer p{margin:0}.site-footer nav{justify-content:center;gap:16px;display:flex}.site-footer a{text-underline-offset:3px}.filing-placeholder{opacity:.75}.language-hero,.future-hero{width:min(1080px,100% - 48px);margin:0 auto;padding:62px 0 28px}.language-hero h1,.future-hero h1,.maintenance-card h1,.privacy-card h1{color:var(--ink);letter-spacing:-.06em;margin:12px 0;font-size:clamp(2.55rem,5.5vw,4.8rem);line-height:1.05}.language-hero p:last-child,.future-hero p{max-width:620px;color:var(--muted);line-height:1.85}.language-entry-grid,.language-grid{grid-template-columns:repeat(2,1fr);gap:18px;width:min(1080px,100% - 48px);margin:0 auto 82px;display:grid}.language-entry-grid article,.language-card{border:1px solid var(--line);background:var(--paper);min-height:270px;box-shadow:var(--shadow);border-radius:22px;padding:30px}.language-entry-grid article:first-child{border-top:4px solid var(--violet)}.language-entry-grid article:last-child{border-top:4px solid var(--cyan)}.language-entry-grid article>span,.language-card>span{color:var(--blue);letter-spacing:.14em;font-size:.75rem;font-weight:900}.language-entry-grid h2,.language-card h2{letter-spacing:-.04em;margin:18px 0 9px;font-size:1.85rem}.language-entry-grid p,.language-card p{color:var(--muted);line-height:1.75}.language-entry-grid .primary-link{margin-top:18px}.learning-layout{grid-template-columns:296px minmax(0,1fr);align-items:start;gap:36px;width:min(1180px,100% - 48px);margin:12px auto 58px;display:grid}.course-sidebar{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overscroll-behavior-y:contain;background:#ffffffd4;border-radius:20px;max-height:calc(100vh - 34px);padding:24px 18px;position:sticky;top:16px;overflow-y:auto;box-shadow:0 14px 32px #2352a714}.course-sidebar h1{margin:11px 0 10px;font-size:1.35rem}.course-sidebar>p:not(.eyebrow){color:var(--muted);font-size:.86rem;line-height:1.65}.course-sidebar nav{gap:6px;margin-top:20px;display:grid}.course-sidebar nav a{border:1px solid #0000;border-radius:12px;padding:10px;text-decoration:none}.course-sidebar nav a:hover{background:#eef5ff}.course-sidebar nav a.active{color:var(--blue);background:#edf4ff;border-color:#bcd7ff}.course-sidebar b,.course-sidebar small{display:block}.course-sidebar b{font-size:.84rem}.course-sidebar small{color:var(--muted);margin-top:4px;font-size:.7rem;line-height:1.45}.lesson-article,.practice-article{border:1px solid var(--line);background:var(--paper);min-width:0;box-shadow:var(--shadow);border-radius:22px;padding:clamp(24px,4vw,50px)}.lesson-article{line-height:1.9}.lesson-article h1{letter-spacing:-.045em;font-size:clamp(2rem,4vw,3.3rem)}.lesson-article h2{color:#14326c;margin-top:2em}.lesson-article p,.practice-article>p{color:#4e6389}.lesson-article pre,.solution-panel pre,.sample-box pre{color:#dceaff;background:var(--night);border-radius:14px;padding:18px;overflow-x:auto}.lesson-article code{font-family:ui-monospace,Consolas,monospace}.lesson-label{color:var(--blue);letter-spacing:.15em;font-size:.7rem;font-weight:900}.practice-article h2{letter-spacing:-.045em;margin:8px 0;font-size:clamp(2rem,4vw,3.1rem)}.question-card{border-top:1px solid var(--line);padding:24px 0;scroll-margin-top:20px}.question-card.correct{border-left:4px solid #36bc95;padding-left:18px}.question-card.incorrect{border-left:4px solid #ef7f75;padding-left:18px}.question-head{color:var(--blue);align-items:center;gap:8px;font-size:.78rem;font-weight:900;display:flex}.question-head small{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:3px 8px}.question-card h3{line-height:1.7}.choice-list{gap:10px;margin-top:17px;display:grid}.choice-list label{border:1px solid var(--line);color:#30496f;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;transition:border-color .2s,background .2s;display:flex}.choice-list label.selected{background:#eef5ff;border-color:#8ab8ff}.choice-list input{accent-color:var(--blue)}.question-feedback{background:#f1f8ff;border:1px solid #cce7ff;border-radius:12px;margin-top:13px;padding:13px 15px}.question-feedback p{margin:5px 0 0}.quiz-actions{align-items:center;gap:14px;margin-top:28px;display:flex}.quiz-actions span{color:var(--muted);font-size:.8rem}.result-summary{color:#fff;background:var(--night);border-radius:16px;align-items:baseline;gap:10px;margin:26px 0;padding:18px;display:flex}.result-summary strong{color:#90eaff;font-size:2rem}.result-summary p{color:#d8e5ff;margin:0}.problem-title{justify-content:space-between;gap:18px;display:flex}.problem-title>span{color:#775214;white-space:nowrap;background:#fff0ca;border-radius:999px;align-self:start;padding:5px 10px;font-size:.78rem;font-weight:900}.problem-spec{gap:16px;margin:30px 0;display:grid}.problem-spec div{border-bottom:1px solid var(--line);padding-bottom:14px}.problem-spec dt{color:var(--blue);margin-bottom:5px;font-weight:900}.problem-spec dd{color:var(--muted);margin:0;line-height:1.75}.sample-box{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.sample-box span{color:var(--muted);font-size:.77rem;font-weight:800}.sample-box pre{min-height:90px}.outline-button{min-height:44px;color:var(--blue);background:#fff;border:1px solid #8eb6f8;border-radius:14px;padding:0 18px;font-weight:900}.outline-button:hover{background:#eef5ff}.solution-panel{border-top:1px solid var(--line);margin-top:22px;padding-top:22px}.simple-page>.privacy-card,.simple-page>.maintenance-card,.account-card{border:1px solid var(--line);background:var(--paper);width:min(700px,100% - 48px);box-shadow:var(--shadow);border-radius:22px;margin:48px auto 78px;padding:clamp(25px,4vw,42px)}.privacy-card h2,.account-card h2{color:#183d81;margin-top:32px}.privacy-card p,.account-card p{color:var(--muted);line-height:1.8}.typing-page{color:var(--ink);background:#f3f7ff;padding-bottom:50px}.typing-page:before{z-index:0;content:"";pointer-events:none;background:#e6f2ff;height:280px;position:fixed;inset:0 0 auto}.typing-page>*{z-index:1;position:relative}.typing-hero,.today-card,.typing-account-note,.typing-map,.practice-head{width:min(1080px,100% - 48px);margin-left:auto;margin-right:auto}.typing-hero{justify-content:space-between;align-items:end;gap:24px;padding:44px 0 20px;display:flex}.typing-hero h1,.practice-head h1{letter-spacing:-.06em;margin:10px 0;font-size:clamp(2.5rem,6vw,4.6rem);line-height:1}.typing-hero p:last-child,.practice-head p:last-child{max-width:620px;color:var(--muted);line-height:1.8}.typing-hero-actions{gap:10px;min-width:205px;display:grid}.star-meter{color:#e7faff;background:var(--night);text-align:center;border-radius:18px;min-width:205px;padding:18px;box-shadow:0 15px 28px #091b452e}.star-meter span{color:var(--gold);font-size:1.7rem;display:block}.star-meter strong{font-size:2.1rem;display:block}.star-meter small{color:#bad4ff;font-size:.72rem;display:block}.progress-button{min-height:44px;color:var(--blue);background:#fff;border:1px solid #b8d3ff;border-radius:14px;font-weight:900}.progress-button:hover{background:#edf5ff}.today-card{box-shadow:var(--shadow);background:#fff;border:1px solid #cbe1ff;border-radius:20px;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;display:flex}.today-card p,.mission-card p{color:var(--blue);letter-spacing:.12em;margin:0;font-size:.75rem;font-weight:900}.today-card h2{margin:8px 0;font-size:1.45rem}.today-card span,.today-card small{color:var(--muted);line-height:1.65;display:block}.today-card small{margin-top:7px;font-size:.78rem}.typing-account-note{border:1px solid var(--line);background:#ffffffd1;border-radius:15px;align-items:center;gap:12px;margin-top:18px;padding:14px 18px;display:flex}.typing-account-note strong{color:var(--blue)}.typing-account-note span{color:var(--muted);flex:1;font-size:.88rem}.typing-account-note a{color:var(--violet);font-size:.86rem;font-weight:900}.typing-map{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:22px;margin-top:24px;padding:28px}.typing-stage+.typing-stage{border-top:1px solid var(--line);margin-top:30px;padding-top:26px}.typing-stage-label{align-items:baseline;gap:12px;display:flex}.typing-stage-label span{color:var(--blue);letter-spacing:.12em;font-size:.72rem;font-weight:900}.typing-stage-label strong{font-size:1.28rem}.typing-stage-label small,.map-note{color:var(--muted)}.lesson-map-grid{grid-template-columns:repeat(12,1fr);gap:8px;margin-top:20px;display:grid}.lesson-node{border:1px solid var(--line);color:#547098;background:#fbfdff;border-radius:13px;place-items:center;gap:2px;min-height:78px;padding:8px 4px;display:grid}.lesson-node:not(:disabled):hover{border-color:var(--blue);color:var(--blue);background:#eef5ff;transform:translateY(-2px)}.lesson-node.done{color:#0f6e92;background:#e9fbff;border-color:#8ed9e6}.lesson-node:disabled{opacity:.44;cursor:not-allowed}.lesson-node span{font-size:.68rem}.lesson-node b{color:var(--gold)}.lesson-node small{text-align:center;font-size:.58rem;line-height:1.2}.map-note{margin:13px 0 0;font-size:.85rem}.practice-page{padding-bottom:22px}.practice-head{justify-content:space-between;gap:20px;padding:18px 0;display:flex}.practice-head h1{font-size:clamp(2.2rem,4vw,3.7rem)}.practice-stats{color:var(--muted);text-align:right;align-content:start;gap:8px;display:grid}.practice-stats strong{color:var(--blue);font-size:1.2rem}.sound-button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:10px;padding:7px 10px}.practice-workbench{grid-template-columns:minmax(0,1.1fr) minmax(410px,.9fr);align-items:stretch;gap:18px;width:min(1080px,100% - 48px);margin:0 auto;display:grid}.mission-card,.typing-console{border:1px solid var(--line);background:#fff;border-radius:18px;box-shadow:0 10px 26px #2352a712}.mission-card{align-items:center;gap:14px;min-height:82px;padding:16px 20px;display:flex}.mission-card strong{flex:1}.mission-card span{color:var(--muted);font-size:.8rem}.typing-console{min-height:194px;margin-top:14px;padding:22px 24px}.console-label,.input-hint{color:var(--muted);font-size:.86rem}.target-line{letter-spacing:.04em;word-break:break-all;min-height:62px;margin:23px 0 16px;font:700 clamp(1.45rem,3vw,2.5rem)/1.45 ui-monospace,Consolas,monospace}.target-line .typed{color:#13866b}.target-line .current{color:#195fdc;border-bottom:3px solid var(--cyan)}.target-line .pending{color:#a5b2c9}.space-character{letter-spacing:0;vertical-align:middle;border:1px dashed;border-radius:.22em;place-items:center;min-width:2.4em;margin:0 .12em;padding:.08em .18em;font:700 .5em/1.45 system-ui,sans-serif;display:inline-grid}.wrong-char{color:#dc4d61;margin-left:3px;-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.virtual-keyboard{background:var(--night);border:1px solid #203b73;border-radius:18px;align-content:center;min-height:282px;padding:18px;overflow:hidden;box-shadow:0 16px 30px #091b452e}.keyboard-row{justify-content:center;gap:7px;margin:7px 0;display:flex}.keyboard-number,.keyboard-letter-row,.keyboard-home,.keyboard-bottom{justify-content:stretch;padding-left:0;display:grid}.keyboard-number{grid-template-columns:repeat(10,minmax(0,1fr)) minmax(42px,1.65fr)}.keyboard-letter-row{grid-template-columns:repeat(12,minmax(0,1fr))}.keyboard-home{grid-template-columns:repeat(11,minmax(0,1fr)) minmax(70px,2.1fr)}.keyboard-bottom{grid-template-columns:minmax(46px,1.5fr) repeat(10,minmax(0,1fr)) minmax(46px,1.5fr)}.key{color:#d5e7ff;text-align:center;background:#142e66;border:1px solid #31548e;border-radius:7px;min-width:38px;padding:10px 7px;font-family:ui-monospace,Consolas,monospace}.keyboard-number .key,.keyboard-letter-row .key,.keyboard-home .key,.keyboard-bottom .key{min-width:0}.key.active{color:#102550;background:#79e8ff;border-color:#95f2ff;box-shadow:0 0 0 3px #79e8ff2e}.keyboard-actions{margin-top:13px}.key.space{width:min(230px,56%)}.key.backspace{min-width:0;font-size:1.25rem}.key.enter{min-width:0;font-size:.82rem}.key.shift{min-width:0;font-size:.7rem}.keyboard-required{border:1px solid var(--line);text-align:center;background:#fff;border-radius:20px;width:min(650px,100% - 48px);margin:72px auto;padding:44px}.keyboard-required span{color:var(--blue);font-size:3rem}.finish-modal,.progress-modal{z-index:12;background:#05123a9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.finish-modal>div,.progress-report{width:min(760px,100%);color:var(--ink);background:#fff;border:1px solid #c7dcff;border-radius:24px;padding:clamp(24px,4vw,38px);position:relative;box-shadow:0 28px 80px #0000004d}.finish-modal>div{text-align:center;max-width:500px}.finish-modal h2,.progress-report h2{color:#173b7b}.finish-modal>div>strong{color:var(--blue);font-size:4rem;line-height:1;display:block}.finish-modal small{color:var(--muted)}.finish-stars{justify-content:center;gap:8px;min-height:56px;display:flex}.finish-modal .finish-stars span{color:var(--gold);opacity:0;font-size:3rem;animation:.52s cubic-bezier(.18,.86,.32,1.35) forwards star-pop;display:inline-block;transform:translateY(14px)scale(.35)rotate(-12deg)}.finish-learner{color:var(--muted);margin:16px 0 8px;font-weight:800}.finish-learner b{color:var(--blue)}.modal-actions{justify-content:center;gap:12px;margin-top:24px;display:flex}.report-close{border:1px solid var(--line);width:38px;height:38px;color:var(--muted);background:#f4f8ff;border-radius:50%;font-size:1.5rem;position:absolute;top:16px;right:18px}.progress-report h2{letter-spacing:-.04em;margin:8px 0 18px;font-size:clamp(1.85rem,4vw,3rem)}.report-learner{background:#f3f8ff;border:1px solid #cee2ff;border-radius:16px;align-items:center;gap:13px;padding:13px 17px;display:flex}.report-learner>span{color:#bff5ff;background:var(--blue);border-radius:50%;place-items:center;width:42px;height:42px;font-size:1.45rem;display:grid}.report-learner small,.report-learner strong{display:block}.report-learner small{color:var(--muted)}.report-learner strong{color:var(--ink);margin-top:2px;font-size:1.16rem}.report-learner em{color:var(--violet);margin-left:auto;font-size:.82rem;font-style:normal}.report-numbers{grid-template-columns:repeat(3,1fr);gap:10px;margin:13px 0 20px;display:grid}.report-numbers div{color:#eaf5ff;background:var(--night);text-align:center;border-radius:13px;padding:11px 9px}.report-numbers strong,.report-numbers span{display:block}.report-numbers strong{color:#a9efff;font-size:1.75rem}.report-numbers span{color:#bdd3ff;margin-top:5px;font-size:.7rem}.report-section-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.report-section-head h3{color:var(--ink);margin:0;font-size:1.05rem}.report-section-head span{color:var(--muted);font-size:.78rem}.report-progress-bar{background:#e5eefb;border-radius:999px;height:10px;margin:10px 0;overflow:hidden}.report-progress-bar span{border-radius:inherit;background:var(--cyan);height:100%;transition:width .3s;display:block}.stage-progress-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stage-progress-grid article{border:1px solid var(--line);background:#f8fbff;border-radius:10px;padding:9px}.stage-progress-grid strong,.stage-progress-grid span{display:block}.stage-progress-grid strong{color:#315994;font-size:.82rem}.stage-progress-grid span{color:var(--muted);margin-top:3px;font-size:.74rem}.badge-section{margin-top:20px}.badge-grid{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.badge-card{background:#fff9e9;border:1px solid #ffe1a2;border-radius:999px;align-items:center;gap:7px;padding:7px 10px 7px 7px;display:flex}.badge-card b{color:#fff7d9;background:var(--gold);border-radius:50%;place-items:center;width:28px;height:28px;font-size:.92rem;display:grid}.badge-card strong{color:#35547f;font-size:.8rem}.report-empty{color:var(--muted);background:#f4f8ff;border-radius:10px;margin:10px 0 0;padding:10px 13px;font-size:.82rem;line-height:1.5}.report-footnote{color:var(--muted);text-align:center;margin:18px 0 0;font-size:.78rem}.account-page{background:#f3f7ff}.account-card h1{color:var(--ink);letter-spacing:-.05em;font-size:clamp(2rem,5vw,3.4rem)}.account-form{gap:17px;margin-top:23px;display:grid}.account-form label{color:#315382;gap:7px;font-weight:800;display:grid}.account-form input,.account-form select{width:100%;color:var(--ink);background:#fff;border:1px solid #bfd4f5;border-radius:10px;padding:11px 12px}.account-form small{color:var(--muted);font-weight:400}.consent-check{line-height:1.65;font-weight:400!important;display:block!important}.consent-check input{width:auto;margin-right:8px}.account-links,.teacher-actions{gap:18px;display:flex}.teacher-actions{margin:24px 0}.invite-result{color:#174777;background:#eff8ff;border:1px solid #c9e6ff;border-radius:12px;gap:6px;padding:16px;display:grid}.invite-result strong{letter-spacing:.08em;font:700 1.5rem ui-monospace,monospace}.invite-result span{color:var(--muted)}.learner-list{gap:10px;margin-top:22px;display:grid}.learner-list article{border:1px solid var(--line);background:#f8fbff;border-radius:12px;gap:14px;padding:16px;display:flex}.learner-list h2,.learner-list p{margin:0}.learner-avatar{color:#bff5ff;background:var(--blue);border-radius:50%;place-items:center;width:42px;height:42px;display:grid}@keyframes star-pop{to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes hero-title-reveal{0%{opacity:0;filter:blur(7px);transform:translateY(18px)}to{opacity:1;filter:blur();transform:translateY(0)}}.lesson-article table{border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #c9daef;border-radius:12px;width:max-content;max-width:100%;margin:1.35rem 0;font-size:.92rem;line-height:1.65;display:block;overflow-x:auto;box-shadow:0 5px 16px #2352a712}.lesson-article th,.lesson-article td{vertical-align:top;text-align:left;white-space:normal;border-bottom:1px solid #d9e5f3;border-right:1px solid #d9e5f3;min-width:7.5rem;padding:.68rem .8rem}.lesson-article th{color:#173b7b;background:#edf5ff;font-weight:800}.lesson-article tr:nth-child(2n) td{background:#f8fbff}.lesson-article tr>:last-child{border-right:0}.lesson-article tbody tr:last-child>*{border-bottom:0}.lesson-article pre{tab-size:4;margin:1.25rem 0;line-height:1.65}.lesson-article pre code{min-width:max-content;display:block}.lesson-article :not(pre)>code{color:#1a477f;background:#edf4ff;border-radius:5px;padding:.1em .35em;font-size:.9em}.learning-page>.site-header{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f7fafff0;border-bottom:1px solid #b4cff0c7;position:sticky;top:0;box-shadow:0 8px 20px #2352a717}.home-account-actions{display:none}@media (width<=900px){.growth-route{grid-template-columns:1fr;max-width:620px}.growth-card{min-height:235px}.home-note{text-align:center}.learning-layout,.practice-workbench{grid-template-columns:1fr}.course-sidebar{max-height:300px;position:relative;top:auto}.virtual-keyboard{min-height:auto}.practice-page .virtual-keyboard{width:min(100% - 48px,1080px);margin:0 auto}}@media (width<=760px){.site-header{width:min(100% - 32px,1180px);min-height:72px}.home-nav{display:none}.home-header-controls{gap:0}.home-account-actions{gap:6px}.home-account-actions a{border-radius:10px;min-height:34px;padding:0 10px;font-size:.78rem}.growth-hero,.growth-route,.typing-hero,.today-card,.typing-account-note,.typing-map,.practice-head,.language-hero,.language-entry-grid,.language-grid,.learning-layout{width:min(100% - 32px,1080px)}.growth-hero{padding-top:42px;padding-bottom:28px}.growth-hero h1{font-size:clamp(2.45rem,11.4vw,4rem);line-height:1.04}.growth-hero h1>span{white-space:normal;width:auto}.growth-hero h1 .hero-title-destination{font-size:.94em}.growth-card{min-height:250px}.site-footer{width:min(100% - 32px,1180px)}.site-footer nav{flex-wrap:wrap}.language-entry-grid,.language-grid{grid-template-columns:1fr}.typing-hero,.today-card,.practice-head{flex-direction:column;align-items:flex-start}.typing-hero-actions,.star-meter,.today-card .primary-button,.progress-button{width:100%}.typing-account-note,.mission-card{flex-direction:column;align-items:flex-start}.lesson-map-grid{grid-template-columns:repeat(4,1fr)}.practice-stats{text-align:left}.practice-workbench{width:min(100% - 32px,1080px)}.practice-page .virtual-keyboard{width:100%}.key{min-width:27px;padding:8px 3px;font-size:.8rem}.key.space{width:180px}.key.enter,.key.backspace{min-width:0}.sample-box{grid-template-columns:1fr}.teacher-actions,.modal-actions{flex-direction:column}.teacher-actions button,.modal-actions button{width:100%}.progress-modal{padding:16px}.progress-report{border-radius:18px;padding:24px 18px}.report-learner{align-items:flex-start}.report-learner em{display:none}.report-numbers{grid-template-columns:1fr}.stage-progress-grid{grid-template-columns:repeat(2,1fr)}.report-section-head{flex-direction:column;align-items:flex-start;gap:4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.starport-canvas{display:none}}.star-meter .star-meter-icon{width:27px;height:27px;color:var(--gold);margin:0 auto 2px;display:block}.progress-button,.sound-button{justify-content:center;align-items:center;gap:5px;display:inline-flex}.progress-button svg,.sound-button svg{width:16px;height:16px}.keyboard-required svg{width:52px;height:52px;color:var(--blue)}.finish-modal .finish-stars svg{width:48px;height:48px}.report-close{place-items:center;font-size:0;display:grid}.report-close svg{width:18px;height:18px}.report-learner>span svg{width:23px;height:23px}@media (width>=901px){.growth-hero{padding-top:clamp(28px,4vh,48px);padding-bottom:20px}}.home-tools-link{z-index:4;color:#c9dbff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:.8;background:#07194294;border:1px solid #acd9ff5c;border-radius:11px;align-items:center;gap:7px;min-height:34px;padding:0 11px;font-size:.76rem;font-weight:800;text-decoration:none;transition:opacity .2s,transform .2s,border-color .2s;display:inline-flex;position:fixed;bottom:18px;right:18px;box-shadow:0 10px 24px #00000029}.home-tools-link:hover{color:#effbff;opacity:1;border-color:#89ebff;transform:translateY(-2px)}.home-tools-link svg{width:17px;height:17px}.tools-page{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 84% 8%,#a896ff2e,#0000 27%),linear-gradient(#f2f7ff 0%,#f8fbff 48%,#edf5ff 100%)}.tools-hero,.tool-grid,.tool-embed-head,.tool-frame-shell{width:min(1080px,100% - 48px);margin-left:auto;margin-right:auto}.tools-hero{padding:clamp(44px,7vw,82px) 0 30px}.tools-hero h1,.tool-embed-head h1{color:var(--ink);letter-spacing:-.06em;margin:10px 0;font-size:clamp(2.6rem,5.8vw,4.8rem);line-height:1}.tools-hero>p:last-child,.tool-embed-head>div>p:last-child{max-width:620px;color:var(--muted);margin:0;line-height:1.8}.tool-grid{grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:18px;margin-bottom:70px;display:grid}.tool-card{border:1px solid var(--line);min-height:280px;box-shadow:var(--shadow);background:#ffffffd1;border-radius:24px;flex-direction:column;padding:clamp(24px,3vw,34px);text-decoration:none;display:flex;overflow:hidden}.tool-card-active{background:linear-gradient(135deg,#fff 0%,#f0f9ff 50%,#f2efff 100%);border-color:#9edfff;transition:transform .25s,box-shadow .25s,border-color .25s}.tool-card-active:hover{border-color:#6cdcf5;transform:translateY(-5px);box-shadow:0 23px 48px #2a7dd32e}.tool-card-coming{opacity:.72}.tool-icon{color:#168fc5;background:#e9faff;border:1px solid #a6def5;border-radius:17px;place-items:center;width:52px;height:52px;display:grid}.tool-icon svg{width:30px;height:30px}.tool-card p{color:var(--blue);letter-spacing:.14em;margin:20px 0 0;font-size:.7rem;font-weight:900}.tool-card h2{color:var(--ink);letter-spacing:-.05em;margin:10px 0 3px;font-size:clamp(1.6rem,3vw,2.3rem)}.tool-card em{color:#3380a9;font-size:.9rem;font-style:normal}.tool-card>span:not(.tool-icon){color:var(--muted);margin-top:19px;line-height:1.75}.tool-card b{color:var(--blue);align-items:center;gap:6px;margin-top:auto;padding-top:24px;font-size:.9rem;display:inline-flex}.tool-card b svg{width:17px;height:17px}.tool-embed-page{padding-bottom:34px}.tool-embed-head{justify-content:space-between;align-items:end;gap:24px;padding:18px 0 20px;display:flex}.tool-embed-head h1{font-size:clamp(2.3rem,4.6vw,3.7rem)}.tool-embed-head .outline-button{white-space:nowrap;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.tool-frame-shell{background:#071a45;border:1px solid #9fcce8;border-radius:24px;min-height:680px;overflow:hidden;box-shadow:0 20px 50px #1346912e}.tool-frame-shell iframe{border:0;width:100%;height:max(680px,100vh - 204px);display:block}.tools-access-card{width:min(620px,100% - 48px);box-shadow:var(--shadow);background:#ffffffd6;border:1px solid #c8e1ff;border-radius:24px;margin:82px auto;padding:34px}.tools-access-card h1{letter-spacing:-.055em;margin:10px 0;font-size:clamp(2.2rem,5vw,3.7rem)}.tools-access-card>p:last-of-type{color:var(--muted)}.tools-password-modal{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#041033ad;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.tools-password-modal form{width:min(420px,100%);color:var(--ink);background:linear-gradient(145deg,#fff,#eef8ff);border:1px solid #b9e6ff;border-radius:22px;padding:30px;box-shadow:0 28px 70px #0000004d}.tools-password-modal h2{color:#153d80;margin:9px 0;font-size:1.55rem}.tools-password-modal>form>p:not(.eyebrow){color:var(--muted);margin:0}.tools-password-modal input{width:100%;color:var(--ink);letter-spacing:.34em;text-align:center;background:#fff;border:1px solid #a9caef;border-radius:13px;margin-top:20px;padding:14px 16px;font-size:1.35rem}.tools-password-modal form>div:last-child{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.tools-password-error{color:#c13d58;margin-top:9px;font-size:.84rem;font-weight:800;display:block}@media (width<=760px){.home-tools-link{bottom:12px;right:12px}.tools-hero,.tool-grid,.tool-embed-head,.tool-frame-shell{width:min(100% - 32px,1080px)}.tools-hero{padding-top:42px}.tool-grid{grid-template-columns:1fr;margin-bottom:48px}.tool-card{min-height:230px}.tool-embed-head{flex-direction:column;align-items:flex-start;padding-top:12px}.tool-embed-head .outline-button{width:100%}.tool-frame-shell{border-radius:18px;min-height:680px}.tool-frame-shell iframe{height:760px}.tools-access-card{width:min(100% - 32px,620px);margin:48px auto;padding:25px}.tools-password-modal{padding:16px}.tools-password-modal form{padding:24px 20px}.tools-password-modal form>div:last-child{flex-direction:column-reverse}.tools-password-modal form>div:last-child button{width:100%}}.points-page,.points-login-page{color:#f6f9ff;background:#03112f;min-height:100vh}.points-page{background:radial-gradient(circle at 68% 9%,#196ec22e,#0000 26%),radial-gradient(circle at 94% 83%,#5f46be24,#0000 29%),#03112f;grid-template-columns:226px minmax(0,1fr);display:grid;overflow:hidden}.points-rail{background:#031335e6;border-right:1px solid #8bc7ff29;flex-direction:column;min-height:100vh;padding:28px 22px 20px;display:flex;box-shadow:16px 0 45px #00000021}.points-rail .brand{color:#fff}.points-rail .brand small{color:#adc9ff}.points-rail-title{margin:70px 0 44px}.points-rail-title p{letter-spacing:-.06em;margin:0;font-size:2rem;font-weight:900}.points-rail-title span{color:#a5b8e5;margin-top:8px;font-size:.88rem;display:block}.points-rail-section small{color:#8da9de;letter-spacing:.12em;margin:0 0 10px;font-size:.7rem;font-weight:900;display:block}.points-class-picker{color:#eaf3ff;background:#1d438569;border:1px solid #83c4ff38;border-radius:14px;grid-template-columns:20px minmax(0,1fr) 16px 27px;align-items:center;gap:8px;min-height:58px;padding:0 11px;display:grid}.points-class-picker>svg{color:#98e8ff}.points-class-picker select{appearance:none;width:100%;color:inherit;background:0 0;border:0;outline:0;font-size:.91rem;font-weight:800}.points-class-picker select option{color:#132958}.points-class-picker button{color:#9eeeff;background:#3287dc4f;border:1px solid #9fe9ff59;border-radius:9px;place-items:center;width:27px;height:27px;padding:0;display:grid}.points-class-picker button svg{width:15px;height:15px}.points-rail-actions{gap:10px;margin-top:18px;display:grid}.points-rail-actions button,.points-rail-bottom a{color:#dce9ff;text-align:left;background:#0a255857;border:1px solid #93beff30;border-radius:13px;align-items:center;gap:10px;min-height:50px;padding:0 13px;font-size:.9rem;font-weight:800;text-decoration:none;transition:transform .2s,border-color .2s,background .2s;display:flex}.points-rail-actions button:hover,.points-rail-bottom a:hover{background:#17448a85;border-color:#8becff8c;transform:translate(2px)}.points-rail-actions button:disabled{opacity:.45;cursor:not-allowed}.points-rail-bottom{gap:12px;margin-top:auto;display:grid}.sound-toggle{color:#dce9ff;background:#0a255857;border:1px solid #93beff30;border-radius:13px;grid-template-columns:20px 1fr auto;align-items:center;gap:9px;min-height:52px;padding:0 13px;font-weight:800;display:grid}.sound-toggle svg{color:#9eeeff}.sound-toggle span{color:#062452;text-align:center;background:#9feeff;border-radius:999px;min-width:24px;padding:3px 6px;font-size:.68rem}.points-stage{box-sizing:border-box;min-width:0;height:100vh;min-height:0;padding:20px clamp(22px,4vw,56px) 14px;position:relative;overflow:hidden}.points-stage-header{justify-content:space-between;align-items:start;gap:20px;min-height:70px;display:flex}.points-stage-header p{color:#80dffa;letter-spacing:.16em;margin:0;font-size:.7rem;font-weight:900}.points-stage-header h1{color:#fff;letter-spacing:-.06em;margin:8px 0 0;font-size:clamp(1.85rem,3.2vw,3rem)}.sync-state{color:#b6ddff;white-space:nowrap;background:#0622529e;border:1px solid #99deff33;border-radius:999px;align-items:center;gap:7px;min-height:34px;margin-top:8px;padding:0 11px;font-size:.78rem;font-weight:800;display:inline-flex}.sync-state svg{color:#8df0bf}.points-toast{z-index:2;color:#e5f9ff;background:#0f4581d1;border:1px solid #83e9ff4f;border-radius:12px;max-width:min(400px,100% - 44px);margin:0;padding:10px 13px;font-size:.82rem;position:absolute;top:102px;right:clamp(22px,4vw,56px);box-shadow:0 12px 30px #0000002e}.points-grid{box-sizing:border-box;overscroll-behavior:contain;scrollbar-color:#67dff7 #11346ab8;scrollbar-width:auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(282px,calc(50vh - 66px));align-content:start;gap:14px;height:calc(100vh - 104px);min-height:0;padding:10px 10px 20px 0;display:grid;overflow-y:auto}.points-grid::-webkit-scrollbar{width:12px}.points-grid::-webkit-scrollbar-thumb{background:#67dff7;border:3px solid #08265d;border-radius:999px}.points-grid::-webkit-scrollbar-track{background:#11346ab8;border-radius:999px}.points-grid>div{min-width:0}.points-student-card{color:#fff;background:linear-gradient(145deg,#0c306bf0,#051d4cf5);border:1px solid #70b2ff40;border-radius:19px;flex-direction:column;align-items:center;min-height:0;padding:10px 14px 13px;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff12,0 16px 34px #00000026}.points-student-card:before{content:"";pointer-events:none;background:radial-gradient(circle at 50% 0,#4ab1ff33,#0000 46%);position:absolute;inset:0}.student-avatar-button{z-index:1;background:0 0;border:0;width:clamp(142px,13vw,170px);height:clamp(142px,13vw,170px);padding:0;position:relative;overflow:visible}.student-avatar-art{width:100%;height:100%;display:block}.student-avatar-button img{object-fit:cover;width:100%;height:100%;display:block}.student-name{z-index:1;color:#f4f8ff;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;margin-top:-3px;font-size:.95rem;font-weight:900;position:relative;overflow:hidden}.points-student-card strong{z-index:1;color:#fff;letter-spacing:-.075em;margin-top:2px;font-size:clamp(2.2rem,3vw,3.45rem);line-height:1;position:relative}.score-actions{z-index:1;grid-template-columns:1fr 1.15fr;gap:9px;width:100%;margin-top:auto;display:grid;position:relative}.score-actions button{border-radius:12px;min-height:42px;font-size:1.05rem;font-weight:900;transition:transform .16s,filter .16s,box-shadow .16s}.score-actions button:hover{filter:brightness(1.08);transform:translateY(-2px)}.score-minus{color:#d8dcff;background:#8179d140;border:1px solid #b9bfff45}.score-plus{color:#fff;background:linear-gradient(135deg,#1b9df4,#23d8ee);border:1px solid #b1f6ff7a;justify-content:center;align-items:center;gap:4px;display:inline-flex;box-shadow:0 7px 17px #1bcef540}.score-plus svg{width:16px;height:16px}.score-float{z-index:4;pointer-events:none;font-weight:900;position:absolute;top:16px;right:17px}.score-float.plus{color:#86f5ff;font-size:2rem;animation:.65s ease-out both point-float}.score-float.minus{color:#d9ddff;font-size:.76rem;animation:.65s ease-out both point-gentle;top:13px;right:12px}.score-energy{z-index:3;pointer-events:none;border:2px solid #7df4ffcc;border-radius:50%;width:92px;height:92px;animation:.65s ease-out both score-energy-ring;position:absolute;top:7px;left:50%;transform:translate(-50%);box-shadow:0 0 0 7px #3fcdff24,0 0 27px #48e6ffc7}.score-energy:after{content:"";border-radius:inherit;border:1px dashed #b3faff99;animation:.65s ease-out both score-energy-orbit;position:absolute;inset:-17px}.score-plus:before{content:"";pointer-events:none;border:1px solid #0000;border-radius:16px;position:absolute;inset:-8px}.score-plus,.score-plus>*{position:relative}.score-plus:focus-visible:before{border-color:#d5fbff}.score-plus:hover:after{content:"";border:1px solid #b4f8ffad;border-radius:15px;position:absolute;inset:-3px}.score-plus:active{transform:translateY(1px)scale(.98)}.points-student-card.score-plus{border-color:#59e9ff;box-shadow:inset 0 1px #fff3,0 0 0 1px #5feeff2e,0 0 43px #24d4ff4d}.points-student-card.score-minus{border-color:#a5a9f170;animation:.65s ease-out both score-settle}.points-empty{color:#c8d8fa;text-align:center;place-content:center;justify-items:center;gap:10px;min-height:480px;display:grid}.points-empty svg{color:#8eeeff;font-size:3rem}.points-empty h2,.points-empty p{margin:0}.points-empty h2{color:#fff}.points-empty p{color:#aebee2;max-width:340px;line-height:1.7}.points-login-page{background:radial-gradient(circle at 76% 15%,#278ce933,#0000 26%),#03112f;place-items:center;padding:28px;display:grid}.points-back{color:#bfd4ff;align-items:center;gap:7px;font-weight:800;text-decoration:none;display:inline-flex;position:fixed;top:25px;left:30px}.points-login-card{background:#071f4ecc;border:1px solid #8ee0ff42;border-radius:24px;width:min(470px,100%);padding:44px;box-shadow:0 25px 80px #00000052}.points-login-card .brand{margin-bottom:44px}.points-login-card .eyebrow{color:#8ceeff}.points-login-card h1{color:#fff;letter-spacing:-.06em;margin:11px 0;font-size:2.35rem}.points-login-card>p:not(.eyebrow),.points-demo-gate p{color:#b7c8ed;line-height:1.75}.points-login-card form{gap:14px;margin-top:25px;display:grid}.points-login-card label{color:#d8e6ff;gap:7px;font-size:.84rem;font-weight:800;display:grid}.points-login-card input,.points-dialog input,.points-dialog textarea{color:#fff;background:#031438cc;border:1px solid #315c9e;border-radius:12px;outline:0;width:100%}.points-login-card input,.points-dialog input{min-height:46px;padding:0 12px}.points-login-card input:focus,.points-dialog input:focus,.points-dialog textarea:focus{border-color:#87eefd;box-shadow:0 0 0 3px #52e1fc26}.points-demo-gate{gap:15px;margin-top:24px;display:grid}.points-demo-gate small{color:#88a7dc;line-height:1.6}.points-primary,.points-outline{border-radius:12px;min-height:44px;padding:0 16px;font-weight:900}.points-primary{color:#fff;background:linear-gradient(135deg,#178feb,#27d7ef);border:1px solid #b2f7ff75;box-shadow:0 10px 22px #14c9f033}.points-primary:disabled{opacity:.48;cursor:not-allowed}.points-outline{color:#d7e7ff;background:0 0;border:1px solid #5473ac}.points-notice{color:#ffdbd8;background:#b2465a30;border-radius:10px;margin:17px 0 0;padding:10px 12px;font-size:.82rem}.points-dialog-backdrop{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00071cb8;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.points-dialog{color:#dbe9ff;background:#092253;border:1px solid #8addff42;border-radius:22px;width:min(580px,100%);max-height:min(780px,100vh - 44px);padding:30px;position:relative;overflow-y:auto;box-shadow:0 28px 80px #00000061}.points-dialog h2{color:#fff;letter-spacing:-.04em;margin:0 0 13px;font-size:1.65rem}.points-dialog>p{color:#adc2ea;line-height:1.7}.dialog-close{color:#cbe3ff;background:0 0;border:1px solid #486ba5;border-radius:10px;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:17px;right:17px}.points-dialog textarea{resize:vertical;padding:12px;line-height:1.6}.points-warning{color:#ffdab0!important}.points-preview{font-size:.84rem;color:#9fc8ed!important}.dialog-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:19px;display:flex}.points-text-button{color:#c4d7ff;background:0 0;border:0;min-height:42px;padding:0 10px;font-weight:800}.student-editor{grid-template-columns:84px 1fr;align-items:center;gap:16px;display:grid}.student-editor>img{object-fit:cover;border:2px solid #8ceeff;border-radius:50%;width:84px;height:84px}.student-editor label,.score-correction{color:#c9ddff;gap:7px;font-size:.82rem;font-weight:800;display:grid}.points-dialog fieldset{border:1px solid #315b97;border-radius:14px;margin:22px 0 0;padding:12px}.points-dialog legend{color:#a9c9ff;padding:0 6px;font-size:.76rem}.avatar-choice-list{flex-wrap:wrap;gap:10px;display:flex}.avatar-choice-list label{cursor:pointer;border:2px solid #0000;border-radius:50%;width:58px;height:58px;position:relative;overflow:hidden}.avatar-choice-list input{opacity:0;position:absolute}.avatar-choice-list label:has(input:checked){border-color:#8ff0ff;box-shadow:0 0 0 3px #4ddeff30}.avatar-choice-list img{object-fit:cover;width:100%;height:100%}.avatar-upload{color:#d7e6ff;cursor:pointer;border:1px dashed #5b83bf;border-radius:13px;grid-template-columns:24px 1fr;align-items:center;gap:8px;min-height:46px;margin-top:17px;padding:11px 12px;font-size:.84rem;font-weight:800;display:grid}.avatar-upload svg{color:#8cf0ff}.avatar-upload input{display:none}.avatar-upload small{color:#93acd5;grid-column:2;font-weight:400}.points-dialog hr{border:0;border-top:1px solid #315b97;margin:23px 0}.score-correction{grid-template-columns:1fr auto;align-items:end}.score-correction input{grid-column:1/-1}.score-correction .points-outline{grid-column:2}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.student-editor-avatar{width:84px;height:84px;display:block}.workshop-entry{color:#dffbff;background:#127cb433;border:1px solid #8ceeff70;border-radius:13px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:50px;margin-top:18px;font-weight:900;display:inline-flex}.workshop-entry svg{color:#8cf0ff;font-size:1.2rem}.avatar-workshop-backdrop{z-index:60;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#00071cd1;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.avatar-workshop{color:#dbe9ff;background:radial-gradient(circle at 18% 18%,#1d85ca38,#0000 34%),#092253;border:1px solid #8addff59;border-radius:24px;flex-direction:column;width:min(1120px,100%);max-height:min(820px,100vh - 40px);display:flex;overflow:hidden;box-shadow:0 32px 96px #0000007a}.avatar-workshop-head{border-bottom:1px solid #75beff33;justify-content:space-between;align-items:start;padding:25px 72px 18px 30px;display:flex;position:relative}.avatar-workshop-head p{color:#8ceeff;letter-spacing:.16em;margin:0;font-size:.72rem;font-weight:900}.avatar-workshop-head h2{color:#fff;letter-spacing:-.04em;margin:7px 0 3px;font-size:1.8rem}.avatar-workshop-head span{color:#a8c9ed;font-size:.88rem}.avatar-workshop-head .dialog-close{top:22px;right:26px}.avatar-workshop-body{grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);min-height:0;display:grid;overflow:hidden}.avatar-workshop-preview{background:#0314384f;border-right:1px solid #75beff33;align-content:center;justify-items:center;gap:9px;padding:18px 24px 24px;display:grid}.avatar-workshop-canvas{aspect-ratio:1;width:min(100%,320px)}.avatar-workshop-preview p{color:#d9efff;margin:-13px 0 4px;font-weight:900}.workshop-random{color:#dffbff;background:#168bcb3b;border:1px solid #8ceeff66;border-radius:12px;align-items:center;gap:7px;min-height:42px;padding:0 14px;font-weight:900;display:inline-flex}.avatar-workshop-options{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:13px 16px;min-height:0;padding:20px 25px;display:grid;overflow-y:auto}.avatar-workshop-options section{min-width:0}.avatar-workshop-options h3{color:#b9d9ff;margin:0 0 8px;font-size:.82rem}.avatar-option-list{flex-wrap:wrap;gap:7px;display:flex}.avatar-option-list button{color:#bcd4fb;background:#041d49a8;border:1px solid #70b2ff42;border-radius:11px;justify-items:center;gap:2px;width:74px;padding:4px 3px 5px;font-size:.62rem;line-height:1.15;display:grid}.avatar-option-list button.is-selected{color:#effdff;background:#168fc94a;border-color:#8ff0ff;box-shadow:0 0 0 2px #5eecff21}.avatar-option-preview{width:62px;height:62px}.avatar-workshop-actions{border-top:1px solid #75beff33;justify-content:flex-end;gap:10px;padding:14px 28px 17px;display:flex}@keyframes point-float{0%{opacity:0;transform:translateY(12px)scale(.72)}30%{opacity:1}to{opacity:0;transform:translateY(-34px)scale(1.15)}}@keyframes point-gentle{0%{opacity:0;transform:translateY(-8px)}30%{opacity:1}to{opacity:0;transform:translateY(4px)}}@keyframes score-energy-ring{0%{opacity:0;transform:translate(-50%)scale(.72)}28%{opacity:1}to{opacity:0;transform:translate(-50%)scale(1.2)}}@keyframes score-energy-orbit{0%{opacity:.9;transform:rotate(0)}to{opacity:0;transform:rotate(120deg)}}@keyframes score-settle{0%{transform:translateY(-2px)}to{transform:translateY(0)}}@media (width<=1100px){.points-page{grid-template-columns:184px minmax(0,1fr)}.points-rail{padding:22px 14px 16px}.points-rail-title{margin:48px 0 32px}.points-rail-title p{font-size:1.6rem}.points-grid{gap:13px}.points-student-card{min-height:205px;padding:15px 11px}.student-avatar-button{width:62px;height:62px}.score-actions button{min-height:42px}}@media (width>=761px) and (height<=850px){.points-rail{padding-top:20px;padding-bottom:14px}.points-rail-title{margin:38px 0 26px}.points-stage{padding-top:16px;padding-bottom:12px}.points-stage-header{min-height:62px}.points-grid{grid-auto-rows:minmax(278px,calc(50vh - 60px));gap:12px;height:calc(100vh - 92px);padding-top:6px}.points-student-card{border-radius:16px;padding:8px 11px 11px}.student-avatar-button{width:145px;height:145px}.student-name{font-size:.86rem}.points-student-card strong{font-size:clamp(2rem,3vw,3rem)}.score-actions{gap:7px}.score-actions button{border-radius:10px;min-height:37px;font-size:.97rem}}@media (width<=760px){.points-page{display:block;overflow:visible}.points-rail{border-bottom:1px solid #8bc7ff29;border-right:0;min-height:auto;padding:18px 16px}.points-rail-title{margin:22px 0}.points-rail-actions{grid-template-columns:repeat(2,1fr)}.points-rail-bottom{justify-content:space-between;align-items:center;margin-top:18px;display:flex}.points-rail-bottom a,.sound-toggle{min-height:42px}.points-stage{height:auto;padding:24px 16px;overflow:visible}.points-stage-header{min-height:72px}.points-stage-header h1{font-size:1.75rem}.sync-state{font-size:.7rem}.points-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(260px,auto);height:auto;min-height:0;padding:0;overflow:visible}.points-student-card{min-height:260px}.student-avatar-button{width:120px;height:120px}.points-toast{margin-bottom:12px;position:static}.points-login-card{padding:28px 22px}.points-back{align-self:start;margin-bottom:22px;position:static}.points-login-page{flex-direction:column;justify-content:center;display:flex}.points-dialog{padding:25px 18px}.score-correction{grid-template-columns:1fr}.score-correction .points-outline{grid-column:1}.points-rail-bottom a{width:auto;padding:0 9px;font-size:.78rem}.avatar-workshop-backdrop{padding:0}.avatar-workshop{border-radius:0;width:100%;min-height:100vh;max-height:100vh}.avatar-workshop-head{padding:20px 62px 14px 20px}.avatar-workshop-body{display:block;overflow-y:auto}.avatar-workshop-preview{border-bottom:1px solid #75beff33;border-right:0;padding:10px}.avatar-workshop-canvas{width:190px}.avatar-workshop-options{grid-template-columns:1fr;padding:17px;overflow:visible}.avatar-workshop-actions{padding:12px 17px}}@media (prefers-reduced-motion:reduce){.points-student-card,.score-float,.score-energy{animation:none!important}.score-energy{display:none}.points-student-card,.score-actions button{transition:none}}.score-number{display:inline-block}.score-number-plus{animation:.46s cubic-bezier(.18,.9,.28,1) both score-number-pop}.score-float.plus{z-index:5;text-shadow:0 2px 16px #48e6ffd1;animation:.65s ease-out both reward-float;inset:auto auto 66px 50%}.score-plus.is-rewarded{animation:.5s ease-out both reward-button-glow}@keyframes score-number-pop{0%{color:#fff;transform:translateY(0)scale(1)}32%{color:#bafaff;transform:translateY(-3px)scale(1.1)}to{color:#fff;transform:translateY(0)scale(1)}}@keyframes reward-float{0%{opacity:0;transform:translate(-50%,8px)scale(.82)}28%{opacity:1}to{opacity:0;transform:translate(-50%,-24px)scale(1.08)}}@keyframes reward-button-glow{0%,to{filter:none;box-shadow:0 7px 17px #1bcef540}38%{filter:brightness(1.18);box-shadow:0 0 0 4px #66f1ff38,0 9px 26px #23daf49e}}@media (prefers-reduced-motion:reduce){.score-number-plus,.score-plus.is-rewarded{animation:none!important}.score-float.plus{display:none}}@media (width>=761px){.points-toast{max-width:min(310px,100% - 330px);top:18px;right:calc(clamp(22px,4vw,56px) + 132px)}}
