/* HIGHLAND PRODUCTIONS — site styles
   Editorial / architecture-magazine feel.
   Brand: Pine #1E2F2A · Cream #F6F0E4 · Stone #C9B9A4 · Bark #6B5B4B
   Type: Archivo Black (display) · DM Serif Display (editorial italic) · Archivo (UI) · Inter (body)
*/

/* Self-hosted fonts — eliminates Google Fonts render-blocking */
@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url('/fonts/Inter-300.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/Inter-500.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/Inter-600.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/Inter-700.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/Archivo-400.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/Archivo-500.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/Archivo-600.woff2') format('woff2');}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/Archivo-700.woff2') format('woff2');}
@font-face{font-family:'Archivo Black';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ArchivoBlack-400.woff2') format('woff2');}
/* DM Serif Display is the hero headline (LCP-critical) — `optional` on regular so preload renders immediately if ready, fallback stays if not, no swap-flash */
@font-face{font-family:'DM Serif Display';font-style:normal;font-weight:400;font-display:optional;src:url('/fonts/DMSerifDisplay-400.woff2') format('woff2');}
/* Italic uses `swap` because faux-italic from Georgia regular looks broken (clipped ascenders). Real italic must load even if it takes longer. */
@font-face{font-family:'DM Serif Display';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/DMSerifDisplay-400-italic.woff2') format('woff2');}

/* Metric-matched fallback for the hero headline (Georgia is closest to DM Serif Display) */
@font-face{font-family:'DM Serif Display Fallback';src:local('Georgia');size-adjust:96%;ascent-override:96%;descent-override:24%;line-gap-override:0%;}

*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
:root{
  --pine:#1E2F2A;
  --pine-deep:#162420;
  --cream:#F6F0E4;
  --cream-warm:#EFE7D5;
  --stone:#C9B9A4;
  --bark:#6B5B4B;
  --black:#000;
  --white:#fff;
  --mute:#3a4541;
  --mute-soft:#5a6661;
  --line:#E8DFCE;
  --line-dark:rgba(246,240,228,0.12);
}
body{
  font-family:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;
  background:var(--cream);
  color:var(--pine);
  font-size:16px;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01";
}
a{text-decoration:none;color:inherit;}
img,video,iframe{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}

/* Keyboard focus — visible on every interactive element */
:focus{outline:none;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--stone);
  outline-offset:3px;
  border-radius:2px;
}

/* TYPE — utilities */
.label{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--bark);}
.label-light{color:var(--stone);}
.muted-light{color:var(--stone);font-size:13px;letter-spacing:1px;}

/* WRAP */
.wrap{width:100%;max-width:1600px;margin:0 auto;padding:0 56px;}
@media(max-width:1200px){.wrap{padding:0 40px;}}
@media(max-width:880px){.wrap{padding:0 24px;}}
@media(max-width:560px){.wrap{padding:0 20px;}}

/* THEMES */
.theme-pine{background:var(--pine);}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .35s ease, border-color .35s ease, backdrop-filter .35s ease;background:transparent;border-bottom:1px solid transparent;}
.nav-dark{background:transparent;}
.nav.scrolled,.nav-dark.scrolled{background:rgba(30,47,42,0.78);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);border-bottom:1px solid var(--line-dark);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:80px;}

.nav-logo{display:inline-flex;flex-direction:column;line-height:1;}
.nav-logo .nl-1{font-family:'Archivo Black',sans-serif;font-size:18px;letter-spacing:-.4px;color:var(--cream);}
.nav-logo .nl-2{font-family:'Archivo',sans-serif;font-size:9px;font-weight:500;letter-spacing:6px;color:var(--stone);margin-top:3px;}

.nav-links{display:flex;align-items:center;gap:40px;}
.nav-links a{font-family:'Archivo',sans-serif;font-size:11px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--stone);transition:color .2s;}
.nav-links a:hover{color:var(--cream);}

.nav-toggle{display:none;flex-direction:column;gap:5px;padding:8px;}
.nav-toggle span{width:22px;height:1px;background:var(--cream);}

