:root{--bg:#fff;--soft:#F7F5F2;--tile:#ECE8E2;--line:#E6E2DC;--ink:#1B1B1B;--muted:#4A4A4A;--gold:#A8461F;--brand:#0B0B0B;--cream:#F1E7D3;--spark-light:#E8834E;--serif:"Bodoni Moda",Georgia,"Times New Roman",serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}
a{color:var(--ink)}a:hover{color:#7A5E2E}
img,video{max-width:100%;display:block}
.wrap{max-width:1200px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.eyebrow{margin:0;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;text-wrap:balance;line-height:1.1}
h1{font-size:clamp(38px,6vw,58px)}
h2{font-size:clamp(30px,4vw,40px)}
h3{font-size:22px}
p{margin:0}
.lead{font-size:18px;color:var(--muted);max-width:560px}
.btn{display:inline-flex;align-items:center;min-height:48px;padding:14px 26px;font-size:15px;letter-spacing:.04em;text-decoration:none;border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;font-family:var(--sans)}
.btn:hover{background:#333;color:#fff}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.light{background:#fff;color:var(--ink);border-color:#fff}
.row{display:flex;flex-wrap:wrap;gap:12px}
/* header: black band so the logo's black square blends in */
.top{background:var(--brand);border-bottom:1px solid #2A2724;position:sticky;top:0;z-index:10}
.top nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-block:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--cream)}
.brand img{width:64px;height:64px}
.logo{font-family:var(--serif);font-size:22px;letter-spacing:.04em;text-decoration:none;color:var(--cream)}
.links{display:flex;flex-wrap:wrap;align-items:center;gap:22px;font-size:13px;letter-spacing:.1em;text-transform:uppercase}
.links a{text-decoration:none;color:var(--cream)}
.links a:hover{color:var(--spark-light)}
.links a[aria-current]{border-bottom:1px solid var(--spark-light)}
.links .btn{padding:10px 18px;min-height:44px;font-size:13px;background:var(--cream);color:var(--brand);border-color:var(--cream)}
.links .btn:hover{background:#fff;color:var(--brand)}
.portrait{width:100%;height:auto;aspect-ratio:9/10;object-fit:cover;background:var(--tile)}
.band-logo{width:200px;height:200px}
@media (max-width:560px){.brand .logo{display:none}.links{gap:16px}}
/* sections */
section{padding-block:72px}
.soft{background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dark{background:var(--brand);color:var(--cream)}
.dark .lead,.dark p{color:#D9D0BF}
.dark .btn.light{background:var(--cream);border-color:var(--cream)}
.center{text-align:center;display:flex;flex-direction:column;align-items:center;gap:18px}
.split{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.split>*{flex:1 1 420px;min-width:0}
.stack{display:flex;flex-direction:column;gap:22px}
.reel{position:relative;aspect-ratio:9/16;background:var(--tile);overflow:hidden;width:100%}
.reel video{width:100%;height:100%;object-fit:cover}
.hero-reel{max-width:380px;margin-left:auto;width:100%}
.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.card{display:flex;flex-direction:column;gap:12px;text-decoration:none}
.card p{color:var(--muted);font-size:15px}
.tile{aspect-ratio:9/16;background:var(--tile);display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--muted);font-family:var(--serif);font-size:20px}
.steps{display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.steps div{border-top:1px solid var(--ink);padding-top:18px;display:flex;flex-direction:column;gap:8px}
.steps strong{font-size:18px}
.steps span{color:var(--muted);font-size:15px}
.strip{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
.badge{display:inline-block;border:1px solid var(--gold);color:var(--gold);padding:6px 12px;font-size:13px;letter-spacing:.1em;text-transform:uppercase}
/* portfolio */
.filters{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding-bottom:28px}
.filters button{min-height:44px;padding:10px 18px;border:1px solid #CFC9C0;background:#fff;color:var(--ink);font:14px var(--sans);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.gallery{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
/* form */
.form{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
.form .full{grid-column:1/-1}
.form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500}
.form input,.form select,.form textarea{min-height:48px;border:1px solid #CFC9C0;background:#fff;padding:10px 12px;font:16px var(--sans);color:var(--ink);width:100%}
.form textarea{min-height:130px;resize:vertical}
.form .err{color:#A3261B;font-size:13px;font-weight:400;min-height:0}
.form [aria-invalid="true"]{border-color:#A3261B}
.form .btn{grid-column:1/-1;justify-content:center}
.formmsg{color:#A3261B;grid-column:1/-1}
.thanks{padding:28px;border:1px solid var(--line);background:#fff;font-size:18px}
@media (max-width:560px){.form{grid-template-columns:1fr}section{padding-block:56px}.hero-reel{margin:0 auto}}
footer{background:var(--brand);color:var(--cream)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-block:28px;font-size:14px;color:var(--cream)}
footer a{color:var(--cream)}footer a:hover{color:var(--spark-light)}
.foot-logo{width:120px;height:120px}
footer .social{display:flex;gap:20px}
:focus-visible{outline:2px solid #7A5E2E;outline-offset:2px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.filter-link{display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border:1px solid #CFC9C0;font-size:14px;text-decoration:none}
.ba{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;padding-top:24px;border-top:1px solid var(--line)}
.ba-side{display:flex;flex-direction:column;gap:10px;min-width:0}
.ba-imgs{display:grid;gap:10px}
.ba-imgs.n1{grid-template-columns:1fr}.ba-imgs.n2{grid-template-columns:repeat(2,1fr)}.ba-imgs.n3{grid-template-columns:repeat(3,1fr)}
.ba img,.more img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;background:var(--tile)}
.ba .reel{aspect-ratio:3/4}
.ba.wide{grid-template-columns:3fr 1fr}
.tag{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tag.after{color:var(--gold)}
.more{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.more figure{margin:0;display:flex;flex-direction:column;gap:6px}
.more figcaption{font-size:13px;color:var(--muted)}
.cad{display:grid;gap:24px;grid-template-columns:1fr 1.4fr 1.6fr;align-items:center;margin-top:24px;padding-top:32px;border-top:1px solid var(--line)}
.cad figure{margin:0}.cad img{width:100%;height:auto;background:var(--tile)}
@media (max-width:760px){.ba{grid-template-columns:1fr!important}.cad{grid-template-columns:1fr 1fr}.cad .stack{grid-column:1/-1}}
.ba .reel{aspect-ratio:3/4}
.repair-hero img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:var(--tile)}
@media (max-width:760px){.ba .ba-imgs{grid-template-columns:repeat(2,1fr)!important}}

/* phone layout */
@media (max-width:560px){
.top nav{flex-wrap:nowrap;gap:10px;padding-block:6px}
.brand img{width:44px;height:44px}
.links{flex-wrap:nowrap;gap:14px;font-size:12px;letter-spacing:.06em}
.links .nav-contact,.hide-sm{display:none}
.links .btn{padding:8px 14px;min-height:40px;font-size:12px;white-space:nowrap}
section{padding-block:44px}
.split{gap:28px}
.stack{gap:18px}
h1{font-size:32px}
h2{font-size:28px}
.lead{font-size:16px}
.hero-reel{max-width:260px}
.row .btn{flex:1 1 100%;justify-content:center}
.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
.card{gap:8px}
.card h3{font-size:18px}
.card p{font-size:14px}
.strip,.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.filters{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;margin-inline:-20px;padding-inline:20px;padding-bottom:20px}
.filters::-webkit-scrollbar{display:none}
.filters button,.filters .filter-link{flex:0 0 auto;white-space:nowrap}
footer .wrap{flex-direction:column;justify-content:center;text-align:center}
.foot-logo{width:96px;height:96px}
}
