


  :root {
    color-scheme: dark;

    --font-sans: "Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    --font-data: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;

    --ink-950: #050c0f;
    --ink-900: #071216;
    --ink-850: #0a171c;
    --ink-800: #0e1e24;
    --ink-700: #17313a;
    --ink-600: #254650;
    --paper-50: #f5f6f1;
    --paper-100: #e8ece6;
    --paper-200: #d4dbd5;
    --paper-700: #44535a;
    --paper-850: #1a272c;
    --cyan-300: #90e8f1;
    --cyan-400: #69d9e7;
    --cyan-500: #31bcd0;
    --cyan-700: #137d8d;
    --cyan-800: #0b6472;
    --amber-300: #f4cb82;
    --amber-500: #dba44b;
    --amber-700: #76500f;
    --red-300: #f2aaa3;
    --red-500: #d85f57;
    --red-700: #9b3934;
    --green-300: #9addbf;
    --green-500: #48ae7b;
    --green-700: #236a4b;

    --surface-canvas: var(--ink-950);
    --surface-primary: var(--ink-900);
    --surface-raised: var(--ink-850);
    --surface-strong: var(--ink-800);
    --surface-paper: var(--paper-50);
    --surface-paper-muted: var(--paper-100);
    --text-primary: #eff5f3;
    --text-secondary: #a8b8bc;
    --text-muted: #789097;
    --text-paper: #102128;
    --text-paper-muted: var(--paper-700);
    --border-subtle: rgb(144 232 241 / 0.14);
    --border-medium: rgb(144 232 241 / 0.28);
    --focus: var(--cyan-300);
    --action: var(--cyan-400);
    --action-hover: var(--cyan-300);
    --action-ink: var(--ink-950);
    --header-background: rgb(5 12 15 / 0.88);
    --control-background: rgb(255 255 255 / 0.035);
    --control-background-hover: rgb(105 217 231 / 0.08);
    --control-background-active: rgb(105 217 231 / 0.14);

    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.25rem;
    --space-6: 1.5rem;
    --space-7: 1.75rem;
    --space-8: 2rem;
    --space-9: 2.25rem;
    --space-10: 2.5rem;
    --space-12: 3rem;
    --space-16: 4rem;
    --space-20: 5rem;
    --space-24: 6rem;
    --space-28: 7rem;

    --radius-sm: 0.4rem;
    --radius-md: 0.75rem;
    --radius-lg: 1.1rem;
    --radius-xl: 1.5rem;
    --radius-pill: 999px;

    --shadow-sm: 0 1px 0 rgb(255 255 255 / 0.04), 0 10px 28px rgb(0 0 0 / 0.18);
    --shadow-lg: 0 24px 80px rgb(0 0 0 / 0.32);

    --content-wide: 80rem;
    --content-reading: 68ch;
    --content-narrative: 60ch;
    --header-height: 4.75rem;

    --text-ui-min: 0.8125rem;
    --text-identifier-min: 0.75rem;
    --step--1: clamp(0.8125rem, 0.79rem + 0.12vw, 0.875rem);
    --step-0: clamp(1rem, 0.96rem + 0.18vw, 1.125rem);
    --step-1: clamp(1.125rem, 1.02rem + 0.45vw, 1.375rem);
    --step-2: clamp(1.35rem, 1.16rem + 0.8vw, 1.8rem);
    --step-3: clamp(1.7rem, 1.34rem + 1.45vw, 2.5rem);
    --step-4: clamp(2.2rem, 1.62rem + 2.4vw, 3.65rem);
    --step-5: clamp(2.75rem, 1.85rem + 3.7vw, 5rem);

    --ease-standard: cubic-bezier(0.2, 0, 0, 1);
    --duration-fast: 140ms;
    --duration-medium: 210ms;
  }

  /*
   * System preference is the no-script baseline. JavaScript only adds
   * data-theme for an explicit, persisted override.
   */
  @media (prefers-color-scheme: light) {
    :root:not([data-theme]) {
      color-scheme: light;

      --surface-canvas: #f4f7f4;
      --surface-primary: #ffffff;
      --surface-raised: #ffffff;
      --surface-strong: #e5ece8;
      --surface-paper: #ffffff;
      --surface-paper-muted: #edf2ee;
      --text-primary: #102128;
      --text-secondary: #42575f;
      --text-muted: #5d7178;
      --text-paper: #102128;
      --text-paper-muted: #44535a;
      --cyan-300: #0b6472;
      --green-300: #236a4b;
      --amber-300: #76500f;
      --red-300: #9b3934;
      --border-subtle: rgb(16 33 40 / 0.14);
      --border-medium: rgb(16 33 40 / 0.26);
      --focus: var(--cyan-800);
      --action: var(--cyan-800);
      --action-hover: #084f5b;
      --action-ink: #ffffff;
      --header-background: rgb(244 247 244 / 0.9);
      --control-background: rgb(16 33 40 / 0.035);
      --control-background-hover: rgb(11 100 114 / 0.08);
      --control-background-active: rgb(11 100 114 / 0.13);
      --shadow-sm: 0 1px 0 rgb(255 255 255 / 0.72), 0 10px 28px rgb(16 33 40 / 0.1);
      --shadow-lg: 0 24px 80px rgb(16 33 40 / 0.18);
    }
  }

  :root[data-theme="dark"] {
    color-scheme: dark;
  }

  :root[data-theme="light"] {
    color-scheme: light;

    --surface-canvas: #f4f7f4;
    --surface-primary: #ffffff;
    --surface-raised: #ffffff;
    --surface-strong: #e5ece8;
    --surface-paper: #ffffff;
    --surface-paper-muted: #edf2ee;
    --text-primary: #102128;
    --text-secondary: #42575f;
    --text-muted: #5d7178;
    --text-paper: #102128;
    --text-paper-muted: #44535a;
    --cyan-300: #0b6472;
    --green-300: #236a4b;
    --amber-300: #76500f;
    --red-300: #9b3934;
    --border-subtle: rgb(16 33 40 / 0.14);
    --border-medium: rgb(16 33 40 / 0.26);
    --focus: var(--cyan-800);
    --action: var(--cyan-800);
    --action-hover: #084f5b;
    --action-ink: #ffffff;
    --header-background: rgb(244 247 244 / 0.9);
    --control-background: rgb(16 33 40 / 0.035);
    --control-background-hover: rgb(11 100 114 / 0.08);
    --control-background-active: rgb(11 100 114 / 0.13);
    --shadow-sm: 0 1px 0 rgb(255 255 255 / 0.72), 0 10px 28px rgb(16 33 40 / 0.1);
    --shadow-lg: 0 24px 80px rgb(16 33 40 / 0.18);
  }

  @media (forced-colors: active) {
    :root {
      --border-subtle: CanvasText;
      --border-medium: CanvasText;
      --focus: Highlight;
      --action: LinkText;
      --action-hover: LinkText;
      --header-background: Canvas;
      --control-background: Canvas;
      --control-background-hover: Canvas;
      --control-background-active: Canvas;
      --shadow-sm: none;
      --shadow-lg: none;
    }
  }


