:root{
  --ink:#102a2d;
  --ink-2:#24474a;
  --paper:#f2e8d5;
  --paper-2:#e6d8bf;
  --white:#fffdf8;
  --accent:#d8663d;
  --accent-dark:#a94727;
  --teal:#2e7772;
  --teal-soft:#c8ddd7;
  --line:rgba(16,42,45,.22);
  --good:#246a4a;
  --bad:#9d382c;
  --warn:#936719;
  --shadow:0 18px 50px rgba(16,42,45,.12);
  --passage-size:1.06rem;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  color:var(--ink);
  background:
    linear-gradient(rgba(16,42,45,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(16,42,45,.035) 1px,transparent 1px),
    var(--paper);
  background-size:32px 32px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
body.large-text{--passage-size:1.2rem}
body.reduced-motion *,body.reduced-motion *::before,body.reduced-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
button,input{font:inherit}
button{cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

.skip-link{position:fixed;left:1rem;top:-5rem;background:var(--ink);color:white;padding:.8rem 1rem;z-index:100;text-decoration:none}
.skip-link:focus{top:1rem}

.site-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem clamp(1rem,4vw,4rem);
  border-bottom:1px solid var(--line);
  background:rgba(242,232,213,.93);
  backdrop-filter:blur(10px);
  position:sticky;top:0;z-index:40;
}
body.game-active .site-header,body.game-active .site-footer{display:none}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--ink)}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;background:var(--paper);border:1px solid var(--ink);overflow:hidden}
.brand-mark img{display:block;width:100%;height:100%}
.brand-copy{display:flex;flex-direction:column;line-height:1.05}
.brand-copy strong{font-size:1.05rem}
.brand-copy small{text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;margin-top:.25rem}
.header-actions{display:flex;gap:.5rem}
.text-button,.icon-button{background:transparent;border:0;color:var(--ink);font-weight:800;padding:.7rem .8rem}
.text-button:hover{text-decoration:underline;text-underline-offset:4px}
.icon-button{font-size:1.8rem;line-height:1}

main{min-height:70vh}
.view{padding:clamp(1.5rem,4vw,4rem);max-width:1500px;margin:0 auto}
.home-view{padding-top:clamp(1.8rem,4vw,3.8rem)}
.intro-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.75fr);gap:clamp(2rem,5vw,5.5rem);align-items:end}
.eyebrow{margin:0 0 .7rem;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:900;color:var(--accent-dark)}
h1,h2,h3,p{max-width:75ch}
h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,6.1vw,6rem);line-height:.96;letter-spacing:-.045em;margin:.1rem 0 1.25rem;font-weight:700}
.lede{font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.52;margin:0 0 1.5rem;color:var(--ink-2);max-width:65ch}
.primary-actions,.summary-actions{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
.primary-button,.secondary-button,.danger-button,.mode-start{
  border:1px solid var(--ink);padding:.85rem 1.15rem;font-weight:900;min-height:46px;
}
.primary-button{background:var(--ink);color:var(--white)}
.primary-button:hover{background:var(--accent);border-color:var(--accent)}
.primary-button:disabled{opacity:.45;cursor:not-allowed;background:var(--ink)}
.secondary-button{background:transparent;color:var(--ink)}
.secondary-button:hover{background:var(--white)}
.danger-button{background:transparent;color:var(--bad);border-color:var(--bad)}
.small-print{font-size:.82rem;margin-top:1rem;color:var(--ink-2)}

.pace-panel{border-top:8px solid var(--ink);border-bottom:1px solid var(--ink);padding:1.2rem 0 1.4rem}
.pace-header{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:.8rem}
.pace-header h2{font-family:Georgia,serif;font-size:1.4rem;margin:0}
.pace-header span{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--teal)}
.profile-metrics{display:grid;grid-template-columns:1fr 1fr;margin:0}
.profile-metrics div{padding:1rem 0;border-bottom:1px solid var(--line)}
.profile-metrics div:nth-child(odd){padding-right:1rem;border-right:1px solid var(--line)}
.profile-metrics div:nth-child(even){padding-left:1rem}
.profile-metrics dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2)}
.profile-metrics dd{margin:.3rem 0 0;font-size:1.35rem;font-weight:900}
.pace-line{height:9px;background:var(--paper-2);margin:1.2rem 0;overflow:hidden}
.pace-line span{display:block;height:100%;width:0;background:var(--teal);transition:width .5s ease}
.pace-panel>p{margin:0;line-height:1.5;font-size:.94rem}

