/* ============================================================
   Cinemotion360 — editorial system
   Paper, ink, one bronze rule. Nothing decorative that isn't
   doing work.
   ============================================================ */

:root{
  --paper:        #F1EDE6;
  --paper-raised: #FBF9F5;
  --paper-deep:   #E7E1D7;
  --ink:          #16130F;
  --ink-soft:     #4B443B;
  --muted:        #8B8276;
  --bronze:       #8A6B2E;
  --bronze-lite:  #C9A84C;
  --rule:         rgba(22,19,15,.15);
  --rule-soft:    rgba(22,19,15,.08);
  --rule-strong:  rgba(22,19,15,.34);

  --serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --sans:  "Archivo", "Helvetica Neue", Helvetica, Arial, sans-serif;

  --gutter: clamp(20px, 5vw, 72px);
  --maxw: 1320px;
  --rhythm: clamp(72px, 11vh, 140px);

  --ease: cubic-bezier(.2,.7,.25,1);
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:clamp(15.5px,.55vw + 14px,17px);
  line-height:1.62;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-variant-numeric:tabular-nums;
  overflow-x:hidden;
}
img,svg,video{ max-width:100%; display:block; }
a{ color:inherit; }
button{ font:inherit; color:inherit; }
h1,h2,h3,h4,p,figure,blockquote,dl,dd{ margin:0; }
ul,ol{ margin:0; padding:0; list-style:none; }

/* ---------- paper grain ---------- */
body::after{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  z-index:900;
  opacity:.05;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- type primitives ---------- */
.display{
  font-family:var(--serif);
  font-weight:300;
  font-optical-sizing:auto;
  line-height:.98;
  letter-spacing:-.022em;
  font-size:clamp(2.9rem, 7.4vw, 6.6rem);
}
.display em{ font-style:italic; font-weight:300; }
.h2{
  font-family:var(--serif);
  font-weight:300;
  line-height:1.03;
  letter-spacing:-.02em;
  font-size:clamp(2.1rem,4.4vw,3.9rem);
}
.h3{
  font-family:var(--serif);
  font-weight:400;
  line-height:1.12;
  letter-spacing:-.012em;
  font-size:clamp(1.35rem,2vw,1.85rem);
}
.label{
  font-family:var(--sans);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
}
.label--bronze{ color:var(--bronze); }
.lede{
  font-size:clamp(1.05rem,1.25vw,1.22rem);
  line-height:1.55;
  color:var(--ink-soft);
  max-width:46ch;
}
.body-copy{ color:var(--ink-soft); max-width:62ch; }
.body-copy + .body-copy{ margin-top:1.1em; }
.numeral{ font-family:var(--serif); font-weight:300; font-variant-numeric:lining-nums tabular-nums; }

@media (max-width:640px){
  .display br,.h2 br,.spread__quote br,.colophon__word br{ display:none; }
}

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--rhythm); }
.section--tight{ padding-block:calc(var(--rhythm) * .6); }
.rule{ height:1px; background:var(--rule); border:0; }
.grid{ display:grid; gap:clamp(24px,3vw,48px); }

.section-head{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:18px;
  margin-bottom:clamp(36px,5vw,64px);
}
@media (min-width:900px){
  .section-head{ grid-template-columns:minmax(0,7fr) minmax(0,4fr); gap:clamp(32px,5vw,80px); align-items:end; }
  .section-head__aside{ padding-bottom:.45rem; }
}

/* ---------- header ---------- */
.masthead{
  position:sticky; top:0; z-index:800;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(1.1);
  border-bottom:1px solid var(--rule);
}
.masthead__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  height:clamp(64px,8vh,78px);
}
.mark{ display:inline-flex; align-items:center; gap:11px; text-decoration:none; }
.mark__glyph{ width:26px; height:26px; flex:none; }
.mark__word{
  font-family:var(--sans);
  font-size:.86rem; font-weight:600;
  letter-spacing:.17em; text-transform:uppercase;
}
.mark__word i{ font-style:normal; color:var(--bronze); }

.nav{ display:none; }
@media (min-width:940px){
  .nav{ display:flex; align-items:center; gap:clamp(22px,2.6vw,40px); }
}
.nav a{
  position:relative;
  text-decoration:none;
  font-size:.74rem; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-soft);
  padding-block:6px;
}
.nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0;
  height:1px; background:var(--ink);
  transition:right .4s var(--ease);
}
.nav a:hover::after,.nav a:focus-visible::after{ right:0; }
.nav a[aria-current="page"]{ color:var(--ink); }
.nav a[aria-current="page"]::after{ right:0; background:var(--bronze); }

.masthead .btn{ display:none; }
@media (min-width:940px){ .masthead .btn{ display:inline-flex; } }

