:root{--charcoal:#272522;--red:#A43E36;--tint:#F6ECEB;--white:#FFFFFF;--body:rgba(39,37,34,.85);--cut:28px;--g:16px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--white);color:var(--charcoal);font:400 17px/1.7 "Plus Jakarta Sans",system-ui,sans-serif;overflow-x:hidden}
@media(min-width:768px){body{font-size:18px}}
h1,h2,h3{font-family:"Outfit",system-ui,sans-serif;margin:0 0 .5em;line-height:1.1;color:inherit}
h1{font-weight:700;font-size:clamp(2.6rem,7.2vw,5rem);letter-spacing:-.025em}
h2{font-weight:700;font-size:clamp(2.1rem,4.6vw,3.5rem);letter-spacing:-.02em}
h3{font-weight:600;font-size:1.3rem;letter-spacing:-.005em}
p{margin:0 0 1em;max-width:65ch}
a{color:var(--red)}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:20;background:#fff;padding:.6rem 1rem}
.container{max-width:1200px;margin:0 auto;padding:0 var(--g)}
@media(min-width:768px){:root{--g:40px}}
.narrow{max-width:820px}
.cut{clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)))}

/* buttons: Plus Jakarta Sans */
.btn{display:inline-flex;align-items:center;justify-content:center;font:600 1rem/1.2 "Plus Jakarta Sans",sans-serif;text-decoration:none;padding:1rem 1.6rem;border:2px solid transparent;transition:background .2s,color .2s,border-color .2s;width:100%;text-align:center}
@media(min-width:768px){.btn{width:auto}}
.btn-dark{background:var(--charcoal);color:var(--white);border-color:var(--charcoal);padding:.6rem 1.1rem;font-size:.95rem}
.btn-dark:hover{background:#000}
.btn-tint{background:var(--tint);color:var(--charcoal);border-color:var(--tint)}
.btn-tint:hover{background:var(--white);border-color:var(--white)}
.btn-outline-light{color:var(--tint);border-color:var(--tint);background:transparent}
.btn-outline-light:hover{background:var(--tint);color:var(--charcoal)}
.btn-lg{padding:1.15rem 2rem;font-size:1.05rem}

/* nav */
.nav{position:sticky;top:0;z-index:10;background:var(--white);border-bottom:1px solid transparent;transition:border-color .2s}
.nav.scrolled{border-bottom-color:rgba(39,37,34,.14)}
.nav-in{max-width:1200px;margin:0 auto;padding:.7rem var(--g);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{padding:4px 0}.brand img{width:150px}
.burger{background:none;border:0;padding:12px;margin-right:-12px;cursor:pointer}
.bars,.bars::before,.bars::after{display:block;width:24px;height:2px;background:var(--charcoal);position:relative;transition:transform .2s}
.bars::before,.bars::after{content:"";position:absolute;left:0}.bars::before{top:-7px}.bars::after{top:7px}
.burger[aria-expanded="true"] .bars{background:transparent}
.burger[aria-expanded="true"] .bars::before{transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] .bars::after{transform:translateY(-7px) rotate(-45deg)}
#menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid rgba(39,37,34,.14);padding:.5rem var(--g) 1.25rem;flex-direction:column;gap:.25rem}
#menu.open{display:flex}
#menu a:not(.btn){color:var(--charcoal);text-decoration:none;font-weight:500;padding:.75rem 0;border-bottom:1px solid rgba(39,37,34,.08)}
#menu .btn{margin-top:.75rem}
@media(min-width:900px){
  .burger{display:none}
  #menu{display:flex;position:static;flex-direction:row;align-items:center;gap:1.8rem;padding:0;border:0;background:none}
  #menu a:not(.btn){border:0;padding:.3rem 0;font-size:.98rem}
  #menu a:not(.btn):hover{color:var(--red)}
  #menu .btn{margin:0 0 0 .4rem}
}

/* motif: red eye band */
.bar{display:block;width:56px;height:6px;background:var(--red);margin-bottom:1.5rem}
.band{background-image:linear-gradient(var(--red),var(--red));background-repeat:no-repeat;background-size:100% .14em;background-position:0 92%;padding-bottom:.04em}

/* hero */
.hero{background:var(--charcoal);color:var(--white);padding:clamp(4.5rem,11vw,9rem) 0}
.hero-grid{display:grid;gap:3rem;align-items:center}
@media(min-width:960px){.hero-grid{grid-template-columns:1.45fr 1fr;gap:4.5rem}}
.eyebrow{font:600 .8rem/1 "Plus Jakarta Sans",sans-serif;letter-spacing:.2em;color:var(--tint);margin-bottom:1.6rem;display:flex;align-items:center;gap:.8rem}
.eyebrow::before{content:"";width:28px;height:4px;background:var(--red)}
.hero h1{color:var(--white)}
.hero-sub{color:var(--tint);font-size:1.1rem;margin-top:1.6rem}
.actions{display:flex;flex-direction:column;gap:.9rem;margin-top:2.4rem}
@media(min-width:768px){.actions{flex-direction:row;flex-wrap:wrap}}

/* placeholders: clearly labelled */
.ph{margin:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.5rem;padding:2rem;background:repeating-linear-gradient(135deg,rgba(39,37,34,.04) 0 12px,transparent 12px 24px),var(--tint);border:2px dashed rgba(39,37,34,.45);color:var(--charcoal)}
.ph-label{font:700 .95rem/1.3 "Plus Jakarta Sans",sans-serif;letter-spacing:.14em}
.ph-note{font-size:.9rem}
.ph-hero{aspect-ratio:4/5;max-width:440px;width:100%;justify-self:center}
.ph-hero::after{content:"";position:absolute;left:0;right:0;top:22%;height:10px;background:var(--red)}
.ph-hero .ph-label,.ph-hero .ph-note{position:relative;z-index:1}
.ph-shot{aspect-ratio:16/9;margin:3rem 0}
.ph-about{aspect-ratio:1/1;max-width:420px;width:100%}

/* sections */
.section{padding:clamp(5rem,12vw,9.5rem) 0}
.tint{background:var(--tint)}
.intro{font-size:1.15rem;color:var(--body);margin-bottom:3rem}
.section p,.section li{color:var(--body)}

.cols3{display:grid;gap:2.5rem}
@media(min-width:768px){.cols3{grid-template-columns:repeat(3,1fr);gap:3rem}}
.col{border-top:2px solid var(--red);padding-top:1.4rem}
.col h3{font-size:1.6rem}
.col p{margin:0}

.thoughts{background:var(--tint);margin-top:clamp(4rem,8vw,6rem);padding:clamp(2rem,5vw,3.5rem)}
.thoughts h3{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:700}
.thoughts-lead{margin-bottom:1.8rem}
.thoughts ul{list-style:none;padding:0;margin:0;display:grid;gap:1.2rem 3rem}
@media(min-width:768px){.thoughts ul{grid-template-columns:1fr 1fr}}
.thoughts li{font:500 clamp(1.15rem,2vw,1.35rem)/1.45 "Plus Jakarta Sans",sans-serif;color:var(--charcoal)!important;padding-left:1.3rem;position:relative}
.thoughts li::before{content:"";position:absolute;left:0;top:.35em;width:4px;height:1.1em;background:var(--red)}

/* timeline */
.timeline{list-style:none;padding:0;margin:0;display:grid;gap:3rem;position:relative}
.timeline li{position:relative;padding-left:4.75rem}
.timeline::before{content:"";position:absolute;left:1.6rem;top:1.5rem;bottom:1.5rem;width:2px;background:var(--red)}
.num{position:absolute;left:0;top:0;font:700 2.2rem/1 "Outfit",sans-serif;color:var(--charcoal);background:var(--tint);padding:.3rem 0}
.keep{font-weight:600;color:var(--charcoal)!important}
@media(min-width:900px){
  .timeline{grid-template-columns:repeat(3,1fr);gap:3.5rem}
  .timeline::before{left:0;right:0;top:2.1rem;bottom:auto;width:auto;height:2px}
  .timeline li{padding-left:0;padding-top:6rem}
  .num{font-size:3.6rem;padding:0 1rem 0 0}
}

/* results */
.stat{font:700 clamp(2.2rem,6vw,4.4rem)/1.1 "Outfit",sans-serif;color:var(--charcoal)!important;letter-spacing:-.02em;max-width:none;margin:0 0 3rem}
.arrow{color:var(--red)}
.split{display:grid;gap:2.5rem}
@media(min-width:768px){.split{grid-template-columns:1fr 1fr;gap:0}.split .after{border-left:1px solid rgba(39,37,34,.18);padding-left:3rem}.split .before{padding-right:3rem}}
.tag{font:700 .85rem/1 "Plus Jakarta Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--charcoal)!important;margin-bottom:1rem;display:flex;align-items:center;gap:.7rem}
.tag::before{content:"";width:20px;height:4px;background:var(--red)}
.split p:not(.tag){font-size:1.2rem}
.wins{list-style:none;padding:0;margin:0 0 3rem;display:grid;gap:1rem}
.wins li{padding-left:1.4rem;position:relative}
.wins li::before{content:"";position:absolute;left:0;top:.7em;width:.7rem;height:3px;background:var(--red)}
.testimonial-slot{border:2px dashed rgba(39,37,34,.45);padding:2rem}
.testimonial-slot p{margin:0}.testimonial-slot .ph-label{margin-bottom:.5rem;color:var(--charcoal)}

/* services */
.services{display:grid;gap:3rem}
@media(min-width:768px){.services{grid-template-columns:1fr 1fr;gap:3.5rem 4rem}}
@media(min-width:1100px){.services{grid-template-columns:repeat(3,1fr)}}
.svc svg{width:40px;height:40px;margin-bottom:1rem;fill:none;stroke-width:2;stroke-linecap:square}
.svc .s{stroke:var(--charcoal)}.svc .a{stroke:var(--red)}
.svc p{margin:0}
.rule{border:0;height:2px;background:linear-gradient(90deg,var(--red) 56px,rgba(39,37,34,.16) 56px);margin:clamp(4rem,8vw,6rem) 0 3rem}
.principles{display:grid;gap:2rem}
@media(min-width:768px){.principles{grid-template-columns:repeat(3,1fr);gap:3rem}}
.principles h3{font-size:1.1rem;font-weight:600}
.principles p{font-size:1rem;margin:0}
.ai-strip{background:var(--white);margin:3.5rem 0 2rem;padding:1.5rem 2rem;max-width:none;color:var(--charcoal)!important}
.small{font-size:1rem}

/* about */
.about{display:grid;gap:3rem;align-items:center}
@media(min-width:900px){.about{grid-template-columns:1fr 1.3fr;gap:5rem}}
.tools{font-size:1rem;font-weight:600;color:var(--charcoal)!important;margin-top:1.5rem}

/* final cta */
.cta-final{background:var(--charcoal);color:var(--white);padding:clamp(5rem,12vw,9.5rem) 0;text-align:left}
.cta-final h2{color:var(--white)}
.cta-final .lead{color:var(--tint);font-size:1.2rem;margin-bottom:2.4rem}
.contact-list{margin:3.5rem 0 0;display:grid;gap:0}
.contact-list div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.4rem 1rem;padding:1.1rem 0;border-top:1px solid rgba(246,236,235,.2)}
.contact-list dt{font:600 .85rem/1.6 "Plus Jakarta Sans",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--tint)}
.contact-list dd{margin:0;color:var(--white);overflow-wrap:anywhere}
.contact-list a{color:var(--tint)}.contact-list a:hover{color:var(--white)}

/* footer */
.foot{background:var(--charcoal);border-top:1px solid rgba(246,236,235,.15);padding:3rem 0;color:var(--tint)}
.foot-in{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start}
.foot img{width:140px;margin-bottom:.5rem}
.foot p{margin:0;font-size:.95rem;color:var(--tint)}
@media(min-width:768px){.foot-in{flex-direction:row;align-items:center;justify-content:space-between}.foot img{margin:0}}

/* reveal */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}*{transition:none!important}}

