/* edit one — styles.css */
/* Extracted from design-mockup.html */

  :root{
    --paper: #F2ECE0;
    --paper-2: #E9E2D2;
    --ink: #0B0B0A;
    --ink-soft: #2A2824;
    --muted: #6E665A;
    --line: rgba(11,11,10,.14);
    --accent: #B5522C;
    --serif: "Instrument Serif", "Cormorant Garamond", Georgia, serif;
    --sans: "Geist", ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica, Arial, sans-serif;
    --mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    --ease: cubic-bezier(.2,.8,.2,1);
    --ease-emph: cubic-bezier(.76,0,.24,1);
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
  html{scroll-behavior:smooth}
  body{overflow-x:hidden;cursor:none}
  body.no-cursor{cursor:auto}
  a{color:inherit;text-decoration:none}
  img{display:block;max-width:100%}
  button{font:inherit;color:inherit;background:none;border:0;cursor:none}
  ::selection{background:var(--ink);color:var(--paper)}

  /* Grain */
  .grain{
    position:fixed;inset:0;pointer-events:none;z-index:80;mix-blend-mode:multiply;opacity:.07;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .7 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  }
  body.no-grain .grain{display:none}

  /* Custom cursor */
  .cursor{position:fixed;top:0;left:0;width:10px;height:10px;border-radius:50%;background:var(--accent);pointer-events:none;z-index:100;transform:translate(-50%,-50%);transition:width .15s var(--ease),height .15s var(--ease),background .15s var(--ease),border-color .15s var(--ease),opacity .2s}
  .cursor.ring{width:38px;height:38px;background:transparent;border:1px solid var(--accent);mix-blend-mode:normal}
  .cursor.hover{width:56px;height:56px;background:var(--accent);mix-blend-mode:normal;opacity:.85}
  body.no-cursor .cursor{display:none}

  /* Nav */
  .nav{position:fixed;top:0;left:0;right:0;z-index:60;padding:22px 36px;display:flex;align-items:center;justify-content:space-between;color:var(--paper);transition:color .4s var(--ease)}
  .nav.light{color:var(--ink)}
  .nav .mark{display:flex;align-items:center;gap:10px}
  .nav .mark img{display:block;width:auto}
  /* Wordmark only - no monogram beside it */
  .nav .mark .mark-word{height:22px}
  /* Cream over video, charcoal once scrolled past (.nav.light) */
  .nav .mark .mark-charcoal{display:none}
  .nav.light .mark .mark-cream{display:none}
  .nav.light .mark .mark-charcoal{display:block}
  @keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
  .nav ul{list-style:none;display:flex;gap:34px;margin:0;padding:0;font-size:13px;letter-spacing:.02em;font-weight:400}
  .nav ul a{position:relative;padding-bottom:2px}
  .nav ul a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform-origin:left;transform:scaleX(0);transition:transform .5s var(--ease)}
  .nav ul a:hover::after{transform:scaleX(1)}
  .nav .time{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.8}

  /* Hero - full-bleed landscape video with cream overlay + text on top */
  .hero{min-height:100vh;position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:0;overflow:hidden;background:#14120E;color:var(--paper)}
  .hero .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;animation:heroZoom 25s ease-in-out infinite alternate;background:#14120E url("assets/hero/edit-one-hero-poster.jpg") center/cover no-repeat}
  .hero img.hero-video{transform:scale(1.02)}
  @keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.04)}}
  /* Video plays completely clear - no wash */
  .hero .hero-overlay{display:none}
  .hero .grain-hero{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.08;mix-blend-mode:overlay;background-image:
    radial-gradient(circle at 20% 30%, rgba(242,236,224,.3), transparent 45%),
    radial-gradient(circle at 80% 70%, rgba(233,226,210,.22), transparent 50%)}
  .hero-inner{position:relative;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;flex:1;padding:140px 48px 72px;gap:0}
  /* "Now playing" badge sits top-left on the video, editorial mono caps.
     Text-shadow ensures legibility against any frame of the clip. */
  /* Now-playing badge overlays the top-left of the video column */
  .hero .now-playing{position:absolute;top:88px;left:24px;z-index:4;display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--paper);text-shadow:0 1px 10px rgba(11,11,10,.6);opacity:0;animation:fadeUp .9s var(--ease) forwards .6s;max-width:calc(100% - 48px)}
  .hero .now-playing .dot{width:8px;height:8px;border-radius:50%;background:#E74C3C;box-shadow:0 0 12px rgba(231,76,60,.6);animation:recPulse 1.6s infinite ease-in-out;flex-shrink:0}
  @media (max-width:900px){.hero .now-playing{top:16px;left:16px;font-size:10px;letter-spacing:.22em}}
  @keyframes recPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}
  .hero h1{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(56px,8vw,168px);line-height:.95;letter-spacing:-.025em;margin:0 0 36px;color:var(--paper);max-width:14ch}
  .hero h1 em{font-style:italic;color:var(--accent)}
  .hero .sub{max-width:600px;font-size:17px;line-height:1.55;color:rgba(242,236,224,.82);margin:0 0 40px;opacity:0;transform:translateY(18px);animation:fadeUp 1s var(--ease) forwards .95s}
  .hero .cta-row{display:flex;align-items:center;gap:32px;flex-wrap:wrap;opacity:0;transform:translateY(18px);animation:fadeUp 1s var(--ease) forwards 1.1s}
  .hero .cta-btn{display:inline-flex;align-items:center;gap:14px;background:var(--paper);color:var(--ink);padding:22px 32px;font-family:var(--sans);font-weight:500;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--paper);transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease)}
  .hero .cta-btn:hover{background:transparent;color:var(--paper);transform:translateX(4px)}
  .hero .cta-btn .arr{transition:transform .4s var(--ease)}
  .hero .cta-btn:hover .arr{transform:translateX(6px)}
  .hero .cta-note{font-family:var(--sans);font-size:13px;color:rgba(242,236,224,.6);letter-spacing:.01em}
  .hero .audio-btn{position:absolute;bottom:24px;left:48px;top:auto;right:auto;z-index:70;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:50%;border:0;background:rgba(11,11,10,.3);color:rgba(242,236,224,.8);cursor:none;backdrop-filter:blur(6px);transition:color .3s var(--ease),background .3s var(--ease)}
  .hero .audio-btn:hover{color:var(--paper);background:rgba(11,11,10,.4)}
  .hero .audio-btn svg{width:16px;height:16px;display:block}
  .hero .scroll-cue{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:4;font-family:var(--mono);font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--paper);display:flex;flex-direction:column;align-items:center;gap:10px;animation:scrollPulse 2.4s infinite ease-in-out}
  .hero .scroll-cue .bar{width:1px;height:28px;background:currentColor;opacity:.8}
  @keyframes scrollPulse{0%,100%{opacity:.4;transform:translate(-50%,0)}50%{opacity:1;transform:translate(-50%,4px)}}
  .hero .kicker{display:none}
  .hero .kicker span::before{content:"— ";color:var(--accent)}
  .hero h1{font-family:var(--serif);font-weight:400;font-style:italic;font-size:clamp(64px,8vw,220px);line-height:.95;letter-spacing:-.03em;margin:0;color:#fff;text-shadow:0 2px 24px rgba(11,11,10,.35)}
  .hero .sub,.hero .cta-note{text-shadow:0 1px 12px rgba(11,11,10,.45)}
  .hero h1 .line{display:block;overflow:hidden}
  .hero h1 .inner{display:inline-block;transform:translateY(110%);animation:riseIn 1.4s var(--ease-emph) forwards;color:var(--paper)}
  .hero h1 .line:nth-child(2) .inner{animation-delay:.12s}
  .hero h1 .line:nth-child(3) .inner{animation-delay:.22s}
  @keyframes riseIn{to{transform:translateY(0)}}
  .hero h1 em{font-style:italic;color:var(--accent)}
  .hero h1 .roman{font-style:normal;font-family:var(--serif);color:var(--paper)}
  .hero .lede{display:none}
  .hero .lede p{max-width:46ch;font-size:17px;line-height:1.55;color:rgba(255,255,255,.88);margin:0;opacity:0;transform:translateY(20px);animation:fadeUp 1s var(--ease) forwards .9s}
  @keyframes fadeUp{to{opacity:1;transform:none}}
  .hero .lede .meta{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.75);display:flex;justify-content:flex-end;gap:40px;opacity:0;animation:fadeUp 1s var(--ease) forwards 1.1s}
  .hero .scroll-hint{display:none}
  @keyframes arrowDown{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}

  /* Marquee strip */
  .strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;overflow:hidden;background:var(--paper)}
  .strip-track{display:flex;gap:0;white-space:nowrap;animation:marquee 44s linear infinite;font-family:var(--serif);font-style:italic;font-size:56px;line-height:1}
  .strip-track span{display:inline-flex;align-items:center;gap:64px;padding-right:64px}
  .strip-track .eo{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid var(--accent);border-radius:50%;flex-shrink:0;background:transparent;padding:8px;box-sizing:border-box}
  .strip-track .eo img{width:100%;height:100%;object-fit:contain;display:block}
  @media(max-width:700px){
    .strip-track{font-size:36px}
    .strip-track span{gap:40px;padding-right:40px}
    .strip-track .eo{width:30px;height:30px;padding:5px}
  }
  @keyframes marquee{to{transform:translateX(-50%)}}

  /* Intro section */
  .intro{padding:160px 48px 140px;max-width:1400px;margin:0 auto}
  .intro .label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:64px}
  .intro .label::before{content:"";display:block;width:40px;height:1px;background:var(--ink);margin-bottom:14px}
  .intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
  .intro-copy{display:flex;flex-direction:column;gap:32px}
  .intro h2{font-family:var(--serif);font-weight:400;font-size:clamp(36px,3.6vw,56px);line-height:1.08;letter-spacing:-.015em;margin:0;max-width:20ch}
  .intro h2 em{font-style:italic;color:var(--accent)}
  .intro h2 .word{display:inline-block;opacity:.15;transition:opacity .6s var(--ease)}
  .intro h2 .word.lit{opacity:1}
  .intro-body{display:flex;flex-direction:column;gap:22px}
  .intro-body p{font-family:var(--serif);font-weight:400;font-style:normal;font-size:19px;line-height:1.55;letter-spacing:-.005em;color:var(--ink);margin:0}
  .intro-body p:first-child::first-letter{font-style:italic;color:var(--accent)}
  @media (max-width:900px){
    .intro{padding:100px 20px 80px}
    .intro .label{margin-bottom:40px}
    .intro-grid{grid-template-columns:1fr;gap:40px}
  }
  @media(max-width:900px){ .intro-body p{font-size:18px} }

  /* Services */
  .services{border-top:1px solid var(--line);padding:0 36px}
  .services .head{display:flex;justify-content:space-between;align-items:baseline;padding:28px 0;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
  .svc{display:grid;grid-template-columns:80px 1.2fr 2fr 1fr;gap:40px;align-items:center;padding:38px 0;border-top:1px solid var(--line);position:relative;overflow:hidden;transition:padding .5s var(--ease)}
  .svc .num{font-family:var(--mono);font-size:12px;color:var(--muted)}
  .svc .title{font-family:var(--serif);font-size:clamp(42px,5.6vw,84px);font-weight:400;letter-spacing:-.02em;line-height:1;transition:transform .6s var(--ease),color .4s var(--ease)}
  .svc .title em{font-style:italic}
  .svc .desc{color:var(--ink-soft);font-size:15px;line-height:1.55;max-width:46ch;opacity:.9}
  .svc .tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
  .svc .tags span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border:1px solid var(--line);border-radius:999px;color:var(--ink-soft)}
  .svc::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .7s var(--ease-emph);z-index:-1}
  .svc:hover{padding:58px 0}
  .svc:hover::before{transform:translateY(0)}
  .svc:hover .title,.svc:hover .num,.svc:hover .desc,.svc:hover .tags span{color:var(--paper)}
  .svc:hover .title{transform:translateX(12px)}
  .svc:hover .tags span{border-color:rgba(242,236,224,.25)}
  .svc:hover .title em{color:var(--accent)}

  /* Detailed service blocks */
  .svc-detail-wrap{border-top:1px solid var(--line);padding:40px 0 120px}
  .svc-detail-intro{display:flex;justify-content:space-between;align-items:baseline;padding:36px 0 60px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
  .svc-detail{display:grid;grid-template-columns:180px 1fr 1fr;gap:60px;padding:120px 0;border-top:1px solid var(--line);align-items:start;position:relative}
  .svc-detail:first-of-type{border-top:0}
  .svc-detail .dnum{font-family:var(--serif);font-style:italic;font-weight:400;font-size:160px;line-height:.9;color:var(--muted);opacity:.35;letter-spacing:-.03em;position:sticky;top:120px}
  .svc-detail .left{display:flex;flex-direction:column;gap:28px}
  .svc-detail h3.outcome{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.4vw,64px);line-height:1.05;letter-spacing:-.02em;margin:0;color:var(--ink)}
  .svc-detail h3.outcome em{font-style:italic;color:var(--accent);position:relative;display:inline-block;transition:transform .5s var(--ease),letter-spacing .5s var(--ease)}
  .svc-detail:hover h3.outcome em{letter-spacing:-.005em;animation:shimmerWord 1.6s ease-in-out}
  @keyframes shimmerWord{
    0%{filter:brightness(1)}
    40%{filter:brightness(1.35) saturate(1.15)}
    100%{filter:brightness(1)}
  }
  .svc-detail .body{font-size:16px;line-height:1.6;color:var(--ink-soft);max-width:46ch;margin:0 0 16px}
  .svc-detail .body:last-of-type{margin-bottom:0}
  .svc-detail .body i.accent{font-style:italic;color:var(--accent);font-family:inherit}
  .svc-detail .right{display:flex;flex-direction:column;gap:24px}
  .svc-detail .wylabel{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
  .svc-detail .wylabel::before{content:"";display:inline-block;width:24px;height:1px;background:var(--accent);margin-right:10px;vertical-align:middle;transform:translateY(-2px)}
  .svc-detail ul.inc{list-style:none;margin:0;padding:0}
  .svc-detail ul.inc li{display:flex;gap:16px;align-items:baseline;padding:18px 0;border-top:1px solid var(--line);font-size:15.5px;line-height:1.5;color:var(--ink-soft)}
  .svc-detail ul.inc li:last-child{border-bottom:1px solid var(--line)}
  .svc-detail ul.inc li .bullet{font-family:var(--mono);font-size:10px;letter-spacing:.15em;color:var(--accent);min-width:28px}
  .svc-detail .good-fit{font-family:var(--serif);font-style:italic;font-size:20px;line-height:1.45;color:var(--ink-soft);margin:8px 0 0;max-width:44ch}
  .svc-detail .good-fit::first-letter{color:var(--accent)}
  .svc-detail .good-fit b{font-weight:400;font-style:italic;color:var(--ink)}
  .svc-detail .dcta{align-self:flex-start;display:inline-flex;align-items:center;gap:14px;background:var(--ink);color:var(--paper);padding:20px 28px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;position:relative;overflow:hidden;transition:transform .5s var(--ease);margin-top:12px}
  .svc-detail .dcta::before{content:"";position:absolute;inset:0;background:var(--accent);transform:translateY(101%);transition:transform .5s var(--ease-emph);z-index:0}
  .svc-detail .dcta span{position:relative;z-index:1}
  .svc-detail .dcta:hover::before{transform:translateY(0)}
  .svc-detail .dcta:hover{transform:translateX(6px)}
  .svc-detail .dcta .arr{transition:transform .4s var(--ease);position:relative;z-index:1}
  .svc-detail .dcta:hover .arr{transform:translateX(6px)}

  @media (max-width: 900px){
    .svc-detail{grid-template-columns:1fr;gap:28px;padding:72px 0}
    .svc-detail .dnum{position:static;font-size:110px}
  }

  /* --- Full Partnership (§05-01) special two-row layout --- */
  .svc-detail--partnership{grid-template-columns:180px 1fr;grid-template-rows:auto auto;gap:60px 60px;align-items:start}
  .svc-detail--partnership .dnum{grid-row:1 / span 2}
  .svc-detail--partnership .p-top{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
  .svc-detail--partnership .p-visual{display:flex;align-items:center;justify-content:center}
  .svc-detail--partnership .p-visual .loop-anim-wrap{width:100%;max-width:440px;margin:0}
  .svc-detail--partnership .p-copy{display:flex;flex-direction:column}
  .svc-detail--partnership .p-copy .outcome{margin:0 0 40px}
  .svc-detail--partnership .p-copy .body{margin:0 0 20px;max-width:46ch}
  .svc-detail--partnership .p-copy .body:last-child{margin-bottom:0}
  .svc-detail--partnership .p-copy--solo{max-width:none}
  .svc-detail--partnership .p-copy--solo .outcome{margin-bottom:28px;max-width:22ch}
  .svc-detail--partnership .p-copy--solo .body{max-width:60ch}
  .svc-detail--partnership .p-bottom{grid-column:2;display:flex;flex-direction:column;gap:24px;max-width:100%;padding-top:20px;border-top:1px solid var(--line)}
  .svc-detail--partnership .p-bottom .inc{max-width:none}
  .svc-detail--partnership .p-bottom .good-fit{margin-top:8px}
  .svc-detail--partnership .p-bottom .dcta{margin-top:12px}
  @media (max-width: 900px){
    .svc-detail--partnership{grid-template-columns:1fr;gap:28px}
    .svc-detail--partnership .dnum{grid-row:auto}
    .svc-detail--partnership .p-top{grid-template-columns:1fr;gap:28px}
    .svc-detail--partnership .p-copy .outcome{margin-bottom:24px}
    .svc-detail--partnership .p-bottom{grid-column:auto;padding-top:16px}
  }

  /* Work grid */
  .work{padding:180px 36px 80px;border-top:1px solid var(--line)}
  .work .head{display:flex;justify-content:space-between;align-items:end;margin-bottom:64px}
  .work h3{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,72px);letter-spacing:-.02em;line-height:1;margin:0}
  .work h3 em{font-style:italic;color:var(--accent)}
  .work .head .count{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
  .grid{display:grid;grid-template-columns:repeat(12,1fr);gap:32px 24px}
  .card{position:relative;overflow:hidden;background:var(--paper-2);cursor:none}
  .card .frame{position:relative;overflow:hidden;background:var(--paper-2)}
  .card .frame::before{content:"";display:block;padding-top:var(--ratio,125%)}
  .card .frame .art{position:absolute;inset:0;transition:transform 1.2s var(--ease-emph)}
  .card:hover .frame .art{transform:scale(1.04)}
  .card .overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(11,11,10,.55) 100%);opacity:0;transition:opacity .6s var(--ease)}
  .card:hover .overlay{opacity:1}
  .card .meta{display:flex;justify-content:space-between;align-items:baseline;padding:18px 4px 0;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
  .card h4{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.15;letter-spacing:-.01em;margin:4px 4px 0;color:var(--ink)}
  .card h4 em{font-style:italic}
  .card .cta{position:absolute;left:24px;bottom:24px;color:var(--paper);font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;transform:translateY(14px);opacity:0;transition:transform .5s var(--ease),opacity .5s var(--ease);z-index:2}
  .card:hover .cta{transform:translateY(0);opacity:1}
  .card .year{position:absolute;right:24px;top:24px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--paper);opacity:0;transition:opacity .6s var(--ease);z-index:2}
  .card:hover .year{opacity:.9}

  .c-1{grid-column:span 6}
  .c-2{grid-column:span 6}
  .c-3{grid-column:span 4}
  .c-4{grid-column:span 4}
  .c-5{grid-column:span 4}
  .c-6{grid-column:span 4}
  .c-7{grid-column:span 4}

  /* Placeholder artworks — cream/ivory/sepia palette, on-brand */
  .art-a{background:
    linear-gradient(180deg,#E9DFC9 0%,#CDB894 55%,#8A6B47 100%);
    position:relative;
  }
  .art-a::after{content:"";position:absolute;inset:0;background:
    radial-gradient(80% 60% at 50% 100%, rgba(11,11,10,.18), transparent 70%);
  }
  .art-b{background:
    linear-gradient(160deg,#1E2A2B 0%,#0B0B0A 60%,#222 100%);
    position:relative;
  }
  .art-b::after{content:"";position:absolute;inset:0;background:
    repeating-linear-gradient(90deg, rgba(242,236,224,.06) 0 1px, transparent 1px 34px);
  }
  .art-c{background:
    linear-gradient(180deg,#F2ECE0 0%,#D6C8A8 100%);
  }
  .art-d{background:
    linear-gradient(160deg,#F2ECE0 0%,#E9DFC9 50%,#C9B088 100%);
    position:relative;
  }
  .art-d::after{content:"";position:absolute;inset:0;background:
    radial-gradient(40% 50% at 70% 30%, rgba(181,82,44,.35), transparent 70%);
  }
  .art-e{background:
    linear-gradient(135deg,#0B0B0A 0%,#2A2824 55%,#3F3A30 100%);
    position:relative;
  }
  .art-e::after{content:"";position:absolute;inset:0;background:
    radial-gradient(30% 40% at 70% 60%, rgba(181,82,44,.5), transparent 70%);
  }
  .art-f{background:#F2ECE0;position:relative}
  .art-f::after{content:"";position:absolute;inset:0;background:
    repeating-linear-gradient(0deg, rgba(11,11,10,.08) 0 1px, transparent 1px 12px),
    repeating-linear-gradient(90deg, rgba(11,11,10,.08) 0 1px, transparent 1px 12px);
  }
  .art-g{background:
    linear-gradient(180deg,#D6C8A8 0%,#8A6B47 100%);
  }
  .label-chip{position:absolute;left:20px;top:20px;z-index:2;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper);background:rgba(11,11,10,.35);padding:6px 10px;border-radius:999px;backdrop-filter:blur(8px)}

  /* Feature quote */

  /* Process */
  .process{padding:160px 36px;border-top:1px solid var(--line)}
  .process .head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:72px}
  .process h3{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,72px);letter-spacing:-.02em;margin:0}
  .process h3 em{font-style:italic;color:var(--accent)}
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px;counter-reset:step}
  .step{border-top:1px solid var(--ink);padding-top:22px;counter-increment:step}
  .step .n{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:32px}
  .step h4{font-family:var(--serif);font-weight:400;font-style:italic;font-size:32px;letter-spacing:-.01em;margin:0 0 14px}
  .step p{font-size:14.5px;line-height:1.55;color:var(--ink-soft);margin:0}

  /* Clients */
  .clients{padding:80px 36px 140px;display:grid;grid-template-columns:260px 1fr;gap:80px;align-items:start;border-top:1px solid var(--line)}
  .clients .label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding-top:18px}
  .clients .label::before{content:"";display:block;width:40px;height:1px;background:var(--ink);margin-bottom:14px}
  .logos{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
  .logos .l{border-right:1px solid var(--line);border-bottom:1px solid var(--line);aspect-ratio:2/1;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:26px;letter-spacing:.04em;color:var(--ink-soft);position:relative;overflow:hidden;transition:color .4s var(--ease)}
  .logos .l::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .6s var(--ease-emph);z-index:0}
  .logos .l:hover{color:var(--paper)}
  .logos .l:hover::before{transform:translateY(0)}
  .logos .l span{position:relative;z-index:1}
  .logos .l .t{font-style:italic;font-size:13px;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;opacity:0;transform:translateY(6px);transition:.5s var(--ease);position:absolute;z-index:1;color:var(--accent)}
  .logos .l:hover .t{opacity:1;transform:translateY(0)}
  .logos .l:hover .n{transform:translateY(-10px);opacity:0}
  .logos .l .n{transition:.5s var(--ease)}

  /* CTA */
  .cta{padding:120px 36px;text-align:left;position:relative;overflow:hidden;background:#1F1C18;color:var(--paper)}
  .cta .big{font-family:var(--serif);font-weight:400;font-size:clamp(56px,7.5vw,120px);line-height:1;letter-spacing:-.03em;margin:0}
  .cta .big em{font-style:italic;color:var(--accent)}
  .cta .big a{display:inline-block;transition:transform .6s var(--ease)}
  .cta .big a:hover{transform:translateX(20px)}
  .cta .big a .arrow{display:inline-block;transform:translateX(-30px);transition:transform .6s var(--ease);color:var(--accent)}
  .cta .big a:hover .arrow{transform:translateX(0)}
  .cta .row{display:flex;justify-content:space-between;gap:40px;margin-top:64px;font-family:var(--mono);font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:rgba(242,236,224,.6)}
  .cta .row a{color:var(--paper);position:relative}
  .cta .row a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--accent);transform-origin:left;transform:scaleX(0);transition:transform .5s var(--ease)}
  .cta .row a:hover::after{transform:scaleX(1)}

  /* Footer */
  footer{background:#1F1C18;color:var(--paper);padding:0 36px 36px;position:relative}
  footer .masthead{border-top:1px solid rgba(242,236,224,.12);margin:0;padding:28px 0 0;display:flex;justify-content:space-between;align-items:center;gap:24px;font-family:var(--mono);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:rgba(242,236,224,.45);flex-wrap:wrap;position:relative}
  footer .masthead::before{content:"";position:absolute;top:-1px;left:0;width:64px;height:1px;background:var(--accent)}
  footer .masthead .dot{width:5px;height:5px;border-radius:50%;background:var(--accent);display:inline-block;margin-right:10px;vertical-align:middle;animation:fDot 2.2s ease-in-out infinite}
  @keyframes fDot{0%,100%{opacity:1}50%{opacity:.25}}
  footer .masthead em{font-family:var(--serif);font-style:italic;letter-spacing:.02em;text-transform:none;font-size:13px;color:rgba(242,236,224,.7)}
  @media(max-width:700px){footer .masthead{font-size:9px;letter-spacing:.2em;gap:14px}}
  footer .line{border-top:1px solid rgba(242,236,224,.14);padding-top:32px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:40px;font-size:13px;color:rgba(242,236,224,.7)}
  footer .col h5{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:rgba(242,236,224,.5);margin:0 0 16px;font-weight:500}
  footer .col a{display:block;margin-bottom:8px;color:var(--paper)}
  footer .col a:hover{color:var(--accent)}
  footer .bottom{display:flex;justify-content:space-between;align-items:center;margin-top:64px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(242,236,224,.4)}
  footer .wordmark{margin:40px -36px 28px;padding:36px 24px;background:var(--paper);text-align:center;overflow:hidden}
  footer .wordmark img{display:inline-block;width:auto;max-width:260px;height:auto}
  footer .wordmark .sp{display:inline-block;transform:translateY(102%);opacity:0;transition:transform 1.1s var(--ease-emph),opacity 1.1s var(--ease-emph)}
  footer .wordmark.rise .sp{transform:translateY(0);opacity:1}
  footer .wordmark .sp:nth-child(2){transition-delay:.12s}

  /* Reveal utility */
  .rv{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
  .rv.in{opacity:1;transform:none}
  .rv-scale{opacity:0;transform:scale(.96);transition:opacity 1.1s var(--ease-emph),transform 1.1s var(--ease-emph)}
  .rv-scale.in{opacity:1;transform:none}

  /* About / Behind edit one */
  .about{padding:100px 36px 140px;border-top:1px solid var(--line)}
  .about-layout{display:grid;grid-template-columns:1.4fr 0.8fr;gap:80px;align-items:start;margin-bottom:100px}
  .about-left{display:flex;flex-direction:column;gap:28px}
  .about-right{display:flex;flex-direction:column;gap:32px;padding-right:0;padding-top:96px;max-width:44ch}
  .about-figs{display:grid;grid-template-columns:1fr 0.55fr 1fr 0.55fr;gap:14px;align-items:start}
  .about-hero-fig--small img{aspect-ratio:2/3}
  .about .label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
  .about .label::before{content:"";display:block;width:40px;height:1px;background:var(--ink);margin-bottom:14px}
  .about-hero-fig{margin:0;cursor:none;overflow:hidden;display:flex;flex-direction:column;gap:10px}
  .about-hero-fig img{display:block;width:100%;aspect-ratio:9/16;object-fit:cover;background:var(--paper-2);transition:transform .5s ease-out}
  .about-hero-fig:hover img{transform:scale(1.02)}
  .about-hero-fig figcaption{font-family:"Cormorant Garamond",var(--serif);font-style:italic;font-size:14px;color:var(--muted);text-align:left}
  .about-h{font-family:var(--serif);font-weight:400;font-size:clamp(44px,5.4vw,88px);line-height:1;letter-spacing:-.02em;margin:0}
  .about-h em{font-style:italic;color:var(--accent)}
  .about-body{display:flex;flex-direction:column}
  .about-body p{font-size:16px;line-height:1.6;color:var(--ink-soft);margin:0 0 28px;max-width:44ch}
  .about-body p:last-child{margin-bottom:0}
  .about-body p.tagline{margin-top:16px}
  .about-body p em{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--ink)}
  .about-body p i.accent{font-style:italic;color:var(--accent);font-family:inherit;font-size:inherit}
  .about-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:1100px;margin:0 auto}
  .about-fig{margin:0;cursor:none;overflow:hidden}
  .about-fig img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--paper-2);transition:transform .8s var(--ease-emph)}
  .about-fig:hover img{transform:scale(1.03)}
  .about-fig figcaption{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--ink-soft);margin-top:12px}

  .lightbox{position:fixed;inset:0;background:rgba(11,11,10,.92);z-index:200;display:none;align-items:center;justify-content:center;padding:40px}
  .lightbox.on{display:flex}
  .lightbox img{max-width:92vw;max-height:88vh;object-fit:contain}
  .lightbox .lb-close{position:absolute;top:20px;right:24px;background:none;border:0;color:#fff;font-size:44px;line-height:1;cursor:none}

  @media (max-width:900px){
    .about{padding:80px 20px}
    .about-layout{grid-template-columns:1fr;gap:40px;margin-bottom:60px}
    .about-right{padding-right:0;gap:32px}
    .about-figs{grid-template-columns:1fr 1fr;gap:12px}
    .about-body p{margin-bottom:1.2em}
    .about-gallery{grid-template-columns:1fr}
  }


  /* Responsive */
  @media (max-width: 900px){
    .nav ul{display:none}
    /* Hero stays full-bleed on mobile; video remains absolutely positioned behind the panel */
    .intro{grid-template-columns:1fr;gap:24px;padding:100px 20px}
    .services{padding:0 20px}
    .svc{grid-template-columns:60px 1fr;gap:16px}
    .svc .desc,.svc .tags{grid-column:1 / -1}
    .work,.process,.cta{padding-left:20px;padding-right:20px}
    .grid{grid-template-columns:1fr}
    .c-1,.c-2,.c-3,.c-4,.c-5,.c-6,.c-7{grid-column:1/-1}
    .steps{grid-template-columns:1fr 1fr}
    .clients{grid-template-columns:1fr;padding:40px 20px 80px}
    .logos{grid-template-columns:repeat(2,1fr)}
    footer .line{grid-template-columns:1fr 1fr}
  }

  /* Loop animation (Full Partnership) */
  .loop-anim-wrap{margin:0 0 40px;max-width:300px;overflow:visible;padding:0}
  .loop-animation{width:100%;height:auto;display:block;overflow:visible}
  /* Loop labels: JS-driven sync — is-active class toggled by main.js */
  .loop-label{fill:var(--ink);font-family:Geist,Inter,system-ui,sans-serif;font-size:11px;letter-spacing:.1em;text-transform:uppercase;transform-origin:center;transform-box:fill-box;transition:fill .3s var(--ease),transform .3s var(--ease)}
  .loop-label.is-active{fill:var(--accent);transform:scale(1.12)}
  /* Dot moves via JS cx/cy style — CSS transition animates the hop */
  .loop-dot{transition:cx .65s var(--ease-emph),cy .65s var(--ease-emph)}
  /* Tablet (768-1024px): reduce loop graphic */
  @media (max-width:1024px){
    .tl-visual .loop-anim-wrap{max-width:240px}
    .loop-label{font-size:10px}
    .loop-center{font-size:22px}
  }
  /* Mobile (<768px): smaller still + horizontal padding so side labels aren't clipped */
  @media (max-width:767px){
    .the-loop .tl-visual{padding:0 48px}
    .tl-visual .loop-anim-wrap{max-width:180px;margin:0 auto}
    .loop-label{font-size:9px;letter-spacing:.06em}
    .loop-center{font-size:18px}
  }
  /* Small mobile (<480px) */
  @media (max-width:479px){
    .the-loop .tl-visual{padding:0 32px}
    .tl-visual .loop-anim-wrap{max-width:160px}
    .loop-label{font-size:8px}
    .loop-center{font-size:16px}
  }
  .loop-center{fill:var(--accent);font-family:'Instrument Serif','Cormorant Garamond',serif;font-style:italic;font-size:28px}
  @media(max-width:900px){.loop-anim-wrap{max-width:220px;margin:0 auto 32px}}
  @media(prefers-reduced-motion:reduce){
    .loop-dot{transition:none}
    .loop-label{transition:none}
  }

  /* Preloader */
  #preloader{position:fixed;inset:0;z-index:9999;background:var(--paper);display:flex;align-items:center;justify-content:center;transition:opacity .6s ease-out}
  #preloader.done{opacity:0;pointer-events:none}
  #preloader .pl-mark{position:relative;width:140px;height:140px}
  #preloader .pl-trace,#preloader .pl-fill{position:absolute;inset:0;width:100%;height:100%}
  #preloader .pl-trace{overflow:visible}
  #preloader .pl-trace path{fill:none;stroke:#26221F;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
  #preloader .pl-fill{opacity:0;transition:opacity .4s ease-out;object-fit:contain}
  #preloader.filled .pl-fill{opacity:1}
  #preloader.filled .pl-trace{opacity:0;transition:opacity .4s ease-out}
  @media(max-width:700px){#preloader .pl-mark{width:100px;height:100px}}
  @media(prefers-reduced-motion:reduce){#preloader{display:none}}
  /* Full partnership teaser */
  .partner-teaser{padding:0 36px 56px;background:var(--paper);border-top:1px solid var(--line)}
  .partner-teaser .pt-inner{max-width:var(--w);margin:0 auto;padding-top:56px}
  .partner-teaser .label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:36px}
  .partner-teaser .label::before{content:"";display:inline-block;width:40px;height:1px;background:var(--ink);margin-right:14px;vertical-align:middle;transform:translateY(-2px)}
  .partner-teaser .pt-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
  .partner-teaser .pt-outcome{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.4vw,64px);line-height:1.05;letter-spacing:-.02em;margin:0;color:var(--ink);max-width:14ch}
  .partner-teaser .pt-outcome em{font-style:italic;color:var(--accent)}
  .partner-teaser .pt-right{display:flex;flex-direction:column;gap:20px;padding-top:8px}
  .partner-teaser .pt-body{font-size:17px;line-height:1.6;color:var(--ink-soft);margin:0}
  .partner-teaser .pt-pricing{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin:4px 0 0}
  .partner-teaser .pt-cta{align-self:flex-start;display:inline-flex;align-items:center;gap:14px;background:var(--ink);color:var(--paper);padding:18px 26px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--ink);transition:background .4s var(--ease),color .4s var(--ease),transform .4s var(--ease)}
  .partner-teaser .pt-cta:hover{background:transparent;color:var(--ink);transform:translateX(4px)}
  .partner-teaser .pt-cta .arr{color:var(--accent);transition:transform .4s var(--ease)}
  .partner-teaser .pt-cta:hover .arr{transform:translateX(6px)}
  @media(max-width:1024px){
    .partner-teaser{padding:0 20px 48px}
    .partner-teaser .pt-inner{padding-top:48px}
    .partner-teaser .pt-grid{grid-template-columns:1fr;gap:32px}
  }

