:root{
  --ink:#0A0E0D;
  --ink-2:#141A18;
  --ink-3:#1C2422;
  --paper:#E8EDEB;
  --dim:rgba(232,237,235,.60);
  --faint:rgba(232,237,235,.32);
  --accent:#4ADE9B;
  --accent-deep:#1F7A52;
  --line:rgba(232,237,235,.11);
  --ease:cubic-bezier(.22,.61,.36,1);
  --expo:cubic-bezier(.16,1,.3,1);
  --sans:"Archivo",system-ui,-apple-system,sans-serif;
  --disp:"Space Grotesk","Archivo",system-ui,sans-serif;
  --pad:clamp(1.25rem,4vw,3.5rem);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink)}
body{background:var(--ink);color:var(--paper);font-family:var(--sans);
  line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:500;opacity:.045;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/></svg>");
  mix-blend-mode:overlay}
img{max-width:100%;display:block}
a{color:inherit}

/* ===== SHARED ===== */
.eyebrow{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--accent);
  display:flex;align-items:center;gap:.7rem;margin-bottom:1.4rem}
.eyebrow::before{content:"";width:32px;height:1px;background:currentColor}
h2{font-family:var(--disp);font-weight:700;font-size:clamp(2rem,5.5vw,4.2rem);
  letter-spacing:-.04em;line-height:1.02}

/* ===== HERO ===== */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding:6.5rem var(--pad) 5.5rem;position:relative}
@media(max-width:768px){.hero{padding-bottom:4.5rem}}
.badge{display:inline-flex;align-items:center;gap:.55rem;align-self:flex-start;
  padding:.42rem .9rem .42rem .72rem;border:1px solid rgba(74,222,155,.4);
  background:rgba(74,222,155,.1);border-radius:999px;font-size:.72rem;font-weight:600;
  letter-spacing:.11em;text-transform:uppercase;text-decoration:none;margin-bottom:1.75rem;
  opacity:0;transform:translateY(14px);transition:opacity .8s var(--ease) .45s,transform .8s var(--ease) .45s}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);
  animation:pulse 2.3s var(--expo) infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(74,222,155,.55)}70%{box-shadow:0 0 0 7px rgba(74,222,155,0)}100%{box-shadow:0 0 0 0 rgba(74,222,155,0)}}
body.revealed .badge{opacity:1;transform:none}

.hero h1{font-family:var(--disp);font-weight:700;font-size:clamp(3.4rem,16vw,14rem);
  letter-spacing:-.055em;line-height:.82;text-transform:uppercase}
.hero h1 .ln{display:block;overflow:hidden}
.hero h1 .ln i{display:block;font-style:normal;transform:translateY(102%);
  transition:transform 1.15s var(--expo)}
body.revealed .hero h1 .ln:nth-child(1) i{transform:translateY(0);transition-delay:.1s}
body.revealed .hero h1 .ln:nth-child(2) i{transform:translateY(0);transition-delay:.19s}
.hero-role{font-family:var(--disp);font-weight:500;font-size:clamp(.78rem,1.15vw,.95rem);
  letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin:0 0 1.15rem;
  opacity:0;transform:translateY(12px);
  transition:opacity .8s var(--ease) .32s,transform .8s var(--ease) .32s}
body.revealed .hero-role{opacity:1;transform:none}
.hero h1 em{font-style:normal;color:var(--accent)}

.hero-foot{margin-top:clamp(2rem,5vw,3.5rem);display:flex;flex-wrap:wrap;gap:2.5rem;
  align-items:flex-end;justify-content:space-between;
  opacity:0;transform:translateY(20px);
  transition:opacity .9s var(--ease) .62s,transform .9s var(--ease) .62s}
body.revealed .hero-foot{opacity:1;transform:none}
.hero-foot p{max-width:40rem;color:var(--dim);font-size:clamp(.98rem,1.5vw,1.12rem)}
.cue{display:flex;align-items:center;gap:.7rem;font-size:.68rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--faint)}
.cue span{display:block;width:1px;height:44px;background:var(--line);position:relative;overflow:hidden}
.cue span::after{content:"";position:absolute;inset:0;background:var(--accent);
  animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}

/* ===== TICKER ===== */
.ticker{position:absolute;left:0;right:0;bottom:0;z-index:3;overflow:hidden;
  padding:.85rem 0;border-top:1px solid var(--line);opacity:.85;display:block}
