@font-face{font-family:Anybody;src:url(../fonts/Anybody.woff2) format("woff2");font-weight:100 900;font-stretch:50% 150%;font-display:swap}
@font-face{font-family:Anybody;src:url(../fonts/AnybodyItalic.woff2) format("woff2");font-weight:100 900;font-stretch:50% 150%;font-style:italic;font-display:swap}
@font-face{font-family:Martian;src:url(../fonts/Martian.woff2) format("woff2");font-weight:100 800;font-stretch:75% 112.5%;font-display:swap}

:root{
  --hv:#FFE500;        /* hi-vis safety yellow */
  --hv2:#FFF27A;
  --con:#C4C1B8;       /* raw concrete */
  --con2:#9E9A90;
  --paper:#EEECE6;
  --ink:#0D0D0C;
  --leaf:#3A8A2E;      /* brand green */
  --leaf2:#2E7424;
  --white:#fff;
  --rule:4px;
  --rule2:8px;
  --sh:8px 8px 0 var(--ink);
  --pad:clamp(16px,2.4vw,36px);
  --hdr:58px;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 12px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Anybody,"Arial Narrow",Arial,sans-serif;font-variation-settings:"wdth" 100;font-size:17px;line-height:1.45;overflow-x:hidden}
img,video,svg{display:block;max-width:100%}
a{color:inherit}
.mono{font-family:Martian,ui-monospace,Menlo,monospace;font-size:11px;letter-spacing:.02em;font-variation-settings:"wdth" 100;text-transform:uppercase;line-height:1.5}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
::selection{background:var(--ink);color:var(--hv)}
:focus-visible{outline:4px solid var(--leaf);outline-offset:3px}

/* kinetic type */
.k{display:block;white-space:nowrap;font-weight:900;font-stretch:100%;line-height:.8;letter-spacing:-.01em;text-transform:uppercase;will-change:font-size}
.fitbox{display:block;width:100%}
.grid-lines{background-image:linear-gradient(to right,rgba(13,13,12,.13) 1px,transparent 1px);background-size:calc((100% - 2 * var(--pad)) / 12) 100%;background-position:var(--pad) 0}
.concrete{background-color:var(--con);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}

/* ---------- loader ---------- */
.loader{position:fixed;inset:0;z-index:100;background:var(--ink);color:var(--hv);display:flex;flex-direction:column;justify-content:center;padding:var(--pad)}
.loader__row{display:flex;justify-content:space-between;font-weight:900;font-stretch:150%;font-size:min(34vw,52vh);line-height:.8}
.loader__row span{display:block;transform:translateY(40%);opacity:0}
.loader__meta{display:flex;justify-content:space-between;margin-top:3vh;color:var(--hv)}
.loader__bar{height:12px;border:2px solid var(--hv);margin-top:10px}
.loader__bar i{display:block;height:100%;background:var(--hv);width:0}
.loader.is-out{animation:loaderOut .5s steps(5) forwards}
@keyframes loaderOut{0%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 100% 0)}}
.no-js .loader,.rm .loader{display:none}