@media(max-width:880px){
  .nav-inner{height:68px;}
  .nav-links{display:none;position:absolute;top:68px;left:0;right:0;background:var(--pine);border-bottom:1px solid var(--line-dark);flex-direction:column;align-items:stretch;gap:0;padding:8px 0 16px;}
  .nav-links.open{display:flex;}
  .nav-links a{padding:14px 24px;font-size:13px;}
  .nav-toggle{display:flex;}
}

/* HERO */
.hero-pine{background:var(--pine);color:var(--cream);padding:160px 0 80px;}
.hero-inner{display:flex;flex-direction:column;}

.hero-meta{display:flex;justify-content:space-between;align-items:center;padding-bottom:32px;border-bottom:1px solid var(--line-dark);margin-bottom:60px;}
.hero-meta .label{color:var(--stone);}
.hero-meta-r{text-align:right;}

.hero-headline{
  font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;
  font-weight:400;
  font-style:normal;
  font-size:clamp(48px,7.6vw,128px);
  line-height:1.6;
  letter-spacing:-2.5px;
  color:var(--cream);
  max-width:none;
  margin-bottom:80px;
  padding-top:0.6em;
  overflow:visible;
  text-rendering:geometricPrecision;
}
.hero-headline em{
  font-style:italic;
  color:var(--stone);
  letter-spacing:0;
  padding-right:0.18em;
  margin-right:0.05em;
  display:inline-block;
  padding-top:0.25em;
  margin-top:-0.1em;
  vertical-align:baseline;
}

.hero-foot{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:end;padding-top:32px;border-top:1px solid var(--line-dark);}
.hero-foot p{font-size:16px;line-height:1.7;color:var(--stone);max-width:520px;}
.hero-foot .btn-link{justify-self:end;}

@media(max-width:720px){
  .hero-pine{padding:140px 0 60px;}
  .hero-headline{margin-bottom:48px;letter-spacing:-1.5px;}
  .hero-foot{grid-template-columns:1fr;gap:24px;}
  .hero-foot .btn-link{justify-self:start;}
}

/* SHOWREEL */
.showreel-section{background:var(--pine);padding:0 0 120px;}
.showreel{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:16/9;background:var(--pine-deep);border:1px solid var(--line-dark);}
.showreel iframe{width:100%;height:100%;border:0;}
.showreel-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;}

/* SHOWREEL CUSTOM CONTROLS */
.showreel video{pointer-events:none;}
.showreel-ctrl{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  display:flex;align-items:center;gap:16px;
  padding:14px 18px;
  background:linear-gradient(to top,rgba(22,36,32,0.85),rgba(22,36,32,0));
  opacity:0;transform:translateY(6px);
  transition:opacity 260ms cubic-bezier(0.23,1,0.32,1), transform 260ms cubic-bezier(0.23,1,0.32,1);
  pointer-events:none;
}
.showreel:hover .showreel-ctrl,.showreel:focus-within .showreel-ctrl,.showreel.is-paused .showreel-ctrl{opacity:1;transform:none;pointer-events:auto;}
.sr-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:999px;
  background:rgba(246,240,228,0.08);border:1px solid var(--line-dark);
  color:var(--cream);cursor:pointer;
  transition:background 200ms cubic-bezier(0.23,1,0.32,1), transform 160ms cubic-bezier(0.23,1,0.32,1);
}
.sr-btn:hover{background:rgba(246,240,228,0.16);}
.sr-btn:active{transform:scale(0.94);}
.sr-mute{width:auto;padding:0 14px;font-family:'Archivo',sans-serif;font-size:10px;font-weight:600;letter-spacing:2.5px;}
.sr-icon-play,.sr-icon-pause{display:block;}
.sr-icon-play{width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid var(--cream);margin-left:2px;}
.sr-icon-pause{display:none;width:9px;height:11px;border-left:3px solid var(--cream);border-right:3px solid var(--cream);}
.showreel.is-playing .sr-icon-play{display:none;}
.showreel.is-playing .sr-icon-pause{display:block;}
.sr-scrub{flex:1;height:4px;background:rgba(246,240,228,0.18);border-radius:999px;cursor:pointer;position:relative;overflow:hidden;}
.sr-scrub-fill{position:absolute;left:0;top:0;bottom:0;width:100%;background:var(--stone);transform-origin:left;transform:scaleX(0);transition:transform 80ms linear;}

