:root{
  --bg:#e1d2c3;
  --bg-panel:#d8c7b4;
  --bg-panel-2:#cfbca6;
  --text-primary:#5c4335;
  --text-secondary:#85715f;
  --text-muted:#a6957f;
  --accent:#89302b;
  --accent-hover:#9e3c34;
  --border:rgba(92,67,53,.16);
  --border-strong:rgba(92,67,53,.30);
  --hero-bg:#89302b;
  --hero-text:#f5e6d3;
  --hero-text-secondary:#d9b896;
  --hero-gold:#edc483;
  --hero-gold-text:#4a2e22;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text-primary);
  font-family:var(--sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;margin:0;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
@media (max-width:720px){.wrap{padding:0 20px;}}

/* header: solid, reliable contrast regardless of what's scrolled beneath */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  padding:18px 0;
  background:var(--bg);
  border-bottom:1px solid var(--border);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;}
.brand{font-family:var(--serif);font-size:18px;letter-spacing:.02em;color:var(--text-primary);}
.nav{display:flex;gap:32px;}
.nav a{font-size:14px;color:var(--text-secondary);transition:color .2s;}
.nav a:hover{color:var(--accent);}
.nav-toggle{display:none;background:none;border:0;color:var(--text-primary);font-size:22px;}
@media (max-width:720px){
  .nav{display:none;}
  .nav-toggle{display:block;}
}

/* buttons */
.btn{
  display:inline-block;
  padding:13px 26px;
  border-radius:2px;
  font-size:14px;
  border:1px solid var(--border-strong);
  color:var(--text-primary);
  transition:border-color .2s, background .2s;
}
.btn:hover{border-color:var(--accent);}
.btn-primary{background:var(--accent);border-color:var(--accent);color:#f5e6d3;font-weight:500;}
.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);}
.text-link{font-size:14px;color:var(--text-secondary);border-bottom:1px solid var(--border-strong);padding-bottom:2px;transition:color .2s,border-color .2s;}
.text-link:hover{color:var(--accent);border-color:var(--accent);}

/* stage: hero + pillars fused into one continuous red canvas so the
   animation can travel from the wordmark down into the pillar cards */
.stage{position:relative;padding:96px 0 88px;background:var(--hero-bg);overflow:hidden;}
.stage-canvas-wrap{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;pointer-events:none;}
.stage-canvas-wrap canvas{width:100%;height:100%;display:block;}
.stage-copy{position:relative;z-index:2;max-width:640px;margin:0 auto;text-align:center;padding:24px 32px 64px;}
.stage-copy h1{font-size:clamp(28px,4vw,42px);color:var(--hero-text);margin-bottom:18px;}
.stage-copy p{font-size:17px;color:var(--hero-text-secondary);margin-bottom:32px;}
.hero-actions{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;}
.stage .btn-primary{background:var(--hero-gold);border-color:var(--hero-gold);color:var(--hero-gold-text);}
.stage .btn-primary:hover{background:#f2d29a;border-color:#f2d29a;}
.stage .text-link{color:var(--hero-text-secondary);border-color:rgba(245,230,211,.35);}
.stage .text-link:hover{color:var(--hero-gold);border-color:var(--hero-gold);}
.reduced-motion-fallback{display:none;}
@media (prefers-reduced-motion: reduce){
  .stage-canvas-wrap{display:none;}
  .reduced-motion-fallback{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;padding:24px 32px;}
  .reduced-motion-fallback img{max-width:280px;width:100%;}
}

.stage-pillars{position:relative;z-index:2;padding-top:180px;}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.pillar{background:var(--bg);border-radius:6px;padding:32px 28px;}
.pillar h3{font-size:18px;margin-bottom:10px;color:var(--text-primary);}
.pillar p{color:var(--text-secondary);font-size:15px;margin:0;}
@media (max-width:860px){
  .pillars{grid-template-columns:1fr;}
  .stage-pillars{padding-top:140px;}
}

/* section shell */
.section{padding:96px 0;}
.section-panel{background:var(--bg-panel);}
.eyebrow-free-heading{font-size:clamp(24px,3vw,34px);max-width:560px;margin-bottom:20px;}
.section-lede{color:var(--text-secondary);font-size:16px;max-width:560px;margin-bottom:32px;}

/* how we work */
.hww{display:flex;align-items:center;gap:0;flex-wrap:wrap;margin-top:8px;}
.hww-step{padding:18px 26px;border:1px solid var(--border-strong);border-radius:2px;font-size:14px;color:var(--text-primary);}
.hww-arrow{color:var(--text-muted);padding:0 14px;font-size:16px;}
@media (max-width:720px){.hww{flex-direction:column;align-items:flex-start;}.hww-arrow{transform:rotate(90deg);padding:6px 0;}}

/* carousel */
.carousel{display:flex;gap:20px;overflow-x:auto;padding:4px 0 28px;scroll-snap-type:x mandatory;}
.carousel::-webkit-scrollbar{height:4px;}
.carousel::-webkit-scrollbar-thumb{background:var(--border-strong);}
.reel-card{flex:0 0 300px;scroll-snap-align:start;}
.reel-thumb{width:100%;aspect-ratio:16/9;background:var(--bg-panel-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:13px;transition:border-color .2s;}
.reel-card a:hover .reel-thumb{border-color:var(--accent);}
.reel-title{font-size:14px;margin-top:10px;color:var(--text-primary);}
.reel-client{font-size:13px;color:var(--text-secondary);margin-top:2px;}

/* trusted by */
.client-row{display:flex;flex-wrap:wrap;gap:28px 40px;align-items:center;}
.client-name{font-family:var(--serif);font-size:16px;color:var(--text-muted);}

/* contact / footer */
.contact-section{padding:96px 0 64px;}
.site-footer{border-top:1px solid var(--border);padding:32px 0;color:var(--text-muted);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;}

/* page hero (non-home pages) */
.page-hero{padding:150px 0 60px;}
.page-hero h1{font-size:clamp(30px,4vw,44px);max-width:640px;}
.page-hero p{color:var(--text-secondary);font-size:16px;max-width:560px;margin-top:18px;}

/* services page */
.service-block{padding:48px 0;border-top:1px solid var(--border);}
.service-block:first-child{border-top:none;}
.service-block h2{font-size:24px;margin-bottom:22px;}
.service-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 40px;padding:0;margin:0;list-style:none;}
.service-list li{color:var(--text-secondary);font-size:15px;padding-left:18px;position:relative;}
.service-list li::before{content:'';position:absolute;left:0;top:10px;width:6px;height:1px;background:var(--accent);}
.service-list strong{color:var(--text-primary);font-weight:500;}
@media (max-width:720px){.service-list{grid-template-columns:1fr;}}

/* portfolio page */
.format-group{margin-bottom:64px;}
.format-group h2{font-size:20px;margin-bottom:24px;color:var(--text-primary);}
.format-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;}
.format-grid .reel-thumb{aspect-ratio:16/9;}

/* about page */
.about-copy{max-width:640px;}
.about-copy p{color:var(--text-secondary);font-size:16px;margin-bottom:22px;}
.approach-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-top:56px;}
.approach-item{background:var(--bg);padding:32px 28px;}
.approach-item h3{font-size:16px;margin-bottom:10px;}
.approach-item p{color:var(--text-secondary);font-size:14px;}
@media (max-width:860px){.approach-list{grid-template-columns:1fr;}}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