.ticker-in{display:flex;width:max-content;animation:tick 52s linear infinite;
  translate:var(--nudge,0px) 0}
.ticker-group{display:flex;flex:0 0 auto}
.ticker-in span{font-family:var(--disp);font-size:clamp(.7rem,1.1vw,.86rem);font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;padding:0 1.1rem;display:flex;
  align-items:center;gap:1.1rem;white-space:nowrap;color:var(--dim)}
.ticker-in span::after{content:"";width:3px;height:3px;border-radius:50%;background:var(--accent);opacity:.7}
@keyframes tick{to{transform:translate3d(-50%,0,0)}}

/* ===== WORK ===== */
.work{padding:clamp(4.5rem,9vw,8rem) 0 0}
.work-head{padding:0 var(--pad);margin-bottom:clamp(2.5rem,5vw,4.5rem);max-width:42rem}
.work-head p{color:var(--dim);margin-top:1rem}
.work-grid{display:grid;grid-template-columns:1fr;padding:0 var(--pad)}
@media(min-width:900px){.work-grid{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(2rem,5vw,4.5rem)}}

.work-visual{display:none}
@media(min-width:900px){.work-visual{display:flex;position:sticky;top:0;height:100svh;align-items:center}}
.frame{position:relative;aspect-ratio:4/5;overflow:hidden;
  background:var(--ink);border:1px solid var(--line);
  height:min(62svh,620px);width:auto;max-width:100%;margin:0 auto}
.frame figure{position:absolute;inset:0;opacity:0;transform:scale(1.06);
  transition:opacity .85s var(--ease),transform 1.1s var(--expo)}
.frame figure.on{opacity:1;transform:scale(1)}
.plate{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);font-size:clamp(1.4rem,3.2vw,2.8rem);font-weight:700;
  letter-spacing:-.03em;text-transform:uppercase;text-align:center;padding:2rem;line-height:1.05}
.idx{position:absolute;left:.75rem;bottom:.75rem;z-index:3;font-family:var(--disp);
  font-size:.68rem;letter-spacing:.18em;color:var(--dim);
  padding:.3rem .55rem;border-radius:3px;
  background:rgba(10,14,13,.74);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

.work-list{display:flex;flex-direction:column}
.item{min-height:clamp(60vh,78svh,88svh);display:flex;flex-direction:column;justify-content:center;
  padding:clamp(2rem,5vw,3rem) 0;border-top:1px solid var(--line)}
.item:first-child{border-top:none}
.item .n{font-family:var(--disp);font-size:.74rem;letter-spacing:.2em;color:var(--accent);margin-bottom:.9rem}
.item h3{font-family:var(--disp);font-size:clamp(1.7rem,4vw,2.9rem);font-weight:700;
  letter-spacing:-.035em;line-height:1.02;margin-bottom:.6rem;text-transform:uppercase}
.item .sub{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem}
.item p{color:var(--dim);max-width:36rem;margin-bottom:1.2rem}
.m{display:flex;flex-wrap:wrap;gap:1.75rem;border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);padding:1.1rem 0;margin-bottom:1.6rem}
.m div b{display:block;font-family:var(--disp);font-size:1.4rem;font-weight:700;letter-spacing:-.04em;line-height:1}
.m div em{font-style:normal;font-size:.72rem;color:var(--faint)}
.lnk{display:inline-flex;align-items:center;gap:.6rem;align-self:flex-start;font-family:var(--disp);
  font-weight:500;font-size:.88rem;text-decoration:none;padding-bottom:.35rem;
  border-bottom:1px solid var(--line);transition:border-color .3s,color .3s,gap .3s var(--ease)}
.lnk:hover{color:var(--accent);border-color:var(--accent);gap:1rem}

/* ===== STATEMENT ===== */
.statement{padding:clamp(3.5rem,7vw,6rem) var(--pad) clamp(4rem,8vw,7rem)}
.statement p{font-family:var(--disp);font-weight:700;font-size:clamp(1.5rem,4.2vw,3.1rem);
  letter-spacing:-.035em;line-height:1.2;max-width:24ch}
.statement .w{color:rgba(232,237,235,.26);transition:color .45s var(--ease)}
.statement .w.lit{color:var(--paper)}
.statement .w.accent,
.statement .w.accent.lit{color:var(--accent)}

