
:root{
  --bg:#050505; --fg:#ecebe5; --muted:#84837d; --line:rgba(236,235,229,.15);
  --pad:clamp(18px,2.8vw,44px); --mono:"Space Mono",monospace; --sans:"Inter",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);overflow-x:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
.mono{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase}

.grain{
  position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.045;
  background-image:
    radial-gradient(circle at 20% 20%,rgba(255,255,255,.8) 0 1px,transparent 1px),
    radial-gradient(circle at 80% 60%,rgba(255,255,255,.55) 0 1px,transparent 1px);
  background-size:5px 5px,7px 7px;mix-blend-mode:soft-light
}

.site-header{
  position:fixed;inset:0 0 auto 0;z-index:80;display:flex;justify-content:space-between;align-items:center;
  padding:18px var(--pad);mix-blend-mode:difference
}
.sys{font-family:var(--mono);font-size:10px;letter-spacing:.12em}
.menu-toggle{width:38px;height:38px;border:0;background:transparent;padding:0;display:grid;gap:6px;align-content:center;cursor:pointer}
.menu-toggle span{height:1px;background:#fff;display:block}
.menu{
  position:fixed;top:0;right:0;width:min(380px,100vw);height:100vh;background:rgba(5,5,5,.97);
  backdrop-filter:blur(18px);padding:100px var(--pad) 40px;transform:translateX(100%);
  transition:.4s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;gap:18px;font:300 clamp(28px,4vw,48px)/1 var(--sans)
}
.menu.open{transform:translateX(0)}

.hero{height:100svh;position:relative;overflow:hidden}
.hero-media{position:absolute;inset:0;transform:scale(1.015)}
.hero-media img{filter:grayscale(1) contrast(1.28) brightness(.46);object-position:center 46%}
.hero-shade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(0,0,0,.40) 0%,rgba(0,0,0,.06) 44%,rgba(0,0,0,.62) 100%),
    radial-gradient(circle at center,transparent 18%,rgba(0,0,0,.30) 78%)
}
.hero-topline{position:absolute;top:72px;left:var(--pad);right:var(--pad);display:flex;justify-content:space-between;color:#c2c0ba}
.hero-center{position:absolute;inset:0;display:grid;place-items:center}
.hero-symbol{
  width:clamp(78px,7vw,116px);height:auto;mix-blend-mode:screen;
  filter:contrast(1.45);opacity:.98
}
.hero-bottom{position:absolute;left:var(--pad);right:var(--pad);bottom:26px;display:flex;justify-content:space-between;align-items:end}
.hero-mark{color:#c2c0ba}.hero-enter{color:#fff}

.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap}
.ticker{
  display:inline-flex;align-items:center;gap:16px;padding:10px 0;min-width:max-content;
  font-family:var(--mono);font-size:9px;letter-spacing:.12em;animation:ticker 34s linear infinite
}
.ticker i{width:4px;height:4px;background:var(--fg);display:inline-block}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-48%)}}

.shell{padding:110px var(--pad)}
.section-head{display:flex;justify-content:space-between;color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:36px}

.threshold-grid{
  display:grid;grid-template-columns: .88fr 1.12fr;grid-template-rows:auto minmax(240px, 32vh);gap:18px;align-items:stretch
}
.threshold-copy{display:flex;flex-direction:column;justify-content:flex-start;padding:8px 4px 0 0}
.small-label{color:var(--muted);margin-bottom:18px}
.threshold-copy p{margin:0 0 10px;font-size:clamp(42px,6.4vw,108px);font-weight:300;line-height:.92;letter-spacing:-.055em}
.threshold-copy .muted{color:#7f7e79;font-size:clamp(22px,2.5vw,40px)}
.threshold-image{margin:0;overflow:hidden;background:#111}
.threshold-image img{filter:grayscale(1) contrast(1.06)}
.hero-threshold{grid-column:2;grid-row:1 / span 2;min-height:80vh}
.support{grid-column:1;grid-row:2;min-height:32vh}
.support img{filter:saturate(.55) contrast(1.05) brightness(.78)}

.events-intro{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}
.events-intro h2{margin:0;font-size:clamp(72px,12vw,180px);font-weight:300;line-height:.84;letter-spacing:-.07em}
.events-intro p{color:var(--muted);margin:0 0 12px}

.edition-grid.dense{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.edition-card{position:relative;aspect-ratio:4/5;overflow:hidden;background:#111}
.edition-card img{filter:grayscale(1) contrast(1.06);transition:transform .8s ease,filter .4s ease}
.edition-card:hover img{transform:scale(1.025);filter:grayscale(.12)}
.wide-card{grid-column:span 2;aspect-ratio:8/5}
.color-blue img{filter:saturate(.58) hue-rotate(2deg) contrast(1.08)}
.edition-meta{
  position:absolute;left:10px;right:10px;bottom:10px;display:flex;justify-content:space-between;
  background:rgba(0,0,0,.52);padding:6px 7px;font-size:9px
}

.process-grid{display:grid;grid-template-columns:1.1fr .9fr .9fr;gap:12px}
.process-image{margin:0;min-height:54vh;overflow:hidden;background:#111}
.process-image.wide{min-height:62vh}
.process-image img{filter:grayscale(.2) saturate(.62) contrast(1.06)}

.structures{
  position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.structures-bg{position:absolute;inset:0}
.structures-bg img{filter:grayscale(1) contrast(1.12) brightness(.40);object-position:center center}
.structures-overlay{
  position:absolute;inset:0;background:
    linear-gradient(180deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.18) 22%,rgba(0,0,0,.18) 72%,rgba(0,0,0,.70) 100%),
    radial-gradient(circle at center, rgba(255,255,255,.05) 0%, rgba(0,0,0,.22) 50%, rgba(0,0,0,.45) 100%)
}
.structures-copy{position:relative;z-index:2;text-align:center;padding:0 var(--pad)}
.structures-copy h2{margin:12px 0 10px;font-size:clamp(58px,9vw,132px);font-weight:300;line-height:.88;letter-spacing:-.06em}
.structures-copy p{color:#c7c6bf}

.archive{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden}
.archive-image{position:absolute;inset:0}
.archive-image img{filter:saturate(.52) contrast(1.08) brightness(.72)}
.archive:after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.2)}
.archive-copy{position:relative;z-index:2;text-align:center}
.archive-copy h2{margin:10px 0;font-size:clamp(76px,15vw,240px);line-height:.8;font-weight:300;letter-spacing:-.07em}
.small{color:#c7c6bf}

.contact{min-height:84vh;display:flex;flex-direction:column}
.contact-main{margin:auto 0;font-size:clamp(38px,6vw,90px);font-weight:300;line-height:1;letter-spacing:-.045em;display:flex;flex-direction:column;gap:8px}
.contact-bottom{border-top:1px solid var(--line);padding-top:16px;display:grid;grid-template-columns:1fr 1fr auto;align-items:end;color:var(--muted)}
.contact-bottom img{width:34px;height:auto;mix-blend-mode:screen}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .75s ease}
.reveal.in{opacity:1;transform:none}

@media(max-width:980px){
  .edition-grid.dense{grid-template-columns:repeat(3,1fr)}
  .wide-card{grid-column:span 2}
}
@media(max-width:920px){
  .threshold-grid{grid-template-columns:1fr;grid-template-rows:auto}
  .hero-threshold,.support{grid-column:auto;grid-row:auto;min-height:52vh}
  .edition-grid.dense,.process-grid{grid-template-columns:1fr}
  .wide-card{grid-column:auto;aspect-ratio:4/5}
  .events-intro{flex-direction:column;align-items:flex-start}
}
@media(max-width:820px){
  .contact-bottom{grid-template-columns:1fr auto;gap:10px}
  .contact-bottom span:nth-child(2){display:none}
  .hero-topline{flex-direction:column;gap:4px}
}


.threshold-grid-v2{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:24px;
  align-items:start;
}
.threshold-panorama{
  min-height:78vh;
  max-height:86vh;
}
.threshold-panorama img{
  object-fit:cover;
  object-position:center center;
  filter:grayscale(1) contrast(1.1) brightness(.95);
}

@media(max-width:920px){
  .threshold-grid-v2{
    grid-template-columns:1fr;
  }
  .threshold-panorama{
    min-height:58vh;
    max-height:none;
  }
}


/* ——— V14 / THRESHOLD ——— */
.threshold-full{
  padding:110px var(--pad);
}
.threshold-head{
  margin-bottom:22px;
}
.threshold-stage{
  position:relative;
  margin:0;
  width:100%;
  min-height:min(78vh,860px);
  overflow:hidden;
  background:#090909;
}
.threshold-stage > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  filter:grayscale(1) contrast(1.11) brightness(.92);
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
}
.threshold-stage:hover > img{
  transform:scale(1.012);
}
.threshold-stage-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.64) 0%,rgba(0,0,0,.22) 37%,rgba(0,0,0,.06) 68%,rgba(0,0,0,.20) 100%),
    linear-gradient(180deg,rgba(0,0,0,.14),transparent 45%,rgba(0,0,0,.34));
}
.threshold-stage-copy{
  position:absolute;
  left:clamp(22px,4vw,64px);
  bottom:clamp(28px,6vh,70px);
  z-index:2;
  max-width:min(760px,78vw);
}
.threshold-stage-copy .small-label{
  color:rgba(236,235,229,.62);
  margin-bottom:18px;
}
.threshold-stage-copy p{
  margin:0;
  font-size:clamp(44px,7vw,112px);
  font-weight:300;
  line-height:.9;
  letter-spacing:-.055em;
  text-shadow:0 2px 28px rgba(0,0,0,.45);
}
.threshold-stage-copy p.muted{
  margin-top:12px;
  font-size:clamp(18px,2.25vw,34px);
  line-height:1.05;
  letter-spacing:-.035em;
  color:rgba(236,235,229,.58);
}

/* ——— V14 / PROCESS-FORM CONTINUATION ——— */
.structures-continuation{
  width:100%;
  min-height:78vh;
  overflow:hidden;
  background:#050505;
  border-bottom:1px solid var(--line);
}
.structures-continuation img{
  width:100%;
  height:100%;
  min-height:78vh;
  object-fit:cover;
  object-position:center center;
  filter:grayscale(1) contrast(1.08) brightness(.68);
}

@media(max-width:920px){
  .threshold-full{
    padding:88px var(--pad);
  }
  .threshold-stage{
    min-height:66vh;
  }
  .threshold-stage-copy{
    max-width:88vw;
  }
  .structures-continuation,
  .structures-continuation img{
    min-height:56vh;
  }
}