.burger{
  display:inline-flex; flex-direction:column; justify-content:center; gap:5px;
  width:44px; height:44px; padding:0 10px;
  background:none; border:0; cursor:pointer;
}
.burger span{ height:1px; background:var(--ink); transition:transform .35s var(--ease), opacity .2s; }
.burger[aria-expanded="true"] span:first-child{ transform:translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:last-child{ transform:translateY(-6px) rotate(-45deg); }
@media (min-width:940px){ .burger{ display:none; } }

.drawer{
  position:fixed; inset:0; z-index:790;
  background:var(--paper);
  padding:clamp(88px,14vh,140px) var(--gutter) var(--gutter);
  display:flex; flex-direction:column; justify-content:space-between;
  transform:translateY(-101%);
  transition:transform .5s var(--ease);
}
.drawer[data-open="true"]{ transform:translateY(0); }
.drawer a{ text-decoration:none; }
.drawer__links{ display:grid; gap:2px; }
.drawer__links a{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(2rem,9vw,3rem);
  line-height:1.25;
  border-bottom:1px solid var(--rule-soft);
  padding-block:.28em;
  display:flex; justify-content:space-between; align-items:baseline;
}
.drawer__links a span{ font-family:var(--sans); font-size:.66rem; letter-spacing:.18em; color:var(--muted); }
.drawer__foot{ display:grid; gap:14px; padding-top:32px; }

/* ---------- buttons ---------- */
.btn{
  --btn-bg:var(--ink); --btn-fg:var(--paper-raised);
  display:inline-flex; align-items:center; gap:.7em;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1px solid var(--btn-bg);
  text-decoration:none;
  font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  padding:1.05em 1.6em;
  min-height:46px;
  border-radius:1px;
  cursor:pointer;
  transition:background .35s var(--ease), color .35s var(--ease), transform .35s var(--ease);
}
.btn:hover{ transform:translateY(-1px); background:var(--bronze); border-color:var(--bronze); color:#fff; }
.btn--ghost{ --btn-bg:transparent; --btn-fg:var(--ink); border-color:var(--rule-strong); }
.btn--ghost:hover{ background:var(--ink); border-color:var(--ink); color:var(--paper-raised); }
.btn--light{ --btn-bg:var(--paper-raised); --btn-fg:var(--ink); }
.btn__arrow{ transition:transform .35s var(--ease); }
.btn:hover .btn__arrow{ transform:translateX(4px); }

.link-under{
  display:inline-flex; align-items:center; gap:.6em;
  text-decoration:none;
  font-size:.74rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  border-bottom:1px solid var(--rule-strong);
  padding-bottom:.5em;
  transition:border-color .3s var(--ease), color .3s var(--ease);
}
.link-under:hover{ color:var(--bronze); border-color:var(--bronze); }
.link-under svg{ transition:transform .35s var(--ease); }
.link-under:hover svg{ transform:translateX(4px); }

/* ---------- hero ---------- */
.hero{ padding-top:clamp(48px,8vh,96px); padding-bottom:clamp(36px,6vh,64px); }
.hero__grid{ display:grid; gap:clamp(28px,4vw,56px); }
@media (min-width:1000px){
  .hero__grid{ grid-template-columns:minmax(0,7.2fr) minmax(0,3.8fr); align-items:end; }
}
.hero__eyebrow{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-bottom:clamp(24px,4vh,44px); }
.hero__eyebrow .dot{ width:5px; height:5px; border-radius:50%; background:var(--bronze); }
.hero h1{ max-width:14ch; }
.hero__aside{ display:grid; gap:22px; }
@media (min-width:1000px){ .hero__aside{ padding-bottom:.9rem; border-left:1px solid var(--rule); padding-left:clamp(24px,2.6vw,40px); } }
.hero__cta{ display:flex; flex-wrap:wrap; gap:12px; }

.availability{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.72rem; font-weight:500; letter-spacing:.13em; text-transform:uppercase;
  color:var(--ink-soft);
}
.availability .pip{
  width:7px; height:7px; border-radius:50%; background:var(--bronze);
  box-shadow:0 0 0 0 rgba(138,107,46,.5);
  animation:pip 2.8s var(--ease) infinite;
}
@keyframes pip{ 0%{box-shadow:0 0 0 0 rgba(138,107,46,.45);} 70%{box-shadow:0 0 0 9px rgba(138,107,46,0);} 100%{box-shadow:0 0 0 0 rgba(138,107,46,0);} }
@media (prefers-reduced-motion: reduce){ .availability .pip{ animation:none; } }

/* ---------- folio stats ---------- */
.folio{ border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.folio__row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (min-width:760px){ .folio__row{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.folio__cell{ padding:clamp(20px,3vw,32px) clamp(14px,2vw,28px) clamp(20px,3vw,30px) 0; }
.folio__cell + .folio__cell{ border-left:1px solid var(--rule); padding-left:clamp(16px,2vw,28px); }
@media (max-width:759px){
  .folio__cell:nth-child(3){ border-left:0; padding-left:0; border-top:1px solid var(--rule); }
  .folio__cell:nth-child(4){ border-top:1px solid var(--rule); }
}
.folio__num{ font-family:var(--serif); font-weight:300; font-size:clamp(2rem,3.6vw,3rem); line-height:1; letter-spacing:-.02em; }
.folio__num sup{ font-size:.42em; top:-.9em; color:var(--bronze); }
.folio__cap{ margin-top:10px; font-size:.68rem; letter-spacing:.17em; text-transform:uppercase; color:var(--muted); }

/* ---------- ticker ---------- */
.ticker{ overflow:hidden; border-bottom:1px solid var(--rule); padding-block:14px; }
.ticker__track{ display:flex; width:max-content; animation:slide 42s linear infinite; }
.ticker__track:hover{ animation-play-state:paused; }
.ticker span{
  font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted);
  padding-inline:22px; white-space:nowrap;
}
.ticker span i{ color:var(--bronze); font-style:normal; }
@keyframes slide{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .ticker__track{ animation:none; } }

/* ---------- service index ---------- */
.index-list{ border-top:1px solid var(--rule); }
.index-row{
  display:grid; gap:6px 26px;
  grid-template-columns:auto 1fr auto;
  grid-template-areas:"num title arrow" ". body body" ". meta meta";
  align-items:baseline;
  padding-block:clamp(22px,3vw,34px);
  border-bottom:1px solid var(--rule);
  text-decoration:none;
  transition:padding-inline .45s var(--ease), background .45s var(--ease);
}
@media (min-width:900px){
  .index-row{
    grid-template-columns:56px minmax(0,4fr) minmax(0,5fr) auto;
    grid-template-areas:"num title body arrow" "num meta body arrow";
    row-gap:10px;
  }
}
.index-row:hover{ background:var(--paper-raised); padding-inline:clamp(10px,1.6vw,22px); }
.index-row__num{ grid-area:num; font-family:var(--serif); font-size:.95rem; color:var(--muted); transition:color .35s var(--ease); }
.index-row:hover .index-row__num{ color:var(--bronze); }
.index-row__title{ grid-area:title; font-family:var(--serif); font-weight:300; font-size:clamp(1.55rem,2.9vw,2.35rem); line-height:1.05; letter-spacing:-.018em; }
.index-row__body{ grid-area:body; color:var(--ink-soft); font-size:.97rem; max-width:52ch; }
.index-row__meta{ grid-area:meta; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--bronze); }
.index-row__arrow{ grid-area:arrow; align-self:center; color:var(--muted); transition:transform .4s var(--ease), color .35s var(--ease); }
.index-row:hover .index-row__arrow{ transform:translateX(6px); color:var(--ink); }

/* ---------- statement spread ---------- */
.spread{ display:grid; gap:clamp(28px,4vw,64px); align-items:start; }
@media (min-width:960px){ .spread{ grid-template-columns:minmax(0,6fr) minmax(0,5fr); } }
.spread__quote{ font-family:var(--serif); font-weight:300; font-size:clamp(1.9rem,3.9vw,3.2rem); line-height:1.08; letter-spacing:-.02em; }
.spread__quote em{ font-style:italic; color:var(--bronze); }
.stack{ display:grid; gap:clamp(18px,2.4vw,28px); }
.note{
  border-left:1px solid var(--bronze);
  padding:2px 0 2px 20px;
  color:var(--ink-soft);
  max-width:52ch;
}

/* ---------- ledger (process) ---------- */
.ledger{ display:grid; gap:0; border-top:1px solid var(--rule); }
@media (min-width:860px){ .ledger{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.ledger__item{ padding:clamp(26px,3vw,40px) clamp(18px,2vw,30px) clamp(26px,3vw,44px) 0; border-bottom:1px solid var(--rule); }
@media (min-width:860px){
  .ledger__item{ border-bottom:0; }
  .ledger__item + .ledger__item{ border-left:1px solid var(--rule); padding-left:clamp(18px,2vw,30px); }
}
.ledger__num{ font-size:.68rem; letter-spacing:.2em; color:var(--bronze); }
.ledger__item h3{ margin:14px 0 10px; }
.ledger__item p{ color:var(--ink-soft); font-size:.94rem; }

/* ---------- quotes ---------- */
.quotes{ display:grid; gap:clamp(28px,4vw,56px); }
@media (min-width:860px){ .quotes{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.quote{ display:grid; gap:18px; align-content:start; }
.quote__stars{ color:var(--bronze); font-size:.8rem; letter-spacing:.3em; }
.quote blockquote{
  font-family:var(--serif); font-weight:300;
  font-size:clamp(1.3rem,2.2vw,1.75rem); line-height:1.28; letter-spacing:-.012em;
  text-wrap:pretty;
}
.quote figcaption{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.quote figcaption b{ color:var(--ink); font-weight:600; }

/* ---------- media frames / instagram ---------- */
.frames{ display:grid; gap:clamp(14px,1.8vw,26px); grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (min-width:900px){ .frames{ grid-template-columns:repeat(4,minmax(0,1fr)); } }
.frame{
  position:relative; display:block; text-decoration:none;
  background:var(--paper-raised);
  border:1px solid var(--rule);
  aspect-ratio:4/5;
  overflow:hidden;
  transition:border-color .4s var(--ease), transform .5s var(--ease);
}
.frame--tall{ aspect-ratio:9/16; }
@media (min-width:900px){ .frame:nth-child(even){ transform:translateY(clamp(14px,2.4vw,34px)); } }
.frame:hover{ border-color:var(--ink); }
.frame__meta{
  position:absolute; inset:auto 0 0 0;
  display:flex; justify-content:space-between; align-items:baseline; gap:10px;
  padding:14px 16px;
  font-size:.63rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted);
}
.frame__meta b{ color:var(--ink); font-weight:600; }
.frame__mark{
  position:absolute; inset:0;
  display:grid; place-items:center;
  color:var(--rule-strong);
}
.frame__mark svg{ width:34%; opacity:.5; transition:opacity .5s var(--ease), transform .8s var(--ease); }
.frame:hover .frame__mark svg{ opacity:.85; transform:rotate(24deg); }
.frame img,.frame video{ width:100%; height:100%; object-fit:cover; }

.ig-embed-grid{ display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.ig-embed-grid blockquote{ margin:0 !important; min-width:0 !important; width:100% !important; }

/* ---------- faq ---------- */
.faq{ border-top:1px solid var(--rule); }
.faq details{ border-bottom:1px solid var(--rule); }
.faq summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:baseline; justify-content:space-between; gap:24px;
  padding-block:clamp(20px,2.4vw,28px);
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.1rem,1.9vw,1.45rem); line-height:1.25; letter-spacing:-.01em;
  transition:color .3s var(--ease);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--bronze); }
.faq summary .sign{ flex:none; width:14px; height:14px; position:relative; margin-top:.35em; }
.faq summary .sign::before,.faq summary .sign::after{
  content:""; position:absolute; inset:50% 0 auto 0; height:1px; background:currentColor;
  transition:transform .35s var(--ease);
}
.faq summary .sign::after{ transform:rotate(90deg); }
.faq details[open] summary .sign::after{ transform:rotate(0deg); }
.faq__body{ padding-bottom:clamp(22px,2.6vw,32px); color:var(--ink-soft); max-width:68ch; }

/* ---------- rate tables ---------- */
.service-block{ padding-block:clamp(48px,7vw,90px); border-top:1px solid var(--rule); }
.service-block__head{ display:grid; gap:20px; }
@media (min-width:1000px){
  .service-block__head{ grid-template-columns:56px minmax(0,5fr) minmax(0,5fr); gap:clamp(28px,4vw,64px); align-items:start; }
}
.service-block__num{ font-family:var(--serif); font-size:1rem; color:var(--bronze); }
.service-block__kicker{ margin-top:14px; font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }

.rate{ width:100%; border-collapse:collapse; margin-top:clamp(28px,3.5vw,44px); }
.rate caption{ text-align:left; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); padding-bottom:14px; }
.rate th,.rate td{ text-align:left; padding:clamp(14px,1.6vw,20px) 16px clamp(14px,1.6vw,20px) 0; border-bottom:1px solid var(--rule); vertical-align:top; }
.rate thead th{ font-size:.66rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); border-bottom:1px solid var(--rule-strong); }
.rate tbody th{ font-family:var(--serif); font-weight:400; font-size:1.12rem; letter-spacing:-.01em; white-space:nowrap; }
.rate tbody tr:hover{ background:var(--paper-raised); }
.rate td.price{ font-family:var(--serif); font-size:1.15rem; white-space:nowrap; text-align:right; padding-right:0; }
.rate .dur{ color:var(--ink-soft); white-space:nowrap; }
.rate .incl{ color:var(--ink-soft); font-size:.93rem; }
.tag{
  display:inline-block; margin-left:10px; vertical-align:middle;
  font-family:var(--sans); font-size:.58rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--bronze); border:1px solid var(--bronze); border-radius:1px; padding:.3em .55em;
}
@media (max-width:720px){
  .rate thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .rate tbody tr{ display:grid; gap:6px; padding-block:20px; border-bottom:1px solid var(--rule); }
  .rate th,.rate td{ border:0; padding:0; }
  .rate td.price{ text-align:left; }
  .rate tbody th{ white-space:normal; }
}
.fineprint{ margin-top:18px; font-size:.84rem; color:var(--muted); max-width:66ch; }

.cols{ display:grid; gap:clamp(24px,3vw,48px); }
@media (min-width:700px){ .cols{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.spec h4{ font-size:.68rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin:0 0 14px; }
.spec li{ padding-block:9px; border-bottom:1px solid var(--rule-soft); color:var(--ink-soft); font-size:.95rem; }

/* ---------- dark band ---------- */
.band{ background:var(--ink); color:var(--paper-raised); }
.band .label{ color:rgba(251,249,245,.55); }
.band .h2{ color:var(--paper-raised); }
.band p{ color:rgba(251,249,245,.72); }
.band .btn{ --btn-bg:var(--paper-raised); --btn-fg:var(--ink); }
.band .btn--ghost{ --btn-bg:transparent; --btn-fg:var(--paper-raised); border-color:rgba(251,249,245,.3); }
.band .btn--ghost:hover{ background:var(--paper-raised); color:var(--ink); border-color:var(--paper-raised); }
.band__inner{ display:grid; gap:clamp(26px,3.5vw,52px); align-items:end; }
@media (min-width:900px){ .band__inner{ grid-template-columns:minmax(0,7fr) minmax(0,4fr); } }

/* ---------- about ---------- */
.pullquote{
  font-family:var(--serif); font-weight:300; font-style:italic;
  font-size:clamp(1.8rem,4vw,3rem); line-height:1.12; letter-spacing:-.02em;
  padding-block:clamp(30px,5vw,60px);
  border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  text-wrap:balance;
}
.checks li{
  display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start;
  padding-block:18px; border-bottom:1px solid var(--rule);
  color:var(--ink-soft);
}
.checks li span{ color:var(--bronze); font-size:.8rem; line-height:1.9; }

/* ---------- form ---------- */
.form-shell{ display:grid; gap:clamp(36px,5vw,80px); }
@media (min-width:1040px){ .form-shell{ grid-template-columns:minmax(0,7fr) minmax(0,4fr); align-items:start; } }
.fieldset{ border:0; padding:0; margin:0 0 clamp(34px,4vw,52px); }
.fieldset legend{
  display:block; width:100%;
  padding:0 0 16px; margin-bottom:26px;
  border-bottom:1px solid var(--rule-strong);
  font-size:.68rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--ink);
}
.fieldset legend b{ color:var(--bronze); font-weight:600; margin-right:12px; }
.field-grid{ display:grid; gap:clamp(20px,2.4vw,28px); }
@media (min-width:640px){ .field-grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.field{ display:grid; gap:9px; }
.field label{ font-size:.68rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); }
.field label .req{ color:var(--bronze); }
.field input,.field select,.field textarea{
  font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:transparent;
  border:0; border-bottom:1px solid var(--rule-strong);
  border-radius:0;
  padding:12px 2px;
  min-height:46px;
  width:100%;
  transition:border-color .3s var(--ease);
  appearance:none;
}
.field textarea{ min-height:130px; resize:vertical; line-height:1.6; }
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238B8276' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 4px center;
  padding-right:26px;
  cursor:pointer;
}
.field input:focus,.field select:focus,.field textarea:focus{ outline:0; border-color:var(--bronze); }
.field input::placeholder,.field textarea::placeholder{ color:rgba(139,130,118,.7); }
.field[data-invalid="true"] input,.field[data-invalid="true"] select,.field[data-invalid="true"] textarea{ border-color:#A8341F; }
.field__error{ font-size:.72rem; letter-spacing:.04em; color:#A8341F; display:none; }
.field[data-invalid="true"] .field__error{ display:block; }

.checkline{ display:flex; flex-wrap:wrap; gap:10px; }
.checkline label{
  display:inline-flex; align-items:center; gap:9px;
  border:1px solid var(--rule-strong); border-radius:1px;
  padding:.75em 1em; min-height:44px;
  font-size:.72rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft);
  cursor:pointer; transition:border-color .3s var(--ease), color .3s var(--ease);
}
.checkline input{ accent-color:var(--bronze); width:15px; height:15px; }
.checkline label:has(input:checked){ border-color:var(--bronze); color:var(--ink); }

.step[hidden]{ display:none; }

.aside-card{ border:1px solid var(--rule); background:var(--paper-raised); padding:clamp(24px,3vw,34px); display:grid; gap:22px; }
.aside-card dl{ display:grid; gap:16px; }
.aside-card dt{ font-size:.65rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:4px; }
.aside-card dd{ font-size:.98rem; }
.aside-card a{ text-decoration:none; border-bottom:1px solid var(--rule-strong); }
.aside-card a:hover{ color:var(--bronze); border-color:var(--bronze); }

.form-success{ border:1px solid var(--bronze); padding:clamp(30px,5vw,56px); display:grid; gap:18px; justify-items:start; }

/* ---------- footer ---------- */
.colophon{ border-top:1px solid var(--rule); padding-block:clamp(48px,6vw,80px) 28px; }
.colophon__top{ display:grid; gap:clamp(30px,4vw,56px); }
@media (min-width:900px){ .colophon__top{ grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2fr)); } }
.colophon h4{ font-size:.65rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin:0 0 16px; }
.colophon li{ padding-block:5px; }
.colophon a{ text-decoration:none; color:var(--ink-soft); font-size:.93rem; transition:color .3s var(--ease); }
.colophon a:hover{ color:var(--bronze); }
.colophon__word{ font-family:var(--serif); font-weight:300; font-size:clamp(1.6rem,2.6vw,2.1rem); line-height:1.1; letter-spacing:-.02em; max-width:16ch; }
.colophon__bottom{
  margin-top:clamp(40px,5vw,64px); padding-top:22px; border-top:1px solid var(--rule);
  display:flex; flex-wrap:wrap; gap:14px 26px; justify-content:space-between;
  font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
}

/* ---------- utilities ---------- */
[hidden]{ display:none !important; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:1000;
  background:var(--ink); color:var(--paper); padding:14px 20px;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; text-decoration:none;
}
.skip:focus{ left:12px; top:12px; }
:focus-visible{ outline:2px solid var(--bronze); outline-offset:3px; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.mt-s{ margin-top:18px; } .mt-m{ margin-top:clamp(26px,3vw,40px); } .mt-l{ margin-top:clamp(40px,5vw,64px); }
.measure{ max-width:58ch; }

/* ---------- reveal ---------- */
.js [data-reveal]{ opacity:0; transform:translateY(14px); }
.js [data-reveal].is-in{ opacity:1; transform:none; transition:opacity .8s var(--ease), transform .8s var(--ease); transition-delay:calc(var(--i,0) * 70ms); }
@media (prefers-reduced-motion: reduce){
  .js [data-reveal]{ opacity:1; transform:none; }
  .btn:hover{ transform:none; }
}

/* On-site portfolio films */
.portfolio-videos{align-items:start;row-gap:32px}.portfolio-film{margin:0;min-width:0}.portfolio-film video{display:block;width:100%;aspect-ratio:9/16;object-fit:contain;background:#171513;border:1px solid var(--rule)}.portfolio-film figcaption{display:flex;flex-direction:column;gap:5px;padding:14px 0;font-size:14px;line-height:1.5}.portfolio-film figcaption b{font-weight:600}.portfolio-film figcaption span{color:var(--muted)}@media(max-width:520px){.portfolio-videos{grid-template-columns:1fr;max-width:360px;margin-inline:auto}}

.package-links{display:flex;flex-wrap:wrap;gap:18px 32px;padding-block:12px 28px}

/* Clear entry points and earlier portfolio. */
.hero-link-note{margin-top:16px;font-size:.875rem;line-height:1.5;color:var(--ink-soft)}
.hero-link-note a{text-underline-offset:4px}
.audience-links{align-items:stretch}.audience-links .btn{font-size:.75rem;letter-spacing:.055em;text-align:center;white-space:normal}
.home-work{padding-top:24px}.home-work .section-head{margin-bottom:28px}
.business-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,70px)}
.offer-intro{margin:18px 0 24px;line-height:1.65;color:var(--ink-soft)}
.offer-use{margin-top:20px;font-size:.9rem;line-height:1.6;color:var(--ink-soft)}
@media(max-width:650px){.business-offers{grid-template-columns:1fr}.audience-links{display:flex;flex-direction:column;align-items:stretch}.audience-links .btn{justify-content:center}.hero{padding-bottom:36px}.home-work{padding-top:16px}.rate{display:block;overflow-x:auto;max-width:100%}.rate .incl{min-width:180px}.rate th,.rate td{padding-inline:10px}}

/* Phone and tablet layout; retain the desktop typography. */
section[id]{scroll-margin-top:90px}
.drawer{visibility:hidden;overflow-y:auto;overscroll-behavior:contain}
.drawer[data-open="true"]{visibility:visible}
:focus-visible{outline:2px solid var(--bronze);outline-offset:4px}
@media(max-width:939px){
 .drawer{padding-top:88px;padding-bottom:max(24px,env(safe-area-inset-bottom));min-height:100dvh;gap:24px}
 .masthead__inner{gap:12px}.burger{flex-shrink:0}
 .drawer__links a{min-height:48px}.drawer__foot{padding-top:12px}
}
@media(max-width:720px){
 :root{--gutter:20px;--rhythm:56px}
 body{font-size:16px;line-height:1.65}
 .hero{padding-top:32px;padding-bottom:36px}
 .hero__eyebrow{gap:8px 12px;margin-bottom:24px}
 .hero__eyebrow .label{font-size:.75rem;letter-spacing:.08em}
 .hero__grid{gap:24px}.hero__aside{gap:18px}
 .display{font-size:clamp(2.55rem,9.4vw,4rem);line-height:1.08;letter-spacing:-.015em}
 .hero h1{max-width:100%;overflow-wrap:normal}
 .h2{font-size:clamp(1.95rem,7.2vw,2.7rem);line-height:1.14}
 .h2 br,.spread__quote br{display:none}
 .lede{font-size:1rem;line-height:1.65}
 .section-head{gap:16px;margin-bottom:26px}
 .hero__cta{flex-direction:column;align-items:stretch}
 .btn{justify-content:center;min-height:48px;font-size:.8rem;letter-spacing:.07em;padding:14px 18px;white-space:normal;text-align:center}
 .link-under{font-size:.8rem;letter-spacing:.06em;min-height:44px;line-height:1.5}
 .label,.availability,.index-row__meta,.service-block__kicker,.spec h4,.fieldset legend,.field label,.aside-card dt,.colophon h4{font-size:.8125rem;letter-spacing:.06em}
 .index-row__title{line-height:1.2}.index-row__meta{line-height:1.5}
 .home-work{padding-top:8px}.portfolio-videos{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px;max-width:none}
 .portfolio-film video{width:100%;height:auto;aspect-ratio:9/16;object-fit:contain}
 .portfolio-film figcaption{font-size:.875rem;line-height:1.45;padding-top:10px}
 .rate{display:block;overflow:visible;width:100%;max-width:100%}
 .rate caption{display:block;font-size:.8125rem;letter-spacing:.06em}
 .rate tbody{display:block;width:100%}
 .rate tbody tr{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;border:1px solid var(--rule);background:var(--paper-raised);padding:22px;margin-bottom:16px}
 .rate tbody th,.rate tbody td{display:block;width:auto;min-width:0;padding:0;border:0;white-space:normal;overflow-wrap:anywhere;text-align:left}
 .rate tbody th{font-size:1.4rem;line-height:1.25}
 .rate td.price{font-size:1.35rem;margin-top:2px}
 .rate .dur{font-size:.9375rem}.rate .incl{font-size:.9375rem;line-height:1.65;min-width:0}
 .fineprint{font-size:.875rem;line-height:1.6}
 .package-links{gap:10px 20px}.package-links a{letter-spacing:.025em}
 .form-shell,.fieldset,.field-grid,.field{min-width:0}
 .field-grid--2{grid-template-columns:minmax(0,1fr)}
 .field input,.field select,.field textarea{font-size:16px;min-width:0;max-width:100%;min-height:48px}
 .field select{text-overflow:ellipsis}.checkline{display:grid;grid-template-columns:minmax(0,1fr)}
 .checkline label{font-size:.8125rem;letter-spacing:.03em;line-height:1.5;min-height:48px}
 .checkline input{flex:0 0 18px;width:18px;height:18px;min-height:18px}
 .aside-card{padding:22px}.aside-card a{overflow-wrap:anywhere}
 .colophon__top{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
 .colophon__top>div:first-child{grid-column:1/-1}
 .colophon a{display:inline-block;min-height:36px;overflow-wrap:anywhere}
 .colophon__bottom{font-size:.75rem;letter-spacing:.04em;line-height:1.6}
}
@media(max-width:420px){
 :root{--gutter:18px}.mark__word{font-size:.75rem;letter-spacing:.12em}.mark__glyph{width:23px;height:23px}.mark{gap:8px}
 .portfolio-videos{grid-template-columns:minmax(0,1fr);max-width:340px;margin-inline:auto}
 .portfolio-film video{max-height:65svh}
 .colophon__top{grid-template-columns:minmax(0,1fr)}
}

/* Service comparisons and audience-specific proof. */
.audience-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.audience-panels article{padding:36px 32px 36px 0;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.audience-panels article+article{border-left:1px solid var(--rule);padding-left:36px;padding-right:0}
.audience-panels p:not(.label){color:var(--ink-soft);max-width:48ch}.audience-panels ul{color:var(--ink-soft);line-height:1.8}.audience-panels .btn{margin-top:auto}
.business-offers--three{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.service-option{display:flex;flex-direction:column;align-items:flex-start;padding-top:24px;border-top:1px solid var(--rule)}
.service-option h3{margin-top:14px}.service-option .label{line-height:1.6}.service-option .offer-use{margin-top:auto;padding-top:24px}.service-option .link-under{margin-top:14px;letter-spacing:.04em;line-height:1.5}
.content-uses{padding-block:32px;border-top:1px solid var(--rule)}.content-use-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px;margin-top:24px}.content-use-grid dt{font-weight:600;margin-bottom:8px}.content-use-grid dd{color:var(--ink-soft)}
.portfolio-filters{display:flex;flex-wrap:wrap;gap:10px}.portfolio-filters button{padding:12px 18px;min-height:46px;border:1px solid var(--rule-strong);background:transparent;cursor:pointer;font:inherit;font-size:.875rem}.portfolio-filters button[aria-pressed="true"]{background:var(--ink);color:var(--paper-raised)}.film-count{font-size:.875rem;color:var(--ink-soft);margin:16px 0 24px}
@media(max-width:950px){.business-offers--three{grid-template-columns:1fr}.service-option{display:block}.service-option .offer-use{padding-top:0}}
@media(max-width:650px){.audience-panels,.content-use-grid{grid-template-columns:1fr}.audience-panels article,.audience-panels article+article{padding:28px 0;border-left:0}.audience-panels article+article{border-top:1px solid var(--rule)}.audience-panels .btn{width:100%}.portfolio-filters{gap:8px}.portfolio-filters button{flex:1 1 40%;padding:12px 8px;font-size:.8125rem}}

/* A stronger studio identity: real work, deliberate contrast, clear hierarchy. */
body::after{display:none}
:root{--muted:#70685d}
.display,.h2{font-weight:400}
.label{letter-spacing:.12em}
.masthead{background:#1c1d1b;color:var(--paper-raised);border-bottom:1px solid #42433e}
.masthead .nav a{color:#d9d6cd}.masthead .nav a[aria-current="page"]{color:#fff}
.masthead .nav a::after{background:var(--bronze-lite)}
.masthead .mark__word i{color:var(--bronze-lite)}
.masthead .btn{--btn-bg:var(--paper-raised);--btn-fg:var(--ink);letter-spacing:.07em}
.masthead .burger span{background:var(--paper-raised)}
.studio-hero{background:#1c1d1b;color:var(--paper-raised);padding-block:36px 0}
.studio-hero .hero__eyebrow{justify-content:space-between;gap:12px;margin-bottom:36px}
.studio-hero .label{color:#d9d6cd;line-height:1.6}.studio-hero .label--bronze{color:#d9bc7c}
.studio-hero__grid{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:clamp(32px,5vw,72px)}
.studio-hero__copy{min-width:0;padding-bottom:20px}
.studio-hero .display{font-size:clamp(3.2rem,5.9vw,5.8rem);line-height:1.04;max-width:12ch}
.studio-hero .display em{color:#d9bc7c}
.studio-hero .lede{color:#d9d6cd;max-width:46ch;margin-block:26px 28px;font-size:1.0625rem;line-height:1.7}
.studio-hero .btn{--btn-bg:#e5c98e;--btn-fg:#1c1d1b;letter-spacing:.045em;font-size:.75rem}
.studio-hero .btn--ghost{--btn-bg:transparent;--btn-fg:var(--paper-raised);border-color:#807d71}
.studio-hero .btn:hover{background:var(--paper-raised);color:var(--ink);border-color:var(--paper-raised)}
.studio-hero .hero-link-note{color:#d9d6cd;margin-top:22px}.studio-hero .hero-link-note a{text-decoration:none;border-bottom:1px solid #807d71;padding-bottom:5px}
.hero-reel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.hero-reel__frame{position:relative;display:block;min-width:0;text-decoration:none;overflow:hidden;background:#333}
.hero-reel__frame:nth-child(2){margin-top:44px}
.hero-reel__frame img{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:cover}
.hero-reel__frame>span{position:absolute;bottom:0;left:0;right:0;padding:44px 16px 16px;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff;font-size:.8125rem;line-height:1.4;display:flex;justify-content:space-between;gap:10px}
.hero-reel__caption{grid-column:1/-1;color:#bcb9b0;font-size:.75rem;margin-top:2px}
.studio-capabilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid #515149;margin-top:44px;padding-block:24px;font-size:.75rem;color:#d9bc7c}
.studio-capabilities span{display:flex;gap:14px;align-items:baseline}.studio-capabilities b{color:#e7e3d9;font-weight:400;font-size:.875rem}
.home-work{padding-top:clamp(52px,7vw,90px)}
.home-work .section-head{margin-bottom:36px}
.portfolio-film figcaption{border-bottom:1px solid var(--rule-strong);padding-bottom:18px}
.audience-panels{gap:24px;border:0}.audience-panels article,.audience-panels article+article{padding:clamp(24px,3vw,44px);border:1px solid var(--rule-strong);background:var(--paper-raised)}
.audience-panels article:first-child{border-top:4px solid var(--bronze)}
.audience-panels article+article{background:var(--paper-deep);border-top:4px solid var(--ink)}
.audience-panels .h2{font-size:clamp(2rem,3.4vw,3.2rem)}
.service-option{padding:28px;background:var(--paper-raised);border:1px solid var(--rule-strong);border-top:3px solid var(--bronze)}
.ledger{border-top:2px solid var(--ink)}.ledger__num{font-family:var(--serif);font-size:1.65rem!important;letter-spacing:0;color:var(--bronze)!important}
.studio-still{margin:0;max-width:390px;margin-inline:auto}.studio-still img{width:100%;height:auto;display:block}.studio-still figcaption{font-size:.8125rem;color:var(--ink-soft);padding-top:14px}
@media(max-width:1000px){.studio-hero__grid{gap:28px}.studio-hero .display{font-size:clamp(3rem,6vw,4.8rem)}.studio-hero .audience-links{flex-direction:column;align-items:stretch}.studio-hero .btn{justify-content:center}}
@media(max-width:720px){
 .studio-hero{padding-top:26px}.studio-hero .hero__eyebrow{margin-bottom:26px;flex-direction:column;align-items:flex-start;gap:6px}
 .studio-hero__grid{grid-template-columns:minmax(0,1fr);gap:22px}
 .studio-hero .display{font-size:clamp(3rem,11vw,4.6rem);max-width:13ch}
 .studio-hero .lede{font-size:1rem;margin-block:22px}.studio-hero__copy{padding:0}
 .hero-reel{gap:12px;max-width:460px;width:100%;margin-inline:auto}.hero-reel__frame:nth-child(2){margin-top:24px}
 .hero-reel__frame img{aspect-ratio:3/4}.hero-reel__frame>span{font-size:.75rem;padding:36px 10px 12px}.hero-reel__caption{font-size:.6875rem}
 .studio-capabilities{margin-top:28px;gap:16px;padding-block:22px}.studio-capabilities span{flex-direction:column;gap:4px}.studio-capabilities b{font-size:.75rem;line-height:1.5}
 .audience-panels article,.audience-panels article+article{padding:26px 22px}.service-option{padding:24px}.home-work{padding-top:52px}
}

/* Clear paths from service to inquiry. */
.offer-paths{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.offer-paths article{display:flex;flex-direction:column;align-items:flex-start;gap:22px;padding:30px;background:var(--paper-raised);border:1px solid var(--rule-strong);border-top:3px solid var(--bronze)}
.offer-paths article:last-child{background:var(--paper-deep);border-top-color:var(--ink)}
.offer-paths .h2{font-size:clamp(2rem,3vw,2.9rem)}.offer-paths article>p:not(.label){color:var(--ink-soft)}
.offer-paths .offer-price{margin-top:auto;padding-top:16px}.offer-price{font-size:1.3rem;font-weight:600;color:var(--ink)!important}.offer-price span{display:block;margin-top:6px;font-size:.8125rem;font-weight:400;line-height:1.5;color:var(--ink-soft)}
.offer-paths .link-under{font-size:.75rem;letter-spacing:.04em}
.service-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-block:22px 38px}
.service-directory>div{border-top:2px solid var(--bronze);padding-top:18px}.service-directory>div>a{font-size:1.05rem;font-weight:600;text-decoration:none}.service-directory span{display:block;margin-top:12px;font-size:.8125rem;line-height:2}.service-directory span a{text-underline-offset:4px}
.experience-note{padding-block:30px;border-top:1px solid var(--rule)}.experience-note p{max-width:65ch;margin-block:16px}.experience-note .link-under{margin-bottom:14px}
@media(max-width:1000px){.offer-paths{gap:14px}.offer-paths article{padding:24px 20px}.masthead .btn{font-size:.68rem}}
@media(max-width:760px){.offer-paths,.service-directory{grid-template-columns:minmax(0,1fr)}.offer-paths article{padding:28px 24px}.offer-paths .h2 br{display:none}.service-directory{gap:18px}.service-directory span a{display:inline-block;min-height:36px}.offer-paths .link-under{min-height:44px}}