/* ===== CAPABILITIES ===== */
.caps{padding:0 var(--pad) clamp(5rem,10vw,8rem)}
.caps-head{margin-bottom:clamp(1.75rem,3.5vw,2.5rem);max-width:40rem}
.caps-title{font-family:var(--disp);font-weight:700;font-size:clamp(1.9rem,4.5vw,3rem);
  letter-spacing:-.04em;line-height:1.05}
.caps-grid{display:grid;grid-template-columns:1fr;
  border-top:1px solid var(--line);border-left:1px solid var(--line)}
@media(min-width:620px){.caps-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.caps-grid{grid-template-columns:repeat(3,1fr)}}
.cap{padding:clamp(1.6rem,3vw,2.2rem);border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  transition:background .35s var(--ease)}
.cap:hover{background:var(--ink)}
.cap h4{font-family:var(--disp);font-size:1.05rem;font-weight:700;letter-spacing:-.02em;
  margin-bottom:.6rem;padding-left:.85rem;position:relative}
.cap h4::before{content:"";position:absolute;left:0;top:.42em;width:4px;height:4px;
  border-radius:50%;background:var(--accent)}
.cap p{font-size:.9rem;color:var(--dim);line-height:1.6;padding-left:.85rem}

/* ===== CONTACT ===== */
.contact{min-height:auto;padding-top:clamp(4rem,9vw,7rem);display:flex;flex-direction:column;justify-content:center;
  padding:clamp(4rem,9vw,7rem) var(--pad);border-top:1px solid var(--line)}
.contact h2{margin-bottom:1.25rem}
.contact h2 a{text-decoration:none;transition:color .35s}
.contact h2 a:hover{color:var(--accent)}
.contact > p{color:var(--dim);max-width:34rem;margin-bottom:2.5rem}
.c-row{display:flex;flex-wrap:wrap;gap:1.25rem 2.75rem;border-top:1px solid var(--line);
  padding-top:1.6rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.c-row a{color:var(--dim);text-decoration:none;transition:color .3s}
.c-row a:hover{color:var(--accent)}

.rv{opacity:0;transform:translateY(24px);transition:opacity .95s var(--expo),transform .95s var(--expo)}
.rv.in{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
  .hero h1 .ln i,.intro-word span{transform:none}
  .badge,.hero-foot,.hero-role{opacity:1;transform:none}
}

/* ===========================================================
   PRODUCTION ADDITIONS
   =========================================================== */

/* --- Skip link --- */
.skip-link{position:absolute;top:-100%;left:50%;transform:translateX(-50%);
  padding:.75rem 1.5rem;background:var(--accent);color:var(--ink);font-weight:600;
  border-radius:0 0 4px 4px;z-index:10000;text-decoration:none;transition:top .2s var(--ease)}
.skip-link:focus{top:0}

/* --- Header is the fixed nav bar --- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:900;display:flex;
  align-items:center;justify-content:space-between;padding:1.3rem var(--pad);
  border-bottom:1px solid transparent;
  transition:background .35s var(--ease),backdrop-filter .35s var(--ease),
             border-color .35s var(--ease),padding .35s var(--ease)}
.site-header.stuck{padding-top:.95rem;padding-bottom:.95rem;
  background:rgba(10,14,13,.78);backdrop-filter:blur(14px) saturate(150%);
  -webkit-backdrop-filter:blur(14px) saturate(150%);border-bottom-color:var(--line)}
.logo{font-family:var(--disp);font-weight:700;font-size:1rem;letter-spacing:-.01em;
  text-decoration:none;color:var(--paper);text-transform:uppercase}
.logo span{color:var(--accent);font-weight:500}
.site-nav ul{display:flex;gap:1.6rem;list-style:none}
.site-nav a{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;
  opacity:.7;text-decoration:none;color:var(--paper);transition:opacity .25s}
.site-nav a:hover,.site-nav a[aria-current="page"]{opacity:1}

.nav-toggle{display:none;background:none;border:none;color:var(--paper);
  font-size:1.5rem;cursor:pointer;padding:.5rem;line-height:1}

@media(max-width:768px){
  .nav-toggle{display:block}
  .site-nav{position:fixed;top:64px;left:0;right:0;background:var(--ink-2);
    border-bottom:1px solid var(--line);padding:1rem var(--pad) 1.5rem;
    transform:translateY(-102%);opacity:0;visibility:hidden;
    transition:transform .34s var(--ease),opacity .28s ease,visibility .28s}
  .site-nav.open{transform:translateY(0);opacity:1;visibility:visible}
  .site-nav ul{flex-direction:column;gap:0}
  .site-nav a{display:block;padding:.95rem .25rem;font-size:1.05rem;
    border-bottom:1px solid var(--line);opacity:1}
  .site-nav li:last-child a{border-bottom:none}
}

/* --- Real images inside the sticky frame --- */
.frame figure > .project-slideshow,
.frame figure > .frame-logo,
.frame figure > .frame-wordmark{position:absolute;inset:0}

.project-slideshow{
  position:absolute;inset:0;overflow:hidden;background:var(--ink);
}
.project-slideshow::before,
.frame-logo::before{
  content:"";
  position:absolute;
  inset:-12%;
  z-index:0;
  background-image:var(--bg-image);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:blur(30px);
  transform:scale(1.08);
  opacity:.68;
}
.project-slideshow::after,
.frame-logo::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:rgba(10,14,13,.20);
}
.project-slideshow img{
  position:absolute;
  inset:0;
  margin:auto;
  z-index:1;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  display:block;
}
.project-slideshow img:first-child{z-index:1}
.project-slideshow img:not(:first-child){z-index:2;
  opacity:0;transition:opacity .8s var(--ease)}
