/* ==========================================================================
   Riverside Lawn & Landscaping — "One Load Lighter"
   ========================================================================== */

/* ---------- self-hosted variable fonts (no third-party request) ---------- */

@font-face{
  font-family:"Fraunces";
  src:url("fonts/fraunces-var.woff2") format("woff2");
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Archivo";
  src:url("fonts/archivo-var.woff2") format("woff2");
  font-weight:100 900;
  font-stretch:62% 125%;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --ink:#0A0E0B;
  --ink-2:#10160F;
  --bark:#1C2419;
  --bone:#F2EFE6;
  --paper:#FBF9F3;
  --grass:#276B44;
  --grass-lit:#4FA96C;
  --red:#C9382B;
  --red-lit:#E24A38;
  --gold:#E0A83C;
  --mute:#8C978A;
  --line:rgba(242,239,230,.16);
  --line-dark:rgba(10,14,11,.14);

  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Archivo","Helvetica Neue",Arial,sans-serif;

  --chrome:#F2EFE6;              /* adaptive film chrome colour */
  --chrome-dim:rgba(242,239,230,.62);

  --pad:clamp(1.25rem,4vw,4.5rem);
  --maxw:1440px;
  --bar:0px;                      /* sticky call bar height, set by JS */

  --e-out:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:auto;
}

body{
  margin:0;
  background:var(--ink);
  color:var(--bone);
  font-family:var(--sans);
  font-size:clamp(1rem,.94rem + .28vw,1.125rem);
  line-height:1.6;
  font-variation-settings:"wdth" 100,"wght" 400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

body.is-loading{overflow:hidden}

img{display:block;max-width:100%;height:auto}
a{color:inherit}
button{font:inherit;color:inherit}

::selection{background:var(--grass-lit);color:var(--ink)}

.u-visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0
}

/* ---------- type ---------------------------------------------------------- */

h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:600;
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 100;
  line-height:.95;
  letter-spacing:-.02em;
  margin:0;
  text-wrap:balance;
}

.eyebrow{
  font-family:var(--sans);
  font-size:clamp(.66rem,.6rem + .18vw,.78rem);
  font-variation-settings:"wdth" 88,"wght" 620;
  letter-spacing:.24em;
  text-transform:uppercase;
  margin:0;
  color:var(--mute);
}

.lede{
  font-size:clamp(1.06rem,1rem + .5vw,1.42rem);
  line-height:1.5;
  max-width:56ch;
  text-wrap:pretty;
}

p{text-wrap:pretty}

.num{
  font-family:var(--display);
  font-variation-settings:"SOFT" 0,"WONK" 0,"opsz" 144;
  font-weight:600;
  letter-spacing:-.04em;
}

/* ---------- buttons ------------------------------------------------------- */

.btn{
  --btn-bg:var(--red);
  --btn-fg:#fff;
  display:inline-flex;align-items:center;gap:.65em;
  padding:1.02em 1.6em;
  background:var(--btn-bg);color:var(--btn-fg);
  border:0;border-radius:2px;
  font-family:var(--sans);
  font-size:clamp(.8rem,.76rem + .16vw,.92rem);
  font-variation-settings:"wdth" 92,"wght" 700;
  letter-spacing:.11em;text-transform:uppercase;text-decoration:none;
  cursor:pointer;
  position:relative;overflow:hidden;isolation:isolate;
  transition:transform .5s var(--e-out),box-shadow .5s var(--e-out);
  box-shadow:0 1px 0 rgba(0,0,0,.2);
  white-space:nowrap;
}
.btn::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:var(--red-lit);
  transform:translateY(101%);
  transition:transform .55s var(--e-out);
}
.btn:hover::after,.btn:focus-visible::after{transform:translateY(0)}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px -12px rgba(201,56,43,.85)}
.btn:active{transform:translateY(0)}

.btn--ghost{
  --btn-bg:transparent;--btn-fg:var(--chrome);
  box-shadow:inset 0 0 0 1px currentColor;
}
.btn--ghost::after{background:var(--chrome)}
.btn--ghost:hover,.btn--ghost:focus-visible{--btn-fg:var(--ink);box-shadow:inset 0 0 0 1px transparent}
.btn--ghost:hover{box-shadow:0 10px 26px -14px rgba(0,0,0,.6)}