/* ---------- crosshair ---------- */
.xhair{position:fixed;inset:0;pointer-events:none;z-index:90;display:none;mix-blend-mode:difference;opacity:0;transition:opacity .2s steps(2)}
.xhair.on{opacity:1}
.xh-v,.xh-h{position:absolute;background:#fff;opacity:.55}
.xh-v{top:0;bottom:0;width:1px;left:0}
.xh-h{left:0;right:0;height:1px;top:0}
.xhair b{position:absolute;left:0;top:0;color:#fff;font-weight:500;font-size:10px;white-space:nowrap}
@media (hover:hover) and (pointer:fine){.xhair{display:block}}

/* ---------- header ---------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--hdr);display:flex;align-items:stretch;background:var(--ink);color:var(--paper);border-bottom:var(--rule) solid var(--ink)}
.hdr>*{display:flex;align-items:center;border-right:1px solid #333;padding:0 18px}
.hdr__logo{background:var(--paper);padding:4px 14px;--logo-snow:var(--paper)}
.hdr__logo svg{height:44px;width:62px}
.hdr__tick{gap:10px;color:var(--con);flex:1;white-space:nowrap;overflow:hidden}
.hdr__tick .dot{color:var(--leaf)}
.hdr__tick b{color:var(--hv);font-weight:600}
.hdr__nav{gap:0;padding:0}
.hdr__nav a{height:100%;display:flex;align-items:center;padding:0 16px;text-decoration:none;border-left:1px solid #333;transition:none}
.hdr__nav a:hover{background:var(--hv);color:var(--ink)}
.hdr__call{background:var(--hv);color:var(--ink);font-weight:700;font-size:13px;text-decoration:none;gap:10px;border:0}
.hdr__call svg{width:18px;height:18px;fill:currentColor}
.hdr__call:hover{background:var(--leaf);color:var(--white)}
.hdr__menu{display:none;background:var(--paper);color:var(--ink);border:0;font-weight:700;cursor:pointer}
.menu{position:fixed;inset:var(--hdr) 0 0 0;z-index:49;background:var(--hv);display:flex;flex-direction:column;justify-content:space-between;padding:20px var(--pad) 90px}
.menu[hidden]{display:none}
.menu nav{display:flex;flex-direction:column}
.menu nav a{font-weight:900;font-stretch:130%;font-size:12vw;line-height:1;text-decoration:none;border-bottom:var(--rule) solid var(--ink);padding:8px 0}
.menu__call{font-weight:900;font-stretch:80%;font-size:13vw;text-decoration:none;background:var(--ink);color:var(--hv);padding:10px;text-align:center}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;background-color:var(--hv);padding:calc(var(--hdr) + 16px) var(--pad) 0;display:flex;flex-direction:column;overflow:hidden}
.hero__labels{display:flex;justify-content:space-between;border-top:var(--rule) solid var(--ink);border-bottom:1px solid var(--ink);padding:6px 0;font-weight:500}
.roof{margin:auto 0 0;display:flex;flex-direction:column;align-items:center;font-size:inherit;font-weight:inherit;padding-bottom:0}
.course{display:flex;justify-content:center;position:relative;border-bottom:clamp(6px,.9vw,14px) solid var(--ink);padding:0 0 4px}
.course .k{line-height:.8;padding-top:.04em;margin-bottom:-.05em;display:block;white-space:nowrap}
.hero__blurb{display:none}
.course:last-child{border-bottom:0;padding-bottom:0;width:100%}
.course::before{content:"";position:absolute;left:-2.4vw;right:-2.4vw;bottom:calc(-1 * clamp(6px,.9vw,14px));height:clamp(6px,.9vw,14px);background:var(--ink)}
.course:last-child::before{display:none}
.course .k>i{font-style:normal;display:inline-block}
.sticker{position:absolute;z-index:3;text-decoration:none;color:var(--ink)}
.sticker--spin{right:calc(var(--pad) + 1vw);top:calc(var(--hdr) + 60px);width:clamp(110px,11vw,170px);aspect-ratio:1;display:grid;place-items:center}
.sticker--spin svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 14s linear infinite}
.sticker--spin circle{fill:var(--leaf);stroke:var(--ink);stroke-width:4}
.sticker--spin text{font-family:Martian,monospace;font-size:15.5px;font-weight:700;fill:var(--white);letter-spacing:.06em}
.sticker--spin span{position:relative;font-weight:900;font-stretch:120%;font-size:clamp(20px,2vw,30px);line-height:.85;color:var(--hv);text-align:center;transform:rotate(-10deg)}
.sticker--spin:hover svg{animation-duration:3s}
@keyframes spin{to{transform:rotate(360deg)}}

/* fascia marquee */
.fascia{background:var(--ink);color:var(--hv);border-top:var(--rule) solid var(--ink);overflow:hidden;height:44px;display:flex;align-items:center;position:relative;z-index:2}
.fascia .mono{font-size:14px;font-weight:600}
.mq{display:flex;white-space:nowrap;overflow:hidden;width:100%}
.mq__t{flex:none;padding-right:0}

/* ---------- wall ---------- */
.wall{display:grid;grid-template-columns:5fr 3fr 4fr;border-bottom:var(--rule2) solid var(--ink);background:var(--paper)}
.wall>*{border-right:var(--rule) solid var(--ink)}
.wall>*:last-child{border-right:0}
.frame{margin:0;position:relative;overflow:hidden;border:var(--rule) solid var(--ink);background:var(--ink)}
.frame img,.frame video{width:100%;height:100%;object-fit:cover;filter:contrast(1.12) saturate(1.1)}
.frame figcaption{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--hv);padding:6px 10px;font-size:10px}
.wall__photo{border:0;min-height:62vh}
.wall__big{display:flex;flex-direction:column;justify-content:space-between;padding:var(--pad);background:var(--leaf);color:var(--ink)}
.wall__big .k{color:var(--hv);-webkit-text-stroke:3px var(--ink);text-shadow:8px 8px 0 var(--ink)}
.wall__big p{margin:0;font-size:14px;font-weight:700;border-top:var(--rule) solid var(--ink);padding-top:10px}
.wall__copy{padding:var(--pad);display:flex;flex-direction:column;justify-content:flex-end;gap:14px}
.wall__copy p{margin:0}
.lede{font-weight:800;font-stretch:112%;font-size:clamp(24px,2.3vw,36px);line-height:1.02;letter-spacing:-.01em}
.lede b{background:var(--hv);padding:0 .12em;box-shadow:3px 3px 0 var(--ink)}
.es{font-weight:700;color:var(--leaf2)}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.btn{display:inline-flex;align-items:center;gap:10px;font-family:Martian,monospace;text-transform:uppercase;font-weight:700;font-size:13px;letter-spacing:.02em;text-decoration:none;padding:14px 18px;border:var(--rule) solid var(--ink);box-shadow:6px 6px 0 var(--ink);transition:transform .08s steps(2),box-shadow .08s steps(2)}
.btn svg{width:18px;height:18px;fill:currentColor}
.btn:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--ink)}
.btn:active{transform:translate(6px,6px);box-shadow:0 0 0 var(--ink)}
.btn--ink{background:var(--ink);color:var(--hv)}
.btn--hv{background:var(--hv);color:var(--ink)}
.btn--xl{font-size:clamp(14px,1.4vw,20px);padding:18px 24px}

