:root{--r: 8px;--shadow: 0 1px 2px rgba(20, 35, 43, .05), 0 4px 14px rgba(20, 35, 43, .04);--ground: #fbfaf7;--surface: #ffffff;--surface-2: #f2f1ec;--ink: #14232b;--ink-2: #3d5058;--ink-3: #5b6c73;--rule: #dfddd5;--accent: #0f6e63;--accent-deep: #0a5049;--accent-soft: #e2efec;--pass: #2c6e4a;--pass-bg: #e4efe7;--pending: #96600a;--pending-bg: #f8eedc}@media(prefers-color-scheme:dark){:root{--shadow: none;--ground: #0e1a1e;--surface: #16272c;--surface-2: #1d3138;--ink: #e7eeeb;--ink-2: #a9bcc0;--ink-3: #7e9298;--rule: #263b42;--accent: #5fbfaf;--accent-deep: #7ed3c5;--accent-soft: #163730;--pass: #7fc79a;--pass-bg: #16301f;--pending: #e0b364;--pending-bg: #33280f}}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font-family:IBM Plex Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}.wrap{max-width:60rem;margin:0 auto;padding:2rem 1.25rem 5rem}h1{font-size:1.85rem;font-weight:700;margin:0 0 .3rem;letter-spacing:-.015em}h2{font-size:1.15rem;margin:2.25rem 0 .75rem}.eyebrow{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.35rem}.eyebrow:before{content:"";width:.62rem;height:.62rem;border-radius:2px;background:var(--accent)}h3{font-size:.95rem;margin:0 0 .4rem}p{margin:0 0 .8rem}a{color:var(--accent)}.muted{color:var(--ink-3);font-size:.88rem}.num{font-variant-numeric:tabular-nums}.content-note{margin-top:2rem;padding-top:.8rem;font-size:.8rem;max-width:46rem;border-top:1px solid var(--line, rgba(0,0,0,.08))}.home-top{align-items:flex-start}.home-hero{background:linear-gradient(160deg,var(--accent-soft),transparent 70%);border-radius:var(--r);padding:1.6rem 1.5rem 1.4rem;margin:0 0 1.6rem}.home-title{font-family:Fraunces,Georgia,Times New Roman,serif;font-weight:640;font-size:clamp(1.7rem,4.5vw,2.5rem);line-height:1.12;max-width:32rem;text-wrap:balance;margin:.3rem 0 .8rem}.home-lede{max-width:40rem;font-size:1rem;margin-bottom:1rem}.hero-motion{margin-top:1rem}.hero-motion svg{display:block;width:100%;max-width:40rem;height:auto}.hero-line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:hero-draw 10s linear infinite}@keyframes hero-draw{0%{stroke-dashoffset:1;opacity:1}70%{stroke-dashoffset:0;opacity:1}93%{stroke-dashoffset:0;opacity:1}97%{opacity:0}to{stroke-dashoffset:1;opacity:0}}.hero-runner{fill:var(--accent-deep);animation:hero-runner 10s linear infinite}@keyframes hero-runner{0%,69%{opacity:1}71%,to{opacity:0}}.hero-dot{transform-box:fill-box;transform-origin:center;transform:scale(0);opacity:0;animation:hero-dot 10s linear infinite}.hero-dot-good{fill:var(--accent)}.hero-dot-shock{fill:var(--warn, #b0791f)}@keyframes hero-dot{0%{transform:scale(0);opacity:0}1%{transform:scale(1.7);opacity:1}3%{transform:scale(1);opacity:1}92%{transform:scale(1);opacity:1}96%,to{transform:scale(0);opacity:0}}.hero-month{fill:var(--surface);stroke:var(--accent);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:hero-month 10s linear infinite}.hero-month.good{fill:var(--accent);stroke:var(--accent)}.hero-month.shock{fill:var(--warn, #b0791f);stroke:var(--warn, #b0791f)}@keyframes hero-month{0%{transform:translateY(0)}1.2%{transform:translateY(-4px)}3%{transform:translateY(0)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.hero-line{animation:none;stroke-dashoffset:0}.hero-runner{display:none}.hero-dot{animation:none;transform:scale(1);opacity:1}.hero-month{animation:none}}.month-strip-caption{font-size:.75rem;color:var(--ink-3);margin-top:.35rem}.home-audiences{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.9rem;margin-bottom:1.8rem}.home-audience{display:flex;flex-direction:column;gap:.45rem;margin-bottom:0;transition:transform .12s ease,border-color .12s ease}@media(prefers-reduced-motion:no-preference){.home-audience:hover{transform:translateY(-2px);border-color:var(--accent)}}.home-audience p{flex:1;margin:0}.home-audience .primary-link,.home-audience .ghost-link{align-self:flex-start}.home-audience h3{display:flex;align-items:center;gap:.5rem;font-size:1.02rem}.glyph{flex:0 0 auto;width:2rem;height:2rem;border-radius:50%;background:var(--accent-soft);color:var(--accent-deep);display:inline-flex;align-items:center;justify-content:center}.glyph svg{width:1.1rem;height:1.1rem}.ghost-link{flex:0 0 auto;padding:.62rem 1rem;border-radius:999px;border:1.5px solid var(--accent);color:var(--accent-deep);background:transparent;text-decoration:none;font-weight:600;font-size:.9rem}.ghost-link:hover{background:var(--accent-soft)}.home-trust{list-style:none;padding:1.1rem 1.3rem;margin:0 0 1.8rem;background:var(--accent-soft);border-radius:var(--r);display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;font-size:.88rem;color:var(--ink-2)}.home-trust li{display:flex;gap:.6rem;align-items:flex-start}.home-trust svg{flex:0 0 auto;width:1.15rem;height:1.15rem;color:var(--accent-deep);margin-top:.1rem}.home-demo h2{margin-top:0}.home-demo{border-style:dashed}.home-demo-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.6rem}.home-footer{margin-top:2.2rem;padding-top:.9rem;font-size:.8rem;max-width:46rem;border-top:1px solid var(--rule)}header.top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;padding-bottom:1rem;border-bottom:2px solid var(--ink);margin-bottom:1.75rem}button.link{background:none;border:none;padding:0;cursor:pointer;color:var(--accent);font:inherit;text-decoration:underline;text-underline-offset:2px}button.link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:1.15rem 1.3rem;margin-bottom:.9rem;box-shadow:var(--shadow)}button.card.classrow{transition:border-color .12s ease,transform .12s ease}button.card.classrow:hover{border-color:var(--accent)}button.card.classrow:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.classrow{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.25rem}.classrow .label{font-weight:600;font-size:1.02rem;flex:1 1 12rem}.code{font-family:IBM Plex Mono,ui-monospace,Menlo,monospace;letter-spacing:.12em;font-size:1.05rem;font-weight:600;background:var(--accent-soft);color:var(--accent);padding:.12rem .5rem;border-radius:5px}.status{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;padding:.18rem .65rem;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}.status.done{background:var(--pass-bg);color:var(--pass)}.status.pending{background:var(--pending-bg);color:var(--pending)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.8rem}.stat{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:.95rem 1.05rem;box-shadow:var(--shadow)}.stat .value{display:block;font-size:1.55rem;font-weight:700;color:var(--accent-deep);font-variant-numeric:tabular-nums;margin-bottom:.1rem;letter-spacing:-.01em}.stat .name{font-size:.8rem;color:var(--ink-3)}.card-tally{border-bottom:1px solid var(--rule);padding:.9rem 0}.card-tally:last-child{border-bottom:none}.card-tally .head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.5rem}.card-tally .cardid{font-family:IBM Plex Mono,monospace;font-size:.9rem}.opt{display:grid;grid-template-columns:2rem 1fr 4.5rem;align-items:center;gap:.6rem;margin-bottom:.32rem}.opt .oid{font-family:IBM Plex Mono,monospace;font-size:.82rem;color:var(--ink-3)}.opt .track{background:var(--surface-2);border-radius:999px;height:.7rem;overflow:hidden}.opt .bar{background:var(--accent);height:100%;border-radius:999px;min-width:2px}.opt .n{font-size:.82rem;color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--rule)}thead th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);border-bottom:2px solid var(--ink-2)}tbody tr:hover td{background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}td.right,th.right{text-align:right;font-variant-numeric:tabular-nums}.notice{background:var(--pending-bg);color:var(--pending);border-radius:var(--r);padding:.75rem 1rem;font-size:.88rem;margin-bottom:1rem}.error{background:var(--surface-2);border-left:3px solid var(--ink-3);padding:.9rem 1rem;border-radius:0 var(--r) var(--r) 0}.scroll{overflow-x:auto}.head-actions{display:flex;gap:1rem;align-items:baseline}.signin-form{margin:1rem 0 2rem}.field-label{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.35rem}.field-row{display:flex;gap:.6rem;flex-wrap:wrap}.field-row input{flex:1 1 16rem;padding:.6rem .8rem;border:1px solid var(--rule);border-radius:4px;background:var(--surface);color:var(--ink);font:inherit}.field-row input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{padding:.6rem 1.2rem;border:none;border-radius:6px;background:var(--accent);color:#fff;font:inherit;font-weight:600;cursor:pointer;transition:background .12s ease}button.primary:hover:not(:disabled){background:var(--accent-deep)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.primary:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.demo-panel{margin-top:2.5rem;border-top:1px solid var(--rule);padding-top:1.25rem}.demo-group{margin:1.1rem 0 .5rem;font-size:.95rem}.demo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.5rem}.demo-account{display:flex;flex-direction:column;gap:.15rem;text-align:left;padding:.6rem .8rem;border:1px solid var(--rule);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;transition:border-color .12s ease,background .12s ease}.demo-account:hover{border-color:var(--accent);background:var(--accent-soft)}.demo-account:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.demo-account:disabled{opacity:.55;cursor:wait}.demo-name{font-weight:600}.demo-detail{font-size:.82rem}.status-live{color:var(--pass)}.status-lapsing{color:var(--pending)}.status-expired{color:var(--ink-3)}.status-upcoming{color:var(--ink-2)}.student-demo-entry{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin:0 0 2rem;padding:1.25rem;border-radius:1rem;background:linear-gradient(135deg,var(--accent-soft),var(--surface-2));border:1px solid var(--rule)}.student-demo-entry h2{margin:.15rem 0 .3rem}.student-demo-entry-label{color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.primary-link{flex:0 0 auto;padding:.7rem 1rem;border-radius:999px;background:var(--accent);color:var(--ground);font-weight:700;text-decoration:none}.student-shell{min-height:100vh;padding:1.25rem clamp(1rem,4vw,3rem) 4rem;background:radial-gradient(circle at 8% 8%,rgba(15,110,99,.09),transparent 22rem),linear-gradient(165deg,transparent 0 68%,rgba(15,110,99,.05) 68% 75%,transparent 75%),#fbfaf7;color:#14232b}.student-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(100%,72rem);margin:0 auto 4rem}.student-brand{display:inline-flex;align-items:center;gap:.55rem;color:#14232b;font-size:1.15rem;font-weight:800;text-decoration:none}.student-brand span{display:grid;width:2.35rem;height:2.35rem;place-items:center;border:2px solid #14232b;border-radius:.7rem;background:#0f6e63;color:#fbfaf7;transform:rotate(-4deg)}.student-top-actions{display:flex;align-items:center;gap:1rem;font-size:.88rem}.student-demo-badge{padding:.25rem .65rem;border-radius:999px;background:#e2efec;color:#0a5049;font-weight:700}.student-join,.student-stage{width:min(100%,48rem);margin:0 auto}.student-kicker{margin-bottom:.6rem;color:#0f6e63;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.student-join h1,.student-stage h1{max-width:13ch;margin:0 0 1rem;font-size:clamp(2.4rem,7vw,4.75rem);line-height:.98;letter-spacing:-.045em}.student-join>p,.student-lead{max-width:42rem;color:#3d5058;font-size:1.08rem}.student-code-card,.student-decision{margin-top:2rem;padding:clamp(1.25rem,4vw,2rem);border:2px solid #14232b;border-radius:1.35rem;background:#fff;box-shadow:.65rem .65rem #0f6e63}.student-code-card label{display:block;margin-bottom:.45rem;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.student-code-row{display:flex;gap:.7rem}.student-code-row input{min-width:0;flex:1;padding:.8rem 1rem;border:1px solid #3d5058;border-radius:.75rem;background:#f2f1ec;color:#14232b;font:800 1.25rem/1 IBM Plex Mono,monospace;letter-spacing:.15em}.student-code-row button,.student-feedback button,.student-finish-actions button{padding:.8rem 1.15rem;border:2px solid #0a5049;border-radius:999px;background:#0f6e63;color:#fff;font:inherit;font-weight:800;cursor:pointer}.student-code-card small{display:block;margin-top:.65rem;color:#5b6c73}.student-back{margin-bottom:1.5rem;padding:0;border:0;background:transparent;color:#0f6e63;font:inherit;cursor:pointer}.student-name-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;margin-top:2rem}.student-name-grid button{padding:1.1rem;border:1px solid #dfddd5;border-radius:1rem;background:#fff;color:#14232b;font:inherit;font-weight:750;cursor:pointer}.student-name-grid button:hover{border-color:#0f6e63;background:#e2efec}.student-game-head{display:grid;gap:1rem}.student-game-head h1{font-size:clamp(2rem,5vw,3.5rem)}.student-progress{height:.55rem;overflow:hidden;border-radius:999px;background:#e2efec}.student-progress span{display:block;height:100%;border-radius:inherit;background:#0f6e63}.student-decision h2{max-width:20ch;margin:.7rem 0;font-size:clamp(1.75rem,5vw,2.7rem);line-height:1.05}.student-decision>p{color:#3d5058;font-size:1.05rem}.student-tag-row{display:flex;flex-wrap:wrap;gap:.4rem}.student-tag-row span{padding:.2rem .55rem;border-radius:999px;background:#e2efec;color:#0a5049;font-size:.7rem;font-weight:800;text-transform:uppercase}.student-options{display:grid;gap:.65rem;margin-top:1.5rem}.student-options button{display:flex;align-items:center;gap:.8rem;padding:.9rem 1rem;border:1px solid #dfddd5;border-radius:.85rem;background:#fff;color:#14232b;font:inherit;text-align:left;cursor:pointer}.student-options button:hover:not(:disabled),.student-options button.selected{border-color:#0f6e63;background:#e2efec}.student-options button span{display:grid;flex:0 0 2rem;width:2rem;height:2rem;place-items:center;border-radius:50%;background:#e2efec;color:#0a5049;font-weight:900}.student-feedback{margin-top:1.25rem;padding:1rem;border-radius:1rem;background:#e2efec}.student-feedback p{margin:.35rem 0 1rem;color:#14403a}.student-feedback button{background:#0a5049}.student-finish{text-align:left}.student-recap{display:grid;gap:.6rem;margin:2rem 0}.student-recap>div{display:flex;gap:.85rem;padding:.85rem 0;border-bottom:1px solid #dfddd5}.student-recap>div>span{display:grid;flex:0 0 2rem;width:2rem;height:2rem;place-items:center;border-radius:50%;background:#0f6e63;color:#fff;font-weight:800}.student-recap p{margin:0}.student-finish-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.student-preview-note{margin-top:2rem;color:#5b6c73;font-size:.82rem}.student-score{margin:1.6rem 0 0;padding:1.4rem 1.5rem 1.2rem;border:1px solid #dfddd5;border-radius:1rem;background:#fff;box-shadow:.65rem .65rem #0f6e63}.student-score-head{display:flex;align-items:center;gap:1.2rem}.student-score-total{display:flex;align-items:baseline;gap:.3rem;color:#0f6e63;white-space:nowrap}.student-score-total strong{font-size:2.6rem;line-height:1;letter-spacing:-.02em}.student-score-total span{color:#5b6c73;font-weight:700}.student-score-band{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#0f6e63}.student-score-head p{margin:.15rem 0 0;color:#5b6c73;font-size:.9rem}.student-score-parts{display:grid;gap:.55rem;margin:1.2rem 0 0}.student-score-parts dt{display:flex;justify-content:space-between;font-size:.8rem;font-weight:750}.student-score-parts dt span{color:#5b6c73;font-variant-numeric:tabular-nums}.student-score-parts dd{margin:.25rem 0 0;height:.5rem;border-radius:999px;background:#f2f1ec;overflow:hidden}.student-score-parts dd span{display:block;height:100%;border-radius:999px;background:#0f6e63}.student-score-money{margin:1.2rem 0 0;padding-left:1.2rem;display:grid;gap:.4rem;font-size:.92rem}.student-score-note{margin:1.2rem 0 0;padding-top:.9rem;border-top:1px dashed #dfddd5;color:#5b6c73;font-size:.82rem}.student-recap-cents{color:#0f6e63;font-style:normal;font-weight:750;white-space:nowrap}.student-error{width:min(100%,48rem);margin:1rem auto;padding:.85rem 1rem;border-left:4px solid #a8352a;background:#f9edeb;color:#7e2d24}@media(max-width:640px){.student-top{align-items:flex-start;margin-bottom:2.5rem}.student-top-actions{align-items:flex-end;flex-direction:column;gap:.35rem}.student-demo-entry{align-items:flex-start;flex-direction:column}.student-code-row{flex-direction:column}.student-code-row button{width:100%}}.sitenav{position:sticky;top:0;z-index:20;background:var(--surface);border-bottom:1px solid var(--rule)}.sitenav-inner{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem 1.25rem;width:min(100%,72rem);margin:0 auto;padding:.6rem 1.25rem}.sitenav-brand{display:inline-flex;align-items:center;gap:.5rem;font-weight:750;font-size:.92rem;color:var(--ink);text-decoration:none;white-space:nowrap}.sitenav-brand:hover{color:var(--accent-deep)}.sitenav-mark{width:1.25rem;height:1.25rem;display:block;flex:none}.sitenav-links{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .35rem;list-style:none;margin:0;padding:0;flex:1 1 auto}.sitenav-links a{display:inline-block;padding:.35rem .6rem;border-radius:6px;color:var(--ink-2, var(--ink-3));font-size:.86rem;text-decoration:none}.sitenav-links a:hover{background:var(--surface-2);color:var(--ink)}.sitenav-links a[aria-current=page]{background:var(--accent-soft, var(--surface-2));color:var(--accent-deep);font-weight:700}.sitenav-auth{margin-left:auto}.sitenav-signin,.sitenav-signout{display:inline-block;padding:.35rem .85rem;border:1.5px solid var(--accent);border-radius:999px;background:transparent;color:var(--accent-deep);font:inherit;font-size:.86rem;font-weight:700;text-decoration:none;cursor:pointer}.sitenav-signin:hover,.sitenav-signout:hover:not(:disabled){background:var(--accent-soft, var(--surface-2))}.sitenav-signout:disabled{opacity:.6;cursor:default}.sitenav a:focus-visible,.sitenav button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:34rem){.sitenav-links{order:3;width:100%}.sitenav-auth{margin-left:0}}.student-top-note{color:var(--ink-3);font-size:.85rem}.usage-head{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:1.4rem 0 .6rem}.usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.7rem}.usage-stat{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:.8rem .9rem}.usage-value{font-size:1.7rem;font-weight:700;line-height:1.1;color:var(--accent-deep)}.usage-label{font-size:.85rem;font-weight:650;margin-top:.15rem}.usage-sub{font-size:.76rem;color:var(--ink-3);margin-top:.2rem}.usage-note{margin-top:1rem;max-width:44rem}.seasonpick{border:none;margin:0 0 1rem;padding:0;display:grid;gap:.5rem}.seasonopt{display:flex;align-items:baseline;gap:.6rem;padding:.6rem .75rem;border:1px solid var(--rule);border-radius:var(--r);background:var(--surface-2);cursor:pointer}.seasonopt:hover{border-color:var(--ink-3)}.seasonopt input{margin:0;flex:none;accent-color:var(--accent)}.seasonopt:focus-within{outline:2px solid var(--accent);outline-offset:1px}
