/* Afine-inspired composition with TechPoint's existing blue colour variables and copy. */
:root{--nav-h:84px;--gutter:clamp(22px,4.8vw,76px)}
body{font-family:Barlow,Arial,Helvetica,sans-serif;line-height:1.55}
button,input,select,textarea{font-family:Barlow,Arial,sans-serif}
header,header.is-scrolled{height:var(--nav-h);background:rgba(12,24,43,.85);border-bottom:1px solid var(--border);backdrop-filter:blur(20px)}
[data-theme="light"] header,[data-theme="light"] header.is-scrolled{background:rgba(249,251,255,.96)}
nav{max-width:1600px;padding-inline:var(--gutter);justify-content:space-between;gap:clamp(18px,2vw,36px)}
.logo{position:static;left:auto;transform:none;gap:12px;margin:0 auto 0 0;min-width:0}
.logo img{height:42px}.logo-text strong{font-family:Barlow,Arial,sans-serif;font-size:20px;font-weight:700;letter-spacing:-.035em}.logo-text span{font-family:Barlow,Arial,sans-serif;font-size:9px;font-weight:600;letter-spacing:.16em;margin-top:2px}
.nav-links{display:flex;align-items:center;gap:clamp(12px,1.8vw,28px);margin-left:auto}.nav-links li:nth-child(n){display:list-item}.nav-links a{font-size:16px;font-weight:500;letter-spacing:.01em;white-space:nowrap}
.nav-right{display:flex;align-items:center;gap:8px;margin-left:0}.desktop-extra{display:none}.nav-right>.btn-start{display:inline-flex}.nav-right>.btn-login{display:inline-flex;font-size:14px;text-transform:none;letter-spacing:0;min-height:42px}
.btn-start,.hero-btn-primary,.primary,.cta-btn-white{background:var(--accent);color:#10223e;border:1px solid var(--accent);box-shadow:0 0 24px rgba(100,162,255,.12)}
.btn-start:hover,.hero-btn-primary:hover,.primary:hover,.cta-btn-white:hover{background:#91bbff;color:#10223e;border-color:#91bbff;box-shadow:0 0 28px rgba(100,162,255,.28)}
.btn-start,.hero-btn-primary,.hero-btn-secondary,.primary,.secondary,.cta-btn-white,.cta-btn-outline,.editorial-link{font-family:Barlow,Arial,sans-serif;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:none;border-radius:6px;min-height:48px;gap:16px}
.btn-start{padding:12px 18px;min-height:42px;font-size:14px}.hero-btn-primary,.hero-btn-secondary,.editorial-link{padding:14px 22px}
.hero-btn-secondary,.secondary,.editorial-link,.cta-btn-outline{border:1px solid var(--border2);background:rgba(20,37,63,.55);color:#f7f9fd}
.hero-btn-secondary:hover,.secondary:hover,.editorial-link:hover,.cta-btn-outline:hover{border-color:var(--accent);background:rgba(100,162,255,.12);color:#fff}
.hamburger-btn,.btn-icon{border-radius:6px}
.mobile-nav{background:var(--bg2);box-shadow:0 22px 40px rgba(0,0,0,.25)}
.mobile-nav a{font-family:Barlow,Arial,sans-serif;font-size:22px;font-weight:600}
.hero{min-height:100svh;background:radial-gradient(circle at 77% 52%,#173c70 0%,#0d2547 28%,#071528 68%),#071528;isolation:isolate}
.hero::before,.hero::after{display:none}
[data-theme="light"] .hero{background:radial-gradient(circle at 77% 52%,#173c70 0%,#0d2547 28%,#071528 68%),#071528}
[data-theme="light"] .hero h1{color:#fff}[data-theme="light"] .hero-desc{color:#e3e9f1}[data-theme="light"] .hero-btn-secondary{color:#f7f9fd}
.hero-canvas{z-index:0;opacity:.28;mix-blend-mode:screen}
.hero-inner{position:relative;z-index:1;max-width:1600px;min-height:calc(100svh - var(--nav-h));margin:auto;padding:clamp(90px,11vh,150px) var(--gutter) 125px;align-items:flex-start;justify-content:center;text-align:left}
.hero-kicker{justify-content:flex-start;margin:0 0 28px;font-size:12px;letter-spacing:.14em;color:#c5d3e9;font-weight:600}
.hero h1{max-width:920px;margin:0 0 32px;color:#fff;font-family:Barlow,Arial,sans-serif;font-size:clamp(52px,6.5vw,104px);font-weight:600;line-height:.98;letter-spacing:-.058em;text-wrap:balance}
.hero h1 .blue{color:#88b8ff}
.hero-desc{max-width:540px;margin:0 0 32px;color:#e3e9f1;font-size:clamp(16px,1.35vw,20px);line-height:1.48;font-weight:400}
.hero-btns{justify-content:flex-start;margin:0;gap:12px}
.hero-bottom{z-index:1;border-color:rgba(255,255,255,.3)}
.hero-bottom>span,.scroll-cue{font-family:Barlow,Arial,sans-serif;color:#e3e9f1;font-size:11px;font-weight:600;letter-spacing:.1em}
.motion-toggle{z-index:2;background:rgba(9,21,39,.65);color:#e3e9f1;font-family:Barlow,Arial,sans-serif;font-size:11px;border-color:rgba(255,255,255,.25)}
.story-section{min-height:190svh;background:var(--bg2)}
.story-sticky{display:flex;justify-content:flex-start;max-width:1600px;margin:auto;min-height:610px}
.story-art{width:min(57vw,820px);right:-8%;left:auto;opacity:.7}
.story-copy{width:min(60%,830px);max-width:none;margin:0 0 0 var(--gutter);padding:80px 0;text-align:left}
.story-step-label{font-family:Barlow,Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--accent)}
.story-copy h2{font-family:Barlow,Arial,sans-serif;font-size:clamp(42px,5vw,76px);font-weight:600;line-height:1.06;letter-spacing:-.055em}
.story-copy p{margin:28px 0 30px;max-width:480px;font-size:18px;line-height:1.5}
.story-copy .editorial-link{margin:0}.story-progress{justify-content:flex-start;margin-top:54px}
.section-inner,.container,.footer-inner,.cta-inner{max-width:1440px}
section,.section{padding:clamp(82px,8vw,126px) 0}
.section-tag,.eyebrow{display:inline-block;color:var(--accent);font-family:Barlow,Arial,sans-serif;font-size:15px;font-weight:700;letter-spacing:.1em;margin-bottom:22px}
.section-title,.section-heading h2,.section-heading h1,.about-copy h2,.about-copy h1{font-family:Barlow,Arial,sans-serif;font-size:clamp(38px,4.5vw,67px);font-weight:600;letter-spacing:-.045em;line-height:1.08;text-wrap:balance}
.section-sub,.section-heading p{font-size:17px;line-height:1.5;max-width:660px}
.home-page .courses-section>.section-inner>.section-tag,.home-page .courses-section>.section-inner>.section-title,.home-page .courses-section>.section-inner>.section-sub,.home-page .instructors-section>.section-inner>.section-tag,.home-page .instructors-section>.section-inner>.section-title,.home-page .instructors-section>.section-inner>.section-sub{display:block;text-align:left;margin-inline:0}
.home-page .courses-section>.section-inner>.section-title,.home-page .instructors-section>.section-inner>.section-title{max-width:850px}
.courses-section{background:var(--bg);border-top:1px solid var(--border)}
.courses-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:48px}
.course-card{min-height:490px;position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border:1px solid var(--border2);border-radius:6px;background:var(--bg2);transition:transform .3s,border-color .3s}
.course-card:hover{border-color:var(--accent);transform:translateY(-4px)}
.course-thumb{position:absolute;inset:0;width:100%;height:100%;border-radius:0;overflow:hidden}
.course-thumb img{width:100%;height:100%;object-fit:cover;filter:saturate(.65) brightness(.82);transition:transform .5s,filter .5s}
.course-card:hover .course-thumb img{transform:scale(1.05);filter:saturate(.9) brightness(.95)}
.course-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,19,37,.06) 16%,rgba(8,19,37,.45) 44%,rgba(8,19,37,.98) 100%)}
.cat-badge{top:18px;left:18px;border-radius:4px;font-family:Barlow,Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.07em}
.course-body{z-index:1;position:relative;padding:25px;border:0;flex:none;background:none}
.course-title{color:#fff;font-family:Barlow,Arial,sans-serif;font-size:clamp(25px,2vw,32px);font-weight:600;letter-spacing:-.035em;margin-bottom:12px}
.course-desc-text{font-size:14px;line-height:1.5;color:#d1dbe7;margin-bottom:25px}
.course-level{font-size:11px;color:#d1dbe7}.course-more-link{font-family:Barlow,Arial,sans-serif;color:#a7caff;font-size:12px;font-weight:700;letter-spacing:.03em}
.lab-section{background:var(--bg2);padding:clamp(80px,8vw,130px) 0}
.lab-layout{grid-template-columns:.78fr 1.22fr;gap:clamp(40px,6vw,95px)}
.lab-copy p{font-size:17px;line-height:1.5;max-width:520px}
.hero-img-wrap{height:510px;border:1px solid var(--border2);border-radius:6px}
.hero-slide img{filter:saturate(.78)}
.hero-slide-caption{bottom:30px;left:26px;right:26px}.hero-slide-caption strong{font-family:Barlow,Arial,sans-serif;font-size:28px;font-weight:600;line-height:1.08;letter-spacing:-.03em}
.hero-slide-caption span{font-family:Barlow,Arial,sans-serif;font-size:10px;letter-spacing:.06em;font-weight:700}
.hero-carousel-btn,.carousel-pause{border-radius:6px;font-family:Barlow,Arial,sans-serif}
.why-section{background:var(--bg);border-block:1px solid var(--border)}
.why-section .section-inner{grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,95px)}
.why-item{counter-increment:benefit;display:grid;grid-template-columns:32px 1fr;align-items:start;gap:22px;padding:28px 0;min-height:115px}
.why-grid{counter-reset:benefit}.why-icon{display:none}.why-item::before{content:"0" counter(benefit);font-family:Barlow,Arial,sans-serif;font-size:13px;color:var(--accent);font-weight:700;padding-top:6px}
.why-item strong{font-family:Barlow,Arial,sans-serif;font-size:25px;font-weight:600;letter-spacing:-.035em}
.why-item p{font-size:15px;line-height:1.5;max-width:470px}
.instructors-section{background:var(--bg2)}
.inst-grid{gap:18px;margin-top:48px}.inst-card{flex-basis:calc((100% - 54px)/4);min-width:255px}
.inst-img-box{height:360px;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--bg3)}
.inst-img-box img{filter:saturate(.55);transition:transform .5s,filter .5s}.inst-card:hover img{filter:saturate(1)}
.inst-name{font-family:Barlow,Arial,sans-serif;font-size:23px;font-weight:600;letter-spacing:-.03em}.inst-role-text{font-family:Barlow,Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.05em}
.inst-body{border-bottom:1px solid var(--border)}.inst-more-link,.text-link{font-family:Barlow,Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.02em}
@media(min-width:900px) and (max-width:1180px){.home-page .inst-card{flex-basis:calc((100% - 36px)/3)}}
.success-section{background:var(--bg3);border-block:1px solid var(--border);overflow:hidden}
.success-section .section-title{max-width:850px}.success-section .section-sub{margin-bottom:0}
.success-rail{display:flex;gap:22px;margin-top:46px;padding:2px 2px 20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--border2) transparent;overscroll-behavior-inline:contain}
.success-card{flex:0 0 calc((100% - 44px)/3);min-width:270px;display:block;scroll-snap-align:start;color:var(--text);text-decoration:none;background:var(--bg2);border:1px solid var(--border2);border-radius:6px;overflow:hidden;transition:border-color .25s,transform .25s}
.success-card:hover{border-color:var(--accent);transform:translateY(-3px)}.success-card:focus-visible,.success-rail:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.success-image{display:block;aspect-ratio:4/5;overflow:hidden;background:var(--bg)}.success-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s}.success-card:hover img{transform:scale(1.025)}
.success-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:88px;padding:18px 20px}.success-caption>span:first-child{display:grid;gap:4px;min-width:0}.success-caption strong{font-family:Barlow,Arial,sans-serif;font-size:20px;font-weight:600;line-height:1.12;letter-spacing:-.025em}.success-caption small{color:var(--muted);font-size:12px;line-height:1.3}.success-open{flex:none;color:var(--accent);font-size:22px;line-height:1}
.success-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:15px}.success-controls>span{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.04em}.success-controls>span span{padding-inline:8px;color:var(--accent)}
.student-section .success-controls{justify-content:flex-end}
.seminars-section{position:relative;overflow:hidden;background:var(--bg);border-block:1px solid var(--border)}
.seminars-section::before{content:"";position:absolute;right:-180px;top:-230px;width:620px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(96,165,250,.1),transparent 68%);pointer-events:none}
.seminars-section .section-inner{position:relative}
.seminars-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:42px}
.seminars-intro .section-title{margin-bottom:10px}
.seminars-intro .section-sub{margin:0}
.seminars-symbol{display:grid;place-items:center;flex:none;width:62px;height:62px;border:1px solid var(--border2);border-radius:8px;background:rgba(96,165,250,.06);color:var(--accent);font-size:25px}
.seminars-gallery{display:grid;gap:34px}
.seminar-event{padding-top:27px;border-top:1px solid var(--border2)}
.seminar-photos{display:grid;gap:12px;min-width:0}
.seminar-photos-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.seminar-photos-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.seminar-photo{display:block;position:relative;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--border2);border-radius:7px;background:var(--bg2)}
.seminar-photo::after{content:"↗";position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(255,255,255,.45);border-radius:5px;background:rgba(7,19,38,.76);color:#fff;font-size:17px;opacity:0;transform:translateY(5px);transition:opacity .25s,transform .25s}
.seminar-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s,filter .45s}
.seminar-photo:hover img,.seminar-photo:focus-visible img{transform:scale(1.04);filter:brightness(.82)}
.seminar-photo:hover::after,.seminar-photo:focus-visible::after{opacity:1;transform:none}
.seminar-photo:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.seminar-lightbox{position:fixed;top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);margin:0;width:min(1100px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--border2);border-radius:9px;background:var(--bg2);color:var(--text);box-shadow:0 30px 90px rgba(0,0,0,.45)}
.seminar-lightbox::backdrop{background:rgba(2,9,22,.88);backdrop-filter:blur(10px)}
.seminar-lightbox-inner{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;max-height:calc(100dvh - 34px)}
.seminar-lightbox img{display:block;width:100%;max-height:calc(100dvh - 105px);object-fit:contain;background:rgba(3,12,27,.65)}
.seminar-lightbox-close{position:absolute;z-index:1;right:12px;top:12px;display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.5);border-radius:6px;background:rgba(4,14,30,.85);color:#fff;cursor:pointer}
.seminar-lightbox-close:hover,.seminar-lightbox-close:focus-visible{background:var(--accent);color:#10223e}
.seminar-lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:70px;padding:12px 20px}
.seminar-lightbox-footer h2{margin:0;font-family:Barlow,Arial,sans-serif;font-size:20px;font-weight:600;line-height:1.2}
.seminar-lightbox-controls{display:flex;align-items:center;gap:12px;white-space:nowrap}
.seminar-lightbox-controls button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border2);border-radius:5px;background:transparent;color:var(--text);cursor:pointer}
.seminar-lightbox-controls button:hover,.seminar-lightbox-controls button:focus-visible{border-color:var(--accent);color:var(--accent)}
.seminar-lightbox-controls span{min-width:38px;text-align:center;color:var(--muted);font-size:13px;font-weight:600}
.lessons-section{background:var(--bg2);border-block:1px solid var(--border)}
.lessons-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.lesson-card{min-width:0;overflow:hidden;border:1px solid var(--border2);border-radius:7px;background:var(--bg);transition:border-color .25s,transform .25s,box-shadow .25s}
.lesson-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.15)}
.lesson-trigger{display:block;position:relative;width:100%;aspect-ratio:16/9;padding:0;border:0;overflow:hidden;background:var(--bg3);cursor:pointer}
.lesson-trigger:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.lesson-cover{display:block;width:100%;height:100%;object-fit:cover;filter:blur(2px) brightness(.7);transform:scale(1.035);transition:filter .35s,transform .45s}
.lesson-trigger:hover .lesson-cover,.lesson-trigger:focus-visible .lesson-cover{filter:blur(.6px) brightness(.75);transform:scale(1.07)}
.lesson-trigger::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(3,12,27,.25));pointer-events:none}
.lesson-play{position:absolute;z-index:1;left:50%;top:50%;display:grid;place-items:center;width:66px;height:66px;border:1px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(9,24,46,.75);color:#fff;font-size:20px;transform:translate(-50%,-50%);box-shadow:0 12px 30px rgba(0,0,0,.3);transition:background .25s,transform .25s,box-shadow .25s}
.lesson-play i{margin-left:3px}
.lesson-trigger:hover .lesson-play,.lesson-trigger:focus-visible .lesson-play{background:var(--accent);transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 0 9px rgba(96,165,250,.17),0 12px 30px rgba(0,0,0,.3)}
.lesson-caption{padding:18px 20px 20px}
.lesson-caption h3{margin:0 0 6px;color:var(--text);font-family:Barlow,Arial,sans-serif;font-size:20px;font-weight:600;line-height:1.2}
.lesson-caption p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
.lessons-empty{display:none;align-items:center;gap:18px;min-height:150px;padding:28px 32px;border:1px dashed var(--border2);border-radius:6px;color:var(--muted);background:linear-gradient(120deg,rgba(96,165,250,.055),transparent 65%)}
.lessons-empty.is-visible{display:flex}
.lessons-empty[hidden]{display:none}
.lessons-empty-icon{display:grid;place-items:center;flex:none;width:52px;height:52px;border:1px solid var(--border2);border-radius:50%;color:var(--accent);background:rgba(96,165,250,.08)}
.lessons-empty p{font-size:15px;line-height:1.5}
.lesson-overlay{z-index:2200;background:rgba(2,9,22,.88);backdrop-filter:blur(10px)}
.lesson-overlay .lesson-dialog{position:relative;width:min(100%,460px);max-width:1000px;max-height:calc(100dvh - 32px);padding:0;overflow:hidden;border:1px solid var(--border2);border-radius:10px;background:var(--bg2);box-shadow:0 30px 90px rgba(0,0,0,.45)}
.lesson-player{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:contain;background:#000}
.lesson-dialog-caption{padding:16px 22px 20px}
.lesson-dialog-caption .lesson-modal-title{margin:0 0 4px;font-family:Barlow,Arial,sans-serif;font-size:20px;font-weight:600;line-height:1.2}
.lesson-dialog-caption p{color:var(--muted);font-size:13px;line-height:1.4}
.lesson-overlay .lesson-close{top:12px;right:12px;z-index:2;display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.55);border-radius:6px;background:rgba(4,14,30,.86);color:#fff}
.lesson-overlay .lesson-close:hover,.lesson-overlay .lesson-close:focus-visible{background:var(--accent);color:#fff}
@media(max-width:900px){.seminar-photos-four{grid-template-columns:repeat(2,minmax(0,1fr))}.lessons-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.seminars-intro{align-items:flex-start;margin-bottom:28px}.seminars-symbol{width:48px;height:48px;font-size:19px}.seminar-photos-three,.seminar-photos-four{grid-template-columns:repeat(2,minmax(0,1fr))}.seminar-photos-three .seminar-photo:first-child{grid-column:span 2;aspect-ratio:3/2}.seminar-lightbox{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.seminar-lightbox-inner{max-height:calc(100dvh - 22px)}.seminar-lightbox img{max-height:calc(100dvh - 100px)}.seminar-lightbox-footer{padding:10px 12px}.seminar-lightbox-footer h2{font-size:16px}.seminar-lightbox-controls{gap:5px}.seminar-lightbox-controls button{width:34px;height:34px}.lessons-grid{grid-template-columns:1fr;gap:18px}.lessons-empty{padding:22px;min-height:130px}.lesson-overlay{padding:10px}.lesson-overlay .lesson-dialog{max-height:calc(100dvh - 20px)}.lesson-dialog-caption{padding:13px 16px 16px}.lesson-dialog-caption .lesson-modal-title{font-size:17px}.lesson-play{width:58px;height:58px}}
@media(prefers-reduced-motion:reduce){.seminar-photo img,.seminar-photo::after,.lesson-card,.lesson-cover,.lesson-play{transition:none}.seminar-photo:hover img,.seminar-photo:focus-visible img,.lesson-card:hover,.lesson-trigger:hover .lesson-cover,.lesson-trigger:focus-visible .lesson-cover{transform:none}}
.blog-section{background:var(--bg)}.blog-grid{gap:24px}.blog-card{border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--bg2)}
.blog-thumb{height:235px;border-radius:0}.blog-body{padding:24px;border:0}.blog-title{font-family:Barlow,Arial,sans-serif;font-size:24px;font-weight:600;letter-spacing:-.03em}.blog-read{font-family:Barlow,Arial,sans-serif;font-size:12px;font-weight:700}
.blog-published{display:block;width:fit-content;margin:0 0 13px;color:var(--muted);font-family:Barlow,Arial,sans-serif;font-size:13px;font-weight:600;letter-spacing:.025em;line-height:1.35}.blog-published::before{content:"";display:inline-block;width:6px;height:6px;margin-right:10px;border-radius:50%;background:var(--accent);vertical-align:middle}.blog-detail-date{margin:0 0 22px}
.contact-section{background:var(--bg2)}.contact-wrapper,.contact-wrap{border:1px solid var(--border2);border-radius:6px}.contact-info{background:var(--bg);padding:clamp(25px,4vw,56px)}
.contact-info h3,.contact-info h2,.contact-info h1{font-family:Barlow,Arial,sans-serif;font-size:32px;font-weight:600;letter-spacing:-.03em}
.contact-item h4,.contact-item h3{font-family:Barlow,Arial,sans-serif;font-size:11px;font-weight:700}.contact-item a,.contact-item p{font-size:15px}
.cta-section,.cta{background:var(--bg);border-top:1px solid var(--border)}
.cta-section::before,.cta::before{background:linear-gradient(90deg,rgba(12,29,54,.97),rgba(28,58,99,.78)),url("photos/homebanner.jpg") center 43%/cover no-repeat}
.cta-inner,.cta .container{max-width:1020px;text-align:left;align-items:flex-start;margin-inline:auto}
.cta-text h2,.cta h2{color:#fff;font-family:Barlow,Arial,sans-serif;font-size:clamp(42px,5.3vw,78px);font-weight:600;letter-spacing:-.055em;line-height:1.03}
.cta-text p,.cta p{color:#e3e9f1;font-size:18px}.cta-btns{justify-content:flex-start}
footer{border-top:1px solid var(--border)}.footer-brand .logo-text strong{font-family:Barlow,Arial,sans-serif;font-size:32px;font-weight:700}
.footer-col h3,.footer-col h4,.footer-bottom{font-family:Barlow,Arial,sans-serif}.footer-col h3,.footer-col h4{font-weight:700}.footer-col a{font-size:14px}
.footer-wordmark{font-family:Barlow,Arial,sans-serif;font-size:clamp(60px,16vw,225px);font-weight:700;letter-spacing:-.08em;opacity:.09}
.page-hero{position:relative;isolation:isolate;text-align:left;overflow:hidden;padding:calc(var(--nav-h) + 100px) 0 100px;background:var(--bg2)}
[data-theme="light"] .page-hero{background:var(--bg2);color:var(--text)}
.page-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--bg2) 28%,transparent 95%),url("photos/homebanner.jpg") right 48%/auto 125% no-repeat;opacity:.18}
.page-hero h1{font-family:Barlow,Arial,sans-serif;font-size:clamp(48px,6vw,82px);font-weight:600;line-height:1.04;letter-spacing:-.055em;text-align:left;margin:0 0 25px;max-width:950px}
.page-hero p{max-width:670px;margin:0;font-size:18px;line-height:1.5;color:var(--muted)}.breadcrumbs{justify-content:flex-start;margin-top:40px;font-family:Barlow,Arial,sans-serif;font-size:12px;font-weight:600;color:var(--muted)}
body[data-page] #main-content{padding-top:var(--nav-h)}
body[data-page] #main-content>.section:first-child{padding-top:clamp(60px,6vw,95px)}
.section-heading h1{margin:0 0 .7rem}.about-copy h1{margin:0 0 1.1rem}.contact-info h1{margin:0 0 1.4rem}
.section-heading{max-width:850px}.program-card,.person,.about-image,.value,.stat{border-radius:6px}
.program-card{grid-template-columns:38% 1fr;border:1px solid var(--border2);background:var(--bg2);gap:0}
.program-body h2,.person h2,.value h3{font-family:Barlow,Arial,sans-serif;font-weight:600;letter-spacing:-.035em}.program-body h2{font-size:37px}.program-body>p{font-size:16px;line-height:1.55}.learn-grid li{font-size:13px}
body[data-page="courses"] .course-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:stretch}
body[data-page="courses"] .program-card{display:flex;flex-direction:column;min-width:0;height:100%;cursor:pointer;transition:border-color .25s,transform .25s,box-shadow .25s}
body[data-page="courses"] .program-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 18px 40px rgba(3,15,34,.2)}
body[data-page="courses"] .program-card:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
body[data-page="courses"] .program-image{height:240px;min-height:0;flex:none}
body[data-page="courses"] .program-body{display:flex;flex-direction:column;flex:1;min-width:0;padding:28px}
body[data-page="courses"] .pill{align-self:flex-start}
body[data-page="courses"] .program-body h2{font-size:clamp(28px,2.4vw,34px)}
body[data-page="courses"] .learn-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem .8rem}
body[data-page="courses"] .learn-grid li{min-width:0}
body[data-page="courses"] .actions{margin-top:auto;padding-top:8px}
@media(max-width:1100px){body[data-page="courses"] .learn-grid{grid-template-columns:1fr}}
@media(max-width:820px){body[data-page="courses"] .course-list{grid-template-columns:1fr}body[data-page="courses"] .program-card{display:grid;grid-template-columns:34% minmax(0,1fr)}body[data-page="courses"] .program-image{height:100%;min-height:300px}body[data-page="courses"] .program-body{padding:24px}}
@media(max-width:620px){body[data-page="courses"] .program-card{display:flex}body[data-page="courses"] .program-image{height:210px;min-height:0}body[data-page="courses"] .program-body{padding:24px}}
#courseDetailModal{display:flex;visibility:hidden;opacity:0;pointer-events:none;background:rgba(3,11,24,.8);backdrop-filter:blur(12px);transition:opacity .28s ease,visibility .28s ease}
#courseDetailModal.open{visibility:visible;opacity:1;pointer-events:auto}
#courseDetailModal .course-detail-dialog{max-width:780px;max-height:min(90vh,900px);padding:0;overflow-y:auto;background:var(--bg2);border:1px solid var(--border2);border-radius:12px;box-shadow:0 30px 100px rgba(1,10,24,.5);opacity:0;transform:translateY(26px) scale(.97);transition:transform .38s cubic-bezier(.2,.8,.16,1),opacity .3s ease}
#courseDetailModal.open .course-detail-dialog{opacity:1;transform:translateY(0) scale(1)}
#courseDetailModal .modal-close{top:18px;right:18px;width:40px;height:40px;z-index:2;border:1px solid var(--border2);background:var(--bg);color:var(--text);border-radius:6px}
#courseDetailModal .course-detail-image{display:block;width:100%;height:230px;object-fit:cover}
#courseDetailModal .course-detail-content{padding:30px 36px 36px}
#courseDetailModal #courseDetailCategory{margin-bottom:15px}
#courseDetailModal .c-modal-title{margin:0 0 10px;font-size:clamp(31px,4vw,45px);line-height:1.08;letter-spacing:-.045em}
#courseDetailModal .course-detail-description{max-width:660px;margin:0 0 26px;color:var(--muted);font-size:16px;line-height:1.55}
#courseDetailModal h3{padding-top:20px;border-top:1px solid var(--border);color:var(--text);font-family:Barlow,Arial,sans-serif;font-size:17px;font-weight:600}
#courseDetailModal .course-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px;margin:17px 0 30px;padding:0;list-style:none}
#courseDetailModal .course-detail-list li{display:flex;align-items:flex-start;gap:10px;color:var(--muted);font-size:14px;line-height:1.4}
#courseDetailModal .course-detail-list i{color:var(--accent);margin-top:3px}
#courseDetailModal .course-detail-actions{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:600px){#courseDetailModal .course-detail-image{height:170px}#courseDetailModal .course-detail-content{padding:24px}#courseDetailModal .course-detail-list{grid-template-columns:1fr}#courseDetailModal .c-modal-title{font-size:31px}}
@media(prefers-reduced-motion:reduce){body[data-page="courses"] .program-card,#courseDetailModal,#courseDetailModal .course-detail-dialog{transition:none}body[data-page="courses"] .program-card:hover,#courseDetailModal .course-detail-dialog{transform:none}}
.pill{border-radius:4px;font-family:Barlow,Arial,sans-serif;font-weight:700;letter-spacing:.04em}
.about-intro{gap:clamp(35px,5vw,85px)}.about-copy h2{max-width:780px}.stat strong{font-family:Barlow,Arial,sans-serif;font-size:35px;font-weight:700}.stat span{font-size:13px}
.value h3{font-size:25px}.value p{font-size:15px}.role{font-size:12px}.person h2{font-size:26px}
.modal-h,.c-modal-title,.blog-detail-title{font-family:Barlow,Arial,sans-serif;font-size:32px;font-weight:600}
.form-submit,.auth-btn{font-family:Barlow,Arial,sans-serif;font-size:13px;font-weight:700;text-transform:none;letter-spacing:.01em}
.modal{border-radius:8px}.form-group input,.form-group select,.form-group textarea{font-size:15px}
@media(max-width:1180px){.nav-links,.nav-right>.btn-login,.nav-right>.btn-start{display:none}.hamburger-btn{display:flex}.nav-right{margin-left:auto}.courses-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inst-card{flex-basis:calc((100% - 18px)/2)}.success-card{flex-basis:calc((100% - 22px)/2)}.story-copy{width:min(70%,760px)}}
@media(max-width:760px){:root{--nav-h:76px;--gutter:22px}.logo img{height:36px}.logo-text strong{font-size:18px}.logo-text span{font-size:8px}.hero{background-position:center,62% center}.hero-inner{padding:105px var(--gutter) 125px;min-height:calc(100svh - var(--nav-h))}.hero h1{font-size:clamp(48px,9vw,70px);max-width:640px}.hero-desc{font-size:17px;max-width:450px}.hero-kicker{font-size:10px}.hero-bottom>span,.scroll-cue{font-size:9px}.story-section{min-height:155svh}.story-sticky{min-height:540px}.story-copy{width:auto;margin:0 var(--gutter);padding:55px 0}.story-copy h2{font-size:clamp(40px,7vw,56px)}.story-copy p{font-size:16px}.story-art{width:105vw;right:-45%;opacity:.35}.section-title,.section-heading h2{font-size:clamp(37px,7vw,52px)}.lab-layout,.why-section .section-inner{grid-template-columns:1fr;gap:38px}.why-intro{position:static}.inst-card{flex-basis:76%}.inst-img-box{height:360px}.success-card{flex-basis:76%;min-width:230px}.success-rail{margin-top:32px}.page-hero{padding:calc(var(--nav-h) + 78px) 0 76px}.page-hero h1{font-size:clamp(44px,8vw,64px)}.page-hero p{font-size:16px}.page-hero::before{background-size:auto,auto 100%}.cta-section,.cta{padding:95px var(--gutter)}.cta-inner,.cta .container{align-items:flex-start;text-align:left}.cta-text h2,.cta h2{font-size:clamp(43px,8vw,60px)}.cta-btns{justify-content:flex-start}.program-card{grid-template-columns:1fr}.program-image{height:270px}.contact-wrap,.contact-wrapper{grid-template-columns:1fr}}
@media(max-width:540px){.hero h1{font-size:clamp(43px,10vw,58px)}.hero-btns{width:100%;align-items:stretch}.hero-btns>*{width:auto}.courses-grid{grid-template-columns:1fr}.course-card{min-height:500px}.course-thumb img{object-position:center 35%}.inst-card{flex-basis:85%}.story-copy h2{font-size:43px}.hero-img-wrap{height:360px}.blog-grid{grid-template-columns:1fr}.blog-card{max-width:560px}.contact-info{padding:27px}.footer-top{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-col:last-child{display:block}.logo-text{display:flex}.program-body{padding:27px}.program-body h2{font-size:33px}}
@media(prefers-reduced-motion:reduce){.story-section{min-height:0;padding:70px 0}.story-sticky{position:relative;top:0;height:auto;min-height:440px}}
@media(prefers-reduced-motion:reduce){.success-card,.success-image img{transition:none}.success-card:hover{transform:none}.success-card:hover img{transform:none}}

/* Animated cyber system in the home hero. */
.home-page .hero::before{display:block;z-index:0;background:linear-gradient(90deg,rgba(5,15,30,.88),rgba(5,15,30,.34) 64%,transparent)}
.home-page .hero-canvas{z-index:0;opacity:.58;mix-blend-mode:screen}
.home-page .hero-inner{z-index:2}.home-page .hero h1{max-width:900px;margin-bottom:30px}.home-page .hero-btns{margin-top:2px}
.home-page .hero-bottom{z-index:2;justify-content:flex-end;border-color:rgba(187,213,248,.22)}
.hero-visualizer{position:absolute;z-index:1;right:clamp(-140px,-3vw,-20px);top:50%;width:min(64vw,820px);aspect-ratio:1;transform:translateY(-50%);pointer-events:none;filter:drop-shadow(0 0 45px rgba(66,144,255,.15));opacity:.95}
.visualizer-grid,.visualizer-glow,.visualizer-ring,.visualizer-core,.visualizer-scan{position:absolute;border-radius:50%}
.visualizer-grid{inset:0;background:repeating-radial-gradient(circle,rgba(135,190,255,.12) 0 1px,transparent 1px 53px),linear-gradient(0deg,transparent 49.8%,rgba(134,188,255,.18) 50%,transparent 50.2%),linear-gradient(90deg,transparent 49.8%,rgba(134,188,255,.18) 50%,transparent 50.2%);mask-image:radial-gradient(circle,#000 28%,transparent 72%);animation:visualizer-breathe 9s ease-in-out infinite alternate}
.visualizer-glow{inset:16%;background:radial-gradient(circle,rgba(91,165,255,.24),rgba(39,103,210,.08) 49%,transparent 70%);filter:blur(10px);animation:visualizer-breathe 7s ease-in-out infinite alternate}
.visualizer-ring{border:1px solid rgba(145,199,255,.3);box-shadow:inset 0 0 28px rgba(100,162,255,.08),0 0 25px rgba(100,162,255,.08)}
.visualizer-ring::before,.visualizer-ring::after{content:"";position:absolute;border-radius:50%;inset:-2px;border:2px solid transparent;border-top-color:rgba(145,208,255,.86);border-right-color:rgba(145,208,255,.18)}
.visualizer-ring::after{inset:12%;border-width:1px;border-top-color:transparent;border-bottom-color:rgba(145,208,255,.55);border-left-color:rgba(145,208,255,.14)}
.ring-outer{inset:5%;border-style:dashed;border-color:rgba(145,199,255,.22);animation:visualizer-spin 42s linear infinite}
.ring-middle{inset:18%;border-color:rgba(145,199,255,.38);animation:visualizer-spin-reverse 28s linear infinite}
.ring-inner{inset:31%;border-color:rgba(145,199,255,.28);animation:visualizer-spin 20s linear infinite}
.visualizer-core{inset:39%;display:grid;place-items:center;background:radial-gradient(circle at 40% 30%,#254d84,#0b203e 74%);border:1px solid rgba(158,209,255,.55);box-shadow:0 0 0 10px rgba(99,162,255,.07),0 0 48px rgba(79,164,255,.4),inset 0 0 25px rgba(116,188,255,.2);animation:visualizer-breathe 5s ease-in-out infinite alternate}
.visualizer-core img{display:block;width:62%;height:62%;object-fit:contain;filter:drop-shadow(0 0 12px rgba(176,215,255,.4))}
.visualizer-node{position:absolute;width:9px;height:9px;border-radius:50%;background:#b6ddff;box-shadow:0 0 0 7px rgba(103,174,255,.1),0 0 25px 6px rgba(103,174,255,.7);animation:visualizer-node 3s ease-in-out infinite alternate}
.node-one{left:17%;top:26%}.node-two{right:10%;top:57%;animation-delay:.9s}.node-three{left:31%;bottom:9%;animation-delay:1.7s}
.visualizer-scan{inset:6%;background:linear-gradient(180deg,transparent 42%,rgba(114,192,255,.07) 49%,rgba(149,215,255,.28) 50%,transparent 52%);mask-image:radial-gradient(circle,#000 38%,transparent 72%);animation:visualizer-sweep 7s ease-in-out infinite}
@keyframes visualizer-spin{to{transform:rotate(360deg)}}
@keyframes visualizer-spin-reverse{to{transform:rotate(-360deg)}}
@keyframes visualizer-breathe{to{opacity:.62;transform:scale(1.04)}}
@keyframes visualizer-node{to{opacity:.42;transform:scale(.7)}}
@keyframes visualizer-sweep{0%,100%{transform:translateY(-14%);opacity:.4}50%{transform:translateY(14%);opacity:1}}

/* Student results have their own full-width chapter after the mentors. */
.instructors-section{background:var(--bg);border-top:1px solid var(--border2)}
.student-section{position:relative;overflow:hidden;padding:clamp(90px,9vw,145px) 0;background:var(--bg3);border-block:1px solid var(--border2)}
.student-section::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--accent),#9fcaff 55%,transparent);pointer-events:none}
.student-section .section-inner{position:relative}.student-section .section-title{max-width:850px}.student-section .section-sub{margin-bottom:0}
.student-section .success-rail{margin-top:45px}.student-section .success-card{background:var(--bg2)}
.student-section .success-controls{margin-top:12px}
@media(max-width:600px){.hero-visualizer{width:105vw;right:-49vw;opacity:.55}.home-page .hero::before{background:linear-gradient(90deg,rgba(5,15,30,.94),rgba(5,15,30,.62) 82%,rgba(5,15,30,.35))}.home-page .hero h1{font-size:clamp(43px,10vw,58px)}.student-section{padding:80px 0}.student-section .success-card{flex-basis:78%;min-width:220px}.student-section .success-caption strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){.visualizer-grid,.visualizer-glow,.visualizer-ring,.visualizer-core,.visualizer-node,.visualizer-scan{animation:none!important}}

/* Instructor profile reveal. */
#instModal{display:flex;visibility:hidden;opacity:0;pointer-events:none;background:rgba(3,11,24,.78);backdrop-filter:blur(12px);perspective:1200px;transition:opacity .32s ease,visibility .32s ease}
#instModal.open{visibility:visible;opacity:1;pointer-events:auto}
#instModal .instructor-dialog{max-width:780px;max-height:min(88vh,820px);padding:0;overflow-y:auto;background:var(--bg2);border:1px solid var(--border2);border-radius:12px;box-shadow:0 30px 100px rgba(1,10,24,.5);opacity:0;filter:blur(8px);transform:translateY(34px) scale(.94) rotateX(7deg);transform-origin:50% 70%;transition:transform .58s cubic-bezier(.2,.8,.16,1),opacity .38s ease,filter .45s ease}
#instModal.open .instructor-dialog{opacity:1;filter:blur(0);transform:translateY(0) scale(1) rotateX(0)}
#instModal .modal-close{top:20px;right:20px;width:40px;height:40px;z-index:3;border:1px solid var(--border2);background:var(--bg);color:var(--text);border-radius:6px}
#instModal .modal-close:hover{background:var(--accent);color:#0d213d}
#instModal .i-modal-head{display:grid;grid-template-columns:176px 1fr;gap:28px;align-items:center;margin:0;padding:38px 68px 35px 35px;min-height:260px;background:radial-gradient(circle at 18% 30%,rgba(100,162,255,.19),transparent 45%),linear-gradient(135deg,var(--bg3),var(--bg2));border-bottom:1px solid var(--border2);position:relative;overflow:hidden}
#instModal .i-modal-head::after{content:"";position:absolute;right:-60px;bottom:-120px;width:310px;height:310px;border:1px solid rgba(100,162,255,.13);border-radius:50%;box-shadow:0 0 0 44px rgba(100,162,255,.035),0 0 0 88px rgba(100,162,255,.025);pointer-events:none}
#instModal .i-modal-photo{width:176px;height:190px;object-fit:cover;object-position:center top;border-radius:7px;border:1px solid var(--border2);box-shadow:0 16px 36px rgba(4,14,31,.28)}
#instModal .i-modal-eyebrow{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:16px}
#instModal .i-modal-name{font-family:Barlow,Arial,sans-serif;font-size:clamp(28px,3.5vw,42px);font-weight:600;letter-spacing:-.045em;line-height:1.05;margin-bottom:10px}
#instModal .i-modal-role{color:var(--muted);font-size:15px;font-weight:500;margin-bottom:24px}
#instModal .i-modal-linkedin{display:inline-flex;gap:10px;align-items:center;min-height:39px;padding:8px 12px;border:1px solid var(--border2);border-radius:5px;color:var(--text);font-size:12px;font-weight:600;text-decoration:none;background:var(--bg)}
#instModal .i-modal-linkedin:hover{border-color:var(--accent);color:var(--accent)}
#instModal #iModalContent{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:24px}
#instModal .i-detail-section{padding:20px;background:var(--bg3);border:1px solid var(--border);border-radius:7px;margin:0}
#instModal .i-detail-section:first-child{grid-column:1/-1}
#instModal .i-detail-label{font-family:Barlow,Arial,sans-serif;font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.08em;margin-bottom:13px;text-transform:uppercase}
#instModal .i-detail-label i{font-size:13px;margin-right:5px}
#instModal .i-detail-item{font-size:13px;line-height:1.4;color:var(--text);padding:9px 0;border-color:var(--border)}
#instModal .i-tag{font-family:Barlow,Arial,sans-serif;font-size:11px;font-weight:600;color:var(--text);background:var(--bg2);border:1px solid var(--border2);padding:7px 9px;border-radius:4px}
#instModal .i-tags{gap:7px;margin:0}
#instModal.open .i-detail-section{animation:mentor-detail-in .5s both}
#instModal.open .i-detail-section:nth-child(2){animation-delay:.08s}#instModal.open .i-detail-section:nth-child(3){animation-delay:.16s}
@keyframes mentor-detail-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){#instModal .instructor-dialog{max-height:92vh}#instModal .i-modal-head{grid-template-columns:90px 1fr;gap:16px;min-height:0;padding:26px 53px 24px 20px}#instModal .i-modal-photo{width:90px;height:112px}#instModal .i-modal-eyebrow{font-size:9px;margin-bottom:8px}#instModal .i-modal-name{font-size:25px}#instModal .i-modal-role{font-size:12px;margin-bottom:12px}#instModal .i-modal-linkedin{font-size:11px;padding:6px 8px;min-height:32px}#instModal #iModalContent{grid-template-columns:1fr;padding:14px}#instModal .i-detail-section:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){#instModal,#instModal .instructor-dialog{transition:none!important}#instModal .instructor-dialog{filter:none;transform:none}#instModal.open .i-detail-section{animation:none}}

/* Branded footer shared by the home page and inner pages. */
footer{position:relative;overflow:hidden;padding:82px 0 25px;background:radial-gradient(circle at 9% 6%,rgba(67,126,210,.15),transparent 34%),linear-gradient(145deg,var(--bg2),var(--bg));border-top:1px solid var(--border2)}
footer::before{content:"";position:absolute;top:0;left:var(--gutter);right:var(--gutter);height:1px;background:linear-gradient(90deg,var(--accent),rgba(100,162,255,.2),transparent)}
footer .footer-inner,footer>.container{position:relative;z-index:1;max-width:1440px;margin-inline:auto;padding-inline:var(--gutter)}
footer .footer-top{display:grid;grid-template-columns:minmax(250px,1.65fr) repeat(3,minmax(125px,1fr));gap:clamp(24px,4vw,58px);margin-bottom:42px}
footer .footer-brand{max-width:330px}footer .footer-logo{display:inline-block;width:190px;margin-bottom:23px;line-height:0}footer .footer-logo img{display:block;width:100%;height:auto;object-fit:contain}footer .footer-logo .logo-light{display:none}[data-theme="light"] footer .footer-logo .logo-dark{display:none}[data-theme="light"] footer .footer-logo .logo-light{display:block}
footer .footer-brand p{max-width:300px;margin:0;color:var(--muted);font-size:14px;line-height:1.55}
footer .footer-socials{display:flex;gap:9px;margin-top:25px}footer .footer-socials a{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border2);border-radius:5px;color:var(--text);background:rgba(100,162,255,.05);font-size:15px;transition:background .2s,color .2s,border-color .2s,transform .2s}
footer .footer-socials a:hover{background:var(--accent);color:#0b1d36;border-color:var(--accent);transform:translateY(-3px)}footer .footer-socials a:focus-visible,footer a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
footer .footer-col{padding-left:22px;border-left:1px solid var(--border)}footer .footer-col:last-child{display:block}
footer .footer-col h3,footer .footer-col h4{font-family:Barlow,Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--text);margin-bottom:22px}
footer .footer-col ul{gap:0}footer .footer-col li{margin:0 0 12px}footer .footer-col a{display:inline-block;color:var(--muted);font-family:Barlow,Arial,sans-serif;font-size:14px;line-height:1.4;text-decoration:none;transition:color .2s,transform .2s}
footer .footer-col a:hover{color:var(--accent);transform:translateX(3px)}
footer .footer-wordmark{font-family:Barlow,Arial,sans-serif;font-size:clamp(70px,14.5vw,204px);font-weight:700;letter-spacing:-.085em;line-height:.8;color:var(--text);opacity:.055;text-align:center;overflow:hidden;margin:45px 0 32px;white-space:nowrap;user-select:none}
footer .footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid var(--border);padding:23px 0 0;margin:0;color:var(--muted);font-family:Barlow,Arial,sans-serif;font-size:12px}
footer .footer-bottom p,footer .footer-bottom span{font-size:12px;color:var(--muted)}footer .footer-bottom a{color:var(--text);font-size:12px;text-decoration:none}footer .footer-bottom a:hover{color:var(--accent)}footer .footer-bottom a span{color:var(--accent);padding-left:5px}
@media(max-width:900px){footer .footer-top{grid-template-columns:repeat(3,minmax(0,1fr))}footer .footer-brand{grid-column:1/-1;max-width:600px}footer .footer-logo{width:170px}}
@media(max-width:600px){footer{padding-top:64px}footer .footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 20px;margin-bottom:25px}footer .footer-brand{grid-column:1/-1}footer .footer-col{padding-left:14px}footer .footer-col:last-child{display:block}footer .footer-wordmark{font-size:clamp(58px,15vw,100px);margin:45px 0 26px}footer .footer-bottom{align-items:flex-start;flex-direction:column}}

/* Compact mentor cards on the dedicated page; details open in the profile dialog. */
body[data-page="instructors"].mentor-cards-ready .people-grid{grid-template-columns:repeat(3,minmax(0,360px));justify-content:center;gap:20px}
body[data-page="instructors"].mentor-cards-ready .person{display:block;min-width:0;overflow:hidden;cursor:pointer;border:1px solid var(--border2);border-radius:7px;background:var(--bg2);transition:transform .25s,border-color .25s,box-shadow .25s}
body[data-page="instructors"].mentor-cards-ready .person:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 18px 38px rgba(3,15,34,.2)}
body[data-page="instructors"].mentor-cards-ready .person:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
body[data-page="instructors"].mentor-cards-ready .person>img{display:block;width:100%;height:270px;min-height:0;object-fit:cover;object-position:center top;transition:transform .45s}
body[data-page="instructors"].mentor-cards-ready .person:hover>img{transform:scale(1.035)}
body[data-page="instructors"].mentor-cards-ready .person-body{padding:18px}body[data-page="instructors"].mentor-cards-ready .person h2{font-size:22px;line-height:1.1;margin-bottom:7px}
body[data-page="instructors"].mentor-cards-ready .person .role{color:var(--muted);font-size:11px;font-weight:600;margin:0 0 16px}
body[data-page="instructors"].mentor-cards-ready .person .detail-label,body[data-page="instructors"].mentor-cards-ready .person .detail-line,body[data-page="instructors"].mentor-cards-ready .person .tags,body[data-page="instructors"].mentor-cards-ready .person .actions{display:none}
body[data-page="instructors"].mentor-cards-ready .person-more{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:14px;color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.02em}
body[data-page="instructors"].mentor-cards-ready .person-more span{font-size:19px;line-height:1}
#instModal .detail-line{color:var(--text);font-size:13px;line-height:1.55}
#instModal .tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:0}
#instModal .tag{background:var(--bg2);border:1px solid var(--border2);border-radius:4px;color:var(--text);font-size:11px;font-weight:600;padding:7px 9px}
@media(max-width:1050px){body[data-page="instructors"].mentor-cards-ready .people-grid{grid-template-columns:repeat(2,minmax(0,360px))}}
@media(max-width:620px){body[data-page="instructors"].mentor-cards-ready .people-grid{grid-template-columns:minmax(0,360px)}body[data-page="instructors"].mentor-cards-ready .person>img{height:280px}}
@media(prefers-reduced-motion:reduce){body[data-page="instructors"].mentor-cards-ready .person,body[data-page="instructors"].mentor-cards-ready .person>img{transition:none}body[data-page="instructors"].mentor-cards-ready .person:hover,body[data-page="instructors"].mentor-cards-ready .person:hover>img{transform:none}}

/* Scroll-driven learning journey after the course overview. */
.story-section{min-height:270svh;background:var(--bg2);--story-phase:var(--accent)}
.story-section[data-step="1"]{--story-phase:#78c8ff}.story-section[data-step="2"]{--story-phase:#9eb7ff}
.story-sticky{max-width:none;min-height:600px;height:calc(100svh - var(--nav-h));background:radial-gradient(circle at 73% 50%,rgba(75,144,237,.16),transparent 43%),var(--bg2)}
.story-sticky::before{content:"";position:absolute;inset:-90px 0;z-index:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:52px 52px;opacity:.32;mask-image:linear-gradient(90deg,transparent 30%,#000 100%);pointer-events:none}
.story-copy{z-index:2;width:min(43%,680px);margin-left:var(--gutter);padding:55px 0;text-align:left}
.story-copy h2{max-width:680px;font-size:clamp(44px,5.3vw,82px);line-height:1.03}.story-copy p{max-width:500px;font-size:18px;line-height:1.5}
.story-progress{gap:9px;margin-top:44px}.story-progress span{width:37px;height:4px;border-radius:8px;background:var(--border2);transition:width .35s,background .35s,box-shadow .35s}.story-progress span.active{width:72px;background:var(--story-phase);box-shadow:0 0 18px rgba(100,162,255,.55)}
.story-art{z-index:1;top:50%;right:var(--gutter);width:min(46vw,680px);height:min(70vh,590px);aspect-ratio:auto;border:1px solid var(--border2);border-radius:12px;opacity:1;overflow:hidden;contain:paint;background:radial-gradient(circle at 50% 43%,rgba(86,161,255,.26),transparent 34%),linear-gradient(150deg,var(--bg3),var(--bg));box-shadow:0 28px 80px rgba(2,13,32,.25),inset 0 0 65px rgba(97,164,255,.06);transform:translateY(-50%)}
.story-art::before{content:"";position:absolute;inset:13px;border:1px solid rgba(148,192,250,.15);border-radius:8px;transform:none;pointer-events:none}
.story-art::after{content:"";position:absolute;top:0;left:12%;width:76%;height:2px;border:0;border-radius:0;background:linear-gradient(90deg,transparent,var(--story-phase),transparent);box-shadow:0 0 24px var(--story-phase);transform:none}
.story-art span{position:static;inset:auto;border-radius:0;background:none;box-shadow:none}
.story-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(143,190,247,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(143,190,247,.13) 1px,transparent 1px);background-size:38px 38px;mask-image:radial-gradient(circle at 50% 43%,#000,transparent 71%)}
.story-orbit{position:absolute;left:50%;top:43%;aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 32px rgba(100,162,255,.06),0 0 35px rgba(100,162,255,.08)}
.story-orbit::after{content:"";position:absolute;left:50%;top:-5px;width:9px;height:9px;border-radius:50%;background:var(--story-phase);box-shadow:0 0 0 7px rgba(100,162,255,.14),0 0 25px var(--story-phase)}
.story-orbit-outer{width:min(77%,470px);border:1px dashed rgba(145,202,255,.48);transform:translate(-50%,-50%)}
.story-orbit-middle{width:min(59%,360px);border:2px solid rgba(145,202,255,.52);transform:translate(-50%,-50%)}
.story-orbit-middle::before{content:"";position:absolute;inset:-13px;border:1px solid rgba(145,202,255,.16);border-radius:50%}
.story-orbit-inner{width:min(41%,250px);border:1px solid var(--story-phase);transform:translate(-50%,-50%);box-shadow:0 0 35px rgba(100,162,255,.24),inset 0 0 30px rgba(100,162,255,.13)}
.story-sweep{position:absolute;left:50%;top:43%;width:min(76%,460px);aspect-ratio:1;border-radius:50%;background:conic-gradient(rgba(110,184,255,.25),transparent 22%,transparent 100%);mask-image:radial-gradient(circle,transparent 35%,#000 65%,transparent 71%);transform:translate(-50%,-50%)}
.story-orbit,.story-sweep{will-change:transform}
.story-core{position:absolute;left:50%;top:43%;width:clamp(125px,13vw,178px);aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translate(-50%,-50%);border:1px solid var(--story-phase);border-radius:50%;background:radial-gradient(circle at 35% 25%,rgba(112,181,255,.27),var(--bg2) 72%);box-shadow:0 0 0 12px rgba(100,162,255,.06),0 0 55px rgba(100,162,255,.3);text-align:center}
.story-core-kicker{font-size:8px;font-weight:700;letter-spacing:.08em;color:var(--muted)}.story-core-number{display:block;font-family:Barlow,Arial,sans-serif;font-size:clamp(55px,7vw,92px);font-weight:600;line-height:1;letter-spacing:-.07em;color:var(--text)}.story-core-label{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--story-phase)}
.story-stage-track{position:absolute;left:30px;right:30px;bottom:47px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.story-stage{display:block;padding:9px 6px;border:1px solid var(--border2);border-radius:4px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em;text-align:center;white-space:nowrap;transition:background .3s,border-color .3s,color .3s,transform .3s}.story-stage.active{color:#0b1e37;background:var(--story-phase);border-color:var(--story-phase);transform:translateY(-5px);box-shadow:0 8px 25px rgba(100,162,255,.28)}
.story-track-line{position:absolute;left:30px;right:30px;bottom:25px;height:3px;border-radius:9px;background:var(--border2)}.story-track-line span{display:block;width:100%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#9fd0ff);box-shadow:0 0 16px rgba(100,162,255,.5);transform:scaleX(0);transform-origin:left center;will-change:transform}
@media(max-width:900px){.story-section{min-height:245svh}.story-sticky{height:calc(100svh - var(--nav-h));min-height:600px}.story-copy{position:absolute;left:var(--gutter);top:6%;width:calc(100% - var(--gutter)*2);margin:0;padding:0}.story-copy h2{max-width:600px;font-size:clamp(36px,6vw,55px)}.story-copy p{max-width:560px;font-size:15px;margin:15px 0}.story-copy .editorial-link{min-height:40px;padding:10px 15px}.story-progress{margin-top:18px}.story-art{top:auto;right:var(--gutter);bottom:16px;width:calc(100% - var(--gutter)*2);max-width:580px;height:clamp(250px,39svh,370px);transform:none}.story-core{width:118px}.story-core-number{font-size:62px}}
@media(max-width:600px){.story-section{min-height:240svh}.story-sticky{min-height:0}.story-copy{top:5%}.story-copy h2{font-size:clamp(33px,8vw,45px)}.story-copy p{font-size:13px;line-height:1.35;margin:13px 0}.story-copy .editorial-link{font-size:11px}.story-progress{margin-top:14px}.story-art{height:clamp(225px,36svh,300px);bottom:11px}.story-core{width:98px}.story-core-kicker{font-size:5px}.story-core-number{font-size:50px}.story-core-label{font-size:9px}.story-stage-track{left:14px;right:14px;bottom:35px;gap:4px}.story-stage{font-size:7px;padding:7px 3px}.story-track-line{left:14px;right:14px;bottom:17px}}
.story-reduced{display:none}
@media(prefers-reduced-motion:reduce){.story-section{min-height:0;padding:70px 0}.story-sticky{display:none}.story-reduced{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.story-reduced article{padding:24px;border:1px solid var(--border2);border-radius:7px;background:var(--bg3)}.story-reduced article span{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.09em}.story-reduced h2{font-family:Barlow,Arial,sans-serif;font-size:27px;line-height:1.12;letter-spacing:-.035em;margin:15px 0}.story-reduced p{color:var(--muted);font-size:14px;line-height:1.5}.story-reduced .editorial-link{grid-column:1/-1;justify-self:start}}
@media(max-width:800px) and (prefers-reduced-motion:reduce){.story-reduced{grid-template-columns:1fr}}
@media(max-width:600px) and (max-height:680px){.story-copy{top:4%}.story-copy h2{font-size:30px}.story-copy p{font-size:12px;margin:9px 0}.story-step-label{margin-bottom:12px}.story-copy .editorial-link{min-height:34px;padding:7px 11px}.story-progress{display:none}.story-art{height:185px;bottom:8px}.story-stage-track{bottom:25px}.story-track-line{bottom:10px}.story-core{width:75px}.story-core-number{font-size:38px}}

/* Moving light field for the inner pages, without a tiled pattern. */
body[data-page] #main-content{position:relative;isolation:isolate;background:linear-gradient(155deg,#142b49 0%,#0b1b30 54%,#102845 100%)}
body[data-page] #main-content>.section,
body[data-page] #main-content>.section.alt{background:transparent}
body[data-page] #main-content::before,
body[data-page] #main-content::after{content:"";position:fixed;z-index:-1;pointer-events:none;will-change:transform}
body[data-page] #main-content::before{
  inset:-12vh -12vw;
  background:
    radial-gradient(ellipse 44% 53% at 82% 27%,rgba(55,162,255,.45),rgba(36,109,217,.19) 48%,transparent 78%),
    radial-gradient(ellipse 32% 42% at 12% 85%,rgba(25,128,233,.26),transparent 76%),
    radial-gradient(ellipse 30% 34% at 53% 5%,rgba(39,94,191,.18),transparent 80%);
  animation:page-aurora-drift 14s ease-in-out infinite alternate
}
body[data-page] #main-content::after{
  inset:-20vh -35vw;
  background:
    linear-gradient(112deg,transparent 36%,rgba(80,183,255,.015) 45%,rgba(110,205,255,.19) 49.7%,rgba(127,218,255,.29) 50%,rgba(89,183,255,.07) 52%,transparent 64%),
    radial-gradient(circle at 76% 37%,transparent 0 174px,rgba(119,199,255,.25) 175px 176px,transparent 177px 254px,rgba(119,199,255,.12) 255px 256px,transparent 257px);
  opacity:.85;
  animation:page-light-sweep 16s ease-in-out infinite alternate
}
@keyframes page-aurora-drift{from{transform:translate3d(-3vw,-2vh,0)}to{transform:translate3d(5vw,4vh,0)}}
@keyframes page-light-sweep{from{transform:translate3d(-18vw,0,0)}to{transform:translate3d(18vw,0,0)}}
[data-theme="light"] body[data-page] #main-content{background:linear-gradient(155deg,#f5f8fc,#eaf2fc 55%,#f5f8fc)}
[data-theme="light"] body[data-page] #main-content::before{opacity:.3}
[data-theme="light"] body[data-page] #main-content::after{opacity:.25}
@media(prefers-reduced-motion:reduce){body[data-page] #main-content::before,body[data-page] #main-content::after{animation:none;will-change:auto}}

/* Full-page blog reading experience. */
.blog-card{color:var(--text);text-decoration:none}
.blog-card:focus-visible,.blog-back-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.blog-article-section .container,.blog-article-missing .container{max-width:1120px}
.blog-back-link{display:inline-flex;align-items:center;gap:11px;color:var(--accent);font-size:14px;font-weight:700;text-decoration:none;transition:gap .2s,color .2s}
.blog-back-link:hover{gap:16px;color:var(--text)}
.blog-article-header{max-width:920px;margin:42px 0 38px}
.blog-article-header .blog-published{margin-bottom:16px}
.blog-article-header h1,.blog-article-missing h1{font-family:Barlow,Arial,sans-serif;font-size:clamp(42px,5.5vw,76px);font-weight:600;line-height:1.04;letter-spacing:-.05em;text-wrap:balance}
.blog-article-cover{width:100%;height:clamp(260px,38vw,480px);margin:0 0 54px;overflow:hidden;border:1px solid var(--border2);border-radius:8px;background:var(--bg2)}
.blog-article-cover img{display:block;width:100%;height:100%;object-fit:cover}
.blog-article-body.blog-detail-body{max-width:790px;margin-inline:auto;color:var(--muted);font-family:Barlow,Arial,sans-serif;font-size:19px;line-height:1.75}
.blog-article-body h2,.blog-article-body h3{color:var(--text);font-family:Barlow,Arial,sans-serif;line-height:1.2;letter-spacing:-.025em}
.blog-article-body h2{font-size:clamp(27px,3vw,36px);margin:45px 0 14px}
.blog-article-body h3{font-size:clamp(23px,2.4vw,29px);margin:38px 0 12px}
.blog-article-body p,.blog-article-body ul,.blog-article-body ol{margin-bottom:21px}
.blog-article-body li{margin-bottom:8px}
.blog-article-body img{display:block;max-width:100%;width:100%!important;height:auto!important;max-height:420px;object-fit:cover;border-radius:8px;margin:28px 0!important}
.blog-article-body a{color:var(--accent);text-underline-offset:3px;overflow-wrap:anywhere}
.blog-article-body a:hover{color:var(--text)}
.blog-article-body .blog-source-list{padding-top:18px;border-top:1px solid var(--border2);font-size:.87em;line-height:1.6}
.blog-article-body .blog-source-list li{margin-bottom:13px}
.blog-back-bottom{display:flex;width:fit-content;max-width:790px;margin:65px auto 0;padding-top:25px;border-top:1px solid var(--border2)}
.blog-article-missing{min-height:65vh}.blog-article-missing h1{margin-bottom:30px}
@media(max-width:700px){.blog-article-header{margin:34px 0 28px}.blog-article-cover{margin-bottom:37px}.blog-article-body.blog-detail-body{font-size:17px;line-height:1.7}.blog-article-body h2{margin-top:35px}.blog-article-body h3{margin-top:30px}}