.mode-list{margin-top:clamp(3rem,6vw,5rem)}
.section-heading{display:grid;grid-template-columns:180px 1fr;align-items:end;border-bottom:3px solid var(--ink);padding-bottom:1rem}
.section-heading h2{font-family:Georgia,serif;font-size:clamp(2rem,4vw,4.4rem);margin:0;letter-spacing:-.04em}
.mode-row{display:grid;grid-template-columns:100px minmax(0,1fr) 130px 90px;gap:1rem;align-items:center;padding:1.4rem 0;border-bottom:1px solid var(--ink)}
.mode-number{font-family:Georgia,serif;font-size:2.3rem;color:var(--accent-dark)}
.mode-copy h3{font-family:Georgia,serif;font-size:clamp(1.4rem,2.5vw,2.35rem);margin:0 0 .35rem}
.mode-copy p{margin:0;color:var(--ink-2);line-height:1.45}
.mode-stat{display:flex;flex-direction:column}
.mode-stat span{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}
.mode-stat strong{font-size:1.2rem;margin-top:.25rem}
.mode-start{background:var(--paper);color:var(--ink)}
.mode-start:hover{background:var(--ink);color:var(--white)}
.method-note{display:grid;grid-template-columns:180px minmax(0,1fr) minmax(0,1fr);gap:1.2rem;margin:4rem 0 1rem;padding:1.2rem 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.method-note h2{font-family:Georgia,serif;font-size:1.35rem;line-height:1.15;margin:0}
.method-note p{margin:0;line-height:1.5;color:var(--ink-2)}
.method-note a,.site-footer a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}

