
:root{
  --bg:#faf7f2; --ink:#141414; --accent:#1d4ed8; --accent-dk:#163ea9;
  --muted:#6f655a; --card:#ffffff; --line:#e9e0d2; --inkbg:#141414;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,.display{font-family:'Archivo',sans-serif;font-weight:900;letter-spacing:-0.02em;line-height:1.02}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.kicker{display:inline-block;font-size:.78rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.kicker::before{content:"";display:inline-block;width:26px;height:3px;background:var(--accent);vertical-align:middle;margin-right:10px;border-radius:2px}
/* header */
header.site{position:sticky;top:0;z-index:50;background:rgba(250,247,242,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand img{height:52px;width:auto;display:block}
.brand .bt{line-height:1.05}
.brand .bt b{font-family:'Archivo';font-weight:900;font-size:1.12rem;letter-spacing:-.01em;display:block}
.brand .bt span{font-size:.62rem;font-weight:700;letter-spacing:.24em;color:var(--muted)}
nav.links{display:flex;gap:26px;align-items:center}
nav.links a{text-decoration:none;font-weight:600;font-size:.95rem;color:var(--ink);position:relative}
nav.links a:hover{color:var(--accent)}
nav.links a.active{color:var(--accent)}
.btn{display:inline-block;background:var(--accent);color:#fff!important;font-weight:700;text-decoration:none;padding:14px 30px;border-radius:999px;border:none;cursor:pointer;font-size:1rem;transition:transform .15s,background .15s}
.btn:hover{background:var(--accent-dk);transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--ink)!important;border:2px solid var(--ink)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent)!important;background:transparent}
.btn.white{background:#fff;color:var(--accent)!important}
.btn.sm{padding:10px 22px;font-size:.9rem}
.hamb{display:none;background:none;border:none;cursor:pointer;padding:8px}
.hamb span{display:block;width:26px;height:3px;background:var(--ink);margin:5px 0;border-radius:2px}
/* hero */
.hero{padding:84px 0 60px;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1{font-size:clamp(3rem,7.5vw,5.6rem);margin-bottom:20px}
.hero h1 .accent{color:var(--accent)}
.lede{font-size:1.18rem;color:#3d3831;max-width:34rem;margin-bottom:30px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.hero-img{position:relative}
.hero-img img.main{border-radius:18px;box-shadow:0 30px 60px -20px rgba(20,20,20,.35);transform:rotate(2deg);width:100%}
.hero-img img.stamp{position:absolute;left:-46px;bottom:-34px;width:46%;border-radius:14px;border:6px solid var(--bg);box-shadow:0 18px 40px -14px rgba(20,20,20,.35);transform:rotate(-4deg)}
.hero-badge{position:absolute;top:-24px;right:6%;background:var(--ink);color:#fff;font-family:'Archivo';font-weight:800;font-size:.85rem;letter-spacing:.08em;padding:12px 20px;border-radius:999px;transform:rotate(3deg);z-index:3;box-shadow:0 10px 24px -8px rgba(20,20,20,.4)}
/* marquee */
.marquee{background:var(--accent);color:#fff;overflow:hidden;white-space:nowrap;padding:14px 0;transform:rotate(-1.2deg) scale(1.02);margin:40px 0 0}
.marquee .track{display:inline-block;animation:mq 22s linear infinite;font-family:'Archivo';font-weight:900;font-size:1.35rem;letter-spacing:.12em}
.marquee .track span{margin:0 26px}
@keyframes mq{to{transform:translateX(-50%)}}
/* cards */
.section{padding:88px 0}
.section h2{font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:12px}
.section .sub{color:var(--muted);font-size:1.1rem;max-width:44rem;margin-bottom:44px}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.vcard{background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s;text-decoration:none}
.vcard:hover{transform:translateY(-8px) rotate(-.4deg);box-shadow:0 26px 50px -22px rgba(20,20,20,.3)}
.vcard .ph{aspect-ratio:4/3;overflow:hidden;background:#eee}
.vcard .ph img{width:100%;height:100%;object-fit:cover}
.vcard .tx{padding:26px}
.vcard .tx h3{font-size:1.45rem;margin-bottom:8px}
.vcard .tx h3 .n{display:inline-block;background:var(--accent);color:#fff;font-size:.8rem;width:30px;height:30px;line-height:30px;text-align:center;border-radius:50%;margin-right:10px;vertical-align:middle}
.vcard .tx p{color:var(--muted);font-size:.98rem;margin-bottom:16px}
.vcard .tx .go{font-weight:800;color:var(--accent)}
/* work strip */
.strip-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:26px}
.workstrip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,320px);gap:18px;overflow-x:auto;padding-bottom:14px;scroll-snap-type:x mandatory}
.workstrip figure{scroll-snap-align:start;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.workstrip img{width:100%;aspect-ratio:1/1;object-fit:cover}
.workstrip figcaption{padding:10px 14px;font-size:.82rem;font-weight:600;color:var(--muted)}
/* stats band */
.stats{background:var(--inkbg);color:#fff;border-radius:26px;padding:60px 48px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin:20px 0}
.stat .num{font-family:'Archivo';font-weight:900;font-size:clamp(2.6rem,5vw,4rem);color:var(--accent);line-height:1}
.stat .lbl{margin-top:10px;color:#cfc8bd;font-size:1rem}
/* feature rows */
.feat{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;margin-bottom:72px}
.feat:last-child{margin-bottom:0}
.feat.flip .ftx{order:2}
.feat.flip .fph{order:1}
.fph img{border-radius:18px;box-shadow:0 24px 50px -22px rgba(20,20,20,.35);width:100%}
.feat:nth-child(odd) .fph img{transform:rotate(1.2deg)}
.feat:nth-child(even) .fph img{transform:rotate(-1.2deg)}
.ftx h3{font-size:clamp(1.6rem,3vw,2.3rem);margin-bottom:12px}
.ftx h3 .dot{color:var(--accent)}
.ftx p{color:#3d3831;margin-bottom:14px}
/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:36px}
.step{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
.step .snum{font-family:'Archivo';font-weight:900;color:var(--accent);font-size:1.6rem}
.step h4{margin:8px 0 6px;font-size:1.05rem}
.step p{font-size:.92rem;color:var(--muted)}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gal figure{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in}
.gal figcaption{padding:10px 14px;font-size:.82rem;font-weight:600;color:var(--muted)}
.gal .wide{grid-column:span 2}
.gal .wide img{aspect-ratio:16/9}
/* cta band */
.cta-band{background:var(--accent);border-radius:26px;padding:70px 48px;color:#fff;text-align:center;margin:20px 0 0;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;width:340px;height:340px;border:60px solid rgba(255,255,255,.14);border-radius:50%;top:-140px;right:-100px}
.cta-band::after{content:"";position:absolute;width:200px;height:200px;border:36px solid rgba(255,255,255,.12);border-radius:50%;bottom:-90px;left:-60px}
.cta-band h2{font-size:clamp(2.2rem,5vw,3.6rem);margin-bottom:14px;position:relative}
.cta-band p{color:#ffe9df;margin-bottom:28px;font-size:1.1rem;position:relative}
/* about */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start}
.about-grid img{border-radius:18px;transform:rotate(-1.5deg);box-shadow:0 24px 50px -22px rgba(20,20,20,.35)}
.about-grid h2{font-size:clamp(2rem,4vw,3rem);margin-bottom:18px}
.about-grid p{margin-bottom:16px;color:#3d3831}
.fineprint{font-size:.9rem;color:var(--muted);border-left:3px solid var(--accent);padding-left:16px;margin-top:24px}
/* contact */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
form.quote{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:36px}
form.quote label{display:block;font-weight:700;font-size:.9rem;margin:18px 0 6px}
form.quote label:first-child{margin-top:0}
form.quote input,form.quote select,form.quote textarea{width:100%;padding:13px 15px;border:2px solid var(--line);border-radius:12px;font:inherit;background:var(--bg)}
form.quote input:focus,form.quote select:focus,form.quote textarea:focus{outline:none;border-color:var(--accent)}
form.quote textarea{min-height:130px;resize:vertical}
form.quote .btn{margin-top:22px;width:100%}
.hp{position:absolute;left:-9999px}
.cinfo h3{font-size:1.3rem;margin-bottom:6px}
.cinfo .row{margin-bottom:26px}
.cinfo a.big{font-family:'Archivo';font-weight:800;font-size:1.5rem;color:var(--accent);text-decoration:none}
.cinfo p{color:var(--muted)}
/* footer */
footer{background:var(--inkbg);color:#e8e2d8;margin-top:100px}
.foot{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;padding:64px 0 40px}
.foot h4{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:#9a917f;margin-bottom:16px}
.foot a{color:#e8e2d8;text-decoration:none;display:block;margin-bottom:10px}
.foot a:hover{color:var(--accent)}
.foot .brand img{height:44px}
.foot .brand .bt b{color:#fff}
.foot .brand .bt span{color:#9a917f}
.copy{border-top:1px solid #2c2c2c;padding:22px 0;font-size:.85rem;color:#9a917f;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
/* lightbox */
#lb{position:fixed;inset:0;background:rgba(15,12,9,.92);display:none;align-items:center;justify-content:center;z-index:100;padding:30px}
#lb.open{display:flex}
#lb img{max-width:92vw;max-height:88vh;border-radius:10px}
#lb .x{position:absolute;top:20px;right:26px;color:#fff;font-size:2.4rem;cursor:pointer;background:none;border:none}
/* reveal */
.rv{opacity:0;transform:translateY(26px);transition:opacity .6s,transform .6s}
.rv.in{opacity:1;transform:none}
/* mobile call bar */
.callbar{display:none}
/* responsive */
@media(max-width:960px){
  .hero-grid,.feat,.about-grid,.contact-grid{grid-template-columns:1fr}
  .cards3{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr;padding:44px 32px}
  .steps{grid-template-columns:1fr 1fr}
  .gal{grid-template-columns:1fr 1fr}
  .hero{padding:56px 0 40px}
  .hero-img img.stamp{left:-14px}
  nav.links{position:fixed;inset:74px 0 auto 0;background:var(--bg);flex-direction:column;align-items:flex-start;padding:20px 24px 28px;gap:18px;border-bottom:1px solid var(--line);display:none}
  nav.links.open{display:flex}
  .hamb{display:block}
  .nav .btn{display:none}
  .foot{grid-template-columns:1fr;gap:28px}
  .hero-badge{font-size:.7rem;padding:9px 15px;top:-18px;right:4%}
  .callbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60}
  .callbar a{flex:1;text-align:center;padding:16px;font-weight:800;text-decoration:none;font-family:'Archivo'}
  .callbar .c1{background:var(--accent);color:#fff}
  .callbar .c2{background:var(--inkbg);color:#fff}
  body{padding-bottom:56px}
  footer{margin-bottom:0}
}
@media(max-width:600px){.gal{grid-template-columns:1fr}.gal .wide{grid-column:span 1}.steps{grid-template-columns:1fr}}