/* hero photo */
.hero-photo{margin:0;position:relative;aspect-ratio:4/5;max-width:440px;width:100%;justify-self:center;overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.hero-photo::after{content:"";position:absolute;left:0;right:0;bottom:12%;height:8px;background:var(--red)}

/* recent work */
.h-sm{font-size:clamp(1.8rem,3.2vw,2.5rem)}
.work{display:grid;gap:1.25rem;margin-top:2rem}
@media(min-width:768px){.work{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.work{grid-template-columns:repeat(3,1fr)}}
.work-card{padding:1.6rem;border-top:2px solid var(--red);background:var(--white)}
.work-card h3{font-size:1.15rem;margin-bottom:.6rem}
.work-card p{font-size:.98rem;margin:0}
.work-tag{font:600 .75rem/1 "Plus Jakarta Sans",sans-serif!important;letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal)!important;margin-bottom:1rem!important}
.work-ph{border:1.5px dashed rgba(39,37,34,.35);display:flex;flex-direction:column;justify-content:center;min-height:180px}
/* tools */
.toolset{margin:3.5rem 0 2rem;padding-top:2.5rem;border-top:1px solid rgba(39,37,34,.16)}
.toolset h3{font-size:1.15rem;font-weight:600;margin-bottom:1.5rem}
.toolset dl{margin:0;display:grid;gap:1.1rem 3rem}
@media(min-width:768px){.toolset dl{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.toolset dl{grid-template-columns:repeat(3,1fr)}}
.toolset dt{font:600 .75rem/1.4 "Plus Jakarta Sans",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal);margin-bottom:.3rem}
.toolset dd{margin:0;font-size:.98rem;color:var(--body)}
.work-card:not(.work-ph){background:var(--tint)}

/* round 4 */
.price-tag{display:inline-block;font:600 .72rem/1 "Plus Jakarta Sans",sans-serif!important;letter-spacing:.16em;text-transform:uppercase;color:var(--charcoal)!important;border:1px solid rgba(39,37,34,.4);padding:.35rem .55rem;margin:0 0 .8rem!important}
.ongoing{margin-top:clamp(3.5rem,7vw,5rem);padding:2rem 0 0;border-top:1px solid rgba(39,37,34,.18);display:grid;gap:.4rem 3rem;max-width:none}
@media(min-width:900px){.ongoing{grid-template-columns:220px 1fr auto;align-items:baseline}}
.ongoing h3{font-size:1.15rem;font-weight:600;margin:0}
.ongoing p{margin:0;font-size:1rem}
.ongoing .tbc{font:600 .78rem/1.4 "Plus Jakarta Sans",sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--charcoal)}
.refer-line{max-width:none;font-size:.95rem}
@media(min-width:1200px){.refer-line{white-space:nowrap;font-size:.86rem;letter-spacing:-.003em}}
.brand img{width:190px}
@media(min-width:768px){.brand img{width:225px}}
@media(min-width:900px){.timeline li:not(:has(.price-tag)) h3{margin-top:calc(.72rem + .7rem + 2px + .8rem)}}

/* round 5 */
@media(min-width:768px){.work{grid-template-columns:repeat(2,1fr);gap:1.5rem}}
@media(min-width:1100px){.work{grid-template-columns:repeat(2,1fr)}}
.work-card{padding:2rem 2rem 2.2rem}
.work-card h3{font-size:1.25rem}
.work-card p{font-size:1rem}
#build .intro{margin-bottom:2.5rem}
@media(min-width:1100px){.services{grid-template-columns:repeat(6,1fr)}.svc{grid-column:span 2}.svc:nth-child(n+4){grid-column:span 3}}