.btn--green{--btn-bg:var(--grass)}
.btn--green::after{background:var(--grass-lit)}
.btn--green:hover{box-shadow:0 10px 26px -12px rgba(39,107,68,.9)}

.btn--lg{padding:1.2em 2em;font-size:clamp(.86rem,.8rem + .2vw,1rem)}

:where(a,button,input,textarea,select,summary):focus-visible{
  outline:2px solid var(--gold);outline-offset:3px;border-radius:2px;
}

/* ---------- site header --------------------------------------------------- */

.hdr{
  position:fixed;inset:0 0 auto 0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:clamp(.85rem,1.6vw,1.5rem) var(--pad);
  color:var(--chrome);
  transition:color .5s ease,background-color .45s ease,backdrop-filter .45s ease;
  pointer-events:none;
}
.hdr > *{pointer-events:auto}
.hdr.is-stuck{
  background:rgba(10,14,11,.82);
  backdrop-filter:blur(14px) saturate(1.2);
  -webkit-backdrop-filter:blur(14px) saturate(1.2);
  --chrome:#F2EFE6;
  border-bottom:1px solid rgba(242,239,230,.1);
}

.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:inherit}
.brand svg{width:clamp(46px,5vw,60px);height:auto;flex:none;display:block}
.brand__txt{display:flex;flex-direction:column;line-height:1}
.brand__name{
  font-family:var(--display);font-weight:600;
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 60;
  font-size:clamp(1.02rem,.95rem + .32vw,1.3rem);letter-spacing:-.015em;
}
.brand__sub{
  font-size:clamp(.5rem,.46rem + .12vw,.6rem);letter-spacing:.2em;text-transform:uppercase;
  font-variation-settings:"wdth" 86,"wght" 560;
  color:var(--chrome-dim);margin-top:.32em;
}

.nav{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem)}
.nav__links{display:none;gap:clamp(1rem,1.8vw,2rem)}
@media (min-width:1000px){.nav__links{display:flex}}
.nav__links a{
  text-decoration:none;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;
  font-variation-settings:"wdth" 90,"wght" 600;
  color:var(--chrome-dim);position:relative;padding-block:.4em;
  transition:color .3s ease;
}
.nav__links a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--e-out);
}
.nav__links a:hover{color:var(--chrome)}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{transform:scaleX(1)}
.nav__links a[aria-current="page"]{color:var(--chrome)}

.nav__call{
  display:none;align-items:center;gap:.55rem;text-decoration:none;
  font-variation-settings:"wdth" 90,"wght" 700;letter-spacing:.08em;
  font-size:.84rem;padding:.72em 1.1em;border-radius:2px;
  background:var(--red);color:#fff;
  transition:background-color .35s ease,transform .45s var(--e-out);
}
.nav__call:hover{background:var(--red-lit);transform:translateY(-2px)}
@media (min-width:560px){.nav__call{display:inline-flex}}
.nav__call svg{width:15px;height:15px;flex:none}

/* ---------- THE FILM ------------------------------------------------------ */

.film{
  position:relative;
  height:760vh;                 /* scroll distance = film length */
  background:var(--ink);
}
.film__stage{
  position:sticky;top:0;
  height:100svh;
  overflow:hidden;
  background:var(--ink);
  contain:paint;
}

.scene{
  position:absolute;inset:0;
  opacity:0;
  will-change:opacity;
}
.scene[data-scene="0"]{opacity:1}

.scene__plate{
  position:absolute;inset:0;
  overflow:hidden;
  transform-origin:50% 55%;
  will-change:transform,clip-path;
}
.scene__plate img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  transform-origin:50% 55%;
  will-change:transform;
}

/* the mower-stripe wiping edge */
.wipe-edge{
  position:absolute;top:-5%;bottom:-5%;width:clamp(2px,.3vw,4px);
  background:linear-gradient(to bottom,transparent,var(--grass-lit) 12%,#dff5e5 50%,var(--grass-lit) 88%,transparent);
  box-shadow:0 0 34px 6px rgba(79,169,108,.55);
  opacity:0;pointer-events:none;
}

/* foreground parallax card */
.scene__card{
  position:absolute;
  --card-right:var(--pad);
  right:var(--card-right);
  overflow:hidden;border-radius:2px;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9),0 0 0 1px rgba(242,239,230,.1);
  will-change:transform;
}
.scene__card img{width:100%;height:100%;object-fit:cover}

@media (min-width:1000px){ .scene__card{--card-right:calc(var(--pad) + 7.5rem)} }