/* V17 — visual continuation below PROCESS / FORM */
.structures-continuation{
  width:100%;
  min-height:78vh;
  overflow:hidden;
  background:#050505;
  border-bottom:1px solid var(--line);
  padding:0;
}
.structures-continuation img{
  display:block;
  width:100%;
  height:100%;
  min-height:78vh;
  object-fit:cover;
  object-position:center center;
  filter:grayscale(1) contrast(1.08) brightness(.68);
}
@media(max-width:920px){
  .structures-continuation,
  .structures-continuation img{
    min-height:56vh;
  }
}


/* V18 — monumental continuation with projection branding */
.structures-continuation{
  min-height:88vh;
}
.structures-continuation img{
  min-height:88vh;
  object-fit:cover;
  object-position:center 48%;
  filter:grayscale(1) contrast(1.06) brightness(.82);
}
@media(max-width:920px){
  .structures-continuation,
  .structures-continuation img{
    min-height:64vh;
  }
}


/* V19 — approved Super Manglar image */
.structures-continuation{
  min-height:90vh;
}
.structures-continuation img{
  min-height:90vh;
  object-fit:cover;
  object-position:center center;
  filter:contrast(1.03) brightness(.88);
}
@media(max-width:920px){
  .structures-continuation,
  .structures-continuation img{
    min-height:64vh;
  }
}


/* V20 — MANGLAR ECOSYSTEM / VNS + KIOTO */
.ecosystem{
  padding-top:120px;
  padding-bottom:120px;
}

.ecosystem-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.ecosystem-card{
  position:relative;
  min-height:64vh;
  overflow:hidden;
  background:#0b0b0b;
  border:1px solid rgba(236,235,229,.10);
  cursor:default;
  isolation:isolate;
  outline:none;
}

.ecosystem-media{
  position:absolute;
  inset:0;
  z-index:-3;
  overflow:hidden;
}

.ecosystem-media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.1) brightness(.42);
  transform:scale(1.015);
  transition:
    transform 1.1s cubic-bezier(.2,.75,.2,1),
    filter .75s ease;
}

.ecosystem-shade{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.25) 48%,rgba(0,0,0,.70) 100%),
    radial-gradient(circle at 50% 46%,transparent 10%,rgba(0,0,0,.24) 82%);
  transition:background .65s ease;
}

.ecosystem-card::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:1px;
  background:rgba(236,235,229,.76);
  transform:scaleX(.14);
  transform-origin:left center;
  transition:transform .75s cubic-bezier(.2,.75,.2,1);
}

.ecosystem-top,
.ecosystem-bottom{
  position:absolute;
  left:20px;
  right:20px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  z-index:2;
  color:rgba(236,235,229,.72);
}

.ecosystem-top{top:18px}
.ecosystem-bottom{bottom:18px}

.ecosystem-main{
  position:absolute;
  left:20px;
  bottom:62px;
  z-index:2;
}

.ecosystem-main h3{
  margin:0;
  font-size:clamp(58px,7.3vw,122px);
  font-weight:300;
  line-height:.78;
  letter-spacing:-.065em;
  transition:
    transform .75s cubic-bezier(.2,.75,.2,1),
    letter-spacing .75s cubic-bezier(.2,.75,.2,1);
}

.ecosystem-arrow{
  display:inline-block;
  font-size:16px;
  transform:translate(0,0);
  opacity:.55;
  transition:transform .55s ease,opacity .55s ease;
}

/* Hover/focus: image wakes up subtly, type shifts, baseline grows */
.ecosystem-card:hover .ecosystem-media img,
.ecosystem-card:focus-visible .ecosystem-media img{
  transform:scale(1.055);
  filter:grayscale(.18) contrast(1.08) brightness(.62);
}

.ecosystem-card:hover::after,
.ecosystem-card:focus-visible::after{
  transform:scaleX(1);
}

.ecosystem-card:hover .ecosystem-main h3,
.ecosystem-card:focus-visible .ecosystem-main h3{
  transform:translateY(-10px);
  letter-spacing:-.045em;
}

.ecosystem-card:hover .ecosystem-arrow,
.ecosystem-card:focus-visible .ecosystem-arrow{
  transform:translate(6px,-6px);
  opacity:1;
}

@media(max-width:920px){
  .ecosystem{
    padding-top:88px;
    padding-bottom:88px;
  }
  .ecosystem-grid{
    grid-template-columns:1fr;
  }
  .ecosystem-card{
    min-height:56vh;
  }
}


/* =========================================================
   V21 — FINE PASS
   rhythm / hierarchy / restrained interaction
   ========================================================= */

:root{
  --section-y:clamp(92px,9vw,148px);
  --ease:cubic-bezier(.2,.75,.2,1);
}

/* overall rhythm */
.shell{padding-top:var(--section-y);padding-bottom:var(--section-y)}
.section-head{
  padding-bottom:11px;
  margin-bottom:clamp(28px,3.2vw,46px);
  letter-spacing:.14em;
}
.section-head span:last-child{opacity:.68}
.mono{font-size:9px;letter-spacing:.14em}
body{letter-spacing:-.008em}

/* fixed navigation feels more editorial and less UI-heavy */
.site-header{padding-top:20px;padding-bottom:20px}
.menu a{
  position:relative;
  width:max-content;
  transition:opacity .35s ease,transform .45s var(--ease);
}
.menu a::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-5px;
  height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;
  transition:transform .45s var(--ease);
}
.menu a:hover{transform:translateX(8px)}
.menu a:hover::after{transform:scaleX(1)}

/* HERO — maintain the monument, make the interface quieter */
.hero-topline,.hero-bottom{opacity:.86}
.hero-symbol{
  width:clamp(88px,7.8vw,132px);
  transition:filter .7s ease,opacity .7s ease;
}
.hero:hover .hero-symbol{filter:contrast(1.5) brightness(1.08)}
.hero-enter{
  position:relative;
  padding-bottom:4px;
}
.hero-enter::after{
  content:"";
  position:absolute;
  left:0;bottom:0;width:100%;height:1px;
  background:currentColor;
  transform:scaleX(.25);
  transform-origin:left;
  animation:enterline 2.6s ease-in-out infinite alternate;
}
@keyframes enterline{to{transform:scaleX(1)}}

/* THRESHOLD — same visual, slightly more alive */
.threshold-stage-copy{
  transition:transform .8s var(--ease);
}
.threshold-stage:hover .threshold-stage-copy{
  transform:translateY(-10px);
}
.threshold-stage > img{
  transition:transform 1.15s var(--ease),filter .8s ease;
}
.threshold-stage:hover > img{
  transform:scale(1.025);
  filter:grayscale(.78) contrast(1.1) brightness(.96);
}

/* EVENTS — ecosystem-style behavior without making every card identical */
.edition-grid.dense{
  gap:12px;
}
.edition-card{
  border:1px solid rgba(236,235,229,.08);
  isolation:isolate;
}
.edition-card::after{
  content:"";
  position:absolute;
  left:0;bottom:0;width:100%;height:1px;
  background:rgba(236,235,229,.72);
  transform:scaleX(.10);
  transform-origin:left;
  transition:transform .65s var(--ease);
  z-index:4;
}
.edition-card img{
  transform:scale(1.015);
  transition:transform 1s var(--ease),filter .72s ease,opacity .72s ease;
}
.edition-card:hover img,
.edition-card:focus-visible img{
  transform:scale(1.055);
  filter:grayscale(.18) contrast(1.08) brightness(.92);
}
.edition-card:hover::after,
.edition-card:focus-visible::after{
  transform:scaleX(1);
}
.edition-meta{
  left:11px;right:11px;bottom:11px;
  padding:7px 8px;
  background:rgba(0,0,0,.44);
  backdrop-filter:blur(6px);
  transform:translateY(3px);
  transition:transform .55s var(--ease),background .45s ease;
}
.edition-card:hover .edition-meta,
.edition-card:focus-visible .edition-meta{
  transform:translateY(-3px);
  background:rgba(0,0,0,.62);
}
.events-intro h2{
  font-size:clamp(68px,10.8vw,164px);
  line-height:.82;
}
.events-intro p{max-width:360px;line-height:1.6}

/* PROCESS — labels appear as part of the image rather than extra copy */
.process-grid{gap:12px}
.process-image{
  position:relative;
  border:1px solid rgba(236,235,229,.08);
  isolation:isolate;
}
.process-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.58) 100%);
  opacity:.42;
  transition:opacity .65s ease;
  pointer-events:none;
}
.process-image img{
  transform:scale(1.01);
  transition:transform 1.05s var(--ease),filter .75s ease;
}
.process-image:hover img{
  transform:scale(1.05);
  filter:grayscale(.02) saturate(.78) contrast(1.07);
}
.process-image:hover::after{opacity:.7}
.process-caption{
  position:absolute;
  z-index:3;
  left:15px;right:15px;bottom:14px;
  display:flex;justify-content:space-between;
  color:rgba(236,235,229,.82);
  transform:translateY(5px);
  opacity:.72;
  transition:transform .55s var(--ease),opacity .55s ease;
}
.process-image:hover .process-caption{
  transform:none;
  opacity:1;
}

/* ECOSYSTEM — fine tune the interaction the user liked */
.ecosystem-grid{gap:14px}
.ecosystem-card{
  min-height:66vh;
}
.ecosystem-main h3{
  text-wrap:balance;
}
.ecosystem-card:hover .ecosystem-shade,
.ecosystem-card:focus-visible .ecosystem-shade{
  background:
    linear-gradient(180deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.18) 48%,rgba(0,0,0,.66) 100%),
    radial-gradient(circle at 50% 46%,transparent 16%,rgba(0,0,0,.18) 84%);
}

/* STRUCTURES — subtle depth, not a gimmick */
.structures{cursor:crosshair}
.structures-bg{
  transform:scale(1.025) translate3d(var(--mx,0),var(--my,0),0);
  transition:transform .22s ease-out;
}
.structures-copy h2{
  transition:letter-spacing .75s var(--ease),transform .75s var(--ease);
}
.structures:hover .structures-copy h2{
  letter-spacing:-.045em;
  transform:translateY(-6px);
}
.structures:hover .structures-overlay{
  background:
    linear-gradient(180deg,rgba(0,0,0,.50) 0%,rgba(0,0,0,.11) 24%,rgba(0,0,0,.14) 70%,rgba(0,0,0,.66) 100%),
    radial-gradient(circle at center,rgba(255,255,255,.06),rgba(0,0,0,.38) 84%);
}

/* approved monumental image — tiny motion only */
.structures-continuation{
  position:relative;
}
.structures-continuation img{
  transform:scale(1.005);
  transition:transform 1.4s var(--ease),filter .9s ease;
}
.structures-continuation:hover img{
  transform:scale(1.022);
  filter:contrast(1.045) brightness(.91);
}

