
@font-face{font-family:'Alfa Slab One';src:url(/fonts/alfa-slab-one.woff) format('woff');font-display:swap}
@font-face{font-family:Literata;src:url(/fonts/literata.woff) format('woff');font-weight:200 900;font-display:swap}
:root{--paper:#ECEAE4;--paper-2:#E2DFD6;--card:#F7F5F0;--ink:#14233D;--ink-2:#3B4A63;--line:#C9C4B8;--red:#B3301C;--red-ink:#8E2414;
--ok:#1F5E36;--warn:#7A4B00;--warn-bg:#FBF0D9;--bad:#A8352A;--bad-bg:#F8E3DF;
--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--measure:66ch}
*{box-sizing:border-box}
html{background:var(--paper);overflow-x:clip;scroll-padding-top:16px}
body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.6 Literata,Georgia,serif;-webkit-font-smoothing:antialiased}
::selection{background:var(--ink);color:var(--paper)}
a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1.5px}
a:hover{text-decoration-color:var(--red)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:2px}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:1160px;margin:0 auto;padding:0 var(--s5)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:3px;z-index:9}.skip:focus{left:8px}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
header.top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s2);padding:var(--s5) 0}
.mark{font:24px/1 'Alfa Slab One',Georgia,serif;text-decoration:none;padding:8px 0}
nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 var(--s2)}
nav a{display:inline-block;padding:12px 8px;font-weight:600;text-decoration:none;min-height:44px}
nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px}
nav a.cta{background:var(--ink);color:var(--paper);border-radius:3px;padding:12px 14px;margin-left:var(--s2)}
h1,h2,h3{font-family:'Alfa Slab One',Georgia,serif;font-weight:400;line-height:1.08;margin:0;text-wrap:balance}
h1{font-size:clamp(38px,6vw,68px);max-width:18ch}
h2{font-size:clamp(28px,3.6vw,40px);margin-bottom:var(--s4)}
h3{font-size:22px;margin-bottom:var(--s2)}
h4{font:700 15px/1.4 Literata,Georgia,serif;margin:0 0 4px;color:var(--ink-2);text-transform:none}
p{margin:0 0 var(--s4);max-width:var(--measure)}
.lede{font-size:21px;color:var(--ink-2);max-width:46ch}
.btn{display:inline-flex;align-items:center;min-height:48px;background:var(--red);color:#fff;font-weight:700;padding:12px 22px;border-radius:3px;text-decoration:none;border:0;font:inherit;font-weight:700;cursor:pointer}
.btn:hover{background:var(--red-ink)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}
.btn.ghost:hover{background:var(--paper-2)}
.btns{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s5)}
section.band{padding:var(--s8) 0;border-top:2px solid var(--ink)}
.hero{padding:var(--s7) 0 var(--s8)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s5)}
.grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,440px),1fr));gap:var(--s5)}
.grid3{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--s5)}
.box{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:var(--s5)}
.box p:last-child{margin-bottom:0}
.price{font:28px/1 'Alfa Slab One',Georgia,serif;margin:var(--s2) 0 var(--s3)}
.kicker{font-size:15px;font-weight:700;color:var(--red-ink);margin-bottom:6px}
.status{display:inline-block;font:700 14px/1.3 Literata,Georgia,serif;padding:6px 10px;border-radius:999px;background:var(--paper-2);border:1px solid var(--line);margin:0 6px 6px 0}
.status.built{background:#E2EFE6;border-color:#9CC2A8;color:var(--ok)}
.status.concept{background:var(--warn-bg);border-color:#E3C489;color:var(--warn)}
.piece{display:flex;flex-direction:column;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.piece .shot{aspect-ratio:4/3;background:var(--paper-2);overflow:hidden}
.piece .shot img{width:100%;height:100%;object-fit:cover}
.piece .txt{padding:var(--s4) var(--s5) var(--s5)}
.piece h3{margin-top:4px}
.piece p{font-size:16px;color:var(--ink-2);margin:0 0 var(--s3)}
.piece:hover h3{text-decoration:underline;text-decoration-color:var(--red)}
dl.spec{display:grid;grid-template-columns:minmax(120px,170px) 1fr;gap:6px var(--s4);margin:0;font-size:16px}
dl.spec dt{font-weight:700;color:var(--ink-2)}
dl.spec dd{margin:0}
.svc{scroll-margin-top:16px}
.svc h3{font-size:26px}
details.more{margin-top:var(--s3)}details.more summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}details.more summary:hover{color:var(--red-ink)}details.more[open] summary{margin-bottom:var(--s3)}
ol.steps{counter-reset:s;list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--s4)}
ol.steps li{counter-increment:s;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:var(--s4)}
ol.steps li::before{content:counter(s);display:block;font:28px 'Alfa Slab One';color:var(--red)}
.case-head{padding:var(--s6) 0 var(--s5)}
.case-sec{padding:var(--s7) 0;border-top:1px solid var(--line)}
.case-sec>h2{font-size:clamp(24px,3vw,32px)}
.screens{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));justify-items:center;gap:var(--s6) var(--s5);margin-top:var(--s5);align-items:start}
figure{margin:0}
figcaption{font-size:15px;color:var(--ink-2);margin-top:var(--s3);max-width:40ch}
figcaption b{color:var(--ink)}
.tag{display:inline-block;font:700 12px/1 system-ui,sans-serif;letter-spacing:.02em;padding:4px 7px;border-radius:4px;margin-bottom:6px}
.tag.built{background:#E2EFE6;color:var(--ok)}.tag.design{background:var(--warn-bg);color:var(--warn)}
.phone{width:100%;max-width:300px;background:#FBFAF7;border:9px solid var(--ink);border-radius:32px;padding:14px 13px;font:15px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;color:#1d2433;overflow:hidden;box-shadow:0 12px 30px rgba(20,35,61,.16)}
.phone .bar{display:flex;justify-content:space-between;font-weight:700;font-size:14px;margin-bottom:10px;color:#3d4250}
.phone .h5{font:700 19px/1.25 Georgia,serif;margin:0 0 10px}
.phone .row{border:1px solid #d9d6cd;border-radius:10px;padding:9px 11px;margin-bottom:8px;background:#fff}
.phone .kv{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-bottom:1px solid #e8e5dd}
.phone .kv:last-child{border-bottom:0}
.phone .muted{color:#5c6170}
.phone .pill{display:inline-block;font-size:12px;font-weight:700;padding:3px 7px;border-radius:999px}
.phone .b{display:block;text-align:center;border-radius:10px;padding:10px;font-weight:700}
.phone .b.ink{background:#1d2433;color:#fff}.phone .b.line{border:2px solid #1d2433}.phone .b.blue{background:#1F4FA3;color:#fff}.phone .b.off{background:#e3e1db;color:#4f535c}
.phone .warn{background:#F8E3DF;border-radius:8px;padding:8px 10px;font-size:13px}
.phone .note{background:#FBF0D9;border:1px solid #E3C489;border-radius:8px;padding:9px 10px;font-size:13px;color:#5b3b00}
.stamp{display:inline-block;border:5px double currentColor;border-radius:12px;padding:8px 14px;transform:rotate(-5deg);text-align:center;color:#24479e;font-family:'Alfa Slab One',Georgia,serif}
.before-after{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--s5)}
.quote{border-left:3px solid var(--line);padding:2px 0 2px var(--s4);color:var(--ink-2)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s5)}
.gallery img{border:1px solid var(--line)}
.swatch{display:inline-flex;align-items:center;gap:10px;margin:0 16px 10px 0;font-size:15px}
.swatch i{width:34px;height:34px;border-radius:4px;border:1px solid rgba(0,0,0,.15)}
form .field{margin-bottom:var(--s5)}
label{display:block;font-weight:700;margin-bottom:6px}
.hint{display:block;font-size:15px;color:var(--ink-2);margin:-2px 0 6px}
input,select,textarea{width:100%;font:inherit;font-size:17px;color:var(--ink);background:#fff;border:2px solid #8A8577;border-radius:4px;padding:11px 12px;min-height:48px}
textarea{min-height:150px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--ink)}
[aria-invalid=true]{border-color:var(--bad)}
.err{color:var(--bad);font-size:15px;font-weight:700;margin-top:6px}
.banner{border-radius:6px;padding:var(--s4) var(--s5);margin-bottom:var(--s5)}
.banner.bad{background:var(--bad-bg);border:1px solid #E1A79C}.banner.ok{background:#E2EFE6;border:1px solid #9CC2A8}.banner.warn{background:var(--warn-bg);border:1px solid #E3C489}
.hp{position:absolute;left:-9999px}
footer.foot{border-top:2px solid var(--ink);padding:var(--s6) 0 var(--s7);font-size:16px;color:var(--ink-2);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s5)}
footer.foot a{display:inline-block;padding:4px 0}
footer ul{list-style:none;padding:0;margin:0}
@media (max-width:640px){body{font-size:17px}.wrap{padding:0 16px}dl.spec{grid-template-columns:1fr;gap:2px}dl.spec dd{margin-bottom:8px}section.band{padding:var(--s7) 0}nav a{padding:12px 6px}nav a.cta{margin-left:0}}
@media (prefers-reduced-motion:no-preference){.piece{transition:transform .18s ease-out}.piece:hover{transform:translateY(-2px)}}