/* the grade — one overlay, warms monotonically, never cools back */
.film__grade{
  position:absolute;inset:0;pointer-events:none;z-index:5;
  background:
    linear-gradient(to right,rgba(5,9,7,.52) 0%,rgba(5,9,7,.18) 34%,transparent 56%),
    radial-gradient(150% 110% at 50% 6%,transparent 46%,rgba(6,10,8,.34) 100%),
    linear-gradient(to bottom,rgba(6,10,14,.34) 0%,transparent 22%,transparent 68%,rgba(5,8,6,.62) 100%);
}
.film__warm{
  position:absolute;inset:0;pointer-events:none;z-index:6;opacity:0;
  background:linear-gradient(200deg,rgba(224,168,60,.18),rgba(201,56,43,.08) 55%,transparent 82%);
}
.film__cool{
  position:absolute;inset:0;pointer-events:none;z-index:6;
  background:linear-gradient(180deg,rgba(26,48,70,.18),rgba(10,20,28,.10));
}
.film__grain{
  position:absolute;inset:0;z-index:7;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.5'/></svg>");
}

.film__copy{position:absolute;inset:0;z-index:20;pointer-events:none}
.film__copy::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:min(64rem,72%);
  background:linear-gradient(to right,rgba(6,10,8,.62),rgba(6,10,8,.34) 46%,transparent 100%);
  pointer-events:none;
}
@media (max-width:900px){.film__copy::before{width:100%;background:linear-gradient(to bottom,rgba(6,10,8,.28),rgba(6,10,8,.58) 46%,rgba(6,10,8,.74))}}
.film__copy > *{pointer-events:auto}
.film__copy .hint,.film__copy .debris{pointer-events:none}

/* --- film chrome ---------------------------------------------------------- */

.film__chrome{
  position:absolute;inset:0;z-index:20;pointer-events:none;
  color:var(--chrome);
  display:grid;
  grid-template-rows:1fr auto;
  padding:0 var(--pad) calc(var(--pad) + var(--bar));
}
.film__chrome > *{pointer-events:auto}

/* readout rail (right side) */
.readout{
  position:absolute;right:var(--pad);top:50%;transform:translateY(-50%);
  display:none;flex-direction:column;gap:.9rem;align-items:flex-end;
  z-index:22;pointer-events:none;
}
@media (min-width:1000px){.readout{display:flex}}
.readout__row{display:flex;align-items:center;gap:.7rem;opacity:.32;transition:opacity .5s ease}
.readout__row.is-on{opacity:1}
.readout__label{
  font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;
  font-variation-settings:"wdth" 84,"wght" 620;
  color:var(--chrome);
  text-shadow:0 1px 10px rgba(0,0,0,.85);
}
.readout__tick{width:26px;height:1px;background:currentColor;opacity:.5;transition:width .55s var(--e-out),opacity .5s ease}
.readout__row.is-on .readout__tick{width:46px;opacity:1;background:var(--gold)}

.readout__bar{
  position:absolute;right:calc(var(--pad) + 0px);top:0;bottom:0;width:1px;
  background:linear-gradient(to bottom,transparent,rgba(242,239,230,.22),transparent);
  display:none;
}

/* scene copy blocks */
.beat{
  position:absolute;
  left:var(--pad);
  bottom:calc(clamp(4.5rem,11vh,8rem) + var(--bar));
  max-width:min(46rem,74vw);
  z-index:21;
  opacity:0;
  will-change:transform,opacity;
}
.beat__no{
  display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem;white-space:nowrap;
  font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;
  font-variation-settings:"wdth" 86,"wght" 640;
  color:var(--gold);
}
.beat__no::before{content:"";width:clamp(20px,3vw,44px);height:1px;background:currentColor}
.beat h2,.beat .beat__h{
  font-size:clamp(2.3rem,1.2rem + 5.2vw,6rem);
  line-height:.87;letter-spacing:-.035em;
  text-shadow:0 2px 18px rgba(0,0,0,.6);
}
.beat p{
  margin:1.1rem 0 0;max-width:40ch;
  font-size:clamp(.98rem,.92rem + .34vw,1.2rem);
  color:rgba(242,239,230,.9);
  text-shadow:0 1px 12px rgba(0,0,0,.75);
}
.beat__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}

