@charset "UTF-8";
/* Premium Estimating — layout concept: drafting-sheet bands. Black "plan room" bands with a faint
   measurement grid alternate with pale concrete reading bands; yellow is used like a takeoff
   highlighter, only on what was measured (CTAs, codes, active marks). */
:root{
  --ink:#080808;        /* premium black */
  --ink-2:#121212;      /* charcoal */
  --ink-3:#1c1c1c;      /* dark gray */
  --rule-d:rgba(255,201,40,.11);
  --line-d:rgba(255,255,255,.09);
  --paper:#f5f5f5;      /* light gray */
  --paper-2:#e6e6e6;
  --card:#ffffff;
  --text:#121212;
  --muted:#555555;
  --text-d:#ffffff;
  --muted-d:#a3a3a3;
  --yellow:#ffc928;     /* premium yellow */
  --yellow-2:#ffd75e;
  --yellow-ink:#7a5a00; /* yellow-family text readable on light gray */
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --body:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --wrap:1200px;
  --r:4px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--body);font-size:17px;line-height:1.6;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ink)}
img,svg,canvas{max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.skip{position:absolute;left:-999px;top:0;background:var(--yellow);color:var(--ink);padding:10px 16px;z-index:100}
.skip:focus{left:12px;top:12px}

/* type */
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.02;letter-spacing:.005em;text-wrap:balance;margin:0}
h1{font-size:clamp(2.4rem,5.4vw,4.6rem);text-transform:uppercase;overflow-wrap:break-word}
h2{font-size:clamp(2rem,4vw,3.2rem);text-transform:uppercase}
h3{font-size:1.45rem;font-weight:700;letter-spacing:.01em}
p{margin:0;max-width:68ch}
.lead{font-size:clamp(1.05rem,1.6vw,1.22rem);color:var(--muted);max-width:62ch}
.eyebrow{font-family:var(--mono);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow-ink);display:inline-flex;gap:10px;align-items:center}
.eyebrow::before{content:"";width:22px;height:2px;background:currentColor}
.mono{font-family:var(--mono)}
.hl{background:linear-gradient(transparent 58%,rgba(255,201,40,.55) 58%,rgba(255,201,40,.55) 92%,transparent 92%)}