/* ---------- towns ---------- */
.towns{background:var(--con);border-bottom:var(--rule2) solid var(--ink);overflow:hidden}
.mq--big{border-bottom:var(--rule) solid var(--ink);padding:.5vw 0}
.mq--big:last-child{border-bottom:0;background:var(--ink);color:var(--con)}
.mq--big .mq__t{font-weight:900;font-stretch:150%;font-size:clamp(46px,8.4vw,132px);line-height:.95;letter-spacing:-.02em}
.mq--big i{font-style:normal;color:var(--leaf);display:inline-block;transform:translateY(-.06em)}
.mq--big:last-child i{color:var(--hv)}

/* ---------- cuts ---------- */
.cuts{height:520vh;position:relative;background:var(--ink)}
.cuts__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.cut{position:absolute;inset:0;padding:calc(var(--hdr) + 18px) var(--pad) var(--pad);display:grid;grid-template-columns:1fr minmax(260px,24vw);grid-template-rows:auto 1fr auto;gap:0 var(--pad);visibility:hidden}
.cut.is-on{visibility:visible;z-index:2}
.cut.is-in{animation:cutIn .36s steps(6) both}
.cut.is-in .cut__type .fitbox{animation:slam .42s steps(4) both}
.cut.is-in .cut__type .fitbox:nth-child(2){animation-delay:.08s}
.cut.is-in .cut__type .fitbox:nth-child(3){animation-delay:.16s}
@keyframes cutIn{0%{clip-path:polygon(0 0,100% 0,100% 12%,0 12%,0 40%,100% 40%,100% 44%,0 44%)}40%{clip-path:polygon(0 0,100% 0,100% 55%,0 55%,0 70%,100% 70%,100% 88%,0 88%)}100%{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 100%,100% 100%,100% 100%,0 100%)}}
@keyframes slam{0%{transform:translateY(-60%)}60%{transform:translateY(6%)}100%{transform:none}}
.cut__meta{grid-column:1/-1;display:flex;justify-content:space-between;border-top:var(--rule) solid currentColor;padding:6px 0 0;font-weight:600}
.cut__type{grid-column:1;grid-row:2;align-self:end;display:flex;flex-direction:column;gap:.6vh}
.cut__type .k{line-height:.8}
.cut__sub{grid-column:1;grid-row:3;margin:18px 0 0;max-width:52ch;font-size:13px;font-weight:600;text-transform:none;line-height:1.5}
.cut__img{grid-column:2;grid-row:2/4;align-self:end;aspect-ratio:3/4;box-shadow:12px 12px 0 currentColor}
.cut--hv{background:var(--hv);color:var(--ink)}
.cut--ink{background:var(--ink);color:var(--hv)}
.cut--ink .cut__img{border-color:var(--hv)}
.cut--leaf{background:var(--leaf);color:var(--ink)}
.cut--leaf .fitbox:nth-child(2) .k{color:var(--white)}
.cut--con{background-color:var(--con);color:var(--ink)}
.cut--con .fitbox:nth-child(3) .k{color:var(--leaf2)}
.cuts__prog{position:absolute;left:0;right:0;bottom:0;height:8px;background:rgba(0,0,0,.25);z-index:5}
.cuts__prog i{display:block;height:100%;width:0;background:var(--ink);box-shadow:0 -2px 0 var(--hv)}