/* opening title block */
.title{
  position:absolute;left:var(--pad);right:var(--pad);
  top:50%;transform:translateY(-50%);
  z-index:21;
}
.title__kicker{
  display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;
  font-size:clamp(.6rem,.55rem + .18vw,.74rem);letter-spacing:.24em;text-transform:uppercase;
  font-variation-settings:"wdth" 86,"wght" 640;
  color:var(--gold);margin-bottom:clamp(.9rem,2vh,1.4rem);
}
.title__kicker span{color:rgba(242,239,230,.68)}
.title h1{
  font-size:clamp(2.5rem,.8rem + 7vw,7.4rem);
  line-height:.84;letter-spacing:-.045em;
  margin:0;
  text-shadow:0 2px 22px rgba(0,0,0,.62);
}
.title h1 .line{display:block;overflow:hidden}
.title h1 .line > span{display:inline-block;will-change:transform}
.title h1 em{
  font-style:normal;color:var(--red-lit);
  font-variation-settings:"SOFT" 60,"WONK" 1,"opsz" 144;
}
.title__sub{
  margin:clamp(1.1rem,2.6vh,1.9rem) 0 0;
  max-width:38ch;
  font-size:clamp(1rem,.94rem + .36vw,1.24rem);
  color:rgba(242,239,230,.88);
  text-shadow:0 1px 12px rgba(0,0,0,.7);
}
.title__cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:clamp(1.3rem,3vh,2.1rem)}
.title__trust{
  display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:clamp(1.1rem,2.4vh,1.7rem);
  font-size:clamp(.62rem,.58rem + .14vw,.72rem);letter-spacing:.15em;text-transform:uppercase;
  font-variation-settings:"wdth" 88,"wght" 600;
  color:rgba(242,239,230,.62);
}
.title__trust li{list-style:none;display:flex;align-items:center;gap:.5rem}
.title__trust li::before{content:"";width:5px;height:5px;background:var(--grass-lit);border-radius:50%;flex:none}
.title__trust{padding:0;margin-left:0}

/* the debris pile — words stacked at the base of frame that get hauled away */
.debris{
  position:absolute;left:0;right:0;bottom:calc(1rem + var(--bar));z-index:19;
  display:flex;flex-wrap:nowrap;align-items:flex-end;
  gap:.45rem;padding:0 var(--pad);
  pointer-events:none;overflow:hidden;
  list-style:none;margin:0;
  -webkit-mask-image:linear-gradient(to right,#000 62%,transparent 98%);
          mask-image:linear-gradient(to right,#000 62%,transparent 98%);
}
.debris li{
  display:inline-block;
  padding:.42em .78em;
  border:1px solid rgba(242,239,230,.28);
  background:rgba(10,14,11,.62);
  border-radius:2px;
  font-size:clamp(.56rem,.5rem + .26vw,.78rem);
  letter-spacing:.13em;text-transform:uppercase;
  font-variation-settings:"wdth" 86,"wght" 560;
  color:rgba(242,239,230,.8);
  white-space:nowrap;
  will-change:transform,opacity;
}


/* scroll hint */
.hint{
  position:absolute;right:var(--pad);bottom:calc(var(--pad) + 2.2rem + var(--bar));
  display:flex;align-items:center;gap:.6rem;z-index:21;
  font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;
  font-variation-settings:"wdth" 86,"wght" 620;
  color:var(--chrome-dim);
}
.hint__rail{position:relative;width:1px;height:44px;background:rgba(242,239,230,.2);overflow:hidden}
.hint__rail::after{
  content:"";position:absolute;left:0;top:-44px;width:1px;height:44px;background:var(--gold);
  animation:railfall 2.1s cubic-bezier(.7,0,.3,1) infinite;
}
@keyframes railfall{0%{transform:translateY(0)}100%{transform:translateY(88px)}}

/* ---------- generic sections --------------------------------------------- */

.sect{position:relative;padding:clamp(4.5rem,11vh,9rem) var(--pad)}
.wrap{max-width:var(--maxw);margin-inline:auto;width:100%}

.sect--paper{background:var(--paper);color:var(--ink)}
.sect--paper .eyebrow{color:var(--grass)}
.sect--bark{background:var(--bark)}
.sect--ink{background:var(--ink)}

.sect-head{
  display:grid;gap:clamp(1rem,3vw,3rem);
  grid-template-columns:1fr;
  align-items:end;margin-bottom:clamp(2.2rem,5vh,4rem);
}
@media (min-width:900px){.sect-head{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}
.sect-head h2{
  font-size:clamp(2.1rem,1.2rem + 3.9vw,4.6rem);
  letter-spacing:-.03em;margin-top:.55rem;
}

.rule{height:1px;background:var(--line);border:0;margin:0}
.sect--paper .rule{background:var(--line-dark)}

/* reveal-on-scroll primitive */
.rv{opacity:0;transform:translate3d(0,26px,0);will-change:transform,opacity}

/* ---------- junk removal block ------------------------------------------- */

.junk{position:relative;background:var(--ink);overflow:hidden}
.junk__grid{
  display:grid;gap:clamp(2rem,5vw,4.5rem);
  grid-template-columns:1fr;align-items:center;
}
@media (min-width:980px){.junk__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr)}}
.junk__media{position:relative;border-radius:2px;overflow:hidden;will-change:transform}
.junk__media img{width:100%;aspect-ratio:16/10;object-fit:cover;transform:scale(1.16);will-change:transform}
.junk__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,14,11,.6),transparent 55%);
}
.junk__stamp{
  position:absolute;left:1rem;bottom:1rem;z-index:2;
  display:flex;align-items:center;gap:.6rem;
  padding:.55em .9em;background:var(--red);border-radius:2px;
  font-size:clamp(.6rem,.55rem + .16vw,.72rem);letter-spacing:.16em;text-transform:uppercase;
  font-variation-settings:"wdth" 88,"wght" 700;color:#fff;
}
.junk h2{font-size:clamp(2.2rem,1.2rem + 4.4vw,5.2rem);letter-spacing:-.035em}