/* SubjectNest uses the same appearance preference and semantic palette as NeuroForge. */
:root{--ink:var(--text-primary);--muted:var(--text-secondary);--paper:var(--surface-canvas);--white:var(--surface-primary);--green:var(--action);--green-dark:var(--action);--green-pale:var(--control-background-active);--line:var(--border-subtle);--copper:var(--amber-300);--copper-pale:var(--surface-strong);--serif:var(--font-sans);--sans:var(--font-sans)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.55}button,input,textarea,select{font:inherit;min-height:44px}button,a,summary,select{-webkit-tap-highlight-color:transparent}a{color:inherit}.skip-link{position:absolute;left:1rem;top:-5rem;padding:.65rem 1rem;background:var(--action);color:var(--action-ink);z-index:30}.skip-link:focus{top:1rem}.topbar{max-width:1440px;height:86px;margin:auto;padding:0 6.2%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle)}.brand{text-decoration:none;display:flex;align-items:center;gap:.7rem}.brand-mark{width:42px;color:var(--green)}.brand-words{display:grid;line-height:1.1}.brand-words strong{font-family:var(--serif);font-weight:600;font-size:1.37rem;letter-spacing:-.035em}.brand-words small{margin-top:.3rem;color:var(--muted);font-size:.67rem;letter-spacing:.08em;text-transform:uppercase}.brand-words small span{color:var(--text-secondary);letter-spacing:.015em;text-transform:none}.topbar-right{display:flex;align-items:center;gap:1.25rem}.primary-nav{display:flex;align-items:center;gap:1rem;white-space:nowrap;font-size:.76rem}.primary-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--text-secondary);text-decoration:none;text-underline-offset:4px}.primary-nav a:hover,.primary-nav a:focus-visible{text-decoration:underline}.framework-chip{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary);font-size:.77rem;border:1px solid var(--border-subtle);border-radius:99px;padding:.55rem .85rem;background:var(--control-background)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--control-background-active)}.quiet-button,.text-button{min-height:44px;color:var(--green-dark);border:0;background:transparent;cursor:pointer;font-size:.83rem}.quiet-button:hover,.text-button:hover{text-decoration:underline}main{overflow:hidden}.hero{max-width:1440px;margin:0 auto;padding:87px 8.4% 81px;display:grid;grid-template-columns:.94fr 1.06fr;gap:5%;align-items:center;min-height:530px}.eyebrow{display:flex;align-items:center;gap:.8rem;color:var(--green);font-size:.67rem;letter-spacing:.17em;font-weight:750;margin:0 0 1.2rem}.eyebrow i{display:block;width:3px;height:3px;background:var(--amber-300);border-radius:50%}.hero h1,.workspace h2,.future-strip h2,.about-dialog h2{font-family:var(--serif);letter-spacing:-.045em;font-weight:500}.hero h1{font-size:clamp(3rem,5vw,5rem);line-height:1.03;margin:0}.hero h1 em{color:var(--green);font-weight:400}.hero-intro{color:var(--text-secondary);max-width:490px;font-size:1.02rem;margin:1.5rem 0 1.75rem}.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;border-radius:7px;padding:.82rem 1.05rem;cursor:pointer;font-size:.82rem;font-weight:650;transition:background-color .15s ease,transform .15s ease}.button:focus-visible,.quiet-button:focus-visible,.text-button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,.role-tab:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.button:hover{transform:translateY(-1px)}.button-primary{color:var(--action-ink);background:var(--green-dark);border:1px solid var(--green-dark)}.button-primary:hover{background:var(--action-hover)}.button-secondary{color:var(--green-dark);background:transparent;border:1px solid var(--border-subtle)}.button-secondary:hover{background:var(--surface-strong)}.hero-note{display:flex;gap:.5rem;align-items:flex-start;color:var(--muted);font-size:.75rem;margin:1.5rem 0 0;max-width:430px}.note-mark{color:var(--copper);font-size:1rem;line-height:1.2}.hero-art{min-height:337px;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-content:center;padding:1.5rem;border-radius:11px;background:var(--surface-raised);overflow:hidden}.art-grid{position:absolute;inset:0;opacity:.23;background-image:linear-gradient(to right,transparent 95%,var(--border-medium) 96%),linear-gradient(to bottom,transparent 95%,var(--border-medium) 96%);background-size:34px 34px;mask-image:linear-gradient(135deg,black 10%,transparent 85%)}.art-flow{position:absolute;inset:30px 0 0;width:100%;height:82%}.art-card{z-index:1;display:grid;align-content:start;padding:.82rem .95rem;background:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:0 8px 28px rgb(0 0 0 / .08)}.art-card strong{font-family:var(--serif);font-size:1rem;font-weight:600}.art-card span:last-child{color:var(--muted);font-size:.68rem;margin-top:.14rem}.mini-label{display:block;font-size:.57rem;letter-spacing:.15em;color:var(--text-secondary);font-weight:750}.art-card-source{grid-column:1 / -1;justify-self:end;width:min(220px,100%)}.art-card-source strong{color:var(--green-dark);font-size:.95rem;font-family:var(--sans);margin-top:.2rem}.step-number{color:var(--green);font-family:var(--serif);font-size:1.05rem}.step-copper{color:var(--amber-300)}.art-caption{position:relative;grid-column:1 / -1;text-align:right;color:var(--text-secondary);font-family:var(--serif);font-style:italic;font-size:.9rem}.workspace{background:var(--surface-primary);padding:70px max(6.5%,calc((100vw - 1220px)/2)) 78px}.workspace-heading{display:flex;justify-content:space-between;gap:2rem;align-items:flex-end;max-width:1220px;margin:0 auto 26px}.eyebrow-muted{color:var(--muted)}.workspace h2{font-size:clamp(2rem,3.1vw,2.9rem);line-height:1.1;margin:0}.role-switch{display:flex;padding:4px;background:var(--surface-raised);border-radius:8px;gap:2px}.role-tab{min-height:44px;padding:.58rem 1.2rem;color:var(--text-secondary);border:0;border-radius:6px;background:transparent;cursor:pointer;font-size:.79rem}.role-tab.active{background:var(--white);color:var(--green-dark);box-shadow:0 1px 4px rgb(0 0 0 / .12);font-weight:700}.demo-panel{max-width:1220px;margin:auto;min-height:670px;display:grid;grid-template-columns:285px 1fr;border:1px solid var(--border-subtle);border-radius:11px;overflow:hidden;background:var(--white);box-shadow:0 15px 50px rgb(0 0 0 / .08)}[hidden]{display:none!important}.demo-rail{padding:28px 23px;display:flex;flex-direction:column;background:var(--surface-raised);border-right:1px solid var(--border-subtle)}.rail-label{color:var(--text-secondary);font-size:.6rem;font-weight:750;letter-spacing:.15em}.rail-title{font-family:var(--serif);font-size:1.33rem;line-height:1.22;margin:.6rem 0 1.5rem}.path-list{list-style:none;padding:0;margin:0;display:grid;gap:1.05rem}.path-list li{display:grid;grid-template-columns:25px 1fr;gap:.75rem;align-items:start;color:var(--text-secondary)}.path-list li>span{display:grid;width:24px;height:24px;place-items:center;border:1px solid var(--border-subtle);border-radius:50%;font-size:.65rem}.path-list li.current>span{color:var(--action-ink);background:var(--green);border-color:var(--green)}.path-list li strong,.path-list li small{display:block}.path-list li strong{color:var(--text-secondary);font-size:.77rem;font-weight:600}.path-list li.current strong{color:var(--ink)}.path-list li small{margin-top:.18rem;font-size:.65rem;color:var(--text-secondary)}.rail-footer{margin-top:auto;padding-top:1.3rem;border-top:1px solid var(--border-subtle);color:var(--text-secondary);font-size:.66rem}.tiny-lock{color:var(--green);margin-right:.25rem}.lesson-content{padding:37px clamp(25px,4vw,55px);max-width:920px}.lesson-meta{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;color:var(--text-secondary);font-size:.58rem;letter-spacing:.13em;font-weight:700}.subject-tag{background:var(--control-background-active);color:var(--green-dark);border-radius:4px;padding:.32rem .46rem}.meta-divider{color:var(--amber-300)}.lesson-content h3{margin:1.2rem 0 .55rem;font-family:var(--serif);font-weight:500;letter-spacing:-.03em;font-size:clamp(1.75rem,3vw,2.35rem);line-height:1.13}.lesson-lead{max-width:675px;color:var(--text-secondary);font-size:.94rem;margin:0 0 1.3rem}.lesson-lead strong{color:var(--ink)}.brief-card{display:flex;gap:.8rem;align-items:flex-start;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:7px;padding:.88rem 1rem}.brief-icon{display:grid;flex:0 0 26px;height:26px;place-items:center;color:var(--amber-300);background:var(--copper-pale);border-radius:50%}.brief-card p{color:var(--text-secondary);font-size:.79rem;margin:.25rem 0 0}.mode-note{margin:.55rem 0 0;color:var(--text-secondary);font-size:.66rem}.algorithm-area{margin-top:1.4rem}.algorithm-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:.45rem}.algorithm-head strong{display:block;margin-top:.12rem;font-size:.88rem}.select-label{color:var(--text-secondary);font-size:.68rem}.algorithm-select,.compact-select,.builder-form input,.builder-form textarea,.builder-form select{display:block;color:var(--ink);background:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:5px}.algorithm-select{width:100%;padding:.57rem .7rem;font-size:.78rem}.code-card{white-space:pre-wrap;margin:.65rem 0 0;padding:.72rem .9rem;color:#eff5f3;background:var(--ink-800);border-radius:6px;font-family:"SFMono-Regular",Consolas,monospace;font-size:.73rem;line-height:1.6}.prediction-row{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;margin-top:1.25rem}.prediction-row label{font-size:.72rem;color:var(--text-secondary)}.prediction-row label strong{color:var(--ink)}.compact-select{min-width:170px;padding:.5rem .6rem;font-size:.69rem}.button-row{display:flex;gap:.95rem;align-items:center;margin-top:1rem}.button-row .button{padding:.68rem .9rem;font-size:.75rem}.text-button{padding:.4rem 0;font-size:.73rem}.test-results{margin-top:1.2rem;padding:1rem;border:1px solid var(--border-subtle);border-radius:7px;background:var(--surface-raised);overflow-x:auto}.result-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.7rem}.result-head strong{font-family:var(--serif);font-size:1.05rem;font-weight:600}.result-summary{color:var(--text-secondary);font-size:.7rem}.test-table{width:100%;border-collapse:collapse;font-size:.68rem}.test-table th,.test-table td{padding:.4rem .45rem;border-top:1px solid var(--border-subtle);text-align:left}.test-table th{color:var(--text-secondary);font-weight:650}.test-table .pass{color:var(--green-300);font-weight:700}.test-table .fail{color:var(--red-300);font-weight:700}.test-table tr.row-mismatch td:first-child{border-left:4px solid var(--copper);font-weight:750}.test-table tr.row-mismatch{background:var(--surface-strong)}.prediction-feedback{margin:.7rem 0 0;color:var(--text-secondary);font-size:.7rem}.reflection-card{margin-top:.75rem;padding:.65rem .75rem;background:var(--surface-raised);border-radius:5px}.reflection-card p{color:var(--text-secondary);font-size:.7rem;margin:.2rem 0 0}.reflection-answer-label{display:block;margin-top:.65rem;color:var(--text-secondary);font-size:.7rem;font-weight:700}.reflection-answer{display:block;width:100%;min-height:4.2rem;margin-top:.35rem;padding:.55rem .65rem;color:var(--ink);background:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:5px;font:inherit;font-size:.78rem;resize:vertical}.reflection-privacy{display:block;margin-top:.3rem;color:var(--text-secondary);font-size:.66rem}.source-detail{margin-top:1.35rem;border-top:1px solid var(--border-subtle);padding-top:.8rem}.source-detail summary{list-style:none;cursor:pointer;color:var(--text-secondary);font-size:.75rem;font-weight:680}.source-detail summary::-webkit-details-marker{display:none}.source-detail summary::after{content:"+";float:right;color:var(--green);font-size:1rem;line-height:.9}.source-detail[open] summary::after{content:"\2212"}.source-dot{display:inline-block;width:7px;height:7px;margin:0 .4rem .05rem 0;background:var(--copper);border-radius:50%}.source-content{padding-top:.8rem;display:grid;gap:.65rem}.source-outcome{padding:.7rem .75rem;background:var(--surface-raised);border-left:2px solid var(--action)}.source-outcome strong{display:block;color:var(--green-dark);font-size:.72rem}.source-outcome p{margin:.2rem 0 0;color:var(--text-secondary);font-size:.69rem}.source-outcome a,.source-meta a{color:var(--action);text-underline-offset:3px}.source-meta{color:var(--text-secondary);font-size:.66rem;line-height:1.6}.attribution-copy{padding:.65rem .7rem;background:var(--surface-raised);border-radius:5px}.educator-panel{min-height:735px}.teacher-rail{gap:.75rem}.teacher-rail .rail-title{margin-bottom:.25rem}.teacher-rail-card{padding:.72rem .75rem;background:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:6px}.teacher-rail-card strong,.teacher-rail-card small{display:block}.teacher-rail-card strong{margin-top:.18rem;font-size:.75rem}.teacher-rail-card small{margin-top:.1rem;color:var(--text-secondary);font-size:.65rem}.educator-content{max-width:1020px}.builder-grid{display:grid;grid-template-columns:minmax(260px,.87fr) minmax(310px,1.13fr);gap:1.15rem;margin-top:1.35rem;align-items:start}.builder-form{display:grid;gap:.47rem}.builder-form label{margin-top:.36rem;color:var(--text-secondary);font-size:.7rem;font-weight:700}.builder-form input,.builder-form textarea,.builder-form select{width:100%;padding:.58rem .65rem;font-size:.73rem;resize:vertical}.builder-form textarea{line-height:1.5}.builder-form .mode-note{margin:.15rem 0 .4rem;font-size:.8rem;line-height:1.5}.builder-actions{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin-top:.5rem}.builder-actions .button{font-size:.72rem;padding:.67rem .8rem}.save-status{color:var(--text-secondary);font-size:.64rem}.mapping-card{padding:.9rem;background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:7px}.mapping-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.review-pill{border-radius:99px;border:1px solid var(--border-subtle);padding:.18rem .4rem;color:var(--text-secondary);background:var(--surface-strong);font-size:.54rem;font-weight:700;letter-spacing:.08em}.mapping-explainer{color:var(--text-secondary);font-size:.68rem;line-height:1.5}.outcome-list{display:grid;gap:.5rem}.outcome-card{padding:.65rem .7rem;background:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:5px}.outcome-card strong{display:block;color:var(--green-dark);font-size:.66rem}.outcome-card p{margin:.25rem 0 0;color:var(--text-secondary);font-size:.65rem;line-height:1.45}.achievement-box{margin-top:.65rem;padding:.7rem;border-radius:5px;background:var(--surface-raised)}.achievement-box p{margin:.3rem 0 0;color:var(--text-secondary);font-size:.65rem;line-height:1.5}.source-detail-compact{margin-top:.7rem;padding-top:.65rem}.contribution-note{margin-top:1.25rem;display:flex;gap:.7rem;padding:.75rem .85rem;background:var(--surface-strong);border:1px solid var(--border-subtle);border-radius:6px}.contribution-icon{color:var(--amber-300)}.contribution-note p{margin:0;color:var(--text-secondary);font-size:.67rem}.contribution-note strong{color:var(--text-secondary)}.principles{max-width:1220px;margin:auto;padding:71px 0 78px;display:grid;grid-template-columns:repeat(3,1fr);gap:3rem}.principles article{padding-top:1.05rem;border-top:1px solid var(--border-subtle)}.principle-icon{color:var(--amber-300);font-family:var(--serif);font-size:.85rem}.principles h3{margin:.75rem 0 .35rem;font-family:var(--serif);font-size:1.25rem;font-weight:500}.principles .rail-title{margin:.75rem 0 .5rem}.principles p{max-width:330px;color:var(--text-secondary);font-size:.925rem;margin:0}.future-strip{max-width:1220px;margin:0 auto 76px;padding:34px 38px;display:grid;grid-template-columns:1.1fr 1.25fr auto;gap:2rem;align-items:center;background:var(--surface-strong);border-radius:9px}.future-strip .eyebrow{font-size:.58rem;margin-bottom:.6rem}.future-strip h2{max-width:355px;font-size:1.85rem;line-height:1.12;margin:0}.future-strip>p{color:var(--text-secondary);font-size:.76rem;margin:0}.future-strip>a{white-space:nowrap;color:var(--green-dark);font-size:.72rem;text-underline-offset:4px}.footer{min-height:79px;border-top:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 6.2%;color:var(--text-secondary);font-size:.65rem}.footer a{color:var(--text-secondary);text-underline-offset:3px}.footer-brand{text-decoration:none;color:var(--ink)!important;font-family:var(--serif);font-size:.97rem}.footer-brand span{color:var(--text-secondary);font:.6rem var(--sans);margin-left:.25rem}.about-dialog{width:min(520px,calc(100vw - 2rem));color:var(--ink);border:1px solid var(--border-subtle);border-radius:9px;padding:2rem;background:var(--surface-primary);box-shadow:0 20px 90px #10251d35}.about-dialog::backdrop{background:#12251ec2;backdrop-filter:blur(3px)}.about-dialog h2{font-size:2.15rem;line-height:1.07;margin:.3rem 0 1rem}.about-dialog p:not(.eyebrow){color:var(--text-secondary);font-size:.84rem}.dialog-close{position:absolute;right:1rem;top:.8rem;min-width:44px;min-height:44px;border:0;background:transparent;font-size:1.6rem;color:var(--text-secondary);cursor:pointer}.about-dialog .button{margin-top:.55rem}@media(max-width:1200px){.hero-art{min-height:0;grid-template-columns:1fr;gap:.7rem;padding:1rem}.builder-grid{grid-template-columns:minmax(0,1fr)}.art-flow{display:none}.art-card-step{grid-template-columns:1.5rem 1fr;column-gap:.55rem;padding:.6rem .75rem}.step-number{grid-row:span 2}.art-card-step span:last-child{grid-column:2}}@media(max-width:980px){.topbar{padding:0 4%}.hero{padding-left:6%;padding-right:6%;gap:3%}.workspace{padding-left:4%;padding-right:4%}.demo-panel{grid-template-columns:minmax(0,1fr);min-height:0}.demo-rail{padding:22px 24px;border-right:0;border-bottom:1px solid var(--border-subtle)}.path-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.path-list li{grid-template-columns:24px 1fr;gap:.5rem}.lesson-content{max-width:none;padding:32px 28px}.principles,.future-strip{margin-left:4%;margin-right:4%}.future-strip{grid-template-columns:1fr 1.2fr}.future-strip>a{grid-column:2}}@media(max-width:768px){.topbar{height:auto;min-height:72px;padding:.65rem 5%;flex-wrap:wrap;gap:.45rem}.brand-mark{width:36px}.brand-words strong{font-size:1.17rem}.topbar-right{width:100%;flex-wrap:wrap;justify-content:space-between;gap:.4rem}.primary-nav{flex-wrap:wrap;gap:0 .85rem;font-size:.76rem}.framework-chip{display:none}.quiet-button{font-size:.7rem}}@media(max-width:700px){.hero{grid-template-columns:1fr;padding:55px 6% 45px;gap:2rem}.hero h1{font-size:clamp(2.75rem,12vw,4.1rem)}.hero-intro{font-size:.9rem}.art-caption{font-size:.8rem}.workspace{padding:48px 4% 54px}.workspace-heading{align-items:flex-start;flex-direction:column;gap:1.2rem}.workspace h2{font-size:2.15rem}.demo-rail{padding:18px 20px}.rail-title{margin:.4rem 0 .7rem}.path-list{grid-template-columns:repeat(2,1fr);gap:.4rem}.path-list li{grid-template-columns:22px 1fr;gap:.38rem}.path-list li>span{width:21px;height:21px}.path-list li strong{font-size:.59rem;line-height:1.25}.path-list li small{font-size:.56rem}.rail-footer{margin-top:.85rem;padding-top:.7rem}.lesson-content{padding:27px 19px}.lesson-content h3{font-size:1.85rem}.lesson-lead{font-size:.85rem}.prediction-row{grid-template-columns:1fr;gap:.42rem}.compact-select{width:100%}.result-head{align-items:flex-start;flex-direction:column;gap:.2rem}.test-results::before{content:"Table: scroll if needed \2194";font-size:.73rem}.builder-actions{align-items:flex-start;flex-direction:column}.principles{grid-template-columns:1fr;gap:1.6rem;padding:47px 0 51px}.principles article{display:grid;grid-template-columns:34px 1fr;column-gap:.8rem}.principles .principle-icon{grid-row:span 2;padding-top:.1rem}.principles h3{margin:0 0 .2rem}.principles .rail-title{margin:0 0 .45rem}.future-strip{grid-template-columns:1fr;gap:1rem;padding:24px;margin-bottom:50px}.future-strip h2{font-size:1.7rem}.future-strip>a{grid-column:auto}.footer{padding:1.3rem 5%;align-items:flex-start;flex-direction:column;gap:.45rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.topbar{height:auto;min-height:86px;padding-top:.8rem;padding-bottom:.8rem;flex-wrap:wrap;gap:.75rem}
.topbar-right{flex-wrap:wrap;justify-content:flex-end;gap:.75rem}
.brand-words strong,.hero h1,.workspace h2,.lesson-content h3,.future-strip h2{font-weight:600}
.mini-label,.rail-label,.lesson-meta,.mode-note,.rail-footer,.source-meta,.save-status,.reflection-privacy,.teacher-rail-card small,.outcome-card p,.achievement-box p,.mapping-explainer,.contribution-note p{font-size:.8125rem}
.art-card span:last-child,.path-list li small,.path-list li strong{font-size:.8125rem}
.mapping-head{flex-wrap:wrap}.review-pill{font-size:.75rem}.lesson-content,.builder-form,.mapping-card{min-width:0}
.appearance-control{position:relative;font-size:.8125rem}
.appearance-control summary{display:flex;align-items:center;gap:.4rem;min-height:44px;padding:.5rem .75rem;list-style:none;cursor:pointer;border:1px solid var(--border-medium);border-radius:7px;background:var(--control-background);color:var(--text-primary)}
.appearance-control summary::-webkit-details-marker{display:none}
.appearance-options{position:absolute;right:0;top:calc(100% + .4rem);z-index:20;min-width:12rem;padding:.75rem;background:var(--surface-primary);border:1px solid var(--border-medium);border-radius:8px;box-shadow:var(--shadow-sm)}
.appearance-options fieldset{border:0;padding:0;margin:0}.appearance-options legend{font-weight:650;margin-bottom:.35rem}
.appearance-options label{display:flex;align-items:center;gap:.65rem;min-height:44px;padding:.35rem .5rem;border-radius:5px;cursor:pointer}.appearance-options label:hover{background:var(--control-background-hover)}
.appearance-options input{min-height:0;accent-color:var(--action);width:1.1rem;height:1.1rem;margin:0}
.appearance-options p{margin:.5rem 0 0;color:var(--text-secondary);font-size:.8125rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.art-flow path{stroke:var(--border-medium)}.art-flow circle{fill:var(--action)}.art-flow circle:nth-of-type(2),.brand-mark circle{fill:var(--amber-300)}
a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@media(max-width:1200px){.framework-chip{display:none}}
@media(max-width:768px){.topbar-right{justify-content:space-between}.appearance-options{right:0}.primary-nav{width:100%}.button-row{flex-wrap:wrap}}
@media(forced-colors:active){.code-card{background:Canvas;color:CanvasText}.button-primary{background:ButtonFace;color:ButtonText;border-color:ButtonText}.appearance-options{background:Canvas;color:CanvasText}}
@media print{:root{color-scheme:light;--surface-canvas:white;--surface-primary:white;--surface-raised:white;--surface-strong:white;--text-primary:black;--text-secondary:#35483d;--action:#275640;--action-ink:white;--amber-300:#76500f;--green-300:#236a4b;--red-300:#9b3934;--border-subtle:#66756b;--border-medium:#66756b}.code-card{background:white;color:black;border:1px solid #66756b}.appearance-control,[data-theme-status]{display:none!important}}
@media print{body{background:white;color:black}.topbar,.hero-art,.hero-actions,.role-switch,.demo-rail,.principles,.future-strip,.footer,.button,.text-button,.topbar-right,.source-detail summary,.source-detail .source-dot{display:none!important}.hero{display:block;min-height:0;padding:0 0 1rem}.hero h1{font-size:2rem}.workspace{padding:0}.workspace-heading{display:none}.demo-panel{display:block;border:0;box-shadow:none}.lesson-content{max-width:none;padding:1rem 0}.source-detail{display:block}body[data-print-role=learner] #educatorPanel,body[data-print-role=educator] #learnerPanel{display:none!important}.source-detail{break-inside:avoid}.source-detail[open] .source-content,.source-detail .source-content{display:block}.reflection-answer{min-height:4rem;border-color:#66756b}.reflection-privacy{color:#35483d}}

@media print{.source-detail{break-inside:auto}.source-outcome{break-inside:avoid}}

/* Explicit dark preference must not make the browser print canvas dark. */
@media print{:root,:root[data-theme]{color-scheme:light!important;background:white!important;--surface-canvas:white;--surface-primary:white;--surface-raised:white;--surface-strong:white;--text-primary:black;--text-secondary:#35483d;--action:#275640;--action-ink:white;--amber-300:#76500f;--green-300:#236a4b;--red-300:#9b3934;--border-subtle:#66756b;--border-medium:#66756b}body{background:white!important;color:black!important}}