.game-view{max-width:1700px;padding-top:1.3rem}
.game-header{display:grid;grid-template-columns:180px 1fr auto;gap:1rem;align-items:center;margin-bottom:1rem}
.game-title-wrap{text-align:center}
.game-title-wrap h1{font-family:Georgia,serif;font-size:clamp(1.8rem,3.5vw,3.5rem);line-height:1;margin:.1rem auto 0;letter-spacing:-.035em}
.game-status{display:flex;gap:1rem;align-items:center;font-weight:900}
.game-status time{font-variant-numeric:tabular-nums;background:var(--ink);color:var(--white);padding:.65rem .85rem;min-width:74px;text-align:center}
.timer-track{height:7px;background:var(--paper-2);margin-bottom:1.4rem;overflow:hidden}
.timer-track span{display:block;width:100%;height:100%;background:var(--accent);transform-origin:left center}
.game-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);min-height:590px;border:1px solid var(--ink);background:var(--white);box-shadow:var(--shadow)}
.passage-panel,.question-panel{padding:clamp(1.25rem,3vw,3rem)}
.passage-panel{border-right:1px solid var(--ink);background:rgba(255,253,248,.72)}
.question-panel{display:flex;flex-direction:column}
.panel-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;font-weight:900;color:var(--accent-dark);border-bottom:1px solid var(--line);padding-bottom:.7rem;margin-bottom:1.25rem}
.passage-text{font-family:Georgia,"Times New Roman",serif;font-size:var(--passage-size);line-height:1.75}
.passage-text p{margin:0 0 1.15rem;max-width:none}
.passage-text .sentence{border:0;background:transparent;color:inherit;font:inherit;line-height:inherit;text-align:left;padding:.08rem .12rem;margin:0;display:inline;border-radius:0}
.passage-text.evidence-active .sentence{border-bottom:1px dotted var(--teal);cursor:crosshair}
.passage-text.evidence-active .sentence:hover{background:var(--teal-soft)}
.passage-text .sentence.selected-evidence{background:#f1c98e;box-shadow:inset 0 -2px 0 var(--accent-dark)}
.passage-text .sentence.correct-evidence{background:#bfe0cb;box-shadow:inset 0 -2px 0 var(--good)}
.passage-text .sentence.wrong-evidence{background:#f0c4bc;box-shadow:inset 0 -2px 0 var(--bad)}
.question-prompt{font-family:Georgia,serif;font-size:clamp(1.35rem,2.4vw,2.15rem);line-height:1.2;margin:.2rem 0 1.4rem;max-width:none}
.answer-area{display:grid;gap:.65rem}
.answer-button{display:grid;grid-template-columns:36px 1fr;gap:.8rem;align-items:center;width:100%;text-align:left;background:transparent;color:var(--ink);border:1px solid var(--ink);padding:.8rem;font-weight:800}
.answer-button .key{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);font-variant-numeric:tabular-nums}
.answer-button:hover{background:var(--paper)}
.answer-button.selected{background:var(--ink);color:var(--white)}
.answer-button.correct{background:#d6eadf;color:var(--ink);border-color:var(--good)}
.answer-button.wrong{background:#f2d5cf;color:var(--ink);border-color:var(--bad)}
.answer-button:disabled{cursor:default}
.answer-button:disabled:not(.correct):not(.wrong):not(.selected){opacity:.52}
.question-hint{min-height:92px;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);line-height:1.5}
.question-hint strong{display:block;margin-bottom:.3rem}
.feedback-good{color:var(--good)}
.feedback-bad{color:var(--bad)}
.question-actions{display:flex;justify-content:space-between;gap:.8rem;margin-top:auto;padding-top:1.2rem}
.shortcut-note{font-size:.73rem;color:var(--ink-2);margin:.75rem 0 0}
.flagged{background:var(--warn)!important;color:white!important;border-color:var(--warn)!important}

.summary-view{max-width:1200px;padding-top:clamp(3rem,6vw,6rem)}
.summary-heading{text-align:center;margin:0 auto 3rem}
.summary-heading h1{font-size:clamp(2.8rem,6vw,6rem);margin:.2rem auto 1rem}
.summary-heading p{margin-left:auto;margin-right:auto;font-size:1.1rem;line-height:1.5}
.summary-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:4px solid var(--ink);border-bottom:1px solid var(--ink)}
.summary-metrics div{padding:1.2rem;border-right:1px solid var(--line)}
.summary-metrics div:last-child{border-right:0}
.summary-metrics span{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}
.summary-metrics strong{display:block;font-family:Georgia,serif;font-size:clamp(1.5rem,3vw,2.8rem);margin-top:.45rem}
.diagnosis,.timeline{margin-top:3rem}
.diagnosis h2,.timeline h2{font-family:Georgia,serif;font-size:2.2rem;border-bottom:1px solid var(--ink);padding-bottom:.7rem}
.diagnosis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.diagnosis-item{border-left:6px solid var(--teal);padding:.2rem 1rem}
.diagnosis-item.warn{border-color:var(--accent)}
.diagnosis-item h3{margin:0 0 .35rem;font-size:1rem}
.diagnosis-item p{margin:0;line-height:1.5}
.timeline-row{display:grid;grid-template-columns:55px 1fr 90px 105px;gap:1rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--line)}
.timeline-bar{height:13px;background:var(--paper-2);position:relative}
.timeline-bar span{display:block;height:100%;background:var(--teal)}
.timeline-row.wrong .timeline-bar span{background:var(--bad)}
.timeline-row.flagged-row .timeline-bar{outline:2px dashed var(--warn);outline-offset:2px}
.summary-actions{justify-content:center;margin-top:3rem}

.settings-dialog{width:min(680px,calc(100vw - 2rem));border:1px solid var(--ink);padding:0;background:var(--white);color:var(--ink);box-shadow:var(--shadow)}
.settings-dialog::backdrop{background:rgba(16,42,45,.72)}
.settings-dialog form{padding:1.4rem}
.dialog-heading{display:flex;justify-content:space-between;align-items:start;border-bottom:3px solid var(--ink);padding-bottom:1rem}
.dialog-heading h2{font-family:Georgia,serif;font-size:2rem;margin:0}
.settings-dialog fieldset{border:0;border-bottom:1px solid var(--line);padding:1.2rem 0;display:grid;gap:.7rem}
.settings-dialog legend{font-weight:900;margin-bottom:.7rem}
.settings-dialog label{display:flex;gap:.65rem;align-items:center}
.settings-dialog input{accent-color:var(--teal);width:18px;height:18px}
.dialog-actions{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:flex-end;padding-top:1.3rem}
.progress-table{width:100%;border-collapse:collapse}
.progress-table th,.progress-table td{text-align:left;padding:.7rem .4rem;border-bottom:1px solid var(--line)}
.progress-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.empty-state{padding:2rem 0;line-height:1.5}

.site-footer{display:grid;grid-template-columns:1.1fr 1.3fr .8fr;gap:2rem;margin-top:4rem;padding:1.5rem clamp(1rem,4vw,4rem);border-top:1px solid var(--line);font-size:.78rem;color:var(--ink-2)}
.site-footer strong{display:block;color:var(--ink);margin-bottom:.35rem}
.site-footer p{margin:0;line-height:1.5}

@media (max-width:980px){
  .intro-grid,.game-layout{grid-template-columns:1fr}
  .game-layout{min-height:0}
  .passage-panel{border-right:0;border-bottom:1px solid var(--ink)}
  .mode-row{grid-template-columns:70px 1fr 90px}
  .mode-start{grid-column:2/4;width:100%}
  .method-note{grid-template-columns:1fr 1fr}
  .method-note h2{grid-column:1/-1}
  .summary-metrics{grid-template-columns:1fr 1fr}
  .summary-metrics div:nth-child(2){border-right:0}
  .summary-metrics div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}

@media (max-width:680px){
  .site-header{padding:.8rem 1rem}
  .brand-copy small{display:none}
  .header-actions{gap:0}
  .view{padding:1.2rem}
  .home-view{padding-top:2.4rem}
  h1{font-size:clamp(2.8rem,14vw,4.6rem)}
  .section-heading{grid-template-columns:1fr}
  .mode-row{grid-template-columns:52px 1fr}
  .mode-stat{grid-column:2}
  .mode-start{grid-column:2}
  .method-note{grid-template-columns:1fr}
  .game-header{grid-template-columns:1fr auto}
  .back-button{grid-column:1}
  .game-title-wrap{grid-column:1/3;grid-row:2;text-align:left}
  .game-status{grid-column:2;grid-row:1}
  .game-title-wrap h1{margin-left:0}
  .summary-metrics{grid-template-columns:1fr}
  .summary-metrics div{border-right:0!important;border-bottom:1px solid var(--line)}
  .diagnosis-grid{grid-template-columns:1fr}
  .timeline-row{grid-template-columns:40px 1fr 70px}
  .timeline-row .timeline-result{display:none}
  .site-footer{grid-template-columns:1fr}
}

/* v1.2 additions */
.inline-action{padding:.7rem .2rem;text-decoration:underline;text-underline-offset:4px}
.inline-action:hover{text-decoration-thickness:2px}
.review-strip{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2rem;
  align-items:center;
  margin:3rem 0 1rem;
  padding:1.4rem 0;
  border-top:3px solid var(--ink);
  border-bottom:1px solid var(--ink);
}
.review-strip h2{font-family:Georgia,serif;font-size:clamp(1.8rem,3.5vw,3.2rem);margin:0 0 .45rem;letter-spacing:-.035em}
.review-strip p{margin:0;color:var(--ink-2);line-height:1.45}
.review-strip .eyebrow{margin-bottom:.45rem;color:var(--accent-dark)}
.review-strip button:disabled{opacity:.45;cursor:not-allowed}
.daily-complete{background:var(--good)!important;border-color:var(--good)!important}

.passage-text.map-passage{counter-reset:paragraph}
.passage-text.map-passage p{
  position:relative;
  padding-left:3rem;
  border-bottom:1px solid var(--line);
  padding-bottom:1rem;
  margin-bottom:1rem;
}
.passage-text.map-passage p::before{
  counter-increment:paragraph;
  content:counter(paragraph);
  position:absolute;
  left:0;
  top:.15rem;
  width:2rem;
  height:2rem;
  display:grid;
  place-items:center;
  border:1px solid var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,sans-serif;
  font-size:.78rem;
  font-weight:900;
}
.passage-text.triage-scenario{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:1.08rem;line-height:1.65}
.passage-text.triage-scenario p{border-left:6px solid var(--accent);padding-left:1.2rem}

.progress-overview{display:grid;gap:1.4rem;padding:1.2rem 0}
.progress-summary-line{display:flex;flex-wrap:wrap;gap:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.progress-summary-line div{min-width:120px}
.progress-summary-line span{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-2)}
.progress-summary-line strong{display:block;font-family:Georgia,serif;font-size:1.7rem;margin-top:.25rem}
.skill-progress{display:grid;grid-template-columns:150px minmax(0,1fr) 68px 80px;gap:1rem;align-items:center;padding:.65rem 0;border-bottom:1px solid var(--line)}
.skill-progress strong{font-size:.93rem}
.skill-bar{height:11px;background:var(--paper-2);position:relative;overflow:hidden}
.skill-bar span{display:block;height:100%;background:var(--teal)}
.skill-progress.low .skill-bar span{background:var(--accent)}
.skill-progress .skill-value,.skill-progress .skill-target{font-variant-numeric:tabular-nums;text-align:right;font-size:.88rem}
.progress-section-title{font-family:Georgia,serif;font-size:1.35rem;margin:1rem 0 .2rem}

@media (max-width:680px){
  .primary-actions{align-items:stretch}
  .primary-actions .primary-button,.primary-actions .secondary-button{width:100%}
  .inline-action{width:max-content}
  .review-strip{grid-template-columns:1fr}
  .review-strip button{width:100%}
  .skill-progress{grid-template-columns:1fr 62px 72px}
  .skill-progress strong{grid-column:1/-1}
}

.answer-review{margin-top:3rem}
.answer-review h2{font-family:Georgia,serif;font-size:2.2rem;border-bottom:1px solid var(--ink);padding-bottom:.7rem}
.answer-review details{border-bottom:1px solid var(--line);padding:.8rem 0}
.answer-review summary{cursor:pointer;font-weight:900;display:grid;grid-template-columns:55px 170px minmax(0,1fr);gap:1rem;align-items:center}
.answer-review summary::marker{color:var(--accent)}
.answer-review .review-detail{padding:.8rem 0 .2rem 225px;line-height:1.5}
.answer-review .review-detail p{margin:.35rem 0}
.answer-review .review-detail strong{color:var(--ink)}
.answer-review .all-correct{margin:0;line-height:1.5;color:var(--good);font-weight:800}
@media (max-width:680px){
  .answer-review summary{grid-template-columns:42px 1fr}
  .answer-review summary span:last-child{grid-column:2}
  .answer-review .review-detail{padding-left:42px}
}

/* v1.3 coaching and logic layer */
.coach-strip{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2rem;
  align-items:center;
  margin:3rem 0 1rem;
  padding:1.5rem 0;
  border-top:7px solid var(--teal);
  border-bottom:1px solid var(--ink);
}
.coach-strip h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.8rem,3.5vw,3.2rem);
  line-height:1.05;
  letter-spacing:-.035em;
  margin:0 0 .55rem;
}
.coach-strip p{margin:0;color:var(--ink-2);line-height:1.5}
.coach-strip .eyebrow{margin-bottom:.45rem}