/* MEMORIES — make the archive feel like a destination */
.archive{cursor:pointer}
.archive-image{
  transform:scale(1.02) translate3d(var(--mx,0),var(--my,0),0);
  transition:transform .25s ease-out;
}
.archive-image img{
  transition:filter 1s ease,transform 1.25s var(--ease);
}
.archive:hover .archive-image img{
  filter:saturate(.72) contrast(1.1) brightness(.78);
  transform:scale(1.025);
}
.archive-copy h2{
  transition:letter-spacing .8s var(--ease),transform .8s var(--ease);
}
.archive:hover .archive-copy h2{
  letter-spacing:-.045em;
  transform:translateY(-8px);
}
.archive-foot{
  display:flex;
  justify-content:center;
  gap:16px;
  align-items:center;
}
.archive-arrow{
  display:inline-block;
  opacity:.55;
  transition:transform .55s var(--ease),opacity .55s ease;
}
.archive:hover .archive-arrow{
  transform:translate(6px,-6px);
  opacity:1;
}

/* CONTACT — quieter landing */
.contact-main a{
  width:max-content;
  position:relative;
  opacity:.88;
  transition:opacity .35s ease,transform .55s var(--ease);
}
.contact-main a::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-5px;height:1px;
  background:currentColor;
  transform:scaleX(.12);transform-origin:left;
  transition:transform .55s var(--ease);
}
.contact-main a:hover{
  opacity:1;
  transform:translateX(8px);
}
.contact-main a:hover::after{transform:scaleX(1)}

/* reveal is slightly slower / more architectural */
.reveal{
  transform:translateY(30px);
  transition:opacity .9s ease,transform .9s var(--ease);
}

/* responsive refinements: preserve event density */
@media(max-width:1100px){
  .edition-grid.dense{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:920px){
  .edition-grid.dense{grid-template-columns:repeat(2,1fr)}
  .wide-card{grid-column:span 2;aspect-ratio:16/9}
  .process-grid{grid-template-columns:1fr 1fr}
  .process-image.wide{grid-column:span 2;min-height:58vh}
  .process-image:not(.wide){min-height:48vh}
}
@media(max-width:620px){
  .edition-grid.dense{grid-template-columns:repeat(2,1fr);gap:8px}
  .edition-card{aspect-ratio:3/4}
  .wide-card{grid-column:span 2;aspect-ratio:16/10}
  .edition-meta{font-size:8px;left:7px;right:7px;bottom:7px}
  .process-grid{grid-template-columns:1fr}
  .process-image.wide{grid-column:auto}
  .process-image,.process-image.wide{min-height:54vh}
  .ecosystem-card{min-height:58vh}
  .hero-symbol{width:clamp(86px,24vw,116px)}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important;
  }
  .reveal{opacity:1!important;transform:none!important}
}


/* =========================================================
   V22 — MOBILE REFINEMENT
   ========================================================= */

@media(max-width:820px){

  :root{
    --pad:18px;
    --section-y:84px;
  }

  body{
    overflow-x:hidden;
  }

  /* HEADER / MENU */
  .site-header{
    padding:
      calc(14px + env(safe-area-inset-top))
      var(--pad)
      14px;
  }

  .sys{
    font-size:8px;
    letter-spacing:.11em;
    max-width:72vw;
  }

  .menu-toggle{
    width:44px;
    height:44px;
    margin-right:-8px;
  }

  .menu{
    width:100vw;
    padding:
      calc(88px + env(safe-area-inset-top))
      var(--pad)
      calc(32px + env(safe-area-inset-bottom));
    gap:14px;
    font-size:clamp(34px,11vw,56px);
  }

  /* HERO */
  .hero{
    min-height:92svh;
    height:92svh;
  }

  .hero-media img{
    object-position:center 45%;
    filter:grayscale(1) contrast(1.25) brightness(.50);
  }

  .hero-topline{
    top:calc(68px + env(safe-area-inset-top));
    left:var(--pad);
    right:var(--pad);
    gap:5px;
    font-size:8px;
    line-height:1.45;
  }

  .hero-topline span:last-child{
    opacity:.58;
  }

  .hero-symbol{
    width:clamp(92px,28vw,124px);
  }

  .hero-bottom{
    left:var(--pad);
    right:var(--pad);
    bottom:calc(18px + env(safe-area-inset-bottom));
    align-items:flex-end;
  }

  .hero-mark,
  .hero-enter{
    font-size:8px;
  }

  /* TICKER */
  .ticker{
    font-size:8px;
    gap:12px;
    padding:9px 0;
    animation-duration:28s;
  }

  /* SECTION HEADS */
  .section-head{
    margin-bottom:24px;
    padding-bottom:10px;
    font-size:8px;
    gap:16px;
  }

  .section-head span:last-child{
    text-align:right;
  }

  /* THRESHOLD */
  .threshold-full{
    padding:84px var(--pad);
  }

  .threshold-stage{
    min-height:68svh;
  }

  .threshold-stage > img{
    object-position:center center;
  }

  .threshold-stage-shade{
    background:
      linear-gradient(180deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.12) 42%,rgba(0,0,0,.76) 100%),
      linear-gradient(90deg,rgba(0,0,0,.26),transparent 60%);
  }

  .threshold-stage-copy{
    left:18px;
    right:18px;
    bottom:24px;
    max-width:none;
  }

  .threshold-stage-copy .small-label{
    margin-bottom:12px;
    font-size:8px;
  }

  .threshold-stage-copy p{
    font-size:clamp(42px,13vw,68px);
    line-height:.88;
    letter-spacing:-.06em;
  }

  .threshold-stage-copy p.muted{
    margin-top:10px;
    max-width:85%;
    font-size:clamp(16px,4.8vw,22px);
    line-height:1.08;
  }

  /* EVENTS — keep density, improve readability */
  .events-intro{
    margin-bottom:20px;
    gap:12px;
  }

  .events-intro h2{
    font-size:clamp(62px,19vw,100px);
    line-height:.82;
  }

  .events-intro p{
    font-size:8px;
    line-height:1.5;
    max-width:250px;
  }

  .edition-grid.dense{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }

  .edition-card{
    aspect-ratio:3/4;
  }

  .wide-card{
    grid-column:span 2;
    aspect-ratio:16/10;
  }

  .edition-meta{
    left:7px;
    right:7px;
    bottom:7px;
    padding:6px 6px;
    gap:6px;
    font-size:7px;
    backdrop-filter:blur(4px);
  }

  .edition-meta span:last-child{
    text-align:right;
    max-width:70%;
  }

  /* PROCESS */
  .process-grid{
    grid-template-columns:1fr;
    gap:9px;
  }

  .process-image,
  .process-image.wide{
    grid-column:auto;
    min-height:0;
    aspect-ratio:4/5;
  }

  .process-image.wide{
    aspect-ratio:5/4;
  }

  .process-caption{
    left:11px;
    right:11px;
    bottom:10px;
    font-size:8px;
  }

  /* ECOSYSTEM */
  .ecosystem{
    padding-top:88px;
    padding-bottom:88px;
  }

  .ecosystem-grid{
    grid-template-columns:1fr;
    gap:10px;
  }

  .ecosystem-card{
    min-height:62svh;
    border-color:rgba(236,235,229,.12);
  }

  .ecosystem-top,
  .ecosystem-bottom{
    left:14px;
    right:14px;
  }

  .ecosystem-top{top:13px}
  .ecosystem-bottom{bottom:13px}

  .ecosystem-main{
    left:14px;
    bottom:55px;
  }

  .ecosystem-main h3{
    font-size:clamp(58px,18vw,96px);
    line-height:.80;
  }

  /* touch / scroll state mirrors desktop hover */
  .ecosystem-card.mobile-active .ecosystem-media img{
    transform:scale(1.05);
    filter:grayscale(.22) contrast(1.08) brightness(.60);
  }

  .ecosystem-card.mobile-active::after{
    transform:scaleX(1);
  }

  .ecosystem-card.mobile-active .ecosystem-main h3{
    transform:translateY(-8px);
    letter-spacing:-.045em;
  }

  .ecosystem-card.mobile-active .ecosystem-arrow{
    transform:translate(5px,-5px);
    opacity:1;
  }

  .ecosystem-card.mobile-active .ecosystem-shade{
    background:
      linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.18) 48%,rgba(0,0,0,.66) 100%),
      radial-gradient(circle at 50% 46%,transparent 16%,rgba(0,0,0,.18) 84%);
  }

  /* PROCESS / FORM */
  .structures{
    min-height:76svh;
  }

  .structures-bg img{
    object-position:center center;
  }

  .structures-copy{
    padding:0 20px;
  }

  .structures-copy h2{
    font-size:clamp(54px,17vw,92px);
    line-height:.84;
  }

  .structures-copy p{
    font-size:8px;
  }

  /* “Super Manglar” internal image — better vertical crop */
  .structures-continuation{
    min-height:0;
    height:auto;
  }

  .structures-continuation img{
    min-height:0;
    height:auto;
    aspect-ratio:4/5;
    object-fit:cover;
    object-position:center center;
    filter:contrast(1.03) brightness(.90);
  }

  /* MEMORIES */
  .archive{
    min-height:74svh;
  }

  .archive-image img{
    object-position:center center;
  }

  .archive-copy{
    width:100%;
    padding:0 18px;
  }

  .archive-copy h2{
    font-size:clamp(68px,22vw,112px);
    line-height:.82;
  }

  .archive-foot{
    gap:12px;
    font-size:8px;
  }

  /* CONTACT */
  .contact{
    min-height:72svh;
    padding-bottom:
      calc(48px + env(safe-area-inset-bottom));
  }

  .contact-main{
    margin:auto 0 72px;
    gap:14px;
  }

  .contact-main a{
    width:100%;
    max-width:100%;
    overflow-wrap:anywhere;
    font-size:clamp(34px,10.5vw,58px);
    line-height:.92;
  }

  .contact-bottom{
    grid-template-columns:1fr auto;
    gap:14px;
    font-size:8px;
  }

  .contact-bottom img{
    width:30px;
  }

  /* touch target + no accidental hover persistence */
  a,button,[tabindex]{
    -webkit-tap-highlight-color:transparent;
  }

  .ecosystem-card{
    touch-action:manipulation;
  }
}

/* extra-small phones */
@media(max-width:390px){

  :root{
    --pad:14px;
  }

  .hero-topline,
  .hero-bottom{
    left:14px;
    right:14px;
  }

  .threshold-full,
  .shell{
    padding-left:14px;
    padding-right:14px;
  }

  .events-intro h2{
    font-size:58px;
  }

  .edition-meta{
    font-size:6.5px;
  }

  .ecosystem-card{
    min-height:58svh;
  }

  .ecosystem-main h3{
    font-size:56px;
  }

  .structures-copy h2{
    font-size:50px;
  }

  .archive-copy h2{
    font-size:64px;
  }

  .contact-main a{
    font-size:32px;
  }
}


/* V23 — transparent Venus mark for reliable mobile rendering */
.hero-symbol,
.contact-bottom img{
  background: transparent !important;
}

