:root{--ink:#1B1F4B;--accent:#1B1F4B;--tint:#f4f1ff;--line:#dddfe9;--pop:#FFC300;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#f7f7fc;color:var(--ink)}body{min-height:100vh}button,a,input,select{touch-action:manipulation}button{min-height:48px}.shell{max-width:1060px;padding:0 28px 42px}.brand{display:flex;align-items:center;gap:10px;letter-spacing:-.055em}.brand .ktc{background:#1B1F4B;color:#fff;border-radius:12px;padding:9px 12px;font-size:24px;letter-spacing:-2px}.ktc em{color:#FF6A2B;font-style:normal}.brand small{font-size:12px;letter-spacing:0}.brand-label{display:block}.brand small{display:block}.meta{color:#565d7b;font-size:11px}.primary{background:#1B1F4B;color:white}.sun{background:#FFC300;color:#1B1F4B}.stars{background:#FFC300;border-radius:99px;padding:9px 18px;font-weight:800;box-shadow:0 3px 0 #d4a300}.nav{gap:8px}.nav .back{font-size:13px}.hero{padding:44px 0 12px;display:grid;grid-template-columns:1.25fr .75fr;gap:38px;align-items:center}.hero h1{font-size:clamp(38px,5vw,60px);max-width:670px;line-height:1.06;margin:13px 0 22px}.hero p{max-width:570px;color:#5e627c}.hero-art{background:#1B1F4B;min-height:245px;border-radius:32px;display:grid;place-content:center;position:relative;color:white;text-align:center;overflow:hidden}.hero-art .big-star{color:#FFC300;font-size:105px;line-height:1.15;transform:rotate(-12deg)}.hero-art strong{font-size:20px}.hero-art::after{content:'✦';color:#FF6A2B;position:absolute;right:24px;top:20px;font-size:42px}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:750;text-transform:uppercase;color:#6f7590}.login-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:26px 0}.panel{background:#fff;border:1px solid var(--line);border-radius:24px;padding:26px}.panel h2{margin-bottom:12px}.stack{display:flex;flex-direction:column;gap:14px}.stack label{display:flex;flex-direction:column;gap:7px;font-size:14px;font-weight:600}.stack input,.stack select{border:1px solid #a6abc0;background:white;color:#1B1F4B;padding:13px;border-radius:12px;width:100%}.stack label.checkbox{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}.checkbox input{width:20px;height:20px;flex-shrink:0}.notice{border-left:4px solid #FFC300;background:#fff9e4;border-radius:8px;padding:14px 18px;font-size:14px;line-height:1.5}.danger{background:#fff0ed;border-left-color:#FF6A2B}.profiles{margin-top:26px}.profile{min-height:145px}.profile.ks1{background:#fff2ba;box-shadow:0 6px 0 #ecd380}.profile.ks2{background:#eeecfa;box-shadow:0 6px 0 #d5d0eb}.ks1 .choice{border-color:#ddd5b4;background:#fff6d7;min-height:75px;font-size:26px}.ks1 .choice:hover{background:#FFC300;border-color:#ad8200}.ks1 .primary{background:#6e2482}.question{min-height:0;padding:25px 30px}.question h1{margin:16px 0 20px}.choices{margin:22px 0 0}.choice{padding:17px;font-size:21px;min-height:65px;background:#f1f1fa;color:#1B1F4B}.session-top{margin:18px 0 12px}.session-footer{font-size:13px}.help{gap:18px}.help .text-btn{font-size:15px}.support{margin-top:20px;border-radius:18px;background:#fff9e4;padding:20px}.support h2{font-size:20px}.support .choices{gap:9px}.support .choice{font-size:16px;min-height:55px}.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:25px 0}.reward{background:white;border:1px solid var(--line);border-radius:20px;padding:20px}.reward.earned{border-color:#d9aa00;background:#fff6c4}.bank-total{background:#1B1F4B;color:white}.bank-total strong{color:#FFC300}.bank-progress span{background:#FFC300}.muted{color:#656b85}.summary{margin:30px auto}.grownup{padding-top:28px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.section-head h1{font-size:32px}.legal{max-width:770px;margin:30px auto}.legal p{margin:15px 0}.legal h2{margin-top:24px}.legal ul{line-height:1.7;padding-left:24px}.legal a{font-weight:700}.pill{font-size:12px}.question .pill{background:#f1effa}.ks1 .question .pill{background:#fff2ba}.mini-progress{height:7px;background:#e1e2ec;border-radius:5px;margin:12px 0}.mini-progress span{display:block;height:100%;border-radius:5px;background:#FFC300}.footnote{font-size:12px;margin-top:26px}.error-banner{position:sticky;top:0;z-index:10;border-radius:0}.loading{padding:60px;text-align:center}.primary:disabled{opacity:.6}.progress span{background:#FF6A2B}.read-aloud{font-size:13px;border-radius:99px;border:1px solid #ddd;background:white;padding:8px 14px}.empty{padding:24px;background:#f4f4fa;border-radius:15px;margin:20px 0}.operation{font-size:46px;text-align:center}.stat{min-width:115px}.stat strong{font-size:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.table-scroll{border-radius:15px}.evidence{min-width:560px}.evidence td,.evidence th{font-size:13px}.stat span{font-size:12px}@media(max-width:700px){.shell{padding:0 18px 28px}header{padding:15px 0;align-items:flex-start}.brand small{font-size:10px}.nav{justify-content:flex-end;max-width:170px}.nav .pill{display:none}.hero{grid-template-columns:1fr;padding:30px 0 0;gap:20px}.hero h1{font-size:39px}.hero-art{min-height:155px;display:none}.login-layout,.profiles,.threads,.reward-grid{grid-template-columns:1fr}.profile{padding:22px;min-height:118px}.profile strong{font-size:26px}.avatar{font-size:46px}.panel{padding:21px}.question{padding:20px}.question h1{font-size:25px}.choices{gap:10px}.choice{font-size:19px;padding:13px}.ks1 .choice{font-size:24px;min-height:67px}.support .choices{grid-template-columns:1fr}.stat{padding:15px}.section-head{align-items:flex-start}.section-head h1{font-size:28px}.form-grid{grid-template-columns:1fr}.help{gap:10px}.help button{font-size:14px!important}.stars{padding:9px 12px}.entry input{width:180px}.reward-grid{gap:12px}}
@media(min-width:760px) and (max-height:850px){.activity header{padding:14px 0}.activity .question{padding:20px 26px}.activity .question h1{margin:12px 0 16px;font-size:27px}.activity .choices{margin-top:16px}.activity .choice{min-height:59px;padding:12px}.activity .numberline{height:65px}.activity .line-wrap{padding:18px 16px 2px}.activity .place-table th,.activity .place-table td{padding:8px 5px}.activity .help{margin-top:10px}.activity .session-footer{margin-top:12px}}

.angle-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.angle-grid figure{margin:0;text-align:center}.angle-grid svg{width:100%;max-height:140px}.coordinate-plot{display:block;width:100%;max-width:350px;margin:12px auto}.sats-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));max-width:420px;margin:auto}.grid-point{min-height:40px;padding:4px;border:1px solid #ddd;background:white;color:#1B1F4B}.grid-point.mirror{background:#fff4d4;color:#FF6A2B}.shaded-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;max-width:480px;margin:16px auto}.shade{aspect-ratio:1;border:1px solid #1B1F4B}.shade.filled{background:#FF6A2B}

/* Keep form text readable without iPhone focus zoom; preserve pinch zoom. */
.stack input,.stack select,.stack textarea{font-size:max(16px,1rem)}

