:root{--neon:#b9ff00;--ink:#090d0b;--panel:#111713;--panel2:#18201b;--paper:#f5f7f4;--muted:#9aa69e;--line:#29332c;--white:#fff;--display:"Space Grotesk",sans-serif;--body:"DM Sans",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--white);font-family:var(--body);font-size:16px;line-height:1.55}button,input{font:inherit}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;max-width:1240px;margin:auto;padding:0 28px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--white);text-decoration:none}.brand-mark{width:30px;height:30px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;transform:skew(-13deg)}.brand-mark i{display:block;background:var(--neon);border-radius:2px}.brand-mark i:nth-child(2){height:70%;align-self:center}.brand-mark i:nth-child(3){height:42%;align-self:center}.brand-name{font:700 1.35rem var(--display);letter-spacing:-.05em}.brand-name span{color:var(--neon)}.brand>b{font:.7rem var(--display);padding:3px 5px;border:1px solid #516057;border-radius:4px;color:var(--muted)}.period{font-size:.82rem;color:#c8d0ca;letter-spacing:.04em}.period span{display:inline-block;width:7px;height:7px;margin-right:7px;background:var(--neon);border-radius:50%;box-shadow:0 0 14px var(--neon)}main{overflow:hidden}.intro{max-width:1240px;margin:auto;padding:72px 28px 48px;display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:end}.eyebrow{font:700 .75rem var(--display);letter-spacing:.16em;color:var(--neon);margin:0 0 14px}.intro h1{font:700 clamp(3rem,7vw,6.6rem)/.92 var(--display);letter-spacing:-.065em;margin:0;max-width:850px}.intro h1 em{color:var(--neon);font-style:normal}.lead{max-width:690px;color:#bcc6bf;font-size:1.12rem;margin:28px 0 0}.next-card{background:var(--neon);color:var(--ink);padding:26px;border-radius:22px;min-height:245px;position:relative;box-shadow:0 18px 60px rgba(185,255,0,.08)}.next-card:after{content:"";position:absolute;right:22px;top:22px;width:44px;height:44px;border:1px solid rgba(0,0,0,.25);border-radius:50%;background:linear-gradient(135deg,transparent 47%,#111 48%,#111 51%,transparent 52%)}.next-card small{font:700 .7rem var(--display);letter-spacing:.15em}.next-card .date{font:700 4.3rem/1 var(--display);letter-spacing:-.07em;margin:25px 0 8px}.next-card h3{font:700 1.25rem/1.2 var(--display);max-width:75%;margin:0}.next-card p{font-size:.88rem;margin:14px 0 0;color:#303c1a}.overview{max-width:1184px;margin:0 auto 80px;display:grid;grid-template-columns:repeat(4,1fr);background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}.overview div{padding:22px 25px;border-right:1px solid var(--line)}.overview div:last-child{border:0}.overview strong{display:block;font:700 1.7rem var(--display);color:var(--neon)}.overview span{font-size:.82rem;color:var(--muted)}.workspace{background:var(--paper);color:var(--ink);padding:72px max(28px,calc((100vw - 1184px)/2)) 90px}.workspace .eyebrow,.foundations .eyebrow{color:#638700}.section-head{display:flex;justify-content:space-between;gap:28px;align-items:end}.section-head h2,.foundations h2{font:700 clamp(2rem,4vw,3.7rem)/1 var(--display);letter-spacing:-.055em;margin:0}.tools{display:flex;gap:10px}.search{display:flex;align-items:center;gap:8px;background:white;border:1px solid #d8dfd9;border-radius:10px;padding:0 12px}.search:focus-within{outline:2px solid #7ead00;outline-offset:2px}.search input{border:0;background:transparent;min-width:220px;height:44px;outline:0;color:var(--ink)}.print-btn{height:46px;border:1px solid #cbd4cd;background:transparent;border-radius:10px;padding:0 16px;font-weight:700;cursor:pointer}.print-btn:hover{background:white}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:32px 0 22px}.filter{border:1px solid #cbd4cd;background:transparent;border-radius:999px;padding:9px 15px;cursor:pointer;color:#354038;font-weight:600;font-size:.88rem}.filter:hover,.filter.active{background:var(--ink);border-color:var(--ink);color:white}.filter.active:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--neon);margin-right:7px}.progress-wrap{margin:0 0 32px}.progress-copy{display:flex;justify-content:space-between;font-size:.8rem;color:#647067;margin-bottom:8px}.progress-copy b{color:var(--ink)}.progress{height:5px;background:#dfe5e0;border-radius:5px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:#7dac00;transition:width .4s ease}.schedule{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lesson{background:white;border:1px solid #dce3dd;border-radius:14px;overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}.lesson:hover{transform:translateY(-2px);border-color:#afc198;box-shadow:0 12px 30px rgba(31,46,35,.08)}.lesson[open]{border-color:#9cb764}.lesson summary{list-style:none;cursor:pointer;padding:20px;display:grid;grid-template-columns:58px 1fr auto;gap:17px;align-items:center}.lesson summary::-webkit-details-marker{display:none}.num{width:52px;height:52px;border-radius:10px;background:var(--ink);color:var(--neon);display:grid;place-items:center;font:700 1.1rem var(--display)}.lesson.done .num{background:#dae5d7;color:#667267}.lesson-copy small{font-size:.75rem;color:#718078}.lesson-copy h3{font:700 1rem/1.25 var(--display);margin:4px 0 0;letter-spacing:-.02em}.pillar-tag{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:6px 9px;background:#ecf3e9;border-radius:7px;color:#56645a}.chev{font-size:1.25rem;margin-left:4px;transition:transform .2s}.lesson[open] .chev{transform:rotate(45deg)}.lesson-detail{border-top:1px solid #e5eae6;padding:18px 20px 20px 95px}.lesson-detail b{display:block;font:.72rem var(--display);letter-spacing:.1em;color:#648600;margin-bottom:5px}.lesson-detail p{font-size:.9rem;margin:0;color:#4f5d53}.empty{text-align:center;padding:45px;color:#68756c}.foundations{max-width:1184px;margin:0 auto;padding:90px 28px;display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}.foundations>div p:last-child{color:var(--muted);max-width:420px}.foundations ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.foundations li{display:flex;align-items:center;gap:18px;padding:20px 4px;border-bottom:1px solid var(--line);font:600 1rem var(--display)}.foundations li span{color:var(--neon);font-size:.75rem}footer{max-width:1184px;margin:auto;padding:28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:.8rem}footer span{color:var(--neon);font:700 .75rem var(--display);letter-spacing:.12em}footer p{margin:0}
@media(max-width:850px){.intro{grid-template-columns:1fr;padding-top:48px}.next-card{min-height:210px}.overview{grid-template-columns:repeat(2,1fr);margin-left:20px;margin-right:20px}.overview div:nth-child(2){border-right:0}.overview div:nth-child(-n+2){border-bottom:1px solid var(--line)}.section-head{align-items:stretch;flex-direction:column}.tools{width:100%}.search{flex:1}.search input{min-width:0;width:100%}.schedule{grid-template-columns:1fr}.foundations{grid-template-columns:1fr;gap:35px}.lesson-detail{padding-left:20px}}
@media(max-width:520px){.topbar{padding:0 18px}.period{font-size:0}.period span{margin:0}.intro{padding:40px 18px}.intro h1{font-size:3.25rem}.overview{margin-bottom:55px}.workspace{padding:55px 18px 70px}.tools{flex-direction:column}.print-btn{display:none}.lesson summary{grid-template-columns:48px 1fr auto;padding:15px;gap:12px}.num{width:46px;height:46px}.pillar-tag{display:none}.foundations{padding:65px 18px}footer{margin:0 18px;padding:25px 0;display:block}footer p{margin-top:8px}}
@media print{body{background:white;color:black}.topbar,.intro,.overview,.tools,.filters,.progress-wrap,.foundations,footer{display:none}.workspace{padding:0;background:white}.section-head{margin-bottom:20px}.schedule{display:block}.lesson{break-inside:avoid;margin-bottom:8px}.lesson detail{display:block}.lesson-detail{display:block!important}.lesson summary{padding:10px}.num{background:#111!important;color:#b9ff00!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.calendar-btn{height:46px;border:1px solid var(--ink);background:var(--ink);color:white;border-radius:10px;padding:0 16px;font-weight:700;cursor:pointer;white-space:nowrap}.calendar-btn:hover{background:#202a23}.calendar-btn:focus-visible,.print-btn:focus-visible,.gcal-link:focus-visible{outline:3px solid #7dac00;outline-offset:2px}.gcal-link{display:inline-flex;align-items:center;gap:7px;margin-top:15px;color:#456000;font-size:.86rem;font-weight:700;text-decoration:none}.gcal-link:hover{text-decoration:underline}.gcal-link span{font-size:1rem}
@media(max-width:850px){.tools{flex-wrap:wrap}.search{flex:1 1 100%}.calendar-btn{flex:1}}
@media(max-width:520px){.calendar-btn{width:100%}}
@media print{.gcal-link{display:none}}
.brand-icon{display:block;width:32px;height:32px;border-radius:8px}
.qa-card{max-width:1184px;margin:-48px auto 72px;padding:26px 28px;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:18px}.qa-day{width:84px;height:84px;display:grid;place-items:center;align-content:center;background:var(--neon);color:var(--ink);border-radius:16px}.qa-day strong{font:700 1.45rem/1 var(--display)}.qa-day span{font:700 .78rem var(--display);letter-spacing:.08em;margin-top:7px}.qa-card .eyebrow{margin-bottom:7px}.qa-card h2{font:700 1.45rem/1.1 var(--display);letter-spacing:-.035em;margin:0}.qa-card p:last-child{color:#aebbb2;margin:8px 0 0;max-width:680px;font-size:.92rem}.qa-calendar-btn{height:46px;border:1px solid var(--neon);background:transparent;color:var(--neon);border-radius:10px;padding:0 16px;font-weight:700;cursor:pointer;white-space:nowrap}.qa-calendar-btn:hover{background:var(--neon);color:var(--ink)}.qa-calendar-btn:focus-visible{outline:3px solid white;outline-offset:3px}
@media(max-width:850px){.qa-card{margin:-30px 20px 58px;grid-template-columns:auto 1fr}.qa-calendar-btn{grid-column:1/-1;width:100%}}
@media(max-width:520px){.qa-card{margin:-28px 18px 52px;padding:20px;grid-template-columns:1fr}.qa-day{width:72px;height:72px}.qa-calendar-btn{grid-column:auto}}
@media print{.qa-card{display:none}}
