@font-face{font-family:"Geist";font-style:normal;font-weight:300 800;font-display:swap;src:url(/assets/fonts/geist-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/geist-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Ty's one-site pass (approved 2026-10-20): the header and the footer, the drawing's own rules scoped to .os-chrome. Generated by scripts/one-site-chrome-css.mjs from the rendering; the drawing wins. Edit the generator, not this file. */
.os-chrome .nav{top:auto;left:auto;right:auto;height:auto;justify-content:flex-start;box-shadow:none;transition:none}
.os-chrome a{text-decoration:underline}
.os-chrome [hidden]{display:none!important}
.os-chrome img{max-width:100%}

.os-chrome,.os-one .about-strip,.os-one .page-tools{
 --bg:#080c0f;--bg2:#0b1014;--s1:#10171c;--s2:#151e25;--s3:#1c2730;--ln:#1b252d;--ln2:#283540;
 --tx:#f4f2ec;--mu:#aeb5bb;--dim:#7f8991;--gold:#f5bf23;--gold2:#ffd970;--gs:rgba(245,191,35,.12);--gb:rgba(245,191,35,.42);
 --room:#4fc1b0;--rooms:rgba(79,193,176,.13);--roomb:rgba(79,193,176,.42);
 --grn:#6cc76c;--grs:rgba(108,199,108,.14);--red:#f06b64;--rs:rgba(240,107,100,.14);--blue:#62abe0;--bs:rgba(98,171,224,.14);
 --disp:"Geist",ui-sans-serif,system-ui,sans-serif;--body:"Geist",ui-sans-serif,system-ui,sans-serif;--fig:"Geist Mono",ui-monospace,Menlo,monospace;
 color-scheme:dark}
.os-chrome,.os-chrome *{box-sizing:border-box}
.os-chrome{color:var(--tx)}
.os-chrome,.os-one .about-strip,.os-one .page-tools{font-family:var(--body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
.os-chrome button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.os-chrome a{color:inherit}
.os-chrome{container:site/inline-size;position:relative}
.os-chrome p{margin:0}
.os-chrome .pb{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--gold);color:#120d00;font-weight:600;border-radius:12px;padding:11px 18px;text-decoration:none;white-space:nowrap;transition:background .15s}
.os-chrome .pb:hover{background:var(--gold2)}.os-chrome .pb svg{width:16px;height:16px}
.os-chrome .pb.sm{padding:7px 13px;font-size:13.5px;border-radius:10px}@keyframes tin{from{opacity:0;transform:translateY(8px)}}.os-chrome .nav{position:relative;z-index:60;display:flex;align-items:center;gap:6px;padding:14px clamp(16px,3cqi,40px);background:rgba(8,12,15,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--ln)}
.os-chrome .logo{display:inline-flex;align-items:center;gap:9px;font-family:var(--disp);font-weight:800;font-size:20px;letter-spacing:-.02em;text-decoration:none;margin-right:18px}
.os-chrome .lc{width:30px;height:30px;border-radius:9px;background:var(--gs);border:1px solid var(--gb);display:grid;place-items:center;color:var(--gold)}.os-chrome .lc svg{width:17px;height:17px}
.os-chrome .nl{display:flex;gap:2px}.os-chrome .nk{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;border-radius:10px;color:var(--mu);text-decoration:none;font-size:14.5px}.os-chrome .nk:hover,.os-chrome .nk.open{color:var(--tx);background:var(--s1)}.os-chrome .nk.on{color:var(--tx)}
.os-chrome .nsp{flex:1}.os-chrome .nmb{display:none;width:40px;height:40px;place-items:center;border-radius:10px;border:1px solid var(--ln2)}.os-chrome .nmb svg{width:18px;height:18px}
.os-chrome .pmenu{position:absolute;left:clamp(16px,3cqi,40px);right:clamp(16px,3cqi,40px);top:68px;z-index:59;background:var(--s1);border:1px solid var(--ln2);border-radius:16px;padding:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px;box-shadow:0 24px 60px rgba(0,0,0,.5);animation:tin .15s}
.os-chrome .pmi{display:grid;gap:3px;padding:13px 14px;border-radius:12px;text-decoration:none}.os-chrome .pmi:hover,.os-chrome .pmi.on{background:var(--s2)}.os-chrome .pmi b{font-family:var(--disp);font-size:17px}.os-chrome .pmi span{font-size:13px;color:var(--mu)}
.os-chrome .mmenu{display:grid;gap:2px;padding:10px 16px 16px;border-bottom:1px solid var(--ln);background:var(--bg)}.os-chrome .mmenu a{padding:11px 4px;text-decoration:none;font-size:17px;border-bottom:1px solid var(--ln)}.os-chrome .mmenu a.on{color:var(--gold)}.os-chrome .mmenu .pb{margin-top:10px;border:0}
.os-chrome .ft{margin-top:90px;border-top:1px solid var(--ln);padding:40px clamp(16px,4cqi,56px) 30px;display:grid;gap:30px}
.os-chrome .fg{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:24px}.os-chrome .fg>div{display:grid;gap:8px;align-content:start}.os-chrome .fg>div>b{font-size:13.5px;margin-bottom:2px}.os-chrome .fg a{text-decoration:none;color:var(--mu);font-size:14px}.os-chrome .fg a:hover{color:var(--tx)}.os-chrome .fbr{display:grid;gap:10px;align-content:start}.os-chrome .fbr p{color:var(--mu);font-size:14px;max-width:300px}.os-chrome .fbr .fm{font-size:13px;color:var(--dim)}.os-chrome .fbr .logo{color:var(--tx)}
.os-chrome .fl2{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--dim)}.os-chrome .fl2 a{margin-left:14px;color:var(--dim)}@container site (max-width:900px){
 .os-chrome .nl,.os-chrome .ns{display:none}.os-chrome .nmb{display:grid}.os-chrome .pmenu{display:none}
 .os-chrome .fg{grid-template-columns:1fr 1fr}.os-chrome .fbr{grid-column:1/-1}}@container site (max-width:560px){
 .os-chrome,.os-one .about-strip,.os-one .page-tools{font-size:15px}
 .os-chrome .nav{padding:10px 14px}.os-chrome .nav .pb.sm{padding:6px 10px;font-size:12.5px}.os-chrome .logo{font-size:18px;margin-right:6px}.os-chrome .fg{grid-template-columns:1fr}}
.os-chrome .lc{background:linear-gradient(140deg,var(--gold2),var(--gold));border:0;color:#120d00}
.os-chrome .logo{font-weight:700;letter-spacing:-.025em}
.os-chrome,.os-one .about-strip,.os-one .page-tools{font-size:15.5px;font-feature-settings:"ss01","cv11"}
.os-chrome .pb{font-weight:600;letter-spacing:-.005em;transition:background .15s,transform .15s,box-shadow .15s;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 8px 24px rgba(245,191,35,.18)}
.os-chrome .pb:hover{transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.22) inset,0 12px 32px rgba(245,191,35,.28)}
.os-chrome .nav{background:rgba(8,12,15,.72);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%)}
.os-chrome.os-top{position:sticky;top:0;z-index:60}
.os-top~main .one-site.one-site{margin-top:0}
.os-chrome .nmb .os-x,.os-chrome .nmb.open .os-m{display:none}
.os-chrome .nmb.open .os-x{display:block}
/* The legal links' first one keeps no left margin: on a phone the row wraps under the year and was set 14px in (the drawing's own). */
.os-chrome .fl2 span a:first-child{margin-left:0}
/* The Specialist's button (specialist.js: fixed 20px from the bottom right, a 46px pill above 520px) sat on the footer's legal row at
   the bottom of every page, hiding Terms and How our AI behaves at 1440 (the independent grader, Oct 31). The footer keeps room under
   its last row wherever the pill shows; below 521px the button is a round one clear of the row. */
@media (min-width:521px){.os-chrome .ft{padding-bottom:84px}}
/* A phone menu taller than a short screen scrolls inside the pinned bar, so Sign in and Start free stay reachable. */
.os-chrome .mmenu{max-height:calc(100dvh - 61px);overflow-y:auto;overscroll-behavior:contain}
.os-chrome .fln{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;font-size:13px}
.os-chrome .fln b{font-size:13.5px;margin-right:4px}
.os-chrome .fln a{text-decoration:none;color:var(--mu)}
.os-chrome .fln a:hover{color:var(--tx)}
/* A one-site page is Empire Dark from edge to edge, whatever appearance the rest of the site is in. */
body.os-one,html:has(body.os-one){background:#080c0f;color-scheme:dark}
.os-one .about-strip,.os-one .page-tools{container:site/inline-size;background:none;border:0;margin:0}
.os-one .about-strip .container,.os-one .page-tools .container{max-width:none;margin:0;padding:0 clamp(16px,4cqi,56px)}
.os-one .about-strip{padding:72px 0 0}
.os-one .about-strip h2{text-transform:none;font-family:var(--disp);font-size:clamp(22px,2.4cqi,28px);font-weight:650;letter-spacing:-.03em;line-height:1.1;color:var(--tx);margin:0 0 12px}
.os-one .about-strip p{color:var(--mu);font-size:15px;line-height:1.6;max-width:720px;margin:0 0 12px}
.os-one .about-strip p strong{color:var(--tx);font-weight:600}
.os-one .about-strip-links{display:flex;flex-wrap:wrap;gap:6px 18px}
.os-one .about-strip-links a{color:var(--gold);text-decoration:none;border:0;font-size:14px;font-weight:500}
.os-one .about-strip-links a:hover{color:var(--gold2)}
.os-one .page-tools{padding:28px 0 0}
.os-one .page-tools .container{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;border:0}
.os-one .page-tools-label{font-family:inherit;letter-spacing:normal;opacity:1;color:var(--dim);font-size:12.5px;width:auto;margin:0}
.os-one .page-tool{font:inherit;letter-spacing:normal;font-size:12.5px;color:var(--mu);opacity:1;background:none;border:1px solid var(--ln2);border-radius:10px;padding:5px 11px;text-decoration:none;cursor:pointer}
.os-one .page-tool:hover,.os-one .page-tool:focus-visible{color:var(--tx);border-color:var(--mu)}