.hero-symbol{
  object-fit: contain;
}

@media(max-width:820px){
  .hero-symbol{
    width:clamp(88px,27vw,120px);
  }
}


/* V24 — VNS brand logo */
.ecosystem-main-logo{
  width:min(72%,520px);
}

.vns-brand-logo{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 8px 28px rgba(0,0,0,.28));
  transform:translateY(0);
  transition:
    transform .75s cubic-bezier(.2,.75,.2,1),
    opacity .55s ease;
  opacity:.94;
}

.ecosystem-card:hover .vns-brand-logo,
.ecosystem-card:focus-visible .vns-brand-logo,
.ecosystem-card.mobile-active .vns-brand-logo{
  transform:translateY(-9px) scale(1.015);
  opacity:1;
}

@media(max-width:820px){
  .ecosystem-main-logo{
    width:min(78%,430px);
  }
}


/* =========================================================
   V25 — FILM / DOCUMENT
   ========================================================= */

.film{
  padding-top:var(--section-y);
  padding-bottom:var(--section-y);
}

.film-frame{
  position:relative;
  min-height:min(78vh,860px);
  overflow:hidden;
  background:#080808;
  border:1px solid rgba(236,235,229,.10);
  isolation:isolate;
  cursor:pointer;
  outline:none;
}

.film-poster{
  position:absolute;
  inset:0;
  z-index:-3;
  overflow:hidden;
}

.film-poster img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  filter:grayscale(1) contrast(1.08) brightness(.56);
  transform:scale(1.01);
  transition:
    transform 1.2s cubic-bezier(.2,.75,.2,1),
    filter .8s ease;
}

.film-shade{
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(180deg,rgba(0,0,0,.16),rgba(0,0,0,.08) 48%,rgba(0,0,0,.62)),
    radial-gradient(circle at center,transparent 12%,rgba(0,0,0,.26) 82%);
  transition:background .7s ease;
}

.film-frame::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:100%;
  height:1px;
  background:rgba(236,235,229,.78);
  transform:scaleX(.12);
  transform-origin:left center;
  transition:transform .72s cubic-bezier(.2,.75,.2,1);
  z-index:5;
}

.film-top,
.film-bottom{
  position:absolute;
  left:18px;
  right:18px;
  z-index:3;
  display:flex;
  justify-content:space-between;
  align-items:center;
  color:rgba(236,235,229,.72);
}

.film-top{top:16px}
.film-bottom{bottom:16px}

.film-center{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  z-index:3;
}

.film-play{
  width:88px;
  height:88px;
  border:1px solid rgba(236,235,229,.56);
  border-radius:50%;
  background:rgba(0,0,0,.18);
  color:var(--fg);
  display:grid;
  place-items:center;
  cursor:pointer;
  backdrop-filter:blur(5px);
  transition:
    transform .65s cubic-bezier(.2,.75,.2,1),
    background .45s ease,
    border-color .45s ease;
}

.film-play-icon{
  font-size:17px;
  line-height:1;
  margin-left:4px;
}

.film-arrow{
  display:inline-block;
  opacity:.55;
  transition:transform .55s ease,opacity .55s ease;
}

.film-frame:hover .film-poster img,
.film-frame:focus-visible .film-poster img{
  transform:scale(1.045);
  filter:grayscale(.18) contrast(1.08) brightness(.72);
}

.film-frame:hover::after,
.film-frame:focus-visible::after{
  transform:scaleX(1);
}

.film-frame:hover .film-play,
.film-frame:focus-visible .film-play{
  transform:scale(1.08);
  background:rgba(0,0,0,.32);
  border-color:rgba(236,235,229,.88);
}

.film-frame:hover .film-arrow,
.film-frame:focus-visible .film-arrow{
  transform:translate(6px,-6px);
  opacity:1;
}

.film-frame.is-playing .film-poster,
.film-frame.is-playing .film-shade,
.film-frame.is-playing .film-top,
.film-frame.is-playing .film-center,
.film-frame.is-playing .film-bottom{
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease;
}

.film-frame iframe{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  z-index:6;
  background:#000;
}

@media(max-width:820px){
  .film-frame{
    min-height:0;
    aspect-ratio:16/10;
  }

  .film-top,
  .film-bottom{
    left:12px;
    right:12px;
    font-size:8px;
  }

  .film-top{top:11px}
  .film-bottom{bottom:11px}

  .film-play{
    width:68px;
    height:68px;
  }

  .film-play-icon{
    font-size:14px;
  }

  .film-poster img{
    object-position:center center;
  }

  .film-frame.mobile-active .film-poster img{
    transform:scale(1.04);
    filter:grayscale(.22) contrast(1.08) brightness(.70);
  }

  .film-frame.mobile-active::after{
    transform:scaleX(1);
  }

  .film-frame.mobile-active .film-play{
    transform:scale(1.06);
    border-color:rgba(236,235,229,.82);
  }
}
\n\n/* =========================================================\n   V26 — LOCAL FILM LOOP / FIRST 29 SECONDS\n   ========================================================= */\n.film-loop{\n  position:relative;\n  width:100%;\n  aspect-ratio:16/9;\n  overflow:hidden;\n  background:#080808;\n  border:1px solid rgba(236,235,229,.10);\n  isolation:isolate;\n}\n\n.film-video{\n  position:absolute;\n  inset:0;\n  width:100%;\n  height:100%;\n  object-fit:cover;\n  object-position:center center;\n  filter:grayscale(.08) contrast(1.04) brightness(.82);\n  transform:scale(1.006);\n  transition:transform 1.3s cubic-bezier(.2,.75,.2,1),filter .8s ease;\n}\n\n.film-loop-shade{\n  position:absolute;\n  inset:0;\n  background:\n    linear-gradient(180deg,rgba(0,0,0,.22) 0%,transparent 38%,rgba(0,0,0,.48) 100%),\n    radial-gradient(circle at center,transparent 24%,rgba(0,0,0,.16) 100%);\n  pointer-events:none;\n}\n\n.film-loop::after{\n  content:"";\n  position:absolute;\n  left:0;bottom:0;\n  width:100%;height:1px;\n  background:rgba(236,235,229,.78);\n  transform:scaleX(.14);\n  transform-origin:left;\n  transition:transform .7s cubic-bezier(.2,.75,.2,1);\n  pointer-events:none;\n}\n\n.film-loop-top{\n  position:absolute;\n  left:18px;right:18px;top:16px;\n  display:flex;justify-content:space-between;align-items:center;\n  color:rgba(236,235,229,.74);\n  z-index:2;\n  pointer-events:none;\n}\n\n.film-loop-link{\n  position:absolute;\n  left:18px;right:18px;bottom:16px;\n  z-index:3;\n  display:flex;justify-content:space-between;align-items:center;\n  color:rgba(236,235,229,.86);\n  text-decoration:none;\n}\n\n.film-loop-arrow{\n  display:inline-block;\n  opacity:.55;\n  transition:transform .5s ease,opacity .5s ease;\n}\n\n.film-loop:hover .film-video{\n  transform:scale(1.02);\n  filter:grayscale(0) contrast(1.04) brightness(.88);\n}\n.film-loop:hover::after{transform:scaleX(1)}\n.film-loop:hover .film-loop-arrow{transform:translate(6px,-6px);opacity:1}\n\n@media(max-width:820px){\n  .film-loop{\n    aspect-ratio:16/10;\n  }\n  .film-loop-top,\n  .film-loop-link{\n    left:12px;right:12px;\n    font-size:8px;\n  }\n  .film-loop-top{top:11px}\n  .film-loop-link{bottom:11px}\n  .film-video{\n    filter:grayscale(.03) contrast(1.03) brightness(.84);\n  }\n}\n

/* =========================================================
   V27 — HERO VIDEO
   ========================================================= */

.hero.hero-video{
  background:#000;
}

.hero-media img,
.hero-media video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}

.hero-video-el{
  object-position:center center;
  filter:grayscale(1) contrast(1.22) brightness(.40);
  transform:scale(1.28);
}

.hero.hero-video .hero-shade{
  background:
    linear-gradient(180deg,rgba(0,0,0,.50) 0%,rgba(0,0,0,.16) 38%,rgba(0,0,0,.68) 100%),
    radial-gradient(circle at center,transparent 12%,rgba(0,0,0,.28) 78%);
}

.hero.hero-video .hero-symbol{
  width:clamp(96px,8.8vw,148px);
  filter:contrast(1.55) brightness(1.05);
  opacity:1;
  mix-blend-mode:screen;
}

.hero.hero-video .hero-topline,
.hero.hero-video .hero-bottom{
  opacity:.92;
}

@media(max-width:820px){
  .hero-video-el{
    transform:scale(1.42);
    object-position:center center;
    filter:grayscale(1) contrast(1.18) brightness(.42);
  }

  .hero.hero-video .hero-symbol{
    width:clamp(98px,29vw,132px);
  }

  .hero.hero-video .hero-shade{
    background:
      linear-gradient(180deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.14) 34%,rgba(0,0,0,.72) 100%),
      radial-gradient(circle at center,transparent 18%,rgba(0,0,0,.24) 82%);
  }
}


/* =========================================================
   V28 — HOSTING-SAFE HERO VIDEO
   ========================================================= */

.hero.hero-video{
  position:relative;
  width:100%;
  height:100svh;
  min-height:620px;
  overflow:hidden;
  background:#000;
}

.hero.hero-video .hero-media{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  overflow:hidden !important;
  transform:none;
  z-index:0;
}

.hero.hero-video .hero-video-el{
  position:absolute !important;
  top:50% !important;
  left:50% !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  transform:translate(-50%,-50%) scale(1.04) !important;
  object-fit:cover !important;
  object-position:center center !important;
  display:block !important;
  border:0 !important;
  max-width:none !important;
  filter:grayscale(1) contrast(1.22) brightness(.40);
}

.hero.hero-video .hero-shade{
  z-index:1;
}

.hero.hero-video .hero-topline,
.hero.hero-video .hero-center,
.hero.hero-video .hero-bottom{
  z-index:2;
}

@media(max-width:820px){
  .hero.hero-video{
    height:92svh;
    min-height:560px;
  }

  .hero.hero-video .hero-video-el{
    width:100% !important;
    height:100% !important;
    transform:translate(-50%,-50%) scale(1.08) !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
}


/* =========================================================
   V29 — REVEAL FAIL-SAFE FOR HOSTING
   ========================================================= */

/* Reveal elements should never stay invisible because of a JS/cache error */
@media (scripting: none){
  .reveal{
    opacity:1 !important;
    transform:none !important;
  }
}

/* Keep transition but make the initial displacement smaller */
.reveal{
  transform:translateY(22px);
}
.reveal.in{
  opacity:1;
  transform:none;
}


/* =========================================================
   V30 — MOBILE MEMORIES + THRESHOLD CLEANUP
   ========================================================= */

@media(max-width:820px){
  .archive{
    min-height:100svh !important;
    height:100svh;
    width:100%;
    overflow:hidden;
  }

  .archive-image{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
  }

  .archive-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
  }

  .archive-copy{
    width:100%;
    max-width:100%;
    padding:0 14px;
    box-sizing:border-box;
  }

  .archive-copy h2{
    width:100%;
    max-width:100%;
    margin:8px auto;
    font-size:clamp(48px,18vw,82px);
    line-height:.84;
    letter-spacing:-.055em;
    white-space:nowrap;
    text-align:center;
  }

  .archive-foot{
    justify-content:center;
  }

  .threshold-stage-copy p{
    margin-bottom:0;
  }
}