/* Loop section styles */
  .the-loop{padding:160px 36px;border-top:1px solid var(--line)}
  .tl-inner{max-width:1280px;margin:0 auto}
  .tl-label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 80px}
  .tl-label::before{content:"";display:inline-block;width:40px;height:1px;background:var(--ink);margin-right:12px;vertical-align:middle;transform:translateY(-2px)}
  .tl-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
  .tl-visual{display:flex;align-items:center;justify-content:center}
  .tl-visual .loop-anim-wrap{width:100%;max-width:460px;margin:0}
  .tl-copy{display:flex;flex-direction:column}
  .tl-h{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.6vw,68px);line-height:1.05;letter-spacing:-.02em;margin:0 0 40px;color:var(--ink);max-width:18ch}
  .tl-h em{font-style:italic;color:var(--accent)}
  .tl-body{font-size:16.5px;line-height:1.6;color:var(--ink-soft);max-width:48ch;margin:0 0 20px}
  .tl-body i.accent{font-style:italic;color:var(--accent);font-family:inherit}
  .tl-body.tl-kicker{font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.45;color:var(--ink);margin-top:8px;margin-bottom:0}
  @media (max-width: 900px){
    .the-loop{padding:100px 20px}
    .tl-grid{grid-template-columns:1fr;gap:40px}
    .tl-label{margin-bottom:48px}
    .tl-h{margin-bottom:28px}
  }