.taglist{
  display:flex;flex-wrap:wrap;gap:.45rem;margin:1.6rem 0 0;padding:0;list-style:none;
}
.taglist li{
  padding:.45em .8em;border:1px solid var(--line);border-radius:2px;
  font-size:clamp(.62rem,.58rem + .16vw,.74rem);letter-spacing:.11em;text-transform:uppercase;
  font-variation-settings:"wdth" 88,"wght" 560;color:rgba(242,239,230,.82);
  transition:border-color .35s ease,color .35s ease,background-color .35s ease;
}
.taglist li:hover{border-color:var(--grass-lit);color:var(--bone);background:rgba(79,169,108,.1)}
.sect--paper .taglist li{border-color:var(--line-dark);color:rgba(10,14,11,.76)}

.steps{list-style:none;margin:2.2rem 0 0;padding:0;display:grid;gap:1px;background:var(--line)}
.steps li{background:var(--ink);padding:1.4rem 0 1.4rem 0;display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start}
.sect--paper .steps{background:var(--line-dark)}
.sect--paper .steps li{background:var(--paper)}
.steps .num{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.2rem);color:var(--gold);line-height:1;min-width:2.2ch}
.steps h3{font-size:clamp(1.05rem,1rem + .5vw,1.4rem);margin-bottom:.35rem}
.steps p{margin:0;color:var(--mute);font-size:clamp(.9rem,.86rem + .2vw,1rem)}
.sect--paper .steps p{color:rgba(10,14,11,.66)}

/* ---------- horizontal services run --------------------------------------- */

.hrun{position:relative;background:var(--bark);overflow:hidden}
.hrun__pin{
  height:100svh;overflow:hidden;
  display:grid;grid-template-rows:auto 1fr;
  padding-top:clamp(5.6rem,12vh,8.5rem);
  padding-bottom:clamp(1.5rem,4vh,3rem);
  align-content:start;
}
.hrun__track{display:flex;gap:clamp(1rem,2vw,2rem);padding-inline:var(--pad);will-change:transform;align-self:center;min-height:0}
.card{
  position:relative;flex:none;
  height:min(58svh,29rem);
  width:auto;
  aspect-ratio:3/4;
  border-radius:2px;overflow:hidden;
  background:var(--ink);
  isolation:isolate;
}
.card img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transform:scale(1.12);will-change:transform;
  transition:transform 1s var(--e-out);
}
.card:hover img{transform:scale(1.18)}
.card::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(6,10,8,.94) 4%,rgba(6,10,8,.28) 46%,rgba(6,10,8,.1) 100%);
}
.card__body{position:absolute;inset:auto 0 0 0;z-index:2;padding:clamp(1.1rem,2vw,1.7rem)}
.card__no{
  font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  font-variation-settings:"wdth" 86,"wght" 640;color:var(--gold);margin-bottom:.5rem;
}
.card h3{font-size:clamp(1.35rem,1.1rem + 1.1vw,2rem);letter-spacing:-.025em}
.card p{margin:.55rem 0 0;font-size:clamp(.84rem,.8rem + .2vw,.95rem);color:rgba(242,239,230,.76);max-width:32ch}
.card--accent::before{
  content:"";position:absolute;inset:0;z-index:1;box-shadow:inset 0 0 0 2px var(--red);
}

