/* An opening sequence, built from actual company photographs. */
.opening{display:none;position:fixed;inset:0;z-index:1000;background:#061127;color:white;overflow:hidden;isolation:isolate;height:100%;height:100dvh;opacity:1;transition:opacity .65s cubic-bezier(.22,1,.36,1),visibility .65s}
.intro-pending .opening{display:block}.intro-pending{overflow:hidden}.intro-pending body{overflow:hidden}.intro-pending .hero-image,.intro-pending .hero-copy>*{animation-play-state:paused}
.intro-leaving .opening{opacity:0;visibility:hidden;pointer-events:none}.intro-leaving .hero-image,.intro-leaving .hero-copy>*{animation-play-state:running}
.opening-scenes,.opening-shade{position:absolute;inset:0}.opening-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform,opacity;opacity:0}.opening-scene-one{object-position:40% 48%}.opening-scene-two{object-position:52% 38%}
.opening-shade{background:linear-gradient(90deg,#041127d9,#04112760 60%,#04112730),linear-gradient(0deg,#041127b0,transparent 50%)}
.opening-letterbox{position:absolute;left:0;right:0;height:9%;background:#061127;z-index:2}.opening-letterbox-top{top:0}.opening-letterbox-bottom{bottom:0}
.opening-copy{position:absolute;z-index:3;left:10%;top:50%;transform:translateY(-50%);opacity:0}.opening-copy>span{display:block;font-family:'Barlow Condensed',sans-serif;letter-spacing:.2em;font-size:14px;color:#9dddf6}.opening-copy p{font-size:clamp(30px,4.5vw,68px);font-weight:600;line-height:1.7;letter-spacing:.03em;margin-top:26px}
.opening-brand{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#07162ad9;opacity:0;pointer-events:none}.opening-logo{background:#fff;padding:24px 30px;box-shadow:0 20px 90px #2a90c330}.opening-logo .logo-wrap{width:380px;height:49px;display:block}.opening-brand>p{font-size:24px;letter-spacing:.12em;margin-top:28px}.opening-brand>span{font-family:'Barlow Condensed',sans-serif;font-size:13px;letter-spacing:.2em;color:#9cbbd2;margin-top:15px}
.opening-footer{position:absolute;z-index:5;bottom:max(22px,env(safe-area-inset-bottom));left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.opening-footer>span{font-family:'Barlow Condensed',sans-serif;font-size:12px;letter-spacing:.16em;color:#abc2d5}.opening-skip{position:relative;padding:10px 24px;min-width:108px;min-height:44px;color:#fff;background:#0d233ec9;border:1px solid #9ebdd080;font-size:14px;line-height:1.5}.opening-skip:hover{background:#1a4765}.opening-skip:focus-visible{outline:2px solid #80d9fa;outline-offset:4px}.opening-progress{position:absolute;z-index:6;bottom:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,#008ec9,#b2e7f9);transform:scaleX(0);transform-origin:left}
.intro-running .opening-scene-one{animation:opening-scene-one 3.65s linear both}.intro-running .opening-scene-two{animation:opening-scene-two 3.65s linear both}.intro-running .opening-copy{animation:opening-copy 3.65s ease both}.intro-running .opening-brand{animation:opening-brand 3.65s cubic-bezier(.22,1,.36,1) both}.intro-running .opening-progress{animation:opening-progress 3.65s linear both}
@keyframes opening-scene-one{0%{opacity:0;transform:scale(1.07) translateX(-1%)}10%{opacity:1}43%{opacity:1}61%,100%{opacity:0;transform:scale(1.16) translateX(1%)}}
@keyframes opening-scene-two{0%,34%{opacity:0;transform:scale(1.1) translateX(1%)}52%,100%{opacity:1;transform:scale(1.02) translateX(-1%)}}
@keyframes opening-copy{0%{opacity:0;transform:translateY(calc(-50% + 22px))}17%,44%{opacity:1;transform:translateY(-50%)}59%,100%{opacity:0;transform:translateY(calc(-50% - 12px))}}
@keyframes opening-brand{0%,55%{opacity:0;transform:translateY(14px)}76%,100%{opacity:1;transform:translateY(0)}}
@keyframes opening-progress{to{transform:scaleX(1)}}
@media(max-width:800px){
 .opening-copy{left:24px;right:24px;top:47%}.opening-copy>span{font-size:12px;letter-spacing:.12em}.opening-copy p{font-size:clamp(25px,7.6vw,42px);line-height:1.8;letter-spacing:0;margin-top:22px}.opening-scene-one{object-position:36% center}.opening-scene-two{object-position:42% center}.opening-letterbox{height:8%}.opening-logo{padding:20px 18px;max-width:calc(100% - 48px)}.opening-logo .logo-wrap{width:min(300px,calc(100vw - 84px));height:auto;aspect-ratio:380/49}.opening-brand>p{font-size:clamp(18px,5vw,23px);letter-spacing:.02em;margin-top:25px}.opening-brand>span{font-size:11px;letter-spacing:.12em}.opening-footer{left:20px;right:20px;bottom:max(22px,env(safe-area-inset-bottom));gap:12px}.opening-footer>span{font-size:11px;letter-spacing:.08em}.opening-skip{min-width:98px;padding:10px 18px}
 /* Reading and touch refinements for small screens. */
 .hero-description{font-size:16px;line-height:2}.hero-top{font-size:12px;gap:14px}.hero-top>span:first-child{max-width:53%}.hero-top>span:last-child{max-width:44%}.hero-bottom{flex-wrap:wrap}.scroll-link{font-size:12px}.motion-toggle{min-height:44px;font-size:13px}.hero-copy{padding-top:242px}.intro-bar div{font-size:14px}.intro-bar a{padding-block:7px}.service-body>span{font-size:14px}.service summary{min-height:96px}.service-toggle{width:36px;height:36px}.promises p{font-size:16px}.technical-grid small{font-size:16px;line-height:1.8}.contact-circle{min-height:64px}.contact-circle:before{content:'';display:none}.contact-circle span{font-size:17px}.recruit-button,a.recruit-button{min-height:58px;justify-content:center}.company-table>div{grid-template-columns:1fr;gap:6px;padding:19px 0}.company-table dt{font-size:14px;font-weight:500;color:#526a86}.company-table dd{font-size:16px;line-height:1.9;overflow-wrap:break-word}.company-table dd br{display:none}.company-table dd{word-break:normal}.company-table>div:last-child dd br{display:initial}
}
@media(max-width:360px){.field-statement p{font-size:16px}.field-statement p br{display:none}.section-label{column-gap:8px}.section-label>span:first-child{font-size:14px}.section-label>span:first-child:after{width:20px}.pending-meta{flex-wrap:wrap}.hero-copy h1{font-size:clamp(29px,8.7vw,32px)}}
@media(max-height:500px) and (orientation:landscape){.opening-logo{padding:15px 24px}.opening-logo .logo-wrap{width:260px;height:34px}.opening-brand>p{font-size:18px;margin-top:16px}.opening-brand>span{margin-top:8px}.opening-copy p{font-size:28px;margin-top:10px}.opening-copy{top:44%}.opening-letterbox{height:6%}}
@media(prefers-reduced-motion:reduce){.opening{display:none!important;transition:none}.intro-pending,.intro-pending body{overflow:visible}}
.hero h1:focus{outline:none}

/* Portrait opening: clear motion even on the first mobile visit. */
.intro-running .opening-scene,.intro-running .opening-copy,.intro-running .opening-brand,.intro-running .opening-progress{animation-duration:var(--opening-duration,3650ms)}
@media(max-width:800px) and (prefers-reduced-motion:no-preference){
 .opening-scene-one{opacity:1;transform:scale(1.08)}
 .opening-logo{position:relative;overflow:hidden}
 .intro-running .opening-logo:after{content:'';position:absolute;inset:-50% -70%;background:linear-gradient(110deg,transparent 40%,#8edcff80 50%,transparent 60%);transform:translateX(-60%);animation:mobile-logo-light 1s 2.1s ease-out both;pointer-events:none}
 .hero-image{animation:mobile-photo-entry 1.1s ease-out both,mobile-photo-drift 9s 1.1s ease-in-out infinite alternate;transform-origin:45% 45%;will-change:transform}
 .hero-copy>h1{animation:headline-enter 1.1s .15s cubic-bezier(.22,1,.36,1) both}
 .opening-letterbox{height:6%}
}
@keyframes mobile-photo-drift{from{transform:scale(1) translateX(0)}to{transform:scale(1.08) translateX(-1%)}}
@keyframes mobile-logo-light{from{transform:translateX(-60%)}to{transform:translateX(60%)}}
