@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{
  --ink:#1d1d1f; --bg:#ffffff; --bg2:#f5f5f7; --muted:#6e6e73; --line:#d2d2d7;
  --navy:#0b1220; --navy2:#13203a; --orange:#f97316; --orange2:#fb923c; --sky:#38bdf8;
  --maxw:1100px; --nav-h:54px; --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,'Inter','Segoe UI',Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
svg{display:inline-block;vertical-align:middle}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
h1,h2,h3{font-weight:700;letter-spacing:-0.022em;line-height:1.07}

/* type scale (Apple-ish) */
.display{font-size:clamp(40px,7vw,80px);font-weight:700;letter-spacing:-0.03em;line-height:1.04}
.h2{font-size:clamp(30px,4.6vw,52px);font-weight:700;letter-spacing:-0.025em;line-height:1.08}
.h3{font-size:clamp(22px,2.6vw,30px);font-weight:600}
.lead{font-size:clamp(18px,2.1vw,23px);color:var(--muted);font-weight:400;line-height:1.45}
.eyebrow{font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--orange)}
.muted{color:var(--muted)}
.center{text-align:center;max-width:760px;margin-left:auto;margin-right:auto}

/* buttons / links */
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:980px;padding:13px 26px;font-size:16px;font-weight:500;cursor:pointer;border:1.5px solid transparent;transition:transform .2s var(--ease),background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn:active{transform:scale(.97)}
.btn-primary{background:var(--orange);color:#fff}
.btn-primary:hover{background:#ea6a0c}
.btn-soft{background:rgba(0,0,0,.05);color:var(--ink)}
.btn-soft:hover{background:rgba(0,0,0,.09)}
.btn-ondark{background:#fff;color:var(--ink)}
.btn-ondark:hover{background:#eaeaec}
.btn-outline-dark{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn-outline-dark:hover{background:rgba(255,255,255,.1)}
.more{display:inline-flex;align-items:center;gap:5px;color:var(--orange);font-size:17px;font-weight:500}
.more svg{transition:transform .2s var(--ease)}
.more:hover svg{transform:translateX(3px)}
.more.lite{color:var(--orange2)}

/* layout */
.section{padding:clamp(72px,11vw,128px) 0}
.section.tight{padding:clamp(56px,8vw,88px) 0}
.bg2{background:var(--bg2)}
.dark{background:var(--navy);color:#fff}
.dark .lead,.dark .muted{color:#a1a1aa}
.kicker-actions{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-top:30px}
.kicker-actions.center-actions{justify-content:center}

/* header / nav */
#hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.72);backdrop-filter:saturate(1.6) blur(18px);border-bottom:1px solid rgba(0,0,0,.06);transition:background .3s}
#hdr.scrolled{background:rgba(255,255,255,.88)}
.nav{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h)}
.logo{display:flex;align-items:center;gap:9px}
.logo .mark{width:30px;height:30px}
.logo b{font-size:16px;font-weight:700;letter-spacing:-.01em}
.links{display:flex;gap:32px}
.links a{font-size:14px;color:#1d1d1f;opacity:.82;font-weight:500;transition:opacity .2s,color .2s}
.links a:hover{opacity:1}
.links a.active{color:var(--orange);opacity:1}
.navcta{font-size:14px;font-weight:600;background:var(--orange);color:#fff;padding:8px 16px;border-radius:980px}
.navcta:hover{background:#ea6a0c}
.menu-btn{display:none;background:none;border:0;cursor:pointer;padding:6px;color:var(--ink)}

/* page hero (interior pages) */
.phero{text-align:center;padding:clamp(70px,12vw,130px) 0 clamp(40px,6vw,64px)}
.phero .display{margin:14px 0 16px}
.phero .lead{max-width:640px;margin-left:auto;margin-right:auto}

/* home hero */
.hero{text-align:center;padding:clamp(64px,10vw,110px) 0 clamp(48px,7vw,72px)}
.hero .display{margin:16px auto 18px;max-width:14ch}
.hero .grad{background:linear-gradient(110deg,#fb923c,#f97316 45%,#0b1220);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero .lead{max-width:600px;margin:0 auto}

/* feature blocks */
.feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,64px);align-items:center}
.feature.rev .ftext{order:2}
.feature .ftext .h2{margin:12px 0 14px}
.fcard{background:var(--bg2);border-radius:28px;padding:clamp(28px,4vw,48px);min-height:300px;display:flex;align-items:center;justify-content:center}
.dark .fcard{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}

/* tri cards */
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tile{background:var(--bg2);border-radius:22px;padding:32px;transition:transform .3s var(--ease)}
.tile:hover{transform:translateY(-5px)}
.tile .ic{width:50px;height:50px;border-radius:14px;background:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.tile .ic svg{color:var(--orange2)}
.tile h3{font-size:21px;font-weight:600;margin-bottom:8px}
.tile p{color:var(--muted);font-size:16px}

/* stat band */
.statband{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.statband .st b{display:block;font-size:clamp(34px,5vw,56px);font-weight:700;letter-spacing:-.03em;line-height:1}
.statband .st span{font-size:15px;color:var(--muted);margin-top:8px;display:block}
.dark .statband .st b{color:#fff}

/* builders */
.brow{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:22px 56px}
.brow .b{font-size:clamp(20px,2.6vw,30px);font-weight:700;letter-spacing:-.02em;color:var(--ink);opacity:.55;transition:opacity .25s}
.brow .b:hover{opacity:1}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;position:relative}
.stepc{text-align:center}
.stepc .n{width:54px;height:54px;margin:0 auto 16px;border-radius:50%;background:#fff;border:2px solid var(--orange);color:var(--orange);font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center}
.bg2 .stepc .n{background:var(--bg2)}
.stepc h3{font-size:19px;font-weight:600;margin-bottom:6px}
.stepc p{color:var(--muted);font-size:15px}

/* features list */
.flist{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 28px}
.flist .f .fi{width:44px;height:44px;border-radius:12px;background:#fff7ed;display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.flist .f .fi svg{color:var(--orange)}
.flist .f h3{font-size:18px;font-weight:600;margin-bottom:5px}
.flist .f p{color:var(--muted);font-size:15px}

/* projects */
.pstats{display:flex;gap:40px;flex-wrap:wrap;justify-content:center;margin-bottom:40px}
.pstats .ps b{display:block;font-size:clamp(30px,4.4vw,46px);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.pstats .ps span{font-size:14px;color:var(--muted)}
.pfilter{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:30px}
.pchip{padding:9px 18px;border-radius:980px;border:1px solid var(--line);background:#fff;font-weight:500;font-size:14px;color:var(--muted);cursor:pointer;transition:transform .15s var(--ease),background .2s,color .2s,border-color .2s}
.pchip:hover{border-color:var(--ink)}
.pchip.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.proj{position:relative;background:var(--bg2);border-radius:20px;padding:24px;transition:transform .25s var(--ease),box-shadow .25s}
.proj:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(0,0,0,.09)}
.proj .bd{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:4px 10px;border-radius:980px;margin-bottom:14px}
.bd.lennar{background:#e0f2fe;color:#0369a1}.bd.toll{background:#fef3c7;color:#92400e}.bd.pulte{background:#ffe4e6;color:#9f1239}
.proj h3{font-size:18px;font-weight:600;margin-bottom:4px;padding-right:40px}
.proj .loc{font-size:14px;color:var(--muted)}
.proj .homes{position:absolute;top:22px;right:22px;font-size:13px;font-weight:700}
.proj.hide{display:none}

/* schematic (dark moment) */
.art{position:relative;display:flex;align-items:center;justify-content:center}
.art svg{width:100%;max-width:420px;height:auto;overflow:visible;filter:drop-shadow(0 30px 60px rgba(0,0,0,.5))}
.art .chip{position:absolute;top:6%;right:4%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(8px);border-radius:14px;padding:11px 15px;display:flex;align-items:center;gap:10px;animation:bobY 5s var(--ease) infinite alternate}
.art .chip .dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 10px #22c55e;animation:pulse 2s infinite}
.art .chip small{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#a1a1aa}
.art .chip b{font-size:15px;color:#fff}
@keyframes bobY{to{transform:translateY(-12px)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.duct-flow{stroke-dasharray:6 12;animation:flow 1.1s linear infinite}
@keyframes flow{to{stroke-dashoffset:-36}}
.fan{transform-box:fill-box;transform-origin:center;animation:spin 3.2s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.vent-pulse{animation:ventp 2.6s var(--ease) infinite}
@keyframes ventp{0%,100%{opacity:.5}50%{opacity:1}}
.draw{stroke-dasharray:100;stroke-dashoffset:100;animation:draw 1.8s var(--ease) .2s forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* CTA band */
.cta{text-align:center}
.cta .h2{margin-bottom:18px}

/* contact */
.cwrap{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.methods{display:flex;flex-direction:column;gap:14px;margin-top:8px}
.methods a,.methods .m{display:flex;align-items:center;gap:13px;font-weight:500;transition:transform .2s var(--ease)}
.methods a:hover{transform:translateX(4px)}
.methods .mi{width:44px;height:44px;border-radius:12px;background:var(--bg2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.methods .mi svg{color:var(--orange)}
.formcard{background:var(--bg2);border-radius:24px;padding:30px}
.cform{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cform .full{grid-column:1/-1}
.cform label{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px;display:block}
.cform input,.cform select,.cform textarea{width:100%;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:16px;font-family:inherit;transition:border-color .2s}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--orange)}
.cform textarea{resize:vertical;min-height:96px}
.cform .btn{width:100%;justify-content:center}
.form-msg{font-size:14px;min-height:20px}
.form-msg.ok{color:#15803d}.form-msg.err{color:#b91c1c}
.btn[disabled]{opacity:.6;pointer-events:none}

/* FAQ */
.faq{max-width:780px;margin:0 auto}
.qa{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;padding:22px 4px;font-weight:600;font-size:18px;display:flex;justify-content:space-between;gap:16px;align-items:center}
.qa summary::-webkit-details-marker{display:none}
.qa .pm{flex-shrink:0;width:26px;height:26px;color:var(--orange);font-size:24px;font-weight:300;display:flex;align-items:center;justify-content:center;transition:transform .3s var(--ease)}
.qa[open] .pm{transform:rotate(45deg)}
.qa .ans{padding:0 4px 22px;color:var(--muted);font-size:16px;max-width:680px}

/* footer */
footer{background:var(--bg2);color:var(--muted);font-size:13px;padding:40px 0;border-top:1px solid var(--line)}
footer .frow{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
footer a:hover{color:var(--ink)}
footer .logo b{color:var(--ink)}

/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}

/* back to top */
#backtop{position:fixed;right:20px;bottom:20px;width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.06);backdrop-filter:blur(8px);color:var(--ink);border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:translateY(16px);transition:opacity .3s,transform .3s,background .2s;z-index:60}
#backtop.show{opacity:1;transform:none}
#backtop:hover{background:rgba(0,0,0,.12)}

@media (max-width:860px){
  .links,.navcta{display:none}
  .links.open{display:flex;position:fixed;inset:var(--nav-h) 0 auto 0;flex-direction:column;background:rgba(255,255,255,.98);backdrop-filter:blur(18px);padding:14px 24px;gap:2px;border-bottom:1px solid var(--line);box-shadow:0 14px 30px rgba(0,0,0,.08)}
  .links.open a{padding:14px 0;font-size:17px;border-bottom:1px solid var(--bg2)}
  .menu-btn{display:block}
  .feature,.cwrap{grid-template-columns:1fr;gap:28px}
  .feature.rev .ftext{order:0}
  .tri,.flist,.steps{grid-template-columns:1fr}
  .statband{grid-template-columns:repeat(2,1fr);gap:30px}
}
/* quick page fade-in (opacity only, snappy) */
body.fadein{animation:pagein .16s ease-out}
@keyframes pagein{from{opacity:0}to{opacity:1}}

/* mobile sticky call bar */
.callbar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:none;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.9);backdrop-filter:saturate(1.5) blur(14px);border-top:1px solid var(--line)}
.callbar .btn{flex:1;justify-content:center;padding:13px 10px}

/* 404 */
.err{text-align:center;padding:clamp(90px,16vw,180px) 0}
.err .big{font-size:clamp(64px,16vw,140px);font-weight:700;letter-spacing:-.04em;line-height:1;background:linear-gradient(135deg,#fb923c,#f97316);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* project photo gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.shot{aspect-ratio:4/3;border-radius:18px;background:linear-gradient(135deg,#e7ebf0,#f5f5f7);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.shot img{width:100%;height:100%;object-fit:cover;display:block}
.shot .ph{color:#aab2bd}
.shot span{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;font-size:13px;color:#fff;font-weight:600;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.shot img{transition:transform .4s var(--ease)}
.shot:hover img{transform:scale(1.05)}

@media (max-width:860px){
  .callbar{display:flex}
  body{padding-bottom:76px}
  #backtop{bottom:86px}
  .gallery{grid-template-columns:1fr 1fr}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  body.leaving{opacity:1;transform:none}
}
