/* Projects page — hero coverflow carousel, decades-of-addresses carousel, stacked project panel, quote */
.ph{min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding-top:calc(90px + env(safe-area-inset-top,0px));padding-bottom:28px;text-align:center}
.ph h1{font-size:clamp(30px,3.2vw,46px);line-height:1.15}
.ph .lab{align-self:center;max-width:30ch;justify-self:center}
.ph .tag{grid-row:3;font:400 13px/1.3 var(--display);color:var(--mute-ink)}
.hcar{grid-row:2;align-self:center;width:auto;margin-left:calc(-1 * max(var(--gx),env(safe-area-inset-left,0px)));margin-right:calc(-1 * max(var(--gx),env(safe-area-inset-right,0px)));display:flex;flex-direction:column;align-items:center;gap:22px;padding:14px 0 12px}
.hcar__stage{position:relative;width:100%;aspect-ratio:2.1/1;max-height:64vh;overflow:hidden}
.hcar__glow{position:absolute;inset:-10% 0;background:radial-gradient(60% 65% at 50% 46%,rgba(224,153,95,.26),transparent 70%);filter:blur(60px);z-index:0;pointer-events:none}
.hcar__card{position:absolute;inset:0;margin:auto;width:84%;height:100%;border:0;padding:0;background:none;cursor:pointer;overflow:hidden;transition:transform 1s cubic-bezier(.22,.61,.36,1),opacity .7s ease,filter .9s ease;-webkit-tap-highlight-color:transparent}
.hcar__card img{width:100%;height:100%;object-fit:cover;display:block}
.hcar__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,19,13,0) 48%,rgba(8,19,13,.8) 100%)}
.hcar__ext{position:absolute;top:clamp(14px,2vw,22px);right:clamp(14px,2vw,22px);font:500 9.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--pearl);background:rgba(8,19,13,.42);backdrop-filter:blur(6px);padding:7px 11px;border-radius:99px;display:flex;align-items:center;gap:6px}
.hcar__ext::after{content:"↗";font-size:11px;line-height:1}
.hcar__txt{position:absolute;left:clamp(28px,4vw,56px);right:clamp(28px,4vw,56px);bottom:clamp(18px,3vw,32px);text-align:left;color:var(--pearl)}
.hcar__txt .lab em{font-style:normal;color:var(--sand);margin-left:10px}
.hcar__txt h3{font:400 clamp(28px,4.4vw,58px)/1.05 var(--display);letter-spacing:-.03em;margin-top:8px}
.hcar__card.slot-0{transform:translateX(0) scale(1);opacity:1;filter:blur(0);z-index:3;pointer-events:auto}
.hcar__card.slot-1{transform:translateX(52%) scale(.82);opacity:.46;filter:blur(6px);z-index:2;pointer-events:auto}
.hcar__card.slot-m1{transform:translateX(-52%) scale(.82);opacity:.46;filter:blur(6px);z-index:2;pointer-events:auto}
.hcar__card.slot-hidden{transform:translateX(0) scale(.6);opacity:0;filter:blur(8px);z-index:1;pointer-events:none}
.hcar__dots{display:flex;gap:4px}
.hcar__dots i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.hcar__dots i::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--rule-ink);transition:background .4s,transform .4s}
.hcar__dots i.on::before{background:var(--forest);transform:scale(1.35)}
.hcar__dots i:focus-visible,.acar__dots i:focus-visible{outline:2px solid currentColor;outline-offset:2px}