/* SECTION SHELLS */
section{padding:140px 0;}
.section-cream{background:var(--cream);}
.section-cream-warm{background:var(--cream-warm);}
.section-pine{background:var(--pine);color:var(--cream);}

@media(max-width:720px){section{padding:96px 0;}}

/* SECTION HEAD */
.section-head{margin-bottom:80px;max-width:840px;}
.section-num{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--stone);display:block;margin-bottom:20px;}
.section-title{
  font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;
  font-weight:400;
  font-size:clamp(36px,5.4vw,72px);
  line-height:1;
  letter-spacing:-1.5px;
  color:var(--pine);
}
.section-title em{font-style:italic;color:var(--bark);}
.section-pine .section-title{color:var(--cream);}
.section-pine .section-title em{color:var(--stone);}
.section-pine .section-num{color:var(--stone);}

.section-foot{margin-top:64px;display:flex;justify-content:flex-end;}

/* WORK GRID */
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px;}
@media(max-width:600px){.work-grid{grid-template-columns:1fr;gap:40px;}}
.work-meta{padding:0 4px;}
.work-tag{font-family:'Archivo',sans-serif;font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--bark);margin-bottom:8px;}
.work-meta h3{font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;font-weight:400;font-size:28px;line-height:1.1;color:var(--pine);margin-bottom:6px;}
.work-loc{font-family:'Inter',sans-serif;font-size:13px;color:var(--mute-soft);}

/* ABOUT GRID */
.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start;}
@media(max-width:880px){.about-grid{grid-template-columns:1fr;gap:40px;}}
.about-body p{font-size:18px;line-height:1.75;color:var(--mute);max-width:560px;}
.about-body p + p{margin-top:18px;}
.about-body .btn-link{margin-top:32px;display:inline-block;}

/* STUDIO CTA (home) */
.studio-cta{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:end;padding:24px 0;}
.studio-cta .btn-link{display:inline-block;}
@media(max-width:880px){.studio-cta{grid-template-columns:1fr;gap:28px;align-items:start;}}

/* PROCESS — numbered editorial list, same rhythm as services */
.process-list{list-style:none;border-top:1px solid var(--line);}
.process-row{display:grid;grid-template-columns:80px 1fr;gap:32px;align-items:start;padding:36px 0;border-bottom:1px solid var(--line);transition:background 220ms cubic-bezier(0.23,1,0.32,1);}
.process-row:hover{background:rgba(201,185,164,0.08);}
.process-num{font-family:'Archivo Black',sans-serif;font-size:13px;letter-spacing:1px;color:var(--stone);padding-top:6px;}
.process-content h3{font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;font-weight:400;font-size:32px;line-height:1.1;color:var(--pine);margin-bottom:10px;}
.process-content p{font-size:15px;line-height:1.7;color:var(--mute-soft);max-width:620px;}
@media(max-width:560px){
  .process-row{grid-template-columns:50px 1fr;gap:18px;padding:28px 0;}
  .process-content h3{font-size:24px;}
}

/* SERVICES — list, not cards */
.services-list{border-top:1px solid var(--line);}
.service-row{display:grid;grid-template-columns:80px 1fr;gap:32px;align-items:start;padding:36px 0;border-bottom:1px solid var(--line);transition:background .2s;}
.service-row:hover{background:rgba(201,185,164,0.08);}
.service-num{font-family:'Archivo Black',sans-serif;font-size:13px;letter-spacing:1px;color:var(--stone);padding-top:6px;}
.service-content h3{font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;font-weight:400;font-size:32px;line-height:1.1;color:var(--pine);margin-bottom:10px;}
.service-content p{font-size:15px;line-height:1.7;color:var(--mute-soft);max-width:580px;}

@media(max-width:560px){
  .service-row{grid-template-columns:50px 1fr;gap:18px;padding:28px 0;}
  .service-content h3{font-size:24px;}
}

