:root {
  color-scheme: light;
  --ink: #181819;
  --muted: #747474;
  --line: #e7e5e2;
  --paper: #fff;
  --cream: #f7f6f4;
  --side: clamp(22px, 5.6vw, 112px);
  --type: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--type); -webkit-font-smoothing: antialiased; }
body.modal-open { overflow: hidden; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid #536bd1; outline-offset: 4px; }
button { font: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; white-space: nowrap; }

/* Persistent, quiet navigation */
.site-header { width: 100%; height: 95px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:0 var(--side); background:#fff; border-bottom: 1px solid rgba(0,0,0,.035); position:relative; z-index:80; }
.brand-mark { display: inline-flex; align-items: center; flex: 0 0 auto; padding: 0 7px 0 0; }
.brand-mark img { width: 104px; height: 75px; object-fit:contain; }
.main-nav { display:flex; align-items:center; gap:clamp(20px,2.25vw,37px); }
.main-nav a { font-size: 11px; letter-spacing: .11em; text-transform:uppercase; font-weight:700; color:#696969; transition: color .2s ease; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color:#161616; }
.nav-hire { display:inline-flex; align-items:center; gap:15px; border:1px solid #202020; color:#171717; font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; padding:15px 19px; white-space:nowrap; transition:background .25s,color .25s; }
.nav-hire:hover { background:#171717;color:#fff; }
.nav-hire span, .cta-arrow { font-size:20px; line-height:10px; font-weight:400; }
.nav-toggle { display:none; height:42px; width:42px; padding:7px; background:transparent; border:0; }
.nav-toggle svg { width:100%; height:100%; stroke:#171717; }

/* Hero slideshow */
.hero { min-height: clamp(590px, calc(100svh - 95px), 880px); position:relative; isolation:isolate; overflow:hidden; background:#16191d; color:#fff; }
.hero-slides, .hero-shade, .hero-slide { position:absolute; inset:0; }
.hero-slide { opacity:0; transition: opacity var(--fade-duration, 1600ms) ease-in-out; overflow:hidden; }
.hero-slide.is-active { opacity:1; }
.hero-slide img { width:100%;height:100%;object-fit:cover;object-position:center; transform:scale(1.025); transition: transform 7.8s ease-out; }
.hero-slide.is-active img { transform:scale(1.075); }
.hero-shade { z-index:2; pointer-events:none; background:linear-gradient(90deg, rgba(6,8,12,var(--shade,.50)) 0%, rgba(6,8,12,calc(var(--shade,.50) * .94)) 39%, rgba(7,8,12,calc(var(--shade,.50) * .68)) 67%, rgba(8,9,12,calc(var(--shade,.50) * .40)) 100%); }
.hero-content { position:relative; z-index:3; max-width:1170px; min-height:inherit; display:flex; flex-direction:column; justify-content:center; padding: clamp(95px,12vh,165px) var(--side) 122px; }
.hero-kicker { display:flex; align-items:center; gap:17px; font-size:11px; text-transform:uppercase; letter-spacing:.29em; font-weight:700; color:rgba(255,255,255,.87); margin-bottom:33px; }
.hero-kicker::before { content:""; width:39px; height:1px; background:#fff; opacity:.9; }
.hero-title { font-size:clamp(48px,6.8vw,113px); font-weight:700; line-height:.985; letter-spacing:-.069em; margin:0; text-wrap:balance; }
.hero-sub { font-size:clamp(16px,1.4vw,19px); font-weight:500; line-height:1.6; max-width:670px; color:rgba(255,255,255,.93); margin:32px 0 38px; }
.hero-actions { display:flex; gap:32px; align-items:center; flex-wrap:wrap; }
.hero-primary { background:#fff; color:#171717; font-size:12px; font-weight:700; padding:20px 23px; display:inline-flex; align-items:center; gap:44px; transition:background .2s ease, transform .2s; }
.hero-primary:hover { background:#e9e9e9; transform:translateY(-2px); }
.hero-secondary { font-weight:700; font-size:12px; color:#fff; border-bottom:1px solid rgba(255,255,255,.8); padding:9px 0; }
.hero-bottom { position:absolute; z-index:5; bottom:33px; left:var(--side); right:var(--side); display:flex; justify-content:space-between; align-items:center; gap:20px; pointer-events:none; }
.hero-bottom > * { pointer-events:auto; }
.hero-scroll { display:inline-flex; align-items:center; gap:15px; text-transform:uppercase; font-size:10px; font-weight:700; letter-spacing:.19em; color:rgba(255,255,255,.91); }
.hero-scroll i { height:33px; width:1px; background:rgba(255,255,255,.65); display:block; }
.hero-slider-ui { display:flex; align-items:center; gap:17px; }
.hero-counter { font-size:12px; letter-spacing:.16em; font-weight:700; min-width:66px; text-align:center; font-variant-numeric:tabular-nums; }
.hero-line { width:120px; height:1px; background:rgba(255,255,255,.35); position:relative; }
.hero-line-fill { height:1px; width:0; background:#fff; position:absolute;left:0;top:0; }
.hero-line-fill.playing { animation: fill-line var(--hero-duration, 6000ms) linear forwards; }
@keyframes fill-line { from { width:0; } to { width:100%; } }
.hero-pause { display:grid;place-items:center; background:none;border:1px solid rgba(255,255,255,.6); color:#fff; width:31px;height:31px;font-size:11px;padding:0; }

/* Curated visual essay */
.work { padding:104px var(--side) 92px; max-width:1800px; margin:0 auto; }
.section-head { display:grid; grid-template-columns: 1.2fr .8fr; gap:40px; align-items:end; margin-bottom:62px; }
.eyebrow { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.21em; color:#686868; margin:0 0 21px; }
.section-title { font-size:clamp(50px,7vw,107px); line-height:.98; font-weight:700; letter-spacing:-.07em; margin:0; }
.section-intro { max-width:350px; justify-self:end; font-size:clamp(15px,1.3vw,19px);line-height:1.55; color:#636363; padding:0 0 8px; }
.project { margin-bottom:clamp(68px,7vw,108px); position:relative; }
.project:last-child { margin-bottom:0; }
.project-visual { display:block; position:relative; overflow:hidden; background:transparent; isolation:isolate; cursor:pointer; }
.project-visual::after { content:""; position:absolute;inset:0; z-index:1; background:rgba(0,0,0,.0); transition:background .45s ease; pointer-events:none; }
.project-visual:hover::after { background:rgba(0,0,0,.07); }
.project-visual img { display:block; transition:transform .9s cubic-bezier(.2,.7,.15,1); width:100%;height:auto; }
.project-visual:hover img { transform:scale(1.025); }
.project-hover { position:absolute; z-index:2; right:24px; bottom:24px; width:47px; height:47px; background:#fff; display:grid;place-items:center; opacity:0; transform:translateY(9px); transition:opacity .3s, transform .3s; font-size:23px; }
.project-visual:hover .project-hover { opacity:1; transform:translateY(0); }
.project-meta { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding-top:23px; border-top:1px solid #ddd; margin-top:20px; }
.project-meta h3 { font-size:clamp(24px,3.4vw,46px); letter-spacing:-.055em; line-height:1; font-weight:700; margin:0 0 9px; }
.project-cat { color:#757575; font-size:11px; text-transform:uppercase; letter-spacing:.14em; font-weight:700; }
.project-number { font-size:13px; color:#999; font-weight:700; font-variant-numeric:tabular-nums; }
.project--wide .project-visual { width:100%; }
.project--wide .project-visual img { width:100%; height:auto; }
.project--split { display:grid;grid-template-columns: .40fr .60fr; align-items:center; column-gap:clamp(24px,5vw,76px); }
.project--split.reverse { grid-template-columns: .60fr .40fr; }
.project--split.reverse .project-copy { order:2; }
.project--split.reverse .project-visual { order:1; }
.project--split .project-visual { width:100%; height:auto; }
.project--split .project-visual img { width:100%; height:auto; }
.project-copy { display:flex; flex-direction:column;justify-content:center; align-items:flex-start; }
.project-copy .project-number { margin-bottom:23px;color:#888; }
.project-copy h3 { font-size:clamp(39px,5.4vw,81px);font-weight:700;line-height:1.02;letter-spacing:-.071em;margin:0 0 17px;overflow-wrap:anywhere; }
.project-copy .project-cat { margin-bottom:21px; }
.project-description { color:#696969; font-size:clamp(15px,1.36vw,18px);line-height:1.6;max-width:340px;margin:0 0 26px; }
.project-link { display:inline-flex;align-items:center;gap:50px;border-bottom:1px solid #171717;padding:0 0 11px;font-weight:700;font-size:12px;letter-spacing:.015em; }
.project-link span { font-size:20px;font-weight:400;transition:transform .2s; }
.project-link:hover span { transform:translate(3px,-3px); }
.project--split .project-meta { display:none; }

/* Closing statements */
.about-teaser { background:#f7f7f5; padding:clamp(85px,10vw,158px) var(--side); }
.teaser-inner { margin:auto;max-width:1480px;display:grid;grid-template-columns:.42fr .58fr;gap:6vw; }
.teaser-label { font-weight:700; font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#777; }
.teaser-copy h2 { font-size:clamp(44px,6.5vw,96px);line-height:1.07; letter-spacing:-.073em;font-weight:700;margin:0 0 33px; }
.teaser-copy p { font-size:clamp(16px,1.5vw,21px);line-height:1.6;color:#606060;margin:0 0 30px;max-width:725px; }
.teaser-copy a { font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:38px;padding-bottom:10px;border-bottom:1px solid #171717; }
.upwork-strip { background:#1a1a1a; color:#fff; padding:clamp(82px,9vw,130px) var(--side); }
.upwork-inner { max-width:1480px; margin:auto; }
.upwork-top { display:flex;justify-content:space-between;align-items:baseline;gap:30px; }
.upwork-top .eyebrow { color:#b9b9b9; }
.upwork-top h2 { font-size:clamp(45px,6.8vw,98px);line-height:1;letter-spacing:-.07em;margin:0 0 38px;max-width:900px; }
.upwork-top h2 em {font-style:normal;color:#a4a4a4;}
.upwork-desc {font-size:17px;line-height:1.6;color:#bcbcbc;max-width:350px;margin:0 0 40px;}
.upwork-link { display:inline-flex;align-items:center;justify-content:space-between;gap:65px;background:#fff;color:#171717;padding:20px 24px;font-weight:700;font-size:13px;white-space:nowrap; }
.upwork-link span { font-size:24px; font-weight:400; }
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin-top:75px;border-top:1px solid #484848;padding-top:26px; }
.stat-value { font-weight:700;font-size:clamp(22px,2.7vw,43px);line-height:1.2;letter-spacing:-.05em; }
.stat-label { font-size:12px;color:#a3a3a3;margin-top:7px; }
.site-footer {background:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:35px var(--side);font-size:11px;letter-spacing:.07em;color:#777;}
.footer-links {display:flex;align-items:center;gap:26px;font-weight:700;text-transform:uppercase;}
.footer-links a:hover {color:#111;}

/* Secondary pages */
.inner-hero { padding:105px var(--side) 90px; max-width:1440px; margin:auto; }
.inner-hero h1 { font-size:clamp(56px,8vw,127px);line-height:.97;letter-spacing:-.08em;margin:0 0 27px; }
.inner-hero .intro { font-size:clamp(18px,2vw,27px);line-height:1.4; color:#666;max-width:920px; }
.about-body { max-width:1200px; margin:0 auto; padding:0 var(--side) 150px;display:grid;grid-template-columns: .34fr .66fr;gap:5vw; }
.about-body .lead {font-size:clamp(26px,3vw,40px);line-height:1.27;font-weight:700;letter-spacing:-.035em;margin:0 0 48px;}
.about-body p {font-size:19px;line-height:1.7;color:#505050;margin:0 0 25px;}
.about-body .side {font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#999;font-weight:700;}
.gallery-header { padding:80px var(--side) 60px;max-width:1740px;margin:auto; }
.gallery-back {font-size:11px;color:#686868;letter-spacing:.09em;text-transform:uppercase;font-weight:700;display:inline-flex;gap:12px;margin-bottom:48px;}
.gallery-back:hover {color:#161616;}
.gallery-header h1 {font-size:clamp(55px,8vw,125px);line-height:1;letter-spacing:-.08em;margin:0 0 23px;}
.gallery-header .project-cat {font-size:12px;}
.gallery-grid { columns:3 300px;column-gap:18px;max-width:1740px;margin:0 auto;padding:0 var(--side) 140px; }
.gallery-card {display:block;position:relative;width:100%;margin:0 0 18px;padding:0;border:0;background:var(--tile-bg,#f0eeeb);break-inside:avoid;cursor:zoom-in;overflow:hidden; }
.gallery-card img {width:100%;height:auto;}
.gallery-card.is-video .gallery-play {position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:62px;height:62px;background:rgba(0,0,0,.77);border-radius:50%;display:grid;place-items:center;color:#fff;font-size:23px;}
.gallery-card::after {position:absolute;inset:0;content:"";background:rgba(0,0,0,.0);transition:background .3s;pointer-events:none;}
.gallery-card:hover::after {background:rgba(0,0,0,.06);}
.gallery-empty {padding:75px 0;grid-column:span 3;text-align:center;color:#888;font-size:16px;}
.gallery-note {margin:0 var(--side) 120px;padding:25px;border:1px solid #ecebea;font-size:13px;color:#777;}
.lightbox {position:fixed;inset:0;background:rgba(12,12,14,.97);color:#fff;display:none;z-index:600;align-items:center;justify-content:center;padding:54px 64px 60px;}
.lightbox.is-open {display:flex;}
.lightbox-close,.lightbox-prev,.lightbox-next {position:absolute;z-index:10;background:transparent;color:#fff;border:0;display:grid;place-items:center;}
.lightbox-close {right:30px;top:19px;font-size:35px;width:50px;height:50px;}
.lightbox-prev,.lightbox-next {top:50%;transform:translateY(-50%);font-size:48px;width:57px;height:75px;}
.lightbox-prev {left:5px;}.lightbox-next {right:5px;}
.lightbox-content {width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;}
.lightbox-content img {width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;}
.lightbox-content video {max-width:100%;max-height:100%;width:auto;height:auto;}
.lightbox-content iframe {max-width:100%;width:min(92vw,1200px);aspect-ratio:16/9;border:0;}
.lightbox-foot {position:absolute;bottom:17px;left:50%;transform:translateX(-50%);text-align:center;font-size:11px;letter-spacing:.15em;color:#bdbdbd;font-variant-numeric:tabular-nums;}
.lightbox-controls {position:absolute;right:85px;top:18px;z-index:12;display:flex;align-items:center;gap:13px;}
.volume-toggle {background:transparent;color:#fff;border:1px solid #8d8d8d;padding:8px 12px;font-size:12px;min-width:88px;}
.video-progress {display:none;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;pointer-events:none;flex-direction:column;align-items:center;gap:14px;min-width:180px;text-align:center;text-shadow:0 2px 8px #000;}
.video-progress.show {display:flex;}
.video-progress strong {font-size:32px;}
.video-progress small {font-size:12px;color:#ccc;}
.video-progress-track {height:2px;background:#666;width:160px;position:relative;overflow:hidden;}
.video-progress-fill {height:100%;background:#fff;width:0;transition:width .3s;}
.video-progress.is-indeterminate .video-progress-fill {width:45%;animation:indeterminate 1.3s ease-in-out infinite alternate;}
@keyframes indeterminate {from{transform:translateX(-110%)}to{transform:translateX(310%)}}

/* Appearance / accessibility */
.reveal {opacity:0;transform:translateY(32px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal.is-visible {opacity:1;transform:none;}
@media (min-width:1500px) { .hero { min-height:750px; } }
@media (max-width:1000px) {
  .site-header {height:80px;}
  .main-nav{gap:19px;}
  .nav-hire{padding:13px;}
  .hero{min-height:700px;}
  .hero-content{padding-top:110px;}
  .work{padding-top:82px;}
  .project--split,.project--split.reverse{column-gap:30px;grid-template-columns: .4fr .6fr;}
  .project--split.reverse{grid-template-columns:.6fr .4fr;}
  .project--split .project-visual{height:auto;}
  .project-copy h3{font-size:clamp(37px,5.2vw,64px);}
}
@media (max-width:760px) {
  .site-header{height:74px;}
  .brand-mark img{height:58px;width:80px;}
  .nav-toggle {display:block;order:3;}
  .nav-hire {margin-left:auto;font-size:10px;padding:11px 12px;gap:12px;}
  .main-nav {display:none;position:absolute;z-index:200;left:0;right:0;top:73px;background:#fff;padding:28px var(--side) 32px;box-shadow:0 21px 24px rgba(0,0,0,.09);flex-direction:column;align-items:flex-start;gap:25px;}
  .main-nav.open{display:flex;}
  .main-nav a{font-size:13px;}
  .hero{min-height:min(790px,calc(100svh - 74px));min-height:650px;}
  .hero-shade {background:linear-gradient(90deg,rgba(3,5,9,.67),rgba(3,5,9,.36)),linear-gradient(0deg,rgba(3,5,9,.32),transparent 55%);}
  .hero-content{padding:100px var(--side) 130px;}
  .hero-title{font-size:clamp(46px,9vw,72px);}
  .hero-sub{font-size:16px;margin:27px 0 31px;line-height:1.55;}
  .hero-kicker{font-size:10px;letter-spacing:.18em;margin-bottom:31px;}
  .hero-line{width:54px;}
  .hero-bottom{bottom:27px;}
  .work {padding:78px var(--side) 85px;}
  .section-head {display:block;margin-bottom:48px;}
  .section-title{font-size:clamp(47px,10vw,78px);}
  .section-intro{margin-top:25px;max-width:550px;font-size:17px;}
  .project {margin-bottom:57px;}
  .project--split,.project--split.reverse{display:flex;flex-direction:column;gap:16px;align-items:stretch;}
  .project--split.reverse .project-copy,.project--split .project-copy {order:2;}
  .project--split.reverse .project-visual,.project--split .project-visual{order:1;}
  .project--split .project-visual{height:auto;aspect-ratio:auto;}
  .project--split .project-visual img {height:auto;width:100%;}
  .project--split .project-meta {display:none;}
  .project-copy {align-items:flex-start;}
  .project-copy h3{font-size:40px;margin-bottom:8px;}
  .project-copy .project-number{display:none;}
  .project-description{display:none;}
  .project-copy .project-cat {margin-bottom:22px;}
  .project--wide .project-visual{aspect-ratio:auto;}
  .project--wide .project-meta h3{font-size:32px;}
  .project--wide .project-visual img{height:auto;width:100%;}
  .teaser-inner{grid-template-columns:1fr;gap:35px;}
  .teaser-copy h2{font-size:clamp(44px,9vw,68px);}
  .upwork-top{display:block;}
  .upwork-top h2{font-size:clamp(42px,8.4vw,70px);}
  .upwork-desc{max-width:540px;}
  .stats{grid-template-columns:repeat(2,1fr);gap:32px 20px;margin-top:60px;}
  .site-footer{flex-wrap:wrap;}
  .gallery-grid{columns:2 220px;}
  .about-body{grid-template-columns:1fr;gap:22px;}
}
@media (max-width:480px) {
 .site-header{gap:6px;}
 .nav-hire{font-size:0;gap:7px;padding:9px 10px;}
 .nav-hire span{font-size:18px;}
 .nav-hire::before{content:"Upwork";font-size:10px;}
 .hero {min-height:640px;}
 .hero-title{font-size:clamp(45px,11.6vw,61px);}
 .hero-primary{gap:24px;font-size:11px;padding:18px 17px;}
 .hero-secondary{font-size:11px;}
 .hero-scroll{display:none;}
 .hero-bottom{justify-content:flex-end;}
 .work{padding-top:70px;}
 .section-head{margin-bottom:43px;}
 .project--wide .project-meta h3{font-size:27px;}
 .project--wide .project-visual {aspect-ratio:auto;}
 .project--wide .project-visual img{height:auto;width:100%;}
 .project--split .project-visual {aspect-ratio:auto;}
 .stats{gap:25px;}
 .stat-value{font-size:24px;}
 .footer-links{flex-wrap:wrap;}
 .gallery-grid{columns:1;}
 .gallery-header{padding-top:60px;}
 .lightbox{padding:50px 10px 55px;}
 .lightbox-prev,.lightbox-next{width:31px;font-size:30px;bottom:14px;top:auto;transform:none;}
 .lightbox-prev{left:13px;}.lightbox-next{right:13px;}
 .lightbox-close{right:8px;top:2px;}
 .lightbox-controls{right:70px;top:15px;}
 .lightbox-content{max-height:calc(100% - 40px);}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important;} .reveal{opacity:1;transform:none;} }

/* Portfolio galleries: original aspect ratios, unclipped free-flow mosaic.
   Columns aren't dense: a gap remains if the next numbered piece doesn't fit. */
.gallery-grid {display:flex;flex-wrap:wrap;align-items:flex-start;gap:12px;max-width:1740px;margin:0 auto;padding:0 var(--side) 140px;columns:auto;column-gap:initial;}
.gallery-card {flex:0 0 calc(33.333% - 8px);margin:0;display:block;position:relative;min-width:0;width:auto;break-inside:auto;overflow:visible;background:none;border:none;line-height:0;}
.gallery-card img {display:block;width:100%;height:100%;object-fit:contain;}
.gallery-grid.is-laid-out {display:grid;grid-template-columns:repeat(var(--gallery-columns,4),minmax(0,1fr));grid-auto-flow:row;grid-auto-rows:8px;gap:var(--gallery-gap,12px);align-content:start;}
.gallery-grid.is-laid-out .gallery-card {width:100%;min-width:0;flex:initial;align-self:start;}
.gallery-card.is-video .gallery-play {width:clamp(42px,5vw,68px);height:clamp(42px,5vw,68px);font-size:clamp(16px,2vw,23px);line-height:1;box-shadow:0 3px 24px rgba(0,0,0,.2);}
.gallery-card .gallery-video-caption {position:absolute;left:0;right:0;bottom:0;text-align:left;font-size:12px;color:white;font-weight:700;line-height:1.35;letter-spacing:.02em;padding:38px 14px 14px;background:linear-gradient(to top,rgba(0,0,0,.76),transparent);pointer-events:none;}
.gallery-card:hover img {filter:brightness(.95);transition:filter .3s ease;}
.embed-shell {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;width:100%;height:100%;}
.embed-shell iframe {display:block;aspect-ratio:var(--video-ratio, .5625);height:auto;width:min(100%, calc(72vh * var(--video-ratio, .5625)), 1180px);max-height:72vh;max-width:100%;background:#000;border:0;}
.video-external-link {font-size:12px;color:#d8d8d8;text-decoration:underline;text-underline-offset:4px;line-height:1.5;}
.video-external-link:hover {color:#fff;}
.lightbox-content {overflow:hidden;}
.gallery-back {text-decoration:none;}
@media(max-width:760px){
  .gallery-grid {gap:12px;columns:auto;}
  .gallery-card {flex:0 0 calc(50% - 6px);}
}
@media(max-width:550px){
  .gallery-grid {gap:16px;columns:auto;padding-bottom:85px;}
  .gallery-card {flex:0 0 100%;}
  .gallery-video-caption{font-size:11px;}
  .lightbox-foot {bottom:19px;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .embed-shell iframe {width:min(100%, calc(66vh * var(--video-ratio, .5625)));max-height:66vh;}
}

/* V5: clear offline video fallback for YouTube's Referer requirement. */
.video-file-preview {display:flex;align-items:center;justify-content:center;max-width:100%;min-height:0;flex:0 1 auto;}
.video-file-preview img {width:auto;height:auto;max-width:min(92vw,1100px);max-height:65vh;object-fit:contain;}
.video-file-note {max-width:480px;margin:0 16px;text-align:center;color:#c7c7c7;font-size:13px;line-height:1.55;}
.video-file-preview + .video-file-note {margin-top:2px;}
.embed-shell:has(.video-file-preview) {gap:16px;}

/* V6: Instagram Reel embeds and stable Contact anchor. */
.site-footer#contact {scroll-margin-top:0;}
.embed-shell.is-instagram iframe {
  aspect-ratio:9 / 16;
  width:min(100%, calc(72vh * .5625), 490px);
  max-height:72vh;
  background:#101010;
}
@media(max-width:550px) {
  .embed-shell.is-instagram iframe {width:min(100%, calc(66vh * .5625));max-height:66vh;}
}

.gallery-summary{font-size:clamp(14px,1.25vw,17px);line-height:1.65;color:#696969;margin:14px 0 0;max-width:660px;}