.coach-panel{
  margin:0 0 1rem;
  border-left:6px solid var(--teal);
  background:rgba(200,221,215,.45);
  padding:.9rem 1rem;
}
.coach-panel[hidden]{display:none}
.coach-cue span,.coach-result>span{
  display:block;
  margin-bottom:.3rem;
  color:var(--accent-dark);
  font-size:.68rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.coach-cue p,.coach-result p{margin:.25rem 0;line-height:1.45}
.coach-result strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.3rem;margin:.15rem 0 .45rem}
.coach-result .transfer-line{margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--line)}
.assisted-note{display:block;margin-top:.35rem;color:var(--warn);font-weight:800}
.question-actions-left{display:flex;flex-wrap:wrap;gap:.65rem}

.logic-dialog{width:min(920px,calc(100vw - 2rem))}
.logic-primer-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem;padding:1rem 0}
.logic-primer-grid article{padding:1rem 0;border-bottom:1px solid var(--line)}
.logic-primer-grid h3{font-family:Georgia,"Times New Roman",serif;font-size:1.3rem;margin:0 0 .35rem}
.logic-primer-grid p{margin:0;line-height:1.48;color:var(--ink-2)}
.logic-primer-grid code{display:inline-block;margin-top:.55rem;padding:.25rem .45rem;background:var(--paper);border:1px solid var(--line);font-size:.85rem}

