@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600&family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&family=Manrope:wght@400;500;600;700;800&display=swap');
    :root {
      --base:#0b141e; --panel:#152330; --line:#344554;
      --text:#f0f5f6; --muted:#b7c8d1; --cyan:#8bd7e5; --amber:#efbb77;
    }
    * { box-sizing:border-box }
    html { scroll-behavior:smooth }
    body { margin:0; background:var(--base); color:var(--text); font:400 16px/1.65 'DM Sans',Arial,sans-serif }
    a { color:inherit }
    a:focus-visible { outline:3px solid var(--cyan); outline-offset:4px }
    .wrap { width:min(1180px,calc(100% - 48px)); margin:auto }
    .eyebrow,.number,.tag,.strip,.credit-box h3 {
      font-family:'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.11em
    }
    .eyebrow { color:var(--cyan); font-size:.875rem; font-weight:600 }
    h1,h2,h3,p { margin-top:0 }
    h1,h2,h3 { font-family:Manrope,Arial,sans-serif; line-height:1.14; letter-spacing:-.045em }
    h1 { font-size:clamp(3rem,6.7vw,6.2rem); max-width:930px; margin:28px 0 }
    h2 { font-size:clamp(2.25rem,4vw,3.9rem); margin-bottom:22px; max-width:900px }
    h3 { font-size:1.55rem; margin-bottom:10px }
    .nav { background:#09121b; border-bottom:1px solid var(--line); position:relative; z-index:2 }
    .nav .wrap { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:82px }
    .brand { font:800 1.17rem Manrope,sans-serif; letter-spacing:.07em; text-decoration:none; white-space:nowrap }
    .brand span { color:var(--cyan) }
    .nav-links { display:flex; gap:32px; align-items:center }
    .nav-links a { text-decoration:none; font-size:.9rem; font-weight:600 }
    .nav-links a:hover,.footer a:hover { color:var(--cyan) }
    .nav-links .contact-link { border:1px solid #6b8799; padding:9px 16px }
    .hero {
      overflow:hidden; border-bottom:1px solid var(--line);
      background-image:linear-gradient(90deg,#09131e 0%,rgba(9,19,30,.97) 38%,rgba(9,19,30,.76) 68%,rgba(9,19,30,.58) 100%),url('border-security-edit-suite.webp');
      background-size:cover; background-position:center,center 52%;
    }
    .hero-inner { padding:100px 0 112px; position:relative }
    .hero h1,.hero-text,.hero-actions,.hero .eyebrow { position:relative; z-index:1 }
    .hero h1 em { font-style:normal; color:var(--amber) }
    .hero-text { max-width:660px; font-size:clamp(1.1rem,1.6vw,1.35rem); line-height:1.55; color:#d7e1e6; margin-bottom:35px }
    .hero-actions { display:flex; gap:14px; flex-wrap:wrap }
    .button {
      display:inline-flex; align-items:center; justify-content:center; min-height:48px;
      padding:12px 20px; text-decoration:none; font-weight:700; font-size:.9rem;
      background:var(--amber); color:#101820; border:1px solid var(--amber);
      transition:background .2s,color .2s,border-color .2s
    }
    .button.secondary { background:rgba(10,22,32,.65); color:var(--text); border-color:#91a9b6 }
    .button:hover { background:#ffe0a8; border-color:#ffe0a8; color:#101820 }
    .hero-mark { display:none }
    .strip { background:#122230; color:var(--muted); border-bottom:1px solid var(--line) }
    .strip .wrap { display:flex; gap:14px 38px; flex-wrap:wrap; align-items:center; justify-content:center; padding:24px 0; font-size:.875rem; font-weight:500 }
    .strip span { display:inline-flex; align-items:center; gap:12px }
    .strip span::before { content:""; width:1px; height:12px; background:#587080; flex-shrink:0 }
    .section { padding:92px 0 }
    .section-intro { max-width:710px; color:var(--muted); font-size:1.13rem; margin-bottom:40px }
    .projects { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px }
    .project {
      background:var(--panel); border:1px solid var(--line);
      display:flex; flex-direction:column; min-width:0; overflow:hidden;
      box-shadow:0 14px 35px rgba(0,0,0,.11)
    }
    .project-visual { aspect-ratio:16/9; background:#21313d; display:flex; align-items:end; position:relative; overflow:hidden }
    .project-visual.recipe { background:#2b0706 }
    .project-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .4s }
    .project:hover img { transform:scale(1.035) }
    .project-visual:after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 56%,rgba(6,14,22,.82)) }
    .visual-fallback { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--amber); font:800 clamp(2rem,4vw,4rem) Manrope,sans-serif; letter-spacing:-.07em; text-align:center; padding:25px }
    .project-visual .tag { position:relative; z-index:1; color:#f4f8f8; margin:18px 22px; font-size:.78rem; font-weight:600; text-shadow:0 1px 8px #000 }
    .project-body { padding:26px 28px 30px; flex:1; display:flex; flex-direction:column; border-top:1px solid #ffffff13 }
    .project-body p { color:var(--muted); margin-bottom:24px }
    .project-body a { margin-top:auto; font-size:.91rem; font-weight:700; text-decoration:none; border-bottom:1px solid var(--cyan); color:var(--cyan); align-self:flex-start; padding-bottom:3px }
    .project-body a:hover { color:#d7f7ff }
    .services { background:#101e2b; border-block:1px solid var(--line) }
    .services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:38px }
    .service { border-top:2px solid #5daec1; padding:23px 4px 0 0 }
    .service:nth-child(2) { border-color:#9b9acb }
    .service:nth-child(3) { border-color:var(--amber) }
    .service .number { font-size:.8rem; color:var(--cyan); font-weight:600; margin-bottom:18px }
    .service:nth-child(2) .number { color:#bdbde7 }
    .service:nth-child(3) .number { color:var(--amber) }
    .service p { color:var(--muted) }
    .about-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:8vw; align-items:start }
    .about-grid p { font-size:1.08rem; color:var(--muted) }
    .credit-box { background:#172633; border:1px solid var(--line); padding:30px; box-shadow:inset 3px 0 0 #6caabd }
    .credit-box h3 { font-size:.9rem; letter-spacing:.09em; color:var(--cyan); margin-bottom:24px }
    .credit-box ul { margin:0; padding:0; list-style:none }
    .credit-box li { padding:13px 0; border-top:1px solid var(--line); font-size:.95rem }
    .credit-box li strong { display:block; color:var(--text) }
    .credit-box li span { color:var(--muted) }
    .contact { background:linear-gradient(115deg,#193241,#122330 72%); border-top:1px solid var(--line); padding:85px 0 }
    .contact p { color:#d1dfe3; font-size:1.1rem }
    .contact h2 { max-width:850px }
    .contact .email { font-family:Manrope,sans-serif; font-size:clamp(1.3rem,3vw,2.3rem); font-weight:700; text-decoration:none; border-bottom:2px solid var(--amber); overflow-wrap:anywhere }
    .contact .email:hover { color:var(--amber) }
    .footer { background:#09121b; color:#b5c5cc; padding:23px 0 }
    .footer .wrap { display:flex; justify-content:space-between; gap:15px; flex-wrap:wrap; font-size:.84rem }
    .footer a { text-decoration:none }
    @media(max-width:700px) {
      .wrap { width:min(100% - 34px,1180px) }
      .nav .wrap { min-height:72px }
      .nav-links { display:none }
      .mobile-nav { display:block }
      .hero { background-image:linear-gradient(90deg,rgba(9,19,30,.96),rgba(9,19,30,.82)),url('border-security-edit-suite.webp'); background-position:center,62% center }
      .hero-inner { padding:66px 0 82px }
      .hero h1 { margin:20px 0 }
      .section { padding:68px 0 }
      .projects,.services-grid,.about-grid { grid-template-columns:1fr }
      .services-grid { gap:22px }
      .strip .wrap { gap:10px 20px }
      .credit-box { padding:23px }
    }
    @media(prefers-reduced-motion:reduce) {
      html { scroll-behavior:auto }
      .project-visual img,.button { transition:none }
    }

/* About: the on-location counterpart to the edit-suite homepage */
.about-hero { position:relative; min-height:clamp(560px,52vw,690px); display:flex; align-items:flex-end; overflow:hidden; background:#11191f }
.about-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 44%; filter:contrast(1.05) }
.about-hero:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,16,23,.84) 0%,rgba(8,16,23,.38) 65%,rgba(8,16,23,.18)),linear-gradient(0deg,rgba(8,16,23,.88),transparent 75%) }
.about-hero .wrap { position:relative; z-index:1; padding:130px 0 78px }
.about-hero h1 { max-width:900px; font-size:clamp(3rem,6vw,5.7rem); margin:22px 0 }
.about-hero h1 em { font-style:normal; color:var(--amber) }
.about-hero p { max-width:670px; font-size:1.17rem; color:#ebf0f0; line-height:1.55; margin:0 }
.about-caption { position:absolute; z-index:1; right:max(24px,calc((100vw - 1180px)/2)); bottom:25px; font:500 .75rem/1.4 'IBM Plex Mono',monospace; letter-spacing:.09em; text-transform:uppercase; color:#e3e9e9; text-shadow:0 1px 6px #000 }
.about-story { background:#111e29; border-top:1px solid var(--line) }
.about-story-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:8vw; align-items:start }
.about-story h2 { max-width:430px }
.about-portrait { margin:34px 0 0; max-width:440px }
.about-portrait a { display:block; aspect-ratio:.78; border:1px solid var(--line); overflow:hidden }
.about-portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 72% }
.about-portrait figcaption { margin-top:10px; color:var(--muted); font:500 .78rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.06em; text-transform:uppercase }
.about-story-copy p { font-size:1.14rem; color:#d2dfe3; line-height:1.7 }
.about-story-copy p:last-child { margin-bottom:0 }
.about-rule { height:1px; background:var(--line); margin:40px 0 }
.about-story-copy .detail { display:flex; align-items:flex-end; gap:8px; margin:0; color:var(--amber); text-transform:none }
.signature-mark { display:block; width:min(290px,70vw); aspect-ratio:2045/769; background:var(--amber); -webkit-mask:url('garth-handwritten-signoff.png') center / contain no-repeat; mask:url('garth-handwritten-signoff.png') center / contain no-repeat }
.signature-year { margin-bottom:14px; font:500 .85rem/1.3 'IBM Plex Mono',monospace; letter-spacing:.05em }
.about-work { background:#0b141e }
.about-work h2 { max-width:790px }
.about-work-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:36px }
.about-work article { border-top:2px solid var(--amber); padding:23px 0 0 }
.about-work article:nth-child(2) { border-color:var(--cyan) }
.about-work article p { color:var(--muted); font-size:1.05rem; max-width:500px }
.about-work article a { color:var(--cyan); text-decoration:none; border-bottom:1px solid var(--cyan); font-weight:700 }
.about-work article a:hover { color:#d7f7ff }
.home-about-link { display:inline-block; color:var(--cyan); text-decoration:none; border-bottom:1px solid var(--cyan); font-weight:700; margin-top:5px }
.home-about-link:hover { color:#d7f7ff }
@media(max-width:700px) {
  .about-hero { min-height:620px }
  .about-hero img { object-position:55% center }
  .about-hero:after { background:linear-gradient(0deg,rgba(8,16,23,.97),rgba(8,16,23,.25) 90%),linear-gradient(90deg,rgba(8,16,23,.35),transparent) }
  .about-hero .wrap { padding:150px 0 88px }
  .about-caption { left:17px; right:auto; bottom:20px; font-size:.68rem }
  .about-story-grid,.about-work-grid { grid-template-columns:1fr }
  .about-story-grid { gap:12px }
  .about-work-grid { gap:34px }
}

/* The Assembly: preserve the room's spontaneity through the edit */
.assembly-hero { min-height:clamp(530px,55vw,700px); position:relative; display:flex; align-items:flex-end; overflow:hidden; background:#242d31 }
.assembly-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 47% }
.assembly-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,17,25,.92),rgba(8,17,25,.48) 58%,rgba(8,17,25,.08)),linear-gradient(0deg,rgba(8,17,25,.82),transparent 66%) }
.assembly-hero .wrap { position:relative; z-index:1; padding:100px 0 78px }
.assembly-hero h1 { font-size:clamp(3.4rem,8vw,7rem); max-width:850px; margin:20px 0 }
.assembly-hero h1 em { color:var(--amber); font-style:normal }
.assembly-hero .wrap>p:last-child { max-width:720px; font-size:clamp(1.1rem,2vw,1.4rem); color:#eef2f2; margin:0 }
.assembly-meta { border-block:1px solid var(--line); background:#142330; color:#d7e3e7 }
.assembly-meta .wrap { display:flex; flex-wrap:wrap; gap:12px 42px; padding:21px 0; font:600 .8rem/1.5 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em }
.assembly-story { background:#101d28 }
.assembly-story-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw }
.assembly-story h2 { max-width:520px }
.assembly-prose p,.assembly-process-grid>div>p:not(.eyebrow,.assembly-image-note) { font-size:1.16rem; line-height:1.75; color:#d7e2e5 }
.assembly-prose p:last-child { margin-bottom:0 }
.assembly-process { background:#0b141e; border-block:1px solid var(--line) }
.assembly-process-copy { max-width:900px }
.assembly-process-copy h2,.assembly-room h2 { max-width:760px }
.assembly-process-copy>p:not(.eyebrow) { max-width:830px; font-size:1.16rem; line-height:1.75; color:#d7e2e5 }
.assembly-duration { display:grid; grid-template-columns:auto 1fr auto 1fr; align-items:center; gap:12px 18px; margin-top:34px; padding:22px 25px; border:1px solid #425661; background:linear-gradient(100deg,#182a36,#12222d); color:#d7e2e5 }
.assembly-duration span { color:var(--cyan); font:600 .75rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase }
.assembly-duration strong { font:700 clamp(1.4rem,2.6vw,2.2rem)/1.1 Manrope,Arial,sans-serif; color:#f0f4f3 }
.assembly-duration i { height:1px; background:linear-gradient(90deg,var(--cyan),var(--amber)); grid-column:1/-1 }
.assembly-conversation-art { margin:32px 0 0; max-width:1120px }
.assembly-conversation-art img { display:block; width:100%; border:1px solid #425661 }
.assembly-conversation-art figcaption { color:var(--muted); margin-top:12px; font:500 .78rem/1.5 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.06em }
.assembly-image-note { border-left:2px solid var(--amber); padding-left:14px; color:var(--muted); font-size:.92rem; line-height:1.6 }
.assembly-room { background:#111f2b }
.assembly-room-intro { max-width:780px; color:var(--muted); font-size:1.08rem; line-height:1.7 }
.assembly-photo-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:36px }
.assembly-photo-grid figure { margin:0 }
.assembly-photo-placeholder { min-height:340px; padding:25px; display:flex; flex-direction:column; justify-content:space-between; border:1px solid #425661; background:radial-gradient(ellipse at 76% 35%,rgba(99,174,187,.2),transparent 44%),linear-gradient(145deg,#26343a,#111d26 70%); color:#eef3f2 }
.assembly-photo-placeholder span { color:var(--cyan); font:600 .75rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.1em; text-transform:uppercase }
.assembly-photo-placeholder strong { max-width:360px; font:700 clamp(2rem,4vw,3.6rem)/1.04 Manrope,Arial,sans-serif; letter-spacing:-.045em }
.assembly-photo-guest { background:radial-gradient(ellipse at 24% 55%,rgba(198,150,92,.2),transparent 48%),linear-gradient(145deg,#303039,#111d26 70%) }
.assembly-watch { background:#152633; border-top:1px solid var(--line) }
.assembly-watch p:not(.eyebrow) { color:var(--muted); font-size:1.1rem }
.assembly-back { display:inline-block; margin-left:24px; color:var(--cyan); font-weight:700; text-decoration:none; border-bottom:1px solid var(--cyan) }
.assembly-back:hover { color:#d7f7ff }
@media(max-width:700px) {
  .assembly-hero { min-height:570px }
  .assembly-hero .wrap { padding:145px 0 70px }
  .assembly-story-grid { grid-template-columns:1fr; gap:25px }
  .assembly-duration { grid-template-columns:1fr 1fr }
  .assembly-duration i { grid-row:2 }
  .assembly-back { display:block; width:max-content; margin:24px 0 0 }
}

/* History's Most Haunted: monochrome location photography */
.haunted-hero { min-height:clamp(500px,54vw,680px); position:relative; display:flex; align-items:flex-end; overflow:hidden; background:#10151a }
.haunted-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 48%; filter:grayscale(1) contrast(1.06) }
.haunted-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,14,20,.9),rgba(8,14,20,.4) 60%,rgba(8,14,20,.05)),linear-gradient(0deg,rgba(8,14,20,.86),transparent 72%) }
.haunted-hero .wrap { position:relative; z-index:1; padding:100px 0 72px }
.haunted-hero h1 { font-size:clamp(3rem,7vw,6.3rem); max-width:900px; margin:20px 0 }
.haunted-hero h1 em { color:var(--amber); font-style:normal }
.haunted-hero .wrap>p:last-child { font-size:clamp(1.1rem,2vw,1.4rem); color:#e7e8e7; margin:0 }
.haunted-meta { border-block:1px solid var(--line); background:#171d23; color:#d7dcdf }
.haunted-meta .wrap { display:flex; flex-wrap:wrap; gap:12px 38px; padding:21px 0; font:600 .8rem/1.5 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em }
.haunted-story { background:#111b24 }
.haunted-story-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw }
.haunted-story h2,.haunted-locations h2 { max-width:700px }
.haunted-copy p { color:#d5dfe1; font-size:1.15rem; line-height:1.75 }
.haunted-copy p:last-child { margin-bottom:0 }
.haunted-locations { background:#0b141e; border-block:1px solid var(--line) }
.haunted-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; margin-top:35px }
.haunted-gallery figure { margin:0; background:#141e27; border:1px solid #394650 }
.haunted-gallery img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; filter:grayscale(1) contrast(1.06) }
.haunted-gallery figcaption { padding:16px 18px 18px; color:#d8e0e2; line-height:1.5 }
.haunted-gallery figcaption span { display:block; margin-bottom:5px; color:var(--cyan); font:600 .76rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.07em; text-transform:uppercase }
.haunted-watch { background:#171d23; border-top:1px solid var(--line) }
.haunted-back { display:inline-block; margin-left:24px; color:var(--cyan); font-weight:700; text-decoration:none; border-bottom:1px solid var(--cyan) }
.haunted-back:hover { color:#d7f7ff }
@media(max-width:700px) {
  .haunted-hero { min-height:560px }
  .haunted-hero .wrap { padding:140px 0 65px }
  .haunted-story-grid,.haunted-gallery { grid-template-columns:1fr; gap:24px }
  .haunted-back { display:block; width:max-content; margin:24px 0 0 }
}

/* Recipes for Connection: warm production imagery inside the edit-suite palette */
.recipe-hero { min-height:clamp(530px,55vw,700px); position:relative; display:flex; align-items:flex-end; overflow:hidden; background:#242d31 }
.recipe-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 44% }
.recipe-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,17,25,.90),rgba(8,17,25,.5) 55%,rgba(8,17,25,.08)),linear-gradient(0deg,rgba(8,17,25,.75),transparent 65%) }
.recipe-hero .wrap { position:relative; z-index:1; padding:100px 0 78px }
.recipe-hero h1 { font-size:clamp(3.2rem,7vw,6.7rem); max-width:760px; margin:20px 0 }
.recipe-hero h1 em { font-style:normal; color:var(--amber) }
.recipe-hero .wrap>p:last-child { font-size:clamp(1.1rem,2vw,1.4rem); color:#eef2f2; margin:0 }
.recipe-meta { border-block:1px solid var(--line); background:#142330; color:#d7e3e7 }
.recipe-meta .wrap { display:flex; flex-wrap:wrap; gap:12px 42px; padding:21px 0; font:600 .8rem/1.5 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em }
.recipe-story { background:#101d28 }
.recipe-story-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw }
.recipe-prose p { font-size:1.18rem; line-height:1.75; color:#d7e2e5 }
.recipe-prose p:last-child { margin-bottom:0 }
.recipe-process { background:#0b141e; border-block:1px solid var(--line) }
.recipe-image-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:4vw; align-items:start }
.recipe-image-grid figure { margin:0 }
.recipe-image-grid figure img { width:100%; display:block; aspect-ratio:4/3; object-fit:cover; border:1px solid var(--line) }
.recipe-image-grid figcaption { color:var(--muted); margin-top:12px; font:500 .78rem/1.5 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.06em }
.recipe-side { border-top:2px solid var(--amber); padding-top:25px }
.recipe-side h2 { font-size:clamp(2rem,3vw,3rem) }
.recipe-side p:not(.eyebrow) { color:var(--muted); font-size:1.08rem }
.recipe-side img { width:100%; display:block; max-height:350px; object-fit:cover; object-position:center 47%; margin-top:35px }
.recipe-watch { background:#152633 }
.recipe-watch p:not(.eyebrow) { color:var(--muted); font-size:1.1rem }
.recipe-back { display:inline-block; margin-left:24px; color:var(--cyan); font-weight:700; text-decoration:none; border-bottom:1px solid var(--cyan) }
@media(max-width:700px) {
  .recipe-hero { min-height:590px }
  .recipe-hero>img { object-position:58% center }
  .recipe-hero:after { background:linear-gradient(0deg,rgba(8,17,25,.96),rgba(8,17,25,.15) 95%) }
  .recipe-hero .wrap { padding:155px 0 60px }
  .recipe-story-grid,.recipe-image-grid { grid-template-columns:1fr; gap:30px }
  .recipe-back { display:block; width:max-content; margin:24px 0 0 }
}

/* Border Security project */
.border-hero { min-height:clamp(540px,55vw,720px); position:relative; display:flex; align-items:flex-end; overflow:hidden; background:#0b141e }
.border-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center }
.border-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,14,23,.93),rgba(6,14,23,.55) 48%,rgba(6,14,23,.12)),linear-gradient(0deg,rgba(6,14,23,.72),transparent 65%) }
.border-hero .wrap { position:relative; z-index:1; padding:110px 0 80px }
.border-hero h1 { font-size:clamp(3rem,6.4vw,6rem); max-width:1050px; margin:20px 0 }
.border-hero h1 em { font-style:normal; color:var(--amber) }
.border-hero .wrap>p:last-child { font-size:clamp(1.1rem,2vw,1.4rem); color:#e7f0f4; margin:0 }
.border-meta { border-block:1px solid var(--line); background:#142330; color:#d7e3e7 }
.border-meta .wrap { display:flex; flex-wrap:wrap; gap:12px 42px; padding:21px 0; font:600 .8rem/1.5 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em }
.border-story { background:#101d28 }
.border-story-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw }
.border-prose p { font-size:1.18rem; line-height:1.75; color:#d7e2e5 }
.border-prose .border-credits, .assembly-prose .assembly-credits, .recipe-prose .recipe-credits, .pioneer-prose .pioneer-platform-credit, .haunted-copy .haunted-credits, .timber-prose .timber-network-credit { color:var(--amber); font-size:.9rem; font-weight:600; line-height:1.6; letter-spacing:.04em }
.border-process { background:#0b141e; border-block:1px solid var(--line) }
.border-process-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:5vw; align-items:center }
.border-process-grid>div { border-top:2px solid var(--cyan); padding-top:24px }
.border-process-grid p:not(.eyebrow) { color:var(--muted); font-size:1.08rem }
.border-process-grid figure { margin:0 }
.border-process-grid img { display:block; width:100%; aspect-ratio:3/2; object-fit:cover; border:1px solid var(--line) }
.border-process-grid figcaption { margin-top:11px; color:var(--muted); font:500 .78rem/1.5 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:.05em }
.border-process-grid .border-image-note { font-size:.78rem !important; font-family:'IBM Plex Mono',monospace; margin-top:28px }
.border-watch { background:#152633 }
.border-back { display:inline-block; margin-left:24px; color:var(--cyan); font-weight:700; text-decoration:none; border-bottom:1px solid var(--cyan) }
@media(max-width:700px) {
  .border-hero { min-height:620px }
  .border-hero>img { object-position:63% center }
  .border-hero:after { background:linear-gradient(0deg,rgba(6,14,23,.97),rgba(6,14,23,.28) 95%) }
  .border-hero .wrap { padding:150px 0 62px }
  .border-story-grid,.border-process-grid { grid-template-columns:1fr; gap:30px }
  .border-back { display:block; width:max-content; margin:24px 0 0 }
}

/* Timber Kings project */
.timber-intro { background:radial-gradient(circle at 80% 20%,#29404b 0%,#101d28 55%,#0b141e); border-bottom:1px solid var(--line) }
.timber-intro .wrap { padding:90px 0 56px }
.timber-intro h1 { font-size:clamp(3.8rem,8vw,7.5rem); margin:20px 0 24px }
.timber-intro h1 em { font-style:normal; color:var(--amber) }
.timber-lede { color:#e0e9eb; font-size:clamp(1.2rem,2.2vw,1.65rem); max-width:780px; line-height:1.45 }
.timber-credits { display:flex; flex-wrap:wrap; gap:12px 35px; border-top:1px solid var(--line); padding-top:25px; margin-top:55px; color:var(--muted); font:600 .8rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.06em; text-transform:uppercase }
.timber-poster { background:#0b141e; padding:32px 0 26px; border-bottom:1px solid var(--line) }
.timber-poster img { width:100%; height:auto; display:block; border:1px solid var(--line) }
.timber-poster-caption { color:var(--muted); margin:10px 0 0; font:500 .75rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.06em; text-transform:uppercase }
.timber-story { background:#101d28 }
.timber-story-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:8vw }
.timber-prose p { font-size:1.18rem; line-height:1.75; color:#d7e2e5 }
.timber-image-story { background:#0b141e; border-top:1px solid var(--line) }
.timber-image-story h2 { max-width:880px; margin:18px 0 34px }
.timber-image-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px }
.timber-shot { margin:0; min-width:0; background:#152330; border:1px solid var(--line); overflow:hidden }
.timber-shot-build { grid-column:1 / -1 }
.timber-shot img { display:block; width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover }
.timber-shot-build img { aspect-ratio:16 / 8 }
.timber-shot figcaption { padding:17px 20px 20px; color:#e0e9eb; font-size:.96rem }
.timber-shot figcaption span { display:block; margin-bottom:6px; color:var(--cyan); font:600 .78rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase }
.timber-places { background:#152633; border-block:1px solid var(--line) }
.timber-places h2 { max-width:790px }
.timber-places-grid { display:grid; grid-template-columns:1fr 1fr; gap:5vw; margin-top:32px }
.timber-places-grid p { color:#d3dfe3; font-size:1.1rem; line-height:1.7; border-top:2px solid var(--amber); padding-top:22px }
.timber-places-grid p:nth-child(2) { border-color:var(--cyan) }
.timber-watch { background:#0b141e }
.timber-back { display:inline-block; margin-left:24px; color:var(--cyan); font-weight:700; text-decoration:none; border-bottom:1px solid var(--cyan) }
@media(max-width:700px) {
  .timber-intro .wrap { padding:68px 0 42px }
  .timber-credits { margin-top:38px }
  .timber-poster { padding:18px 0 }
  .timber-story-grid,.timber-places-grid,.timber-image-grid { grid-template-columns:1fr; gap:26px }
  .timber-shot-build { grid-column:auto }
  .timber-shot-build img { aspect-ratio:4 / 3 }
  .timber-back { display:block; width:max-content; margin:24px 0 0 }
}

/* Pioneer Log Homes: intimate field-work paired with the edit-suite palette */
.pioneer-intro { background:radial-gradient(ellipse at 82% 8%,#233a43 0,transparent 42%),linear-gradient(120deg,#0b141e,#12232e 65%,#182c34); border-bottom:1px solid var(--line) }
.pioneer-intro .wrap { padding:82px 0 64px }
.pioneer-intro h1 { max-width:950px; margin:22px 0 20px }
.pioneer-intro h1 em { color:var(--amber); font-style:normal }
.pioneer-lede { max-width:740px; color:#d8e3e7; font-size:clamp(1.15rem,1.8vw,1.4rem); line-height:1.55; margin-bottom:34px }
.pioneer-credits { display:flex; flex-wrap:wrap; gap:12px 35px; border-top:1px solid var(--line); padding-top:22px; color:var(--muted); font:600 .8rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.06em; text-transform:uppercase }
.pioneer-opening { background:#0b141e; padding:28px 0 24px }
.pioneer-image-placeholder { --glow:rgba(103,160,164,.18); min-height:340px; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; margin:0; padding:24px; border:1px solid #425661; background:radial-gradient(ellipse at 72% 28%,var(--glow),transparent 45%),linear-gradient(145deg,#26343a,#111d26 70%); color:#eef3f2 }
.pioneer-image-placeholder:before { content:""; position:absolute; inset:14px; border:1px solid rgba(214,231,229,.14); pointer-events:none }
.pioneer-image-placeholder:after { content:""; position:absolute; width:42%; aspect-ratio:1; border:1px solid rgba(139,215,229,.18); border-radius:50%; right:12%; top:10%; box-shadow:0 0 0 34px rgba(139,215,229,.025),0 0 0 68px rgba(139,215,229,.02); pointer-events:none }
.pioneer-image-hero { min-height:clamp(370px,47vw,590px); background:radial-gradient(ellipse at 72% 65%,rgba(168,145,103,.24),transparent 43%),linear-gradient(180deg,#21343b,#14232c 67%,#101a22) }
.pioneer-frame-index,.pioneer-frame-note,.pioneer-image-placeholder>div,.pioneer-image-placeholder figcaption { position:relative; z-index:1 }
.pioneer-frame-index,.pioneer-frame-note,.pioneer-placeholder-label { color:var(--cyan); font:600 .75rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.1em; text-transform:uppercase }
.pioneer-image-placeholder>div { align-self:flex-start; margin:auto 0 }
.pioneer-image-placeholder>div p { font:700 clamp(2rem,4.2vw,4.4rem)/1.02 Manrope,Arial,sans-serif; letter-spacing:-.055em; margin:12px 0 0 }
.pioneer-frame-note { color:#d3dfe2; letter-spacing:.04em }
.pioneer-story { background:#101d28 }
.pioneer-story-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:8vw; align-items:start }
.pioneer-story h2 { max-width:500px }
.pioneer-prose p { color:#d7e2e5; font-size:1.16rem; line-height:1.75 }
.pioneer-prose p:last-child { margin-bottom:0 }
.pioneer-heritage { background:#0b141e; border-block:1px solid var(--line) }
.pioneer-heritage h2,.pioneer-image-story h2 { max-width:850px; margin:17px 0 20px }
.pioneer-section-intro { max-width:760px; color:var(--muted); font-size:1.08rem; margin-bottom:38px }
.pioneer-generation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px }
.pioneer-generation-grid article { border-top:2px solid var(--amber); padding:22px 6px 0 0 }
.pioneer-generation-grid article:nth-child(2) { border-color:var(--cyan) }
.pioneer-generation-grid article:nth-child(3) { border-color:#a8a7cf }
.pioneer-generation-number { color:var(--cyan); font:600 .78rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase }
.pioneer-generation-grid h3 { margin:15px 0 12px }
.pioneer-generation-grid p { color:var(--muted); line-height:1.7 }
.pioneer-image-story { background:#111f2b }
.pioneer-image-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:22px; margin-top:36px }
.pioneer-image-grid .pioneer-image-placeholder { min-height:420px }
.pioneer-image-grid figure:nth-child(2) { --glow:rgba(173,148,105,.17); min-height:360px; margin-top:60px }
.pioneer-image-grid figcaption { color:#d0dcdf; font:500 .76rem/1.55 'IBM Plex Mono',monospace; letter-spacing:.05em; text-transform:uppercase }
.pioneer-watch { background:#152633; border-top:1px solid var(--line) }
.pioneer-watch p:not(.eyebrow) { color:var(--muted); font-size:1.1rem }
.pioneer-back { display:inline-block; margin-left:24px; color:var(--cyan); font-weight:700; text-decoration:none; border-bottom:1px solid var(--cyan) }
.pioneer-back:hover { color:#d7f7ff }
@media(max-width:700px) {
  .pioneer-intro .wrap { padding:65px 0 48px }
  .pioneer-image-placeholder { min-height:300px; padding:19px }
  .pioneer-image-hero { min-height:390px }
  .pioneer-story-grid,.pioneer-generation-grid,.pioneer-image-grid { grid-template-columns:1fr; gap:27px }
  .pioneer-generation-grid { gap:15px }
  .pioneer-image-grid .pioneer-image-placeholder,.pioneer-image-grid figure:nth-child(2) { min-height:330px; margin-top:0 }
  .pioneer-back { display:block; width:max-content; margin:24px 0 0 }
}

/* Pioneer page selected production photography */
.pioneer-feature-photo { margin:0; position:relative; overflow:hidden; border:1px solid #425661; background:#101a22 }
.pioneer-feature-photo img { display:block; width:100%; height:100%; object-fit:cover }
.pioneer-feature-hero { height:clamp(370px,47vw,590px) }
.pioneer-feature-hero img { object-position:center 55% }
.pioneer-feature-photo figcaption { position:relative; z-index:1; padding:17px 20px 20px; background:#152330; color:#e0e9eb; font-size:.96rem }
.pioneer-feature-photo figcaption span { display:block; margin-bottom:5px; color:var(--cyan); font:600 .78rem/1.5 'IBM Plex Mono',monospace; letter-spacing:.08em; text-transform:uppercase }
.pioneer-image-grid .pioneer-feature-photo { min-height:420px }
.pioneer-image-grid .pioneer-feature-photo img { height:360px }
.pioneer-image-grid .pioneer-feature-photo:nth-child(2) { margin-top:60px }
@media(max-width:700px) {
  .pioneer-feature-hero { height:390px }
  .pioneer-image-grid .pioneer-feature-photo,.pioneer-image-grid .pioneer-feature-photo:nth-child(2) { min-height:0; margin-top:0 }
  .pioneer-image-grid .pioneer-feature-photo img { height:300px }
}

/* Compact navigation for phones */
.mobile-nav { display:none; margin-left:auto }
.mobile-nav summary { display:flex; align-items:center; gap:10px; min-height:42px; padding:8px 13px; border:1px solid #6b8799; color:var(--text); font:600 .88rem/1 'DM Sans',Arial,sans-serif; cursor:pointer; list-style:none }
.mobile-nav summary::-webkit-details-marker { display:none }
.mobile-nav summary:before { content:""; display:block; width:17px; height:13px; border-block:2px solid var(--cyan); background:linear-gradient(var(--cyan),var(--cyan)) center / 17px 2px no-repeat }
.mobile-nav[open] summary { border-color:var(--cyan); color:var(--cyan) }
.mobile-nav summary:focus-visible { outline:3px solid var(--cyan); outline-offset:4px }
.mobile-nav nav { position:absolute; top:100%; right:0; width:min(100%,350px); padding:13px 17px 17px; background:#0d1a25; border:1px solid var(--line); box-shadow:0 18px 28px #0008; display:flex; flex-direction:column; z-index:5 }
.mobile-nav nav a { display:block; padding:13px 9px; color:var(--text); font-weight:600; text-decoration:none; border-bottom:1px solid var(--line) }
.mobile-nav nav a:last-child { border-bottom:0 }
.mobile-nav nav a:hover,.mobile-nav nav a[aria-current="page"] { color:var(--cyan) }
@media(max-width:700px) { .nav .wrap { position:relative } .mobile-nav { display:block } }

.haunted-salem-crop { aspect-ratio:4/3; overflow:hidden }
.haunted-salem-crop img { transform:scale(1.5); transform-origin:68% 29% }

.client-page { min-height:100vh; display:flex; flex-direction:column }
.client-main { flex:1; display:flex; align-items:center; padding:90px 0 110px }
.client-layout { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:clamp(40px,8vw,110px) }
.client-intro h1 { font-size:clamp(3rem,5.5vw,5.3rem); margin:22px 0 28px }
.client-intro h1 em { font-style:normal; color:var(--amber) }
.client-intro p { max-width:530px; font-size:1.15rem; color:var(--muted) }
.client-form { padding:36px; background:var(--panel); border:1px solid var(--line); display:flex; flex-direction:column; gap:12px }
.client-form label { font-weight:600; font-size:1rem }
.client-form input { width:100%; min-height:50px; margin-bottom:12px; padding:12px 14px; border:1px solid #6b8799; border-radius:0; background:var(--base); color:var(--text); font:inherit }
.client-form input:focus-visible,.client-form button:focus-visible { outline:3px solid var(--cyan); outline-offset:3px }
.client-form button { font-family:inherit; cursor:pointer; margin-top:8px; align-self:flex-start; min-width:130px }
@media(max-width:700px) { .client-main { padding:58px 0 70px } .client-layout { grid-template-columns:1fr; gap:26px } .client-form { padding:26px } }

/* Professional profiles across the site */
.site-social { background:#09121b; border-top:1px solid var(--line); }
.site-social .wrap { display:flex; align-items:center; justify-content:center; gap:18px; padding:16px 0 4px; }
.site-social a { display:inline-flex; min-width:48px; min-height:44px; align-items:center; justify-content:center; border-radius:4px; }
.site-social a:hover { background:rgba(255,255,255,.09); }
.site-social a:focus-visible { outline:2px solid var(--amber); outline-offset:3px; }
.site-social img { display:block; object-fit:contain; }