.hrun__meta{
  padding:0 var(--pad) clamp(1.2rem,3vh,2.2rem);z-index:3;
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  pointer-events:none;
}
.hrun__meta h2{font-size:clamp(1.7rem,1.1rem + 2.6vw,3.4rem)}
.hrun__prog{position:relative;width:min(30vw,220px);height:1px;background:rgba(242,239,230,.18);flex:none}
.hrun__prog span{position:absolute;inset:0 auto 0 0;width:0;background:var(--gold)}

/* ---------- stats --------------------------------------------------------- */

.stats{
  display:grid;gap:1px;background:var(--line);
  grid-template-columns:repeat(2,1fr);
}
@media (min-width:900px){.stats{grid-template-columns:repeat(4,1fr)}}
.stats > div{background:var(--ink);padding:clamp(1.6rem,3.4vw,2.8rem) clamp(1rem,2vw,1.8rem)}
.sect--paper .stats{background:var(--line-dark)}
.sect--paper .stats > div{background:var(--paper)}
.stats .num{display:block;font-size:clamp(2.6rem,1.6rem + 4.2vw,5rem);line-height:.9;color:var(--grass-lit)}
.sect--paper .stats .num{color:var(--grass)}
.stats p{margin:.7rem 0 0;font-size:clamp(.66rem,.62rem + .16vw,.78rem);letter-spacing:.16em;text-transform:uppercase;
  font-variation-settings:"wdth" 88,"wght" 580;color:var(--mute)}

/* ---------- marquee ------------------------------------------------------- */

.marq{position:relative;overflow:hidden;padding:clamp(1.4rem,3vh,2.4rem) 0;border-block:1px solid var(--line)}
.sect--paper .marq{border-color:var(--line-dark)}
.marq__track{display:flex;gap:clamp(1.4rem,3vw,3rem);width:max-content;will-change:transform}
.marq__track span{
  font-family:var(--display);
  font-size:clamp(1.3rem,1rem + 2.2vw,2.8rem);
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 100;
  letter-spacing:-.02em;white-space:nowrap;
  color:rgba(242,239,230,.34);
}
.sect--paper .marq__track span{color:rgba(10,14,11,.26)}
.marq__track span::after{content:"·";margin-left:clamp(1.4rem,3vw,3rem);color:var(--grass-lit)}

/* ---------- areas --------------------------------------------------------- */

.areas{columns:2;column-gap:clamp(1.4rem,3vw,3rem);margin:0;padding:0;list-style:none}
@media (min-width:720px){.areas{columns:3}}
@media (min-width:1100px){.areas{columns:4}}
.areas li{
  break-inside:avoid;padding:.42rem 0;
  font-size:clamp(.86rem,.83rem + .18vw,.98rem);
  color:rgba(10,14,11,.72);
  border-bottom:1px solid rgba(10,14,11,.08);
}
.sect--ink .areas li,.sect--bark .areas li{color:rgba(242,239,230,.72);border-color:rgba(242,239,230,.1)}

/* ---------- FAQ ----------------------------------------------------------- */

.faq{border-top:1px solid var(--line-dark)}
.faq details{border-bottom:1px solid var(--line-dark)}
.sect--ink .faq details,.sect--bark .faq details{border-color:var(--line)}
.faq summary{
  list-style:none;cursor:pointer;
  display:flex;justify-content:space-between;align-items:baseline;gap:1.4rem;
  padding:clamp(1.1rem,2.4vh,1.7rem) 0;
  font-family:var(--display);font-weight:600;
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 72;
  font-size:clamp(1.05rem,.98rem + .7vw,1.6rem);letter-spacing:-.02em;line-height:1.15;
  transition:color .3s ease;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--grass)}