.summary-metrics{grid-template-columns:repeat(5,1fr)}
.summary-metrics div:nth-child(4){border-right:1px solid var(--line)}

.pattern-list{display:grid;gap:.6rem;margin:1rem 0 0;padding:0;list-style:none}
.pattern-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
.pattern-list strong{font-size:.9rem}
.pattern-list span{font-variant-numeric:tabular-nums;color:var(--ink-2)}

@media (max-width:980px){
  .summary-metrics{grid-template-columns:repeat(2,1fr)}
  .summary-metrics div{border-bottom:1px solid var(--line)}
  .summary-metrics div:nth-child(even){border-right:0}
  .summary-metrics div:last-child{grid-column:1/-1;border-right:0}
}

@media (max-width:680px){
  .coach-strip{grid-template-columns:1fr}
  .coach-strip button{width:100%}
  .logic-primer-grid{grid-template-columns:1fr}
  .question-actions{align-items:flex-end}
  .question-actions-left{flex-direction:column;flex:1}
  .question-actions-left button{width:100%}
  .summary-metrics{grid-template-columns:1fr}
  .summary-metrics div:last-child{grid-column:auto}
}

body[data-question-mode="logic"] .game-layout{
  grid-template-columns:minmax(320px,.85fr) minmax(500px,1.15fr);
}
.passage-text.logic-case p{
  border-left:6px solid var(--accent);
  padding:1rem 0 1rem 1.2rem;
  font-size:1.2rem;
  line-height:1.65;
}
@media (max-width:980px){
  body[data-question-mode="logic"] .game-layout{grid-template-columns:1fr}
}

/* Reliability and update states, v1.3.1 */
.runtime-notice {
  margin-top: 0.9rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--bad);
  background: color-mix(in srgb, var(--bad) 9%, var(--paper));
  color: var(--ink);
  font-size: 0.92rem;
  line-height: 1.45;
}