/* Work video/img cover */
  .work-img,.work-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--paper-2)}

/* Book / Calendly styles */
  .book{padding:140px 36px;border-top:1px solid var(--line)}
  .book-head{max-width:800px;margin-bottom:48px}
  .book .label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
  .book .label::before{content:"";display:inline-block;width:40px;height:1px;background:var(--ink);margin-right:12px;vertical-align:middle;transform:translateY(-2px)}
  .book h3{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,72px);letter-spacing:-.02em;line-height:1;margin:0 0 20px}
  .book h3 em{font-style:italic;color:var(--accent)}
  .book p{font-size:17px;line-height:1.55;color:var(--ink-soft);max-width:52ch;margin:0}
  @media (max-width:900px){.book{padding:80px 20px}}

/* ---------- Additions (production) ---------- */

/* Philosophy section - paired founder-interview figure */
.intro-grid .philosophy-fig{margin:0;width:100%}
.intro-grid .philosophy-fig img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--paper-2)}
.intro-grid .philosophy-fig figcaption{margin-top:14px;font-family:var(--serif);font-style:italic;font-size:15px;color:var(--muted)}

/* Walkabout selected-work card - video + unmute button */
.card .work-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--paper-2)}
.card.c-1 .work-video{object-fit:contain;background:#14120E}
.card .work-audio{position:absolute;right:18px;bottom:18px;z-index:3;width:38px;height:38px;border-radius:50%;border:1px solid rgba(242,236,224,.55);background:rgba(11,11,10,.35);color:var(--paper);display:inline-flex;align-items:center;justify-content:center;cursor:none;backdrop-filter:blur(6px);transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease)}
.card .work-audio:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.card .work-audio svg{width:16px;height:16px;display:block}