.project-slideshow img.active:not(:first-child){opacity:1}

.frame-logo{display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
  background:var(--ink-2);padding:clamp(.4rem,1vw,.8rem)}
.frame-logo img{
  position:absolute;
  z-index:1;
  top:0;
  left:50%;
  height:100%;
  width:auto;
  max-width:none;
  max-height:none;
  transform:translateX(-50%);
  object-fit:contain;
  display:block;
}

.frame-wordmark{display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:radial-gradient(130% 130% at 18% 12%, rgba(74,222,155,.13), transparent 58%),
             radial-gradient(130% 130% at 85% 88%, rgba(31,122,82,.22), transparent 62%),
             var(--ink-2)}

/* --- E.S. step-and-repeat --- */
.es-steprepeat{width:100%;height:100%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:.45rem;padding:clamp(.9rem,2.5vw,1.6rem)}
.es-steprepeat-line{display:flex;align-items:baseline;justify-content:center;gap:.26em;
  white-space:nowrap;line-height:1;transform:translateX(var(--shift,0px))}
.es-steprepeat-line:nth-child(1){--shift:-24px;opacity:.14}
.es-steprepeat-line:nth-child(2){--shift:-18px;opacity:.22}
.es-steprepeat-line:nth-child(3){--shift:-12px;opacity:.32}
.es-steprepeat-line:nth-child(4){--shift:-6px; opacity:.46}
.es-steprepeat-line:nth-child(5){--shift:0px;  opacity:1}
.es-steprepeat-line:nth-child(6){--shift:6px;  opacity:.46}
.es-steprepeat-line:nth-child(7){--shift:12px; opacity:.32}
.es-steprepeat-line:nth-child(8){--shift:18px; opacity:.22}
.es-steprepeat-line:nth-child(9){--shift:24px; opacity:.14}
.es-wm-es,.es-wm-name{font-family:var(--disp);font-size:clamp(.78rem,1.8vw,1.35rem);
  letter-spacing:.015em;text-transform:uppercase}
.es-wm-es{font-weight:700}
.es-wm-name{font-weight:500}
.es-steprepeat-line.is-outline .es-wm-es,
.es-steprepeat-line.is-outline .es-wm-name{color:transparent;-webkit-text-stroke:1.2px var(--paper)}
.es-steprepeat-line.is-solid .es-wm-es,
.es-steprepeat-line.is-solid .es-wm-name{color:var(--paper)}

.es-steprepeat--inline{gap:.3rem}
.es-steprepeat--inline .es-steprepeat-line:nth-child(1){--shift:-14px;opacity:.3}
.es-steprepeat--inline .es-steprepeat-line:nth-child(2){--shift:0px;opacity:1}
.es-steprepeat--inline .es-steprepeat-line:nth-child(3){--shift:14px;opacity:.3}

/* --- Inline (mobile) project visual --- */
.inline-v{border:1px solid var(--line);background:var(--ink);
  position:relative;overflow:hidden;margin-bottom:1.6rem;display:flex;
  align-items:center;justify-content:center}