.runtime-notice[hidden] {
  display: none;
}

.asset-error {
  width: min(760px, calc(100% - 2rem));
  margin: clamp(3rem, 10vh, 8rem) auto;
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--ink);
  background: var(--paper);
}

.asset-error h1 {
  max-width: 18ch;
  margin: 0.4rem 0 1rem;
}

.asset-error p {
  max-width: 62ch;
}

#nextButton[aria-busy="true"] {
  cursor: wait;
  opacity: 0.82;
}


/* v1.4 quantitative reasoning layer */
.quantitative-modes{
  margin-top:4rem;
  padding-top:1rem;
  border-top:8px solid var(--accent);
}
.quantitative-heading{
  grid-template-columns:180px minmax(0,1fr) auto;
  align-items:end;
}
.quantitative-heading .secondary-button{justify-self:end}
.quantitative-modes .mode-number{color:var(--accent-dark)}
.quantitative-modes .mode-row{border-bottom-color:rgba(169,71,39,.35)}
.quantitative-modes .mode-start{border-color:var(--accent-dark);color:var(--accent-dark)}
.quantitative-modes .mode-start:hover{background:var(--accent-dark);color:var(--white)}

.quant-strip{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2rem;
  align-items:center;
  margin:2rem 0 1rem;
  padding:1.5rem 0;
  border-top:7px solid var(--accent);
  border-bottom:1px solid var(--ink);
}
.quant-strip h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.8rem,3.5vw,3.2rem);
  line-height:1.05;
  letter-spacing:-.035em;
  margin:0 0 .55rem;
}
.quant-strip p{margin:0;color:var(--ink-2);line-height:1.5}
.quant-strip .eyebrow{margin-bottom:.45rem;color:var(--accent-dark)}

.passage-text.data-display{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:.98rem;
  line-height:1.45;
}
.data-title{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.55rem;
  font-weight:700;
  margin:0 0 .85rem;
}
.data-table-wrap{
  max-width:100%;
  overflow:auto;
  border:1px solid var(--ink);
  background:var(--white);
}
.data-table{
  width:100%;
  min-width:520px;
  border-collapse:collapse;
  font-variant-numeric:tabular-nums;
}
.data-table th,.data-table td{
  padding:.75rem .8rem;
  text-align:right;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  white-space:nowrap;
}
.data-table thead th{
  background:var(--ink);
  color:var(--white);
  font-size:.72rem;
  line-height:1.25;
  letter-spacing:.055em;
  text-transform:uppercase;
  vertical-align:bottom;
}
.data-table thead th:first-child,.data-table tbody th{text-align:left}
.data-table tbody th{
  background:rgba(230,216,191,.55);
  font-weight:800;
}
.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{border-bottom:0}
.data-table th:last-child,.data-table td:last-child{border-right:0}
.data-note{
  margin:.75rem 0 0!important;
  padding:.7rem .85rem;
  border-left:5px solid var(--accent);
  background:rgba(216,102,61,.08);
  color:var(--ink-2);
  font-size:.88rem;
}

