
/* A shared visual language for these two bounded fraction experiences. */
:root{--paper:#fffdf8;--ink:#173c42;--navy:#173c42;--cyan:#0b716d;--cyan2:#0b716d;--warm:#e9ab51;--shadow:0 8px 30px #193c420a}
body{background:#f3f1e9;color:#173c42;font-family:Arial,Helvetica,sans-serif}
.shell{max-width:1200px}.mast,.top{border-color:#bbcaca}.mast h1 span,.top h1 span,.nav a,.tagline,.purpose summary,.purpose p,.footer,.about,.privacy,.teacher-info,.teacher-info a{color:#335d60}
h1,h2{letter-spacing:-.035em}.mast h1{font-weight:normal;font-size:clamp(2rem,4vw,3.3rem)}
.control-zone,.workspace,.scene,.stage{border:1px solid #bdcfcb;border-radius:14px;background:#fffdf8;box-shadow:var(--shadow)}
.control-zone{border-top:3px solid #0b716d}.purpose details{border-color:#a5c7c1}.nav a{text-underline-offset:4px}
.btn,.header-action{background:#0b716d;color:white;border-color:#0b716d;border-radius:7px;min-height:44px}.btn:hover,.btn:focus{background:#075954;color:white}.btn.ghost{background:#fff;color:#173c42}
.tab{color:#335d60;border-radius:6px 6px 0 0;min-height:44px}.tab[aria-selected=true],.tab[aria-current=step]{color:#173c42;background:#e2eeea;border-color:#0b716d}
.view-tabs{border-color:#a6c6c0}.model-brief{display:flex;gap:14px 28px;flex-wrap:wrap;border-bottom:1px solid #cbd7d0;padding:0 0 15px;margin-bottom:20px;font-size:.9rem}.model-brief span{display:flex;flex-direction:column;gap:3px}.model-brief b{font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:#54716f}
.viz,.board-viewport{background:#f0f6f2;border:1px solid #bfd3cb;border-radius:8px}.model-description{font-size:.92rem;line-height:1.55;color:#385b5c;max-width:72ch;margin:12px 0 20px}
.predict{border-left:4px solid #d59a36;background:#fff5df;border-radius:0 8px 8px 0}.choice{border-radius:7px;min-height:44px}.choice[aria-pressed=true]{background:#173c42;border-color:#173c42}.teacher-note{border-top-color:#abcfc7;border-radius:6px}
.relationship{background:#eaf3ed;border-color:#96bcb0;border-radius:8px}.relationship strong{color:#173c42}.frame{color:#234f50}.status{color:#235a56}
#applyCustom{margin-top:12px}#customError{color:#9c321d;font-weight:bold}.controls input,.controls select{min-height:44px}
:focus-visible{outline:3px solid #ad6716!important;outline-offset:4px!important}
body.present,body.projector{background:#f3f1e9}.board-tools{background:#edf3ed}.board-tools p{color:#335d60}.tool{min-height:44px}.tool[aria-pressed=true]{background:#173c42;color:white}
@media(max-width:720px){.model-brief{gap:12px 22px}.workspace{padding:18px 14px}.viz{padding:12px 2px}.viz svg{min-width:640px}.nav{gap:10px}.control-zone .button-row{flex-wrap:wrap}.control-zone .btn{white-space:normal;flex:1 1 40%}.mast h1{font-size:2.4rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{body .shell{display:none!important}body #printTaskView,body #printSheet{display:block!important;background:white;color:black}#exitPresent{display:none!important}}

/* Independent review: light-surface contrast and Present-mode print specificity. */
.top p,.top .eyebrow,.about summary{color:#365f59}.control-zone .preset[aria-pressed=true]{color:white;background:#0b716d}.annotation .tool[aria-pressed=true]{background:#173c42;color:white}.top .btn.ghost{color:#173c42;background:#fffdf8}.tab:hover,.tab:focus{color:#173c42;background:#e2eeea}[hidden]{display:none!important}
@media print{body.present>#printTaskView{display:block!important}body.present .shell,body.projector .shell{display:none!important}}

html{scrollbar-gutter:stable}
@media print{body{background:#fff!important;color:#111!important}}