/* ---------- section heads ---------- */
.sec-head{padding:calc(var(--pad) * 1.6) var(--pad) 0}
.sec-head h2{margin:14px 0 0;font-size:inherit}
.tag{display:inline-block;background:var(--ink);color:var(--paper);padding:4px 10px;font-weight:600}
.tag--hv{background:var(--hv);color:var(--ink)}

/* ---------- services ---------- */
.svc{background:var(--paper);border-bottom:var(--rule2) solid var(--ink)}
.svc__grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:var(--rule2) solid var(--ink);margin-top:var(--pad)}
.svc__cell{position:relative;padding:var(--pad);border-right:var(--rule) solid var(--ink);border-bottom:var(--rule) solid var(--ink);display:grid;grid-template-rows:auto auto 1fr;min-height:34vw;overflow:hidden;cursor:default}
.svc__cell:nth-child(3n){border-right:0}
.svc__cell:nth-child(n+4){border-bottom:0}
.svc__cell .num{font-size:12px;font-weight:700;display:flex;justify-content:space-between}
.svc__cell .frame{margin:14px 0 18px;aspect-ratio:16/10;box-shadow:var(--sh);transform:rotate(0);transition:transform .12s steps(3)}
.svc__cell h3{margin:0;font-weight:900;font-stretch:135%;font-size:clamp(26px,2.5vw,40px);line-height:.9;letter-spacing:-.02em;text-transform:uppercase}
.svc__cell p{margin:12px 0 0;max-width:34ch}
.svc__cell:hover{background:var(--hv)}
.svc__cell:hover .frame{transform:rotate(-2deg) translate(-4px,-4px);box-shadow:14px 14px 0 var(--ink)}
.svc__cell--hot{background:var(--ink);color:var(--paper)}
.svc__cell--hot .frame{box-shadow:8px 8px 0 var(--hv)}
.svc__cell--hot:hover{background:var(--leaf);color:var(--ink)}
.svc__cell::after{content:attr(data-n);}