/* Preloader: explicit fill fade + overlay fade matching main.js timeline */
#preloader .pl-fill{transition:opacity .4s ease-out}
#preloader.done{transition:opacity .6s ease-out}


/* Walkabout card - label above video, italic caption below */
.card .card-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.card .card-caption{font-family:var(--serif);font-style:italic;font-weight:400;font-size:24px;line-height:1.2;letter-spacing:-.01em;margin:16px 4px 0;color:var(--ink)}
.card .card-caption em{font-style:italic;color:var(--ink)}

/* ---------- Hero REC indicator (bottom-right) ---------- */
.hero .rec-indicator{position:absolute;bottom:28px;right:32px;z-index:5;display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-size:11px;letter-spacing:.1em;color:var(--paper)}
.hero .rec-indicator .rec-dot{width:8px;height:8px;border-radius:50%;background:#D93025;flex-shrink:0;animation:recPulseSoft 1.5s ease-in-out infinite}
.hero .rec-indicator .rec-text{opacity:.95}
@keyframes recPulseSoft{0%,100%{opacity:1}50%{opacity:.3}}
@media (prefers-reduced-motion: reduce){
  .hero .rec-indicator .rec-dot{animation:none;opacity:1}
}
@media (max-width:900px){
  .hero .rec-indicator{bottom:20px;right:20px;font-size:10px}
}

/* ---------- Hero text panel (bottom-left, cream, blurred backdrop) ---------- */
.hero .hero-panel{position:absolute;bottom:64px;left:64px;z-index:4;width:380px;max-width:calc(100% - 128px);padding:36px 32px;border-radius:16px;background:rgba(242,238,229,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:18px}
.hero .hero-panel-label{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);opacity:.8;margin:0}
.hero .hero-panel-h{font-family:"Cormorant Garamond",var(--serif);font-style:italic;font-weight:400;font-size:44px;line-height:1.05;letter-spacing:-.01em;color:var(--ink);margin:0}
.hero .hero-panel-h em{font-style:italic;color:var(--accent)}
/* Hero word-stagger spans */
.hw{display:inline-block;opacity:0;transform:translateY(10px);animation:hwIn .5s var(--ease) forwards}
@keyframes hwIn{to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.hw{animation:none;opacity:1;transform:none}}
.hero .hero-panel-body{font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--muted);margin:0;max-width:44ch}
.hero-sectors{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;line-height:1.4;color:var(--muted);opacity:.75;margin:0}
.hero .hero-panel-cta{align-self:flex-start;display:inline-block;margin-top:6px;padding:14px 20px;background:var(--ink);color:var(--paper);font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--ink);text-decoration:none;transition:background .3s var(--ease),color .3s var(--ease)}
.hero .hero-panel-cta:hover{background:transparent;color:var(--ink)}
@media (max-width:900px){
  .hero .hero-panel{bottom:24px;left:24px;right:auto;width:78vw;max-width:calc(100% - 48px);padding:28px 24px;border-radius:16px;background:rgba(242,238,229,.75)}
  .hero .hero-panel-h{font-size:32px}
}

