:root{
  --yellow:#e3aa24;
  --yellow-deep:#ce8f0e;
  --cream:#f4ecd7;
  --cream-2:#fff9ea;
  --ink:#20201e;
  --ink-soft:#383833;
  --line:#caa55c;
  --white:#fffdf6;
  --max:1180px;
  --shadow:0 18px 45px rgba(29,26,19,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:Inter,Arial,sans-serif;background:var(--cream);line-height:1.55}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit}
button{color:inherit}
.container{width:min(var(--max),calc(100% - 40px));margin-inline:auto}
.section{padding:86px 0}
.section-paper,.site-header{background-color:var(--cream);background-image:radial-gradient(rgba(60,45,17,.045) .7px,transparent .8px);background-size:7px 7px}
.skip-link{position:absolute;left:-999px;top:10px;background:#fff;padding:10px;z-index:1000}.skip-link:focus{left:10px}

.site-header{position:sticky;top:0;z-index:50;border-bottom:2px solid var(--ink)}
.top-rule{height:8px;background:var(--yellow)}
.nav-wrap{min-height:108px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.brand{font-family:'Lobster Two','Lobster Two',cursive;font-size:clamp(3.35rem,6vw,5.25rem);font-weight:700;line-height:.88;text-align:center;white-space:nowrap}
.site-nav{display:flex;align-items:center;gap:28px;font-family:'Bebas Neue',Impact,sans-serif;font-size:1.05rem;letter-spacing:.05em}
.site-nav-right{justify-content:flex-end}
.site-nav a{position:relative}
.site-nav a:not(.nav-cta)::after{content:"";position:absolute;height:2px;left:0;right:100%;bottom:-7px;background:var(--yellow);transition:.2s}
.site-nav a:hover::after{right:0}
.nav-cta{background:var(--ink);color:var(--cream-2);padding:12px 16px;border-radius:3px;box-shadow:3px 3px 0 var(--yellow)}
.nav-cta span{color:var(--yellow);padding-left:8px}
.menu-toggle{display:none;background:none;border:1px solid var(--ink);padding:8px 12px;font-family:'Bebas Neue',Impact,sans-serif}

.hero{border-bottom:1px solid var(--line)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:52px;min-height:560px;padding-top:52px;padding-bottom:60px}
.eyebrow{display:flex;align-items:center;gap:12px;text-transform:uppercase;font-size:.83rem;font-weight:800;letter-spacing:.11em;margin-bottom:14px}
.eyebrow span{width:34px;height:2px;background:var(--yellow)}
h1,h2,h3{margin:0}
h1{font-family:'Bebas Neue',Impact,sans-serif;font-size:clamp(4.6rem,10vw,8.7rem);line-height:.82;letter-spacing:.015em;text-transform:uppercase}
h1::after{content:".";color:var(--yellow)}
.hero-lead{font-size:clamp(1.08rem,2vw,1.35rem);max-width:620px;margin:25px 0 30px;color:var(--ink-soft)}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 24px;border:2px solid var(--ink);border-radius:3px;font-family:'Bebas Neue',Impact,sans-serif;font-size:1.15rem;letter-spacing:.05em;cursor:pointer;transition:transform .18s,box-shadow .18s}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--yellow);box-shadow:4px 4px 0 var(--ink)}
.button-ghost{background:transparent}
.hero-mark{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:360px}
.hero-mark svg{width:100%;max-width:520px;overflow:visible}.hero-mark path{fill:none;stroke:var(--ink);stroke-width:8;stroke-linecap:square;stroke-linejoin:miter}.hero-mark text{font-family:'Bebas Neue',Impact,sans-serif;font-size:58px;fill:var(--ink)}
.mark-caption{margin-top:-18px;font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.18em;text-transform:uppercase;font-size:1.02rem;color:#555147}
.hero-service-area{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);text-align:center;min-width:min(100%,390px)}
.hero-service-area strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:1.35rem;letter-spacing:.06em}
.hero-service-area span{display:block;margin-top:3px;color:#6a665c;font-size:.84rem;text-transform:uppercase;letter-spacing:.075em}

.trust-strip{background:var(--white);border-bottom:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-item{min-height:120px;display:flex;align-items:center;gap:14px;padding:24px 22px;border-right:1px solid #e0cfab}.trust-item:last-child{border-right:0}.trust-icon{width:38px;height:38px;border:2px solid var(--yellow-deep);display:grid;place-items:center;font-weight:800;color:var(--yellow-deep);border-radius:50%}.trust-item strong{display:block;font-family:'Bebas Neue',Impact,sans-serif;font-size:1.15rem;letter-spacing:.04em}.trust-item small{display:block;color:#6c675d;margin-top:3px}

.section-heading{text-align:center;max-width:760px;margin:0 auto 44px}.kicker{display:block;color:var(--yellow-deep);font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.14em;text-transform:uppercase;font-size:1rem}.section-heading h2,.about-copy h2,.contact-copy h2{font-family:'Lobster Two',cursive;font-size:clamp(2.5rem,5vw,4.2rem);line-height:1;margin-top:5px}.section-heading p{color:#69645a;margin:14px auto 0;max-width:680px}
.service-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:15px}.service-card{min-height:255px;border:1px solid #d7b773;padding:24px 20px;background:rgba(255,250,236,.48);position:relative;transition:transform .2s,box-shadow .2s}.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.service-num{font-family:'Bebas Neue',Impact,sans-serif;color:var(--yellow-deep);font-size:2.2rem}.service-card h3{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.45rem;line-height:1.05;letter-spacing:.03em;margin:30px 0 12px}.service-card p{font-size:.92rem;color:#625d53;margin:0}

.work-section{background:var(--ink);color:var(--cream-2)}
.light-heading p{color:#cfc9bb}
.carousel-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:34px}
.carousel-heading{margin:0;text-align:left;max-width:760px}
.carousel-heading p{margin-left:0}
.carousel-controls{display:flex;gap:9px;flex:0 0 auto;padding-bottom:7px}
.carousel-arrow{width:48px;height:48px;border:1px solid #736f66;background:transparent;color:var(--cream-2);font-size:1.35rem;cursor:pointer;transition:.18s}
.carousel-arrow:hover{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.paper-arrow{border-color:var(--ink);color:var(--ink)}
.carousel-track{display:flex;overflow-x:auto;gap:14px;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;padding-bottom:4px}
.carousel-track::-webkit-scrollbar{display:none}
.work-carousel .work-card{flex:0 0 calc((100% - 28px)/3);height:315px;scroll-snap-align:start;position:relative;padding:0;border:0;background:#111;overflow:hidden;cursor:pointer;text-align:left}
.work-card img{width:100%;height:100%;object-fit:cover;transition:transform .35s,filter .35s}.work-card::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 48%,rgba(0,0,0,.76));pointer-events:none}.work-card span{position:absolute;z-index:2;left:18px;right:18px;bottom:16px;color:#fff;display:flex;flex-direction:column}.work-card strong{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.45rem;letter-spacing:.04em}.work-card small{color:#f1c65f;text-transform:uppercase;letter-spacing:.08em}.work-card:hover img{transform:scale(1.035);filter:saturate(1.05)}
.swipe-hint{margin:14px 0 0;color:#a9a398;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}

.compact-process{padding-top:76px;padding-bottom:76px}
.process-heading-row{margin-bottom:30px}
.process-carousel{gap:18px}
.project-panel{flex:0 0 calc((100% - 18px)/2);scroll-snap-align:start;border:1px solid #d7b773;background:rgba(255,250,236,.56);padding:16px;min-width:0}
.project-panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px}
.story-label{font-family:'Bebas Neue',Impact,sans-serif;color:var(--yellow-deep);letter-spacing:.14em;font-size:.9rem;white-space:nowrap}
.project-panel h3{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.8rem;line-height:1;text-align:right;letter-spacing:.025em}
.project-sequence{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.story-shot{position:relative;height:190px;padding:0;border:0;background:#222;overflow:hidden;cursor:pointer;min-width:0}
.story-shot img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.story-shot:hover img{transform:scale(1.03)}
.story-shot span{position:absolute;left:7px;top:7px;background:var(--yellow);color:var(--ink);padding:5px 7px;font-family:'Bebas Neue',Impact,sans-serif;font-size:.78rem;letter-spacing:.08em;box-shadow:2px 2px 0 var(--ink)}
.project-panel>p{margin:13px 2px 1px;color:#686257;font-size:.9rem}
.process-swipe{color:#777065}

.about-section{background:var(--yellow);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.about-mark{height:350px;border:3px solid var(--ink);display:grid;place-items:center;position:relative;background:rgba(255,255,255,.1);box-shadow:10px 10px 0 rgba(32,32,30,.12)}.about-mark strong{font-family:'Bebas Neue',Impact,sans-serif;font-size:8rem;line-height:1}.about-mark small{position:absolute;bottom:35px;font-family:'Lobster Two',cursive;font-size:1.6rem}.tool-lines{position:absolute;top:34px;left:34px;right:34px;display:flex;gap:10px}.tool-lines span{height:3px;background:var(--ink);flex:1}.tool-lines span:nth-child(2){flex:.4}.about-copy .kicker{color:#4a3710}.about-copy p{max-width:710px;font-size:1.04rem}.signature{font-family:'Lobster Two',cursive;font-size:2.3rem;margin-top:24px}.signature span{font-family:'Bebas Neue',Impact,sans-serif;font-size:1rem;display:block;letter-spacing:.06em}

.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:58px}.contact-copy p{color:#6a655c;max-width:520px}.phone-block{display:inline-flex;flex-direction:column;border-left:5px solid var(--yellow);padding:10px 0 10px 18px;margin:20px 0}.phone-block small{text-transform:uppercase;letter-spacing:.08em}.phone-block strong{font-family:'Bebas Neue',Impact,sans-serif;font-size:2.5rem;line-height:1}.contact-facts{display:flex;flex-direction:column;font-size:.88rem;color:#777065;text-transform:uppercase;letter-spacing:.05em}
.quote-form{border:2px solid var(--ink);padding:28px;background:rgba(255,255,255,.35);box-shadow:8px 8px 0 var(--yellow)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quote-form label{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.04em}.quote-form input,.quote-form textarea,.quote-form select{width:100%;border:1px solid #b8aa8a;background:#fffaf0;padding:12px;color:var(--ink);outline:none}.quote-form input:focus,.quote-form textarea:focus,.quote-form select:focus{border-color:var(--yellow-deep);box-shadow:0 0 0 2px rgba(227,170,36,.22)}.submit-button{width:100%}.form-note{text-align:center;font-size:.8rem;color:#777065;margin:12px 0 0}

.footer-yellow{background:var(--yellow);border-top:2px solid var(--ink)}.footer-grid{min-height:150px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:34px}.van-wrap img{width:260px;mix-blend-mode:multiply}.footer-brand{text-align:center;display:flex;flex-direction:column}.footer-brand strong{font-family:'Lobster Two',cursive;font-size:2.3rem;line-height:1}.footer-brand span,.footer-slogan span{font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.07em}.footer-brand a{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.45rem}.footer-slogan{text-align:right;display:flex;flex-direction:column}.footer-slogan strong{font-family:'Bebas Neue',Impact,sans-serif;font-size:1.8rem;line-height:1.05}.footer-slogan span{margin-top:8px}.footer-black{background:#171715;color:#d7d2c5;font-size:.78rem}.footer-black .container{min-height:54px;display:flex;justify-content:space-between;align-items:center}

.mobile-cta{display:none}
.lightbox{padding:0;border:0;background:#111;color:#fff;width:min(94vw,1100px);max-width:none}.lightbox::backdrop{background:rgba(0,0,0,.8)}.lightbox img{max-height:82vh;width:100%;object-fit:contain;background:#000}.lightbox p{margin:0;padding:14px 18px;font-family:'Bebas Neue',Impact,sans-serif;font-size:1.4rem}.lightbox-close{position:absolute;top:10px;right:10px;width:42px;height:42px;border:0;background:var(--yellow);font-size:2rem;line-height:1;cursor:pointer}

@media(max-width:980px){
  .nav-wrap{position:relative;grid-template-columns:1fr;min-height:94px}.brand{justify-self:center;font-size:3.8rem}.menu-toggle{position:absolute;left:0}.site-nav{display:none}.site-nav.open{display:flex;position:absolute;left:0;right:0;top:90px;background:var(--cream);padding:22px 20px;flex-direction:column;border-bottom:2px solid var(--ink)}.site-nav-right{display:none}.menu-toggle{display:block}.hero-grid{grid-template-columns:1fr;gap:10px;padding-top:54px}.hero-mark{min-height:250px}.hero-mark svg{max-width:440px}.trust-grid{grid-template-columns:1fr 1fr}.trust-item:nth-child(2){border-right:0}.trust-item:nth-child(-n+2){border-bottom:1px solid #e0cfab}.service-grid{grid-template-columns:repeat(2,1fr)}.service-card:last-child{grid-column:span 2}.work-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:280px}.project-story,.project-story.reverse{grid-template-columns:1fr}.project-story.reverse .story-copy,.project-story.reverse .story-images{order:initial}.about-grid,.contact-grid{grid-template-columns:1fr}.about-mark{height:240px}.footer-grid{grid-template-columns:1fr 1fr}.van-wrap{display:none}.footer-slogan{text-align:right}
}
@media(max-width:640px){
  .container{width:min(var(--max),calc(100% - 24px))}.section{padding:64px 0}.site-header{position:relative}.nav-wrap{grid-template-columns:1fr;min-height:88px}.brand{justify-self:center;font-size:3.25rem}.menu-toggle{left:0}.hero-grid{min-height:auto;padding-bottom:44px}.eyebrow{font-size:.72rem}.eyebrow span{width:22px}h1{font-size:5.3rem}.hero-lead{font-size:1.08rem}.hero-mark{min-height:210px}.hero-mark svg{max-width:360px}.trust-grid{grid-template-columns:1fr}.trust-item{border-right:0;border-bottom:1px solid #e0cfab!important;min-height:96px}.trust-item:last-child{border-bottom:0!important}.service-grid{grid-template-columns:1fr}.service-card:last-child{grid-column:auto}.service-card{min-height:auto}.work-grid{grid-template-columns:1fr;grid-auto-rows:275px}.work-card.wide{grid-column:auto}.story-images.three,.story-images.two{grid-template-columns:1fr}.story-images figure{min-height:280px}.about-mark{height:210px}.about-mark strong{font-size:6rem}.field-row{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr;text-align:center;padding:30px 0}.footer-slogan{text-align:center}.footer-black .container{flex-direction:column;justify-content:center;gap:3px}.mobile-cta{position:fixed;z-index:60;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;background:#111;padding:8px;gap:8px}.mobile-cta a{display:grid;place-items:center;min-height:48px;font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.05em;border:1px solid var(--yellow);color:#fff}.mobile-cta a:last-child{background:var(--yellow);color:var(--ink)}body{padding-bottom:64px}
}

/* V3 horizontal gallery overrides */
@media(max-width:980px){
  .work-carousel .work-card{flex-basis:calc((100% - 14px)/2);height:300px}
  .project-panel{flex-basis:72%}
  .story-shot{height:165px}
}
@media(max-width:640px){
  .carousel-heading-row{align-items:flex-end;gap:10px;margin-bottom:24px}
  .carousel-heading{max-width:calc(100% - 92px)}
  .carousel-heading h2{font-size:2.55rem}
  .carousel-heading p{font-size:.9rem}
  .carousel-controls{gap:6px}
  .carousel-arrow{width:40px;height:40px}
  .work-carousel{margin-right:-12px;padding-right:12px}
  .work-carousel .work-card{flex-basis:84vw;height:255px}
  .project-panel{flex-basis:90vw;padding:12px}
  .project-panel-head{display:block}
  .project-panel h3{text-align:left;margin-top:3px;font-size:1.65rem}
  .story-shot{height:128px}
  .story-shot span{font-size:.7rem;padding:4px 6px}
  .project-panel>p{font-size:.84rem}
  .compact-process{padding-top:60px;padding-bottom:60px}
}

/* V4 navigation refinements */
.mobile-menu-only{display:none}
@media (max-width:980px){
  #site-nav .mobile-menu-only{display:block}
  #site-nav .mobile-menu-cta{margin-top:4px;padding:10px 16px;background:var(--yellow);color:var(--ink);text-align:center;border:1px solid var(--ink)}
}

/* V6 mobile menu — place the control in the hero's top-right corner */
.hero{position:relative}
.hero-menu-slot{display:none}
@media (max-width:980px){
  .hero-menu-slot{
    display:block;
    position:absolute;
    top:24px;
    right:24px;
    z-index:70;
  }
  .hero-menu-slot .menu-toggle{
    display:block;
    position:static;
    left:auto;
    min-width:72px;
    padding:9px 13px;
    font-size:1rem;
    background:var(--cream);
  }
}
@media (max-width:640px){
  .hero-menu-slot{top:18px;right:18px}
  .hero-menu-slot .menu-toggle{min-width:68px;padding:8px 12px;font-size:.95rem}
}
