/* Cinematic opening, coordinated with the CHUB reference. */
:root{--ease-out:cubic-bezier(.22,.75,.25,1);--red:#ed302b}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.reading-progress{position:absolute;bottom:-1px;left:0;height:2px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;pointer-events:none}
body[data-page=home] .topbar{position:absolute;top:0;left:0;right:0;z-index:35;background:#1117193b;border-bottom:1px solid #ffffff18;color:#c6c8c8}
body[data-page=home] .header{position:absolute;top:36px;left:0;right:0;color:#fff;background:transparent;border-bottom:1px solid #ffffff20;transition:background .35s,box-shadow .35s}
body[data-page=home] .header.is-scrolled{position:fixed;top:0;background:#12191cf2;backdrop-filter:blur(16px);box-shadow:0 4px 24px #00000016}
body[data-page=home] .brand-az{color:#b4b8b8}
body[data-page=home] .nav>a{color:#c7caca}
body[data-page=home] .nav>a.active,body[data-page=home] .nav>a:hover{color:white}
body[data-page=home] .header-cta{background:#ffffff08;color:white;border-color:#ffffff4d;backdrop-filter:blur(10px)}
body[data-page=home] .header-cta:hover{background:var(--red);border-color:var(--red)}
body[data-page=home] .menu-toggle span{background:#fff}
body[data-page=home] .route-enter{animation:none}
.drive-hero{height:100vh;height:100svh;min-height:700px;position:relative;isolation:isolate;background:#141b1e;color:#fff;overflow:hidden;--pointer-x:0px;--pointer-y:0px}
.drive-hero:before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,#10181df7 0%,#10181de8 23%,#10181d99 45%,#10181d08 79%),linear-gradient(0deg,#0c141cf0 0%,#0c141c40 35%,#0c141c00 65%),linear-gradient(180deg,#0c141c70 0%,transparent 35%)}
.drive-media{position:absolute;inset:-15px;z-index:-1;transform:translate3d(var(--pointer-x),var(--pointer-y),0);transition:transform 1.4s var(--ease-out)}
.drive-scene{position:absolute;inset:0;opacity:0;visibility:hidden;overflow:hidden;transition:opacity 1.3s ease,visibility 1.3s;transform:translateZ(0)}
.drive-scene.is-active{opacity:1;visibility:visible;z-index:2}
.drive-scene.is-exiting{opacity:0;visibility:visible;z-index:1;transform:translateX(-3%);transition:opacity 1.3s ease,transform 1.5s var(--ease-out)}
.drive-scene img{width:85%;height:100%;margin-left:15%;object-fit:cover;object-position:var(--scene-position,center);transform:scale(1.035);mask-image:linear-gradient(90deg,transparent,#000 22%)}
.drive-scene.is-active img{animation:camera-drift 15s ease-in-out alternate infinite}
.drive-hero.is-held .drive-scene img{animation-play-state:paused}
.drive-grid{position:absolute;right:14%;top:130px;bottom:115px;width:1px;background:linear-gradient(transparent,#ffffff1a 30%,#ffffff1a 70%,transparent);pointer-events:none;z-index:1}
.drive-grid:after{content:'';position:absolute;top:22%;left:-4px;width:9px;height:9px;border:1px solid #ffffff55;border-radius:50%}
.drive-inner{height:100%;position:relative;z-index:2;padding-top:150px;padding-bottom:170px;display:flex;flex-direction:column;justify-content:center}
.drive-topline{display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:9px;letter-spacing:1.6px;text-transform:uppercase;color:#c8cccd;margin-bottom:27px}
.drive-topline>span:first-child{display:flex;align-items:center;gap:12px}
.drive-topline>span:last-child{color:#bcc0c0;font-size:8px;letter-spacing:1.4px;position:absolute;right:48px;top:162px}
.drive-topline i{width:6px;height:6px;border-radius:50%;background:#ff6660;box-shadow:0 0 0 5px #ed302b18;animation:live-dot 3s ease-in-out infinite;flex-shrink:0}
.drive-copy{max-width:790px}
.drive-copy h1{font-size:clamp(62px,6.45vw,92px);line-height:1.08;font-weight:700;letter-spacing:-.058em;margin:0 0 24px;max-width:790px}
.drive-title-line{display:block;overflow:hidden;padding-bottom:9px;margin-bottom:-9px}
.drive-title-line>span,.drive-title-line>em{display:block;transform-origin:0 100%}
.drive-title-line em{font-style:normal;color:#ff6058}
.drive-description{font-size:13px;line-height:1.95;max-width:395px;color:#c5cbcc;min-height:76px}
.drive-actions{display:flex;align-items:center;gap:32px;margin-top:25px}
.drive-actions .button{min-height:52px;gap:36px;padding-inline:23px;background:var(--red);border-color:var(--red);border-radius:5px;font-size:12px}
.drive-actions .button:hover{background:#ff514a;border-color:#ff514a}
.drive-secondary{display:inline-flex;align-items:center;gap:22px;font-size:12px;font-weight:600;color:#fff}
.drive-secondary>span{font-size:21px;transition:transform .3s}
.drive-secondary:hover>span{transform:translateX(6px)}
.drive-bottom{position:absolute;left:48px;right:48px;bottom:132px;display:flex;align-items:center;gap:60px}
.drive-scroll{padding:0;background:none;border:0;color:#aeb8ba;display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.4px;text-align:left}
.drive-scroll>span{width:22px;height:36px;border:1px solid #ffffff4a;border-radius:20px;position:relative;display:block}
.drive-scroll i{width:2px;height:6px;display:block;background:#fff;position:absolute;top:8px;left:9px;border-radius:2px;animation:scroll-dot 2s ease infinite}
.drive-scroll:hover{color:#fff}
.drive-caption{margin-left:auto;position:relative;padding-left:24px}
.drive-caption:before{content:'';position:absolute;left:0;top:5px;width:2px;height:31px;background:var(--red)}
.drive-caption>span{display:block;font-size:8px;letter-spacing:1.4px;color:#adb7bb}
.drive-caption p{color:white;font-size:17px;letter-spacing:-.5px;font-weight:500;margin-top:4px}
.drive-photo-note{font-size:8px;color:#a4aeb1;align-self:flex-end;line-height:1.4}
.drive-edge{position:absolute;right:22px;top:43%;writing-mode:vertical-rl;z-index:2;font-size:8px;letter-spacing:2.2px;color:#e0e2e3}
.drive-controls{position:absolute;bottom:0;left:0;right:0;z-index:3;border-top:1px solid #ffffff30;background:#10181d4a;backdrop-filter:blur(16px)}
.drive-control-inner{display:flex;align-items:stretch;gap:28px}
.drive-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));flex:1;min-width:0}
.drive-tab{position:relative;display:flex;align-items:center;gap:17px;background:none;border:0;border-right:1px solid #ffffff15;color:#a2adb0;text-align:left;padding:25px 23px 27px 0;min-width:0}
.drive-tab+.drive-tab{padding-left:23px}
.drive-tab>small{font-size:9px;letter-spacing:.7px;color:#89979e;align-self:flex-start;padding-top:3px}
.drive-tab>span{display:flex;flex-direction:column;gap:6px;min-width:0}
.drive-tab strong{font-weight:600;font-size:12px;line-height:1.4;letter-spacing:-.2px}
.drive-tab em{font-weight:400;font-size:9px;font-style:normal;line-height:1.4;color:#839397}
.drive-tab.is-active,.drive-tab:hover{color:#fff}
.drive-tab.is-active>small{color:#ff7168}
.drive-tab.is-active em{color:#b3bfc0}
.drive-progress{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ff655d;transform:scaleX(0);transform-origin:left;transition:none}
.drive-navigation{display:flex;align-items:center;gap:7px}
.drive-navigation>button{width:35px;height:35px;display:grid;place-items:center;color:#fff;border:1px solid #ffffff40;background:none;border-radius:3px;transition:background .2s,border-color .2s}
.drive-navigation>button:hover{background:#ffffff19;border-color:#ffffff90}
.drive-navigation>button>span:not(.pause-bars){font-size:19px;line-height:1}
.drive-navigation .drive-pause{border-color:transparent;margin-right:4px}
.drive-count{font-size:9px;letter-spacing:1px;color:#fff;margin-right:10px;white-space:nowrap}
.drive-count i{font-style:normal;color:#829295;margin-inline:5px}
.pause-bars{display:flex;align-items:center;gap:4px}
.pause-bars i{width:2px;height:10px;background:currentColor}
.drive-navigation .play-triangle{display:none}
.drive-pause[aria-pressed=true] .pause-bars{display:none}
.drive-pause[aria-pressed=true] .play-triangle{display:inline-block}
.drive-shutters{position:absolute;inset:0;display:flex;z-index:8;pointer-events:none}
.drive-shutters>span{width:50%;height:100%;background:#11191c;transform:scaleX(0)}
.drive-hero.is-ready .drive-shutters>span:first-child{transform-origin:left;animation:shutter-open 1.15s var(--ease-out) both}
.drive-hero.is-ready .drive-shutters>span:last-child{transform-origin:right;animation:shutter-open 1.15s var(--ease-out) both}
.drive-hero.is-ready .drive-topline{animation:slide-copy-enter .9s .3s var(--ease-out) both}
.drive-hero.is-ready .drive-title-line>span,.drive-hero.is-ready .drive-title-line>em{animation:title-enter 1.05s .35s var(--ease-out) both}
.drive-hero.is-ready .drive-title-line:nth-child(2)>em{animation-delay:.49s}
.drive-hero.is-ready .drive-description{animation:slide-copy-enter 1s .6s var(--ease-out) both}
.drive-hero.is-ready .drive-actions{animation:slide-copy-enter 1s .73s var(--ease-out) both}
.drive-hero.is-ready .drive-bottom{animation:slide-copy-enter 1s .8s var(--ease-out) both}
.drive-hero.is-changing .drive-title-line>span,.drive-hero.is-changing .drive-title-line>em{animation:title-change .95s .08s var(--ease-out) both}
.drive-hero.is-changing .drive-title-line:nth-child(2)>em{animation-delay:.18s}
.drive-hero.is-changing .drive-description{animation:slide-copy-change .8s .2s var(--ease-out) both}
.drive-hero.is-changing .drive-caption{animation:slide-copy-change 1s .2s var(--ease-out) both}
.motion-marquee{overflow:hidden;background:#f7f7f3;border-bottom:1px solid var(--line);padding:22px 0;mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee-drift 38s linear infinite}
.marquee-group{display:flex;align-items:center;gap:40px;padding-right:40px;flex-shrink:0}
.marquee-group span{font-size:34px;font-weight:600;letter-spacing:-1.6px;line-height:1.3;color:#999c94}
.marquee-group i{font-style:normal;font-size:30px;color:var(--red);font-weight:400}
.marquee-group .marquee-outline{color:transparent;-webkit-text-stroke:1px #999c94}
.motion-marquee:hover .marquee-track{animation-play-state:paused}
.scroll-reveal{transition:opacity .85s var(--ease-out) var(--reveal-delay,0ms),translate .95s var(--ease-out) var(--reveal-delay,0ms)}
.scroll-reveal:not(.is-revealed){opacity:0;translate:0 30px}
.scroll-reveal.is-revealed{opacity:1;translate:0 0}
.classroom-frame.scroll-reveal:not(.is-revealed){translate:-30px 0}
.split-copy.scroll-reveal:not(.is-revealed){translate:24px 0}
.classroom-frame,.program-preview{overflow:hidden}
.classroom-frame>img{transition:transform 1.2s var(--ease-out)}
.classroom-frame:hover>img{transform:scale(1.035)}
.service-card{overflow:hidden}
.service-card:before{content:'';position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.service-card:hover:before{transform:scaleX(1)}
.service-card .service-icon{transition:color .35s,background .35s,transform .5s var(--ease-out)}
.service-card:hover .service-icon{background:var(--red);color:white;transform:rotate(-7deg)}
.service-card .arrow-circle{transition:transform .35s,background .35s,color .35s}
.service-card:hover .arrow-circle{transform:rotate(45deg)}
.button{position:relative;overflow:hidden;isolation:isolate}
.button:before{content:'';position:absolute;inset:-1px;background:linear-gradient(110deg,transparent 25%,#ffffff26 46%,#ffffff08 58%,transparent 75%);transform:translateX(-130%);z-index:-1;transition:transform .6s var(--ease-out)}
.button:hover:before{transform:translateX(130%)}
.button>span[aria-hidden]{transition:transform .3s var(--ease-out)}
.button:hover>span[aria-hidden]{transform:translate(2px,-2px)}
.program-window{animation:program-float 7s ease-in-out infinite;animation-play-state:paused}
.program-preview.is-revealed .program-window{animation-play-state:running}
.program-progress:before{animation:program-progress 7s ease-in-out infinite}
.gallery-item img{transition:transform 1s var(--ease-out),filter .7s}
.gallery-item:hover img{transform:scale(1.065);filter:saturate(1.08)}
.social-card{transition:border-color .25s,transform .35s var(--ease-out)}
.social-card:hover{transform:translateY(-4px);border-color:var(--red)}
.answer-option.correct{position:relative;animation:correct-pulse .6s ease both}
.answer-option.wrong{animation:answer-shake .35s ease both}
.answer-burst{position:absolute;right:20px;top:50%;pointer-events:none;width:0;height:0}
.answer-burst i{position:absolute;left:0;top:0;width:4px;height:7px;border-radius:1px;background:#38995c;rotate:var(--angle);animation:particle-pop .8s var(--particle-delay) var(--ease-out) both}
.answer-burst i:nth-child(3n){background:#cdb665}
.answer-burst i:nth-child(2n){width:4px;height:4px;border-radius:50%}
.question-arrive .question-image svg{animation:question-in .6s var(--ease-out) both}
.question-arrive #question-title{animation:slide-copy-enter .5s .05s var(--ease-out) both}
.quiz-results{animation:question-in .6s var(--ease-out) both}
@keyframes camera-drift{from{transform:scale(1.035) translate3d(0,0,0)}to{transform:scale(1.13) translate3d(-1%,.6%,0)}}
@keyframes title-enter{from{opacity:0;transform:translate3d(-22px,108%,0) rotate(2deg)}to{opacity:1;transform:translate3d(0,0,0) rotate(0)}}
@keyframes title-change{from{opacity:0;transform:translate3d(0,108%,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes slide-copy-enter{from{opacity:0;transform:translate3d(0,20px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes slide-copy-change{from{opacity:0;transform:translate3d(22px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes shutter-open{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes live-dot{0%,100%{box-shadow:0 0 0 5px #ed302b18}50%{box-shadow:0 0 0 9px #ed302b00}}
@keyframes scroll-dot{0%,100%{opacity:0;transform:translateY(0)}25%{opacity:1}80%{opacity:0;transform:translateY(12px)}}
@keyframes marquee-drift{to{transform:translateX(-50%)}}
@keyframes program-float{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(-1.5deg) translateY(-7px)}}
@keyframes program-progress{0%,100%{width:30%}50%{width:75%}}
@keyframes correct-pulse{0%{box-shadow:0 0 0 0 #33995e38}100%{box-shadow:0 0 0 9px #33995e00}}
@keyframes answer-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes particle-pop{0%{opacity:1;translate:0 0;scale:.5}75%{opacity:1}100%{opacity:0;translate:calc(sin(var(--angle))*var(--distance)) calc(cos(var(--angle))*var(--distance));scale:1;rotate:calc(var(--angle) + 90deg)}}
@keyframes question-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@media(min-width:1450px){.drive-hero{min-height:760px}.drive-copy h1{font-size:94px}.drive-description{font-size:15px;max-width:440px;min-height:88px}.drive-inner{padding-top:165px;padding-bottom:190px}.drive-topline{margin-bottom:32px}.drive-bottom{bottom:145px}.drive-tab{padding-block:30px}.drive-tab strong{font-size:13px}.drive-tab em{font-size:10px}}
@media(max-width:1100px){.drive-copy h1{font-size:69px}.drive-topline>span:last-child{right:32px;font-size:7px}.drive-tab{gap:11px;padding-right:15px}.drive-tab+.drive-tab{padding-left:15px}.drive-tab strong{font-size:11px}.drive-tab em{font-size:8px}.drive-navigation>button{width:31px;height:33px}.drive-control-inner{gap:20px}.drive-count{display:none}.drive-bottom{left:32px;right:32px;gap:30px}.drive-edge{right:15px}.drive-caption p{font-size:16px}}
@media(max-width:950px){.drive-hero{min-height:680px}.drive-copy h1{font-size:63px}.drive-inner{padding-top:140px;padding-bottom:180px}.drive-topline>span:last-child{display:none}.drive-description{font-size:12px;max-width:360px;min-height:70px}.drive-scene img{width:100%;margin-left:0}.drive-hero:before{background:linear-gradient(90deg,#10181de8 0%,#10181dc4 34%,#10181d50 75%),linear-gradient(0deg,#0c141cf0 0%,#0c141c40 40%,#0c141c20 70%)}.drive-actions .button{min-height:48px;font-size:11px;gap:25px}.drive-secondary{font-size:11px}.drive-tab em{display:none}.drive-tab{padding-block:28px;gap:8px}.drive-navigation .drive-pause{margin-right:0}.drive-control-inner{gap:15px}.drive-caption{padding-left:17px}.drive-caption>span{font-size:7px}.drive-caption p{font-size:14px}.drive-photo-note{font-size:7px}.drive-scroll{font-size:8px}.drive-bottom{bottom:122px}}
@media(max-width:700px){body[data-page=home] .header{top:32px}body[data-page=home] .header.is-scrolled{top:0}body[data-page=home] .nav{background:#151e22;border-top-color:#ffffff20;box-shadow:0 15px 25px #0003}body[data-page=home] .nav>a{border-bottom-color:#ffffff12}.drive-hero{height:100svh;min-height:740px}.drive-inner{padding-top:140px;padding-bottom:235px;justify-content:center}.drive-topline{font-size:8px;letter-spacing:1.1px;margin-bottom:24px;max-width:320px;line-height:1.6}.drive-topline>span:first-child{gap:11px}.drive-copy h1{font-size:clamp(40px,11.4vw,65px);line-height:1.1;letter-spacing:-.06em;margin-bottom:23px;max-width:500px}.drive-description{max-width:330px;font-size:12px;line-height:1.9;min-height:90px}.drive-actions{gap:24px;margin-top:22px}.drive-actions .button{min-height:48px;padding:13px 18px;font-size:11px;gap:23px}.drive-secondary{font-size:11px;gap:12px}.drive-secondary>span{font-size:19px}.drive-hero:before{background:linear-gradient(90deg,#10181dc9 0%,#10181d88 100%),linear-gradient(0deg,#10181df5 0%,#10181d80 35%,transparent 65%),linear-gradient(180deg,#10181d60,transparent 30%)}.drive-scene img{object-position:var(--scene-position);filter:saturate(.9)}.drive-grid{display:none}.drive-edge{display:none}.drive-bottom{left:23px;right:23px;bottom:175px;gap:0;align-items:flex-end}.drive-scroll{display:none}.drive-caption{margin:0;padding-left:18px;flex:1}.drive-caption>span{font-size:7px;letter-spacing:1.3px}.drive-caption p{font-size:16px;margin-top:7px}.drive-caption:before{top:2px;height:35px}.drive-photo-note{font-size:7px;max-width:70px;text-align:right;margin-left:10px;line-height:1.7}.drive-control-inner{display:flex;flex-direction:column;gap:0}.drive-tabs{width:100%;grid-template-columns:repeat(4,minmax(0,1fr))}.drive-tab{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:9px;padding:18px 10px 18px 0;min-height:78px}.drive-tab+.drive-tab{padding-left:12px}.drive-tab:last-child{border-right:0}.drive-tab>small{font-size:8px;padding-top:0}.drive-tab strong{font-size:10px;line-height:1.4;font-weight:500;letter-spacing:0}.drive-navigation{width:100%;position:relative;justify-content:flex-end;padding:10px 0 12px;border-top:1px solid #ffffff12;gap:6px}.drive-navigation>button{height:28px;width:30px}.drive-navigation>button>span:not(.pause-bars){font-size:17px}.drive-count{display:block;position:absolute;left:0;font-size:9px}.drive-navigation .drive-pause{margin-right:7px}.drive-progress{height:2px}.motion-marquee{padding:18px 0}.marquee-group{gap:26px;padding-right:26px}.marquee-group span{font-size:28px;letter-spacing:-1.2px}.marquee-group i{font-size:24px}.scroll-reveal:not(.is-revealed){translate:0 22px}.classroom-frame.scroll-reveal:not(.is-revealed){translate:-18px 0}.split-copy.scroll-reveal:not(.is-revealed){translate:18px 0}}
@media(max-width:950px){.drive-scene img{mask-image:none}}
@media(max-width:370px){.drive-hero{min-height:720px}.drive-copy h1{font-size:39px}.drive-description{font-size:11px}.drive-actions{gap:17px}.drive-actions .button{padding-inline:14px;gap:15px;font-size:10px}.drive-secondary{font-size:10px;gap:10px}.drive-tab strong{font-size:9px}.drive-tab+.drive-tab{padding-left:10px}.drive-topline{font-size:7px}.drive-caption p{font-size:14px}}
@media(min-width:701px) and (max-height:760px){.drive-inner{padding-top:145px;padding-bottom:185px}.drive-copy h1{font-size:69px;margin-bottom:20px}.drive-description{font-size:12px;min-height:70px}.drive-topline{margin-bottom:22px}.drive-actions{margin-top:21px}.drive-bottom{bottom:124px}.drive-topline>span:last-child{top:158px}.drive-tab{padding-block:23px}}
@media(max-width:700px) and (max-height:760px){.drive-inner{padding-top:134px;padding-bottom:230px}.drive-hero{min-height:720px}.drive-copy h1{font-size:43px}.drive-topline{margin-bottom:18px}.drive-description{min-height:80px;font-size:11px}.drive-actions{margin-top:19px}.drive-bottom{bottom:166px}.drive-caption p{font-size:15px}}
@media(prefers-reduced-motion:reduce){.drive-scene,.drive-media,.scroll-reveal{transition:none!important}.drive-scene img,.drive-title-line>span,.drive-title-line>em,.drive-description,.drive-actions,.drive-topline,.drive-bottom,.marquee-track,.program-window,.program-progress:before,.drive-scroll i{animation:none!important}.drive-shutters{display:none}.scroll-reveal:not(.is-revealed){opacity:1;translate:0 0}.drive-title-line>span,.drive-title-line>em,.drive-description,.drive-actions,.drive-topline,.drive-bottom{opacity:1;transform:none}.motion-marquee{overflow:hidden}.marquee-track{transform:translateX(0)}.answer-burst{display:none}}