/* Sound toggle responsive tweak */
@media (max-width:900px){
  .hero .audio-btn{bottom:20px;left:20px;top:auto;right:auto}
}

/* ---------- Mobile reliability ---------- */
@media (max-width:560px){
  /* Hero panel: narrower on phones, tighter type */
  .hero .hero-panel{width:calc(100vw - 32px);left:16px;right:16px;bottom:16px;padding:24px 20px;gap:14px}
  .hero .hero-panel-h{font-size:28px;line-height:1.08}
  .hero .hero-panel-body{font-size:13.5px;line-height:1.5}
  .hero .hero-panel-cta{padding:12px 16px;font-size:11px}
  .hero-panel-cta-secondary{padding:12px 14px;font-size:11px}
  /* REC indicator: avoid colliding with panel */
  .hero .rec-indicator{bottom:auto;top:60px;right:16px;font-size:9.5px;letter-spacing:.08em}
  /* Sound button: smaller tap target area inset for thumb reach */
  .hero .audio-btn{bottom:20px;left:16px;top:auto;right:auto;width:36px;height:36px}
}
/* iOS safe-area respect (notches, home-indicator) - phones only */
@media (max-width:560px){
  @supports (padding:max(0px)){
    .hero .hero-panel{bottom:max(16px, env(safe-area-inset-bottom))}
    .hero .rec-indicator{top:max(60px, calc(env(safe-area-inset-top) + 56px))}
  }
}

/* Mobile: match the CSS-level poster to the phone-specific cover */
@media (max-width:640px){
  .hero .hero-video{background-image:url("assets/hero/hero-reel-cover-small-logo.jpg")}
}

/* ================================================================
   MOBILE RESPONSIVE AUDIT (<=767px)
   Desktop (>=1024px) and the tablet 768-1023 band are untouched.
   ================================================================ */

@media (max-width:767px){
  /* ---- Global safety ---- */
  html, body{overflow-x:hidden}
  img, video{max-width:100%}

  /* ---- Phone/email links never wrap ---- */
  a[href^="tel:"], a[href^="mailto:"]{white-space:nowrap;display:inline-block}

  /* ---- Hero ---- */
  .hero .hero-panel{width:calc(100vw - 32px);left:16px;right:16px;bottom:16px;padding:24px 20px;gap:14px}
  .hero .hero-panel-h{font-size:30px;line-height:1.08}
  .hero .hero-panel-body{font-size:14px;line-height:1.55}
  .hero .hero-panel-cta{padding:14px 18px;font-size:11px;min-height:44px}
  .hero-panel-cta-secondary{padding:14px 16px;font-size:11px;min-height:44px}

  /* REC + sound icon: guarantee 44px tap target on sound button */
  .hero .audio-btn{width:44px;height:44px}
  .hero .rec-indicator{font-size:9.5px;letter-spacing:.08em}

  /* ---- Intro / Philosophy ---- */
  .intro{padding:80px 20px}
  .intro h2{font-size:clamp(28px,6vw,36px);max-width:none}
  .intro-body p{font-size:15px;line-height:1.55}
  .intro-grid{grid-template-columns:1fr;gap:32px}
  .intro-grid .philosophy-fig img{aspect-ratio:3/4}

  /* ---- The loop ---- */
  .tl-h{font-size:clamp(24px,6vw,32px)}
  .tl-body{font-size:15px;line-height:1.55}
  .tl-body.tl-kicker{font-size:18px}

  /* ---- Full Partnership teaser ---- */
  .partner-teaser{padding:0 20px 52px}
  .partner-teaser .pt-inner{padding-top:44px}
  .partner-teaser .pt-outcome{font-size:clamp(26px,6vw,34px)}
  .partner-teaser .pt-body{font-size:15px}
  .partner-teaser .pt-cta{padding:14px 18px;min-height:44px}

  /* ---- Behind edit one ---- */
  .about{padding:72px 20px}
  .about-layout{grid-template-columns:1fr;gap:36px;margin-bottom:56px}
  .about-right{padding-top:0;max-width:none}
  .about-h{font-size:clamp(32px,7vw,44px)}
  .about-body p{font-size:15px;line-height:1.55;max-width:none;margin-bottom:20px}
  .about-body p em{font-size:17px}
  .about-figs{grid-template-columns:1fr;gap:16px}

  /* ---- Services summary grid ---- */
  .services{padding:0 20px}
  .svc{grid-template-columns:1fr;gap:10px;padding:28px 0}
  .svc .num{font-size:11px}
  .svc .title{font-size:clamp(32px,8vw,44px)}
  .svc .desc{grid-column:1/-1;font-size:14px}
  .svc .tags{grid-column:1/-1;justify-content:flex-start}
  .svc .tags span{font-size:9.5px}

  /* ---- Detailed service blocks ---- */
  .svc-detail-wrap{padding:24px 0 72px}
  .svc-detail-intro{flex-direction:column;gap:8px;padding:24px 0 32px}
  .svc-detail{grid-template-columns:1fr;gap:20px;padding:56px 0}
  .svc-detail .dnum{font-size:84px;position:static}
  .svc-detail h3.outcome{font-size:clamp(28px,7vw,40px)}
  .svc-detail .body{font-size:15px}
  .svc-detail ul.inc li{font-size:14px;gap:12px;padding:14px 0}
  .svc-detail .good-fit{font-size:17px}
  .svc-detail .dcta{padding:16px 20px;min-height:44px;font-size:10.5px}
  .svc-detail--partnership{grid-template-columns:1fr}
  .svc-detail--partnership .p-top{grid-template-columns:1fr;gap:24px}
  .svc-detail--partnership .p-bottom{grid-column:auto}

  /* ---- Selected work ---- */
  .work{padding:72px 20px 40px}
  .work .head{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:32px}
  .work h3{font-size:clamp(32px,8vw,44px)}
  .grid{grid-template-columns:1fr;gap:32px}
  .card .card-label{font-size:10px;letter-spacing:.18em}
  .card .card-caption{font-size:20px}
  .card .meta{font-size:10px;letter-spacing:.08em;flex-wrap:wrap;gap:4px}
  .card h4{font-size:22px}

  /* ---- Process / Method ---- */
  .process{padding:72px 20px}
  .process .head{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:40px}
  .process h3{font-size:clamp(32px,8vw,44px)}
  .steps{grid-template-columns:1fr;gap:24px}
  .step{padding-top:18px}
  .step h4{font-size:26px}
  .step p{font-size:14px}

  /* ---- Clients ---- */
  .clients{grid-template-columns:1fr;padding:40px 20px 72px;gap:32px}
  .logos{grid-template-columns:repeat(2,1fr)}
  .logos .l{font-size:18px}

  /* ---- Booking / Calendly ---- */
  .book{padding:72px 20px}
  .book h3{font-size:clamp(32px,8vw,44px)}
  .book p{font-size:15px}
  .calendly-inline-widget{min-width:auto !important;width:100% !important}

  /* ---- CTA band ---- */
  .cta{padding:72px 20px}
  .cta .big{font-size:clamp(44px,10vw,80px)}
  .cta .row{flex-direction:column;gap:14px;margin-top:32px}
  .cta .row a, .cta .row span{min-height:44px;display:inline-flex;align-items:center}

  /* ---- Footer ---- */
  footer{padding:0 20px 28px}
  footer .masthead{gap:12px;padding-top:20px}
  footer .wordmark img{max-width:200px}
  footer .line{grid-template-columns:1fr;gap:28px;padding-top:24px}
  footer .col h5{margin-bottom:10px}
  footer .col a, footer .col span{font-size:14px;line-height:1.6}
  footer .bottom{flex-direction:column;gap:8px;align-items:flex-start;margin-top:36px}

  /* ---- Marquee strip ---- */
  .strip{padding:18px 0}
  .strip-track{font-size:28px}
  .strip-track span{gap:28px;padding-right:28px}
  .strip-track .eo{width:34px;height:34px;padding:6px}
}

