/* Shared stage introductions and short skip assessments. */
.stage-intro{max-width:1050px;margin:12px auto 30px;background:#fff;border:2px solid var(--line);border-top:7px solid var(--stage-color);border-radius:26px;padding:28px;box-shadow:var(--shadow)}
.intro-head{display:flex;gap:18px;align-items:center;margin-bottom:24px}
.intro-head>div:last-child{min-width:0}.intro-head .stage-number{flex:0 0 72px}
.intro-head .eyebrow{margin:0 0 5px;color:var(--muted);font-weight:900;font-size:.875rem;letter-spacing:.06em}
.intro-head h1{font-size:clamp(1.65rem,4vw,2.5rem);line-height:1.2;margin:0;overflow-wrap:break-word}
.intro-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:28px;align-items:start}
.intro-copy{min-width:0}.intro-copy section+section{margin-top:24px}
.intro-copy h2{font-size:1rem;margin:0 0 8px;font-weight:900;color:#365a82}
.intro-copy p{font-size:1.1rem;line-height:1.6;margin:0}
.intro-need{border-left:5px solid var(--stage-color);padding:14px 18px;background:var(--stage-soft);border-radius:0 15px 15px 0}
.intro-need p{font-weight:850;font-size:1.2rem}
.intro-goals{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.intro-goals li{padding-left:28px;position:relative;font-size:1.1rem;line-height:1.55;font-weight:750}
.intro-goals li::before{content:'✓';position:absolute;left:0;color:#22754a;font-weight:1000}
.intro-before{padding-top:18px;border-top:2px solid var(--line)}
.intro-before .intro-prerequisites{font-size:.9rem;color:var(--muted);margin-top:6px}
.intro-figure{margin:0;padding:20px 16px;background:#f3f7fc;border-radius:20px;min-width:0}
.intro-model{min-width:0;display:flex;justify-content:center;align-items:center;flex-direction:column;padding:6px 10px}
.intro-model>.number-line{width:calc(100% - 48px)}
.intro-model .bar-model,.intro-model .labeled-model,.intro-model .equivalent-bars,.intro-model .whole-scene{width:100%}
.intro-model .whole-scene{gap:18px}.intro-model .quantity-card{min-width:0}
.intro-model .calculation-card{font-size:clamp(1.3rem,3.5vw,1.8rem);max-width:100%;padding:12px;line-height:1.8}
.intro-model .stack-lines{width:100%}.intro-model .line-row{grid-template-columns:44px minmax(0,1fr);gap:8px}
.intro-model .area-model{max-width:270px}.intro-model .decimal-product-area{max-width:300px}
.intro-model .area-model .calculation-card{font-size:1.3rem}
.intro-model .decimal-scale-model{max-width:360px}.intro-model .decimal-scale-model p{font-size:1rem}
.intro-model .scale-table-row:first-child{font-size:.9rem}.intro-model .scale-digits{font-size:1.5rem}
.intro-model .integerize-model,.intro-model .division-transform{padding:10px;background:transparent}
.intro-model .integerize-row,.intro-model .integerize-calc,.intro-model .integerize-result{font-size:1.25rem}
.intro-figure figcaption{font-size:1rem;line-height:1.55;text-align:center;font-weight:750;margin-top:16px;color:#365a82}
.intro-hundred{display:grid;justify-items:center;gap:12px}.intro-hundred svg{width:210px;max-width:100%;height:auto}
.intro-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px;padding-top:20px;border-top:2px solid var(--line)}
.intro-mascots{display:flex;align-items:center;gap:8px;min-width:0}.intro-mascots img{width:54px;height:66px;object-fit:contain}
.intro-mascots p{margin:0 0 0 6px;font-size:1rem;font-weight:800;line-height:1.5}
.entry-primary{background:#267c4e;color:#fff;font-weight:900;font-size:1.125rem;padding:16px 22px;border:0;border-radius:15px;cursor:pointer;min-height:52px}
.entry-back{display:block;margin-top:20px;border:0;background:#edf2f7;padding:12px 18px;border-radius:13px;cursor:pointer;font-weight:850;min-height:48px}
.skip-rules{margin:0 0 16px;background:#fff3bd;color:var(--ink);border:1px solid #e7c35a;border-radius:13px;padding:12px 16px;font-size:1rem;line-height:1.5;font-weight:800}
.skip-assessment .guides,.skip-assessment .rail-character{display:none}
.skip-assessment .learn-grid{grid-template-columns:minmax(0,1fr)}
.skip-result .result-mascots{display:flex;justify-content:center;gap:12px}.skip-result .result-mascots img{width:108px;height:116px}
.skip-result .result-stage{color:#365a82;font-weight:900;font-size:.9rem;letter-spacing:.04em}
.skip-result>p{font-size:1.1rem;color:var(--ink)}
.skip-result .actions>button:first-child{background:#267c4e;color:#fff}
.skip-summary{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin:18px 0 24px;padding:14px;background:#edf6ff;border-radius:14px;font-size:1rem}
.skip-reviews{text-align:left;padding:18px;background:#f1f5fa;border:1px solid var(--line);border-radius:16px;margin:18px 0}
.skip-reviews h2{font-size:1.1rem;margin:0 0 10px}.skip-reviews p{margin:8px 0;color:var(--ink);font-size:1rem}
.skip-reviews>div+div{margin-top:18px}.skip-reviews .review-note{font-size:.9rem;margin-top:16px}
.review-return{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#eaf3ff;border:2px solid #b5d4f1;border-radius:14px;padding:12px 16px;margin-bottom:16px;font-size:1rem;font-weight:800}
.review-return[hidden],.skip-rules[hidden]{display:none}
.review-return button{border:0;background:#244d7d;color:white;border-radius:10px;padding:12px;font-weight:850;cursor:pointer}
@media(max-width:720px){
 .stage-intro{padding:18px;margin-top:4px;border-radius:20px}.intro-head{gap:12px;margin-bottom:20px}.intro-head .stage-number{flex-basis:54px;width:54px;height:54px;font-size:1.5rem;border-radius:14px}
 .intro-layout{grid-template-columns:minmax(0,1fr);gap:22px}.intro-figure{padding:16px 12px}.intro-model{max-width:460px;width:100%;margin:auto}
 .intro-footer{align-items:stretch;flex-direction:column;gap:16px;margin-top:22px}.intro-mascots{justify-content:center}.entry-primary{width:100%}
 .review-return{align-items:stretch;flex-direction:column}.review-return button{width:100%}.skip-result .actions{flex-direction:column}.skip-result .actions button{width:100%;min-height:48px}
}
@media(prefers-reduced-motion:reduce){.intro-model *{animation:none!important}}

/* The introduction is the shared door for learning and skip assessment. */
.intro-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:20px}
.intro-routes section{border:2px solid var(--line);border-radius:18px;padding:20px;min-width:0}
.intro-routes h2{font-size:1.2rem;margin:0 0 10px}.intro-routes p{font-size:1rem;line-height:1.6;margin:0 0 18px}
.intro-routes button{width:100%;white-space:normal;overflow-wrap:anywhere}.intro-routes button+button{margin-top:12px}
.entry-secondary{background:#edf2f7;border:2px solid #c5d5e6;border-radius:15px;padding:14px 18px;min-height:52px;font-size:1rem;font-weight:850;cursor:pointer}
.intro-routes button:disabled{background:#edf0f4;color:#64748b;border-color:#d5dde7;cursor:not-allowed}
.stage-lock-notice{margin-top:24px;padding:18px;border:2px solid #e1bc59;border-radius:15px;background:#fff8df;line-height:1.6}
.stage-lock-notice p{margin:8px 0}.stage-lock-notice .entry-back{margin-top:10px}
.stage-card.locked .start-stage{background:#e2e7ed;color:#334b68}
.stage-copy .stage-lock-note{font-weight:800;color:#596b81;font-size:.95rem;margin:8px 0}
.grouped-division{max-width:560px;text-align:center}.grouped-division p{font-size:1rem;line-height:1.6;margin:10px 0}
@media(max-width:720px){.intro-routes{grid-template-columns:minmax(0,1fr)}.intro-routes section{padding:16px}}
.topbar{grid-template-columns:48px 124px minmax(0,1fr) auto auto}
.portal-btn{border:1px solid #7894b9;background:#284b7b;color:white;border-radius:12px;padding:11px 14px;font:inherit;font-weight:800;cursor:pointer}
.platform-bar{display:flex;justify-content:flex-end;align-items:center;gap:12px;min-height:30px;padding:5px 18px;color:#52647a;font-size:.875rem}
.platform-bar button{border:0;background:transparent;color:#1e4978;font:inherit;text-decoration:underline;cursor:pointer}
@media(max-width:640px){.topbar{grid-template-columns:42px 82px minmax(0,1fr) auto}.portal-btn{padding:10px 8px;font-size:.875rem}.platform-bar{padding:5px 10px}}