.calculator-panel{
  margin:1rem 0 0;
  padding:1rem;
  border:1px solid var(--ink);
  background:var(--paper);
  width:min(310px,100%);
  margin-left:auto;
}
.calculator-panel[hidden]{display:none}
.calculator-panel label{
  display:block;
  margin-bottom:.35rem;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.calculator-display{
  width:100%;
  min-height:48px;
  padding:.55rem .7rem;
  border:2px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  text-align:right;
  font:700 1.3rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;
  font-variant-numeric:tabular-nums;
}
.calculator-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  margin-top:.5rem;
  background:var(--ink);
  border:1px solid var(--ink);
}
.calculator-key{
  min-height:43px;
  border:0;
  background:var(--white);
  color:var(--ink);
  font-weight:850;
  cursor:pointer;
}
.calculator-key:hover,.calculator-key:focus-visible{background:var(--teal-soft)}
.calculator-key.operator{background:var(--paper-2)}
.calculator-key.utility{background:#ead0c4}
.calculator-key.equals{background:var(--ink);color:var(--white)}
.calculator-key.wide{grid-column:span 2}

body[data-question-mode="table"] .panel-label,
body[data-question-mode="percentage"] .panel-label,
body[data-question-mode="reverse"] .panel-label,
body[data-question-mode="ratio"] .panel-label,
body[data-question-mode="dataTriage"] .panel-label,
body[data-question-mode="dataSprint"] .panel-label{
  color:var(--accent-dark);
}

@media (max-width:680px){
  .quantitative-heading{grid-template-columns:1fr;align-items:start}
  .quantitative-heading .secondary-button{justify-self:stretch;width:100%}
  .quant-strip{grid-template-columns:1fr}
  .quant-strip button{width:100%}
  .data-table{min-width:460px}
  .data-table th,.data-table td{padding:.62rem .65rem}
  .calculator-panel{width:100%}
}

/* Quantitative mobile containment */
.game-layout,.passage-panel,.question-panel,.passage-text{min-width:0}
.data-table-wrap{width:100%;max-width:100%}
@media (max-width:980px){
  .game-layout,body[data-question-mode="logic"] .game-layout{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:680px){
  .question-actions{flex-direction:column;align-items:stretch}
  .question-actions-left{width:100%;flex:0 0 auto}
  #nextButton{width:100%}
}

/* v1.5 Decision Making layer */
.decision-modes{
  margin-top:4rem;
  padding-top:1rem;
  border-top:8px solid var(--teal);
}
.decision-heading{
  grid-template-columns:180px minmax(0,1fr) auto;
  align-items:end;
}
.decision-heading .secondary-button{justify-self:end}
.decision-modes .mode-number{color:var(--teal)}
.decision-modes .mode-row{border-bottom-color:rgba(46,119,114,.38)}
.decision-modes .mode-start{border-color:var(--teal);color:var(--teal)}
.decision-modes .mode-start:hover{background:var(--teal);color:var(--white)}

.decision-strip{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2rem;
  align-items:center;
  margin:2rem 0 1rem;
  padding:1.5rem 0;
  border-top:7px solid var(--teal);
  border-bottom:1px solid var(--ink);
}
.decision-strip h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.8rem,3.5vw,3.2rem);
  line-height:1.05;
  letter-spacing:-.035em;
  margin:0 0 .55rem;
}
.decision-strip p{margin:0;color:var(--ink-2);line-height:1.5}
.decision-strip .eyebrow{margin-bottom:.45rem;color:var(--teal)}

body[data-question-mode="logicGrid"] .game-layout,
body[data-question-mode="syllogism"] .game-layout,
body[data-question-mode="venn"] .game-layout{
  grid-template-columns:minmax(420px,1fr) minmax(520px,1fr);
}

.grid-scenario,.argument-case p{
  border-left:6px solid var(--teal);
  padding:.85rem 0 .85rem 1rem;
  font-size:1.08rem;
  line-height:1.55;
}
.rule-list,.premise-list{margin:1rem 0 1.3rem;padding-left:1.6rem}
.rule-list li,.premise-list li{padding:.25rem 0;line-height:1.5}
.case-title{font-family:Georgia,"Times New Roman",serif;font-size:1.65rem;margin:0 0 .8rem}