.inline-v::before{
  content:"";
  position:absolute;
  inset:-12%;
  z-index:0;
  background-image:var(--bg-image);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:blur(28px);
  transform:scale(1.08);
  opacity:.62;
}
.inline-v::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:rgba(10,14,13,.22);
}
.inline-v img{position:relative;z-index:1;width:100%;height:auto;max-height:42svh;object-fit:contain}
.inline-v .es-steprepeat{padding:1.1rem}
@media(min-width:900px){.inline-v{display:none}}

/* --- Section rail --- */
.rail{position:fixed;right:clamp(.9rem,2vw,1.6rem);top:50%;transform:translateY(-50%);
  z-index:900;display:flex;flex-direction:column;gap:.7rem}
.rail b{display:block;width:2px;height:24px;background:var(--paper);opacity:.16;
  border-radius:2px;transition:opacity .4s,background .4s,height .4s var(--ease)}
.rail b.on{opacity:1;background:var(--accent);height:38px}
@media(max-width:640px){.rail{display:none}}

/* --- Footer + back to top --- */
.site-footer{padding:2.5rem var(--pad);text-align:center;border-top:1px solid var(--line);
  color:var(--faint);font-size:.82rem;letter-spacing:.01em}

.back-to-top{position:fixed;right:clamp(1rem,3vw,1.75rem);bottom:clamp(1rem,3vw,1.75rem);
  z-index:910;width:46px;height:46px;display:flex;align-items:center;justify-content:center;
  background:var(--ink-2);border:1px solid var(--line);border-radius:999px;color:var(--paper);
  font-size:1.1rem;cursor:pointer;backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);opacity:0;visibility:hidden;transform:translateY(8px);
  transition:transform .28s var(--ease),border-color .22s var(--ease),
             opacity .28s ease,visibility .28s}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{border-color:var(--accent);transform:translateY(-3px)}

/* --- Focus states --- */
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* --- Print --- */
@media print{
  .site-header,.rail,.back-to-top,.ticker,.cue,.skip-link,.nav-toggle{display:none!important}
  body{background:#fff;color:#000}
  .work-visual{display:none}
  .item{min-height:auto;page-break-inside:avoid}
  a{color:#000;text-decoration:underline}
}

/* --- Multiple project links --- */
.lnk-row{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start}



/* ===========================================================
   SMOOTH SCROLL + LINK POLISH
   =========================================================== */

/* Links: underline draws left to right */
.lnk{position:relative;border-bottom-color:transparent!important}
.lnk::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line)}
.lnk::before{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:var(--accent);z-index:1;transition:width .5s var(--expo)}
.lnk:hover::before{width:100%}

/* Momentum scrolling drives window.scrollY directly, so position:sticky,
   IntersectionObserver and the native scrollbar all keep working.
   Native smooth-behavior would fight it, so it is disabled while active. */
html.has-smooth{scroll-behavior:auto}

@media (prefers-reduced-motion: reduce){
  .lnk::before{transition:none}
}

/* ===========================================================
   STACKED REVEAL
   The hero pins and recedes while the rest of the page rises
   over it. Driven by --heroP (0 at top, 1 one viewport down).
   =========================================================== */

.hero{
  position:sticky;
  top:0;
  min-height:100svh;
  z-index:0;
  transform-origin:50% 0%;
  transform:
    perspective(1400px)
    rotateX(calc(var(--heroP,0) * 4.5deg))
    scale(calc(1 - var(--heroP,0) * .08))
    translateY(calc(var(--heroP,0) * -2.5vh));
  opacity:calc(1 - var(--heroP,0) * .55);
  will-change:transform,opacity;
}

/* The rising sheet */
.stack{
  position:relative;
  z-index:1;
  background:var(--ink-2);
  border-top-left-radius:var(--stack-r);
  border-top-right-radius:var(--stack-r);
  box-shadow:0 -28px 70px rgba(0,0,0,.6);
  /* NO overflow here: it would break position:sticky on the
     pinned project panel. The leading edge is clipped on the
     first child instead. */
}
:root{--stack-r:clamp(14px,2.2vw,28px)}

/* Clip only the top element so the rounded edge reads cleanly.
   Sticky still works because .stack itself has no overflow. */
