:root{--ink:#11110f;--cream:#f4efe6;--blue:#315cff;--sand:#d9cdbd;--white:#fff;--muted:#a6a39d;--line:rgba(244,239,230,.18);--green:#38c172;--yellow:#f0b429;--red:#e34b4b;--shadow:0 30px 80px rgba(0,0,0,.26)}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--cream);font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}.serif{font-family:Georgia,Times New Roman,serif}.wrap{width:min(1180px,calc(100% - 34px));margin:auto}.blue{color:var(--blue)}.topbar{position:sticky;top:0;z-index:40;background:#11110ff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.topbar-inner{height:64px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{font-weight:900;letter-spacing:.08em;font-size:12px}.brand b{color:var(--blue)}.nav{display:flex;gap:10px;align-items:center}.btn{border:1px solid transparent;background:transparent;color:var(--cream);padding:12px 16px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;text-decoration:none}.btn-blue{background:var(--blue);color:#fff}.btn-outline{border-color:#55514b}.btn-danger{border-color:#e34b4ba6;color:#ffb1b1}.hero{min-height:52vh;display:grid;align-items:end;padding:70px 0 58px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.hero:before{content:"";position:absolute;right:-5vw;top:6vh;width:47vw;height:53vh;border:1px solid rgba(49,92,255,.5);transform:rotate(8deg)}.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:end}.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:800}.danger{color:#b72f2f}.hero h1{font-size:clamp(72px,9vw,135px);line-height:.78;letter-spacing:-.065em;margin:20px 0 24px;font-weight:400}.hero h1 em{font-style:italic;color:var(--blue)}.hero-copy{font-size:18px;line-height:1.55;max-width:620px;color:#d7d1c7}.hero-side{border-left:1px solid var(--line);padding-left:34px}.hero-side .number{font:400 105px/.8 Georgia,serif;color:var(--blue)}.section{padding:78px 0}.section.light{background:var(--cream);color:var(--ink)}.section h2{font:400 clamp(48px,6vw,88px)/.9 Georgia,serif;letter-spacing:-.055em;margin:10px 0 18px}.progress-shell{border:1px solid #c5bdb1;padding:28px;background:linear-gradient(180deg,#315cff14,#315cff04);box-shadow:var(--shadow)}.progress-row{display:grid;grid-template-columns:1fr auto;gap:15px;align-items:end}.progress-row strong{font:400 56px Georgia,serif;color:var(--blue)}.progress-track{height:12px;background:#262622;margin:20px 0 8px;overflow:hidden}.progress-bar{height:100%;background:var(--blue);width:0;transition:.35s}.progress-meta{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.08em;color:#6f6a62}.status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}.status-card{border:1px solid #c5bdb1;padding:18px;min-height:135px}.status-card .n{color:var(--blue);font:italic 26px Georgia,serif}.status-card h3{font:400 24px Georgia,serif;margin:18px 0 8px}.status-card p{font-size:12px;color:#5d5851}.pill{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;padding:8px 10px;border:1px solid #bdb6aa;display:inline-block}.pill.good{background:#e5f8ed;border-color:#9fd9b5;color:#176137}.pill.warn{background:#fff5da;border-color:#e7cb7d;color:#765511}.pill.bad{background:#ffe9e9;border-color:#e8a4a4;color:#8d2525}.phase{margin-top:54px}.phase-head{display:grid;grid-template-columns:120px 1fr;gap:28px;align-items:start;margin-bottom:18px}.phase-no{font:italic 62px Georgia,serif;color:var(--blue)}.phase-head h3{font:400 44px Georgia,serif;margin:0 0 8px}.task-card{border-top:1px solid #beb6ab;padding:22px 0}.task-main{display:grid;grid-template-columns:32px 1fr auto;gap:14px;align-items:start}.task-main input[type=checkbox]{margin-top:3px;width:18px;height:18px}.task-title{font-weight:800;font-size:14px}.task-desc{font-size:12px;color:#68625c;line-height:1.5;margin-top:5px}.task-status{font-size:9px;letter-spacing:.12em;text-transform:uppercase;font-weight:900;color:#777}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:14px 0 0 46px}.field{display:flex;flex-direction:column;gap:6px;margin-top:10px}.field label,.proof label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:#6a645e}.field input,.field select,.field textarea,.scorebox select{width:100%;border:1px solid #bdb6aa;background:#fffdf8;color:var(--ink);padding:11px 12px;outline:none}.field textarea{min-height:88px;resize:vertical}.resource-row{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 0 46px}.resource-link{text-decoration:none;border:1px solid #aaa196;padding:9px 11px;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.blocker{border:1px solid rgba(227,75,75,.5);background:#e34b4b0f;padding:26px;margin-top:22px}.blocker h3{font:400 30px Georgia,serif;margin:0 0 8px}.blocker-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.scorebox{display:grid;grid-template-columns:1fr 260px;gap:30px;align-items:center;border:1px solid #bdb6aa;padding:28px;margin-top:30px}.next-action{padding:18px;border:1px solid rgba(49,92,255,.4);background:#315cff14;margin-top:18px}.next-action b{display:block;color:var(--blue);font-size:10px;letter-spacing:.14em;margin-bottom:8px}.proof{margin:14px 0 0 46px}.admin-main{padding:36px}.admin-top h1{font:400 58px Georgia,serif;letter-spacing:-.05em;margin:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0}.metric{border:1px solid var(--line);padding:20px}.metric .k{font-size:10px;letter-spacing:.12em;color:#9f9b94;font-weight:800}.metric .v{font:400 42px Georgia,serif;margin-top:10px}.table-wrap{overflow:auto;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;min-width:980px}th,td{padding:14px 12px;text-align:left;border-bottom:1px solid var(--line);font-size:12px}th{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#8d8982}.student-link{font-weight:800;text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:3px;background:transparent;color:var(--cream);border:0}.stalled{background:#e34b4b1f}.drawer{position:fixed;right:0;top:64px;bottom:0;width:min(620px,100%);background:var(--cream);color:var(--ink);z-index:70;box-shadow:-30px 0 80px #0006;padding:30px;overflow:auto}.drawer h2{font:400 46px Georgia,serif;margin:0 0 6px}.drawer .close{position:absolute;right:18px;top:18px;color:var(--ink);border:1px solid #aaa196;background:transparent}.drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.drawer-card{border:1px solid #bdb6aa;padding:14px;white-space:pre-wrap}.drawer-card b{display:block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#6b655e;margin-bottom:7px}.phase-line{border-top:1px solid #bdb6aa;padding:13px 0;display:flex;justify-content:space-between;gap:16px}.auth{min-height:100vh;display:grid;place-items:center;padding:30px;position:relative;overflow:hidden}.auth:before{content:"";position:absolute;width:620px;height:620px;border:1px solid rgba(49,92,255,.45);transform:rotate(12deg);right:-250px;top:-120px}.auth-card{width:min(520px,100%);border:1px solid var(--line);padding:40px;background:#11110fdb;position:relative;z-index:2}.auth-card h1{font:400 60px/.85 Georgia,serif;letter-spacing:-.05em;margin:20px 0}.auth-card input{width:100%;padding:14px;border:1px solid #5b5750;background:#171714;color:var(--cream);margin:8px 0 12px}.auth-card p{color:#bbb6ae;line-height:1.6}.micro{font-size:10px;color:#777;margin-top:18px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--blue);color:#fff;padding:13px 16px;z-index:100;font-size:12px;font-weight:800;pointer-events:none;transition:.25s}@media(max-width:900px){.hero-grid,.scorebox{grid-template-columns:1fr}.hero-side{display:none}.status-grid,.metrics{grid-template-columns:repeat(2,1fr)}.field-grid,.blocker-grid{grid-template-columns:1fr}.admin-main{padding:24px 16px}}@media(max-width:600px){.status-grid,.metrics{grid-template-columns:1fr}.hero h1{font-size:72px}.phase-head{grid-template-columns:1fr}.task-main{grid-template-columns:28px 1fr}.task-status{grid-column:2}.field-grid,.resource-row,.proof{margin-left:42px}.drawer-grid{grid-template-columns:1fr}}