/* Small phones (<=480px) - tighter refinements */
@media (max-width:480px){
  .hero .hero-panel-h{font-size:26px}
  .hero .hero-panel-body{font-size:13.5px}
  .hero .hero-panel-cta{padding:12px 16px}
  .intro h2{font-size:26px}
  .tl-h{font-size:24px}
  .about-h{font-size:30px}
  .svc-detail h3.outcome{font-size:26px}
  .work h3, .process h3{font-size:30px}
  .book h3{font-size:28px}
  .cta .big{font-size:48px;letter-spacing:-.02em}
  footer .wordmark img{max-width:160px}
}

/* §03 Full Partnership - copy + photo side by side in the right column */

/* §06 Services - standalone accent CTA */
.services-dcta{display:inline-flex;align-items:center;gap:18px;background:var(--ink);color:var(--paper);padding:26px 44px;font-family:var(--mono);font-size:12px;letter-spacing:.22em;text-transform:uppercase;position:relative;overflow:hidden;transition:transform .5s var(--ease);margin-top:40px}
.services-dcta::before{content:"";position:absolute;inset:0;background:var(--accent);transform:translateY(101%);transition:transform .5s var(--ease-emph);z-index:0}
.services-dcta span{position:relative;z-index:1}
.services-dcta:hover::before{transform:translateY(0)}
.services-dcta:hover{transform:translateX(6px)}
.services-dcta .arr{transition:transform .4s var(--ease);position:relative;z-index:1}
.services-dcta:hover .arr{transform:translateX(6px)}

/* ================================================================
   §05 Meet the founder - charcoal w/ 40/60 grid, contained sticky photo
   ================================================================ */
.founder{background:#26221F;color:#F2EEE5;padding:120px 36px;position:relative}
.founder-grid{display:grid;grid-template-columns:2fr 3fr;gap:80px;align-items:start;max-width:1280px;margin:0 auto}

/* Photo column - contained, sticky on desktop so it stays pinned while copy scrolls past */
.founder-photo{margin:0;position:sticky;top:96px;align-self:start}
.founder-photo img{display:block;width:100%;height:auto;max-height:80vh;aspect-ratio:3/4;object-fit:cover;object-position:center 30%;background:#1a1815;border-radius:8px}

/* Copy column - cream on charcoal, tidy editorial sizing */
.founder-copy{display:flex;flex-direction:column;gap:22px;padding:8px 0}
.founder-label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(242,238,229,.6);margin:0 0 8px}
.founder-label::before{content:"";display:inline-block;width:28px;height:1px;background:#B87333;margin-right:12px;vertical-align:middle;transform:translateY(-2px)}
.founder-h{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.5vw,64px);line-height:1.05;letter-spacing:-.015em;margin:0;color:#F2EEE5;max-width:14ch}
.founder-h em{font-style:italic;color:#F2EEE5;position:relative}
.founder-h em::after{content:"";position:absolute;left:0;right:.08em;bottom:.02em;height:2px;background:#B87333;transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease-emph) .4s}
.founder-h.in em::after{transform:scaleX(1)}
.founder-sub{font-family:var(--serif);font-style:normal;font-weight:400;font-size:clamp(18px,1.6vw,20px);line-height:1.4;color:rgba(242,238,229,.85);margin:0}
.founder-sub em{font-style:italic;color:#B87333}
.founder-body{font-family:var(--sans);font-size:1.125rem;line-height:1.65;color:rgba(242,238,229,.85);margin:0;max-width:54ch}
.founder-body i.accent{font-style:italic;color:#B87333;font-family:inherit}
.founder-kicker{font-family:var(--serif);font-style:italic;font-size:1rem;line-height:1.5;color:rgba(242,238,229,.7);margin:0;max-width:46ch}

/* Reveal layers (fade + slide up, staggered) */
.founder .rv{opacity:0;transform:translateY(20px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.founder .rv.in{opacity:1;transform:none}
.founder-h{transition-delay:0s}
.founder-sub{transition-delay:.15s}
.founder-body{transition-delay:.3s}
.founder-kicker{transition-delay:.45s}

/* Tablet (<=1024px): tighten padding, still 2-col */
@media (max-width:1024px){
  .founder{padding:96px 32px}
  .founder-grid{grid-template-columns:2fr 3fr;gap:56px}
  .founder-photo{top:88px}
}

/* Mobile (<=900px): stack, photo first, contained, not sticky, simple fade */
@media (max-width:900px){
  .founder{padding:72px 24px}
  .founder-grid{grid-template-columns:1fr;gap:40px;max-width:560px}
  .founder-photo{position:static;margin:0 auto}
  .founder-photo img{max-height:60vh;width:100%}
  .founder-copy{gap:18px}
  .founder-h{font-size:clamp(32px,7vw,44px)}
  .founder-body{font-size:1rem}
}
@media (max-width:480px){
  .founder{padding:56px 20px}
  .founder-copy{gap:16px}
  .founder-h{font-size:30px}
  .founder-sub{font-size:17px}
  .founder-body{font-size:15.5px}
}

/* Reduced motion: no slides, no underline animation */
@media (prefers-reduced-motion: reduce){
  .founder .rv,.founder-h em::after{transition:none}
  .founder .rv{opacity:1;transform:none}
  .founder-h em::after{transform:scaleX(1);transition:none}
}

/* ================================================================
   §05 · ii Meet the videographer - cream paper with mirrored layout
   Same grid dimensions and typography as .founder, but:
   - Photo on the RIGHT (mirrored)
   - Cream/paper background (not charcoal)
   - Ink text (not cream)
   - 1:1 square photo aspect ratio
   Append to end of styles.css.
   ================================================================ */

.videographer{background:var(--paper);color:var(--ink);padding:120px 36px;position:relative}
.videographer-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;align-items:start;max-width:1280px;margin:0 auto}

/* Copy column - sits on the LEFT (photo is on the right) */
.videographer-copy{display:flex;flex-direction:column;gap:22px;padding:8px 0}
.videographer-label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.videographer-label::before{content:"";display:inline-block;width:28px;height:1px;background:var(--accent);margin-right:12px;vertical-align:middle;transform:translateY(-2px)}
.videographer-h{font-family:var(--serif);font-weight:400;font-size:clamp(40px,4.5vw,64px);line-height:1.05;letter-spacing:-.015em;margin:0;color:var(--ink);max-width:14ch}
.videographer-h em{font-style:italic;color:var(--ink);position:relative}
.videographer-h em::after{content:"";position:absolute;left:0;right:.08em;bottom:.02em;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease-emph) .4s}
.videographer-h.in em::after{transform:scaleX(1)}
.videographer-sub{font-family:var(--serif);font-style:normal;font-weight:400;font-size:clamp(18px,1.6vw,20px);line-height:1.4;color:var(--ink-soft);margin:0}
.videographer-sub em{font-style:italic;color:var(--accent)}
.videographer-body{font-family:var(--sans);font-size:1.125rem;line-height:1.65;color:var(--ink-soft);margin:0;max-width:54ch}
.videographer-body i.accent{font-style:italic;color:var(--accent);font-family:inherit}
.videographer-kicker{font-family:var(--serif);font-style:italic;font-size:1rem;line-height:1.5;color:var(--muted);margin:0;max-width:46ch}

/* Photo column - sits on the RIGHT (mirrored from founder), sticky on desktop, 1:1 square */
.videographer-photo{margin:0;position:sticky;top:96px;align-self:start}
.videographer-photo img{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;object-position:center;background:var(--paper-2);border-radius:8px}

/* Reveal layers (stagger matches founder section) */
.videographer .rv{opacity:0;transform:translateY(20px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.videographer .rv.in{opacity:1;transform:none}
.videographer-h{transition-delay:0s}
.videographer-sub{transition-delay:.15s}
.videographer-body{transition-delay:.3s}
.videographer-kicker{transition-delay:.45s}

/* Tablet (<=1024px) */
@media (max-width:1024px){
  .videographer{padding:96px 32px}
  .videographer-grid{grid-template-columns:1.4fr 1fr;gap:56px}
  .videographer-photo{top:88px}
}

/* Mobile (<=900px): stack, photo first, not sticky */
@media (max-width:900px){
  .videographer{padding:72px 24px}
  .videographer-grid{grid-template-columns:1fr;gap:40px;max-width:560px}
  .videographer-photo{grid-row:1;position:static;margin:0 auto;max-width:480px;width:100%}
  .videographer-copy{grid-row:2;gap:18px}
  .videographer-photo img{width:100%;aspect-ratio:1/1}
  .videographer-h{font-size:clamp(32px,7vw,44px)}
  .videographer-body{font-size:1rem}
}

/* Small phones (<=480px) */
@media (max-width:480px){
  .videographer{padding:56px 20px}
  .videographer-copy{gap:16px}
  .videographer-h{font-size:30px}
  .videographer-sub{font-size:17px}
  .videographer-body{font-size:15.5px}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .videographer .rv,.videographer-h em::after{transition:none}
  .videographer .rv{opacity:1;transform:none}
  .videographer-h em::after{transform:scaleX(1);transition:none}
}

/* ============================================
   IN MOTION - client reel grid (DIRTEA)
   ============================================ */
.in-motion{padding:140px 36px 120px;background:var(--paper);border-top:1px solid var(--line)}
.in-motion .im-inner{max-width:1280px;margin:0 auto}
.in-motion .im-head{margin-bottom:64px}
.in-motion .label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.in-motion .label::before{content:"";display:block;width:40px;height:1px;background:var(--ink);margin-bottom:14px}
.in-motion h3{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,72px);letter-spacing:-.02em;line-height:1;margin:0;color:var(--ink)}
.in-motion h3 em{font-style:italic;color:var(--accent)}
.im-context{font-family:var(--sans);font-size:14px;color:var(--ink-soft);line-height:1.6;margin:18px 0 0;max-width:560px}

.im-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px 32px}

/* Shared reel card */
.reel{margin:0;display:flex;flex-direction:column}
.reel-frame{position:relative;width:100%;background:var(--paper-2);overflow:hidden;border-radius:3px}
.reel-frame::before{content:"";display:block;padding-top:177.78%} /* 9:16 vertical */
.reel-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--paper-2);display:block}
.reel-audio{position:absolute;right:14px;bottom:14px;z-index:3;width:38px;height:38px;border-radius:50%;border:1px solid rgba(245,239,230,.55);background:rgba(11,11,10,.4);color:var(--paper);display:inline-flex;align-items:center;justify-content:center;cursor:none;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease)}
.reel-audio:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}
.reel-audio svg{width:16px;height:16px;display:block}
.reel-cap{display:flex;flex-direction:column;gap:6px;padding:18px 2px 0}
.reel-label{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.reel-desc{font-family:var(--sans);font-size:14.5px;line-height:1.5;color:var(--ink-soft)}

@media (max-width:900px){
  .in-motion{padding:80px 20px 72px}
  .in-motion .im-head{margin-bottom:36px}
  .im-grid{grid-template-columns:1fr;gap:40px}
}
@media (max-width:480px){
  .in-motion{padding:64px 16px 56px}
  .in-motion h3{font-size:34px}
  .in-motion .im-head{margin-bottom:28px}
  .reel-audio{width:34px;height:34px;right:12px;bottom:12px}
}

/* ============================================
   PRESENTER - on camera, on brief
   ============================================ */
.presenter{padding:140px 36px 140px;background:var(--paper);border-top:1px solid var(--line)}
.presenter .pr-inner{max-width:1280px;margin:0 auto}
.presenter .pr-head{margin-bottom:64px;max-width:800px}
.presenter .label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.presenter .label::before{content:"";display:block;width:40px;height:1px;background:var(--ink);margin-bottom:14px}
.presenter h3{font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,72px);letter-spacing:-.02em;line-height:1;margin:0 0 24px;color:var(--ink)}
.presenter h3 em{font-style:italic;color:var(--accent)}
.presenter .pr-body{font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--ink-soft);max-width:56ch;margin:0}

/* inline presenter video grid — 4 across on desktop, 2x2 on mobile */
.pr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:64px}
.presenter .reel-frame::before{padding-top:100%} /* square crop keeps each clip compact in the row */
.presenter .reel-video{object-position:center 15%} /* shift crop upward so face stays in frame */

