/* MOTION & MEMORY: presentation only. Content stays in the HTML. */
.site-header { position:fixed; transition:background .35s ease, padding .35s ease; }
.site-header.is-scrolled { background:color-mix(in srgb,var(--bg) 87%,transparent); backdrop-filter:blur(14px); padding-block:20px; }
.motion-memory { position:relative; }
.cinematic-stage { height:100svh; position:relative; overflow:hidden; background:var(--bg); perspective:1200px; }
.scene-frame { --mat:0px; --warm:0; position:absolute; top:0; left:0; width:100%; height:100%; background:#e2d5c0; transform-origin:50% 50%; }
.scene-frame .hero-media { inset:var(--mat); }
.scene-plane { position:absolute; inset:0; overflow:hidden; transform-origin:50% 45%; filter:sepia(var(--warm)) saturate(calc(1 - var(--warm) * .3)); }
.scene-plane > img,.scene-plane > video,.freeze-layer,.freeze-layer > * { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.scene-plane > video { opacity:0; transition:opacity .6s ease; }
.hero-media[data-video-ready=true] .scene-plane > video { opacity:1; }
.freeze-layer { opacity:0; }
.freeze-canvas { opacity:0; }
.scene-frame[data-freeze-ready=true] .freeze-canvas { opacity:1; }
.scene-grain { position:absolute; inset:0; background:url('/assets/grain.svg'); mix-blend-mode:soft-light; opacity:0; pointer-events:none; }
.cinematic-stage .hero-content { height:100%; min-height:0; }
.world-motion { position:absolute; left:var(--gutter); top:42%; margin:0; font-size:clamp(75px,13vw,210px); font-weight:500; letter-spacing:-.06em; opacity:0; pointer-events:none; color:white; }
.memory-caption { position:absolute; right:var(--gutter); bottom:72px; opacity:0; text-align:right; color:#f5f6f7; pointer-events:none; }
.memory-caption h2 { font-family:Georgia,serif; font-style:italic; font-size:clamp(68px,11vw,178px); letter-spacing:-.055em; font-weight:400; }
.memory-caption p { color:#adb1b8; font-size:15px; margin:14px 0 0; }
.memory-echo { position:absolute; top:17%; right:8%; width:17%; max-width:260px; padding:9px 9px 26px; background:#e2d5c0; opacity:0; box-shadow:0 18px 50px #0006; pointer-events:none; }
.memory-echo img { width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; }
.sequence-shortcut { position:absolute; z-index:4; right:var(--gutter); bottom:26px; font-size:11px; color:#e7e1d7; display:flex; gap:15px; align-items:center; }
.cinematic-stage .background-toggle { right:auto; left:var(--gutter); bottom:24px; }
body[data-world=memory] [data-memory-type],.memory-page [data-memory-type] { font-family:Georgia,serif; font-weight:400; font-style:italic; letter-spacing:-.045em; }
.memory-page { --bg:#090a0c; --text:#f5f6f7; --muted:#adb1b8; --line:#2d3035; }
.memory-page .page-hero h1 { font-family:Georgia,serif; font-style:italic; font-weight:400; }
.memory-intro { max-width:var(--width); margin:auto; padding:100px var(--gutter) 45px; display:flex; justify-content:space-between; align-items:flex-end; gap:40px; }
.memory-intro h2 { font-family:Georgia,serif; font-size:clamp(40px,6vw,95px); font-weight:400; letter-spacing:-.05em; }
.memory-intro p { color:var(--muted); max-width:340px; margin:20px 0 0; font-size:16px; }
.memory-intro .quiet-link { margin-bottom:10px; }
.memory-rail { display:flex; gap:clamp(35px,6vw,95px); align-items:flex-start; padding:45px var(--gutter) 100px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#68757c transparent; cursor:grab; scroll-padding-inline:var(--gutter); }
.memory-rail.is-dragging { cursor:grabbing; user-select:none; }
.memory-rail .memory-item { flex:0 0 clamp(245px,30vw,440px); min-width:0; }
.memory-item:nth-child(3n+1) { --print-rotation:-3deg; margin-top:25px; }
.memory-item:nth-child(3n+2) { --print-rotation:2.5deg; margin-top:90px; }
.memory-item:nth-child(3n) { --print-rotation:-1.5deg; margin-top:0; }
.photo-print { position:relative; display:block; padding:12px 12px 40px; background:#e2d5c0; transform:rotate(var(--print-rotation)); box-shadow:0 18px 45px #0003; transform-origin:50% 80%; }
.photo-print img { width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; pointer-events:none; user-select:none; }
.photo-print .image-caption { color:#242424; margin:18px 2px 0; font-family:Georgia,serif; font-size:15px; line-height:1.2; }
.rail-controls { max-width:var(--width); margin:auto; padding:0 var(--gutter) 90px; display:flex; justify-content:space-between; align-items:center; }
.rail-controls > p { color:var(--muted); font-size:12px; margin:0; }
.rail-buttons { display:flex; gap:10px; }
.rail-buttons button { width:45px; height:45px; background:none; border:1px solid var(--line); border-radius:50%; font-size:19px; transition:background .3s; }
.rail-buttons button:hover { background:#ffffff0c; }
.rail-buttons button:disabled { opacity:.3; cursor:default; }
.motion-projects .work-grid { grid-template-columns:1.1fr .8fr; gap:70px 55px; align-items:start; }
.motion-projects .work-grid article:nth-child(2) { margin-top:150px; }
.motion-projects .work-grid article:first-child { grid-row:span 2; }
.motion-projects .work-grid article:first-child .media { aspect-ratio:4/5; }
.motion-projects .work-grid article:nth-child(3) { grid-column:2; }
.work-card[data-preview] .media > video { position:absolute; inset:0; opacity:0; transition:opacity .45s ease; }
.work-card[data-preview].is-previewing .media > video { opacity:1; }
.work-card[data-preview] .view-icon { opacity:1; transform:none; }
.viewer-content { position:relative; }
.viewer-content img.viewer-image { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
.media-viewer[open] { background:#090a0cf5; }
.viewer-navigation { position:absolute; top:22px; left:var(--gutter); display:flex; gap:10px; }
.viewer-navigation button { background:none; border:1px solid #ffffff55; border-radius:24px; min-width:42px; padding:10px 15px; }
.context-cursor { position:fixed; z-index:80; top:0; left:0; pointer-events:none; width:74px; height:74px; border-radius:50%; background:#f5f6f7; color:#090a0c; display:grid; place-items:center; font-size:11px; opacity:0; transform:translate(-150px,-150px); box-shadow:0 4px 24px #0002; }
.interactive-link { overflow:visible; }
.kinetic-mask { display:inline-block; overflow:hidden; vertical-align:bottom; }
.kinetic-word { display:inline-block; }
.interactive-link .link-word { position:relative; display:inline-block; }
.interactive-link .link-word::after { content:''; position:absolute; left:0; right:0; bottom:-5px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .4s ease; }
.interactive-link:hover .link-word::after { transform:scaleX(1); }
.interactive-link:hover .link-word { transform:none; }
html.motion-reduced .world-motion,html.motion-reduced .memory-caption,html.motion-reduced .memory-echo { display:none; }
@media(max-width:900px) { .motion-projects .work-grid { gap:35px; } .memory-echo { right:4%; width:19%; } }
@media(max-width:640px) {
  .context-cursor { display:none; }
  .memory-caption { bottom:85px; right:22px; }
  .memory-caption h2 { font-size:20vw; }
  .memory-caption p { font-size:13px; }
  .world-motion { font-size:22vw; top:40%; }
  .memory-echo { display:none; }
  .memory-intro { padding-top:65px; padding-bottom:20px; gap:25px; flex-direction:column; align-items:flex-start; }
  .memory-intro h2 { font-size:14vw; }
  .memory-rail { gap:35px; padding-bottom:55px; }
  .memory-rail .memory-item { flex-basis:74vw; }
  .memory-item:nth-child(3n+2) { margin-top:40px; }
  .photo-print { padding:9px 9px 26px; }
  .rail-controls { padding-bottom:55px; }
  .motion-projects .work-grid { grid-template-columns:1fr; gap:45px; }
  .motion-projects .work-grid article:nth-child(2) { margin-top:0; }
  .motion-projects .work-grid article:first-child { grid-row:auto; }
  .motion-projects .work-grid article:nth-child(3) { grid-column:auto; }
  .motion-projects .work-grid article:first-child .media { aspect-ratio:4/3; }
  .viewer-navigation { gap:5px; }
  .viewer-navigation button { padding:10px 12px; }
}
@media(prefers-reduced-motion:reduce) {
  .world-motion,.memory-caption,.memory-echo { display:none; }
  .context-cursor { display:none; }
  .photo-print { transform:none; }
}
html.motion-reduced *,html.motion-reduced *::before,html.motion-reduced *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }

/* Flight identity: line, silhouette and a single cool highlight. */
.site-nav a[aria-current=page],.quiet-link:hover,.large-link:hover { color:var(--accent); }
a:focus-visible,button:focus-visible { outline-color:var(--accent); }
.interactive-link .link-word::after { background:var(--accent); }
.flight-pilot { position:absolute; z-index:3; left:var(--gutter); bottom:63px; width:92px; pointer-events:none; opacity:.85; transition:opacity .4s; }
.flight-pilot svg { display:block; width:100%; overflow:visible; stroke:#eceef0; stroke-width:1.15; stroke-linecap:round; stroke-linejoin:round; }
.pilot-body { fill:#090a0cdc; }
.pilot-seam { opacity:.48; }
.pilot-ground { opacity:.22; }
.pilot-goggles,.pilot-controller { fill:#090a0c; }
.pilot-light { stroke:var(--accent); }
.flight-enabled [data-flight-hero] .hero-bottom > p { margin-left:125px; }
[data-cinematic][data-phase=memory] .flight-pilot { opacity:0; }
.flight-layer { position:fixed; inset:0; z-index:8; pointer-events:none; opacity:0; transition:opacity .4s; contain:strict; }
.flight-layer.is-visible { opacity:1; }
.flight-trail { position:absolute; inset:0; width:100%; height:100%; }
.flight-drone { position:absolute; top:0; left:0; width:68px; height:46px; will-change:transform; }
.flight-drone svg { display:block; width:100%; overflow:visible; stroke:#edf0f2; stroke-width:1.15; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 2px 5px #0009); }
.drone-body { fill:#090a0ccd; }
.drone-prop { stroke-opacity:.65; }
.drone-blade { stroke-opacity:.4; }
.drone-light,.drone-camera { stroke:var(--accent); }
.drone-hover { animation:drone-hover 3.5s ease-in-out infinite; }
.flight-layer:not(.is-visible) .drone-hover { animation-play-state:paused; }
@keyframes drone-hover { 0%,100% { transform:translateY(-2px); } 50% { transform:translateY(2px); } }
.motion-projects .work-grid { grid-template-columns:1fr 1fr; gap:90px 10vw; }
.motion-projects .work-grid article:first-child { grid-column:1 / -1; grid-row:auto; }
.motion-projects .work-grid article:first-child .media { aspect-ratio:16/9; }
.motion-projects .work-grid article:nth-child(2) { margin-top:0; }
.motion-projects .work-grid article:nth-child(3) { grid-column:2; margin-top:130px; }
.motion-projects .work-grid article:not(:first-child) .media { aspect-ratio:3/4; }
.flight-project-verb { position:absolute; z-index:2; left:24px; bottom:25px; font-size:12px; letter-spacing:.01em; opacity:0; transform:translateY(8px); transition:opacity .35s,transform .5s; padding:10px 0; text-shadow:0 1px 15px #000; }
.flight-project-verb::after { content:''; position:absolute; bottom:2px; left:0; width:100%; height:1px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .55s; }
.work-card:hover .flight-project-verb,.work-card:focus-visible .flight-project-verb { opacity:1; transform:none; }
.work-card:hover .flight-project-verb::after,.work-card:focus-visible .flight-project-verb::after { transform:scaleX(1); }
.motion-projects .work-card .view-icon { color:var(--accent); }
.motion-projects .work-caption h3 { transition:transform .5s; }
.motion-projects .work-card:hover h3 { transform:translateX(5px); }
.memory-glimpse { display:grid; grid-template-columns:.9fr 1.1fr; gap:8vw; align-items:center; padding-block:90px 130px; }
.memory-glimpse h2 { font-family:Georgia,serif; font-style:italic; font-weight:400; font-size:clamp(42px,5vw,76px); }
.memory-glimpse-copy p { color:var(--muted); margin:24px 0 30px; font-size:15px; }
.memory-pair { display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:start; }
.memory-pair .photo-print:first-child { --print-rotation:-3deg; }
.memory-pair .photo-print:last-child { --print-rotation:3deg; margin-top:65px; }
.memory-pair .photo-print { padding:10px 10px 24px; }
.memory-pair .image-caption { font-size:13px; margin-top:15px; }
@media(max-width:900px) {
  .motion-projects .work-grid { gap:60px 7vw; }
  .memory-glimpse { gap:5vw; }
  .memory-pair { gap:20px; }
}
@media(max-width:768px) {
  .flight-pilot { display:none; }
  .flight-enabled [data-flight-hero] .hero-bottom > p { margin-left:0; }
  .memory-glimpse { grid-template-columns:1fr; gap:50px; padding-block:65px 90px; }
  .memory-pair { max-width:600px; width:100%; }
  .flight-project-verb { opacity:1; transform:none; left:20px; bottom:18px; }
}
@media(max-width:640px) {
  .motion-projects .work-grid { grid-template-columns:1fr; gap:45px; }
  .motion-projects .work-grid article:first-child { grid-column:auto; }
  .motion-projects .work-grid article:nth-child(3) { grid-column:auto; margin-top:0; }
  .motion-projects .work-grid article:first-child .media { aspect-ratio:4/3; }
}
@media(prefers-reduced-motion:reduce) { .flight-pilot,.flight-layer { display:none; } }
html.motion-reduced .flight-pilot,html.motion-reduced .flight-layer { display:none; }