/* dark band */
.dark{background:var(--ink);color:var(--text-d);position:relative;isolation:isolate}
.dark .lead,.dark .muted{color:var(--muted-d)}
.dark .eyebrow{color:var(--yellow)}
.grid-bg::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--line-d) 1px,transparent 1px),linear-gradient(90deg,var(--line-d) 1px,transparent 1px),
  linear-gradient(var(--rule-d) 1px,transparent 1px),linear-gradient(90deg,var(--rule-d) 1px,transparent 1px);
  background-size:24px 24px,24px 24px,120px 120px,120px 120px;
  mask-image:radial-gradient(ellipse at 70% 30%,#000 30%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse at 70% 30%,#000 30%,transparent 80%)}
.hl-dark{color:var(--yellow)}

section{padding-block:clamp(64px,9vw,120px)}
.sec-head{display:grid;gap:16px;margin-bottom:clamp(32px,5vw,56px);max-width:820px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-weight:700;font-size:.98rem;text-decoration:none;border-radius:var(--r);padding:15px 22px;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease;line-height:1.1}
.btn:hover{transform:translateY(-2px)}
.btn-y{background:var(--yellow);color:var(--ink)}
.btn-y:hover{background:var(--yellow-2)}
.btn-o{border-color:currentColor;color:inherit;background:transparent}
.dark .btn-o:hover{background:var(--text-d);color:var(--ink)}
.btn-k{background:var(--ink);color:var(--text-d)}
.btn-k:hover{background:#000}
.btn svg{width:18px;height:18px}
.btns{display:flex;flex-wrap:wrap;gap:12px}

/* header */
.topbar{background:#0b0b0a;color:var(--muted-d);font-size:.82rem}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:6px 22px;justify-content:space-between;padding-block:8px}
.topbar a{text-decoration:none;color:var(--text-d)}
.topbar span{display:inline-flex;gap:8px;align-items:center}
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(20,20,18,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line-d);color:var(--text-d)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text-d);flex-shrink:0}
.logo .mono-pe{font-family:"Playfair Display",Georgia,serif;font-weight:800;font-size:2.15rem;color:var(--yellow);letter-spacing:-.14em;line-height:1;padding-right:.12em}
.logo .div{width:1px;height:34px;background:#6b6a66}
.logo .words{display:grid;line-height:1;font-family:var(--display);text-transform:uppercase}
.logo .words b{color:var(--yellow);font-size:1.32rem;letter-spacing:.06em;font-weight:900}
.logo .words i{font-style:normal;color:#fff;font-size:.86rem;letter-spacing:.3em;font-weight:700;margin-top:3px}
.nav{display:flex;align-items:center;gap:4px}
.nav a{text-decoration:none;font-weight:600;font-size:.93rem;padding:10px 12px;border-radius:var(--r);color:#dedbd0}
.nav a:hover,.nav a[aria-current="page"]{color:var(--yellow)}
.nav .btn{margin-left:10px;padding:12px 18px;color:var(--ink)}
.menu{display:none}
.menu summary{list-style:none;cursor:pointer;padding:10px;border:1px solid var(--line-d);border-radius:var(--r);display:flex}
.menu summary::-webkit-details-marker{display:none}
.menu summary svg{width:24px;height:24px}
.menu[open] .panel{display:grid}
.menu .panel{display:none;position:absolute;left:0;right:0;top:100%;background:var(--ink);border-bottom:2px solid var(--yellow);padding:12px max(20px,env(safe-area-inset-right,0px)) 24px max(20px,env(safe-area-inset-left,0px));gap:2px;max-height:calc(100vh - 80px);overflow:auto}
.menu .panel a{padding:14px 4px;border-bottom:1px solid var(--line-d);text-decoration:none;font-weight:600;font-size:1.05rem}
.menu .panel .btn{margin-top:14px;justify-content:center;border:0}
@media (max-width:1020px){.nav{display:none}.menu{display:block}}

/* hero */
.hero{padding-block:clamp(48px,7vw,96px) clamp(56px,8vw,110px);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,56px);align-items:center}
.hero h1 .y{color:var(--yellow)}
.hero-copy{display:grid;gap:26px;min-width:0}
.hero-copy .lead{color:#c9c5b6}
.hero-stage{position:relative;max-width:100%;min-width:0}
#bldg{width:100%;height:100%;display:block}
.stage-tag{position:absolute;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;color:var(--muted-d);text-transform:uppercase}
.stage-tag.t1{top:6%;left:2%}
.stage-tag.t2{bottom:6%;right:2%;text-align:right}
.qcard{position:absolute;right:0;bottom:12%;width:min(300px,78%);background:rgba(28,27,24,.92);border:1px solid rgba(255,201,40,.35);border-radius:var(--r);padding:16px 16px 12px;font-family:var(--mono);font-size:.74rem;box-shadow:0 20px 50px rgba(0,0,0,.45);backdrop-filter:blur(6px)}
.qcard h4{margin:0 0 10px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);display:flex;justify-content:space-between}
.qcard .row{display:grid;grid-template-columns:62px 1fr auto;gap:8px;padding:6px 0;border-top:1px dashed rgba(255,255,255,.1);color:#d7d3c5;font-variant-numeric:tabular-nums}
.qcard .row b{color:#fff;font-weight:600}
.qcard .row span:first-child{color:var(--yellow)}
.trust{display:flex;flex-wrap:wrap;gap:10px 26px;font-size:.88rem;color:#bdb9aa}
.trust span{display:inline-flex;gap:8px;align-items:center}
.trust svg{width:16px;height:16px;color:var(--yellow);flex-shrink:0}
@media (max-width:960px){.hero .wrap{grid-template-columns:1fr}.hero-stage{width:100%}}

/* marquee */
.marquee{background:var(--ink-2);color:#e8e8e8;border-block:1px solid var(--line-d);overflow:hidden;padding-block:14px;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.25rem;letter-spacing:.04em}
.marquee .track{display:flex;gap:42px;width:max-content;animation:mq 60s linear infinite}
.marquee span{display:inline-flex;gap:12px;align-items:center;white-space:nowrap}
.marquee span i{font-family:var(--mono);font-style:normal;font-size:.78rem;font-weight:600;color:var(--yellow);border:1.5px solid var(--yellow);padding:2px 6px;border-radius:2px}
@keyframes mq{to{transform:translateX(-50%)}}

/* page hero */
.phero{padding-block:clamp(44px,6vw,84px)}
.phero .wrap{display:grid;gap:22px}
.phero .lead{color:#c9c5b6}
.crumbs{font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;color:var(--muted-d);display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.crumbs a{text-decoration:none;color:var(--muted-d)}
.crumbs a:hover{color:var(--yellow)}
.crumbs li+li::before{content:"/";margin-right:6px;color:#55534c}
.phero-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:40px;align-items:end}
.phero-grid>*{min-width:0}
.spec{border:1px solid rgba(255,201,40,.3);border-radius:var(--r);padding:18px 20px;font-family:var(--mono);font-size:.8rem;display:grid;gap:8px;background:rgba(255,255,255,.02)}
.spec .k{color:var(--muted-d);letter-spacing:.1em;text-transform:uppercase;font-size:.68rem}
.spec .v{color:var(--text-d)}
.spec .units{display:flex;flex-wrap:wrap;gap:6px}
.spec .units span{border:1px solid var(--yellow);color:var(--yellow);padding:2px 8px;border-radius:2px}
.div-code{font-family:var(--display);font-weight:900;font-size:clamp(4rem,10vw,8rem);line-height:.8;color:transparent;-webkit-text-stroke:1.5px var(--yellow)}
@media (max-width:820px){.phero-grid{grid-template-columns:1fr}}

/* content */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.split>*{min-width:0}
.prose{display:grid;gap:18px}
.prose p{color:var(--muted)}
.prose p:first-child{color:var(--text);font-size:1.12rem}
@media (max-width:860px){.split{grid-template-columns:1fr}}

.checks{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--paper-2)}
.checks li{display:grid;grid-template-columns:28px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--paper-2);align-items:start}
.checks li::before{content:"";width:18px;height:18px;margin-top:4px;border:2px solid var(--ink);background:linear-gradient(135deg,transparent 45%,var(--yellow) 45%);border-radius:2px}
.dark .checks{border-color:var(--line-d)}
.dark .checks li{border-color:var(--line-d)}
.dark .checks li::before{border-color:var(--yellow)}

.box{background:var(--card);border:1px solid var(--paper-2);border-radius:var(--r);padding:clamp(22px,3vw,34px);display:grid;gap:16px}
.box h3{font-size:1.6rem}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span,.chip{font-size:.86rem;background:var(--paper);border:1px solid var(--paper-2);padding:6px 12px;border-radius:999px;color:var(--text)}

/* card grids */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.card{position:relative;display:grid;gap:12px;align-content:start;text-decoration:none;background:var(--card);border:1px solid var(--paper-2);border-radius:var(--r);padding:24px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;min-width:0}
.card:hover{transform:translateY(-3px);border-color:var(--ink);box-shadow:0 14px 30px rgba(20,20,18,.08)}
.card .code{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;color:var(--yellow-ink)}
.card h3{font-size:1.35rem}
.card p{font-size:.94rem;color:var(--muted)}
.card .go{font-weight:700;font-size:.88rem;display:inline-flex;gap:8px;align-items:center;margin-top:4px}
.card .go::after{content:"→";transition:transform .2s ease}
.card:hover .go::after{transform:translateX(4px)}
.dark .card{background:var(--ink-3);border-color:var(--line-d);color:var(--text-d)}
.dark .card p{color:var(--muted-d)}
.dark .card .code{color:var(--yellow)}
.dark .card:hover{border-color:var(--yellow);box-shadow:none}

/* CSI index (homepage + hub) */
.csi{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));border-top:1px solid var(--line-d);border-left:1px solid var(--line-d)}
.csi a{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:center;padding:18px 18px;border-right:1px solid var(--line-d);border-bottom:1px solid var(--line-d);text-decoration:none;color:var(--text-d);transition:background .15s ease}
.csi a:hover{background:var(--yellow);color:var(--ink)}
.csi a:hover b{color:var(--ink);-webkit-text-stroke:0}
.csi b{font-family:var(--display);font-weight:900;font-size:2.2rem;line-height:1;color:transparent;-webkit-text-stroke:1.2px var(--yellow)}
.csi span{font-weight:600;font-size:.95rem;line-height:1.25}
.csi small{display:block;font-family:var(--mono);font-size:.68rem;opacity:.65;letter-spacing:.06em;margin-top:3px}

/* split services */
.svc-split{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.svc-panel{border-radius:var(--r);padding:clamp(26px,3.5vw,44px);display:grid;gap:22px;align-content:start;position:relative;overflow:hidden;min-width:0}
.svc-panel.a{background:var(--ink);color:var(--text-d)}
.svc-panel.b{background:var(--ink-3);color:var(--text-d);border-top:4px solid var(--yellow)}
.svc-panel.b li a:hover{color:var(--yellow)}
.svc-panel h3{font-size:clamp(1.8rem,3vw,2.5rem);text-transform:uppercase}
.svc-panel ul{list-style:none;margin:0;padding:0;display:grid}
.svc-panel li a{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid rgba(127,127,127,.25);text-decoration:none;font-weight:600}
.svc-panel li a::after{content:"→";transition:transform .2s ease}
.svc-panel li a:hover::after{transform:translateX(5px)}
.svc-panel.a li a:hover{color:var(--yellow)}
.svc-panel .tag{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
@media (max-width:860px){.svc-split{grid-template-columns:1fr}}

/* takeoff demo */
.demo{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;align-items:stretch}
.demo>*{min-width:0}
.sheet{background:#0f0f0d;border:1px solid var(--line-d);border-radius:var(--r);padding:14px;position:relative}
.sheet svg{display:block;width:100%;height:auto}
.sheet .lbl{position:absolute;left:14px;bottom:12px;font-family:var(--mono);font-size:.66rem;color:var(--muted-d);letter-spacing:.1em}
.plan-base{fill:none;stroke:#57554d;stroke-width:2}
.plan-thin{fill:none;stroke:#3a3934;stroke-width:1}
.plan-y{fill:none;stroke:var(--yellow);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;opacity:.85;stroke-dasharray:1600;stroke-dashoffset:1600;animation:draw 9s ease-in-out infinite}
.plan-c{fill:var(--yellow);opacity:0;animation:pop 9s ease infinite}
.plan-a{fill:rgba(255,201,40,.16);opacity:0;animation:area 9s ease infinite}
@keyframes draw{0%{stroke-dashoffset:1600}45%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:0;opacity:0}}
@keyframes pop{0%,48%{opacity:0}55%,88%{opacity:1}100%{opacity:0}}
@keyframes area{0%,20%{opacity:0}35%,88%{opacity:1}100%{opacity:0}}
.xl{background:var(--card);color:var(--text);border-radius:var(--r);overflow:hidden;font-family:var(--mono);font-size:.76rem;display:flex;flex-direction:column}
.xl .bar{background:#1e6b3c;color:#fff;padding:9px 12px;display:flex;justify-content:space-between;font-size:.7rem;letter-spacing:.06em}
.xl .tblwrap{overflow-x:auto;flex:1}
.xl table{border-collapse:collapse;width:100%;min-width:360px;font-variant-numeric:tabular-nums}
.xl th{background:var(--paper-2);text-align:left;font-weight:600;padding:7px 9px;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.xl td{padding:7px 9px;border-top:1px solid var(--paper-2)}
.xl td.n{text-align:right}
.xl tr.div td{background:#fff7d1;font-weight:700}
.xl tr.tot td{background:var(--ink);color:var(--yellow);font-weight:700}
.xl .note{padding:8px 12px;color:var(--muted);font-size:.68rem;border-top:1px solid var(--paper-2)}
@media (max-width:900px){.demo{grid-template-columns:1fr}}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;border-top:2px solid var(--ink)}
.steps li{list-style:none;padding:26px 22px 8px 0;display:grid;gap:12px;align-content:start;counter-increment:s;position:relative}
.steps li::before{content:"0" counter(s);font-family:var(--display);font-weight:900;font-size:3.4rem;line-height:.9;color:var(--yellow);-webkit-text-stroke:1.5px var(--ink)}
.steps li::after{content:"";position:absolute;top:-7px;left:0;width:12px;height:12px;background:var(--yellow);border:2px solid var(--ink);border-radius:50%}
.steps h3{font-size:1.4rem}
.steps p{color:var(--muted);font-size:.95rem}
.steps{padding:0;margin:0}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr;row-gap:20px}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* why */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-d);border:1px solid var(--line-d)}
.why div{background:var(--ink);padding:30px 26px;display:grid;gap:12px;align-content:start}
.why h3{font-size:1.35rem;color:var(--text-d)}
.why p{color:var(--muted-d);font-size:.95rem}
.why svg{width:30px;height:30px;color:var(--yellow)}
@media (max-width:900px){.why{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.why{grid-template-columns:1fr}}

/* portfolio */
.folio{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.folio article{background:var(--card);border:1px solid var(--paper-2);border-radius:var(--r);overflow:hidden;display:grid;min-width:0}
.folio .thumb{aspect-ratio:4/3;background:var(--ink);position:relative;overflow:hidden}
.folio .thumb svg{width:100%;height:100%;display:block}
.folio .meta{padding:18px;display:grid;gap:6px}
.folio .meta small{font-family:var(--mono);font-size:.7rem;color:var(--yellow-ink);letter-spacing:.08em;text-transform:uppercase}
.folio h3{font-size:1.3rem}
.folio p{font-size:.9rem;color:var(--muted)}
@media (max-width:980px){.folio{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.folio{grid-template-columns:1fr}}

/* locations */
.locs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.locs a{display:grid;gap:10px;text-decoration:none;padding:26px 22px;border:1px solid var(--line-d);border-radius:var(--r);color:var(--text-d);transition:border-color .2s ease,background .2s ease}
.locs a:hover{border-color:var(--yellow);background:rgba(255,201,40,.05)}
.locs b{font-family:var(--display);font-size:2.4rem;font-weight:900;text-transform:uppercase;line-height:1}
.locs small{font-family:var(--mono);color:var(--yellow);font-size:.72rem;letter-spacing:.1em}
.locs span{color:var(--muted-d);font-size:.9rem}
@media (max-width:900px){.locs{grid-template-columns:1fr 1fr}}
@media (max-width:440px){.locs{grid-template-columns:1fr}}

/* faq */
.faq{display:grid;border-top:1px solid var(--paper-2)}
.faq details{border-bottom:1px solid var(--paper-2)}
.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font-weight:700;font-size:1.08rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:14px;font-family:var(--display);font-size:2rem;line-height:1;color:var(--yellow-ink);transition:transform .2s ease}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 22px;color:var(--muted)}

/* CTA band */
.cta{background:var(--yellow);color:var(--ink);padding-block:clamp(56px,7vw,90px);position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(135deg,rgba(20,20,18,.06) 0 2px,transparent 2px 22px)}
.cta .wrap{position:relative;display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between}
.cta h2{max-width:16ch}
.cta p{font-size:1.1rem;max-width:46ch;margin-top:12px}

/* form */
.formcard{background:var(--card);color:var(--text);border-radius:var(--r);padding:clamp(22px,3.5vw,40px);display:grid;gap:18px;border-top:6px solid var(--yellow);box-shadow:0 30px 60px rgba(0,0,0,.25);min-width:0}
.formcard h2,.formcard h3{color:var(--text)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fgrid .full{grid-column:1/-1}
.field{display:grid;gap:6px;min-width:0}
.field label{font-size:.82rem;font-weight:700;letter-spacing:.02em}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;padding:13px 14px;border:1.5px solid #cfccc3;border-radius:var(--r);background:#fff;color:var(--text);width:100%}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);outline:2px solid var(--yellow);outline-offset:0}
.drop{border:2px dashed #b9b5a8;border-radius:var(--r);padding:22px;text-align:center;display:grid;gap:8px;place-items:center;background:var(--paper);cursor:pointer;transition:border-color .2s ease,background .2s ease;position:relative}
.drop:hover,.drop.over{border-color:var(--ink);background:#fff7d1}
.drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.drop svg{width:34px;height:34px}
.drop small{color:var(--muted);font-size:.82rem}
.drop .files{font-family:var(--mono);font-size:.8rem;color:var(--text);word-break:break-all}
.hint{font-size:.82rem;color:var(--muted)}
.fmsg{padding:14px 16px;border-radius:var(--r);background:#fff7d1;border:1px solid var(--yellow);font-size:.95rem}
.hp{position:absolute;left:-5000px}
@media (max-width:620px){.fgrid{grid-template-columns:1fr}}

/* contact */
.contact-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,4vw,56px);align-items:start}
.contact-grid>*{min-width:0}
.cinfo{display:grid;gap:22px}
.cinfo div{display:grid;gap:4px}
.cinfo .k{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--yellow)}
.cinfo .v{font-size:1.2rem;font-weight:600;color:var(--text-d);word-break:break-word}
.cinfo a{text-decoration:none}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}

/* footer */
.ftr{background:#0b0b0a;color:var(--muted-d);font-size:.9rem;padding-block:72px 32px}
.ftr .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:32px}
.ftr .cols>*{min-width:0}
.ftr h4{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);margin:0 0 14px}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ftr a{text-decoration:none;color:#cfcbbd}
.ftr a:hover{color:var(--yellow)}
.ftr .about{display:grid;gap:16px}
.ftr .bottom{border-top:1px solid var(--line-d);margin-top:52px;padding-top:24px;display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;font-size:.8rem}
.ftr .csi-mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 18px;margin-top:40px;padding-top:28px;border-top:1px solid var(--line-d)}
.ftr .csi-mini a{font-size:.82rem}
.ftr .csi-mini b{font-family:var(--mono);color:var(--yellow);font-weight:500;margin-right:6px}
@media (max-width:980px){.ftr .cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.ftr .cols{grid-template-columns:1fr}}

/* float CTA (mobile) */
.fab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:40;display:none;box-shadow:0 10px 30px rgba(0,0,0,.35)}
@media (max-width:760px){.fab{display:inline-flex}}

/* reveal */
.rv{transition:opacity .7s ease,transform .7s ease}
.js .rv.pre{opacity:.001;transform:translateY(18px)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .rv.pre{opacity:1;transform:none}.plan-y{stroke-dashoffset:0}.plan-c,.plan-a{opacity:1}}

.tight{padding-block:clamp(40px,6vw,70px)}
.pale{background:var(--paper-2)}
.center{text-align:center;justify-items:center;margin-inline:auto}
.stack{display:grid;gap:24px}
.note-box{border-left:4px solid var(--yellow);background:var(--card);padding:16px 20px;font-size:.95rem;color:var(--muted);border-radius:0 var(--r) var(--r) 0}
.notfound{min-height:60vh;display:grid;place-items:center;text-align:center}

/* ---------- mega menu ---------- */
.nav .dd{position:relative}
.nav .dd>a::after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-3px);margin-left:8px;opacity:.7}
.nav .mega{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);min-width:560px;background:var(--ink-2);border:1px solid var(--line-d);border-top:3px solid var(--yellow);border-radius:0 0 var(--r) var(--r);padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;opacity:0;visibility:hidden;transition:opacity .18s ease,transform .18s ease,visibility .18s;box-shadow:0 30px 60px rgba(0,0,0,.5)}
.nav .mega.wide{min-width:760px;grid-template-columns:repeat(3,1fr)}
.nav .dd:hover .mega,.nav .dd:focus-within .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav .mega a{padding:8px 10px;font-size:.88rem;font-weight:500;color:#d6d6d6;display:flex;gap:10px;align-items:baseline}
.nav .mega a b{font-family:var(--mono);font-size:.72rem;color:var(--yellow);font-weight:500;min-width:20px}
.nav .mega a:hover{background:rgba(255,255,255,.05);color:#fff}
.nav .mega h5{grid-column:1/-1;margin:6px 10px 6px;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-d);font-weight:500}
.nav .mega .all{grid-column:1/-1;margin-top:8px;border-top:1px solid var(--line-d);padding-top:12px;color:var(--yellow);font-weight:700}
.menu .panel h5{margin:16px 0 4px;font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);font-weight:500}

/* ---------- interactive takeoff demo ---------- */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.tabs button{font:inherit;font-weight:700;font-size:.86rem;padding:10px 16px;border-radius:var(--r);border:1.5px solid var(--line-d);background:transparent;color:var(--text-d);cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.tabs button b{font-family:var(--mono);font-size:.7rem;color:var(--yellow);font-weight:500}
.tabs button[aria-selected="true"]{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.tabs button[aria-selected="true"] b{color:var(--ink)}
.layer{opacity:.0;transition:opacity .4s ease}
[data-active="concrete"] [data-layer="concrete"],[data-active="drywall"] [data-layer="drywall"],[data-active="hvac"] [data-layer="hvac"],[data-active="electrical"] [data-layer="electrical"]{opacity:1}
.layer .ln{fill:none;stroke:var(--yellow);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.layer .ar{fill:rgba(255,201,40,.18);stroke:var(--yellow);stroke-width:2}
.layer .sym{fill:var(--ink);stroke:var(--yellow);stroke-width:2}
.layer .tx{fill:var(--yellow);font-family:var(--mono);font-size:13px}
.layer.drawing .ln{stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw2 2.4s ease forwards}
.layer.drawing .sym,.layer.drawing .ar{animation:pop2 .6s ease both}
.layer.drawing .sym:nth-of-type(3n){animation-delay:.3s}.layer.drawing .sym:nth-of-type(3n+1){animation-delay:.6s}
@keyframes draw2{to{stroke-dashoffset:0}}
@keyframes pop2{from{opacity:0}to{opacity:1}}

/* ---------- form extras ---------- */
.fmsg.ok{background:#eaf7ee;border-color:#2e8b57}
.fmsg.err{background:#fdecec;border-color:#c0392b}
.fmsg.warn{background:#fff7d1;border-color:var(--yellow)}
.files{list-style:none;margin:0;padding:0;display:grid;gap:6px;width:100%}
.files li{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fff;border:1px solid var(--paper-2);border-radius:var(--r);padding:8px 10px;font-family:var(--mono);font-size:.78rem;text-align:left;word-break:break-all;position:relative;z-index:2}
.files button{border:0;background:var(--ink);color:#fff;width:24px;height:24px;border-radius:50%;cursor:pointer;flex-shrink:0;font-size:1rem;line-height:1}
.total{font-family:var(--mono);font-size:.76rem;color:var(--muted)}
.progress{height:8px;background:var(--paper-2);border-radius:99px;overflow:hidden}
.progress span{display:block;height:100%;width:0;background:var(--yellow);transition:width .2s ease}
.consent{display:grid;grid-template-columns:20px 1fr;gap:10px;font-size:.85rem;color:var(--muted);align-items:start}
.consent input{width:18px;height:18px;margin-top:2px;accent-color:#121212}
.form-band{background:var(--ink);color:var(--text-d);position:relative;isolation:isolate}
.form-band .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,64px);align-items:start}
.form-band .wrap>*{min-width:0}
.form-band .side{display:grid;gap:22px;position:sticky;top:110px}
.form-band .side p{color:var(--muted-d)}
.form-band .side ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.form-band .side li{display:grid;grid-template-columns:22px 1fr;gap:10px;color:#e6e6e6}
.form-band .side li::before{content:"✓";color:var(--yellow);font-weight:700}
.form-band .side .contact-line{font-family:var(--mono);font-size:.85rem;color:var(--muted-d);display:grid;gap:4px}
.form-band .side .contact-line b{color:#fff;font-family:var(--body);font-size:1.05rem}
@media (max-width:900px){.form-band .wrap{grid-template-columns:1fr}.form-band .side{position:static}}

/* reserved divisions note */
.reserved{display:flex;flex-wrap:wrap;gap:6px}
.reserved span{font-family:var(--mono);font-size:.78rem;border:1px dashed #9a9a9a;color:var(--muted);padding:4px 8px;border-radius:2px}
.legal{max-width:760px}
.legal h2{font-size:1.8rem;margin-top:18px}
.legal p,.legal li{color:var(--muted)}
.placeholder{background:#fff7d1;border:1px dashed #b38600;padding:1px 6px;border-radius:2px;font-family:var(--mono);font-size:.85em;color:#5c4400}
.cards.three{grid-template-columns:repeat(3,1fr)}
@media (max-width:900px){.cards.three{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cards.three{grid-template-columns:1fr}}
.xl td:first-child{white-space:nowrap}

/* ---------- construction-sequence hero ---------- */
.hero-stage .screen{position:relative;aspect-ratio:16/11;border:1px solid var(--line-d);border-radius:6px;background:radial-gradient(ellipse at 50% 60%,#161616,#090909 70%);overflow:hidden}
#site{display:block;width:100%;height:100%}
.hud{position:absolute;inset:14px 16px auto 16px;display:flex;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;color:var(--muted-d);pointer-events:none}
.hud b{color:var(--yellow);font-weight:600}
.rec{display:inline-flex;align-items:center;gap:6px}.rec i{width:7px;height:7px;border-radius:50%;background:#e5484d;animation:blink 1.2s infinite}
@keyframes blink{50%{opacity:.25}}
.legend{position:absolute;left:16px;bottom:14px;display:flex;gap:14px;font-family:var(--mono);font-size:.64rem;color:#bdbdbd;opacity:0;transition:opacity .4s;pointer-events:none}
.legend.show{opacity:1}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:14px;height:3px;border-radius:2px}
.timeline{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(8,1fr);gap:6px;counter-reset:s}
.timeline li{counter-increment:s;border-top:3px solid #2a2a2a;padding-top:8px;font-size:.76rem;color:#7d7d7d;transition:color .3s,border-color .3s;min-width:0}
.timeline li::before{content:"0" counter(s);display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;margin-bottom:2px}
.timeline li small{display:block;font-family:var(--mono);font-size:.6rem;color:#5c5c5c;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.timeline li.done{border-color:#7a6320;color:#bdbdbd}.timeline li.on{border-color:var(--yellow);color:#fff}.timeline li.on small{color:var(--yellow)}
@media (max-width:620px){.timeline{grid-template-columns:repeat(4,1fr);row-gap:12px}.legend{gap:8px;font-size:.58rem}}

/* ---------- verified facts band ---------- */
.facts{background:var(--ink);color:var(--text-d);padding-block:0;border-top:1px solid var(--line-d)}
.facts .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.facts .wrap>div{padding:30px 22px;border-left:1px solid var(--line-d);display:grid;gap:4px}
.facts .wrap>div:first-child{border-left:0;padding-left:0}
.facts b{font-family:var(--display);font-weight:900;font-size:clamp(2.4rem,4.5vw,3.6rem);line-height:1;color:var(--yellow)}
.facts span{color:var(--muted-d);font-size:.92rem}
@media (max-width:760px){.facts .wrap{grid-template-columns:1fr 1fr}.facts .wrap>div{padding:22px 14px}.facts .wrap>div:nth-child(3){border-left:0;padding-left:0}.facts .wrap>div:nth-child(n+3){border-top:1px solid var(--line-d)}}

/* ---------- pricing ---------- */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
.plan{position:relative;background:var(--card);border:1px solid var(--paper-2);border-radius:var(--r);padding:30px 26px;display:grid;gap:16px;align-content:start}
.plan.hot{border:2px solid var(--ink);box-shadow:0 24px 50px rgba(0,0,0,.12)}
.plan .badge{position:absolute;top:-13px;left:24px;background:var(--yellow);color:var(--ink);font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:2px}
.plan .price{font-family:var(--display);font-weight:900;font-size:2.8rem;line-height:1}
.plan p{color:var(--muted)}
.plan .btn{justify-content:center;margin-top:auto}
@media (max-width:900px){.plans{grid-template-columns:1fr}}

/* ---------- articles ---------- */
.card.art h3{font-size:1.45rem}
.byline{font-family:var(--mono);font-size:.78rem;color:var(--muted-d)}
.article{max-width:760px;display:grid;gap:18px}
.article h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin-top:18px}
.article p{color:#333;font-size:1.08rem;line-height:1.75}
.sources{border-top:1px solid var(--paper-2);padding-top:18px;margin-top:10px}
.sources h2{font-size:1.4rem;margin:0 0 10px}
.sources ul{margin:0;padding-left:18px;display:grid;gap:6px;font-size:.92rem}
.sources a{color:var(--muted)}

/* ---------- WhatsApp ---------- */
.wa-fab{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:45;display:inline-flex;align-items:center;gap:10px;background:#25d366;color:#fff;text-decoration:none;font-weight:700;padding:12px 18px 12px 14px;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.3);transition:transform .2s ease}
.wa-fab:hover{transform:translateY(-2px)}
.wa-fab svg{width:26px;height:26px}
@media (max-width:760px){.wa-fab span{display:none}.wa-fab{padding:13px}.fab{right:auto;left:max(16px,env(safe-area-inset-left,0px))}}

.hero h1{font-size:clamp(2.3rem,4.3vw,4.1rem)}
@media (max-width:640px){.topbar .wrap>span:first-child{display:none}.topbar .wrap{justify-content:center}.topbar a{white-space:nowrap}.topbar .wrap>span:last-child{display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:center}}
