:root{--ground:#f5f2ec;--surface:#fbfaf7;--surface-2:#efeae1;--ink:#232321;--ink-2:#4a4842;--muted:#77736b;--line:#e9e3d9;--line-strong:#d2ccc2;--accent:#ad8964;--accent-soft:#efe2cf;--olive:#232321;--cta:#232321;--s1:#ad8964;--s2:#77736b;--good:#4b6b4e;--warn:#92704d;--crit:#8b4a3e;--shadow:0 1px 2px #231e1912, 0 6px 18px #231e190f;--r:10px;--r-s:6px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#17140f;--surface:#211d18;--surface-2:#2a251e;--ink:#f5f2ec;--ink-2:#d2ccc2;--muted:#9a948a;--line:#332c24;--line-strong:#453c31;--accent:#c9a67a;--accent-soft:#3a2e22;--olive:#c9a67a;--cta:#c9a67a;--s1:#c9a67a;--s2:#9a948a;--good:#7fa37f;--warn:#c2996b;--crit:#c56a5e;--shadow:0 1px 2px #0006, 0 8px 22px #00000047}}:root[data-theme=dark]{--ground:#17140f;--surface:#211d18;--surface-2:#2a251e;--ink:#f5f2ec;--ink-2:#d2ccc2;--muted:#9a948a;--line:#332c24;--line-strong:#453c31;--accent:#c9a67a;--accent-soft:#3a2e22;--olive:#c9a67a;--cta:#c9a67a;--s1:#c9a67a;--s2:#9a948a;--good:#7fa37f;--warn:#c2996b;--crit:#c56a5e;--shadow:0 1px 2px #0006, 0 8px 22px #00000047}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica Neue,system-ui,-apple-system,Segoe UI,sans-serif}.landing{background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica Neue,system-ui,sans-serif;line-height:1.6}.landing h1,.landing h2,.landing h3{text-wrap:balance;margin:0;font-family:Georgia,Times New Roman,serif;font-weight:700}.landing a{color:inherit}.landing .wrap{max-width:1080px;margin:0 auto;padding:0 28px}.landing .eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-family:Arial,sans-serif;font-size:11px}.landing header{border-bottom:1px solid var(--line);background:var(--surface)}.landing .topbar{align-items:center;gap:20px;padding:18px 0;display:flex}.landing .brand{letter-spacing:.04em;font-family:Georgia,serif;font-size:19px;font-weight:700}.landing nav{gap:22px;margin-left:auto;font-size:13.5px;display:flex}.landing nav a{color:var(--ink-2);text-decoration:none}.landing .btn,.landing nav a:hover{color:var(--ink)}.landing .btn{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:10px 18px;font-family:inherit;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex}.landing .btn:hover{border-color:var(--accent);color:var(--accent)}.landing .btn-primary{background:var(--cta);border-color:var(--cta);color:var(--ground)}.landing .btn-primary:hover{opacity:.9;color:var(--ground)}.landing .btn:disabled{opacity:.6;cursor:default}.landing .hero{text-align:center;padding:88px 0 64px}.landing .hero .eyebrow{margin-bottom:18px}.landing .hero h1{max-width:16ch;margin:0 auto;font-size:44px;line-height:1.15}.landing .hero p{max-width:52ch;color:var(--ink-2);margin:22px auto 0;font-size:16.5px}.landing .hero .ctas{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:32px;display:flex}.landing section{border-top:1px solid var(--line);padding:56px 0}.landing section h2{margin-bottom:10px;font-size:26px}.landing section>.wrap>p.lede{max-width:60ch;color:var(--ink-2);margin:0 0 32px;font-size:15.5px}.landing .pillars{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.landing .pillar{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:26px}.landing .pillar .n{color:var(--accent);margin-bottom:10px;font-family:Georgia,serif;font-size:13px}.landing .pillar h3{margin-bottom:8px;font-size:16.5px}.landing .pillar p{color:var(--ink-2);margin:0;font-size:14px}.landing .signup{background:var(--surface-2)}.landing .authcard{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;max-width:460px;margin:0 auto;padding:30px}.landing .roleseg{gap:8px;margin-bottom:22px;display:flex}.landing .roleseg button{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:8px;flex:1;padding:12px;font-family:inherit;font-size:13.5px;font-weight:600}.landing .roleseg button[aria-pressed=true]{background:var(--cta);border-color:var(--cta);color:var(--ground)}.landing .field{text-align:left;margin-bottom:14px}.landing .field label{color:var(--muted);margin-bottom:5px;font-size:12.5px;display:block}.landing .field input,.landing .field textarea{border:1px solid var(--line-strong);background:var(--ground);width:100%;color:var(--ink);font:inherit;border-radius:6px;padding:10px 12px}.landing .field textarea{resize:vertical;min-height:70px}.landing .roledesc{color:var(--ink-2);background:var(--accent-soft);border-radius:8px;margin-bottom:18px;padding:12px 14px;font-size:13px}.landing .formmsg{text-align:center;margin-top:14px;font-size:13px}.landing .formmsg.err{color:var(--crit)}.landing .formmsg.ok{color:var(--good)}.landing .modeswitch{text-align:center;color:var(--muted);margin-top:16px;font-size:13px}.landing .modeswitch button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.landing .waitlist{text-align:center;max-width:460px;margin:0 auto}.landing .waitlist .mark{color:var(--accent);margin-bottom:6px;font-family:Georgia,serif;font-size:40px}.landing footer{border-top:1px solid var(--line);color:var(--muted);padding:32px 0;font-size:12.5px}.landing footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.landing footer .fineprint{max-width:60ch}@media (width<=760px){.landing .topbar{flex-wrap:wrap}.landing nav{gap:14px;font-size:12.5px}.landing .hero{padding:56px 0 48px}.landing .hero h1{font-size:30px}.landing .pillars{grid-template-columns:1fr}.landing .authcard{padding:24px}}.console{background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica Neue,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.55}.console h1,.console h2,.console h3,.console h4{text-wrap:balance;letter-spacing:0;margin:0;font-family:Georgia,Times New Roman,serif}.console h1{font-size:20px;font-weight:700}.console h2{font-size:17px;font-weight:600}.console h3{font-size:14px;font-weight:600}.console .eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-family:Arial,sans-serif;font-size:10.5px}.console button{font:inherit;color:inherit;cursor:pointer}.console input,.console select,.console textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-s);padding:6px 8px}.console button:focus-visible,.console input:focus-visible,.console select:focus-visible,.console textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.console .topbar{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:18px;padding:12px 22px;display:flex}.console .brand{align-items:baseline;gap:10px;display:flex}.console .brand-mark{letter-spacing:.03em;font-family:Georgia,serif;font-size:17px;font-weight:700}.console .brand-sub{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-family:Arial,sans-serif;font-size:10.5px}.console .rolesw{background:var(--surface-2);border-radius:var(--r-s);gap:2px;margin-left:auto;padding:3px;display:flex}.console .rolesw button{color:var(--ink-2);background:0 0;border:0;border-radius:4px;padding:6px 14px;font-size:12.5px;font-weight:500}.console .rolesw button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-weight:600}.console .protochip{letter-spacing:.1em;text-transform:uppercase;color:var(--warn);border:1px solid var(--line-strong);border-radius:99px;padding:3px 9px;font-family:Arial,sans-serif;font-size:10px}.console .layout{grid-template-columns:212px minmax(0,1fr);min-height:calc(100vh - 57px);display:grid}.console .rail{border-right:1px solid var(--line);background:var(--surface);gap:22px;padding:18px 12px}.console .navgroup,.console .rail{flex-direction:column;display:flex}.console .navgroup{gap:2px}.console .navgroup .eyebrow{padding:0 10px 6px}.console .rail a{border-radius:var(--r-s);color:var(--ink-2);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;text-decoration:none;display:flex}.console .rail a:hover{background:var(--surface-2);color:var(--ink)}.console .rail a[aria-current=page]{background:var(--accent-soft);color:var(--ink);font-weight:600}.console .rail .count{color:var(--muted);font-family:Arial,sans-serif;font-size:11px}.console .railnote{color:var(--muted);border-top:1px solid var(--line);margin-top:auto;padding-top:12px;font-size:11.5px;line-height:1.5}.console main{max-width:1180px;padding:24px 26px 60px}.console .screen{display:none}.console .screen.is-active{display:block}.console .pagehead{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.console .pagehead p{color:var(--ink-2);max-width:62ch;margin:4px 0 0}.console .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px}.console .grid{gap:14px;display:grid}.console .row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.console .btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-s);padding:7px 13px;font-size:13px;font-weight:500}.console .btn:hover{border-color:var(--accent);color:var(--accent)}.console .btn:disabled{opacity:.6;cursor:default;border-color:var(--line-strong);color:var(--muted)}.console .btn-primary{background:var(--olive);color:var(--ground);border-color:var(--olive);font-weight:600}.console .btn-primary:hover{opacity:.9;color:var(--ground)}.console .btn-sm{padding:4px 9px;font-size:12px}.console .pill{border:1px solid var(--line-strong);color:var(--ink-2);border-radius:99px;align-items:center;gap:6px;padding:3px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.console .pill.good{color:var(--good);border-color:color-mix(in oklab,var(--good) 40%,var(--line))}.console .pill.warn{color:var(--warn);border-color:color-mix(in oklab,var(--warn) 40%,var(--line))}.console .pill.crit{color:var(--crit);border-color:color-mix(in oklab,var(--crit) 40%,var(--line))}.console .pill:before{content:"";background:currentColor;border-radius:99px;width:6px;height:6px}.console .tablewrap{overflow-x:auto}.console table{border-collapse:collapse;width:100%;min-width:620px}.console th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 10px 8px;font-family:Arial,sans-serif;font-size:10.5px;font-weight:400}.console td{border-top:1px solid var(--line);vertical-align:middle;padding:11px 10px}.console tbody tr:hover{background:var(--surface-2)}.console .num{font-variant-numeric:tabular-nums;font-family:Arial,sans-serif}.console .stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.console .stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}.console .stat .v{font-variant-numeric:tabular-nums;margin-top:4px;font-family:Georgia,serif;font-size:26px;font-weight:700;line-height:1.15}.console .stat .d{color:var(--muted);margin-top:2px;font-size:11.5px}.console .chartcard{position:relative}.console .filters{flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 6px;display:flex}.console .seg{background:var(--surface-2);border-radius:var(--r-s);padding:2px;display:flex}.console .seg button{color:var(--ink-2);background:0 0;border:0;border-radius:4px;padding:5px 11px;font-size:12px}.console .seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-weight:600}.console .legend{color:var(--ink-2);flex-wrap:wrap;gap:16px;margin-top:2px;font-size:12px;display:flex}.console .legend span{align-items:center;gap:7px;display:inline-flex}.console .swatch{border-radius:2px;width:14px;height:3px;display:inline-block}.console .swatch.dash{background:repeating-linear-gradient(90deg,var(--s2) 0 5px,transparent 5px 9px)}.console .tip{pointer-events:none;opacity:0;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-s);box-shadow:var(--shadow);z-index:5;min-width:155px;padding:8px 10px;font-size:12px;transition:opacity .12s;position:absolute}.console .tip .t{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;font-family:Arial,sans-serif;font-size:10.5px}.console .tip .r{justify-content:space-between;gap:14px;display:flex}.console .tip .r b{font-family:Arial,sans-serif;font-weight:500}.console .attend{flex-wrap:wrap;gap:4px;margin-top:10px;display:flex}.console .cell{border:1px solid var(--line-strong);width:26px;height:26px;color:var(--muted);border-radius:5px;place-items:center;font-family:Arial,sans-serif;font-size:10px;display:grid}.console .cell.done{background:color-mix(in oklab,var(--s1) 22%,var(--surface));border-color:var(--s1);color:var(--ink)}.console .cell.part{background:color-mix(in oklab,var(--s1) 9%,var(--surface));border-color:var(--s1);color:var(--ink-2);border-style:dashed}.console .cell.miss{border-style:dotted;border-color:var(--crit);color:var(--crit)}.console .cell.next{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.console .builder{grid-template-columns:minmax(0,1.3fr) minmax(320px,1fr);align-items:start;gap:16px;display:grid}.console .weekrow{align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.console .weeklabel{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex:none;width:52px;padding-top:8px;font-family:Arial,sans-serif;font-size:10.5px}.console .days{flex-wrap:wrap;gap:8px;display:flex}.console .day{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-s);text-align:left;min-width:132px;padding:8px 10px;line-height:1.35}.console .day:hover{border-color:var(--accent)}.console .day[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.console .day .n{color:var(--muted);letter-spacing:.08em;font-family:Arial,sans-serif;font-size:10px}.console .day .t{margin-top:2px;font-size:12.5px;font-weight:500}.console .exrow{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;display:grid}.console .exrow:first-of-type{border-top:0}.console .exmeta{color:var(--muted);margin-top:2px;font-size:12px}.console .toggle{color:var(--ink-2);white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:12px;display:inline-flex}.console .switch{border:1px solid var(--line-strong);background:var(--surface-2);border-radius:99px;flex:none;width:36px;height:20px;padding:0;display:inline-block;position:relative}.console .switch:after{content:"";background:var(--muted);border-radius:99px;width:14px;height:14px;transition:transform .16s,background .16s;position:absolute;top:2px;left:2px}.console .switch[aria-checked=true]{background:color-mix(in oklab,var(--accent) 30%,var(--surface));border-color:var(--accent)}.console .switch[aria-checked=true]:after{background:var(--accent);transform:translate(16px)}.console .field{color:var(--ink-2);flex-direction:column;gap:5px;font-size:12px;display:flex}.console .modal-overlay{z-index:50;background:#231e1973;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.console .modal-overlay[hidden]{display:none}.console .modal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);width:100%;max-width:380px;padding:24px}.console .modal-card .field{margin-top:2px}.console .modal-card .field label{color:var(--ink);font-size:12.5px;font-weight:600}.console .modal-card input{width:100%;margin-top:6px}.console .field input,.console .field select{width:100%}.console .chips{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.console .chip{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:99px;padding:4px 11px;font-size:12px}.console .chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);font-weight:600}.console .libgrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.console .libcard{gap:12px;padding:12px;display:flex}.console .exercise,.console .libcard{border:1px solid var(--line);background:var(--surface);border-radius:var(--r)}.console .exercise{overflow:hidden}.console .exercise+.exercise{margin-top:12px}.console .exhead{align-items:flex-start;gap:14px;padding:14px;display:flex}.console .demo{border-radius:var(--r-s);border:1px dashed var(--line-strong);background:var(--surface-2);text-align:center;letter-spacing:.06em;width:104px;height:78px;color:var(--muted);text-transform:uppercase;flex:none;place-items:center;padding:6px;font-family:Arial,sans-serif;font-size:9px;display:grid}.console .demo-sm{width:74px;height:56px;font-size:8px}.console .sets{padding:6px 14px 14px}.console .setrow,.console .sets{border-top:1px solid var(--line)}.console .setrow{grid-template-columns:46px 92px 96px 104px auto;justify-content:start;align-items:center;gap:10px;padding:8px 0;display:grid}.console .setrow:first-child{border-top:0}.console .setrow.logged{color:var(--muted)}.console .setrow input{width:100%}.console .setrow .log-btn{justify-self:start;min-width:84px}.console .setlabel{color:var(--muted);letter-spacing:.06em;font-family:Arial,sans-serif;font-size:11px}.console .timerbar{border-top:1px solid var(--line);background:color-mix(in oklab,var(--accent) 7%,var(--surface));align-items:center;gap:14px;padding:12px 14px;display:flex}.console .timerbar.off{background:var(--surface-2)}.console .clock{font-variant-numeric:tabular-nums;font-family:Georgia,serif;font-size:30px;font-weight:700;line-height:1}.console .curric{border-left:3px solid var(--accent);padding:2px 0 2px 14px}.console .curric p{color:var(--ink-2);margin:6px 0 0}.console .note{color:var(--muted);font-size:12.5px}.console textarea{resize:vertical;width:100%;min-height:96px;line-height:1.55}@media (width<=900px){.console .layout{grid-template-columns:1fr}.console .rail{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;gap:14px;padding:12px}.console .railnote{display:none}.console .builder{grid-template-columns:1fr}.console .setrow{grid-template-columns:44px 1fr 1fr;row-gap:6px}}@media (prefers-reduced-motion:reduce){.console *{transition:none!important;animation:none!important}}
