@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--bg:#0b141c;--panel:#13212c;--line:#ffffff12;--muted:#9cabb7;--mint:#a9efd4;--gold:#f2ce85;--text:#f2f6f5;--sans:"DM Sans","Microsoft YaHei",sans-serif;--display:"Outfit","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--sans);margin:0;font-size:16px;line-height:1.55}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}input:focus,select:focus{outline:2px solid var(--mint);outline-offset:2px}button{transition:background .18s,transform .18s,border-color .18s}button:not(:disabled):active{transform:scale(.98)}h1,h2,h3,p{margin:0}svg{flex-shrink:0}input,select{min-width:0;color:var(--text);background:#0b1822;border:1px solid #fff2;border-radius:12px;min-height:48px;padding:13px 15px}label{color:#bbc9d0;flex-direction:column;gap:8px;font-size:14px;display:flex}small{font-size:13px}.topbar{border-bottom:1px solid var(--line);background:#0c161f;justify-content:space-between;align-items:center;height:90px;padding:0 4.5%;display:flex}.brand{font-family:var(--display);letter-spacing:1.6px;white-space:nowrap;align-items:center;gap:12px;font-size:17px;display:flex}.brand b{color:var(--mint);font-weight:400}.brand small{color:var(--muted);font-family:var(--sans);letter-spacing:2px;margin-top:3px;font-size:12px;display:block}.brand-icon{background:var(--mint);color:#15352e;border-radius:13px;place-items:center;width:42px;height:42px;display:grid;transform:rotate(-7deg)}.top-actions{align-items:center;gap:17px;display:flex}.unit-label{letter-spacing:1.6px;color:#8ea3af;margin-right:12px;font-size:12px}.icon-button{color:#b8c8d0;background:0 0;border:1px solid #ffffff15;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.icon-button:hover{background:#ffffff10}.teacher-link{border-left:1px solid #fff2;align-items:center;gap:8px;padding-left:23px;font-size:14px;display:flex}.welcome,.game-main,.dashboard{max-width:1480px;margin:auto;padding:32px 4.5% 0}.hero{background:#10212b;border:1px solid #ffffff16;border-radius:26px;min-height:575px;display:flex;position:relative;overflow:hidden}.hero-art{position:absolute;inset:0 0 0 37%}.hero-art img{object-fit:cover;object-position:right center;width:100%;height:100%}.hero-art:after{content:"";background:linear-gradient(90deg,#10212b 0%,#10212bdd 8%,#0000 45%),linear-gradient(#0000 72%,#10212bdd 100%);position:absolute;inset:0}.art-caption{z-index:1;color:#d6ddd8;align-items:center;gap:20px;font-size:13px;display:flex;position:absolute;bottom:26px;right:35px}.art-caption span:first-child{letter-spacing:2.5px;color:var(--gold);font-size:11px}.hero-copy{z-index:2;width:54%;padding:47px 44px 35px;position:relative}.eyebrow{font-family:var(--display);letter-spacing:2.7px;color:var(--mint);align-items:center;gap:10px;font-size:12px;font-weight:500;display:flex}.tiny-line{background:var(--mint);width:23px;height:1px}.hero h1{letter-spacing:2px;margin-top:22px;font-size:clamp(36px,3.6vw,56px);font-weight:700;line-height:1.3}.hero h1 em{color:var(--mint);font-style:normal}.hero-en{font-family:var(--display);letter-spacing:.2px;color:#c6d7d9;margin-top:13px;font-size:19px}.hero-desc{color:#aabfc6;margin-top:21px;font-size:15px;line-height:1.9}.mission-bits{color:#c5d4d9;gap:20px;margin:23px 0;font-size:13px;display:flex}.mission-bits span{align-items:center;gap:7px;display:flex}.mission-bits svg{color:var(--gold)}.hero-buttons{align-items:center;gap:17px;margin-top:26px;display:flex}.primary,.secondary{white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:13px 23px;font-size:15px;font-weight:600;display:inline-flex}.primary{background:var(--mint);border:1px solid var(--mint);color:#122c25;box-shadow:0 5px 25px #a9efd412}.primary:hover:not(:disabled){background:#c3f6e3;border-color:#c3f6e3;box-shadow:0 5px 30px #a9efd423}.secondary{color:#d2dfe2;background:#ffffff05;border:1px solid #ffffff20}.secondary:hover:not(:disabled){background:#ffffff0d}.text-button{color:#a9c3c8;background:0 0;border:0;align-items:center;gap:6px;padding:10px;font-size:14px;display:inline-flex}.text-button:hover{color:var(--mint)}.hero-foot{color:#829ca8;letter-spacing:.4px;align-items:center;gap:8px;margin-top:32px;font-size:12px;display:flex}.micro-disc{display:flex}.route-map{grid-template-columns:repeat(3,1fr);gap:17px;margin-top:22px;display:grid}.route-card{background:#101e28;border:1px solid #ffffff12;border-radius:17px;align-items:center;gap:16px;padding:25px 22px;display:flex;position:relative}.route-num{font:400 40px var(--display);color:#38524f}.route-1 .route-num{color:#575040}.route-2 .route-num{color:#394c64}.route-card small{letter-spacing:1.8px;color:#9bc8b7;font-size:10px}.route-1 small{color:#d9bc83}.route-2 small{color:#a4bcd9}.route-card h3{letter-spacing:1px;margin:4px 0;font-size:17px;font-weight:500}.route-card p{color:#7f96a3;font-size:12px}.route-symbol{color:#ffffff13;position:absolute;top:18px;right:16px}.page-footer{color:#758b99;justify-content:space-between;align-items:center;gap:15px;padding:25px 0;font-size:12px;display:flex}.page-footer span{align-items:center;gap:7px;display:flex}.join-form{margin-top:20px}.field-row{grid-template-columns:1.5fr 1fr;gap:12px;margin-bottom:14px;display:grid}.join-form .primary{padding:12px 20px}.error{color:#ffc3b1;background:#e4856814;border:1px solid #ffbba52b;border-radius:10px;margin:12px 0;padding:12px 16px;font-size:14px}.session-chip{color:#c4d4d8;border:1px solid #ffffff1c;border-radius:30px;padding:7px 16px;font-size:13px}.stage-nav{justify-content:space-between;align-items:center;gap:18px;margin:1px 0 24px;display:flex}.stage-step{color:#687e8a;flex:1;align-items:center;gap:12px;font-size:14px;display:flex;position:relative}.stage-step:not(:nth-child(3)):after{content:"";background:#ffffff10;flex:1;height:1px;margin-left:6px;margin-right:8px}.step-circle{color:#839aa7;width:34px;height:34px;font-family:var(--display);border:1px solid #ffffff1d;border-radius:50%;place-items:center;display:grid}.current{color:#e6f3ef}.current .step-circle{background:var(--mint);border-color:var(--mint);color:#173f32;box-shadow:0 0 0 5px #a9efd40a}.done{color:#95ccb5}.done .step-circle{color:var(--mint);background:#a9efd415;border-color:#a9efd450}.stars{color:#344552;gap:9px;display:flex}.stars .lit{color:var(--gold)}.panel{background:#111f2a;border:1px solid #ffffff16;border-radius:24px}.challenge{grid-template-columns:280px minmax(0,1fr);min-height:580px;animation:.35s ease-out arrive;display:grid;overflow:hidden}.challenge-aside{background:#132a30;border-right:1px solid #ffffff0e;flex-direction:column;display:flex;position:relative;overflow:hidden}.aside-top{z-index:2;padding:32px 28px}.aside-top h2{letter-spacing:1px;margin-top:18px;font-size:27px;font-weight:500;line-height:1.55}.aside-art{opacity:.5;position:absolute;inset:28% 0 10%}.aside-art img{object-fit:cover;object-position:45% center;width:100%;height:100%}.aside-art:after{content:"";background:linear-gradient(#132a30 0%,#0000 25%,#132a30 92%);position:absolute;inset:0}.aside-bottom{z-index:2;margin-top:auto;padding:36px 28px 28px}.ticket-label{font:12px var(--display);letter-spacing:2px;color:var(--gold)}.aside-bottom p{color:#b2c8c8;margin-top:10px;font-size:14px;line-height:1.8}.aside-bottom small{color:#7faaa5;margin-top:9px;display:block}.aside-progress{background:#ffffff12;border-radius:10px;height:3px;margin-top:23px;overflow:hidden}.aside-progress span{background:var(--mint);height:100%;display:block}.question-area{flex-direction:column;padding:28px 36px;display:flex}.question-top{justify-content:space-between;align-items:center;gap:15px;display:flex}.question-kicker{color:#a9bdc5;border:1px solid #ffffff15;border-radius:6px;padding:5px 9px;font-size:12px}.question-number{font:24px var(--display);color:#b3c8cc}.question-number span{color:#58717f;font-size:14px}.question-area h1{font:500 clamp(23px,2.35vw,34px)/1.25 var(--display);margin:15px 0 8px}.question-area h1.chinese-question{font:500 29px/1.4 var(--sans)}.question-sub{color:#92a9b6;margin-bottom:20px;font-size:14px}.duo-labels{border-bottom:1px solid #ffffff10;gap:24px;margin-bottom:5px;padding-bottom:15px;display:flex}.duo-labels>div{font:500 16px var(--display);align-items:center;gap:9px;display:flex}.portrait{background-image:url(/festival.png);background-repeat:no-repeat;background-size:570px;border:1px solid #ffffff25;border-radius:20px;flex-shrink:0;width:86px;height:86px;box-shadow:inset 0 0 20px #ffffff0a}.portrait.p0{background-position:-112px -53px}.portrait.p1{background-position:-207px -48px}.portrait.p2{background-position:-318px -45px}.portrait.p3{background-position:-420px -76px}.portrait.small{background-size:250px;border-radius:50%;width:33px;height:33px}.small.p0{background-position:-50px -23px}.small.p1{background-position:-92px -24px}.small.p2{background-position:-143px -22px}.small.p3{background-position:-186px -36px}.match-list{margin-bottom:18px}.match-row{border-bottom:1px solid #ffffff0c;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:13px 0;display:flex}.match-description{font:400 18px var(--display);flex:1;align-items:center;gap:12px;min-width:0;display:flex}.match-description>span:nth-child(2){min-width:0}.item-index{font:12px var(--display);color:#607b88}.match-description svg{color:var(--mint)}.match-picks{gap:8px;display:flex}.match-picks button{min-height:43px;font-family:var(--display);color:#a9bbc7;background:#ffffff03;border:1px solid #ffffff18;border-radius:9px;min-width:84px;padding:8px 15px;font-size:15px}.match-picks button.selected{color:#b9f5df;background:#a9efd420;border-color:#a9efd490}.match-picks button.selected.gold{color:#f2ce85;background:#f2ce8520;border-color:#f2ce8580}.match-picks button.selected.blue{color:#b2d6ff;background:#b2d6ff20;border-color:#b2d6ff80}.match-picks button.selected.pink{color:#efbfd1;background:#e8b5ca20;border-color:#e8b5ca80}.match-picks button:disabled{opacity:.8}.hint{color:#f0c28d;width:100%;padding-left:24px;font-size:13px}.question-footer{border-top:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:17px;margin-top:auto;padding-top:22px;display:flex}.subtle{color:#849daa;font-size:13px}.success-message{color:var(--mint);gap:9px;font-size:16px;display:flex}.success-message small{color:#83ac9e;margin-top:3px;font-size:12px;display:block}.comparison-duo{grid-template-columns:1fr 1fr;gap:30px;max-width:600px;margin:5px 0 27px;display:grid}.person-ticket{align-items:center;gap:16px;display:flex;position:relative}.person-ticket small{letter-spacing:1.7px;color:#6e8898;font-size:10px}.person-ticket strong{font:500 23px var(--display);margin-top:7px;display:block}.versus{color:#536674;font:22px var(--display);position:absolute;right:-20px}.choice-list{flex-direction:column;gap:13px;margin-bottom:25px;display:flex}.choice{text-align:left;min-height:72px;font:400 19px/1.4 var(--display);background:#162632;border:1px solid #ffffff14;border-radius:14px;align-items:center;gap:17px;padding:17px 20px;display:flex}.choice>span:nth-child(2){flex:1}.choice.chosen{background:#a9efd40d;border-color:#a9efd4}.choice.chosen svg{color:var(--mint)}.option-letter{width:32px;height:32px;font:14px var(--display);color:#9cb1bd;border:1px solid #fff2;border-radius:9px;place-items:center;display:grid}.chosen .option-letter{background:var(--mint);color:#14342b;border-color:var(--mint)}.sentence-workspace{margin:23px 0 30px}.sentence-label{color:#a3b9c2;letter-spacing:1.3px;align-items:center;gap:8px;font-size:12px;display:flex}.sentence-label .text-button{letter-spacing:0;margin-left:auto}.sentence-slots{background:#09172055;border:1px dashed #9bc3d144;border-radius:14px;flex-wrap:wrap;align-content:center;align-items:center;gap:8px;min-height:125px;padding:20px;display:flex}.slot-placeholder{color:#607c8c;font-size:14px}.word-bank{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px;display:flex}.word{min-height:50px;font:500 19px var(--display);background:#223543;border:1px solid #ffffff1f;border-bottom:3px solid #466074;border-radius:10px;padding:12px 18px;box-shadow:0 4px 8px #0002}.word.placed{color:#c0f4df;background:#a9efd420;border-color:#a9efd480}.word:disabled:not(.placed){opacity:.18}.word.placed:disabled{opacity:1}.sentence-tip{color:#738e9b;justify-content:center;align-items:center;gap:8px;margin-top:26px;font-size:13px;display:flex}.hint-banner{color:#e9c69a;background:#eabd7c12;border:1px solid #eabd7c33;border-radius:11px;margin-bottom:18px;padding:13px 17px;font-size:14px}.solved{border-color:var(--mint)}.demo-note{color:#b7a584;background:#f2ce8508;border:1px solid #f2ce851a;border-radius:8px;justify-content:space-between;align-items:center;margin:-5px 0 18px;padding:9px 14px;font-size:12px;display:flex}.demo-note button{color:var(--gold);background:0 0;border:0;padding:4px;font-size:12px}.waiting{text-align:center;padding:70px 25px}.waiting .eyebrow{justify-content:center;margin:24px 0 15px}.waiting-icon{width:95px;height:95px;color:var(--mint);background:#a9efd413;border:1px solid #a9efd431;border-radius:24px;place-items:center;display:inline-grid}.waiting h1{margin:18px 0;font-size:30px}.waiting p{color:#afc2ce;margin:15px 0}.waiting-wave{justify-content:center;align-items:center;gap:6px;height:40px;margin:24px;display:flex}.waiting-wave i{background:var(--mint);border-radius:4px;width:5px;height:12px;animation:1s ease-in-out infinite alternate wave}.waiting-wave i:nth-child(2){animation-delay:.2s}.waiting-wave i:nth-child(3){animation-delay:.4s}.waiting-wave i:nth-child(4){animation-delay:.6s}.finish{grid-template-columns:.75fr 1fr;min-height:620px;display:grid;overflow:hidden}.finish-art{background:linear-gradient(90deg,#0000,#111f2a),url(/festival.png) 50%/cover}.finish-content{padding:38px 35px 35px 10px}.finish-content h1{margin-top:20px;font-size:36px}.finish-content>p:not(.hero-en){color:#9ab1bc;margin-top:16px;font-size:14px}.big-stars{color:var(--gold);filter:drop-shadow(0 0 14px #f2ce8533);gap:16px;margin-top:25px;display:flex}.big-stars svg:nth-child(2){transform:translateY(-9px)}.finish-stats{gap:50px;margin:24px 0;display:flex}.finish-stats strong{font:35px var(--display);color:var(--mint);display:block}.finish-stats strong small{color:#607e8b;font-size:17px}.finish-stats span{color:#8da6b2;font-size:12px}.talk-card{background:#ffffff03;border:1px solid #ffffff16;border-radius:15px;padding:20px 23px}.talk-card>span{color:var(--gold);letter-spacing:1px;gap:8px;margin-bottom:16px;font-size:11px;display:flex}.talk-card p{font:17px/1.5 var(--display);margin-top:10px}.talk-card b{width:26px;height:26px;color:var(--mint);background:#ffffff0a;border-radius:6px;place-items:center;margin-right:10px;font-size:12px;display:inline-grid}.talk-card small{color:#8ca3ad;margin-top:15px;font-size:12px;display:block}.save-note{margin-bottom:15px}.overlay{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:40;background:#031019bb;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.level-unlocked{text-align:center;background:radial-gradient(at top,#25453d,#12232c 70%);border:1px solid #b1eed52f;border-radius:25px;width:min(480px,100%);padding:40px;animation:.4s ease-out arrive;box-shadow:0 30px 100px #0006}.level-unlocked .eyebrow{justify-content:center;margin:20px 0}.reward-star{width:118px;height:118px;color:var(--gold);background:#f2ce850d;border:1px solid #f2ce8544;border-radius:50%;place-items:center;margin:0 auto;display:grid;box-shadow:0 0 0 14px #f2ce8504,0 0 55px #f2ce8510}.level-unlocked h1{letter-spacing:1px;font-size:30px}.level-unlocked p{color:#aec4c5;white-space:pre-line;margin-top:17px;font-size:15px;line-height:1.9}.level-unlocked .stars{justify-content:center;margin:25px}.level-unlocked .primary{margin-top:10px}.level-unlocked .row-actions{justify-content:center;margin-top:25px}.spin{animation:1s linear infinite spin}.dashboard{padding-top:36px}.dashboard-title{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.dashboard-title h1{margin:10px 0;font-size:29px}.dashboard-title p{color:#8da5b2;font-size:14px}.class-toolbar{justify-content:space-between;align-items:end;gap:25px;padding:20px 25px;display:flex}.class-toolbar form{flex:1;align-items:end;gap:12px;display:flex}.class-toolbar form label{flex:1;max-width:310px}.class-toolbar>label{width:330px}.dashboard-empty{text-align:center;color:#9bb4bf;margin-top:25px;padding:65px 20px}.dashboard-empty>svg{color:var(--mint);margin:0 auto 20px}.dashboard-empty h2{color:#e4efed;font-size:28px}.dashboard-empty p{margin:16px 0;font-size:15px;line-height:1.9}.empty-steps{color:#b2c7cd;justify-content:center;gap:30px;margin-top:35px;font-size:13px;display:flex}.room-heading{justify-content:space-between;align-items:center;gap:20px;margin:30px 0 20px;display:flex}.room-heading>div:first-child{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.room-heading h2{font-size:21px}.room-heading small{color:#7b96a5;font-size:12px}.status-badge{color:var(--gold);background:#f2ce8514;border-radius:30px;padding:4px 10px;font-size:12px}.status-badge.active{color:var(--mint);background:#a9efd412}.status-badge.ended{color:#a5b4bc;background:#ffffff0c}.row-actions{align-items:center;gap:10px;display:flex}.danger{color:#efbfab}.invite-panel{background:linear-gradient(100deg,#182e35,#14222c);align-items:center;gap:28px;padding:24px;display:flex}.invite-panel>img{background:#fff;border-radius:12px;flex-shrink:0;width:148px;height:148px;padding:6px}.invite-panel>div{flex:1;min-width:0}.invite-panel h3{margin-top:5px;font-size:22px}.invite-panel p{color:#8eaab4;margin-top:3px;font-size:13px}.class-code{font:25px var(--display);letter-spacing:4px;color:var(--mint);margin:8px 0}.share-link{gap:10px;max-width:650px;display:flex}.share-link input{width:100%;min-height:40px;padding:9px 12px;font-size:12px}.share-link .secondary{min-height:40px;padding:9px 15px;font-size:13px}.metric-grid{grid-template-columns:repeat(4,1fr);gap:15px;margin:22px 0;display:grid}.metric{background:#13232e;border:1px solid #ffffff13;border-radius:18px;padding:22px 24px;position:relative}.metric>svg{color:#6d948a;width:20px;position:absolute;top:24px;right:22px}.metric>span{color:#93adb8;font-size:13px}.metric strong{font:40px var(--display);margin-top:12px;display:block}.metric strong small{font:13px var(--sans);color:#76929d;margin-left:8px}.analytics-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.analytics{padding:25px}.section-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;display:flex}.section-heading h3{font-size:17px;font-weight:500}.section-heading>span,.section-heading small{color:#829aa7;font-size:12px}.stage-bar{margin-bottom:19px}.stage-bar>div:first-child{color:#abc0c9;justify-content:space-between;font-size:13px;display:flex}.stage-bar b{font-family:var(--display);color:var(--mint);font-weight:400}.bar-track{background:#ffffff09;border-radius:20px;height:5px;margin-top:11px;overflow:hidden}.bar-track i{background:var(--mint);border-radius:20px;height:100%;transition:width .5s;display:block}.stage-bar:nth-child(3) i{background:var(--gold)}.stage-bar:nth-child(4) i{background:#9cbddd}.weak-question{text-align:left;width:100%;font:16px var(--display);color:#c8d9df;background:0 0;border:0;border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;gap:20px;padding:13px 0;display:flex}.weak-question b{color:var(--gold);font-weight:400}.empty-note{color:#768f9e;padding:25px 0;font-size:14px;line-height:1.8}.roster{margin-top:20px;padding:25px}.table-wrap{overflow:auto}table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%;font-size:14px}th{color:#7f9aa7;border-bottom:1px solid #ffffff17;padding:13px 12px;font-size:12px;font-weight:400}td{color:#afc2ce;border-bottom:1px solid #ffffff09;padding:16px 12px}.seat-badge{color:#d9e8e8;font-family:var(--display);background:#ffffff08;border-radius:7px;padding:6px 10px}.mini-progress{gap:3px;margin-right:13px;display:inline-flex}.mini-progress i{background:#ffffff10;border-radius:3px;width:16px;height:5px}.mini-progress i.on{background:var(--mint)}.detail-panel{margin-top:20px;padding:25px}.distribution{border-top:1px solid #ffffff0d;justify-content:space-between;gap:20px;padding:13px 0;font-size:16px;display:flex}.distribution strong{color:var(--mint);font-size:14px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes wave{to{height:32px}}@keyframes arrive{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (width>=1500px){.hero{min-height:620px}.hero-copy{padding:55px}.hero h1{font-size:58px}.hero-desc{font-size:17px}.hero-buttons{margin-top:34px}.challenge{min-height:630px}.question-area{padding:35px 45px}.match-row{padding:18px 0}}@media (width<=1100px){.topbar{height:78px;padding:0 3%}.welcome,.game-main,.dashboard{padding-left:3%;padding-right:3%}.unit-label{display:none}.hero{min-height:540px}.hero-copy{width:57%;padding:35px 28px}.hero h1{font-size:42px}.hero-art{left:36%}.hero-en{font-size:16px}.route-card{gap:10px;padding:20px 15px}.route-num{font-size:32px}.route-card h3{font-size:15px}.route-card p{font-size:11px}.route-symbol{display:none}.challenge{grid-template-columns:215px 1fr}.aside-top,.aside-bottom{padding:25px 22px}.aside-top h2{font-size:23px}.question-area{padding:25px}.match-description{gap:9px;font-size:16px}.match-picks button{min-width:74px;padding:8px 11px;font-size:14px}.question-footer .primary{padding:12px 18px}.comparison-duo{gap:22px}.person-ticket{gap:12px}.portrait{width:74px;height:74px}.person-ticket strong{font-size:20px}.stage-step{font-size:13px}.class-toolbar>label{width:280px}.room-heading{flex-wrap:wrap}.room-heading small{display:none}.metric{padding:20px}.metric>svg{right:15px}.teacher-link{padding-left:15px}}@media (width<=760px){.topbar{height:74px;padding:0 5%}.brand{letter-spacing:1px;font-size:14px}.brand small{letter-spacing:1px;font-size:10px}.brand-icon{width:35px;height:35px}.top-actions{gap:9px}.teacher-link{padding-left:10px;font-size:12px}.teacher-link svg,.fullscreen{display:none}.welcome,.game-main,.dashboard{padding:20px 5% 0}.hero{flex-direction:column;min-height:0;padding-top:210px;display:flex}.hero-art{height:270px;inset:0 0 auto}.hero-art:after{background:linear-gradient(#0000 45%,#10212b)}.hero-art img{object-position:center 47%}.art-caption{display:none}.hero-copy{width:100%;padding:20px 25px 30px}.hero h1{letter-spacing:1px;margin-top:13px;font-size:37px}.hero-desc{margin-top:17px}.hero-foot{margin-top:22px}.hero-en{font-size:17px}.mission-bits{gap:17px;font-size:12px}.route-map{grid-template-columns:1fr;gap:10px}.route-card{gap:17px;padding:18px 20px}.route-card small{font-size:10px}.route-card p{font-size:12px}.route-card h3{font-size:16px}.route-symbol{display:block;top:30px;right:20px}.route-num{font-size:38px}.page-footer{align-items:flex-start;font-size:10px}.page-footer>span:last-child{text-align:right;max-width:40%}.stage-nav{gap:9px;margin-bottom:20px}.stage-step{white-space:nowrap;flex-direction:column;flex:1;gap:7px;font-size:10px}.stage-step:after{display:none}.step-circle{width:31px;height:31px}.stage-nav>.stars{display:none}.challenge{grid-template-columns:1fr}.challenge-aside{display:none}.question-area{min-height:520px;padding:23px 19px}.question-area h1{font-size:26px}.question-area h1.chinese-question{font-size:25px}.question-sub{font-size:13px}.question-top{gap:10px}.question-kicker{font-size:11px}.match-row{gap:12px;padding:16px 0}.match-description{flex-basis:100%;font-size:18px}.match-picks{width:100%;padding-left:23px}.match-picks button{flex:1;min-height:44px}.question-footer{flex-direction:column;align-items:stretch;gap:15px}.question-footer>.primary{width:100%}.comparison-duo{gap:20px}.person-ticket{flex-direction:column;align-items:flex-start;gap:10px}.person-ticket small{font-size:9px}.person-ticket strong{margin-top:3px;font-size:21px}.versus{top:45px;right:0}.choice{padding:15px 13px;font-size:17px}.option-letter{width:28px;height:28px}.word{padding:11px 13px;font-size:18px}.sentence-slots{gap:8px;min-height:130px;padding:13px}.word-bank{gap:8px}.sentence-tip{font-size:11px}.demo-note{padding:8px 10px;font-size:10px}.demo-note button{font-size:10px}.finish{grid-template-columns:1fr}.finish-art{background:linear-gradient(#0000,#111f2a),url(/festival.png) 50%/cover;height:220px}.finish-content{padding:0 25px 30px}.finish-content h1{font-size:30px}.finish-stats{gap:40px}.finish .hero-en{font-size:16px}.talk-card{padding:18px 15px}.talk-card p{font-size:15px}.level-unlocked{padding:32px 23px}.level-unlocked h1{font-size:26px}.waiting{padding:55px 23px}.waiting h1{font-size:25px}.dashboard-title h1{font-size:24px}.dashboard-title>.secondary{display:none}.class-toolbar{flex-direction:column;align-items:stretch;padding:20px}.class-toolbar form{flex-direction:column;align-items:stretch}.class-toolbar form label{max-width:none}.class-toolbar>label{width:auto}.room-heading{margin-top:24px}.room-heading>div:first-child{gap:10px}.room-heading h2{font-size:20px}.row-actions{flex-wrap:wrap}.row-actions .primary,.row-actions .secondary{padding:10px 13px;font-size:12px}.invite-panel{flex-direction:column;align-items:flex-start;gap:20px;padding:20px}.invite-panel>img{align-self:center;width:180px;height:180px}.invite-panel>div{width:100%}.share-link{flex-direction:column}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:18px}.metric strong{font-size:34px}.metric>span{font-size:12px}.metric>svg{display:none}.analytics-grid{grid-template-columns:1fr;gap:15px}.analytics,.roster{padding:20px}.section-heading h3{font-size:16px}.section-heading .secondary{padding:9px 12px;font-size:12px}.empty-steps{gap:13px;font-size:11px}.dashboard-empty{padding:45px 20px}.dashboard-empty h2{font-size:25px}.teacher-shell .teacher-link{font-size:12px}.distribution{font-size:14px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (width>=761px) and (height<=850px){.topbar{height:66px}.game-main{padding-top:18px}.stage-nav{margin:0 0 17px}.demo-note{margin-bottom:13px;padding:6px 12px}.challenge{min-height:0}.question-area{padding:20px 26px}.question-area h1{margin:12px 0 6px;font-size:27px}.question-sub{margin-bottom:12px}.match-row{padding:10px 0}.duo-labels{padding-bottom:10px}.question-footer{padding-top:15px}.sentence-workspace{margin:12px 0 18px}.sentence-slots{min-height:100px;padding:16px}.word-bank,.sentence-tip{margin-top:16px}.comparison-duo{margin:4px 0 19px}.choice-list{margin-bottom:18px}.aside-top,.aside-bottom{padding:25px 23px}.game-main>.page-footer{padding:17px 0}}.studio-entry{background:radial-gradient(at 50% 0,#1d3b41,#0000 65%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:40px 24px;display:flex}.studio-back{width:min(640px,100%);color:var(--muted);margin-bottom:24px}.studio-card{text-align:center;width:min(640px,100%);padding:42px}.studio-card h1{margin:16px 0;font-size:34px}.studio-card>p{color:var(--muted);margin-bottom:24px;line-height:1.9}.studio-icon{width:76px;height:76px;color:var(--mint);background:#a9efd416;border-radius:24px;place-items:center;margin:26px auto;display:grid}.studio-card>.primary{min-height:52px;margin:auto}.studio-steps{color:var(--mint);justify-content:center;gap:24px;margin:30px 0;font-size:13px;display:flex}.studio-card details{text-align:left;border-top:1px solid var(--line);margin-bottom:22px;padding-top:22px}.studio-card summary{cursor:pointer;color:var(--gold)}.studio-card form{gap:14px;margin-top:20px;display:grid}.studio-card>small{color:var(--muted);font-size:12px}.studio-access{background:#18342f;border-bottom:1px solid #a9efd422;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;padding:12px 24px;font-size:13px;display:flex}.studio-access>span{color:var(--mint);align-items:center;gap:8px;display:flex}.studio-access small{color:var(--muted)}.studio-access .secondary{padding:7px 14px;font-size:13px}@media (width<=600px){.studio-card{padding:28px 22px}.studio-card h1{font-size:27px}.studio-steps{gap:14px}.studio-access{gap:10px}.studio-access small{text-align:center;width:100%}}
