/* Portfolio in motion. No scroll locking or third-party animation runtime. */
:root { --accent:#d9e7b5; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
body[data-page="home"] .header { position:absolute;left:0;top:0;width:100%;background:transparent;color:#fff;border-color:#ffffff30; }
body[data-page="home"] .mobile-nav { background:#102a34;color:#fff; }
body[data-page="home"] .header a:focus-visible, .showcase-hero a:focus-visible, .showcase-hero button:focus-visible { outline-color:var(--accent); }
.showcase-hero { position:relative;min-height:820px;min-height:max(820px,100svh);overflow:hidden;overflow:clip;background:#10232d;color:#fff;isolation:isolate; }
.hero-media,.hero-scene,.hero-shade { position:absolute;inset:0; }
.hero-media { inset:-14px;transform:translate3d(var(--mx,0px),var(--my,0px),0);transition:transform .8s ease-out; }
.hero-scene { opacity:0;transition:opacity 1.2s ease; }
.hero-scene.is-active { opacity:1; }
.hero-scene img { width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.08); }
.hero-scene.is-active img { animation:sceneZoom 7.5s ease-out both; }
.hero-shade { background:linear-gradient(90deg,rgba(5,20,29,.74),rgba(5,20,29,.24) 72%),linear-gradient(0deg,rgba(4,18,25,.92),transparent 60%,rgba(4,18,25,.18)); }
.showcase-content { position:relative;z-index:2;display:grid;grid-template-columns:1.25fr 1fr;gap:0 5%;padding:165px var(--gutter) 220px; }
.showcase-kicker { grid-column:1/-1; margin-bottom:45px; color:#e5eeee; }
.showcase-content h1 { font:400 clamp(6rem,12.5vw,12.5rem)/.88 Georgia,serif;letter-spacing:-.065em;position:relative; }
.showcase-content h1 em { color:var(--accent); }
.headline-period { color:var(--accent);font:400 .16em/1 Arial,sans-serif;vertical-align:top;display:inline-block;margin:24px 0 0 14px; }
.showcase-content .showcase-intro { display:block;margin:0;align-self:end;justify-self:end;padding-bottom:5px;max-width:25em; }
.showcase-content .showcase-intro p { font-size:var(--type-body);line-height:1.8;color:#fff;text-shadow:0 1px 10px #0006; }
.showcase-cta { display:flex;align-items:center;justify-content:space-between;gap:45px;border-bottom:1px solid #ffffff80;padding:20px 0 12px;margin-top:25px;font-size:var(--type-control); }
.showcase-cta span { font-size:2rem; }
.showcase-bottom { position:absolute;z-index:2;bottom:28px;left:var(--gutter);right:var(--gutter);display:grid;grid-template-columns:1fr auto;gap:25px; }
.scene-caption { display:flex;gap:25px;align-items:center; }
.scene-index { font:14px/1.4 Arial,sans-serif;color:#d8e1e3; }
.scene-type { display:block;font:14px/1.6 Arial,sans-serif;letter-spacing:.07em;color:#c9d4d4; }
.scene-link { display:inline-flex;align-items:center;gap:24px;font-size:clamp(1.125rem,1rem + .5vw,1.5rem); }
.scene-link:hover { color:var(--accent); }
.scene-controls { display:flex;gap:10px;align-items:center; }
.scene-controls button { display:grid;place-items:center;border:1px solid #ffffff70;color:#fff;background:#071c2780;border-radius:50%;width:48px;height:48px;font:20px Arial,sans-serif; }
.scene-controls button:hover { background:var(--paper);color:var(--ink); }
.scene-tabs { grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px; }
.scene-tab { position:relative;padding:18px 0 4px;text-align:left;background:none;border:0;border-top:2px solid #ffffff40;color:#f5f3ed;font-size:var(--type-detail); }
.scene-tab span { font:14px Arial,sans-serif;margin-right:16px;color:#bfcdd1; }
.scene-tab::before { content:'';position:absolute;top:-2px;left:0;height:2px;background:var(--accent);width:100%;transform:scaleX(0);transform-origin:left; }
.scene-tab.is-active::before { animation:sceneProgress 6.5s linear both; }
.showcase-hero.is-paused .scene-tab.is-active::before, .showcase-hero.is-paused .hero-scene.is-active img { animation-play-state:paused; }
.scene-tab.is-active { color:var(--accent); }
.discipline-strip { display:flex;justify-content:space-between;align-items:center;gap:26px;padding:28px var(--gutter);background:var(--ink);color:var(--paper);overflow-x:auto;scrollbar-width:thin; }
.discipline-strip a { flex-shrink:0;font:14px/1.5 Arial,sans-serif;letter-spacing:.06em; }
.discipline-strip a:hover { color:var(--accent); }
.partner-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:7%; }
.about-identity p { font-size:var(--type-detail);color:#d6e2e0;margin-top:30px; }
.has-motion .rise { opacity:0;transform:translateY(25px);transition:opacity .7s ease,transform .7s ease; }
.has-motion .rise.is-seen { opacity:1;transform:none; }
@keyframes sceneZoom { from { transform:scale(1.09); } to { transform:scale(1.015); } }
@keyframes sceneProgress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media(min-width:1700px) { .showcase-content { padding-top:195px; } }
@media(max-width:1100px) {
 .showcase-content { padding-top:150px;grid-template-columns:1fr; }
 .showcase-content h1 { font-size:clamp(6rem,15vw,10rem); }
 .showcase-content .showcase-intro { justify-self:start;align-self:start;margin-top:35px;max-width:none;display:flex;align-items:end;gap:50px; }
 .showcase-cta { margin-top:0;min-width:200px; }
 .scene-tabs { gap:14px; }
 .scene-tab span { display:block;margin:0 0 7px; }
 .partner-grid { grid-template-columns:1fr;gap:50px; }
}
@media(max-width:700px) {
 .showcase-hero { min-height:900px;min-height:max(860px,100svh); }
 .showcase-content { padding-top:128px;padding-bottom:290px; }
 .showcase-kicker { font-size:.875rem;max-width:21em;margin-bottom:38px; }
 .showcase-content h1 { font-size:clamp(4.5rem,22vw,8.7rem); }
 .headline-period { margin:12px 0 0 8px; }
 .showcase-content .showcase-intro { display:block;margin-top:30px; }
 .showcase-content .showcase-intro p { font-size:1.125rem; }
 .showcase-cta { font-size:1rem;width:fit-content;min-width:210px;padding-top:15px;margin-top:10px; }
 .showcase-bottom { bottom:24px;row-gap:22px; }
 .scene-caption { gap:14px; }
 .scene-index { display:none; }
 .scene-type { font-size:.875rem; }
 .scene-link { font-size:1.125rem;gap:12px; }
 .scene-controls { gap:6px; }
 .scene-controls button { width:40px;height:40px; }
 .scene-prev { display:none!important; }
 .scene-tabs { grid-template-columns:1fr 1fr;gap:17px 20px; }
 .scene-tab { padding-top:12px;font-size:1rem; }
 .scene-tab span { display:inline;margin-right:9px; }
 .discipline-strip { padding-top:20px;padding-bottom:20px; }
 .hero-shade { background:linear-gradient(90deg,#061923b3,#06192333),linear-gradient(0deg,#061923f2,transparent 80%); }
 .about-identity p { margin-top:23px; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-media,.hero-scene,.has-motion .rise { transition:none;transform:none; }
 .hero-scene.is-active img,.scene-tab.is-active::before { animation:none; }
 .scene-tab.is-active::before { transform:scaleX(1); }
 .has-motion .rise { opacity:1; }
}

.showcase-hero.is-paused .scene-tab.is-active::before { animation:none;transform:scaleX(1); }

/* Keep the visual idea visible across wide and portrait hero crops. */
.hero-scene[data-scene="2"] img { object-position:75% center; }
@media(max-width:700px) {
 .hero-scene[data-scene="2"] img { object-position:84% center; }
 .hero-scene[data-scene="3"] img { object-position:65% center; }
}
