/* Public layout contract: one grid; structural cards never move on hover. */
.public-body{--site-max:1440px;--site-gutter:clamp(20px,4.45vw,64px);--content-width:min(var(--site-max),calc(100% - var(--site-gutter)*2));--panel-pad:clamp(24px,3vw,40px);background:#f5f8f7}
.public-body .topbar{padding-inline:max(var(--site-gutter),calc((100% - var(--site-max))/2));height:82px;gap:28px}
.public-body main>.section,.public-body main>.panel,.public-body main>.wideform,.public-body main>.pagehead,.public-body main>.dashhead,.public-body main>.guide,.public-body main>.flow,.public-body main>.teamhero,.public-body main>.reviewnote,.public-body main>.submitbar,.public-body main>.twocol,.public-body main>.steps,.public-body .profile-layout{width:var(--content-width);max-width:none;margin-inline:auto}
.public-body .section{width:var(--content-width);max-width:none;padding:72px 0;margin-inline:auto}
.public-body main>:is(.panel,.wideform){padding:var(--panel-pad);margin-block:28px}
.public-body main>.section.panel{padding:var(--panel-pad);margin-block:28px}
.public-body main>:is(.pagehead,.dashhead){margin-block:36px 28px;padding:44px var(--panel-pad);border-radius:22px;background:linear-gradient(115deg,#eaf4ef,#f0f6f3);position:relative;overflow:hidden;isolation:isolate}
.public-body .pagehead:after{content:"";position:absolute;inset:0 0 0 40%;z-index:-1;opacity:.48;background:url('/static/mobility-contours.svg') no-repeat right center/cover;pointer-events:none}
.public-body .pagehead h1,.public-body .dashhead h1{font-size:clamp(36px,3.3vw,54px);line-height:1.16;margin:16px 0}
.public-body .pagehead p{max-width:76ch;margin-bottom:0;font-size:16px}
.public-body .guide{padding:0;gap:20px;align-items:stretch;margin-block:0 32px;grid-template-columns:repeat(4,minmax(0,1fr))}
.public-body .guidecard{padding:28px;border-radius:18px;min-height:246px;display:flex;flex-direction:column;background:#fff}
.public-body .guidecard>b{display:grid;place-items:center;width:38px;height:38px;border:1px solid #d9e9e2;background:#f2f8f5;border-radius:10px;font-size:13px;font-variant-numeric:tabular-nums}
.public-body .guidecard h3{font-size:21px;margin:25px 0 12px;line-height:1.4}
.public-body .guidecard p{margin:0;font-size:15px;line-height:1.85}
.public-body .guidecard>a{margin-top:auto;padding-top:18px;font-size:13px;color:#127660;font-weight:650}
.public-body .guidecard:before{display:none}
.public-body :is(.guidecard,.track-card,.feature-news,.news-list>a,.quickbar>a,.fact-grid>div):hover{transform:none;box-shadow:0 12px 30px #205c4810}
.public-body .track-card--illustrated{height:100%}.public-body .track-card-body{padding:26px 28px 30px}.public-body .track-card--illustrated p{flex:1}.public-body .track-card--illustrated a{margin-top:24px}
.public-body .flow{padding:var(--panel-pad);margin-block:32px;background:#143e39 url('/static/mobility-contours.svg') no-repeat right bottom/auto 110%;border:1px solid #24564d;box-shadow:none}
.public-body .flow h2{font-size:28px;margin-top:0}.public-body .flow>p{font-size:14px;line-height:1.8;color:#c5dcd3;max-width:90ch}
.public-body .flowrow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:28px 0}.public-body .flowrow i{display:none}.public-body .flowrow span{display:flex;align-items:center;justify-content:center;min-height:66px;padding:16px 12px;font-size:14px;background:#ffffff08;border-color:#ffffff30;text-align:center}
.public-body #required-materials>.list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px;padding:24px 0}.public-body #required-materials>.list-row:last-child{padding-bottom:0;border-bottom:0}.public-body #required-materials h2{margin:0 0 12px;font-size:26px}.public-body #required-materials h3{margin:0 0 8px;font-size:18px}.public-body #required-materials p{margin:0 0 8px;color:#637a70;font-size:14px}
.public-body .profile-layout{padding:0;gap:24px}.public-body .profile-layout>:is(.panel,.wideform),.public-body .twocol>.panel{margin:0;width:100%;max-width:none;padding:var(--panel-pad)}
.public-body .legal-page p{max-width:90ch;line-height:1.9}.public-body .section:has(>.contact-card:only-child){padding-block:28px 64px}.public-body .section>.contact-card:only-child{padding:var(--panel-pad)}
.public-body .survey-public-card,.public-body .home-survey-card{display:flex;flex-direction:column;align-items:stretch}.public-body .survey-public-card>a,.public-body .home-survey-card>a{align-self:flex-start;margin-top:auto}.public-body .survey-public-card>p,.public-body .home-survey-card>p{flex:1}
.public-body .section-title{margin-bottom:32px;gap:24px}.public-body .section-title h2{font-size:clamp(28px,2.6vw,38px)}
.public-body .news-grid:has(.news-list:empty){grid-template-columns:1fr}.public-body .news-list:empty{display:none}.public-body .feature-news{padding:0;display:grid;grid-template-columns:minmax(220px,.65fr) 1fr;gap:32px;align-items:center;max-width:none}.public-body .news-poster--illustrated{min-height:260px;border-radius:16px}.public-body .news-grid:has(.news-list:empty) .feature-news{grid-template-columns:minmax(260px,.65fr) 1fr;max-width:100%}
.public-body .fact-grid{align-items:stretch}.public-body .fact-grid>div{min-height:130px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.public-body .schedule-line,.public-body .schedule-custom{width:var(--content-width);max-width:none;margin-inline:auto}.public-body .applyband{padding-inline:max(var(--site-gutter),calc((100% - var(--site-max))/2));background:#0c5147 url('/static/mobility-contours.svg') no-repeat right center/auto 200%;gap:32px}
.public-body footer{padding-inline:max(var(--site-gutter),calc((100% - var(--site-max))/2));gap:32px}
.public-body .reveal{opacity:1;transform:none;filter:none;transition:opacity .65s ease}.public-body.motion-ready .reveal:not(.visible){opacity:0;transform:none;filter:none}.public-body .reveal.visible{opacity:1;transform:none;filter:none}
/* Carousel: images dissolve; copy and toolbar share the same immutable geometry. */
.public-body .hero-slider.hero-slider--illustrated{height:clamp(600px,calc(100svh - 150px),760px);min-height:600px;overflow:hidden;background:#0b3039;--slide-duration:8s}
.public-body .hero-slide{transform:none!important;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 0s linear 1s;z-index:0}
.public-body .hero-slide.active{transform:none!important;opacity:1;visibility:visible;transition:opacity 1s ease;z-index:1}
.public-body .hero-art{inset:0;overflow:hidden}.public-body .hero-art img{object-fit:cover;object-position:70% 50%;width:100%;height:100%;transform:scale(1.015);transition:none}
.public-body .hero-slide.active .hero-art img{animation:heroDrift 8s linear both}
.public-body .hero-slide .hero-shade{z-index:1;background:linear-gradient(90deg,#07283188 0%,#092c3560 35%,#092c3520 61%,transparent 83%)}
.public-body .hero-inner{position:relative;z-index:3;width:var(--content-width);height:100%;margin:auto;padding:0!important;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-bottom:78px!important}
.public-body .hero-inner:before,.public-body .hero-slide:after,.public-body .hero-slider:after,.public-body .hero-slider:before{display:none}
.public-body .hero-tag{font-size:12px;letter-spacing:.2em;line-height:1.6;max-width:650px;border:0;padding:0;gap:14px;color:#bee8d9}
.public-body .hero-tag:before{width:36px;background:#83dfbf;box-shadow:0 0 16px #6effcdaa}
.public-body .hero-inner h1{font-size:clamp(48px,4.8vw,78px)!important;line-height:1.13;letter-spacing:-.035em;font-weight:700;margin:22px 0;max-width:720px}
.public-body .hero-inner h1 em{color:#b9f9df;text-shadow:0 0 42px #9cf0d525}
.public-body .hero-inner>p{font-size:17px;line-height:1.85;margin:0;max-width:580px;min-height:64px;color:#e1efeb;text-wrap:pretty}
.public-body .hero-actions{display:flex;gap:14px;margin:24px 0 0;flex-wrap:wrap}.public-body .hero-actions>a{min-height:50px;min-width:136px;padding:13px 24px;border-radius:9px}
.public-body .hero-slider .ambient-light{z-index:2;inset:0;background:radial-gradient(ellipse at 80% 28%,#a9edc319,transparent 43%);opacity:.65;mix-blend-mode:screen;animation:atmosphereBreathe 10s ease-in-out infinite alternate}
.public-body .hero-slider .tech-grid{display:none}
.public-body .hero-toolbar{width:var(--content-width);position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:8;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#d5efe4;border-top:1px solid #dafff026;padding-top:18px}
.public-body .hero-scene-caption{display:flex;align-items:center;gap:16px;font-size:11px;letter-spacing:.12em}.public-body .hero-scene-caption strong{font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;min-width:52px}.public-body .hero-scene-caption small{opacity:.8;letter-spacing:.04em}
.public-body .hero-controls{display:flex;align-items:center;gap:12px}
.public-body .hero-slider .slider-dots{position:static;transform:none;display:flex;gap:10px;align-items:center}
.public-body .hero-slider .slider-dots button{position:relative;padding:0;width:34px;height:30px;min-height:30px;border:0;border-radius:0;background:transparent;box-shadow:none}
.public-body .hero-slider .slider-dots button:before{content:"";position:absolute;left:0;right:0;top:14px;height:2px;background:#d3fbe94d}.public-body .hero-slider .slider-dots button.on:before{background:#c2ffe6;box-shadow:0 0 10px #9cffd9}
.public-body .hero-slider .slider-arrow,.public-body .hero-slider .slider-pause{position:static;transform:none;display:inline-flex;align-items:center;justify-content:center;background:#163e3c70;border:1px solid #d6fff332;border-radius:50%;width:40px;height:40px;min-height:40px;min-width:40px;font-size:22px;line-height:1;color:#eafff5;backdrop-filter:blur(8px);padding:0}
.public-body .hero-slider .slider-pause{width:auto;border-radius:24px;padding-inline:16px;font-size:12px;white-space:nowrap}
.public-body .hero-controls button:hover{background-color:#ffffff15}.public-body .hero-controls button:focus-visible{outline:2px solid #bcffe3;outline-offset:3px}
.public-body .hero-progress{position:absolute;left:0;right:0;bottom:0;height:2px;z-index:8;background:#ffffff12}.public-body .hero-progress i{display:block;height:100%;background:linear-gradient(90deg,#55c8a8,#ddffea);transform-origin:left;transform:scaleX(0);box-shadow:0 0 14px #b2ffd9}
.public-body .hero-progress i.is-running{animation:slideProgress var(--slide-duration) linear forwards}
.public-body .deadline-ribbon,.public-body .quickbar{width:var(--content-width);max-width:none;margin-inline:auto;box-sizing:border-box}
.public-body .deadline-ribbon{padding:16px 24px;margin-top:0;border-radius:0;background:#134a40;border-color:#235c50;font-size:13px;z-index:2}
.public-body .quickbar{margin-block:0 0;border-radius:0 0 16px 16px;overflow:hidden;box-shadow:0 14px 34px #153d3010;z-index:2;transform:none;opacity:1!important}.public-body .quickbar>a{padding:24px;min-height:94px}.public-body .quickbar a:hover{color:#164a3c;background:#eaf7f1}
.public-body .quickbar+.section{padding-top:72px}
@keyframes slideProgress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes atmosphereBreathe{from{opacity:.25}to{opacity:.7}}
@media(min-width:851px) and (max-width:1280px){.public-body .topbar{gap:20px}.public-body .topbar nav{gap:13px;font-size:12px}.public-body .brand-logo img{width:182px}}
@media(max-width:1100px){.public-body .guide{grid-template-columns:repeat(2,minmax(0,1fr))}.public-body .hero-inner h1{font-size:60px!important}.public-body .hero-inner>p{max-width:530px}.public-body .feature-news{grid-template-columns:1fr;gap:22px}}
@media(max-width:850px){.public-body{--site-gutter:24px;--panel-pad:26px}.public-body .topbar{height:70px;padding-inline:24px}.public-body .section{padding-block:48px}.public-body main>:is(.pagehead,.dashhead){padding:32px var(--panel-pad);margin-top:24px}.public-body .hero-slider.hero-slider--illustrated{height:680px!important;min-height:680px}.public-body .hero-inner{justify-content:flex-start;padding-top:76px!important;padding-bottom:0!important}.public-body .hero-inner h1{font-size:clamp(40px,7.5vw,58px)!important;line-height:1.16;margin:20px 0}.public-body .hero-inner>p{font-size:16px;line-height:1.85;max-width:500px;min-height:60px}.public-body .hero-tag{font-size:10px;letter-spacing:.14em;max-width:95%}.public-body .hero-tag:before{width:22px;flex:none}.public-body .hero-art img{object-position:75% center}.public-body .hero-slide .hero-shade{background:linear-gradient(180deg,#092a35e8 0%,#082b36cc 41%,#0b33384d 70%,#0528304d)}.public-body .hero-slider .slider-arrow{display:inline-flex}.public-body .hero-toolbar{bottom:20px;padding-top:16px;gap:14px;flex-wrap:wrap}.public-body .hero-controls{gap:9px}.public-body .hero-scene-caption{width:100%;gap:12px;font-size:10px}.public-body .hero-scene-caption small{margin-left:auto}.public-body .hero-slider .slider-pause{margin-left:auto}.public-body .hero-controls{width:100%}.public-body .hero-slider .slider-dots{margin-right:auto}.public-body .deadline-ribbon{margin-inline:auto;font-size:12px;padding:16px 20px;gap:6px 12px}.public-body .deadline-counter{margin-left:0;width:100%;padding-left:19px}.public-body .quickbar>a{min-height:82px;padding:18px;gap:12px}.public-body .quickbar+.section{padding-top:48px}.public-body .flowrow{grid-template-columns:1fr 1fr}.public-body .flowrow span:last-child{grid-column:1/-1}.public-body .news-grid:has(.news-list:empty) .feature-news{grid-template-columns:1fr}.public-body .feature-news{grid-template-columns:1fr}.public-body .section-title{gap:14px}.public-body .applyband,.public-body footer{padding-inline:var(--site-gutter)}.public-body .public-qr{flex-wrap:wrap}}
@media(max-width:540px){.public-body{--site-gutter:20px;--panel-pad:24px}.public-body .topbar{padding-inline:20px}.public-body .guide{grid-template-columns:1fr;gap:14px}.public-body .guidecard{min-height:0;padding:26px}.public-body .guidecard h3{margin-top:20px}.public-body .hero-inner h1{font-size:40px!important;max-width:100%;letter-spacing:-.04em}.public-body .hero-inner>p{font-size:15px;max-width:100%;min-height:84px}.public-body .hero-actions{margin-top:20px;gap:10px}.public-body .hero-actions>a{min-width:0;min-height:48px;padding:12px 20px;font-size:14px}.public-body .hero-inner{padding-top:70px!important}.public-body .hero-tag{font-size:9px;letter-spacing:.11em}.public-body .hero-scene-caption small{display:none}.public-body .hero-slider .slider-arrow{width:38px;height:38px;min-width:38px;min-height:38px}.public-body .hero-slider .slider-pause{font-size:11px;padding-inline:12px}.public-body .hero-slider .slider-dots{gap:8px}.public-body .hero-slider .slider-dots button{width:28px;min-width:28px}.public-body .quickbar>a{padding:16px 14px}.public-body .quickbar span{font-size:13px}.public-body .quickbar b{font-size:20px}.public-body .flowrow{grid-template-columns:1fr}.public-body .flowrow span:last-child{grid-column:auto}.public-body #required-materials>.list-row{grid-template-columns:1fr;gap:14px}.public-body #required-materials>.list-row>.ghostbtn{justify-self:start}.public-body main>.section.panel{margin-block:24px}.public-body .pagehead h1,.public-body .dashhead h1{font-size:36px}.public-body .feature-news{gap:20px}.public-body .news-poster--illustrated{min-height:230px}.public-body .hero-slider .ambient-light{animation:none}.public-body .track-card-body{padding:24px}.public-body .track-card--illustrated h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){.public-body .hero-slide,.public-body .hero-art img,.public-body .reveal{transition:none!important}.public-body .hero-art img{transform:none!important;animation:none!important}.public-body .hero-slider .ambient-light,.public-body .hero-progress i{animation:none!important}.public-body.motion-ready .reveal:not(.visible){opacity:1}.public-body .hero-progress{display:none}}
@media print{.public-body{--content-width:100%;--panel-pad:0}.public-body main>:is(.pagehead,.dashhead,.panel,.section,.wideform){width:100%;padding:0;margin:0 0 20px;background:white;box-shadow:none;border:0}.public-body .pagehead:after,.public-body .hero-toolbar{display:none}}

.public-body .schedule-section>.section-title{padding-block:0}

@keyframes heroDrift{from{transform:scale(1.015)}to{transform:scale(1.045)}}
.public-body .hero-slider[data-autoplay="stopped"] .hero-art img,.public-body .hero-slider[data-autoplay="stopped"] .ambient-light{animation-play-state:paused}
.public-body .hero-scene-caption small{font-size:11px;color:#d5efe4;opacity:1}
.public-body .hero-slider .slider-pause:disabled{opacity:.8;cursor:default}
@media(max-width:360px){.public-body .hero-actions>a{padding-inline:14px;font-size:13px}.public-body .hero-tag{letter-spacing:.07em;font-size:8px}}
/* Crossfade scenery, never stack two sets of copy during the dissolve. */
.public-body .hero-slide:not(.active) .hero-inner{visibility:hidden;opacity:0}
.public-body .hero-slide.active .hero-inner{visibility:visible;opacity:1}