.scratch-wrap{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--line)}
.scratch-title{font-family:Inter,ui-sans-serif,system-ui,sans-serif!important;font-size:.78rem!important;line-height:1.4!important;color:var(--ink-2);margin:0 0 .55rem!important}
.scratch-scroll{max-width:100%;overflow:auto}
.scratch-grid{border-collapse:collapse;min-width:390px;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.82rem}
.scratch-grid th,.scratch-grid td{border:1px solid var(--line);text-align:center;padding:.22rem}
.scratch-grid thead th,.scratch-grid tbody th{background:var(--paper);font-weight:850}
.scratch-cell{width:40px;height:36px;border:0;background:var(--white);font-weight:950;font-size:1.15rem;color:var(--ink)}
.scratch-cell:hover{background:var(--teal-soft)}
.scratch-cell[data-state="excluded"]{color:var(--bad);background:#f2d5cf}
.scratch-cell[data-state="possible"]{color:var(--good);background:#d6eadf}

.statement-row{margin:0;padding:.85rem;border:1px solid var(--line);background:transparent}
.statement-row+ .statement-row{margin-top:.65rem}
.statement-row legend{display:flex;gap:.65rem;align-items:flex-start;padding:0 .25rem;font-weight:800;line-height:1.35}
.statement-row legend span{display:grid;place-items:center;min-width:25px;height:25px;border:1px solid var(--line);font-variant-numeric:tabular-nums}
.statement-choices{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.65rem}
.statement-choice{min-height:42px;border:1px solid var(--ink);background:var(--white);font-weight:900;color:var(--ink)}
.statement-choice:hover{background:var(--paper)}
.statement-choice.selected{background:var(--ink);color:var(--white)}
.statement-choice.correct{background:#d6eadf;color:var(--ink);border-color:var(--good)}
.statement-choice.wrong{background:#f2d5cf;color:var(--ink);border-color:var(--bad)}
.statement-feedback{margin:.65rem 0 0;padding-top:.55rem;border-top:1px solid var(--line);font-size:.87rem;line-height:1.4}
.statement-correct{border-color:var(--good)}
.statement-wrong{border-color:var(--bad)}

.venn-figure{margin:0;max-width:720px}
.venn-figure figcaption{font-family:Georgia,"Times New Roman",serif;font-size:1.55rem;font-weight:700;margin-bottom:.6rem}
.venn-figure svg{display:block;width:100%;height:auto;background:var(--white)}
.venn-universe{fill:#fffdf8;stroke:var(--ink);stroke-width:2}
.venn-circle{fill-opacity:.18;stroke-width:3}
.venn-a{fill:#d8663d;stroke:#a94727}
.venn-b{fill:#2e7772;stroke:#1f5b57}
.venn-c{fill:#d0a73e;stroke:#936719}
.venn-label{font:800 18px Inter,system-ui,sans-serif;fill:var(--ink)}
.venn-count{font:900 25px Inter,system-ui,sans-serif;fill:var(--ink);text-anchor:middle}
.venn-count.central{font-size:28px}
.venn-neither{font:800 17px Inter,system-ui,sans-serif;fill:var(--ink-2)}

body[data-question-mode="logicGrid"] .panel-label,
body[data-question-mode="syllogism"] .panel-label,
body[data-question-mode="venn"] .panel-label,
body[data-question-mode="probability"] .panel-label,
body[data-question-mode="argument"] .panel-label{color:var(--teal)}

@media (max-width:980px){
  body[data-question-mode="logicGrid"] .game-layout,
  body[data-question-mode="syllogism"] .game-layout,
  body[data-question-mode="venn"] .game-layout{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:680px){
  .decision-heading{grid-template-columns:1fr;align-items:start}
  .decision-heading .secondary-button{justify-self:stretch;width:100%}
  .decision-strip{grid-template-columns:1fr}
  .decision-strip button{width:100%}
  .statement-row{padding:.7rem}
  .venn-label{font-size:16px}
  .venn-count{font-size:22px}
}

/* v1.5.3 flag and review */
.exam-navigation[hidden]{display:none!important}
.question-actions-left{display:flex;flex-wrap:wrap;gap:.55rem}
.flagged{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}
.answer-button.selected,.statement-choice.selected{outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.review-view{max-width:1120px;margin:0 auto;padding:clamp(1.2rem,3vw,3rem)}
.review-heading{max-width:760px;margin-bottom:1.4rem}
.review-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:1.4rem 0 1rem}
.review-counts div{padding:1rem;border-right:1px solid var(--line)}
.review-counts div:last-child{border-right:0}.review-counts span{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.review-counts strong{font-size:1.5rem}
.review-filters{display:flex;gap:.55rem;flex-wrap:wrap;margin:1rem 0}.review-filters .active{background:var(--ink);color:var(--paper)}
.review-question-grid,.navigator-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:.6rem;margin:1.2rem 0}
.review-question,.navigator-question{min-height:58px;border:1px solid var(--line);background:var(--surface);font-weight:800;position:relative}
.review-question[data-state~="answered"],.navigator-question[data-state~="answered"]{box-shadow:inset 0 -5px 0 var(--good)}
.review-question[data-state~="incomplete"],.navigator-question[data-state~="incomplete"]{box-shadow:inset 0 -5px 0 var(--bad)}
.review-question[data-state~="flagged"],.navigator-question[data-state~="flagged"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}
.review-question[data-state~="flagged"]::after,.navigator-question[data-state~="flagged"]::after{content:'⚑';position:absolute;right:.3rem;top:.15rem;color:var(--accent)}
.review-question[data-state~="current"],.navigator-question[data-state~="current"]{outline:3px solid var(--ink)}
.review-actions{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem}.review-note{font-size:.9rem;color:var(--muted)}
.navigator-dialog{width:min(720px,calc(100% - 2rem))}.navigator-legend{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem}.navigator-legend span::before{content:'';display:inline-block;width:.7rem;height:.7rem;margin-right:.35rem;background:var(--line)}.navigator-legend [data-state="answered"]::before{background:var(--good)}.navigator-legend [data-state="flagged"]::before{background:var(--accent)}.navigator-legend [data-state="incomplete"]::before{background:var(--bad)}.navigator-legend [data-state="current"]::before{background:var(--ink)}
body.review-active .site-header,body.review-active .site-footer{display:none}
@media(max-width:700px){.review-counts{grid-template-columns:repeat(2,1fr)}.review-counts div:nth-child(2){border-right:0}.review-actions{flex-direction:column-reverse}.question-actions{align-items:stretch}.question-actions-left{width:100%}.question-actions-left button{flex:1 1 auto}}
