/* Image-led homepage hero: the artwork carries the impact; CSS only establishes depth and legibility. */
.home{background:#fff}.home .site-main{padding:0}.hero-carousel{position:relative;isolation:isolate;min-height:max(780px,100svh);overflow:hidden;background:#030a14;color:#fff}.hero-slide{position:absolute;inset:0;z-index:0;opacity:0;pointer-events:none;transition:opacity 1s ease}.hero-slide.is-active{z-index:1;opacity:1;pointer-events:auto}.hero-visual,.hero-shade{position:absolute;inset:0}.hero-visual{overflow:hidden;background:#08111d}.hero-poster,.hero-video{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.015);transition:transform 9s ease,opacity .8s ease}.hero-slide.is-active .hero-poster{transform:scale(1.045)}.hero-video{position:absolute;inset:0;opacity:0}.hero-video.is-ready{opacity:1}.hero-shade{z-index:1;background:linear-gradient(90deg,rgba(2,9,18,.88) 0%,rgba(2,9,18,.62) 38%,rgba(2,9,18,.18) 70%,rgba(2,9,18,.34) 100%),linear-gradient(0deg,rgba(1,7,15,.50),transparent 44%)}.hero-inner{position:relative;z-index:2;display:flex;align-items:center;min-height:inherit;max-width:1400px;margin:auto;padding:156px max(6vw,42px) 146px}.hero-content{width:min(690px,56vw)}.hero-eyebrow{margin:0 0 20px;font-size:13px;font-weight:700;letter-spacing:.18em;color:#d9e6f6;text-transform:uppercase}.hero-content h1,.hero-content h2{margin:0;color:#fff;font-size:clamp(42px,5.5vw,82px);font-weight:650;line-height:1.05;letter-spacing:-.045em;text-wrap:balance}.hero-accent{color:#55aef7}.hero-copy{max-width:620px;margin:26px 0 0;color:rgba(244,248,253,.88);font-size:clamp(17px,1.45vw,21px);line-height:1.7}.hero-tags{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 0;padding:0;list-style:none}.hero-tags li{padding:6px 10px;border:1px solid rgba(255,255,255,.22);border-radius:99px;background:rgba(4,13,25,.24);color:rgba(255,255,255,.82);font-size:12px;font-weight:600;letter-spacing:.04em}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero-button{position:relative;display:inline-flex;align-items:center;gap:17px;overflow:hidden;padding:14px 20px;border:1px solid transparent;border-radius:4px;text-decoration:none;font-size:15px;font-weight:700;line-height:1.3;transition:transform .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease}.hero-button span{font-size:20px;font-weight:400;transition:transform .22s ease}.hero-button:hover{transform:translateY(-2px)}.hero-button:hover span{transform:translateX(5px)}.hero-button-primary{background:var(--th-primary,#1467bc);color:#fff;box-shadow:0 8px 20px rgba(0,96,210,.12)}.hero-button-primary:hover{background:#2179d5;box-shadow:0 10px 30px rgba(0,125,255,.25);color:#fff}.hero-button-secondary{border-color:rgba(255,255,255,.38);background:rgba(2,10,19,.12);color:#fff}.hero-button-secondary:hover{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.10);color:#fff}.hero-controls{position:absolute;z-index:4;right:max(4vw,32px);bottom:43px;left:max(4vw,32px);display:flex;align-items:flex-end;justify-content:space-between;pointer-events:none}.hero-arrow{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(0,0,0,.14);color:#fff;cursor:pointer;pointer-events:auto;transition:border-color .22s ease,background .22s ease,box-shadow .22s ease,transform .22s ease}.hero-arrow svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;transition:transform .22s ease}.hero-prev:hover{border-color:var(--th-primary,#2588df);background:rgba(0,120,255,.12);box-shadow:0 0 24px rgba(0,120,255,.18)}.hero-prev:hover svg{transform:translateX(-3px)}.hero-next:hover{border-color:var(--th-primary,#2588df);background:rgba(0,120,255,.12);box-shadow:0 0 24px rgba(0,120,255,.18)}.hero-next:hover svg{transform:translateX(3px)}.hero-pagination{display:flex;align-items:flex-end;gap:clamp(16px,2.4vw,42px);pointer-events:auto}.hero-pagination button{display:grid;grid-template-columns:auto 72px;grid-template-areas:'number line' 'label label';gap:4px 8px;padding:0;border:0;background:transparent;color:rgba(255,255,255,.5);cursor:pointer;text-align:left}.hero-pagination b{grid-area:number;font-size:14px;font-weight:700;letter-spacing:.08em;transition:color .2s}.hero-pagination em{grid-area:label;font-size:10px;font-style:normal;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}.hero-pagination button:hover b,.hero-pagination button[aria-current=true] b{color:#58adf4}.hero-pagination button:hover em,.hero-pagination button[aria-current=true] em{opacity:1;transform:translateY(0)}.hero-progress{grid-area:line;align-self:center;display:block;height:1px;background:rgba(255,255,255,.24);overflow:hidden}.hero-progress i{display:block;width:100%;height:100%;background:#58adf4;transform:scaleX(0);transform-origin:left}.hero-pagination button[aria-current=true] .hero-progress i{animation:hero-progress var(--hero-duration,7s) linear both}.hero-mobile-progress{display:none}.hero-scroll{position:absolute;z-index:4;bottom:46px;left:50%;display:flex;flex-direction:column;align-items:center;gap:7px;color:rgba(255,255,255,.7);font-size:10px;font-weight:700;letter-spacing:.16em;transform:translateX(-50%);transition:opacity .3s}.hero-scroll svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3;transform:rotate(90deg);animation:hero-scroll 1.8s ease-in-out infinite alternate}@keyframes hero-progress{to{transform:scaleX(1)}}@keyframes hero-scroll{to{transform:rotate(90deg) translateX(5px)}}.hero-slide.is-active .hero-content>*{animation:hero-enter .72s cubic-bezier(.2,.8,.2,1) both}.hero-slide.is-active .hero-eyebrow{animation-delay:0s}.hero-slide.is-active h1,.hero-slide.is-active h2{animation-delay:.1s}.hero-slide.is-active .hero-copy{animation-delay:.24s}.hero-slide.is-active .hero-tags{animation-delay:.3s}.hero-slide.is-active .hero-actions{animation-delay:.38s}@keyframes hero-enter{from{opacity:0;transform:translateY(24px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
/* Homepage navigation sits inside the hero at rest, then becomes the dark frosted bar after scrolling. */
.home .contact-bar.topbar{position:absolute;top:0;right:0;left:0;z-index:1001;background:linear-gradient(180deg,rgba(2,9,18,.53),transparent);color:rgba(255,255,255,.78);border-bottom:1px solid rgba(255,255,255,.08)}.home>header.site-header{position:fixed;top:43px;right:0;left:0;z-index:1000;background:rgba(3,10,20,0);color:#fff;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;transition:top .3s ease,background .3s ease,backdrop-filter .3s ease,box-shadow .3s ease}.home>header.site-header .navigation-inner{min-height:82px;transition:min-height .3s ease}.home>header.site-header.is-scrolled{top:0;background:rgba(14,30,48,.72);backdrop-filter:blur(16px) saturate(135%);-webkit-backdrop-filter:blur(16px) saturate(135%);box-shadow:0 6px 30px rgba(0,0,0,.16)}.home>header.site-header.is-scrolled .navigation-inner{min-height:72px}.home>header.site-header .main-nav>ul>li{min-height:82px}.home>header.site-header.is-scrolled .main-nav>ul>li{min-height:72px}.home .site-header .main-nav>ul>li>a{position:relative;color:#fff}.home .site-header .main-nav>ul>li>a:after{content:'';position:absolute;right:50%;bottom:-11px;left:50%;display:block;height:1px;background:var(--th-primary,#55aef7);transition:right .24s ease,left .24s ease}.home .site-header .main-nav>ul>li>a:hover,.home .site-header .main-nav>ul>li>a:focus-visible,.home .site-header .main-nav>ul>li>a[aria-current=page]{color:#62b5fb}.home .site-header .main-nav>ul>li>a:hover:after,.home .site-header .main-nav>ul>li>a:focus-visible:after,.home .site-header .main-nav>ul>li>a[aria-current=page]:after{right:0;left:0}.home .site-header .navigation-icon:hover{background:rgba(255,255,255,.08);color:#62b5fb}.home .site-header .language-switch{background:rgba(255,255,255,.09)}.home .site-header .language-switch a{color:rgba(255,255,255,.72)}.home .site-header .language-switch a.active{color:#fff;background:rgba(255,255,255,.15);box-shadow:none}.home .site-header .main-nav>ul>li>.sub-menu,.home .site-header .navigation-search-panel{background:rgba(5,15,28,.94);border-color:rgba(255,255,255,.08);box-shadow:0 20px 50px rgba(0,0,0,.28);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.home .site-header .main-nav .sub-menu a,.home .site-header .navigation-rotator a,.home .site-header .navigation-quick-links a{color:rgba(255,255,255,.87)}.home .site-header .main-nav .sub-menu .sub-menu .sub-menu a{color:rgba(255,255,255,.64)}.home .site-header .navigation-search-form{background:rgba(255,255,255,.96)}
@media(max-width:900px){.hero-carousel{min-height:max(650px,100svh)}.hero-inner{align-items:flex-end;padding:142px 24px 132px}.hero-content{width:100%;max-width:650px}.hero-content h1,.hero-content h2{font-size:clamp(38px,11vw,60px)}.hero-copy{font-size:16px;line-height:1.6}.hero-tags{margin-top:18px}.hero-tags li{font-size:10px}.hero-actions{margin-top:24px}.hero-button{padding:13px 16px;font-size:14px}.hero-controls{right:20px;bottom:35px;left:auto;gap:10px}.hero-arrow{width:43px;height:43px}.hero-pagination{display:none}.hero-mobile-progress{position:absolute;z-index:4;bottom:48px;left:24px;display:flex;align-items:center;gap:7px;color:rgba(255,255,255,.7);font-size:12px;font-weight:700;letter-spacing:.1em}.hero-mobile-progress span{color:#58adf4}.hero-mobile-progress i{display:block;width:50px;height:1px;background:rgba(255,255,255,.35)}.hero-scroll{display:none}.home .contact-bar.topbar{display:none}.home>header.site-header{top:0}.home>header.site-header .navigation-inner,.home>header.site-header.is-scrolled .navigation-inner{min-height:72px}.home .site-header .main-nav>ul>li{min-height:0}.home .site-header .main-nav{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:auto!important;max-height:none!important;padding:108px 28px 40px!important;background:rgba(3,10,20,.97)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.home .site-header .main-nav>ul>li>a{font-size:25px}.home .site-header .main-nav>ul>li>a:after{bottom:-5px}.home .site-header .main-nav>ul>li>.sub-menu{background:transparent;box-shadow:none}.home.menu-open{overflow:hidden}.home .site-header .navigation-tools{margin-left:auto}.home .site-header .site-brand>a{color:#fff}.home .site-header .navigation-sub-toggle{color:#fff}.home .site-header .navigation-search-panel{position:fixed;top:72px;max-height:calc(100dvh - 72px);overflow:auto}}
@media(prefers-reduced-motion:reduce){.hero-slide,.hero-poster,.hero-video,.hero-button,.hero-arrow,.hero-content>*,.hero-scroll svg{transition:none!important;animation:none!important}.hero-slide.is-active .hero-poster{transform:none}.hero-pagination button[aria-current=true] .hero-progress i{transform:scaleX(1)}}

/* English hero copy is compacted to preserve generous clearance around the controls. */
@media(min-width:901px){.hero-content{transform:translateY(26px)}html[lang=en] .hero-content h1,html[lang=en] .hero-content h2{font-size:clamp(38px,4.55vw,68px)}}

/* The scroll hint overlaps the carousel pagination on wide screens. */
.hero-scroll{display:none!important}

/* Desktop carousel arrows sit at the visual midline and are revealed only while the hero is active. */
@media(min-width:901px){.hero-controls{top:0;right:0;bottom:0;left:0;display:block}.hero-controls .hero-arrow{position:absolute;top:50%;opacity:var(--hero-arrow-opacity,0);transform:translateY(-50%);pointer-events:none;transition:opacity .45s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.hero-controls .hero-arrow.hero-prev{left:max(3vw,32px)}.hero-controls .hero-arrow.hero-next{right:max(3vw,32px)}.hero-controls .hero-arrow.is-visible{pointer-events:auto}.hero-pagination{position:absolute;bottom:43px;left:50%;transform:translateX(-50%)}}
/* Every slide uses a real Ken Burns push-in animation. It starts on the initial slide too, rather than depending on a class transition during a later slide change. */
.hero-poster{transform:scale(1.02);transition:opacity .8s ease}.hero-slide.is-active .hero-poster{transform:scale(1.02);animation:hero-ken-burns 8s cubic-bezier(.16,.66,.25,1) both}@keyframes hero-ken-burns{from{transform:scale(1.02)}to{transform:scale(1.085)}}