@media(max-width:390px){
  .archive-copy h2{
    font-size:clamp(44px,17.5vw,68px);
  }
}


/* V31 — combined hero film + slightly smaller logo */
.hero.hero-video .hero-symbol{
  width:clamp(84px,7.2vw,128px) !important;
}
@media(max-width:820px){
  .hero.hero-video .hero-symbol{
    width:clamp(86px,24vw,118px) !important;
  }
}


/* =========================================================
   V33 — LANGUAGE / MANIFESTO / INTERACTION PASS
   ========================================================= */

/* Header language switch */
.header-actions{
  display:flex;
  align-items:center;
  gap:14px;
}
.lang-switch{
  display:flex;
  align-items:center;
  gap:6px;
  color:rgba(236,235,229,.52);
}
.lang-option{
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  padding:5px 1px;
  margin:0;
  font:inherit;
  letter-spacing:inherit;
  cursor:pointer;
  transition:color .3s ease,opacity .3s ease;
}
.lang-option:hover,
.lang-option.active{
  color:var(--fg);
}
.lang-option:not(.active){opacity:.55}

/* Manifesto — V40: editorial reading system */
.manifesto{
  border-top:1px solid var(--line);
}
.manifesto-layout{
  display:grid;
  grid-template-columns:minmax(250px,.68fr) minmax(0,1.32fr);
  gap:clamp(48px,8vw,138px);
  align-items:start;
}
.manifesto-aside{
  position:sticky;
  top:120px;
}
.manifesto-kicker{
  color:var(--muted);
  margin-bottom:18px;
}
.manifesto-aside h2{
  margin:0;
  font-size:clamp(54px,7vw,116px);
  font-weight:300;
  line-height:.82;
  letter-spacing:-.065em;
}
.manifesto-body{
  counter-reset:manifesto-item;
  display:flex;
  flex-direction:column;
  gap:0;
  max-width:820px;
}
.manifesto-body p{
  counter-increment:manifesto-item;
  position:relative;
  margin:0;
  padding:clamp(28px,3.2vw,46px) 0 clamp(30px,3.5vw,50px) clamp(48px,4.7vw,70px);
  max-width:780px;
  color:#aaa9a3;
  font-size:clamp(18px,1.55vw,26px);
  font-weight:300;
  line-height:1.42;
  letter-spacing:-.018em;
  border-top:1px solid rgba(236,235,229,.11);
  text-wrap:pretty;
}
.manifesto-body p:first-child{
  border-top:0;
  padding-top:4px;
}
.manifesto-body p::before{
  content:"0" counter(manifesto-item);
  position:absolute;
  left:0;
  top:clamp(32px,3.4vw,50px);
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:.12em;
  color:#5f5e59;
}
.manifesto-body p:first-child::before{top:9px}
.manifesto-body .manifesto-lead{
  color:#d7d6d0;
  font-size:clamp(22px,2vw,32px);
  line-height:1.32;
  letter-spacing:-.027em;
  max-width:800px;
}
.manifesto-body strong{
  color:var(--fg);
  font-weight:600;
}
.manifesto-serif{
  font-family:"Cormorant Garamond",serif;
  font-size:1.22em;
  font-weight:600;
  font-style:italic;
  line-height:.88;
  letter-spacing:-.025em;
  color:#f4f2ea;
  white-space:normal;
}
.manifesto-mono{
  display:inline-block;
  position:relative;
  top:-.06em;
  margin:0 .08em;
  font-family:var(--mono);
  font-size:.48em;
  line-height:1;
  letter-spacing:.1em;
  color:#d8d7d1;
  vertical-align:middle;
  white-space:nowrap;
}

.collab-panel{
  margin-top:clamp(80px,10vw,150px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:clamp(28px,4vw,54px) 0;
  position:relative;
}
.collab-panel::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:100%;
  height:1px;
  background:rgba(236,235,229,.82);
  transform:scaleX(.12);
  transform-origin:left;
  transition:transform .8s var(--ease);
}
.collab-panel:hover::after{transform:scaleX(1)}
.collab-grid{
  display:grid;
  grid-template-columns:.72fr 1.28fr;
  gap:clamp(34px,7vw,120px);
}
.collab-kicker{
  color:var(--muted);
  padding-top:8px;
}
.collab-copy p{
  margin:0 0 clamp(34px,5vw,64px);
  max-width:900px;
  font-size:clamp(28px,3.4vw,54px);
  font-weight:300;
  line-height:1.06;
  letter-spacing:-.048em;
}
.collab-cta{
  width:max-content;
  display:flex;
  gap:18px;
  align-items:center;
  font-size:clamp(34px,5vw,76px);
  font-weight:300;
  line-height:.9;
  letter-spacing:-.05em;
  transition:transform .6s var(--ease);
}
.collab-cta span:last-child{
  font-size:.55em;
  opacity:.55;
  transition:transform .55s var(--ease),opacity .55s ease;
}
.collab-cta:hover{transform:translateX(8px)}
.collab-cta:hover span:last-child{
  transform:translate(7px,-7px);
  opacity:1;
}

/* Scroll index */
.scroll-index{
  position:fixed;
  z-index:70;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  color:rgba(236,235,229,.42);
  mix-blend-mode:difference;
  pointer-events:none;
}
.scroll-index-current{
  color:#fff;
  transition:transform .35s ease,opacity .35s ease;
}
.scroll-index-line{
  display:block;
  width:1px;
  height:54px;
  background:rgba(236,235,229,.22);
  position:relative;
  overflow:hidden;
}
.scroll-index-line::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:var(--scroll-progress,12.5%);
  background:#fff;
  transition:height .4s var(--ease);
}

/* Custom cursor — desktop / fine pointer only */
.custom-cursor{display:none}
@media(pointer:fine) and (min-width:921px){
  body, a, button, [tabindex], .archive, .structures{
    cursor:none !important;
  }
  .custom-cursor{
    position:fixed;
    inset:0 auto auto 0;
    display:block;
    z-index:9999;
    pointer-events:none;
    width:0;height:0;
  }
  .custom-cursor-dot,
  .custom-cursor-ring{
    position:absolute;
    left:0;top:0;
    transform:translate(-50%,-50%);
    border-radius:50%;
  }
  .custom-cursor-dot{
    width:4px;height:4px;
    background:#fff;
  }
  .custom-cursor-ring{
    width:30px;height:30px;
    border:1px solid rgba(255,255,255,.48);
    transition:
      width .28s ease,height .28s ease,
      border-color .28s ease,background .28s ease;
  }
  .custom-cursor-label{
    position:absolute;
    left:18px;top:18px;
    white-space:nowrap;
    font-family:var(--mono);
    font-size:8px;
    letter-spacing:.12em;
    color:#fff;
    opacity:0;
    transform:translateY(5px);
    transition:opacity .25s ease,transform .25s ease;
  }
  .custom-cursor.is-active .custom-cursor-ring{
    width:58px;height:58px;
    border-color:rgba(255,255,255,.72);
    background:rgba(255,255,255,.04);
  }
  .custom-cursor.is-active .custom-cursor-label{
    opacity:1;
    transform:none;
  }
}

/* Section-head micro motion */
.section-head{
  position:relative;
  overflow:hidden;
}
.section-head::after{
  content:"";
  position:absolute;
  left:0;bottom:-1px;
  width:100%;height:1px;
  background:rgba(236,235,229,.55);
  transform:scaleX(.08);
  transform-origin:left;
  transition:transform 1s var(--ease);
}
.section-active .section-head::after{
  transform:scaleX(1);
}

@media(max-width:920px){
  .scroll-index{display:none}
  .manifesto-layout,
  .collab-grid{
    grid-template-columns:1fr;
  }
  .manifesto-aside{
    position:relative;
    top:auto;
  }
  .manifesto-aside h2{
    font-size:clamp(52px,17vw,88px);
  }
  .manifesto-body{
    gap:30px;
  }
  .manifesto-body p{
    font-size:clamp(20px,5.7vw,28px);
  }
  .manifesto-body .manifesto-lead{
    font-size:clamp(25px,7vw,34px);
  }
  .collab-panel{
    margin-top:78px;
  }
  .collab-copy p{
    font-size:clamp(26px,7vw,38px);
  }
  .collab-cta{
    font-size:clamp(38px,12vw,62px);
  }
  .header-actions{
    gap:8px;
  }
  .lang-switch{
    font-size:8px;
    gap:4px;
  }
}


/* V34 — KIOTTO / ECOSYSTEM */
.ecosystem-link{
  display:block;
  color:inherit;
  text-decoration:none;
}
.kiotto-wordmark-placeholder h3{
  font-size:clamp(62px,8vw,132px);
  letter-spacing:-.07em;
}
.ecosystem-link .ecosystem-media img{
  filter:grayscale(1) contrast(1.18) brightness(.34);
  object-position:center center;
}
.ecosystem-link:hover .ecosystem-media img,
.ecosystem-link:focus-visible .ecosystem-media img,
.ecosystem-link.mobile-active .ecosystem-media img{
  filter:grayscale(.25) contrast(1.12) brightness(.56);
}
@media(max-width:820px){
  .kiotto-wordmark-placeholder h3{
    font-size:clamp(58px,18vw,94px);
  }
}


/* =========================================================
   V35 — REAL KIOTTO BRAND MARK
   ========================================================= */

.kiotto-brand-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
}

.kiotto-brand-logo{
  width:min(78%,560px);
  height:auto;
  object-fit:contain;
  filter:none;
  transition:transform .7s var(--ease),opacity .45s ease;
}

.ecosystem-link:hover .kiotto-brand-logo,
.ecosystem-link:focus-visible .kiotto-brand-logo,
.ecosystem-link.mobile-active .kiotto-brand-logo{
  transform:scale(1.035);
}

@media(max-width:820px){
  .kiotto-brand-logo{
    width:min(82%,420px);
  }
}


/* V36 — KIOTTO logo visibility hardening */
.kiotto-brand-wrap{
  width:min(72%,560px) !important;
  min-height:70px;
  z-index:4 !important;
}
.kiotto-brand-logo{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  opacity:1 !important;
  visibility:visible !important;
  filter:none !important;
}
@media(max-width:820px){
  .kiotto-brand-wrap{
    width:min(80%,430px) !important;
  }
}