/* CONTACT */
.contact-editorial{max-width:980px;}
.contact-editorial .section-num{display:block;margin-bottom:32px;}
.contact-headline-big{
  font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;
  font-weight:400;
  font-size:clamp(56px,9vw,140px);
  line-height:0.96;letter-spacing:-3px;
  color:var(--cream);
  margin-bottom:48px;
}
.contact-headline-big em{font-style:italic;color:var(--stone);}
.contact-lede{font-family:'Inter',sans-serif;font-size:18px;line-height:1.7;color:var(--stone);max-width:620px;margin-bottom:64px;}

.contact-rows{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line-dark);}
.contact-row{
  display:grid;grid-template-columns:160px 1fr;gap:32px;align-items:center;
  padding:28px 0;border-bottom:1px solid var(--line-dark);
}
.contact-row .label{color:var(--stone);}
.contact-link{
  font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;
  font-size:clamp(22px,3vw,36px);
  font-weight:400;letter-spacing:-0.5px;color:var(--cream);
  transition:color .2s ease;
  display:inline-block;
}
.contact-link.contact-link-soft{font-style:italic;color:var(--stone);}
a.contact-link:hover{color:var(--stone);}
a.contact-link.contact-link-soft:hover{color:var(--cream);}
@media(max-width:560px){
  .contact-row{grid-template-columns:1fr;gap:6px;padding:22px 0;}
}

/* legacy (kept in case other pages still reference) */
.contact-band{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
@media(max-width:880px){.contact-band{grid-template-columns:1fr;gap:48px;}}

.contact-headline{
  font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;
  font-weight:400;
  font-size:clamp(36px,5.4vw,68px);
  line-height:1;
  letter-spacing:-1.5px;
  color:var(--cream);
  margin:14px 0 24px;
}
.contact-headline em{font-style:italic;color:var(--stone);}
.contact-copy p{font-size:16px;line-height:1.75;color:var(--stone);max-width:480px;margin-bottom:36px;}

.contact-details{display:flex;flex-direction:column;gap:16px;padding-top:24px;border-top:1px solid var(--line-dark);}
.contact-details > div{display:grid;grid-template-columns:90px 1fr;gap:16px;align-items:center;}
.contact-details .label{color:var(--stone);}
.contact-details a,.contact-details span{font-family:'Inter',sans-serif;font-size:15px;color:var(--cream);transition:color .2s;}
.contact-details a:hover{color:var(--stone);}

.contact-form{display:grid;gap:18px;}
.contact-form label{font-family:'Archivo',sans-serif;font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--stone);margin-bottom:6px;display:block;}
.contact-form input,.contact-form textarea{width:100%;background:rgba(246,240,228,0.04);border:1px solid var(--line-dark);border-radius:4px;padding:14px 16px;color:var(--cream);font-family:'Inter',sans-serif;font-size:15px;transition:border-color .2s,background .2s;}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--stone);background:rgba(246,240,228,0.07);}
.contact-form textarea{min-height:120px;resize:vertical;}

/* BUTTONS */
.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:var(--cream);color:var(--pine);
  padding:16px 28px;border-radius:999px;
  font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;
  transition:transform 160ms cubic-bezier(0.23,1,0.32,1), background 200ms cubic-bezier(0.23,1,0.32,1);
}
@media(hover:hover) and (pointer:fine){
  .btn-primary:hover{transform:translateY(-1px);background:var(--white);}
}
.btn-primary:active{transform:scale(0.97);}

.btn-link{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;
  color:var(--pine);
  padding-bottom:6px;border-bottom:1px solid var(--pine);
  transition:gap 220ms cubic-bezier(0.23,1,0.32,1), color 200ms cubic-bezier(0.23,1,0.32,1), border-color 200ms cubic-bezier(0.23,1,0.32,1), transform 160ms cubic-bezier(0.23,1,0.32,1);
}
@media(hover:hover) and (pointer:fine){
  .btn-link:hover{gap:14px;}
}
.btn-link:active{transform:scale(0.97);}
.section-pine .btn-link,.hero .btn-link{color:var(--cream);border-bottom-color:var(--cream);}
.section-pine .btn-link:hover,.hero .btn-link:hover{color:var(--stone);border-bottom-color:var(--stone);}

