/* Fixed orientation and a different motion language for each content scene. */
:root { --chrome-height:126px; }
body { padding-top:var(--chrome-height); overflow-x:clip; }
html { scroll-padding-top:calc(var(--chrome-height) + 20px); }
/* A compact contact row above a segmented navigation rail. */
.site-chrome { position:fixed; top:0; left:0; right:0; z-index:120; background:rgba(250,250,248,.97); backdrop-filter:blur(18px); border-bottom:1px solid #deded8; box-shadow:0 5px 30px #20222008; transform:translateY(0); opacity:1; transition:transform .4s cubic-bezier(.2,.7,.2,1),opacity .3s; }
.chrome-top { width:min(1540px,100%); margin:auto; min-height:78px; display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:2rem; padding:13px var(--pad) 10px; }
.chrome-top .brand-plate { width:180px; height:41px; background:transparent; }
.always-address { font-style:normal; justify-self:center; line-height:1.45; }
.always-address small,.chrome-phone small { display:block; font-size:.75rem; color:#73776f; font-weight:400; letter-spacing:.015em; }
.address-line { color:#41463f; font-size:.875rem; }
.address-line>span { color:var(--red); }
.chrome-phone { font-size:.95rem; font-weight:600; white-space:nowrap; line-height:1.45; }
.chrome-trial { display:none; }
.chrome-motion { color:#62665e; min-width:54px; min-height:38px; padding:.4rem .7rem; font-size:.875rem; border:1px solid #d8dbd3; border-radius:30px; background:transparent; transition:background .2s,color .2s; }
.chrome-motion:hover { color:var(--ink); background:#e9ebe5; }.chrome-motion:disabled { cursor:default; opacity:.55; }
.service-bar { display:flex; align-items:center; gap:2rem; width:min(1540px,100%); margin:auto; padding:0 var(--pad) 12px; }
.service-bar-label { font-size:.875rem; color:var(--muted); flex:0 0 180px; letter-spacing:.015em; }
.service-links { flex:1; min-width:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)) .78fr 1.3fr; align-items:stretch; gap:3px; padding:5px; background:#ebece7; border:1px solid #e0e2da; border-radius:15px; }
.service-links .service-tab { display:flex; justify-content:center; align-items:center; position:relative; padding:.65rem .35rem; min-height:43px; font-size:.875rem; font-weight:500; line-height:1.3; white-space:normal; hyphens:auto; border-radius:10px; text-align:center; transition:color .22s,background .22s,box-shadow .22s,translate .22s; }
.service-links .service-tab:hover,.service-links .service-tab:focus-visible { background:#fff; box-shadow:0 2px 8px #2022200a; color:var(--red); translate:0 -1px; }
.service-links .service-tab[aria-current=page] { background:white; color:var(--red); box-shadow:0 2px 8px #2022200d,inset 0 -2px var(--red); }
.service-links .service-tab-team { color:#697064; }
.service-links .service-tab-trial,.service-links .service-tab-trial[aria-current=page] { background:var(--red); color:white; box-shadow:none; }
.service-links .service-tab-trial:hover,.service-links .service-tab-trial:focus-visible { background:#92202b; color:white; }
.site-chrome:focus-within { transform:translateY(0)!important; opacity:1!important; pointer-events:auto!important; }
.cinema-active .site-chrome { transform:translateY(-105%); opacity:0; pointer-events:none; }
.cinema-active .whatsapp { opacity:0; pointer-events:none; transition:opacity .3s; }
.story-visual,.form-intro { top:calc(var(--chrome-height) + 25px); }
.scroll-progress { z-index:140; }

/* Motion is progressive: source content is visible before JavaScript initializes. */
[data-scene] { position:relative; --scene-progress:0; }
.scene-meter { position:absolute; left:0; right:0; bottom:0; height:1px; overflow:hidden; pointer-events:none; z-index:2; }
.scene-meter::after { content:''; display:block; height:100%; width:100%; background:var(--red); transform:scaleX(var(--scene-progress)); transform-origin:left; opacity:.55; }
.motion-enhanced [data-motion-part] { transition:opacity .8s ease,translate 1s cubic-bezier(.2,.75,.15,1),clip-path 1.1s cubic-bezier(.2,.75,.15,1); transition-delay:var(--part-delay,0ms); }
.motion-enhanced [data-motion-part]:not(.part-visible) { opacity:0; translate:0 46px; }
.motion-enhanced [data-motion-part].part-visible { opacity:1; translate:0 0; }
.motion-enhanced [data-scene=image-left] .feature-image[data-motion-part]:not(.part-visible) { translate:-48px 0; clip-path:inset(0 16% 0 0); }
.motion-enhanced [data-scene=image-right] .feature-image[data-motion-part]:not(.part-visible) { translate:48px 0; clip-path:inset(0 0 0 16%); }
.motion-enhanced [data-scene=frames] [data-motion-part]:not(.part-visible) { clip-path:inset(9% 0 0); translate:0 28px; }
.motion-enhanced [data-scene=type] .display[data-motion-part]:not(.part-visible),.motion-enhanced [data-scene=type] blockquote[data-motion-part]:not(.part-visible) { clip-path:inset(0 0 95%); translate:0 20px; }
.scene-photo-wrap { overflow:hidden; }
.scene-photo { transform:translate3d(0,var(--photo-shift,0px),0) scale(var(--photo-scale,1)); transition:transform .1s linear; will-change:transform; }
.motion-enhanced .team-preview-card:nth-child(even),.motion-enhanced .team-card:nth-child(even) { top:calc(var(--scene-progress) * -20px); }
.kinetic-label { position:absolute; z-index:0; right:var(--pad); top:.5rem; color:var(--ink); opacity:.045; font-size:clamp(4rem,12vw,12rem); font-weight:600; line-height:1; letter-spacing:-.08em; transform:translateX(calc((1 - var(--scene-progress)) * -60px)); pointer-events:none; user-select:none; }
.quote-section { overflow:hidden; }
.quote-section .kinetic-label { top:auto; bottom:-.12em; font-size:clamp(6rem,21vw,21rem); opacity:.07; white-space:nowrap; }
.quote-inner { position:relative; z-index:1; }
.tag-list .tag { transition:background .25s,transform .25s; }
.tag-list .tag:hover { background:var(--paper-2); transform:translateY(-4px); }
.steps .step,.info-grid .info-card { position:relative; overflow:hidden; }
.steps .step::after,.info-grid .info-card::after { content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background:var(--red); transform:scaleX(var(--scene-progress)); transform-origin:left; opacity:.5; }

/* A brief, scroll-controlled full-screen cut. No scroll locking or wheel interception. */
.motion-reel { min-height:155svh; height:155svh; margin:0; width:100%; padding:0; background:#202420; color:white; }
.reel-stage { position:sticky; top:0; height:100svh; min-height:420px; width:100%; overflow:hidden; isolation:isolate; --reel-progress:0; }
.reel-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(var(--reel-scale,1.12)); }
.reel-side { position:absolute; width:31%; height:62%; top:19%; object-fit:cover; z-index:2; box-shadow:0 25px 80px #0006; }
.reel-side-left { left:5%; transform:translate3d(calc(var(--reel-progress) * -140%),calc(var(--reel-progress) * 100px),0) rotate(calc(var(--reel-progress) * -9deg)); }
.reel-side-right { right:5%; transform:translate3d(calc(var(--reel-progress) * 140%),calc(var(--reel-progress) * -100px),0) rotate(calc(var(--reel-progress) * 9deg)); }
.reel-shade { position:absolute; inset:0; z-index:3; background:linear-gradient(0deg,#0c120dde,transparent 60%),linear-gradient(90deg,#0c120d50,transparent); pointer-events:none; }
.reel-words { position:absolute; left:0; right:0; top:34%; z-index:4; display:grid; justify-items:center; line-height:.85; text-transform:uppercase; font-size:clamp(3.5rem,15vw,16rem); letter-spacing:-.07em; font-weight:650; pointer-events:none; }
.reel-words span { display:block; transform:translateX(calc((var(--reel-progress) - .5) * 160px)); }
.reel-words span:last-child { color:transparent; -webkit-text-stroke:1.5px white; transform:translateX(calc((.5 - var(--reel-progress)) * 160px)); }
.reel-caption { position:absolute; z-index:5; bottom:4rem; left:var(--pad); right:var(--pad); display:flex; justify-content:space-between; gap:2rem; align-items:end; }
.reel-caption p { max-width:44ch; font-size:1rem; margin:0; }
.reel-caption small { font-size:.875rem; }
.reel-track { position:absolute; z-index:5; left:var(--pad); right:var(--pad); bottom:2rem; height:1px; background:#ffffff50; }
.reel-track::before { content:''; display:block; width:100%; height:2px; background:white; transform:scaleX(var(--reel-progress)); transform-origin:left; }
.reel-return { position:absolute; top:1rem; right:1rem; z-index:125; border:1px solid #ffffff80; background:#1b221bc9; color:white; padding:.5rem .8rem; font-size:.875rem; cursor:pointer; opacity:0; pointer-events:none; }
.cinema-active .reel-return { opacity:1; pointer-events:auto; }

/* More imagery in information, enquiry, course and gallery scenes. */
.image-ribbon { display:grid; grid-template-columns:1.25fr .8fr 1fr; gap:1.2rem; margin:0 0 3rem; align-items:center; }
.image-ribbon figure { margin:0; overflow:hidden; position:relative; }
.image-ribbon img { width:100%; aspect-ratio:1.6; object-fit:cover; }
.image-ribbon figure:nth-child(2) img { aspect-ratio:.95; }
.image-ribbon figcaption { position:absolute; left:1rem; bottom:.75rem; color:white; font-size:.875rem; z-index:1; text-shadow:0 1px 12px #000; }
.image-ribbon figure::after { content:''; position:absolute; inset:65% 0 0; background:linear-gradient(transparent,#0007); }
.form-portrait { margin:2rem 0 0; overflow:hidden; max-width:430px; }
.form-portrait img { aspect-ratio:1.3; object-fit:cover; width:100%; }
.form-portrait figcaption { margin-top:.7rem; font-size:.875rem; color:var(--muted); }
.course-card { padding:0; overflow:hidden; }
.course-card>img { width:100%; height:170px; object-fit:cover; margin:0; }
.course-card>small { padding:1.25rem 1.5rem 0; }
.course-card>div { padding:1.2rem 1.5rem 1.5rem; }
.section-photo { width:100%; max-height:540px; object-fit:cover; margin:0 0 3rem; }
.reel-static-note { display:none; }

@media(max-width:760px) {
 .hero-editorial { padding-top:2rem; }.story-visual,.form-intro { top:auto; }.motion-reel { height:140svh; min-height:140svh; }.reel-stage { min-height:400px; }.reel-words { font-size:clamp(3rem,16vw,7rem); top:39%; }.reel-side { width:42%; height:43%; top:22%; }.reel-side-left { left:3%; }.reel-side-right { right:3%; }.reel-caption { bottom:3rem; flex-direction:column; align-items:start; gap:.7rem; }.reel-caption p { font-size:1rem; }.reel-caption small { font-size:.875rem; }.reel-track { bottom:1.5rem; }.image-ribbon { grid-template-columns:1fr 1fr; gap:.75rem; margin-bottom:2rem; }.image-ribbon figure:nth-child(3) { grid-column:1/-1; }.image-ribbon figure:nth-child(2) img { aspect-ratio:1.6; }.image-ribbon figcaption { left:.65rem; bottom:.5rem; }.form-portrait { max-width:none; }.kinetic-label { font-size:5rem; }.motion-enhanced .team-preview-card:nth-child(even),.motion-enhanced .team-card:nth-child(even) { top:0; }
}
.motion-paused .site-chrome { transform:none!important; opacity:1!important; pointer-events:auto!important; }
.motion-paused [data-motion-part] { opacity:1!important; translate:none!important; clip-path:none!important; }
.motion-paused .scene-photo { transform:none!important; }
.motion-paused .motion-reel { height:auto; min-height:0; }
.motion-paused .reel-stage { position:relative; height:70svh; min-height:440px; }
.motion-paused .reel-side { display:none; }
.motion-paused .reel-image,.motion-paused .reel-words span { transform:none; }
.motion-paused .kinetic-label { transform:none; }
@media(prefers-reduced-motion:reduce) {
 .site-chrome { transform:none!important; opacity:1!important; pointer-events:auto!important; }
 .motion-enhanced [data-motion-part] { opacity:1!important; translate:none!important; clip-path:none!important; }
 .scene-photo { transform:none!important; }.motion-reel { height:auto; min-height:0; }.reel-stage { position:relative; height:70svh; min-height:440px; }.reel-side { display:none; }.reel-image,.reel-words span { transform:none; }.kinetic-label { transform:none; }
}

/* The signature image sequence now is the homepage's opening header. */
.hero-reel { height:calc(150svh - var(--chrome-height)); min-height:640px; }
.hero-stage { top:var(--chrome-height); height:calc(100svh - var(--chrome-height)); min-height:480px; }
.hero-stage .reel-image { object-position:center 50%; }
.hero-stage .reel-side { top:13%; height:59%; width:26%; }
.hero-stage .reel-side-left { left:8%; }
.hero-stage .reel-side-right { right:8%; }
.hero-stage .reel-shade { background:linear-gradient(0deg,#0e140ee8,transparent 65%),linear-gradient(180deg,#0e140d65,transparent 30%); }
.hero-location { position:absolute; top:1.6rem; left:var(--pad); right:var(--pad); z-index:5; display:flex; justify-content:space-between; gap:1rem; margin:0; color:#fff; font-size:.875rem; letter-spacing:.02em; }
.hero-location span { color:#ffffffe0; }
.hero-wordmark { margin:0; top:24%; font-size:min(clamp(3.8rem,13.5vw,13rem),22svh); font-weight:600; line-height:.88; }
.hero-wordmark span { animation:hero-word-in 1.3s cubic-bezier(.16,.8,.2,1) both; }
.hero-wordmark span:last-child { animation-delay:.15s; }
.hero-reel-bottom { position:absolute; left:var(--pad); right:var(--pad); bottom:2.8rem; z-index:5; display:flex; align-items:end; justify-content:space-between; gap:2rem; animation:hero-word-in 1.3s .25s cubic-bezier(.16,.8,.2,1) both; }
.hero-reel-bottom p { margin:0; font-size:clamp(1rem,1.3vw,1.25rem); line-height:1.6; }
.hero-reel-bottom p>span { color:#e1e5dc; }
.hero-reel-actions { display:flex; flex-wrap:wrap; gap:1rem 1.6rem; align-items:center; justify-content:flex-end; }
.hero-reel-actions .button { border-radius:7px; min-height:49px; }
.hero-scroll-link { display:flex; align-items:center; gap:.75rem; font-size:.875rem; padding:.7rem 0; color:white; border-bottom:1px solid #ffffff70; }
.hero-scroll-link span { display:inline-block; animation:nudge 2s ease-in-out infinite; }
.hero-stage .reel-track { bottom:1.2rem; }
@keyframes hero-word-in { from { opacity:0; translate:0 38px; filter:blur(5px); } to { opacity:1; translate:0 0; filter:blur(0); } }
@media(max-width:1200px) {
 .service-bar-label { display:none; }.service-bar { padding-inline:var(--pad); }.chrome-top { gap:1.25rem; }
 .hero-reel-actions { gap:.4rem; flex-direction:column; align-items:flex-end; }
}
@media(max-width:760px) {
 :root { --chrome-height:187px; }
 .chrome-top { grid-template-columns:1fr auto auto; min-height:75px; gap:5px 12px; padding:9px 16px 8px; }
 .chrome-top .brand-plate { width:137px; height:32px; }
 .always-address { grid-column:1/-1; order:4; justify-self:start; }
 .always-address small,.chrome-phone small { display:none; }.chrome-phone { font-size:.875rem; }
 .chrome-motion { min-width:45px; min-height:32px; padding:.2rem .4rem; }
 .service-bar { padding:0 10px 9px; }.service-links { grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; border-radius:12px; padding:4px; }
 .service-links .service-tab { min-height:38px; padding:.48rem .12rem; font-size:.875rem; border-radius:8px; }
 .hero-reel { height:calc(148svh - var(--chrome-height)); min-height:760px; }
 .hero-stage { height:calc(100svh - var(--chrome-height)); min-height:570px; }
 .hero-location { top:1.2rem; display:block; }.hero-location span { display:block; margin-top:.1rem; font-size:.75rem; }
 .hero-wordmark { top:28%; font-size:15.5vw; }.hero-stage .reel-side { width:38%; height:42%; top:20%; }
 .hero-stage .reel-side-left { left:4%; }.hero-stage .reel-side-right { right:4%; }
 .hero-reel-bottom { bottom:2.7rem; display:block; }.hero-reel-bottom p { font-size:1rem; }
 .hero-reel-actions { flex-direction:row; justify-content:flex-start; gap:.35rem 1.2rem; margin-top:1.2rem; }
 .hero-reel-actions .button { min-height:46px; font-size:.875rem; padding:.7rem 1rem; }
}
@media(max-width:380px) { .chrome-top { gap:4px 7px; padding-inline:12px; }.chrome-top .brand-plate { width:116px; }.service-bar { padding-inline:6px; } }
@media(min-width:761px) and (max-height:750px) { .hero-wordmark { font-size:min(13vw,22vh); top:21%; }.hero-reel-bottom { bottom:2.5rem; }.hero-reel-bottom p { font-size:1rem; } }
.motion-paused .hero-stage { position:relative; top:0; height:calc(100svh - var(--chrome-height)); }
.motion-paused .hero-wordmark span,.motion-paused .hero-reel-bottom { animation:none; opacity:1; filter:none; translate:none; }
@media(prefers-reduced-motion:reduce) {
 .hero-stage { position:relative; top:0; height:calc(100svh - var(--chrome-height)); }
 .hero-wordmark span,.hero-reel-bottom { animation:none; opacity:1; filter:none; translate:none; }
}