/* V40 — manifesto responsive refinement */
@media(max-width:920px){
  .manifesto-body{max-width:none}
  .manifesto-body p{
    max-width:none;
    padding-left:42px;
    font-size:clamp(18px,4.8vw,23px);
    line-height:1.45;
  }
  .manifesto-body .manifesto-lead{
    font-size:clamp(22px,6.2vw,30px);
    line-height:1.34;
  }
  .manifesto-body p::before{left:0}
  .manifesto-serif{font-size:1.18em}
  .manifesto-mono{font-size:.46em}
}

@media(max-width:520px){
  .manifesto-body p{
    padding-left:34px;
    padding-top:26px;
    padding-bottom:30px;
  }
  .manifesto-body p::before{font-size:8px}
  .manifesto-body .manifesto-lead{font-size:24px}
}


/* =========================================================
   V42 — REAL EVENTS + INFINITE MEMORIES
   ========================================================= */

.edition-grid-real{align-items:start}
.event-real-card{isolation:isolate}
.event-real-card img{filter:grayscale(.88) contrast(1.08) brightness(.82);transition:transform .8s var(--ease),filter .55s ease}
.event-real-card:hover img{filter:grayscale(.08) saturate(.92) contrast(1.04) brightness(.94);transform:scale(1.035)}
.event-real-card .edition-meta{background:rgba(5,5,5,.66);backdrop-filter:blur(4px)}