/* FOOTER */
footer{background:var(--cream);padding:120px 0 40px;border-top:1px solid var(--line);}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:64px;margin-bottom:80px;}
@media(max-width:880px){.footer-grid{grid-template-columns:1fr 1fr;gap:40px;}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr;gap:32px;}}

.footer-brand{display:inline-flex;flex-direction:column;line-height:1;margin-bottom:20px;}
.footer-brand .fb-1{font-family:'Archivo Black',sans-serif;font-size:24px;letter-spacing:-.5px;color:var(--pine);}
.footer-brand .fb-2{font-family:'Archivo',sans-serif;font-size:11px;font-weight:500;letter-spacing:7px;color:var(--bark);margin-top:5px;}
.footer-tag{font-size:14px;color:var(--mute-soft);max-width:340px;line-height:1.7;}

.footer-col h4{font-family:'Archivo',sans-serif;font-size:10px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--bark);margin-bottom:20px;}
.footer-col a,.footer-col p{font-size:14px;color:var(--mute);line-height:2;display:block;}
.footer-col a:hover{color:var(--pine);}

.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:32px;border-top:1px solid var(--line);font-family:'Archivo',sans-serif;font-size:11px;letter-spacing:1px;color:var(--bark);text-transform:uppercase;}
@media(max-width:560px){.footer-bottom{flex-direction:column;gap:12px;text-align:center;}}

/* SHOWREEL VIDEO */
.showreel video{width:100%;height:100%;object-fit:cover;background:var(--pine-deep);display:block;}
.showreel-meta{display:flex;justify-content:space-between;align-items:center;padding-top:24px;font-family:'Archivo',sans-serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--stone);}
.showreel-meta a{color:var(--stone);border-bottom:1px solid rgba(201,185,164,0.4);padding-bottom:3px;transition:color .2s,border-color .2s;}
.showreel-meta a:hover{color:var(--cream);border-bottom-color:var(--cream);}

/* WORK GRID — real project cards (varied aspect for editorial rhythm) */
.work-item-link{display:flex;flex-direction:column;gap:18px;text-decoration:none;color:inherit;}
.work-thumb{position:relative;aspect-ratio:4/5;background:var(--pine);border-radius:4px;overflow:hidden;}
.work-item-link.work-tall .work-thumb{aspect-ratio:4/5;}
.work-item-link.work-square .work-thumb{aspect-ratio:1/1;margin-top:64px;}
@media(max-width:600px){.work-item-link.work-square .work-thumb{margin-top:0;aspect-ratio:4/5;}}
.work-thumb picture{display:block;width:100%;height:100%;}
.work-thumb img,.work-thumb video{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.work-item-link:hover .work-thumb img,.work-item-link:hover .work-thumb video{transform:scale(1.03);}
.work-thumb-tag{position:absolute;top:18px;left:18px;background:rgba(30,47,42,0.85);backdrop-filter:blur(8px);padding:7px 14px;border-radius:999px;font-family:'Archivo',sans-serif;font-size:9px;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--cream);}

/* PROJECT PAGE */
.project-page{background:var(--cream);}
.project-hero{position:relative;width:100%;aspect-ratio:21/9;overflow:hidden;background:var(--pine-deep);}
.project-hero picture{display:block;width:100%;height:100%;}
.project-hero img,.project-hero video{width:100%;height:100%;object-fit:cover;display:block;}
@media(max-width:720px){.project-hero{aspect-ratio:4/5;}}

.project-meta{padding:80px 0 60px;border-bottom:1px solid var(--line);}
.project-meta-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:end;}
.project-back{display:inline-flex;align-items:center;gap:8px;font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--bark);margin-bottom:32px;transition:color .2s;}
.project-back:hover{color:var(--pine);}
.project-title{font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;font-weight:400;font-size:clamp(40px,5.5vw,76px);line-height:1;letter-spacing:-1.5px;color:var(--pine);}
.project-title em{font-style:italic;color:var(--bark);}
.project-facts{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
.project-facts dt{font-family:'Archivo',sans-serif;font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--bark);margin-bottom:6px;}
.project-facts dd{font-family:'Inter',sans-serif;font-size:14px;color:var(--mute);line-height:1.6;}
@media(max-width:880px){
  .project-meta-grid{grid-template-columns:1fr;gap:40px;}
  .project-meta{padding:48px 0 40px;}
}