.sect--ink .faq summary:hover{color:var(--grass-lit)}
.faq summary::after{
  content:"+";flex:none;font-family:var(--sans);font-size:1.3em;line-height:1;
  color:var(--grass);transition:transform .45s var(--e-out);
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details > div{padding:0 0 clamp(1.2rem,2.6vh,1.8rem);max-width:68ch;color:rgba(10,14,11,.72)}
.sect--ink .faq details > div{color:rgba(242,239,230,.74)}

/* ---------- quote form ---------------------------------------------------- */

.quote{position:relative;background:var(--grass);color:var(--paper);overflow:hidden}
.quote::before{
  content:"";position:absolute;inset:0;opacity:.16;
  background:url("img/grass-tex-1280.webp") center/cover;
  mix-blend-mode:overlay;pointer-events:none;
}
.quote__grid{display:grid;gap:clamp(2rem,5vw,4.5rem);grid-template-columns:1fr;position:relative;z-index:1}
@media (min-width:980px){.quote__grid{grid-template-columns:minmax(0,.92fr) minmax(0,1fr)}}
.quote h2{font-size:clamp(2.2rem,1.3rem + 4.2vw,5rem);letter-spacing:-.035em}
.quote .eyebrow{color:rgba(251,249,243,.7)}

.form{display:grid;gap:1rem}
.field{display:grid;gap:.45rem}
.field label{
  font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  font-variation-settings:"wdth" 88,"wght" 620;color:rgba(251,249,243,.82);
}
.field input,.field select,.field textarea{
  font:inherit;font-size:1rem;
  padding:.92em 1em;
  background:rgba(251,249,243,.07);
  border:1px solid rgba(251,249,243,.26);
  border-radius:2px;color:var(--paper);
  transition:border-color .3s ease,background-color .3s ease;
  width:100%;
}
.field textarea{min-height:6.5rem;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:rgba(251,249,243,.4)}
.field input:focus,.field select:focus,.field textarea:focus{
  background:rgba(251,249,243,.12);border-color:var(--paper);outline:none;
}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,rgba(251,249,243,.7) 50%),linear-gradient(135deg,rgba(251,249,243,.7) 50%,transparent 50%);
  background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat}
.field select option{background:var(--bark);color:var(--paper)}
.form__row{display:grid;gap:1rem}
@media (min-width:640px){.form__row{grid-template-columns:1fr 1fr}}
.form__note{font-size:.78rem;color:rgba(251,249,243,.66);margin:.2rem 0 0}
.form__status{
  margin:0;padding:.9em 1.1em;border-radius:2px;font-size:.9rem;
  background:rgba(10,14,11,.34);border:1px solid rgba(251,249,243,.3);
  display:none;
}
.form__status.is-on{display:block}
.form__status.is-err{border-color:#ffd9d4;background:rgba(201,56,43,.5)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}

.contactcard{display:grid;gap:1.4rem;align-content:start}
.contactcard a.big{
  font-family:var(--display);font-weight:600;
  font-variation-settings:"SOFT" 30,"WONK" 0,"opsz" 144;
  font-size:clamp(1.9rem,1.2rem + 3.2vw,3.6rem);
  letter-spacing:-.03em;text-decoration:none;line-height:1;
  display:inline-flex;align-items:center;gap:.5rem;
  transition:opacity .3s ease;
}
.contactcard a.big:hover{opacity:.8}
.contactcard dl{margin:0;display:grid;gap:.9rem}
.contactcard dt{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;
  font-variation-settings:"wdth" 88,"wght" 620;color:rgba(251,249,243,.68);margin-bottom:.2rem}
.contactcard dd{margin:0;font-size:clamp(.95rem,.9rem + .2vw,1.08rem)}
.contactcard dd a{text-decoration:none;border-bottom:1px solid rgba(251,249,243,.4)}

/* ---------- footer -------------------------------------------------------- */

.foot{background:var(--ink);padding:clamp(3.5rem,8vh,6rem) var(--pad) calc(clamp(2rem,5vh,3.5rem) + var(--bar))}
.foot__top{display:grid;gap:clamp(2rem,4vw,3.5rem);grid-template-columns:1fr}
@media (min-width:820px){.foot__top{grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr))}}
.foot h3{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-family:var(--sans);
  font-variation-settings:"wdth" 88,"wght" 640;color:var(--mute);margin-bottom:1.1rem}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}