.stack > *:first-child{
  border-top-left-radius:var(--stack-r);
  border-top-right-radius:var(--stack-r);
}

/* Hairline catches the light along the leading edge */
.stack::before{
  content:"";
  position:absolute;
  top:0;left:8%;right:8%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(74,222,155,.45),transparent);
  z-index:2;
}


@media (prefers-reduced-motion: reduce){
  .hero{position:relative;transform:none;opacity:1}
  .stack{box-shadow:none}
}

/* --- Proof strip under the statement --- */
.exp{list-style:none;margin-top:clamp(2.2rem,5vw,3.4rem);max-width:40rem;
  border-top:1px solid var(--line)}
.exp li{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;
  padding:1rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.exp span{font-family:var(--disp);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent)}
.exp b{font-weight:500;font-size:.98rem;color:var(--paper);letter-spacing:-.01em}
@media(max-width:560px){
  .exp li{grid-template-columns:1fr;gap:.3rem}
}

/* ===========================================================
   PROJECT STILL
   A constrained preview frame. Capped so it supports the copy
   rather than competing with the pinned panel beside it.
   =========================================================== */
.shot{
  position:relative;
  margin:0 0 1.6rem;
  max-width:28rem;
}
.shot{
  overflow:hidden;
}
.shot::before{
  content:"";
  position:absolute;
  inset:-10%;
  z-index:0;
  background-image:var(--shot-bg, none);
  background-position:center;
  background-size:cover;
  filter:blur(24px);
  transform:scale(1.08);
  opacity:.45;
}
.shot img{
  position:relative;
  z-index:1;
  width:100%;
  height:auto;
  aspect-ratio:1800/896;
  object-fit:cover;
  display:block;
  border:1px solid var(--line);
  border-radius:3px;
  background:var(--ink);
}
.shot figcaption{
  position:absolute;
  z-index:5;
  top:.85rem;
  left:.85rem;
  right:.85rem;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.55rem;
  margin:0;
  pointer-events:none;
}
.shot-badge{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  padding:.46rem .85rem .46rem .68rem;
  border:1px solid var(--accent);
  background:var(--accent);
  border-radius:999px;
  font-family:var(--disp);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink);
  box-shadow:0 10px 28px rgba(0,0,0,.45);
}
.shot-badge::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--ink);
}
.shot-title{
  font-family:var(--disp);
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
  padding:.46rem .8rem;
  border-radius:999px;
  background:var(--paper);
  border:1px solid var(--paper);
  box-shadow:0 10px 28px rgba(0,0,0,.45);
}
@media(max-width:899px){
  .shot{max-width:none}
}


/* --- Full-bleed-safe art inside the pinned frame.
       contain so nothing is ever cropped, whatever the ratio. --- */
.frame-art{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--ink);
  padding:clamp(.9rem,2vw,1.6rem);
}
.frame-art img{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
  display:block;
}


/* ===========================================================
   SEPARATION
   Clearer breaks between projects and between sections,
   weighted more heavily on mobile where there is no
   sticky panel to signal where one project ends.
   =========================================================== */

/* Between projects */
.item{
  border-top:1px solid var(--line);
  position:relative;
}
.item:first-child{border-top:none}

@media(max-width:899px){
  .item{
    border-top:none;
    padding-top:clamp(2.5rem,8vw,3.5rem);
    margin-top:clamp(2.5rem,8vw,3.5rem);
  }
  .item:first-child{padding-top:0;margin-top:0}
  /* a short accent rule instead of a full-width hairline */
  .item:not(:first-child)::before{
    content:"";
    position:absolute;
    top:0;left:0;
    width:44px;height:2px;
    background:var(--accent);
    opacity:.75;
  }
}

/* Between major sections */
.statement,
.caps,
.contact{position:relative}

.caps::before,
.contact::before{
  content:"";
  position:absolute;
  top:0;
  left:var(--pad);right:var(--pad);
  height:1px;
  background:linear-gradient(90deg,transparent,var(--line) 12%,var(--line) 88%,transparent);
}

@media(max-width:899px){
  .caps,.contact{padding-top:clamp(3.5rem,10vw,5rem)}
  .caps::before,.contact::before{left:0;right:0}
}

/* Aesthetic Measures — show the complete artwork without cropping */
.shot[style*="aesthetic-measures"] img{
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  background:transparent;
}