.project-body{padding:80px 0;}
.project-body-inner{max-width:680px;margin:0 auto;}
.project-body p{font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;font-weight:400;font-size:22px;line-height:1.55;color:var(--mute);margin-bottom:24px;}
.project-body p:first-of-type::first-letter{font-size:68px;float:left;line-height:0.85;padding:6px 12px 0 0;color:var(--pine);font-style:italic;}
.project-body p.note{font-family:'Inter',sans-serif;font-size:15px;line-height:1.8;color:var(--mute-soft);}
@media(max-width:720px){.project-body{padding:60px 0;} .project-body p{font-size:19px;}}

/* GALLERY */
.gallery{padding:0 0 120px;}
.gallery-row{display:grid;gap:14px;margin-bottom:14px;}
.gallery-row.two{grid-template-columns:1fr 1fr;}
.gallery-row.full{grid-template-columns:1fr;}
.gallery-row picture{display:block;width:100%;height:100%;overflow:hidden;background:var(--pine);}
.gallery-row img{width:100%;height:100%;object-fit:cover;display:block;background:var(--pine);transition:transform 1.4s cubic-bezier(.2,.7,.2,1);}
.gallery-row picture:hover img{transform:scale(1.04);}
@media(prefers-reduced-motion:reduce){.gallery-row img{transition:none;}.gallery-row picture:hover img{transform:none;}}
.gallery-row.full img{aspect-ratio:21/9;}
.gallery-row.full.tall img{aspect-ratio:16/10;}
.gallery-row.two img{aspect-ratio:16/9;}
.gallery-caption{font-family:'Archivo',sans-serif;font-size:10px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--bark);margin-top:14px;display:block;}
@media(max-width:720px){
  .gallery{padding:0 0 80px;}
  .gallery-row,.gallery-row.two,.gallery-row.full{grid-template-columns:1fr;gap:8px;margin-bottom:8px;}
  .gallery-row img,.gallery-row.full img{aspect-ratio:3/2;}
}

.project-credits{padding:60px 0 100px;border-top:1px solid var(--line);}
.project-credits-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-bottom:60px;}
.project-credits dt{font-family:'Archivo',sans-serif;font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--bark);margin-bottom:6px;}
.project-credits dd{font-family:'Inter',sans-serif;font-size:13px;color:var(--mute);}
@media(max-width:880px){.project-credits-grid{grid-template-columns:repeat(2,1fr);gap:24px;}}
@media(max-width:560px){.project-credits-grid{grid-template-columns:1fr;}}

.project-next{display:flex;justify-content:space-between;align-items:center;padding-top:40px;border-top:1px solid var(--line);}
.project-next a{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--pine);transition:color .2s;}
.project-next a:hover{color:var(--bark);}
@media(max-width:560px){.project-next{flex-direction:column;gap:16px;align-items:flex-start;}}

/* MARQUEE STRIP — editorial scrolling type */
.marquee-strip{position:relative;background:var(--pine);overflow:hidden;padding:56px 0;border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);}
.marquee{display:flex;width:max-content;white-space:nowrap;animation:marquee 40s linear infinite;will-change:transform;}
.marquee-strip:hover .marquee{animation-play-state:paused;}
.marquee-track{display:flex;flex-shrink:0;align-items:center;}
.marquee-track > span{font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(40px,6vw,84px);line-height:1;color:var(--stone);padding:0 28px;letter-spacing:-1px;display:inline-block;}
.marquee-track .dot{font-family:'Inter',sans-serif;font-style:normal;font-weight:300;color:var(--bark);font-size:clamp(40px,6vw,84px);line-height:1;display:inline-block;padding:0 4px;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media(prefers-reduced-motion:reduce){.marquee{animation:none;transform:translateX(-12%);}}

/* FILM GRAIN — hero only (was on 5 sections, too heavy) */
.hero-pine{position:relative;}
.hero-pine::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0.10;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.96 0 0 0 0 0.94 0 0 0 0 0.89 0 0 0 0.6 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:240px 240px;
}
.hero-pine > .wrap{position:relative;z-index:2;}