.foot a{text-decoration:none;color:rgba(242,239,230,.78);transition:color .3s ease}
.foot a:hover{color:var(--bone)}
.foot__blurb{max-width:42ch;color:rgba(242,239,230,.7);margin:1.2rem 0 0;font-size:.95rem}
.social{display:flex;gap:.6rem;margin-top:1.4rem}
.social a{
  display:grid;place-items:center;width:42px;height:42px;
  border:1px solid var(--line);border-radius:2px;
  transition:background-color .35s ease,border-color .35s ease,transform .45s var(--e-out);
}
.social a:hover{background:var(--grass);border-color:var(--grass);transform:translateY(-3px)}
.social svg{width:17px;height:17px;fill:currentColor}
.foot__bot{
  margin-top:clamp(2.5rem,6vh,4rem);padding-top:1.5rem;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;justify-content:space-between;
  font-size:.76rem;color:var(--mute);
}

/* ---------- sticky call bar (mobile) -------------------------------------- */

.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;
  display:grid;grid-template-columns:1fr 1fr 1fr;
  background:rgba(10,14,11,.94);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-top:1px solid rgba(242,239,230,.14);
  transform:translateY(101%);
  will-change:transform;
  padding-bottom:env(safe-area-inset-bottom);
}
.callbar.is-on{transform:translateY(0)}
.callbar a{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;
  padding:.8rem .4rem;text-decoration:none;color:var(--bone);
  font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;
  font-variation-settings:"wdth" 88,"wght" 640;
  border-right:1px solid rgba(242,239,230,.12);
}
.callbar a:last-child{border-right:0}
.callbar a.is-primary{background:var(--red);color:#fff}
.callbar svg{width:17px;height:17px}
@media (min-width:860px){.callbar{display:none}}

/* ---------- loader -------------------------------------------------------- */

.loader{
  position:fixed;inset:0;z-index:200;background:var(--ink);
  display:grid;place-items:center;
  transition:opacity .7s ease,visibility .7s;
}
.loader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.loader__inner{display:grid;justify-items:center;gap:1.2rem}
.loader svg{width:84px;height:auto;opacity:.9}
.loader__rail{width:min(46vw,220px);height:1px;background:rgba(242,239,230,.18);overflow:hidden}
.loader__rail i{display:block;height:100%;width:0;background:var(--gold)}

/* ---------- phone overrides (after the base rules, so they win) ----------- */

@media (max-width:900px){
  .debris{bottom:calc(.6rem + var(--bar))}
  .hint{display:none}
  .title{top:48%}
  .title__cta .btn{flex:1 1 auto;justify-content:center}
  .beat{bottom:calc(clamp(3rem,8vh,6rem) + var(--bar))}
  .beat p{max-width:34ch}
}
@media (max-width:620px){
  .stats{grid-template-columns:1fr 1fr}
  .quote__grid,.junk__grid,.foot__top,.sect-head{gap:2rem}
  .contactcard a.big{font-size:clamp(1.8rem,1.2rem + 4vw,2.6rem)}
}

/* ---------- reduced motion ------------------------------------------------ */

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .film{height:auto}
  .film__stage{position:static;height:auto;overflow:visible}
  .scene{position:relative;inset:auto;opacity:1!important;visibility:visible!important;min-height:70svh;margin:0}
  .scene__plate{position:absolute;inset:0;transform:none!important}
  .scene__plate img{transform:none!important}
  .scene__card{display:none}
  .beat{position:relative;opacity:1!important;transform:none!important;bottom:auto;left:auto;
    padding:clamp(3rem,10vh,7rem) var(--pad);max-width:none}
  .title{position:relative;transform:none;top:auto;padding:clamp(5rem,14vh,9rem) 0}
  .title h1 .line > span{transform:none!important}
  .film__chrome{position:relative;display:block;padding:0}
  .readout,.hint,.debris,.wipe-edge{display:none}
  .film__cool,.film__warm,.film__grain,.film__grade{display:none}
  .film__copy{position:static;z-index:auto}
  .scene{background:var(--ink)}
  .scene__plate{opacity:.4}
  .beat,.title{position:relative;z-index:2}
  .hrun__pin{height:auto;display:block;padding-block:clamp(3rem,8vh,6rem)}
  .hrun__track{flex-wrap:wrap;transform:none!important}
  .hrun__meta{position:relative;top:auto;left:auto;right:auto;padding-inline:var(--pad);margin-bottom:2rem}
  .rv{opacity:1!important;transform:none!important}
  .callbar{transform:translateY(0)}
  .loader{display:none}
}