/* Contact block */
.pr-contact{display:grid;grid-template-columns:1fr 1.4fr;gap:64px 80px;align-items:start;padding-top:64px;border-top:1px solid var(--line)}
.pr-contact-h{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,44px);letter-spacing:-.02em;line-height:1.1;margin:0 0 18px;color:var(--ink)}
.pr-contact-h em{font-style:italic;color:var(--accent)}
.pr-contact-body{font-family:var(--sans);font-size:15px;line-height:1.6;color:var(--ink-soft);max-width:38ch;margin:0 0 32px}
.pr-direct{display:flex;flex-direction:column;gap:10px}
.pr-direct a{font-family:var(--sans);font-size:15px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;width:fit-content;transition:border-color .25s var(--ease),color .25s var(--ease)}
.pr-direct a:hover{color:var(--accent);border-color:var(--accent)}

/* Form */
.pr-form{display:flex;flex-direction:column;gap:20px}
.pr-form-honey{display:none!important}
.pr-field{display:flex;flex-direction:column}
.pr-field .req{color:var(--accent)}
.pr-field .opt{text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:11px;color:var(--muted)}
/* Floating label wrapper */
.pr-float{position:relative;padding-top:20px}
.pr-float input{font-family:var(--sans);font-size:15px;color:var(--ink);background:transparent;border:none;border-bottom:1px solid var(--line);padding:6px 0;outline:none;border-radius:0;width:100%;transition:border-color .25s var(--ease);-webkit-appearance:none;appearance:none}
.pr-float input:focus{border-color:var(--ink)}
.pr-float input::placeholder{color:transparent}
/* Label sits inside the input at rest, lifts on focus/fill */
.pr-float label{position:absolute;left:0;top:20px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);pointer-events:none;transition:top .2s ease,font-size .2s ease,letter-spacing .2s ease,color .2s ease}
.pr-float input:focus~label,
.pr-float input:not(:placeholder-shown)~label{top:0;font-size:8.5px;letter-spacing:.14em;color:var(--accent)}
.pr-submit{align-self:flex-start;margin-top:8px;display:inline-flex;align-items:center;gap:14px;font-family:var(--mono);font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);padding:16px 26px;background:transparent;cursor:none;transition:background .3s var(--ease),color .3s var(--ease)}
.pr-submit:hover{background:var(--accent);color:var(--paper)}
.pr-submit .arr{display:inline-block;transition:transform .35s var(--ease)}
.pr-submit:hover .arr{transform:translateX(4px)}

@media (max-width:900px){
  .presenter{padding:80px 20px 80px}
  .presenter .pr-head{margin-bottom:40px}
  .pr-grid{grid-template-columns:repeat(2,1fr);gap:24px;margin-bottom:56px}
  .pr-contact{grid-template-columns:1fr;gap:48px;padding-top:48px}
  .pr-contact-body{max-width:none}
}
@media (max-width:480px){
  .presenter{padding:64px 16px 64px}
  .presenter h3{font-size:34px}
  .presenter .pr-head{margin-bottom:32px}
  .pr-grid{gap:16px;margin-bottom:40px}
  .pr-contact{gap:40px;padding-top:40px}
  .pr-submit{width:100%;justify-content:center}
}

/* Privacy policy line — shared across both forms */
.cb-privacy,.pr-privacy{font-family:var(--sans);font-size:12px;color:var(--muted);margin:12px 0 0;line-height:1.5}
.cb-privacy a,.pr-privacy a{color:var(--muted);text-decoration:underline;text-underline-offset:3px;transition:color .2s var(--ease)}
.cb-privacy a:hover,.pr-privacy a:hover{color:var(--ink)}

/* ============================================
   CALLBACK FORM — soft entry below hero
   ============================================ */
.callback{padding:48px 36px;background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cb-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1.5fr;gap:48px 80px;align-items:center}
.cb-h{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3vw,42px);letter-spacing:-.02em;line-height:1.1;margin:0 0 14px;color:var(--ink)}
.cb-h em{font-style:italic;color:var(--accent)}
.cb-sub{font-family:var(--sans);font-size:15px;line-height:1.6;color:var(--ink-soft);max-width:42ch;margin:0}
.cb-form{display:flex;flex-direction:column;gap:0}
.cb-honey{display:none!important}
.cb-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px 24px;margin-bottom:20px}
.cb-field{display:flex;flex-direction:column;gap:7px}
.cb-field label{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.cb-field .req{color:var(--accent)}
.cb-field .opt{text-transform:none;letter-spacing:0;font-family:var(--sans);font-size:11px}
.cb-field input{font-family:var(--sans);font-size:14.5px;color:var(--ink);background:transparent;border:none;border-bottom:1px solid var(--line);padding:8px 0;outline:none;border-radius:0;transition:border-color .25s var(--ease);-webkit-appearance:none}
.cb-field input:focus{border-color:var(--ink)}
.cb-field input::placeholder{color:var(--muted);opacity:.5}
.cb-footer{display:flex;align-items:baseline;gap:24px;flex-wrap:wrap}
.cb-submit{display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);padding:14px 22px;background:transparent;cursor:none;white-space:nowrap;transition:background .3s var(--ease),color .3s var(--ease)}
.cb-submit:hover{background:var(--accent);color:var(--paper)}
.cb-submit .arr{display:inline-block;transition:transform .35s var(--ease)}
.cb-submit:hover .arr{transform:translateX(4px)}

@media (max-width:900px){
  .callback{padding:40px 20px}
  .cb-inner{grid-template-columns:1fr;gap:32px}
  .cb-sub{max-width:none}
  .cb-fields{grid-template-columns:1fr 1fr;gap:14px 20px}
}
@media (max-width:480px){
  .callback{padding:48px 16px}
  .cb-h{font-size:26px}
  .cb-fields{grid-template-columns:1fr;gap:14px}
  .cb-submit{width:100%;justify-content:center}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .in-motion .rv,.presenter .rv,.callback .rv{opacity:1;transform:none;transition:none}
  .pr-submit .arr,.cb-submit .arr{transition:none}
}

/* ─── Contact form (replaces Calendly §11) ─────────────────────────────── */
.contact-form{padding:96px 36px;background:var(--paper);border-top:1px solid var(--line)}
.cf-inner{max-width:860px;margin:0 auto}
.cf-head{margin-bottom:52px}
.contact-form .label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.contact-form .label::before{content:"";display:block;width:40px;height:1px;background:var(--ink);margin-bottom:14px}
.contact-form h3{font-family:var(--serif);font-weight:400;font-size:clamp(36px,4.5vw,64px);letter-spacing:-.02em;line-height:1;margin:0 0 20px;color:var(--ink)}
.contact-form h3 em{font-style:italic;color:var(--accent)}
.cf-sub{font-family:var(--sans);font-size:15px;color:var(--ink-soft);line-height:1.6;margin:0;max-width:44ch}