/* IMAGE FADE-UP — gallery + reveal class */
.reveal-init{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);}
.reveal-init.in-view{opacity:1;transform:none;}

/* LIGHTBOX */
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(22,36,32,0.96);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;padding:48px;cursor:zoom-out;}
.lightbox.open{display:flex;animation:lbFade .25s ease both;}
@keyframes lbFade{from{opacity:0;}to{opacity:1;}}
.lightbox .lb-figure{margin:0;max-width:95vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:16px;cursor:default;}
.lightbox img{max-width:95vw;max-height:82vh;object-fit:contain;border-radius:2px;box-shadow:0 30px 80px rgba(0,0,0,0.45);background:var(--pine-deep);}
.lightbox .lb-cap{font-family:'Archivo',sans-serif;font-size:11px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--stone);text-align:center;}
.lightbox button{position:absolute;background:rgba(246,240,228,0.06);border:1px solid var(--line-dark);color:var(--cream);width:48px;height:48px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-family:'Archivo',sans-serif;cursor:pointer;backdrop-filter:blur(8px);transition:background .2s,border-color .2s;}
.lightbox button:hover{background:rgba(246,240,228,0.14);border-color:var(--stone);}
.lightbox .lb-close{top:32px;right:32px;font-size:24px;}
.lightbox .lb-prev{left:32px;top:50%;transform:translateY(-50%);}
.lightbox .lb-next{right:32px;top:50%;transform:translateY(-50%);}
@media(max-width:720px){
  .lightbox{padding:16px;}
  .lightbox .lb-close{top:16px;right:16px;}
  .lightbox .lb-prev{left:16px;}
  .lightbox .lb-next{right:16px;}
}

/* SECTOR PAGE */
.sector-hero{padding:200px 0 100px;}
.sector-hero .wrap{display:flex;flex-direction:column;}
.sector-hero .label{color:var(--stone);margin-bottom:40px;}
.sector-hero h1{
  font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;
  font-weight:400;
  font-size:clamp(56px,8.5vw,128px);
  line-height:0.98;letter-spacing:-3px;
  color:var(--cream);
  max-width:14ch;
  margin-bottom:48px;
}
.sector-hero h1 em{font-style:italic;color:var(--stone);}
.sector-hero .sector-sub{
  font-family:'Inter',sans-serif;font-size:18px;line-height:1.7;
  color:var(--stone);max-width:560px;
  padding-top:32px;border-top:1px solid var(--line-dark);
}
@media(max-width:720px){.sector-hero{padding:140px 0 72px;}.sector-hero h1{margin-bottom:32px;letter-spacing:-1.5px;}}

.sector-intro{padding:120px 0;}
.sector-intro-grid{display:grid;grid-template-columns:1fr 1.6fr;gap:80px;align-items:start;}
.sector-intro .section-num{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--bark);}
.sector-intro .lede{font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;font-weight:400;font-size:clamp(28px,3.4vw,40px);line-height:1.25;color:var(--pine);margin-bottom:36px;letter-spacing:-0.5px;}
.sector-intro p{font-family:'Inter',sans-serif;font-size:17px;line-height:1.8;color:var(--mute);max-width:620px;margin-bottom:18px;}
.sector-intro .lede em{font-style:italic;color:var(--bark);}
@media(max-width:880px){.sector-intro-grid{grid-template-columns:1fr;gap:32px;}.sector-intro{padding:80px 0;}}

.sector-work{padding:120px 0;}
.sector-work .section-head{margin-bottom:60px;}
.sector-empty{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:96px 0;text-align:center;
}
.sector-empty .small{font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--bark);margin-bottom:24px;display:block;}
.sector-empty h3{font-family:'DM Serif Display','DM Serif Display Fallback',Georgia,serif;font-weight:400;font-size:clamp(28px,3.5vw,44px);line-height:1.2;color:var(--pine);max-width:18ch;margin:0 auto 28px;letter-spacing:-0.5px;}
.sector-empty h3 em{font-style:italic;color:var(--bark);}
.sector-empty p{font-family:'Inter',sans-serif;font-size:15px;color:var(--mute-soft);max-width:480px;margin:0 auto 32px;line-height:1.7;}
.sector-empty .btn-link{justify-self:center;}