.memories-infinite{
  position:relative;
  padding:110px var(--pad) 90px;
  background:#050505;
  border-top:1px solid var(--line);
  overflow:hidden;
}
.memories-header{
  display:flex;justify-content:space-between;align-items:end;gap:28px;
  margin-bottom:22px;position:relative;z-index:5;
}
.memories-header h2{
  margin:8px 0 0;
  font-size:clamp(72px,12vw,188px);
  font-weight:300;line-height:.78;letter-spacing:-.072em;
}
.memories-guide{
  display:flex;align-items:center;gap:10px;color:var(--muted);padding-bottom:8px;
}
.memories-guide-dot{width:5px;height:5px;background:var(--fg);border-radius:50%;display:block}
.memory-viewport{
  position:relative;
  width:100%;
  height:min(78svh,860px);
  min-height:600px;
  overflow:hidden;
  background:#090909;
  border-top:1px solid rgba(236,235,229,.14);
  border-bottom:1px solid rgba(236,235,229,.14);
  user-select:none;
  touch-action:none;
  outline:none;
}
.memory-viewport::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);
  background-size:72px 72px;
}
.memory-world{position:absolute;inset:0;z-index:1}
.memory-tile{
  position:absolute;left:0;top:0;
  width:var(--tile-w);height:var(--tile-h);
  margin-left:calc(var(--tile-w) / -2);
  margin-top:calc(var(--tile-h) / -2);
  overflow:hidden;
  border:1px solid rgba(236,235,229,.18);
  background:#111;
  box-shadow:0 18px 50px rgba(0,0,0,.22);
  will-change:transform,opacity;
  transform-origin:center;
  transition:border-color .3s ease,box-shadow .35s ease;
}
.memory-tile img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.72) contrast(1.05) brightness(.82);
  transition:filter .4s ease,transform .7s var(--ease);
}
.memory-tile::after{
  content:attr(data-edition);
  position:absolute;left:8px;bottom:7px;
  font-family:var(--mono);font-size:8px;letter-spacing:.12em;
  padding:4px 5px;background:rgba(0,0,0,.62);color:#fff;
  opacity:.66;transition:opacity .3s ease;
}
.memory-tile:hover{border-color:rgba(236,235,229,.55);box-shadow:0 26px 80px rgba(0,0,0,.36)}
.memory-tile:hover img{filter:saturate(1) contrast(1.02) brightness(.96);transform:scale(1.035)}
.memory-tile:hover::after{opacity:1}
.memory-viewport.is-dragging .memory-tile{transition:none}
.memory-viewport.is-dragging{cursor:grabbing}
.memory-axis{position:absolute;z-index:3;pointer-events:none;opacity:.28}
.memory-axis-x{left:50%;top:0;bottom:0;width:1px;background:linear-gradient(transparent,rgba(255,255,255,.5),transparent)}
.memory-axis-y{top:50%;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent)}
.memory-vignette{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  box-shadow:inset 0 0 140px 48px rgba(0,0,0,.72);
  background:radial-gradient(circle at center,transparent 36%,rgba(0,0,0,.10) 63%,rgba(0,0,0,.58) 100%);
}
.memory-focus{
  position:absolute;left:14px;top:14px;z-index:4;
  display:flex;gap:10px;align-items:center;color:rgba(236,235,229,.68);
  pointer-events:none;
}
.memory-focus span:first-child{color:#fff}
.memories-footer{
  display:flex;justify-content:space-between;gap:20px;color:var(--muted);padding-top:12px;
}

@media(max-width:920px){
  .edition-grid-real{grid-template-columns:repeat(2,1fr)}
  .edition-grid-real .wide-card{grid-column:span 2;aspect-ratio:16/9}
  .memories-infinite{padding:88px 0 70px}
  .memories-header,.memories-footer{padding-left:18px;padding-right:18px}
  .memories-header{align-items:flex-start;flex-direction:column;gap:16px}
  .memories-header h2{font-size:clamp(66px,20vw,118px)}
  .memories-guide{padding-bottom:0}
  .memory-viewport{height:72svh;min-height:560px}
  .memory-vignette{box-shadow:inset 0 0 88px 24px rgba(0,0,0,.72)}
}
@media(max-width:520px){
  .edition-grid-real{gap:7px}
  .event-real-card .edition-meta{left:7px;right:7px;bottom:7px;font-size:8px}
  .memories-guide span:first-child{display:none}
  .memory-viewport{height:68svh;min-height:520px}
  .memories-footer span:last-child{display:none}
}


/* =========================================================
   V43 — EVENTS GALLERY + MEMORIES PORTAL
   ========================================================= */

body.overlay-open{
  overflow:hidden;
}

/* EVENTS now reads as an index that opens individual galleries. */
.event-real-card{
  cursor:pointer;
}
.event-real-card::before{
  content:"VIEW EVENT";
  position:absolute;
  right:10px;
  top:10px;
  z-index:3;
  font-family:var(--mono);
  font-size:7px;
  letter-spacing:.12em;
  color:#fff;
  opacity:0;
  transform:translateY(5px);
  transition:opacity .3s ease,transform .35s var(--ease);
}
.event-real-card:hover::before,
.event-real-card:focus-visible::before{
  opacity:.82;
  transform:none;
}

/* Restore the Memories cover as a threshold into the archive. */
.memories-cover{
  min-height:100svh;
  cursor:pointer;
}
.memories-cover .archive-image img{
  filter:saturate(.62) contrast(1.08) brightness(.66);
  transition:transform 1.25s var(--ease),filter .8s ease;
}
.memories-cover:hover .archive-image img{
  transform:scale(1.018);
  filter:saturate(.78) contrast(1.06) brightness(.73);
}
.memories-cover .archive-copy{
  pointer-events:none;
}
.archive-foot{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  color:#dddcd5;
}
.archive-arrow{
  display:inline-block;
  transition:transform .45s var(--ease);
}
.memories-cover:hover .archive-arrow{
  transform:translate(6px,-6px);
}
.archive-open-label{
  margin-top:22px;
  color:rgba(236,235,229,.68);
  letter-spacing:.14em;
}
.archive-open-hit{
  position:absolute;
  inset:0;
  z-index:5;
  width:100%;
  height:100%;
  border:0;
  background:transparent;
  padding:0;
  cursor:pointer;
}

/* Shared full-screen overlays */
.event-gallery-modal,
.memories-modal{
  position:fixed;
  inset:0;
  z-index:900;
  background:#050505;
  color:var(--fg);
}
.event-gallery-modal[hidden],
.memories-modal[hidden]{
  display:none;
}
.event-gallery-modal.is-open,
.memories-modal.is-open{
  animation:overlayIn .42s var(--ease) both;
}
.event-gallery-modal.is-closing,
.memories-modal.is-closing{
  animation:overlayOut .28s ease both;
}
@keyframes overlayIn{
  from{opacity:0;transform:scale(1.008)}
  to{opacity:1;transform:none}
}
@keyframes overlayOut{
  from{opacity:1}
  to{opacity:0}
}
.overlay-close{
  appearance:none;
  border:0;
  background:transparent;
  color:#fff;
  padding:8px 0 8px 12px;
  cursor:pointer;
  font:inherit;
  letter-spacing:inherit;
  opacity:.72;
  transition:opacity .25s ease,transform .3s var(--ease);
}
.overlay-close:hover,
.overlay-close:focus-visible{
  opacity:1;
  transform:translateX(-3px);
  outline:none;
}

/* Event-by-event photo viewer */
.event-gallery-shell{
  height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  padding:22px var(--pad) 18px;
}
.event-gallery-top{
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:20px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.event-gallery-top > div:first-child{
  display:flex;
  gap:18px;
  align-items:baseline;
}
.event-gallery-top strong{
  font-weight:400;
  font-size:17px;
  color:#fff;
}
.event-gallery-actions{
  display:flex;
  align-items:center;
  gap:22px;
  color:var(--muted);
}
.event-gallery-stage{
  position:relative;
  min-height:0;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:18px 58px;
}
.event-gallery-figure{
  margin:0;
  width:min(100%,1180px);
  height:100%;
  min-height:0;
  display:grid;
  place-items:center;
}
.event-gallery-figure img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  filter:saturate(.92) contrast(1.02);
  animation:galleryImageIn .42s var(--ease) both;
}
@keyframes galleryImageIn{
  from{opacity:.2;transform:scale(.992)}
  to{opacity:1;transform:none}
}
.gallery-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:4;
  width:44px;height:44px;
  display:grid;place-items:center;
  border:1px solid rgba(236,235,229,.22);
  background:rgba(5,5,5,.5);
  color:#fff;
  cursor:pointer;
  transition:background .3s ease,border-color .3s ease,transform .35s var(--ease);
}
.gallery-nav:hover{
  background:#fff;
  color:#050505;
  border-color:#fff;
}
.gallery-nav-prev{left:0}
.gallery-nav-next{right:0}
.gallery-nav-prev:hover{transform:translate(-3px,-50%)}
.gallery-nav-next:hover{transform:translate(3px,-50%)}
.event-gallery-thumbs{
  display:flex;
  justify-content:center;
  gap:8px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.event-gallery-thumb{
  appearance:none;
  padding:0;
  width:84px;
  height:52px;
  border:1px solid rgba(236,235,229,.16);
  background:#111;
  opacity:.45;
  cursor:pointer;
  overflow:hidden;
  transition:opacity .3s ease,border-color .3s ease,transform .3s var(--ease);
}
.event-gallery-thumb img{
  width:100%;height:100%;object-fit:cover;
}
.event-gallery-thumb.active{
  opacity:1;
  border-color:#fff;
  transform:translateY(-3px);
}

/* Memories infinite field now occupies a modal instead of the page itself. */
.memories-modal{
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  padding:20px var(--pad) 14px;
}
.memories-modal-top{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:24px;
  padding-bottom:14px;
}
.memories-modal-top h2{
  margin:5px 0 0;
  font-size:clamp(54px,8vw,120px);
  line-height:.78;
  font-weight:300;
  letter-spacing:-.07em;
}
.memories-modal-actions{
  display:flex;
  align-items:center;
  gap:18px;
  color:var(--muted);
}
.memory-viewport-modal{
  height:auto;
  min-height:0;
  border:1px solid rgba(236,235,229,.14);
}
.memories-modal-bottom{
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding-top:12px;
  color:var(--muted);
}

@media(max-width:820px){
  .event-real-card::before{display:none}

  .event-gallery-shell{
    padding:14px 12px 10px;
  }
  .event-gallery-top{
    align-items:center;
  }
  .event-gallery-top > div:first-child span:first-child{
    display:none;
  }
  .event-gallery-actions{
    gap:10px;
  }
  .event-gallery-stage{
    padding:12px 0 60px;
  }
  .gallery-nav{
    top:auto;
    bottom:7px;
    transform:none;
  }
  .gallery-nav-prev{left:calc(50% - 52px)}
  .gallery-nav-next{right:calc(50% - 52px)}
  .gallery-nav-prev:hover,
  .gallery-nav-next:hover{
    transform:none;
  }
  .event-gallery-thumbs{
    gap:5px;
  }
  .event-gallery-thumb{
    width:68px;
    height:44px;
  }

  .memories-cover{
    min-height:100svh !important;
    height:100svh;
  }
  .memories-modal{
    padding:14px 12px 10px;
  }
  .memories-modal-top{
    align-items:start;
  }
  .memories-modal-top h2{
    font-size:clamp(48px,16vw,78px);
  }
  .memories-modal-actions{
    flex-direction:column;
    align-items:flex-end;
    gap:4px;
  }
  .memories-modal-actions > span:first-child{
    display:none;
  }
  .memory-viewport-modal{
    min-height:0;
    height:auto;
  }
  .memories-modal-bottom{
    font-size:7px;
  }
  .memories-modal-bottom span:last-child{
    display:none;
  }
}


/* =========================================================
   V44 — MANIFESTO AS DECLARATION
   ========================================================= */

.manifesto-body-v44{
  counter-reset:none;
  max-width:900px;
  gap:0;
}

.manifesto-body-v44 .manifesto-statement{
  position:relative;
  display:grid;
  grid-template-columns:46px minmax(0,1fr);
  gap:18px;
  padding:clamp(34px,4.6vw,68px) 0;
  border-top:1px solid rgba(236,235,229,.12);
}

.manifesto-body-v44 .manifesto-statement:first-child{
  border-top:0;
  padding-top:4px;
}

.manifesto-body-v44 .manifesto-statement::before{
  content:none;
}

.manifesto-body-v44 .manifesto-no{
  padding-top:.5em;
  color:#565550;
  font-size:8px;
  letter-spacing:.12em;
}

.manifesto-body-v44 .manifesto-statement p{
  counter-increment:none;
  margin:0;
  padding:0;
  border:0;
  max-width:780px;
  color:#aaa9a3;
  font-size:clamp(20px,1.8vw,29px);
  font-weight:300;
  line-height:1.36;
  letter-spacing:-.022em;
  text-wrap:pretty;
}

.manifesto-body-v44 .manifesto-statement p::before{
  content:none;
}

.manifesto-body-v44 .manifesto-statement-lead p{
  color:#deddd7;
  font-size:clamp(27px,2.65vw,42px);
  line-height:1.22;
  letter-spacing:-.036em;
}

.manifesto-body-v44 strong{
  color:#f3f2ec;
  font-weight:600;
}

.manifesto-body-v44 .manifesto-serif{
  font-family:"Cormorant Garamond",serif;
  font-size:1.18em;
  font-weight:600;
  font-style:italic;
  line-height:.88;
  letter-spacing:-.028em;
  color:#f6f3e9;
}

.manifesto-body-v44 .manifesto-mono{
  display:inline-block;
  position:relative;
  top:-.04em;
  margin:0 .08em;
  font-family:var(--mono);
  font-size:.46em;
  line-height:1;
  letter-spacing:.13em;
  color:#d6d5cf;
  vertical-align:middle;
  white-space:nowrap;
}

/* The central declaration: type behaves almost like an image. */
.manifesto-spatial{
  padding-top:clamp(42px,5.5vw,78px) !important;
  padding-bottom:clamp(46px,6vw,88px) !important;
}

.manifesto-actions{
  grid-column:2;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  margin-top:clamp(28px,4vw,54px);
  line-height:.78;
}

.manifesto-action{
  display:block;
  color:var(--fg);
  transform-origin:left center;
  transition:
    transform .55s var(--ease),
    letter-spacing .55s var(--ease),
    opacity .4s ease;
}

.manifesto-action.serif{
  font-family:"Cormorant Garamond",serif;
  font-size:clamp(48px,6.4vw,104px);
  font-style:italic;
  font-weight:500;
  letter-spacing:-.052em;
  color:#ddd9cb;
}

.manifesto-action.bold{
  margin-left:clamp(18px,4vw,64px);
  font-family:var(--sans);
  font-size:clamp(52px,7.3vw,122px);
  font-weight:600;
  letter-spacing:-.072em;
}

.manifesto-action.mono{
  margin-top:clamp(17px,2vw,28px);
  margin-left:clamp(5px,1.4vw,22px);
  padding:8px 10px 7px;
  border:1px solid rgba(236,235,229,.36);
  font-size:clamp(10px,1vw,14px);
  letter-spacing:.16em;
  line-height:1;
}

.manifesto-spatial:hover .manifesto-action.serif{
  transform:translateX(8px);
}
.manifesto-spatial:hover .manifesto-action.bold{
  transform:translateX(-7px);
}
.manifesto-spatial:hover .manifesto-action.mono{
  letter-spacing:.22em;
}

/* Ending becomes a quieter final statement. */
.manifesto-ending{
  border-bottom:1px solid rgba(236,235,229,.12);
}
.manifesto-ending p{
  color:#d8d7d0 !important;
  font-size:clamp(25px,2.35vw,37px) !important;
  line-height:1.25 !important;
}
.manifesto-ending .manifesto-serif{
  display:block;
  margin-bottom:.28em;
  font-size:1.28em;
}

/* Bring the collaboration block a little closer to the manifesto conclusion. */
.manifesto-body-v44 + *{
  margin-top:0;
}

@media(max-width:920px){
  .manifesto-body-v44{
    max-width:none;
  }
  .manifesto-body-v44 .manifesto-statement{
    grid-template-columns:32px minmax(0,1fr);
    gap:12px;
    padding:34px 0;
  }
  .manifesto-body-v44 .manifesto-statement p{
    font-size:clamp(19px,5.4vw,27px);
    line-height:1.34;
  }
  .manifesto-body-v44 .manifesto-statement-lead p{
    font-size:clamp(25px,7vw,35px);
    line-height:1.2;
  }
  .manifesto-actions{
    grid-column:1 / -1;
    padding-left:44px;
    margin-top:28px;
  }
  .manifesto-action.serif{
    font-size:clamp(44px,13.5vw,70px);
  }
  .manifesto-action.bold{
    margin-left:8px;
    font-size:clamp(46px,14vw,76px);
  }
  .manifesto-action.mono{
    margin-left:0;
  }
  .manifesto-ending p{
    font-size:clamp(24px,6.8vw,34px) !important;
  }
}

@media(max-width:480px){
  .manifesto-body-v44 .manifesto-statement{
    grid-template-columns:24px minmax(0,1fr);
    gap:8px;
  }
  .manifesto-body-v44 .manifesto-no{
    font-size:7px;
  }
  .manifesto-actions{
    padding-left:32px;
  }
  .manifesto-action.bold{
    letter-spacing:-.065em;
  }
}


/* V45 — COMPLETE EVENT ARCHIVE */
.edition-meta span:last-child{color:rgba(236,235,229,.72)}
.memory-tile{contain:layout paint style}
.event-real-card[data-event-gallery="M+UND"] .edition-meta span:first-child{letter-spacing:.08em}
@media(max-width:820px){.edition-meta{font-size:8px}}


/* =========================================================
   V46 — FILM / DOCUMENT
   ========================================================= */

.film-document{
  padding:0 var(--pad) clamp(110px,12vw,180px);
  background:#050505;
}

.film-document-head{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:15px 0 13px;
  border-top:1px solid var(--line);
  color:var(--muted);
}

.film-document-frame{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#080808;
  border-top:1px solid rgba(236,235,229,.12);
  border-bottom:1px solid rgba(236,235,229,.12);
}

.film-document-video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#050505;
  filter:grayscale(.12) contrast(1.04) brightness(.72);
  transition:filter .7s ease,transform 1.25s var(--ease);
}

.film-document-frame:not(.is-playing):hover .film-document-video{
  filter:grayscale(0) contrast(1.02) brightness(.84);
  transform:scale(1.012);
}

.film-document-overlay{
  position:absolute;
  inset:0;
  z-index:3;
  display:grid;
  place-items:center;
  background:
    linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.04) 50%,rgba(0,0,0,.48));
  transition:opacity .45s ease,visibility .45s ease;
}

