/* Motion direction: studio light, long deceleration, quiet resting states. */
:root{--motion-ease:cubic-bezier(.16,1,.3,1);--motion-soft:cubic-bezier(.22,.75,.25,1)}
.header:after{content:'';position:absolute;bottom:-1px;left:0;width:100%;height:1px;background:#648cab;transform:scaleX(var(--read-progress,0));transform-origin:left;pointer-events:none}
.header-inner{animation:cinema-header .8s var(--motion-ease) both}
.horizon-hero{isolation:isolate}
.horizon-visual{filter:none;mask-image:linear-gradient(180deg,transparent,#000 8%,#000 89%,transparent);animation:cinema-sculpture 1.9s .12s var(--motion-ease) backwards}
.horizon-visual:before{content:'';position:absolute;inset:4% -4%;background:radial-gradient(ellipse at 55% 45%,#5990bc22,transparent 62%);pointer-events:none}
.horizon-copy>.eyebrow{animation:cinema-rise .9s .08s var(--motion-ease) backwards}
.horizon-copy h1,.page-hero>h1,.article-hero>h1{animation:none}
.cinema-line{display:block;clip-path:inset(-.16em -.16em -.18em -.16em);padding-bottom:.12em;margin-bottom:-.12em}
.cinema-line>span{display:block;animation:cinema-line 1.25s calc(.17s + var(--line,0)*.13s) var(--motion-ease) backwards}
.horizon-copy>p{animation:cinema-rise 1.1s .42s var(--motion-ease) backwards}
.horizon-actions{animation:cinema-rise 1.1s .54s var(--motion-ease) backwards}
.horizon-bottom{animation:cinema-rise 1.1s .68s var(--motion-ease) backwards}
.horizon-actions a,.signal-action,.new-cta .button,.header-contact{translate:var(--magnet-x,0px) var(--magnet-y,0px)}
.horizon-actions .button{box-shadow:inset 0 1px 0 #fff,0 0 0 1px #ffffff0a,0 5px 22px #0002;overflow:hidden}
.horizon-actions .button:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at var(--light-x,50%) var(--light-y,50%),#fff9,transparent 70%);opacity:0;transition:opacity .5s;pointer-events:none}
.horizon-actions .button:hover:before{opacity:.5}
.horizon-actions .text-link{box-shadow:inset 0 1px 0 #ffffff14;backdrop-filter:blur(12px)}
.motion-control{position:absolute;right:var(--gutter);top:22px;z-index:5;min-width:44px;height:44px;display:inline-flex;align-items:center;gap:9px;padding:0 12px;border:1px solid #d1e3ef45;border-radius:24px;color:#cfdae2;background:#18232d66;backdrop-filter:blur(10px);font-size:.65rem;letter-spacing:.015em;transition:background .25s,border-color .25s}
.motion-control:hover{background:#263d50;border-color:#d1e3ef80}.motion-control svg{width:14px;height:14px;fill:currentColor}.motion-control .play-mark{display:none}.motion-control[aria-pressed=true] .pause-mark{display:none}.motion-control[aria-pressed=true] .play-mark{display:block}
.motion-control:focus-visible{outline:2px solid #c9e7fc;outline-offset:4px}
.section-heading.reveal{transition:opacity 1s var(--motion-ease),transform 1.2s var(--motion-ease);transform:translateY(28px)}
.section-heading.reveal.visible{transform:none}
.expertise-row{position:relative;isolation:isolate;overflow:hidden;transition:background .55s,color .55s}
.expertise-row:before{content:'';position:absolute;inset:0;z-index:-1;opacity:0;background:radial-gradient(ellipse at var(--light-x,50%) var(--light-y,50%),#92b4c52b,transparent 65%);transition:opacity .5s;pointer-events:none}
.expertise-row:hover:before{opacity:1}.expertise-row h3{transition:translate .65s var(--motion-ease)}.expertise-row:hover h3{translate:6px 0}
.industry-scene:before{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;background:linear-gradient(115deg,transparent 18%,#deefff25 42%,transparent 68%);transform:translateX(-70%)}
[data-paper-state=flying]>.industry-scene:before{animation:paper-light 2.4s var(--motion-soft) both}
[data-paper-state=flying]>.editorial-article .editorial-cover:after{animation:paper-light 2.4s var(--motion-soft) both;background:linear-gradient(115deg,transparent 18%,#deefff35 42%,transparent 68%);pointer-events:none}
.industry-scene .deck-link b,.editorial-article .deck-link b{transition:transform .65s var(--motion-ease),background .4s}
.industry-scene:hover .deck-link b,.editorial-article:hover .deck-link b{transform:rotate(45deg);background:#adcce526}
.industry-scene:hover:before{opacity:1;transform:none;background:radial-gradient(ellipse at var(--light-x,50%) var(--light-y,50%),#dcefff22,transparent 65%);transition:opacity .6s}
.editorial-cover.photo-cover:after{background:radial-gradient(ellipse at var(--light-x,50%) var(--light-y,50%),#e1edff33,transparent 65%);pointer-events:none}
.editorial-article:hover .editorial-cover{clip-path:inset(0 round 3px)}
.new-cta{position:relative;isolation:isolate;overflow:hidden}
.new-cta:before{content:'';position:absolute;inset:-25%;z-index:-1;background:radial-gradient(ellipse at var(--light-x,70%) var(--light-y,45%),#9abace20,transparent 48%);pointer-events:none;opacity:var(--light-presence,.4);transition:opacity .8s}
.signal-dock:after{content:'';position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse at 15% 55%,#abcfe62b,transparent 60%);opacity:0;pointer-events:none}
.signal-landed.signal-dock:after{animation:dock-afterglow 2.1s var(--motion-soft) both}
.signal-copy,.signal-action{position:relative;z-index:1}
.journey-story{transition:opacity .75s var(--motion-soft),transform 1.05s var(--motion-ease),visibility .75s}
.journey-story.is-active{transition-delay:.06s}
.journey-navigation button{transition:color .45s,opacity .45s}
.mega-menu:not([hidden]),.company-nav[open]>div{animation:menu-panel .5s var(--motion-ease) backwards;transform-origin:50% 0}
.mobile-toggle span{transition:transform .45s var(--motion-ease)}
.mobile-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.mobile-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
@keyframes cinema-header{from{opacity:0;translate:0 -9px}}
@keyframes cinema-line{from{opacity:.1;translate:0 108%;rotate:1.4deg}to{opacity:1;translate:0 0;rotate:0deg}}
@keyframes cinema-rise{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
@keyframes cinema-sculpture{from{opacity:0;transform:scale(.91) translateY(24px)}to{opacity:1;transform:none}}
@keyframes paper-light{0%{opacity:0;transform:translateX(-80%)}30%{opacity:.65}75%{opacity:.16}100%{opacity:0;transform:translateX(60%)}}
@keyframes dock-afterglow{0%{opacity:0;transform:scale(.8)}24%{opacity:1}100%{opacity:0;transform:scale(1.15)}}
@keyframes menu-panel{from{opacity:0;translate:0 -8px;scale:1 .97}to{opacity:1;translate:0 0;scale:1}}
@keyframes menu-aperture{from{clip-path:circle(0 at calc(100% - 36px) 0);opacity:.4}to{clip-path:circle(150% at calc(100% - 36px) 0);opacity:1}}
@keyframes menu-item{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@media(max-width:940px){
 .mobile-menu{position:absolute;top:100%;height:calc(100svh - 80px);max-height:calc(100svh - 80px);padding:25px var(--gutter) max(38px,env(safe-area-inset-bottom));background:#080e17f7;backdrop-filter:blur(24px);box-shadow:0 24px 60px #111c2940;overscroll-behavior:contain;scrollbar-width:thin}
 .mobile-menu:not([hidden]){animation:menu-aperture .65s var(--motion-ease) backwards}
 .mobile-menu a{font-size:clamp(1.3rem,4.2vw,1.8rem);padding:15px 0;border-color:#c8d5e72b}
 .mobile-menu:not([hidden]) a{animation:menu-item .65s calc(.1s + var(--menu-index,0)*.035s) var(--motion-ease) backwards}
 .mobile-menu a:last-child{color:var(--warm)}
}
@media(max-width:700px){.motion-control{top:10px;height:36px;min-height:36px;font-size:.6rem;padding:0 10px}.horizon-visual{animation-duration:1.5s}[data-paper-state=flying]>.industry-scene:before,[data-paper-state=flying]>.editorial-article .editorial-cover:after{animation-duration:2.1s}}
@media(max-width:600px){.mobile-menu{height:calc(100svh - 73px);max-height:calc(100svh - 73px)}.motion-control{min-height:44px;top:5px}.motion-control>span{display:none}.horizon-copy{padding-top:64px}}
.motion-paused .cinema-line>span,.motion-paused .header-inner,.motion-paused .horizon-copy>*,.motion-paused .horizon-visual,.motion-paused .horizon-bottom,.motion-paused .signal-dock:after,.motion-paused .signal-wave,.motion-paused .signal-rim,.motion-paused .signal-bridge,.motion-paused .signal-action:before,.motion-paused .industry-scene:before,.motion-paused .editorial-cover:after{animation:none!important}
.motion-paused #travelling-light{display:none}.motion-paused .scene-card,.motion-paused .motion-ready{opacity:1!important;transform:none!important;translate:none!important;transition:none!important}.motion-paused .signal-pearl{opacity:1}
.motion-paused [data-magnetic]{translate:none!important}.motion-paused .horizon-visual{translate:none!important;opacity:1!important}.motion-paused .horizon-copy{opacity:1!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.header-inner,.cinema-line>span,.horizon-bottom,.motion-control,.mobile-menu,.mobile-menu a,.mega-menu,.company-nav[open]>div,.industry-scene:before,.editorial-cover:after,.signal-dock:after{animation:none!important;transition:none!important}.horizon-actions a,.signal-action,.new-cta .button,.header-contact{translate:none!important}.expertise-row h3{translate:none!important}.journey-story{transition:none!important}.mobile-toggle span{transition:none!important}}

.motion-paused .mobile-menu,.motion-paused .mobile-menu a,.motion-paused .mega-menu{animation:none!important;transition:none!important}

/* Careers: open roles, role pages, and online form states. */
.form-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.email-form small{font-weight:400;color:#8ea3b8;margin-left:6px}
.email-form input[type=file]{padding:11px;cursor:pointer}
.email-form button[disabled]{opacity:.6;cursor:progress}
.form-result[data-state=sent]{border-color:#5f9f7a;background:#0d1f1a}
.form-result[data-state=error]{border-color:#b56a6a;background:#211214}
.form-result p{margin:0 0 6px}
.job-list{display:grid;gap:14px;margin-top:50px}
.job-card{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) auto;gap:30px;align-items:center;padding:30px 32px;border:1px solid rgba(140,175,205,.22);background:rgba(10,22,36,.55);transition:border-color .35s var(--motion-soft),transform .35s var(--motion-soft),background .35s}
.job-card:hover,.job-card:focus-visible{border-color:#7fb2d8;background:rgba(14,30,48,.8);transform:translateY(-3px)}
.job-card h3{font-size:1.5rem;margin:10px 0 8px}
.job-card p{font-size:.9rem;color:#a9b7c6;margin:0}
.job-card ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.job-card li{font-size:.72rem;padding:6px 11px;border:1px solid rgba(140,175,205,.28);border-radius:30px;color:#cfdbe6}
.job-go{font-size:.8rem;white-space:nowrap;color:#9fd0f5}
.job-empty{padding:40px;border:1px dashed rgba(140,175,205,.3)}
.job-empty h3{font-size:1.4rem;margin:0 0 8px}
.job-detail{display:grid;grid-template-columns:300px minmax(0,1fr);gap:8%;align-items:start}
.job-detail .job-copy{padding:0}
.job-facts{position:sticky;top:110px;padding:28px;border:1px solid rgba(140,175,205,.22);background:rgba(10,22,36,.55)}
.job-facts dl{display:grid;gap:16px;margin:0 0 26px}
.job-facts dt{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:#7f95aa}
.job-facts dd{margin:4px 0 0;font-size:.95rem}
@media(max-width:860px){.job-card{grid-template-columns:1fr;gap:16px}.job-detail{grid-template-columns:1fr}.job-facts{position:static}}

/* Posts: rich article content (headings, media, galleries, video, quotes, lists). */
.article-body.no-toc{grid-template-columns:minmax(0,760px)}
.post-content h2{scroll-margin-top:130px;margin:56px 0 20px}
.post-content h2:first-child{margin-top:0}
.post-content h3{font-size:1.35rem;margin:38px 0 14px}
.post-content p{margin:0 0 22px}
.post-content a{text-decoration:underline;text-underline-offset:3px}
.post-figure{margin:38px 0}
.post-figure img,.post-figure video{display:block;width:100%;height:auto;border:1px solid rgba(140,175,205,.18);background:#0a1624}
.post-figure figcaption{font-size:.8rem;color:#8ea3b8;margin-top:12px;line-height:1.6}
.post-figure.wide{margin-left:-12%;margin-right:-12%}
.post-gallery{display:grid;gap:12px;margin:38px 0}
.post-gallery.count-2,.post-gallery.count-4{grid-template-columns:1fr 1fr}
.post-gallery.count-3{grid-template-columns:repeat(3,1fr)}
.post-gallery .post-figure{margin:0}
.post-gallery img{aspect-ratio:4/3;object-fit:cover}
.post-embed{position:relative;aspect-ratio:16/9;border:1px solid rgba(140,175,205,.18);background:#0a1624}
.post-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.post-quote{margin:42px 0;padding:6px 0 6px 28px;border-left:2px solid #7fb2d8}
.post-quote p{font-family:var(--serif,inherit);font-style:italic;font-size:1.5rem!important;line-height:1.5!important;margin:0}
.post-quote cite{display:block;margin-top:14px;font-style:normal;font-size:.8rem;letter-spacing:.06em;color:#8ea3b8}
.post-list{margin:0 0 26px;padding-left:22px;font-size:1.05rem;line-height:1.85}
.post-list li{margin-bottom:8px}
.post-list li::marker{color:#7fb2d8}
.article-cover img{object-fit:cover;max-height:78vh}
@media(max-width:940px){.post-figure.wide{margin-left:0;margin-right:0}.post-gallery.count-3{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.post-gallery.count-2,.post-gallery.count-3,.post-gallery.count-4{grid-template-columns:1fr}.post-quote p{font-size:1.2rem!important}}

/* Page blocks: team, cards, stats, buttons, custom homepage sections. */
.corporate-body .post-content>:first-child{margin-top:0}
.post-content .block-title{margin:56px 0 24px}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px;margin:30px 0 44px}
.team-card{display:grid;grid-template-rows:auto 1fr;border:1px solid rgba(140,175,205,.2);background:rgba(10,22,36,.55);transition:border-color .35s var(--motion-soft),transform .35s var(--motion-soft)}
.team-card:hover{border-color:#7fb2d8;transform:translateY(-3px)}
.team-card>img,.team-initials{width:100%;aspect-ratio:4/4.4;object-fit:cover;display:block;background:#0c1a2b}
.team-initials{display:grid;place-items:center;font-size:3rem;font-weight:300;letter-spacing:.04em;color:#7fb2d8;background:linear-gradient(150deg,#0e2036,#091421)}
.team-info{padding:22px 22px 24px}
.team-info h3{font-size:1.3rem;margin:0}
.team-role{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#8ea3b8;margin:8px 0 14px}
.team-info p{font-size:.9rem!important;line-height:1.7!important;margin:0 0 12px!important;color:#c3cfdb}
.team-links{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:14px}
.team-links a{font-size:.78rem;color:#9fd0f5;text-decoration:none!important;border-bottom:1px solid rgba(159,208,245,.35)}
.team-links a:hover{border-color:#9fd0f5}
.card-blocks{display:grid;gap:18px;margin:30px 0 44px}
.card-blocks.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.card-blocks.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.card-blocks.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card-block{display:grid;grid-template-rows:auto 1fr;border:1px solid rgba(140,175,205,.2);background:rgba(10,22,36,.55);text-decoration:none!important;color:inherit;transition:border-color .35s var(--motion-soft),transform .35s var(--motion-soft)}
a.card-block:hover{border-color:#7fb2d8;transform:translateY(-3px)}
.card-block img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.card-block>div{padding:22px}
.card-block h3{font-size:1.15rem;margin:0 0 10px}
.card-block p{font-size:.9rem!important;line-height:1.7!important;margin:0 0 12px!important;color:#c3cfdb}
.stat-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;margin:34px 0 44px;background:rgba(140,175,205,.2);border:1px solid rgba(140,175,205,.2)}
.stat-blocks>div{padding:26px 22px;background:#08121e}
.stat-blocks strong{display:block;font-size:clamp(2rem,3.4vw,3rem);font-weight:300;letter-spacing:-.03em;color:#e8f2fb}
.stat-blocks span{display:block;font-size:.8rem;color:#8ea3b8;margin-top:6px;line-height:1.5}
.block-button{margin:30px 0}
.page-cover img{object-fit:cover;max-height:70vh}
.home-custom .home-custom-body{max-width:1100px}
.home-custom .post-content p,.home-custom-body p{font-size:1.05rem;line-height:1.85}
@media(max-width:940px){.card-blocks.cols-3,.card-blocks.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.card-blocks.cols-2,.card-blocks.cols-3,.card-blocks.cols-4{grid-template-columns:1fr}}
