.site-header{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:1px solid var(--line)}.site-header__inner{max-width:var(--container-max);height:var(--header-height);margin:0 auto;padding:0 var(--space-6);display:flex;align-items:center;gap:var(--space-8)}.site-header__logo{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--ink);letter-spacing:-.01em;margin-right:auto}.site-header__nav{display:flex;align-items:center;gap:var(--space-6)}.site-header__link{font-size:.9375rem;font-weight:500;color:var(--ink);padding:.5rem 0;border-bottom:2px solid transparent}.site-header__link:hover{color:var(--accent)}.site-header__link--active{color:var(--accent);border-bottom-color:var(--accent)}.site-header__actions{display:flex;align-items:center;gap:var(--space-4)}.site-header__hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;background:none;border:none;cursor:pointer;padding:0}.site-header__hamburger span{display:block;height:2px;background:var(--ink);border-radius:1px}.mega-menu{position:relative}.mega-menu__trigger{display:flex;align-items:center;gap:.25rem;background:none;border:none;border-bottom:2px solid transparent;line-height:inherit;font-family:var(--font-body);font-size:.9375rem;font-weight:500;color:var(--ink);cursor:pointer;padding:.5rem 0}.mega-menu__trigger:hover{color:var(--accent)}.mega-menu__caret{font-size:.75rem;transition:transform .15s ease}.mega-menu__caret--open{transform:rotate(180deg)}.mega-menu__panel{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%);min-width:280px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-2);display:flex;flex-direction:column}.mega-menu__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:.625rem .75rem;border-radius:var(--radius-sm);color:var(--ink);font-weight:500}.mega-menu__item:hover{background:var(--paper)}.mega-menu__item-count{color:var(--slate);font-size:.6875rem}.mega-menu__empty{padding:.625rem .75rem;font-size:.875rem;color:var(--slate)}.mega-menu__all{margin-top:var(--space-1);padding:.625rem .75rem;border-top:1px solid var(--line);font-size:.875rem;font-weight:600;color:var(--accent)}.mobile-menu{position:fixed;inset:var(--header-height) 0 0 0;z-index:40;background:var(--paper);padding:var(--space-6);display:flex;flex-direction:column;justify-content:space-between;overflow-y:auto}.mobile-menu__nav{display:flex;flex-direction:column}.mobile-menu__link{padding:var(--space-4) 0;border-bottom:1px solid var(--line);font-size:1.0625rem;font-weight:500;color:var(--ink);background:none;border-left:none;border-right:none;border-top:none;text-align:left;display:flex;align-items:center;justify-content:space-between;width:100%;cursor:pointer}.mobile-menu__accordion-trigger{font-family:var(--font-body)}.mobile-menu__submenu{display:flex;flex-direction:column;padding:var(--space-2) 0 var(--space-2) var(--space-4);border-bottom:1px solid var(--line)}.mobile-menu__sublink{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;color:var(--slate);font-size:.9375rem}.mobile-menu__actions{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-6)}@media (max-width: 900px){.site-header__nav,.site-header__actions{display:none}.site-header__hamburger{display:flex}}.site-footer{background:var(--ink);color:var(--paper);margin-top:var(--space-24)}.site-footer__grid{max-width:var(--container-max);margin:0 auto;padding:var(--space-16) var(--space-6) var(--space-8);display:grid;grid-template-columns:2fr repeat(4,1fr);gap:var(--space-8)}.site-footer__col ul{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-3)}.site-footer__col a{color:#fafaf7bf;font-size:.9375rem}.site-footer__col a:hover{color:var(--accent-on-ink)}.site-footer__brand{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--paper)}.site-footer__blurb{margin-top:var(--space-3);color:#fafaf7bf;font-size:.9375rem;max-width:320px}.site-footer__col>.mono-label{color:#fafaf78c}.site-footer__bottom{border-top:1px solid rgba(250,250,247,.15);padding:var(--space-4) var(--space-6);max-width:var(--container-max);margin:0 auto;font-size:.8125rem;color:#fafaf799}@media (max-width: 900px){.site-footer__grid{grid-template-columns:1fr 1fr}}@media (max-width: 560px){.site-footer__grid{grid-template-columns:1fr}}:root{--paper: #F5F3ED;--ink: #1B2A4A;--line: #AEB9C9;--line-strong: #75849C;--accent: #E8622C;--slate: #46566B;--white: #FFFFFF;--accent-on-ink: #FF7A45;--font-display: "Space Grotesk", "Segoe UI", sans-serif;--font-body: "Inter", "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "Consolas", monospace;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-24: 6rem;--radius-sm: 2px;--radius-md: 4px;--shadow-card: 0 1px 2px rgba(27, 42, 74, .06), 0 2px 8px rgba(27, 42, 74, .04);--container-max: 1240px;--header-height: 72px}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;line-height:1.15;margin:0}p{margin:0;color:var(--slate)}a{color:inherit;text-decoration:none}button{font-family:inherit}img,svg{display:block;max-width:100%}ul,ol{margin:0;padding:0;list-style:none}.mono-label{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-page{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4)}.auth-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:32px 32px;background-position:center;-webkit-mask-image:radial-gradient(circle at center,black 0%,transparent 75%);mask-image:radial-gradient(circle at center,black 0%,transparent 75%)}.auth-page__brand{font-family:var(--font-display);font-weight:600;font-size:1.25rem;color:var(--ink);margin-bottom:var(--space-6)}.auth-card{width:100%;max-width:440px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--space-8);position:relative}.auth-card:before,.auth-card:after{content:"";position:absolute;width:10px;height:10px;border:2px solid var(--ink)}.auth-card:before{top:-1px;left:-1px;border-right:none;border-bottom:none}.auth-card:after{bottom:-1px;right:-1px;border-left:none;border-top:none}.auth-card__eyebrow{display:block;margin-bottom:var(--space-2)}.auth-card__title{font-size:1.75rem;margin-bottom:var(--space-2)}.auth-card__subtitle{margin-bottom:var(--space-6);color:var(--slate);font-size:.9375rem}.auth-card__footer{margin-top:var(--space-6);font-size:.9375rem;color:var(--slate);text-align:center}.auth-card__footer a{color:var(--accent);font-weight:500}form{display:flex;flex-direction:column;gap:var(--space-4)}.field__label{display:block;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);margin-bottom:var(--space-2)}.field__input,.field__select{width:100%;padding:.625rem .75rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:.9375rem;transition:border-color .15s ease}.field__input:focus,.field__select:focus{border-color:var(--accent);outline:none}.field__input--error,.field__select--error{border-color:var(--accent)}.field__error{margin-top:var(--space-1);font-size:.8125rem;color:var(--accent)}.checkbox-group{display:flex;flex-wrap:wrap;gap:var(--space-3)}.checkbox-group__option{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.5rem .75rem;cursor:pointer;font-size:.875rem;color:var(--ink)}.checkbox-group__option:has(input:checked){border-color:var(--accent);background:#e8622c0f}.checkbox-group__option input{accent-color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.75rem 1.5rem;border-radius:var(--radius-sm);font-family:var(--font-body);font-weight:600;font-size:.9375rem;cursor:pointer;border:1px solid transparent;transition:opacity .15s ease,background-color .15s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--accent);color:var(--white)}.btn--primary:hover:not(:disabled){opacity:.92}.btn--outline{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn--outline:hover:not(:disabled){border-color:var(--ink)}.btn--block{width:100%}.btn--sm{padding:.5rem 1rem;font-size:.875rem}.form-message{padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;border:1px solid transparent}.form-message--error{background:#fdf1ec;border-color:var(--accent);color:#9a3412}.form-message--success{background:#f0f4f1;border-color:var(--line-strong);color:var(--ink)}.google-btn{border-color:var(--line-strong)}.auth-divider{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-5) 0;color:var(--slate);font-size:.8125rem;text-transform:uppercase;letter-spacing:.04em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.blueprint-grid{background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:32px 32px;opacity:.35}.section-eyebrow{display:block;margin-bottom:var(--space-3)}.section-heading{margin-bottom:var(--space-10, var(--space-8))}.section-heading--center{text-align:center}.section-heading__title{font-size:clamp(1.75rem,3vw,2.25rem)}.section-heading__subtitle{margin-top:var(--space-3);max-width:620px;font-size:1rem}.section-heading--center .section-heading__subtitle{margin-left:auto;margin-right:auto}.drafting-frame{position:relative;border:1px solid var(--line)}.drafting-frame:before,.drafting-frame:after{content:"";position:absolute;width:12px;height:12px;border:2px solid var(--ink);pointer-events:none}.drafting-frame:before{top:-1px;left:-1px;border-right:none;border-bottom:none}.drafting-frame:after{bottom:-1px;right:-1px;border-left:none;border-top:none}.drafting-frame--interactive:before,.drafting-frame--interactive:after{opacity:0;transition:opacity .15s ease}.drafting-frame--interactive:hover:before,.drafting-frame--interactive:hover:after,.drafting-frame--interactive:focus-within:before,.drafting-frame--interactive:focus-within:after{opacity:1}.dimension-rule{display:flex;align-items:center;height:9px}.dimension-rule:before,.dimension-rule:after{content:"";width:1px;height:9px;background:var(--line-strong)}.dimension-rule__line{flex:1;height:1px;background:var(--line-strong)}.placeholder-art{position:relative;aspect-ratio:10 / 9;overflow:hidden;background:var(--paper);border:1px solid var(--line)}.placeholder-art svg{width:100%;height:100%}.placeholder-art__label{position:absolute;left:8px;bottom:8px;font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.04em;color:var(--slate);background:#fafaf7d9;padding:2px 6px}.rich-content p{margin:0 0 .9em}.rich-content p:last-child{margin-bottom:0}.rich-content h2,.rich-content h3{font-family:var(--font-display);font-weight:600;color:var(--ink);margin:1em 0 .5em}.rich-content h2:first-child,.rich-content h3:first-child{margin-top:0}.rich-content h2{font-size:1.5rem}.rich-content h3{font-size:1.1875rem}.rich-content ul{margin:0 0 .9em;padding-left:1.25em;list-style:disc}.rich-content img{max-width:100%;border-radius:var(--radius-sm);margin:1em 0;display:block}.container{max-width:var(--container-max);margin:0 auto;padding-left:var(--space-6);padding-right:var(--space-6)}.section{padding-top:var(--space-24);padding-bottom:var(--space-24)}.section__status{text-align:center;color:var(--slate);padding:var(--space-8) 0}.course-filter-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-10, var(--space-8))}.course-filter-chip{padding:.5rem 1rem;border:1px solid var(--line-strong);border-radius:999px;font-size:.875rem;font-weight:500;color:var(--ink);background:none;cursor:pointer;font-family:var(--font-body)}.course-filter-chip:hover{border-color:var(--accent);color:var(--accent)}.course-filter-chip--active{border-color:var(--accent);background:var(--accent);color:var(--white)}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-6)}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-6)}.category-card,.course-card{display:flex;flex-direction:column;width:100%;max-width:100%;min-width:0;background:var(--white);color:var(--ink);overflow:hidden;box-sizing:border-box}.category-card__image,.course-card__image{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block;flex-shrink:0}.category-card__body,.course-card__body{display:flex;flex-direction:column;flex:1;padding:var(--space-5);min-width:0;overflow-wrap:break-word;word-break:break-word}.category-card__name{font-size:1.25rem;margin-top:var(--space-2);margin-bottom:var(--space-2)}.category-card__desc,.course-card__desc{font-size:.9375rem;margin-bottom:var(--space-4)}.category-card__footer,.course-card__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--line)}.category-card__footer>*,.course-card__footer>*{min-width:0}.category-card__cta,.course-card__cta{font-size:.875rem;font-weight:600;color:var(--accent);white-space:nowrap}.course-card__title{font-size:1.125rem;margin-top:var(--space-2);margin-bottom:var(--space-2)}.course-card__level{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}@media (max-width: 900px){.section{padding-top:var(--space-16);padding-bottom:var(--space-16)}}
