:root{--ink: #102033;--ink-soft: #445064;--paper: #f3eee4;--paper-2: #fffcf6;--rule: #d3c9b8;--teal: #0e5858;--teal-2: #18716c;--amber: #9a5710;--red: #92253a;--navy: #0b1b30;--focus: #0e5858;--shadow: 0 1px 0 rgba(16, 32, 51, .06);font-family:IBM Plex Sans,Segoe UI,sans-serif;color:var(--ink);background:var(--paper);line-height:1.5}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--paper)}h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;font-weight:620;letter-spacing:-.02em;line-height:1.15;margin:0 0 .55rem}p{margin:0 0 .85rem}a{color:var(--teal)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.skip-link{position:absolute;left:.75rem;top:-3rem;background:var(--navy);color:#fff;padding:.4rem .7rem;min-height:44px;z-index:20}.skip-link:focus{top:.75rem}.shell{min-height:100vh;display:grid;grid-template-rows:auto auto 1fr auto}.topbar{background:var(--navy);color:#f3eee4;padding:.85rem 1.15rem;display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:baseline;justify-content:space-between}.brand{font-family:Fraunces,Georgia,serif;font-size:1.15rem;color:inherit;text-decoration:none}.brand small{display:block;font-family:IBM Plex Sans,sans-serif;font-size:.75rem;color:#c9c0ae;font-weight:400}.nav{display:flex;flex-wrap:wrap;gap:.35rem}.nav a{color:#f3eee4;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding:0 .7rem;border-radius:4px}.nav a[aria-current=page]{background:#18425a}.crumb{padding:.45rem 1.15rem;border-bottom:1px solid var(--rule);background:var(--paper-2);font-size:.92rem;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:.35rem 1rem;justify-content:space-between}.main{padding:1.25rem 1.15rem 2.5rem;max-width:1100px;width:100%;margin-inline:auto}.main.wide{max-width:1180px}.footer{border-top:1px solid var(--rule);padding:.8rem 1.15rem;color:var(--ink-soft);font-size:.85rem}.card{background:var(--paper-2);border:1px solid var(--rule);border-radius:8px;padding:1rem 1.1rem;box-shadow:var(--shadow)}.stack{display:grid;gap:1rem}.row{display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:center}.eyebrow{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin:0 0 .35rem}.claim{display:inline-flex;align-items:center;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;letter-spacing:.02em;border:1px solid var(--rule);border-radius:99px;padding:.15rem .5rem;background:#fff}.claim.experience{color:var(--navy)}.claim.demonstration{color:var(--teal)}.claim.public{color:#1a4d7a}.claim.bounded{color:var(--amber)}.claim.hypothesis{color:#6b3fa0}.claim.modeled{color:#8a4b12}.claim.validation{color:var(--red)}.claim.internal{color:#444}button,.button{font:inherit;background:var(--teal);color:#fff;border:0;border-radius:6px;min-height:44px;padding:.45rem .9rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}button.ghost,a.ghost{background:transparent;color:var(--teal);border:1px solid var(--teal)}button:disabled{opacity:.5;cursor:not-allowed}textarea,input[type=text]{width:100%;font:inherit;padding:.6rem .7rem;border:1px solid var(--rule);border-radius:6px;background:#fff}.quote{border-left:3px solid var(--teal);padding:.2rem 0 .2rem .85rem;margin:0 0 .85rem;font-size:1.15rem;font-family:Fraunces,Georgia,serif}.map-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:1rem}@media(max-width:800px){.map-grid{grid-template-columns:1fr}}.diagram{display:grid;gap:.55rem}.diagram-group{display:flex;flex-wrap:wrap;gap:.45rem}.node{appearance:none;background:var(--paper-2);color:var(--ink);border:1px solid var(--rule);border-radius:8px;min-width:7.2rem;text-align:left;padding:.55rem .65rem}.node strong{display:block;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem;color:var(--teal)}.node[aria-current=true]{border-color:var(--teal);box-shadow:0 0 0 2px #0e585840}.lesson-list{display:grid;gap:.55rem}.lesson-link{display:grid;grid-template-columns:2.4rem 1fr auto;gap:.75rem;align-items:center;padding:.7rem .85rem;text-decoration:none;color:inherit}.lesson-link b{font-family:IBM Plex Mono,ui-monospace,monospace;color:var(--teal)}.status{font-size:.8rem;color:var(--ink-soft)}table.plain{width:100%;border-collapse:collapse;font-size:.92rem}table.plain th,table.plain td{border-bottom:1px solid var(--rule);text-align:left;padding:.45rem .4rem;vertical-align:top}.source{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem;color:var(--ink-soft);word-break:break-word}.do-not{background:#f8ecec;border-color:#e2c4c8}.say{background:#eef6f4}.markdown h2{margin-top:1.4rem}.markdown table{width:100%;border-collapse:collapse;font-size:.9rem;margin:0 0 1rem}.markdown th,.markdown td{border:1px solid var(--rule);padding:.35rem .45rem;vertical-align:top}.markdown pre{overflow:auto;background:#fff;border:1px solid var(--rule);padding:.7rem}.soon{color:var(--ink-soft)}.check{margin:0 0 1.15rem}label.row{min-height:44px;cursor:pointer}.markdown ul{margin:0 0 1rem;padding-left:1.2rem}.subnav{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0 0}.subnav a{min-height:44px;display:inline-flex;align-items:center;padding:0 .7rem;border-radius:6px;border:1px solid var(--rule);text-decoration:none}.subnav a[aria-current=page]{background:var(--teal);color:#fff;border-color:var(--teal)}.drill .prompt{font-size:1.2rem;font-family:Fraunces,Georgia,serif}.grade-row,.choice-grid{display:flex;flex-wrap:wrap;gap:.45rem;margin:.75rem 0}button[aria-pressed=true],.choice-grid button[aria-pressed=true]{background:var(--teal);color:#fff;border-color:var(--teal)}.timer{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:1.6rem;margin:.4rem 0 .8rem}.warn{color:var(--red)}.place-list{margin:0 0 .85rem;padding-left:1.2rem}.place-list li{margin:0 0 .4rem}.path-layout{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,1.4fr);gap:1rem;align-items:start}@media(max-width:860px){.path-layout{grid-template-columns:1fr}}.path-rail{list-style:none;margin:0;padding:.4rem 0 .4rem 1.15rem;position:relative;display:grid;gap:.28rem}.path-rail:before{content:"";position:absolute;left:.42rem;top:.5rem;bottom:.5rem;width:3px;background:var(--rule);border-radius:99px}.path-token{position:absolute;left:.16rem;top:calc(.35rem + var(--active, 0) * 2.55rem);width:14px;height:14px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px #9a571038;transition:top .55s ease;z-index:1}.path-stop{appearance:none;width:100%;background:var(--paper-2);color:var(--ink);border:1px solid var(--rule);border-radius:8px;min-height:40px;text-align:left;padding:.35rem .55rem;display:grid}.path-stop b{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.68rem;color:var(--teal)}.path-stop[aria-current=true]{border-color:var(--teal);box-shadow:0 0 0 2px #0e585833;background:#eef6f4}.path-fn{font-size:1.05rem}.path-stage .quote{font-size:1.08rem}.evidence-block{background:#fff;border:1px dashed var(--rule);border-radius:8px;padding:.75rem .85rem;margin:0 0 .75rem}.do-not-line{background:#f8ecec;border-radius:6px;padding:.45rem .65rem;color:var(--red)}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0 0 .8rem}.chip-row li{border:1px solid var(--rule);border-radius:99px;padding:.2rem .65rem;background:#fff;font-size:.85rem}.stage-art{width:100%;height:auto;margin:0 0 .85rem;display:block}.excel-flow-head h3{margin-bottom:.35rem}.sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.45rem;margin:.75rem 0}.sheet-chip{border:1px solid var(--rule);border-radius:8px;padding:.55rem .6rem;background:#fff;min-height:6.2rem;opacity:.45;transform:scale(.98);transition:opacity .35s ease,transform .35s ease,box-shadow .35s ease}.sheet-chip.on{opacity:1;transform:scale(1);border-color:var(--teal);box-shadow:0 0 0 2px #0e58582e}.sheet-chip b{display:block;font-family:IBM Plex Mono,ui-monospace,monospace;color:var(--teal);font-size:.72rem}.sheet-chip strong{display:block;margin:.15rem 0 .25rem}.sheet-chip span{font-size:.78rem;color:var(--ink-soft)}.join-art{width:100%;height:auto;display:block;margin-top:.5rem}@keyframes float-a{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes float-b{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes pop{0%{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}@keyframes pulse{0%,to{r:8}50%{r:11}}@keyframes shake{0%,to{transform:translate(0)}30%{transform:translate(-3px)}60%{transform:translate(3px)}}@keyframes slide-in{0%{transform:translate(-12px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes grow-bar{0%{transform:scaleY(0);transform-origin:bottom}to{transform:scaleY(1);transform-origin:bottom}}@keyframes draw-arrow{0%{stroke-dashoffset:80}to{stroke-dashoffset:0}}@keyframes stamp{0%{transform:scale(1.12) rotate(-3deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes type-line{0%{opacity:0}to{opacity:1}}@keyframes token-run{0%{offset-distance:0%}to{offset-distance:100%}}.float-a{animation:float-a 2.8s ease-in-out infinite}.float-b{animation:float-b 2.4s ease-in-out infinite}.pop{animation:pop .45s ease both}.pulse{animation:pulse 1.6s ease-in-out infinite}.shake{animation:shake 1.8s ease-in-out infinite}.slide-in{animation:slide-in .5s ease both}.grow-bar{animation:grow-bar .7s ease both}.draw-arrow{stroke-dasharray:80;animation:draw-arrow 1.2s ease forwards}.stamp{animation:stamp .55s ease both}.type-line{animation:type-line .4s ease both}.token-dot{offset-path:path("M30 150 C80 40, 140 180, 200 70 S300 160, 330 60");animation:token-run 4s linear infinite}@media(prefers-reduced-motion:reduce){.float-a,.float-b,.pop,.pulse,.shake,.slide-in,.grow-bar,.draw-arrow,.stamp,.type-line,.token-dot,.path-token,.sheet-chip{animation:none;transition:none}}