/* SECTOR CTA — small "view this sector" link added to homepage Sectors list */
.service-row a.service-link{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--bark);transition:color .2s,gap .2s;}
.service-row a.service-link:hover{color:var(--pine);gap:14px;}

/* INTRO CURTAIN — first-load cinematic */
.intro-curtain{
  position:fixed;inset:0;z-index:9999;
  background:var(--pine-deep);color:var(--cream);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  overflow:hidden;
  transform:translateY(0);
  transition:transform 1s cubic-bezier(.7,0,.3,1);
}
.intro-curtain.exit{transform:translateY(-100%);}
.intro-mark{display:flex;flex-direction:column;align-items:center;gap:6px;line-height:0.95;text-align:center;overflow:hidden;}
.intro-mark .intro-line{
  display:block;font-family:'Archivo Black',sans-serif;
  font-size:clamp(38px,7vw,96px);letter-spacing:-1px;
  color:var(--cream);
  transform:translateY(110%);opacity:0;
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1), opacity .8s ease;
}
.intro-mark .intro-line-2{
  font-family:'Archivo',sans-serif;font-weight:500;
  font-size:clamp(11px,1.4vw,18px);letter-spacing:14px;
  color:var(--stone);margin-top:14px;
  transition-delay:.18s;
}
.intro-curtain.visible .intro-line{transform:translateY(0);opacity:1;}
.intro-curtain.visible .intro-line-2{transform:translateY(0);opacity:1;}
.intro-meta{position:absolute;bottom:48px;left:0;right:0;display:flex;justify-content:space-between;padding:0 48px;font-family:'Archivo',sans-serif;font-size:11px;font-weight:500;letter-spacing:4px;text-transform:uppercase;color:var(--stone);opacity:0;transition:opacity .8s ease .4s;}
.intro-curtain.visible .intro-meta{opacity:1;}
@media(max-width:560px){.intro-meta{padding:0 20px;bottom:24px;font-size:9px;letter-spacing:3px;}}

/* WORD REVEAL — hero/section/project headlines */
.word{display:inline-block;overflow:hidden;vertical-align:bottom;line-height:1;}
.word-inner{
  display:inline-block;
  transform:translateY(110%);
  transition:transform 1s cubic-bezier(.2,.7,.2,1);
  transition-delay:calc(var(--i, 0) * 60ms + 200ms);
  will-change:transform;
}
body.headlines-ready .word-inner{transform:translateY(0);}
@media(prefers-reduced-motion:reduce){.word-inner{transform:none !important;transition:none;}}

/* GALLERY COUNTER — fixed bottom-right, shows current photo index */
.gallery-counter{
  position:fixed;right:32px;bottom:32px;z-index:90;
  display:inline-flex;align-items:center;gap:10px;
  background:rgba(30,47,42,0.78);backdrop-filter:saturate(140%) blur(10px);
  border:1px solid var(--line-dark);
  padding:12px 20px;border-radius:999px;
  font-family:'Archivo',sans-serif;font-size:11px;font-weight:600;letter-spacing:3px;text-transform:uppercase;
  color:var(--cream);
  opacity:0;transform:translateY(12px);
  transition:opacity .3s ease, transform .3s ease;
  pointer-events:none;
}
.gallery-counter.show{opacity:1;transform:translateY(0);}
.gallery-counter .gc-num{color:var(--cream);}
.gallery-counter .gc-sep{color:var(--bark);font-weight:400;}
.gallery-counter .gc-total{color:var(--stone);}
@media(max-width:560px){.gallery-counter{right:16px;bottom:16px;padding:10px 16px;font-size:10px;}}

/* MAGNETIC BUTTONS need a transition for smooth pulls */
.btn-primary,.btn-link,.magnetic{transition:transform .25s cubic-bezier(.2,.7,.2,1), background .2s ease, color .2s ease, gap .2s ease, border-color .2s ease;}

/* ANIM */
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.fade-in{animation:fadeUp .7s ease both;}