.cf-form{width:100%}
.cf-honey{display:none}
.cf-fields{display:grid;grid-template-columns:1fr 1fr;gap:36px 40px;margin-bottom:40px}
.cf-field{display:flex;flex-direction:column;gap:10px}
.cf-field label{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.cf-field .req{color:var(--accent)}
.cf-field .opt{text-transform:none;letter-spacing:0;font-size:11px;font-weight:400}
.cf-field input{font-family:var(--sans);font-size:15px;color:var(--ink);background:transparent;border:none;border-bottom:1.5px solid var(--line);padding:10px 0;outline:none;border-radius:0;transition:border-color .25s var(--ease);-webkit-appearance:none;width:100%}
.cf-field input:focus{border-color:var(--ink)}
.cf-field input::placeholder{color:var(--muted);opacity:.4}

.cf-footer{display:flex;align-items:baseline;gap:28px;flex-wrap:wrap}
.cf-submit{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--paper);background:var(--ink);border:1px solid var(--ink);padding:16px 28px;border-radius:2px;cursor:none;white-space:nowrap;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.cf-submit:hover{background:var(--accent);border-color:var(--accent)}
.cf-submit .arr{display:inline-block;transition:transform .35s var(--ease)}
.cf-submit:hover .arr{transform:translateX(4px)}
.cf-privacy{font-family:var(--sans);font-size:12px;color:var(--muted);margin:0;line-height:1.5}
.cf-privacy a{color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.cf-privacy a:hover{color:var(--ink)}

.cf-success{padding:48px 0}
.cf-success p{font-family:var(--serif);font-size:clamp(22px,3vw,36px);font-weight:400;font-style:italic;color:var(--ink);margin:0}

@media (max-width:700px){
  .contact-form{padding:64px 20px}
  .cf-fields{grid-template-columns:1fr;gap:28px}
  .cf-submit{width:100%;justify-content:center}
}
@media (max-width:480px){
  .contact-form{padding:48px 16px}
}

/* ============================================================
   HERO CTA ROW (dual CTAs)
   ============================================================ */
.hero-cta-row{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:6px}
.hero .hero-panel-cta{align-self:auto;margin-top:0}
.hero-panel-cta-secondary{display:inline-block;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);border:1px solid var(--ink);padding:14px 20px;text-decoration:none;transition:background .3s var(--ease),color .3s var(--ease)}
.hero-panel-cta-secondary:hover{background:var(--ink);color:var(--paper)}

/* ============================================================
   MID-PAGE CTA SECTION
   ============================================================ */
.mid-cta{background:var(--ink);color:var(--paper);padding:80px 40px;text-align:center}
.mid-cta-inner{max-width:700px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:32px}
.mid-cta-text{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.3;color:var(--paper);margin:0}
.mid-cta-btn{display:inline-block;padding:14px 28px;background:var(--accent);color:#fff;font-family:var(--sans);font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;border:1px solid var(--accent);transition:background .3s var(--ease),color .3s var(--ease)}
.mid-cta-btn:hover{background:transparent;color:var(--accent)}
@media(max-width:640px){.mid-cta{padding:60px 24px}}

/* ============================================================
   STICKY MOBILE CTA BAR
   ============================================================ */
.sticky-mob{position:fixed;bottom:0;left:0;right:0;z-index:900;transform:translateY(100%);transition:transform .4s cubic-bezier(.22,1,.36,1);pointer-events:none}
.sticky-mob.visible{transform:translateY(0);pointer-events:auto}
.sticky-mob-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;border:none;cursor:pointer;border-top:1px solid rgba(242,236,224,.15)}
.sticky-mob-icon{font-size:18px;transition:transform .3s var(--ease)}
.sticky-mob.open .sticky-mob-icon{transform:rotate(180deg)}
.sticky-mob-panel{background:var(--ink);border-top:1px solid rgba(242,236,224,.1);max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.22,1,.36,1)}
.sticky-mob.open .sticky-mob-panel{max-height:300px}
.sticky-mob-option{display:flex;flex-direction:column;padding:16px 24px;border-bottom:1px solid rgba(242,236,224,.08);text-decoration:none;transition:background .2s}
.sticky-mob-option:hover{background:rgba(242,236,224,.06)}
.sticky-mob-opt-label{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--paper)}
.sticky-mob-opt-sub{font-family:var(--mono);font-size:11px;color:rgba(242,236,224,.5);margin-top:2px}
@media(min-width:768px){.sticky-mob{display:none}}

/* ============================================================
   CTA SECTION — PRICING & ROSTER COPY (Task 2)
   ============================================================ */
.cta-pricing{margin-top:28px;max-width:52ch;color:rgba(242,236,224,.5);font-family:var(--mono);font-size:12px;letter-spacing:.08em;line-height:1.6}
.cta-roster{margin-top:12px;max-width:52ch;color:rgba(242,236,224,.7);font-family:var(--sans);font-size:15px;line-height:1.6}

/* ============================================================
   PRESENTER VIDEO GRID — LIGHTBOX THUMBNAILS (Task 1)
   ============================================================ */
/* The pr-video class is used for the On Camera presenter clips.
   They use preload="metadata" (first-frame poster) and open in
   a lightbox on click — no IntersectionObserver autoplay. */
.pr-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--paper-2);display:block}
.pr-frame{cursor:pointer}
.pr-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:2;transition:opacity .25s var(--ease)}
.pr-play svg{width:36px;height:36px;color:var(--paper);opacity:.8;filter:drop-shadow(0 2px 8px rgba(11,11,10,.5));transition:transform .25s var(--ease),opacity .25s var(--ease)}
.pr-frame:hover .pr-play svg{opacity:1;transform:scale(1.1)}
.pr-item .reel-frame{cursor:pointer}

/* Success state */
.pr-success{padding:48px 0}
.pr-success p{font-family:var(--serif);font-size:clamp(20px,2.5vw,32px);font-weight:400;font-style:italic;color:var(--ink);margin:0}
.pr-form-wrap{display:contents}

/* ============================================================
   LIGHTBOX — VIDEO (Task 1)
   ============================================================ */
.lightbox .lb-video{max-width:min(92vw,520px);max-height:88vh;object-fit:contain;display:block;border-radius:2px}
@media(max-width:600px){.lightbox .lb-video{max-width:96vw}}

/* ================================================================
   MOBILE OPTIMISATION — comprehensive responsive pass
   ================================================================ */

/* BLOCK A — Touch device / hover:none guard */
@media (hover: none) {
  /* Prevent jarring hover fill-animation firing on tap for service rows */
  .svc::before { display: none }
  .svc:hover, .svc:active { padding: 28px 0 }
  .svc:hover .title { transform: none }
  .svc:hover .num, .svc:hover .desc, .svc:hover .tags span { color: inherit }
  /* Restore cursors for touch */
  body { cursor: auto }
  button, a { cursor: pointer }
  .pr-submit, .cb-submit, .services-dcta { cursor: pointer }
}

/* BLOCK B — @media (max-width: 767px) overrides (supplement existing rules) */
@media (max-width: 767px) {
  /* Nav: tighten horizontal padding on phone */
  .nav { padding: 18px 20px }

  /* Philosophy image: landscape crop is less tall on single-column mobile */
  .intro-grid .philosophy-fig img { aspect-ratio: 4/3 }

  /* About figs: 2-col keeps gallery compact; switch from 9:16 to 3:4 so each
     isn't a 620px tower — grid of 4 portrait images at ~217px each is ideal */
  .about-figs { grid-template-columns: 1fr 1fr; gap: 12px }
  .about-hero-fig img { aspect-ratio: 3/4 }
  .about-hero-fig--small img { aspect-ratio: 3/4 }

  /* Services head: stack label + subtitle on narrow screens */
  .services .head { flex-direction: column; gap: 8px }

  /* Services accent CTA: full-width, tap-friendly */
  .services-dcta { width: 100%; justify-content: center; min-height: 52px; margin-top: 28px; padding: 20px 24px }

  /* Partnership body: remove 46ch cap — column is already narrow on phone */
  .partner-teaser .pt-body { max-width: none }

  /* Client logo grid: smaller type so long names don't overflow 2-col cells */
  .logos .l { font-size: 14px; line-height: 1.3; padding: 6px 4px; text-align: center }

  /* DIRTEA reel grid: restore 2-col on phone (900px rule makes it 1-col which
     creates four 620px-tall reels stacked — 2-col at 163px×290px is far better) */
  .im-grid { grid-template-columns: 1fr 1fr; gap: 20px 16px }

  /* Form inputs: ensure 44px minimum tap target */
  .pr-float input, .cb-field input { min-height: 44px }

  /* Footer wordmark: match 20px mobile side padding (not 36px desktop) */
  footer .wordmark { margin-left: -20px; margin-right: -20px }

  /* CTA section minor type refinements */
  .cta-pricing { font-size: 11px }
  .cta-roster { font-size: 14px }
}

/* BLOCK C — @media (max-width: 480px) small phone overrides */
@media (max-width: 480px) {
  /* Nav: tightest padding */
  .nav { padding: 16px 20px }

  /* Client logos: even smaller type for iPhone SE */
  .logos .l { font-size: 13px; padding: 4px 3px }

  /* Hero CTA row: reduce gap so both buttons fit side by side */
  .hero-cta-row { gap: 12px }

  /* Mid-CTA button: minimum tap height */
  .mid-cta-btn { min-height: 48px; display: inline-flex; align-items: center }

  /* DIRTEA reels: keep 2-col, tighten gap */
  .im-grid { gap: 14px 12px }
}

/* BLOCK D — iOS safe area for sticky bar */
@supports (padding: max(0px)) {
  .sticky-mob-trigger {
    padding-bottom: max(16px, calc(env(safe-area-inset-bottom) + 10px))
  }
}
