:root{color-scheme:dark;--bg:#0b0e14;--panel:#12161f;--line:#252a36;--text:#f1f2f8;--muted:#98a1b5;--purple:#a298ff;--cyan:#68ddd5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,'Segoe UI','Microsoft YaHei',sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:wait}a{color:inherit;text-decoration:none}button,input,select{border:1px solid var(--line);background:#171c26;border-radius:10px}button{padding:11px 15px}button:hover:not(:disabled){border-color:#78729b;background:#222536}a:hover{color:#c3bbff}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}[hidden]{display:none!important}.topbar{height:82px;padding:0 3.2%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#0c0f16}.brand{display:flex;align-items:center;gap:12px}.logo{width:40px;height:42px;border-radius:13px;display:grid;place-content:center;position:relative;font-size:25px;font-weight:850;background:linear-gradient(145deg,#a49aff,#7063d7);color:white;box-shadow:0 5px 25px #8e7aff24}.logo span{position:absolute;right:5px;bottom:4px;font-size:18px;color:#ddd5ff}.brand strong{font-size:17px}.brand-cn{font-size:14px;margin-left:5px}.brand small{display:block;letter-spacing:2px;color:#838aa0;font-size:9px;margin-top:5px}nav{display:flex;gap:25px;align-items:center}nav a{color:#b3b9c9;font-size:13px}nav button{background:transparent;font-size:12px}nav button span{color:var(--muted);margin-left:18px}.header-tag{border-left:1px solid var(--line);padding-left:24px;color:var(--muted);font-size:11px}.home{max-width:1440px;margin:auto;padding:0 4.2%}.hero-home{min-height:410px;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:35px;padding:50px 0 35px}.eyebrow{color:var(--purple);font-size:10px;letter-spacing:2px;font-weight:750}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#69dec0;box-shadow:0 0 0 4px #69dec015;vertical-align:middle;margin-right:9px}.hero-home h1{font-size:clamp(34px,4vw,57px);line-height:1.3;letter-spacing:-2px;margin:20px 0}.hero-home h1 span{color:#aea4ff}.hero-home p{font-size:14px;color:#a3abbd;line-height:1.95}.primary{display:flex;justify-content:center;align-items:center;gap:10px;border:1px solid #ab9eff;background:linear-gradient(120deg,#8a7af1,#a094fc);color:white;font-weight:650;min-height:44px;border-radius:11px;box-shadow:0 6px 25px #8471f21a}.primary:hover:not(:disabled){background:#a599fa;color:white;border-color:#c0b6ff}.primary span{margin-left:auto}.hero-cta{width:202px;padding:13px 18px;margin-top:24px;font-size:13px}.hero-meta{display:flex;gap:14px;align-items:center;color:#7e879d;font-size:10px;margin-top:23px}.hero-meta i{height:3px;width:3px;border-radius:50%;background:#596174}.hero-art{height:315px;position:relative;background:radial-gradient(ellipse,#7160b21f,transparent 70%);overflow:hidden}.orbit{position:absolute;border:1px solid #37304266;border-radius:50%;width:320px;height:320px;left:50%;top:50%;transform:translate(-50%,-50%)}.orbit-two{width:420px;height:420px;border-style:dashed}.art-label{position:absolute;top:28px;width:100%;text-align:center;font-size:9px;letter-spacing:3px;color:#8a809e}.art-whole{position:absolute;top:66px;left:calc(50% - 36px);height:72px;width:72px;border:1px solid #746692;border-radius:22px;background:linear-gradient(140deg,#382d50,#171520);font-size:39px;font-weight:700;display:grid;place-items:center;box-shadow:0 0 60px #8e69dd20}.art-branches{position:absolute;left:28%;right:28%;top:137px;height:53px;border:1px solid #6a597f;border-bottom:0;border-radius:20px 20px 0 0}.art-group{position:absolute;top:176px;width:132px;height:86px;border-radius:16px;border:1px solid #494064;background:#191625;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:32px;font-weight:650}.art-group span{font-size:12px;letter-spacing:4px;margin-top:5px}.art-group.purple{left:calc(28% - 66px);color:#b1a4ff}.art-group.cyan{left:calc(72% - 66px);color:var(--cyan);border-color:#305354;background:#122123}.floating-note{position:absolute;bottom:4px;text-align:center;width:100%;font-size:11px;color:#9d97b1}.library{padding-top:22px;border-top:1px solid var(--line)}.library-title{display:flex;justify-content:space-between;align-items:center}.library-title h2{font-size:23px;margin:12px 0 24px;letter-spacing:-.5px}.library-title>span{font-size:11px;color:var(--muted)}.toolbar{display:flex;justify-content:space-between;gap:20px;margin-bottom:22px}.filters{display:flex;gap:6px;flex-wrap:wrap}.filters button{padding:10px 16px;background:transparent;border-color:transparent;color:#9ca5b9;font-size:12px}.filters button.selected,.presets button.selected{background:#29223e;border-color:#635389;color:#c7bcff}.search-box{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:#121620;border-radius:10px;padding:0 12px;color:#929bb2}.search-box input{background:transparent;border:0;outline:0;font-size:12px;width:175px;padding:10px 0}.search-box:focus-within{outline:2px solid var(--purple)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:linear-gradient(150deg,#171c28,#10141d);transition:transform .2s,border-color .2s}.card.available:hover{transform:translateY(-3px);border-color:#9685df}.card-art{height:124px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 100%,#8479e419,transparent);border-bottom:1px solid #ffffff05}.card-index{position:absolute;left:18px;top:16px;color:#687287;font-size:9px;letter-spacing:1px}.card-status{position:absolute;right:16px;top:14px;border:1px solid #343248;border-radius:5px;color:#878ba0;padding:4px 7px;font-size:9px}.available .card-status{color:#8cddc0;border-color:#325246;background:#172b27}.mini-math{font-size:28px;font-weight:650;letter-spacing:6px;color:#a297e9}.mini-math b{color:var(--cyan)}.mini-balls{display:flex;gap:9px}.mini-balls i{width:20px;height:20px;background:linear-gradient(140deg,#b8a7ff,#8272cd);border-radius:50%;box-shadow:0 4px 20px #8b76dd30}.mini-balls i:nth-child(n+4){background:linear-gradient(140deg,#9aede2,#429eab)}.card-content{padding:20px}.card h3{font-size:16px;margin:0 0 10px}.card p{font-size:11px;color:#98a0b3;line-height:1.8;min-height:39px;margin:0}.card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px;font-size:10px;color:#7d879d}.grade-pill{padding:5px 8px;border:1px solid #343040;border-radius:5px;color:#aaa0c9}.available .card-footer>span:last-child{color:#beb2ff}.catalog-note{text-align:center;color:#707b90;font-size:11px;margin:30px 0}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#687287;font-size:11px;padding:25px 0 30px}.lab{min-height:calc(100vh - 82px);padding:30px 2%;display:grid;grid-template-columns:minmax(240px,300px) minmax(390px,1fr) 288px;grid-template-rows:auto 1fr;gap:24px;background:radial-gradient(ellipse at 49% 50%,#5f4db913,transparent 60%),linear-gradient(#ffffff02 1px,transparent 1px),linear-gradient(90deg,#ffffff02 1px,transparent 1px);background-size:auto,32px 32px,32px 32px}.intro{grid-column:1;grid-row:1;padding-top:8px}.intro .eyebrow span{color:#616a80}.intro h1{font-size:clamp(22px,1.7vw,30px);letter-spacing:-.8px;white-space:nowrap;margin:18px 0}.question{font-size:14px;color:#ccd0dd;line-height:1.8;margin:0 0 12px}.intro-copy{font-size:12px;line-height:1.95;color:var(--muted)}.concept{display:inline-block;font-size:10px;line-height:1.8;margin-top:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;color:#acb2c2}.grade-label{margin-top:19px;font-size:10px;color:#737e94}.grade-label span{margin:0 10px}.coach{grid-column:1;grid-row:2;align-self:end;border:1px solid #30313d;border-radius:18px;padding:18px;background:linear-gradient(145deg,#1a1c28,#12151e);margin-top:50px}.coach-heading{display:flex;gap:10px;align-items:center}.fox{width:39px;height:39px;display:grid;place-content:center;font-size:24px;background:#ffac6820;border:1px solid #a867363f;border-radius:12px}.coach-heading strong{font-size:12px}.coach-heading small{display:block;color:#7f899f;font-size:10px;margin-top:5px}.coach-heading>.live-dot{margin-left:auto;margin-right:0;width:5px;height:5px}.narrative{border-left:2px solid #8975d1;padding:2px 0 2px 13px;margin:24px 0}.narrative .eyebrow{font-size:9px;letter-spacing:1px}.narrative p{line-height:1.95;color:#c5cada;font-size:12px;margin:10px 0 0;min-height:68px}.coach .primary{width:100%;font-size:12px}.coach-foot{font-size:9px;color:#7e879a;text-align:center;margin:12px 0 0}.stage{grid-column:2;grid-row:1/3;background:#070a10;border:1px solid #292c3a;border-radius:23px;min-width:0;display:flex;flex-direction:column;justify-content:center;min-height:570px;position:relative;overflow:hidden;box-shadow:0 15px 70px #0003}.stage-head{display:flex;justify-content:space-between;align-items:center;padding:23px;color:#8992a7;font-size:10px}.stage-head>span:last-child{padding:6px 9px;border:1px solid #292938;border-radius:6px;color:#b1a9d5;background:#171321}#scene{width:100%;flex:1;min-height:240px;max-height:490px;display:block}.equation{text-align:center;font-size:32px;font-weight:700;letter-spacing:2px;padding:0 10px}.equation .op{font-size:23px;color:#697386;margin:0 12px}.purple-text{color:var(--purple)!important}.cyan-text{color:var(--cyan)!important}.stage-caption{color:#9ca6ba;text-align:center;line-height:1.8;font-size:11px;margin:14px 12px 35px}.stage-bottom{margin-top:auto;border-top:1px solid #1e222e;padding:17px 23px;display:flex;justify-content:space-between;font-size:9px;color:#737e94}.stage-bottom>span:first-child{color:var(--purple)}.stage-bottom .cyan-text{margin-left:13px}.console{grid-column:3;grid-row:1/3;align-self:start;background:#12161e;border:1px solid var(--line);border-radius:20px;overflow:hidden}.console-head{padding:22px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.console-head strong{font-size:13px}.console-head span{color:#72bca9;font-size:8px;letter-spacing:1px}.console-body{padding:20px 18px}.control-heading{font-size:10px;color:#9ea7bb;display:flex;justify-content:space-between}.control-heading span{color:#515d73}.presets{display:flex;gap:8px;margin:12px 0 24px}.presets button{flex:1;padding:9px;font-size:13px;background:#191d27}.slider-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#a5aec1;margin:16px 0 12px}.slider-label output{font-size:17px;font-weight:650;color:#e2dfff}input[type=range]{accent-color:#a191fb;width:100%;height:5px;margin:0;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font-size:9px;color:#616d84;margin-top:9px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:21px}.stats>div{background:#181d28;border:1px solid #252b38;border-radius:9px;padding:10px}.stats span{font-size:9px;color:#8e98ae;display:block}.stats b{display:block;font-size:21px;margin-top:5px}.divider{border-top:1px solid var(--line);margin:23px 0 20px}.speed-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#8e98ae;margin:14px 0}select{padding:5px;font-size:10px;color:#c6c9d9}.console .primary{width:100%;font-size:12px}.two-buttons{display:flex;gap:8px;margin-top:9px}.two-buttons button{flex:1;font-size:11px;background:#191d27}.secondary{width:100%;margin-top:9px;font-size:11px;background:transparent}.reset{display:block;margin:14px auto 0;padding:5px;border:0;background:transparent;color:#858fa5;font-size:10px}.all-patterns{display:flex;flex-wrap:wrap;gap:6px;padding:0 20px 20px;justify-content:center}.all-patterns button{padding:7px 10px;font-size:10px}.all-patterns button.selected{border-color:var(--purple);color:var(--purple)}dialog{color:var(--text);background:#141822;border:1px solid #373849;border-radius:22px;width:min(520px,calc(100% - 24px));padding:24px;max-height:85vh;box-shadow:0 30px 150px #0008}dialog::backdrop{background:#03050bbb;backdrop-filter:blur(6px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-head small{font-size:10px;letter-spacing:1px;color:#a19ab9}.dialog-head h2{font-size:18px;margin:8px 0}.close{background:transparent;font-size:24px;padding:3px 11px;color:#a9b0c2}.back-home{display:block;padding:13px;border:1px solid #625184;border-radius:10px;color:#c2b6fa;margin-bottom:15px}#navList h3{font-size:12px;color:#9286b5;margin:22px 0 8px}.nav-item{display:flex;justify-content:space-between;align-items:center;padding:10px 5px;border-bottom:1px solid #252936;font-size:12px}.nav-item small{font-size:9px;color:#758097}.nav-item a{color:#c6baff}.chat-context{background:#242035;color:#bfb3ea;padding:10px;border-radius:9px;font-size:11px}.messages{height:280px;overflow:auto;display:flex;flex-direction:column;gap:13px;padding:18px 0}.message{max-width:92%;padding:12px 14px;font-size:12px;line-height:1.9;white-space:pre-wrap;border-radius:12px;background:#202633}.message.user{align-self:flex-end;background:#413558}.message.error{border:1px solid #69502e;background:#30291f;color:#edcfa8}.suggestions{display:flex;gap:6px;margin-bottom:12px}.suggestions button{font-size:10px;padding:7px;color:#b4abc9}#chatForm{display:flex;gap:8px}#chatInput{min-width:0;flex:1;padding:12px;font-size:12px}#sendBtn{font-size:11px;padding:10px}.chat-disclaimer{font-size:9px;color:#707b90;text-align:center;margin:13px 0 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(min-width:1600px){.lab{padding:38px 3%;gap:30px;grid-template-columns:330px minmax(480px,1fr) 320px}.intro h1{font-size:32px}.stage{min-height:650px}.coach-heading strong{font-size:14px}.narrative p{font-size:14px}.console-body{padding:24px}.presets{margin-bottom:30px}}@media(max-width:1120px){.lab{grid-template-columns:240px minmax(0,1fr);grid-template-rows:auto auto;gap:20px}.intro{grid-column:1;grid-row:1}.coach{grid-column:1;grid-row:2;align-self:start;margin-top:0}.stage{grid-column:2;grid-row:1/3;min-height:570px}.console{grid-column:1/3;grid-row:3;width:100%}.console-body{display:grid;grid-template-columns:1fr 1fr;gap:12px 25px}.console-body>*{margin:0}.console-body .divider,.console-body .range-ends,.console-body .control-heading{display:none}.console-body .stats{grid-column:2;grid-row:1/4}.console-body .presets{grid-column:1}.console-body .slider-label{margin-top:4px}.console-body #nSlider{grid-column:1;grid-row:3}.console-body #aSlider{grid-column:1;grid-row:5}.console-body .speed-label{grid-column:2;grid-row:4}.console-body .primary{grid-column:2;grid-row:5/7}.console-body .two-buttons{grid-column:1}.console-body .reset{grid-column:2}.header-tag{display:none}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar{flex-wrap:wrap}}@media(max-width:650px){.topbar{height:72px;padding:0 18px}.brand strong{font-size:14px}.brand-cn{display:none}.brand small{font-size:7px}.logo{width:32px;height:34px;font-size:20px}nav{gap:13px}nav button{font-size:10px;padding:8px}nav button span{display:none}.home{padding:0 20px}.hero-home{grid-template-columns:1fr;padding-top:36px;gap:8px}.hero-home h1{font-size:38px}.hero-home p{font-size:12px}.hero-art{height:285px}.hero-meta{font-size:9px;gap:10px}.library-title h2{font-size:20px}.library-title>span{font-size:9px}.filters{gap:2px}.filters button{padding:9px 10px;font-size:11px}.search-box{width:100%}.search-box input{width:100%}.cards{grid-template-columns:1fr}.card-art{height:130px}.lab{display:flex;flex-direction:column;padding:24px 16px;gap:20px}.intro h1{font-size:28px}.intro-copy br{display:none}.intro{order:0}.stage{order:1;min-height:470px}.coach{order:2;margin:0}.console{order:3}.stage-head{padding:17px}#scene{min-height:200px}.stage-caption{margin-bottom:20px}.equation{font-size:28px}.intro .grade-label{display:none}.intro .concept{margin-top:4px}.intro-copy{margin-bottom:5px}.coach .narrative p{min-height:0}.coach .narrative{margin:18px 0}.console-body{display:block;padding:18px}.console-body .control-heading,.console-body .range-ends{display:flex}.console-body .divider{display:block}.console-body .presets{margin:12px 0 20px}.console-body .slider-label{margin:15px 0}.console-body .stats{margin:20px 0}.console-body .speed-label{margin:15px 0}.console-body .two-buttons,.console-body .secondary{margin-top:10px}.console-body .reset{margin:15px auto 0}.narrative p{font-size:13px}.intro .question{font-size:13px}footer{font-size:9px}.suggestions{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(min-width:1121px) and (max-height:800px){.lab{padding:20px 2%;gap:20px}.stage{min-height:570px}#scene{max-height:340px}.stage-head{padding:15px 20px}.stage-caption{margin:10px 12px 20px}.console-head{padding:16px 18px}.console-body{padding:15px 18px}.presets{margin:10px 0 15px}.slider-label{margin:10px 0 8px}.stats{margin-top:13px}.divider{margin:15px 0}.speed-label{margin:10px 0}.console .primary{min-height:39px}.two-buttons button,.secondary{padding:9px}.reset{margin-top:10px}.coach{padding:15px}.narrative{margin:18px 0}.intro h1{margin:15px 0}.equation{font-size:28px}}
/* 聊天嵌入左侧导师栏；无模态遮罩，不遮挡演示和控制台。 */
.coach.chat-expanded{align-self:stretch;margin-top:16px;display:flex;flex-direction:column;min-width:0}
.chat-expanded .coach-foot{display:none}.chat-expanded .narrative{margin:16px 0}.chat-expanded .narrative p{min-height:0;font-size:11px;line-height:1.8}
#chat{position:static;width:100%;min-width:0;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;max-height:none}
#chat .dialog-head{margin:0 0 12px;border-top:1px solid var(--line);padding-top:13px;gap:5px}#chat .dialog-head small{display:none}#chat .dialog-head h2{font-size:13px;margin:0}#chat .close{font-size:19px;padding:1px 9px}
#chat .chat-context{font-size:10px;line-height:1.6;padding:8px}#chat .messages{height:200px;min-height:160px;padding:12px 0;gap:9px}#chat .message{font-size:12px;padding:9px 11px;line-height:1.85;max-width:98%;overflow-wrap:anywhere}#chat .suggestions{flex-wrap:wrap;gap:5px;margin-bottom:10px}#chat .suggestions button{font-size:9px;padding:6px 8px}#chatForm{gap:5px}#chatInput{padding:10px 8px;font-size:11px}#sendBtn{min-height:38px;font-size:10px;padding:8px;white-space:nowrap}#chat .chat-disclaimer{font-size:8px;line-height:1.7;margin:9px 0 0}
@media(min-width:1121px){.lab:has(.chat-expanded){grid-template-rows:auto 1fr}.lab:has(.chat-expanded) .intro .intro-copy,.lab:has(.chat-expanded) .intro .grade-label{display:none}.lab:has(.chat-expanded) .intro .concept{margin-top:4px}.lab:has(.chat-expanded) .coach{margin-top:0}.lab:has(.chat-expanded) .stage{position:sticky;top:20px;align-self:start;height:calc(100vh - 142px);min-height:570px}.lab:has(.chat-expanded) .console{position:sticky;top:20px}}
@media(max-width:650px){.coach.chat-expanded{margin-top:0}#chat .messages{height:230px}#chatInput{font-size:16px}}
#chat #sendBtn{width:auto;flex:0 0 auto}#chatInput{width:0;flex:1 1 0}
/* 阅读舒适度：小学课堂与普通笔记本优先，正文14–16px。 */
body{font-size:16px}.brand strong{font-size:19px}.brand-cn{font-size:16px}.brand small{font-size:10px}nav a,nav button{font-size:14px}.header-tag{font-size:13px}.eyebrow{font-size:12px}
.hero-home p{font-size:17px;line-height:1.9}.hero-cta{font-size:16px;width:230px}.hero-meta{font-size:13px}.floating-note{font-size:14px}.library-title h2{font-size:27px}.library-title>span{font-size:14px}.filters button{font-size:15px}.search-box input{font-size:14px;width:200px}.card h3{font-size:19px;line-height:1.5}.card p{font-size:14px;line-height:1.8;min-height:50px}.card-footer{font-size:13px}.card-index,.card-status{font-size:11px}.catalog-note,footer{font-size:13px}.grade-pill{font-size:12px}
.lab{grid-template-columns:340px minmax(0,1fr) 308px}.intro h1{font-size:30px}.question{font-size:17px}.intro-copy{font-size:15px;line-height:1.9}.concept{font-size:13px;padding:9px 11px}.grade-label{font-size:13px}.coach-heading strong{font-size:16px}.coach-heading small{font-size:12px}.narrative .eyebrow{font-size:12px}.narrative p,.chat-expanded .narrative p{font-size:15px;line-height:1.9}.coach .primary{font-size:15px}.coach-foot{font-size:12px;line-height:1.7}.stage-head{font-size:13px}.stage-caption{font-size:15px;line-height:1.8}.stage-bottom{font-size:12px}.all-patterns button{font-size:14px;padding:8px 12px}
.console-head strong{font-size:16px}.console-head span{font-size:10px}.control-heading{font-size:13px}.presets button{font-size:16px}.slider-label{font-size:14px}.slider-label output{font-size:21px}.range-ends{font-size:12px}.stats span{font-size:12px}.stats b{font-size:25px}.speed-label,select{font-size:13px}.console .primary{font-size:15px}.two-buttons button,.secondary{font-size:14px}.reset{font-size:13px}.console-body{padding:18px}.presets{margin-bottom:18px}.divider{margin:18px 0}.slider-label{margin:13px 0 10px}.stats{margin-top:17px}
#chat .dialog-head h2{font-size:16px}#chat .chat-context{font-size:12px}#chat .message{font-size:15px;line-height:1.85}#chat .suggestions button{font-size:12px}#chatInput{font-size:14px}#chat #sendBtn{font-size:13px;padding:10px}#chat .chat-disclaimer{font-size:11px}#chat .messages{height:220px}.nav-item{font-size:15px;line-height:1.6}.nav-item small{font-size:12px}#navList h3{font-size:15px}.dialog-head h2{font-size:21px}
@media(min-width:1600px){.lab{grid-template-columns:360px minmax(0,1fr) 340px}.intro h1{font-size:34px}.narrative p,.chat-expanded .narrative p{font-size:16px}#chat .message{font-size:16px}.stage-head{font-size:14px}}
@media(min-width:1121px) and (max-height:800px){.lab{grid-template-columns:320px minmax(0,1fr) 290px}.intro h1{font-size:28px}.console-body{padding:14px 16px}.presets{margin:10px 0 12px}.slider-label{margin:9px 0}.stats{margin-top:12px}.divider{margin:13px 0}.stage-caption{font-size:14px}.stage-bottom{padding:14px;font-size:11px}.coach.chat-expanded .narrative{margin:12px 0}#chat .messages{height:180px}}
@media(max-width:1120px){.lab{grid-template-columns:310px minmax(0,1fr)}.console-body{padding:18px;gap:14px 24px}.console-body>*{margin:0}.intro h1{font-size:28px}}
@media(max-width:650px){.brand strong{font-size:16px}.brand small{font-size:8px}nav{gap:9px}nav a,nav button{font-size:12px}.hero-home p{font-size:15px}.hero-meta{font-size:11px;gap:8px}.hero-home h1{font-size:36px}.filters button{font-size:14px;padding:8px 11px}.library-title h2{font-size:23px}.library-title>span{font-size:12px}.intro h1{font-size:30px}.intro .question{font-size:16px}.intro-copy{font-size:14px}.concept{font-size:12px}.coach-heading strong{font-size:16px}#chatInput{font-size:16px}.stage-caption{font-size:14px}.stage-bottom{font-size:11px;padding:14px}.console-body .slider-label{margin:15px 0}.console-body .stats{margin:20px 0}.console-body .presets{margin:12px 0 20px}.console-body .speed-label{margin:15px 0}.console-body .divider{margin:20px 0}.console-body .two-buttons,.console-body .secondary{margin-top:10px}.console-body .reset{margin:15px auto 0}footer{font-size:11px}}

/* Phone experiment: keep the experiment visible while adjusting nearby controls. */
.mobile-concepts{display:none}
@media(max-width:650px){
 .lab{padding:16px 12px 90px;gap:12px}
 .intro .eyebrow,.intro .intro-copy,.intro .concept{display:none}
 .intro h1{font-size:27px;margin:4px 0 8px}.intro .question{margin:0 0 8px;font-size:15px}
 .mobile-concepts{display:block;color:var(--muted);font-size:13px;line-height:1.7}.mobile-concepts summary{cursor:pointer;padding:5px 0}.mobile-concepts p{margin:6px 0}
 .stage{order:1;position:sticky;top:0;z-index:5;min-height:0;height:auto;flex:none;background:#090c12;box-shadow:0 6px 18px #0005;border-radius:18px}
 .stage-head{padding:10px 14px;font-size:12px}.stage-head #phase{padding:4px 8px}
 #scene{flex:none;width:100%;height:135px;min-height:0;max-height:none}
 .equation{font-size:27px;margin:0;line-height:1.3;flex:none}.stage-caption{font-size:13px;margin:5px 10px 10px;line-height:1.5}.stage-bottom{display:none}
 .all-patterns{max-height:100px;overflow:auto;margin:5px 10px 10px}
 .console{order:2}.console-head{padding:12px 14px}.console-body{padding:12px 14px;display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
 .console-body>*{grid-column:auto!important;grid-row:auto!important;margin:0!important}
 .console-body .control-heading,.console-body .range-ends,.console-body .stats,.console-body .divider{display:none}
 .console-body .presets{grid-column:1/-1!important;display:flex;gap:8px}.presets button{flex:1;min-height:40px;padding:6px}
 .console-body .slider-label{grid-column:1!important;font-size:14px;display:flex;align-items:center;min-height:40px}
 .console-body input[type=range]{grid-column:2!important;width:100%;height:40px}
 .console-body .speed-label{grid-column:1/-1!important;min-height:40px}
 .console-body .primary,.console-body .two-buttons{grid-column:1/-1!important;min-height:44px}
 .console-body .secondary,.console-body .reset{font-size:13px;min-height:44px;padding:8px}
 .coach{order:3;padding:16px}.coach-foot{display:none}.coach .narrative{margin:12px 0 0}
 #askBtn{position:fixed;bottom:calc(12px + env(safe-area-inset-bottom));left:12px;right:12px;width:calc(100% - 24px);z-index:20;min-height:48px;box-shadow:0 0 0 10px #0b0e14}
 #chat{position:fixed;z-index:30;left:0;right:0;bottom:0;width:100%;height:65dvh;max-height:600px;margin:0;padding:16px 16px calc(12px + env(safe-area-inset-bottom));background:#151923;border:1px solid #41485b;border-radius:22px 22px 0 0;box-shadow:0 -12px 35px #0008;display:flex;flex-direction:column;gap:8px;overflow:auto}
 #chat .dialog-head{margin:0;flex:none}#chat .close{min-width:44px;min-height:44px}#chat .chat-context{margin:0;flex:none}#chat .messages{height:auto;min-height:70px;flex:1;overflow:auto;padding:0}#chat .suggestions{margin:0;flex:none}#chatForm{flex:none}#chat .chat-disclaimer{margin:0;flex:none}
}
@media(max-width:650px) and (max-height:550px){.stage{position:relative}#chat{height:92dvh}}
/* User-selected phone order: controls above the demonstration. */
@media(max-width:650px){.console{order:1}.stage{order:2}.coach{order:3}}
@media(max-width:650px){.extended-lab #scene{height:210px;max-height:none}.extended-lab .stage-caption{font-size:14px}.extended-lab .stage{position:relative}}
@media(max-width:650px){.lab>.coach{width:100%;align-self:stretch}}
.duration-picker{margin:15px 0;font-size:13px}.duration-options{display:flex;gap:5px;margin:8px 0}.duration-options button{padding:8px 5px;flex:1;font-size:12px}.duration-options .selected{background:#31284a;border-color:#a298ff}.duration-picker input{width:100%;padding:8px}.extended-lab:has(#duration) #scene{max-height:490px}
@media(max-width:650px){.console-body .duration-picker{grid-column:1/-1!important}.extended-lab #scene{height:270px}}
.batch-lab .intro h1{font-size:clamp(21px,1.9vw,30px);letter-spacing:-1px}.step-counter{color:#b8b0df;font-size:13px;margin:14px 0}.batch-lab .console-body input[type=range]{display:block;width:100%}.batch-lab .mode-label{gap:8px;flex-wrap:wrap}.batch-lab .equation{font-size:clamp(18px,1.9vw,28px);letter-spacing:0}.batch-lab .stage-caption{min-height:3.6em}.batch-lab #scene{min-height:290px;max-height:470px}.batch-lab .console-body .secondary{width:100%;margin-top:10px}.batch-lab .console-body .reset{display:block}
@media(max-width:650px){.batch-lab .intro h1{font-size:26px;letter-spacing:-1px}.batch-lab .console-body{gap:6px 12px}.batch-lab .console-body .mode-label,.batch-lab .step-counter{grid-column:1/-1!important}.batch-lab .console-body .slider-label{font-size:13px}.batch-lab .console-body .slider-label output{font-size:18px}.batch-lab #scene{height:auto;min-height:260px}.batch-lab .equation{font-size:20px}.batch-lab .stage-caption{font-size:15px;line-height:1.8}.batch-lab .console-body input{min-width:0}.batch-lab .stage-head{font-size:12px}}