/* ---------- storm ---------- */
.storm{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.tape{height:34px;background:repeating-linear-gradient(-45deg,var(--hv) 0 26px,var(--ink) 26px 52px);background-size:73.5px 100%;animation:tape 1.2s linear infinite;border-top:var(--rule) solid var(--ink);border-bottom:var(--rule) solid var(--ink)}
.tape--b{animation-direction:reverse}
@keyframes tape{to{background-position:73.5px 0}}
.storm__in{display:grid;grid-template-columns:7fr 5fr;gap:var(--pad);padding:calc(var(--pad)*1.6) var(--pad) calc(var(--pad)*2)}
.storm__head{grid-column:1;grid-row:1}
.storm__head h2{margin:14px 0 0;font-size:inherit;color:var(--hv)}
.storm__head .fitbox:last-child .k{color:var(--paper)}
.storm__img{grid-column:2;grid-row:1/3;align-self:start;aspect-ratio:4/5;box-shadow:14px 14px 0 var(--hv)}
.frame--hv{border-color:var(--hv)}
.storm__list{grid-column:1;list-style:none;margin:0;padding:0;border-top:var(--rule) solid var(--hv)}
.storm__list li{display:grid;grid-template-columns:64px 1fr;border-bottom:1px solid #444;padding:16px 0}
.storm__list b{color:var(--hv);font-size:20px;font-weight:700}
.storm__list p{margin:0;font-size:18px;max-width:52ch}
.storm__list strong{color:var(--hv);font-stretch:120%;text-transform:uppercase}
.storm__list a{color:var(--hv)}
.storm .btn--xl{grid-column:1;justify-self:start;box-shadow:8px 8px 0 var(--leaf);border-color:var(--hv)}
.storm.flash::after{content:"";position:absolute;inset:0;background:#fff;pointer-events:none;animation:flash .5s steps(3) forwards;z-index:4}
@keyframes flash{0%{opacity:.95}33%{opacity:0}66%{opacity:.6}100%{opacity:0}}

/* ---------- why ---------- */
.why{border-bottom:var(--rule2) solid var(--ink)}
.why__body{display:grid;grid-template-columns:3fr 4fr 5fr;gap:var(--pad);padding:var(--pad);align-items:start}
.why__photo{aspect-ratio:2/3;box-shadow:12px 12px 0 var(--ink)}
.why__copy{display:flex;flex-direction:column;gap:14px}
.why__copy p{margin:0}
.hint{color:var(--leaf2);font-weight:700}
.board{position:relative;height:clamp(420px,40vw,620px);border:var(--rule) dashed var(--ink);background:rgba(255,255,255,.18)}
.stk{position:absolute;left:var(--x);top:var(--y);transform:rotate(var(--r));font-family:Martian,monospace;font-weight:800;font-size:clamp(12px,1vw,15px);line-height:1.1;text-align:center;border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none;display:grid;place-items:center}
.stk.is-drag{cursor:grabbing;box-shadow:14px 14px 0 var(--ink)}
.stk--circle{width:clamp(130px,11vw,170px);aspect-ratio:1;border-radius:50%}
.stk--rect{padding:14px 18px}
.stk--rect b{display:block;font-family:Anybody;font-weight:900;font-stretch:150%;font-size:clamp(46px,4.6vw,72px);line-height:.8}
.stk--leaf{background:var(--leaf);color:var(--white)}
.stk--leaf2{background:var(--leaf2);color:var(--hv)}
.stk--hv{background:var(--hv)}
.stk--ink{background:var(--ink);color:var(--hv);padding:16px 22px;border-radius:0 30px 30px 0}
.stk--paper{background:var(--paper);border-radius:50%;padding:22px 30px}
.stk--burst{width:clamp(150px,13vw,200px);aspect-ratio:1;background:var(--hv);border:0;box-shadow:none;clip-path:polygon(50% 0,59% 14%,75% 6%,78% 23%,95% 22%,88% 38%,100% 50%,88% 62%,95% 78%,78% 77%,75% 94%,59% 86%,50% 100%,41% 86%,25% 94%,22% 77%,5% 78%,12% 62%,0 50%,12% 38%,5% 22%,22% 23%,25% 6%,41% 14%);filter:drop-shadow(5px 5px 0 var(--ink))}
.stk--burst span{font-family:Anybody;font-weight:900;font-stretch:120%;font-size:clamp(18px,1.7vw,26px);line-height:.9}
.stk--hazard{background:repeating-linear-gradient(-45deg,var(--hv) 0 12px,var(--ink) 12px 24px);padding:6px}
.stk--hazard{color:var(--ink)}
.stk--hazard::before{content:"NO SHORTCUTS";grid-area:1/1;background:var(--hv);padding:10px 14px}
.stk--hazard{font-size:0}
.stk--hazard::before{font-size:clamp(12px,1vw,15px)}

/* ---------- process ---------- */
.proc{background:var(--paper);padding-bottom:10vh;border-bottom:var(--rule2) solid var(--ink)}
.stack{list-style:none;margin:var(--pad) 0 0;padding:0 var(--pad)}
.slab{position:sticky;top:calc(var(--hdr) + 14px + var(--i) * 64px);display:grid;grid-template-columns:120px minmax(0,1.4fr) minmax(0,1fr);align-items:end;gap:var(--pad);min-height:44vh;padding:22px var(--pad) 28px;border:var(--rule) solid var(--ink);box-shadow:0 -10px 0 var(--ink),10px 10px 0 var(--ink);margin-bottom:5vh}
.slab b{font-size:18px;font-weight:800;align-self:start}
.slab h3{margin:0;font-weight:900;font-stretch:150%;font-size:clamp(54px,8.6vw,150px);line-height:.8;letter-spacing:-.03em}
.slab p{margin:0;font-size:19px;font-weight:600;max-width:32ch}
.slab--1{--i:0;background:var(--hv)}
.slab--2{--i:1;background:var(--con)}
.slab--3{--i:2;background:var(--ink);color:var(--hv)}
.slab--4{--i:3;background:var(--leaf);color:var(--ink)}
.slab--4 h3{color:var(--white)}
.slab--5{--i:4;background:var(--paper)}

/* ---------- area ---------- */
.area{background:var(--ink);color:var(--paper);border-bottom:var(--rule2) solid var(--ink)}
.sec-head--row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--pad);flex-wrap:wrap}
.area__note{margin:0;max-width:56ch;text-transform:none;font-size:12px;color:var(--con)}
.area__note a{color:var(--hv)}
.area__list{list-style:none;margin:var(--pad) 0 0;padding:0;border-top:var(--rule) solid var(--paper)}
.area__list li{display:grid;grid-template-columns:160px 1fr;align-items:end;gap:var(--pad);padding:10px var(--pad) 8px;border-bottom:var(--rule) solid var(--paper);position:relative;overflow:hidden}
.area__list li>.mono{align-self:start;padding-top:6px;color:var(--con)}
.area__list .k{line-height:.8;padding-top:.04em}
.area__list li:hover{background:var(--hv);color:var(--ink)}
.area__list li:hover>.mono{color:var(--ink)}
.area__list .hq{color:var(--hv)}
.area__list .hq:hover{color:var(--ink)}

/* ---------- estimate ---------- */
.est{background-color:var(--hv);padding-bottom:calc(var(--pad)*2)}
.est__phone{display:block;margin:18px var(--pad) 0;width:auto;text-decoration:none;color:var(--ink);border-bottom:var(--rule2) solid var(--ink);padding-bottom:1vw}
.est__phone:hover{color:var(--leaf2)}
.est__mail{display:block;margin:14px var(--pad) 0;font-size:clamp(12px,1.5vw,22px);font-weight:700;text-transform:none;word-break:break-all}
.est__body{display:grid;grid-template-columns:7fr 5fr;gap:calc(var(--pad)*1.5);padding:calc(var(--pad)*1.4) var(--pad) 0}
.form{background:var(--paper);border:var(--rule) solid var(--ink);box-shadow:14px 14px 0 var(--ink);padding:0 22px 22px;display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;position:relative}
.form__head{grid-column:1/-1;display:flex;justify-content:space-between;background:var(--ink);color:var(--hv);margin:0 -22px;padding:10px 22px;font-weight:700}
.form label{display:flex;flex-direction:column;gap:6px}
.form label:nth-of-type(3),.form fieldset,.form label:nth-of-type(4){grid-column:1/-1}
.form .mono{font-weight:700}
.form input,.form textarea{font:inherit;font-size:18px;font-weight:600;background:#fff;border:3px solid var(--ink);border-radius:0;padding:12px;color:var(--ink);width:100%}
.form input:focus,.form textarea:focus{outline:0;background:var(--hv2);box-shadow:5px 5px 0 var(--ink)}
.form input.bad{background:#ffd9d0;border-color:#c1121f}
.form fieldset{border:0;padding:0;margin:0}
.form legend{padding:0;margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{flex-direction:row}
.chips input{position:absolute;opacity:0;width:1px;height:1px}
.chips span{display:block;border:3px solid var(--ink);padding:8px 12px;font-family:Martian,monospace;font-size:12px;font-weight:700;text-transform:uppercase;cursor:pointer;background:#fff}
.chips input:checked+span{background:var(--ink);color:var(--hv);box-shadow:4px 4px 0 var(--leaf)}
.chips input:focus-visible+span{outline:4px solid var(--leaf);outline-offset:2px}
.sticker-btn{grid-column:1/2;justify-self:start;border:0;background:none;padding:0;cursor:pointer}
.sticker-btn span{display:inline-block;background:var(--leaf);color:var(--white);font-family:Anybody;font-weight:900;font-stretch:150%;font-size:34px;line-height:1;padding:16px 30px;border:var(--rule) solid var(--ink);box-shadow:8px 8px 0 var(--ink);transform:rotate(-3deg);transition:transform .1s steps(2)}
.sticker-btn:hover span{transform:rotate(2deg) scale(1.04);background:var(--ink);color:var(--hv)}
.form__fine{grid-column:2;align-self:center;margin:0;text-transform:none;font-size:10px}
.est__side{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.est__side p{margin:0}
.facts{list-style:none;margin:0;padding:0;border-top:var(--rule) solid var(--ink);width:100%}
.facts li{border-bottom:1px solid var(--ink);padding:8px 0;font-weight:700;font-size:13px}

/* ---------- footer ---------- */
.foot{background:var(--ink);color:var(--con);padding:var(--pad) var(--pad) 0;overflow:hidden}
.foot__top{display:grid;grid-template-columns:260px 1fr;gap:var(--pad);align-items:start;border-bottom:1px solid #333;padding-bottom:var(--pad)}
.foot__logo{width:100%;height:auto;aspect-ratio:600/430;background:var(--paper);padding:14px;--logo-snow:var(--paper)}
.foot__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--pad)}
.foot__cols p{margin:0}
.foot__cols a{color:var(--hv)}
.foot__big{color:var(--hv);margin:var(--pad) 0 -1.4vw;padding-bottom:0}
.foot__big .k{line-height:.76}

/* ---------- persistent CTAs ---------- */
.callsticker{position:fixed;right:22px;bottom:22px;z-index:45;width:118px;aspect-ratio:1;display:grid;place-items:center;text-decoration:none;filter:drop-shadow(6px 6px 0 var(--ink));transition:transform .1s steps(2)}
.callsticker svg:first-child{position:absolute;inset:0;width:100%;height:100%;animation:spin 10s linear infinite}
.callsticker circle{fill:var(--hv);stroke:var(--ink);stroke-width:5}
.callsticker text{font-family:Martian,monospace;font-weight:800;font-size:14.4px;fill:var(--ink)}
.callsticker .ph{width:40px;height:40px;fill:var(--ink);position:relative}
.callsticker:hover{transform:scale(1.08) rotate(-6deg)}
.callsticker.is-hide{transform:scale(0);pointer-events:none}
.mbar{display:none}

/* ---------- entrances ---------- */
.js .rev{clip-path:inset(0 100% 0 0)}
.js .rev.is-in{animation:wipe .45s steps(5) forwards}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}

/* ============ TABLET / MOBILE ============ */
@media (max-width:1100px){
  .hdr__tick{display:none}
  .hdr__nav a{padding:0 11px}
  .wall{grid-template-columns:1fr 1fr}
  .wall__photo{grid-column:1/-1;min-height:56vw;border-right:0;border-bottom:var(--rule) solid var(--ink)}
  .why__body{grid-template-columns:1fr 1.3fr}
  .board{grid-column:1/-1}
}
@media (max-width:760px){
  :root{--hdr:54px;--rule:3px;--rule2:6px;--pad:16px}
  body{font-size:16px}
  .hdr>*{padding:0 12px}
  .hdr__nav{display:none}
  .hdr__logo svg{height:40px;width:56px}
  .hdr__call{flex:1;justify-content:center;font-size:12px}
  .hdr__menu{display:flex}
  .hero{min-height:600px;padding-top:calc(var(--hdr) + 10px)}
  .hero__labels{font-size:9px}
  .hide-m{display:none}
  .hero{padding-bottom:66px}
  .hero__blurb{display:flex;flex-direction:column;align-items:flex-start;gap:8px;list-style:none;margin:18px 0 0;padding:0}
  .hero__blurb li{background:var(--ink);color:var(--hv);font-weight:900;font-stretch:125%;text-transform:uppercase;font-size:clamp(22px,6.6vw,30px);line-height:1;padding:8px 12px 6px;box-shadow:5px 5px 0 var(--leaf)}
  .hero__blurb li:nth-child(2){transform:rotate(-2deg);margin-left:14px;background:var(--leaf);color:var(--white);box-shadow:5px 5px 0 var(--ink)}
  .hero__blurb li:nth-child(3){transform:rotate(1.5deg);background:var(--white);color:var(--ink);border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink)}
  .sticker--spin{top:calc(var(--hdr) + 92px);bottom:auto;right:10px;width:96px}
  .course::before{left:-10px;right:-10px}
  .fascia{height:38px}
  .fascia .mono{font-size:12px}
  .wall{grid-template-columns:1fr}
  .wall>*{border-right:0;border-bottom:var(--rule) solid var(--ink)}
  .wall>*:last-child{border-bottom:0}
  .wall__photo{min-height:auto;aspect-ratio:4/5}
  .wall__big{padding:16px 16px 14px}
  .wall__copy{padding:22px 16px 30px}
  .cut{grid-template-columns:1fr 38vw;grid-template-rows:auto auto 1fr auto;padding-top:calc(var(--hdr) + 12px);padding-bottom:84px}
  .cut__img{grid-row:2;grid-column:2;align-self:start;margin-top:14px;box-shadow:7px 7px 0 currentColor}
  .cut__type{grid-column:1/-1;grid-row:3}
  .cut__sub{grid-column:1/-1;grid-row:4;font-size:12px}
  .svc__grid{grid-template-columns:1fr}
  .svc__cell{border-right:0 !important;border-bottom:var(--rule) solid var(--ink) !important;min-height:0}
  .svc__cell:last-child{border-bottom:0 !important}
  .storm__in{grid-template-columns:1fr}
  .storm__img{grid-column:1;grid-row:auto;aspect-ratio:4/3;box-shadow:8px 8px 0 var(--hv)}
  .storm__list li{grid-template-columns:44px 1fr}
  .storm__list p{font-size:16px}
  .why__body{grid-template-columns:1fr}
  .why__photo{aspect-ratio:4/5;max-height:70vh;width:78%}
  .board{height:auto;display:flex;flex-wrap:wrap;gap:14px;padding:18px 12px;border-style:dashed}
  .stk{position:relative;left:auto;top:auto;touch-action:auto;cursor:default}
  .slab{grid-template-columns:1fr;gap:10px;min-height:52vh;top:calc(var(--hdr) + 10px + var(--i) * 40px);padding:16px 16px 22px;align-content:start}
  .slab h3{font-size:clamp(46px,16vw,80px)}
  .slab p{font-size:17px}
  .area__list li{grid-template-columns:1fr;gap:4px;padding:8px 16px}
  .est__body{grid-template-columns:1fr}
  .form{grid-template-columns:1fr;padding:0 14px 18px;box-shadow:8px 8px 0 var(--ink)}
  .form__head{margin:0 -14px;padding:10px 14px}
  .form__fine{grid-column:1}
  .foot__top{grid-template-columns:1fr}
  .foot__logo{width:200px}
  .foot__cols{grid-template-columns:1fr}
  .foot{padding-bottom:64px}
  .callsticker{display:none}
  .mbar{display:grid;grid-template-columns:1fr auto;position:fixed;left:0;right:0;bottom:0;z-index:45;border-top:var(--rule) solid var(--ink);padding-bottom:env(safe-area-inset-bottom);background:var(--ink)}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:10px;height:58px;text-decoration:none;font-family:Martian,monospace;font-weight:800;font-size:15px}
  .mbar__call{background:var(--ink);color:var(--hv)}
  .mbar__call svg{width:20px;height:20px;fill:currentColor}
  .mbar__est{background:var(--hv);color:var(--ink);padding:0 18px;border-left:var(--rule) solid var(--ink)}
}
@media (hover:none){.hide-touch{display:none}}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  .js .rev{clip-path:none}
  .cuts{height:auto}
  .cuts__stage{position:relative;height:auto}
  .cut{position:relative;visibility:visible;min-height:100svh}
  .cuts__prog{display:none}
  .slab{position:relative;top:auto}
}

/* pass 2: giant outline cut index fills the dead field above each statement */
.cut::before{position:absolute;right:var(--pad);top:calc(var(--hdr) + 64px);font-weight:900;font-stretch:50%;font-size:min(34vh,26vw);line-height:.8;-webkit-text-fill-color:transparent;-webkit-text-stroke:3px currentColor;opacity:.32;pointer-events:none}
.cut[data-i="0"]::before{content:"01"}.cut[data-i="1"]::before{content:"02"}.cut[data-i="2"]::before{content:"03"}.cut[data-i="3"]::before{content:"04"}
.cut.is-in::before{animation:slam .5s steps(4) both}
@media (max-width:760px){.cut::before{font-size:34vw;top:auto;bottom:52%;-webkit-text-stroke-width:2px;right:auto;left:var(--pad)}}
@media (prefers-reduced-motion:reduce){.cut::before{display:none}}
@media (prefers-reduced-motion:reduce) and (max-width:760px){.cut{min-height:0;grid-template-rows:auto auto auto auto;row-gap:22px;padding-bottom:48px}}