/* decades-of-addresses list */
.addr{padding-block:clamp(90px,11vw,160px)}
.addr__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:clamp(40px,6vw,100px);align-items:center}
.addr__col .disp{font-size:clamp(34px,5vw,72px)}
.addr__col p{color:var(--mute);max-width:40ch;margin-top:18px}
.addr__note{margin-top:22px;color:var(--mute);font-size:12.5px}
.acar{display:flex;flex-direction:column;align-items:center;gap:20px}
.acar__stage{position:relative;width:100%;max-width:360px;aspect-ratio:4/4.6;overflow:hidden}
.acar__glow{position:absolute;inset:-12% -8%;background:radial-gradient(60% 60% at 50% 46%,rgba(224,153,95,.28),transparent 70%);filter:blur(42px);z-index:0;pointer-events:none}
.acar__card{position:absolute;inset:0;margin:auto;width:78%;height:100%;border:0;padding:0;background:none;cursor:pointer;overflow:hidden;transition:transform 1s cubic-bezier(.22,.61,.36,1),opacity .7s ease,filter .9s ease;-webkit-tap-highlight-color:transparent}
.acar__card img{width:100%;height:100%;object-fit:cover;display:block}
.acar__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,19,13,0) 46%,rgba(8,19,13,.82) 100%)}
.acar__txt{position:absolute;left:26px;right:26px;bottom:16px;text-align:left;color:var(--pearl)}
.acar__txt h3{font:400 clamp(20px,2.4vw,30px)/1.08 var(--display);letter-spacing:-.02em;margin-top:5px}
.acar__card.slot-0{transform:translateX(0) scale(1);opacity:1;filter:blur(0);z-index:3;pointer-events:auto}
.acar__card.slot-1{transform:translateX(42%) scale(.82);opacity:.46;filter:blur(5px);z-index:2;pointer-events:auto}
.acar__card.slot-m1{transform:translateX(-42%) scale(.82);opacity:.46;filter:blur(5px);z-index:2;pointer-events:auto}
.acar__card.slot-hidden{transform:translateX(0) scale(.6);opacity:0;filter:blur(8px);z-index:1;pointer-events:none}
.acar__dots{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;max-width:270px}
.acar__dots i{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.acar__dots i::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--rule);transition:background .4s,transform .4s}
.acar__dots i.on::before{background:var(--sand);transform:scale(1.5)}

/* a stacked full-bleed panel component used on this page */
.proj{position:relative;height:100svh;min-height:520px;overflow:hidden;background:var(--deep);color:var(--pearl);display:block}
.proj .par{position:absolute;inset:0}
.proj .panel__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,19,13,0) 60%,rgba(8,19,13,.62) 100%)}
.proj__txt{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);padding:18px 0;background:linear-gradient(90deg,rgba(8,19,13,.6) 0%,rgba(8,19,13,.6) 15%,rgba(8,19,13,0) 30%)}
.proj .lab{display:block;margin-bottom:10px}
.proj .lab em{font-style:normal;color:var(--sand);margin-left:10px}
.proj h3{font:400 clamp(38px,4.6vw,66px)/.98 var(--display);letter-spacing:-.03em}
.proj__side{position:absolute;right:max(var(--gx),env(safe-area-inset-right,0px));top:calc(84px + env(safe-area-inset-top,0px));max-width:32ch;text-align:right;color:var(--pearl);opacity:.9;display:grid;gap:10px;justify-items:end}
.proj__side .lk{color:var(--pearl)}

/* quote */
.quote{position:relative;background:var(--forest);color:var(--pearl);overflow:hidden}
.quote__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100svh}
.quote__img{position:relative;min-height:60svh}
.quote__img .par{position:absolute;inset:0}
.quote__txt{display:grid;align-content:center;gap:30px;padding-block:clamp(80px,10vw,140px);padding-left:clamp(24px,4vw,64px);padding-right:max(var(--gx),env(safe-area-inset-right,0px))}
.quote blockquote{font:400 clamp(30px,4.2vw,64px)/1.14 var(--display);letter-spacing:-.03em;text-wrap:balance}
.quote .body{max-width:40ch;opacity:.9}
.quote .lk{justify-self:start}

@media (max-width:899px){
  .addr__grid,.quote__grid{grid-template-columns:minmax(0,1fr)}
  .proj__side{display:none}
  .quote__img{min-height:46svh}
}