.film-document-frame.is-playing .film-document-overlay{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.film-play{
  appearance:none;
  border:0;
  background:transparent;
  color:#fff;
  display:flex;
  align-items:center;
  gap:18px;
  padding:20px;
  cursor:pointer;
  text-align:left;
}

.film-play-icon{
  width:72px;
  height:72px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:50%;
  display:grid;
  place-items:center;
  padding-left:4px;
  font-size:16px;
  background:rgba(0,0,0,.12);
  backdrop-filter:blur(5px);
  transition:
    transform .5s var(--ease),
    background .35s ease,
    color .35s ease,
    border-color .35s ease;
}

.film-play:hover .film-play-icon,
.film-play:focus-visible .film-play-icon{
  transform:scale(1.08);
  background:#fff;
  color:#050505;
  border-color:#fff;
}

.film-play-copy{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.film-play-copy > span{
  color:#fff;
  font-size:10px;
}

.film-play-copy small{
  color:rgba(255,255,255,.62);
  font-family:var(--mono);
  font-size:8px;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.film-document-corner{
  position:absolute;
  z-index:2;
  left:14px;
  right:14px;
  bottom:12px;
  display:flex;
  justify-content:space-between;
  color:rgba(255,255,255,.54);
  pointer-events:none;
  transition:opacity .35s ease;
}

.film-document-frame.is-playing .film-document-corner{
  opacity:0;
}

@media(max-width:820px){
  .film-document{
    padding-left:0;
    padding-right:0;
    padding-bottom:90px;
  }

  .film-document-head{
    margin:0 18px;
  }

  .film-document-frame{
    aspect-ratio:16/10;
  }

  .film-play{
    flex-direction:column;
    gap:12px;
    text-align:center;
  }

  .film-play-icon{
    width:62px;
    height:62px;
  }

  .film-play-copy{
    align-items:center;
  }

  .film-document-corner{
    left:12px;
    right:12px;
    bottom:10px;
    font-size:7px;
  }
}


/* =========================================================
   V50 — MOBILE MEMORIES SAFETY
   ========================================================= */

.memories-modal{
  height:100vh;
  height:100dvh;
  min-height:0;
  overflow:hidden;
}

.memory-viewport-modal{
  min-height:420px;
}

.memory-tile.image-missing{
  background:
    linear-gradient(135deg,rgba(255,255,255,.035),rgba(255,255,255,.01)),
    #111;
}

.memory-tile.image-missing::before{
  content:"ARCHIVE / IMAGE";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-family:var(--mono);
  font-size:7px;
  letter-spacing:.14em;
  color:rgba(236,235,229,.34);
}

@media(max-width:820px){
  .memories-modal{
    grid-template-rows:auto minmax(0,1fr) auto;
    height:100svh;
    height:100dvh;
    min-height:0;
  }

  .memory-viewport-modal{
    width:100%;
    height:100%;
    min-height:360px;
    max-height:none;
  }

  .memory-world{
    overflow:visible;
  }

  .memory-tile{
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
  }

  .memory-tile img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
  }
}

@media(max-width:520px){
  .memories-modal{
    padding:10px 8px 8px;
  }

  .memories-modal-top{
    padding-bottom:8px;
  }

  .memories-modal-top h2{
    font-size:clamp(42px,15vw,64px);
  }

  .memory-viewport-modal{
    min-height:58svh;
    min-height:58dvh;
  }

  .memories-modal-bottom{
    padding-top:8px;
  }
}


/* =========================================================
   V51 — MOBILE MEMORY / GPU + DECODE LIMIT
   ========================================================= */

@media(max-width:820px){
  .memory-tile-virtual{
    contain:strict;
    box-shadow:0 10px 28px rgba(0,0,0,.20);
    will-change:transform,opacity;
  }

  .memory-tile-virtual img{
    transform:none !important;
    transition:none;
  }

  .memory-tile-virtual:hover img{
    transform:none;
  }

  .memory-vignette{
    box-shadow:inset 0 0 56px 12px rgba(0,0,0,.62);
  }
}


/* =========================================================
   V52 — COLLAB OUTRO / OPTIMIZATION / MOBILE CLOSE
   ========================================================= */

.collab-outro{
  position:relative;
  padding-top:clamp(110px,12vw,190px);
  padding-bottom:clamp(120px,14vw,210px);
  border-top:1px solid var(--line);
  background:#050505;
}

.collab-outro-grid{
  display:grid;
  grid-template-columns:minmax(180px,.58fr) minmax(0,1.42fr);
  gap:clamp(42px,8vw,150px);
  align-items:start;
}

.collab-outro-kicker{
  color:var(--muted);
  padding-top:11px;
}

.collab-outro-main{
  max-width:1040px;
}

.collab-outro-main h2{
  margin:0 0 clamp(38px,5vw,72px);
  max-width:980px;
  color:var(--fg);
  font-size:clamp(68px,9.2vw,154px);
  font-weight:300;
  line-height:.78;
  letter-spacing:-.075em;
  text-wrap:balance;
}

.collab-outro-main p{
  margin:0 0 clamp(44px,6vw,82px);
  max-width:850px;
  color:#aaa9a3;
  font-size:clamp(21px,2.15vw,34px);
  font-weight:300;
  line-height:1.28;
  letter-spacing:-.03em;
  text-wrap:pretty;
}

.collab-outro-cta{
  display:inline-flex;
  align-items:center;
  gap:18px;
  padding-bottom:7px;
  border-bottom:1px solid rgba(236,235,229,.46);
  color:var(--fg);
  font-size:clamp(34px,4.6vw,72px);
  font-weight:300;
  line-height:.9;
  letter-spacing:-.052em;
  transition:transform .55s var(--ease),border-color .35s ease;
}

.collab-outro-cta span:last-child{
  font-size:.52em;
  opacity:.55;
  transition:transform .5s var(--ease),opacity .35s ease;
}

.collab-outro-cta:hover,
.collab-outro-cta:focus-visible{
  transform:translateX(7px);
  border-color:rgba(236,235,229,.9);
  outline:none;
}

.collab-outro-cta:hover span:last-child,
.collab-outro-cta:focus-visible span:last-child{
  transform:translate(6px,-6px);
  opacity:1;
}

@media(max-width:820px){
  /* Event gallery: always-visible safe-area close button. */
  .event-gallery-shell{
    padding-top:calc(14px + env(safe-area-inset-top));
    padding-bottom:calc(10px + env(safe-area-inset-bottom));
  }

  .event-gallery-top{
    padding-right:108px;
  }

  .event-gallery-close{
    position:fixed;
    z-index:950;
    top:calc(10px + env(safe-area-inset-top));
    right:10px;
    min-width:88px;
    min-height:46px;
    padding:0 13px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.30);
    border-radius:999px;
    background:rgba(5,5,5,.90);
    color:#fff;
    opacity:1;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    touch-action:manipulation;
    box-shadow:0 8px 26px rgba(0,0,0,.28);
  }

  .event-gallery-close:hover,
  .event-gallery-close:focus-visible{
    transform:none;
    background:#fff;
    color:#050505;
  }

  .collab-outro{
    padding-top:100px;
    padding-bottom:110px;
  }

  .collab-outro-grid{
    grid-template-columns:1fr;
    gap:42px;
  }

  .collab-outro-main h2{
    margin-bottom:36px;
    font-size:clamp(58px,18vw,94px);
    line-height:.80;
  }

  .collab-outro-main p{
    margin-bottom:48px;
    font-size:clamp(21px,6vw,29px);
    line-height:1.32;
  }

  .collab-outro-cta{
    font-size:clamp(38px,11vw,58px);
  }
}

@media(pointer:coarse){
  .depth-media,
  .edition-card img,
  .ecosystem-media img,
  .memories-cover .archive-image img,
  .film-document-video{
    transition-duration:.01ms !important;
  }

  .edition-card:hover img,
  .ecosystem-card:hover .ecosystem-media img,
  .memories-cover:hover .archive-image img,
  .film-document-frame:not(.is-playing):hover .film-document-video{
    transform:none;
  }
}

@media(prefers-reduced-motion:reduce){
  .ticker{animation:none}
  .reveal{transition:none}
  .custom-cursor{display:none !important}
}


/* V53 — Manglar + Underclub special event */
.event-collab-card .edition-meta{
  gap:12px;
}

.event-collab-card .edition-meta span:last-child{
  text-align:right;
}

@media(max-width:520px){
  .event-collab-card .edition-meta span:last-child{
    font-size:7px;
    letter-spacing:.08em;
  }
}


/* =========================================================
   V54 — SIMPLIFIED HAMBURGER / INDEX PANEL
   ========================================================= */

body.menu-open{
  overflow:hidden;
}

.menu-toggle{
  position:relative;
  z-index:102;
}

.menu-toggle span{
  transform-origin:center;
  transition:
    transform .35s var(--ease),
    opacity .25s ease,
    width .35s var(--ease);
}

.menu-toggle[aria-expanded="true"] span:first-child{
  transform:translateY(3.5px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:last-child{
  transform:translateY(-3.5px) rotate(-45deg);
}

.menu{
  z-index:100;
  top:0;
  right:0;
  width:min(460px,100vw);
  height:100dvh;
  padding:22px clamp(24px,3.2vw,48px) 30px;
  display:grid;
  grid-template-rows:auto 1fr auto;
  gap:0;
  background:rgba(5,5,5,.985);
  border-left:1px solid rgba(236,235,229,.13);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  font:300 clamp(38px,4.3vw,66px)/.92 var(--sans);
  letter-spacing:-.055em;
}

.menu-panel-head,
.menu-panel-foot{
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:rgba(236,235,229,.45);
  font-size:8px;
  letter-spacing:.13em;
}

.menu-panel-head{
  padding:2px 54px 16px 0;
  border-bottom:1px solid rgba(236,235,229,.12);
}

.menu-panel-foot{
  padding-top:14px;
  border-top:1px solid rgba(236,235,229,.12);
}

.menu > a{
  position:relative;
  display:flex;
  align-items:baseline;
  padding:14px 0 13px 38px;
  border-bottom:1px solid rgba(236,235,229,.08);
  color:rgba(236,235,229,.72);
  counter-increment:menu-item;
  transition:
    color .3s ease,
    padding-left .42s var(--ease);
}

.menu{
  counter-reset:menu-item;
}

.menu > a:first-of-type{
  align-self:end;
  margin-top:auto;
}

.menu > a:last-of-type{
  margin-bottom:auto;
}

.menu > a::before{
  content:"0" counter(menu-item);
  position:absolute;
  left:0;
  top:20px;
  font-family:var(--mono);
  font-size:8px;
  line-height:1;
  letter-spacing:.12em;
  color:rgba(236,235,229,.28);
}

.menu > a::after{
  content:"";
  position:absolute;
  left:38px;
  right:100%;
  bottom:-1px;
  height:1px;
  background:#fff;
  transition:right .45s var(--ease);
}

.menu > a:hover,
.menu > a:focus-visible{
  color:#fff;
  padding-left:46px;
  outline:none;
}

.menu > a:hover::after,
.menu > a:focus-visible::after{
  right:0;
}

@media(max-width:820px){
  .menu{
    width:100%;
    height:100svh;
    height:100dvh;
    padding:
      calc(18px + env(safe-area-inset-top))
      18px
      calc(20px + env(safe-area-inset-bottom));
    border-left:0;
    font-size:clamp(48px,15vw,78px);
  }

  .menu-panel-head{
    padding-right:52px;
  }

  .menu > a{
    padding:12px 0 12px 34px;
  }

  .menu > a::before{
    top:18px;
  }

  .menu > a::after{
    left:34px;
  }

  .menu > a:hover,
  .menu > a:focus-visible{
    padding-left:34px;
  }
}

@media(prefers-reduced-motion:reduce){
  .menu,
  .menu-toggle span,
  .menu > a{
    transition:none;
  }
}
