:root {
  --ink: #050505;
  --ink-soft: #0a0a0a;
  --graphite: #141414;
  --ivory: #ded5c7;
  --muted: #9d9990;
  --dim: #6d6a64;
  --gold: #b49b68;
  --line: rgba(222, 213, 199, 0.14);
  --line-strong: rgba(222, 213, 199, 0.27);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --shell: min(1040px, calc(100vw - 120px));
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body.clvb1-site {
  margin: 0;
  overflow-x: clip;
  color: var(--ivory);
  background: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
body.clvb1-site::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 999;
  pointer-events: none;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
  mix-blend-mode: screen;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { color: #080808; background: #d8c7a4; }

.shell { width: var(--shell); margin-inline: auto; }
.section { position: relative; padding-block: 5.25rem; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 1001; padding: .8rem 1rem; color: #050505; background: var(--ivory); }
.skip-link:focus { top: 1rem; }
.section-index, .kicker {
  margin: 0;
  color: var(--gold);
  font-size: .67rem;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
}
h1, h2, h3, p { text-wrap: pretty; }
h1, h2, h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-variant-numeric: lining-nums proportional-nums;
}
h2 em, h1 em { color: #aaa9a6; font-weight: 400; }

.site-header {
  position: fixed;
  z-index: 100;
  top: 1rem;
  left: 50%;
  display: grid;
  grid-template-columns: minmax(130px, .8fr) auto minmax(140px, .8fr);
  align-items: center;
  width: min(920px, calc(100vw - 56px));
  min-height: 56px;
  padding: .5rem .6rem .5rem 1rem;
  border: 1px solid rgba(232,227,218,.12);
  border-radius: 18px;
  background: rgba(7,7,7,.58);
  box-shadow: inset 0 1px rgba(232,227,218,.08), 0 16px 50px rgba(0,0,0,.32);
  backdrop-filter: blur(24px) saturate(125%);
  -webkit-backdrop-filter: blur(24px) saturate(125%);
  transform: translateX(-50%);
  transition: background .4s ease, border-color .4s ease, transform .5s var(--ease);
}
.site-header.is-scrolled { background: rgba(5,5,5,.82); border-color: rgba(232,227,218,.18); }
.brand { position:relative; display:block; width:90px; height:42px; overflow:hidden; }
.brand img { position:absolute; top:50%; left:0; width:100%; max-width:none; height:auto; transform:translateY(-50%); }
.site-nav { display: flex; align-items: center; justify-content: center; gap: clamp(1.1rem, 2.5vw, 2.4rem); white-space: nowrap; }
.site-nav a, .member-link { font-size: .67rem; letter-spacing: .08em; color: #b8b4ad; transition: color .25s ease; }
.site-nav a:hover, .site-nav a:focus-visible, .member-link:hover, .member-link:focus-visible { color: var(--ivory); }
.member-link {
  justify-self: end;
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  padding-inline: 1rem;
  border: 1px solid rgba(232,227,218,.16);
  border-radius: 12px;
  color: var(--ivory);
  background: rgba(232,227,218,.035);
}

.hero {
  position: relative;
  min-height: 112svh;
  display: grid;
  align-items: center;
  isolation: isolate;
  overflow: hidden;
  background: #050505;
}
.hero-media, .hero-vignette { position: absolute; inset: 0; }
.hero-media img {
  width: 100%; height: 100%; object-fit: cover; object-position: center;
  filter: saturate(.65) contrast(1.12) brightness(.72);
  transform: scale(1.035);
  animation: hero-breathe 14s ease-in-out infinite alternate;
}
.hero-vignette {
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(0,0,0,.38), transparent 30%, rgba(0,0,0,.22) 65%, #050505 100%),
    radial-gradient(circle at center, transparent 5%, rgba(0,0,0,.1) 44%, rgba(0,0,0,.72) 100%);
}
.hero-content {
  position: relative;
  z-index: 2;
  padding-top: 6rem;
  text-align: center;
}
.hero-logo { position:relative; width:clamp(220px,27vw,320px); height:clamp(120px,13vw,158px); margin:.25rem auto 0; overflow:hidden; filter:drop-shadow(0 18px 30px rgba(0,0,0,.45)); }
.hero-logo img { position:absolute; top:49%; left:0; width:100%; max-width:none; height:auto; transform:translateY(-50%); }
.hero h1, .hero-portal h1 { max-width:580px; margin:.1rem auto 0; font-size:clamp(2.7rem,4.5vw,3.8rem); line-height:.93; letter-spacing:-.041em; text-shadow:0 8px 35px rgba(0,0,0,.65); }
.hero h1 span, .hero h1 em, .hero-portal h1 span, .hero-portal h1 em { display:block; }
.hero h1 em, .hero-portal h1 em { margin-top:-.11em; }
.hero-intro { max-width: 500px; margin: 1.15rem auto 0; color: #bbb7af; font-size: .78rem; line-height: 1.7; }
.hero-actions { display: flex; justify-content: center; gap: .7rem; margin-top: 1.5rem; }
.button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0 1.45rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .69rem;
  font-weight: 500;
  letter-spacing: .08em;
  cursor: pointer;
  transition: transform .35s var(--ease), box-shadow .35s ease, background .35s ease;
}
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button-light { color: #090909; background: var(--ivory); box-shadow: 0 12px 36px rgba(0,0,0,.24); }
.button-light:hover { box-shadow: 0 15px 46px rgba(232,227,218,.16); }
.button-glass { border-color: rgba(232,227,218,.2); color: var(--ivory); background: rgba(7,7,7,.28); backdrop-filter: blur(12px); }
.scroll-cue { position: absolute; z-index: 2; bottom: 2rem; left: 50%; display: flex; flex-direction: column; align-items: center; gap: .65rem; transform: translateX(-50%); }
.scroll-cue span { color: #8f8b84; font-size: .58rem; letter-spacing: .22em; text-transform: uppercase; }
.scroll-cue i { width: 1px; height: 42px; background: linear-gradient(var(--gold), transparent); animation: cue 2s ease-in-out infinite; }
@keyframes hero-breathe { to { transform: scale(1.075); } }
@keyframes cue { 0%,100% { opacity:.3; transform:scaleY(.65); transform-origin:top; } 50% { opacity:1; transform:scaleY(1); } }

.portal { position: relative; height: 235vh; background: #050505; }
.portal-sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; background: #050505; }
.portal-room { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(.55) contrast(1.1) brightness(calc(.32 + var(--portal-progress, 0) * .48)); transform: scale(calc(1.09 - var(--portal-progress, 0) * .09)); }
.portal-sticky::after { content:""; position:absolute; inset:0; box-shadow: inset 0 0 16vw #000; pointer-events:none; }
.portal-door { position: absolute; z-index: 2; top: 0; width: 50.2%; height: 100%; background: linear-gradient(90deg,#030303,#10100f 65%,#050505); border-color: rgba(232,227,218,.08); transition: none; }
.portal-door::before { content:""; position:absolute; inset:9% 8%; border:1px solid rgba(232,227,218,.07); box-shadow: inset 0 0 70px #000; }
.portal-door-left { left: 0; border-right: 1px solid rgba(204,185,148,.25); transform: translateX(calc(var(--portal-progress, 0) * -100%)); }
.portal-door-right { right: 0; border-left: 1px solid rgba(204,185,148,.25); transform: translateX(calc(var(--portal-progress, 0) * 100%)); }
.portal-word { position:absolute; z-index:3; left:50%; top:50%; margin:0; color:rgba(239,234,224,calc(1 - var(--portal-progress, 0) * 1.5)); font:400 clamp(3.5rem,10vw,9rem)/1 var(--serif); letter-spacing:.15em; transform:translate(-43%,-50%); }

/* Tres umbrales: puerta abstracta, exterior y sala privada. */
.hero-portal { position:relative; height:330vh; background:#050505; }
.hero-portal .portal-sticky { isolation:isolate; }
.hero-portal .portal-room {
  position:absolute;
  inset:0;
  z-index:0;
  filter:saturate(.55) contrast(1.1) brightness(var(--room-brightness,.27));
  transform:scale(var(--room-scale,1)) translateZ(0);
  transform-origin:center center;
  backface-visibility:hidden;
  will-change:transform,filter;
}
.portal-facade {
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.72) contrast(1.08) brightness(.92);
  opacity:var(--facade-opacity,1);
  transform:scale(var(--facade-scale,1)) translateZ(0);
  transform-origin:var(--portal-origin-x,50%) var(--portal-origin-y,52%);
  backface-visibility:hidden;
  will-change:transform,opacity;
}
.portal-window {
  position:absolute;
  inset:0;
  z-index:3;
  overflow:hidden;
  opacity:var(--portal-window-opacity,0);
  clip-path:inset(var(--portal-top,25%) var(--portal-right,40%) var(--portal-bottom,20%) var(--portal-left,40%) round var(--portal-radius,2px));
  will-change:clip-path,opacity;
}
.portal-window img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:saturate(.62) contrast(1.08) brightness(var(--portal-window-brightness,.32));
  transform:scale(var(--portal-room-scale,1.08)) translateZ(0);
  transform-origin:var(--portal-origin-x,50%) var(--portal-origin-y,52%);
  backface-visibility:hidden;
  will-change:transform,filter;
}
.flat-door {
  position:absolute;
  z-index:5;
  top:0;
  width:50.1%;
  height:100%;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 45%,rgba(232,227,218,.025),transparent 34%),
    linear-gradient(90deg,#050505,#10100f 65%,#060606);
  box-shadow:inset 0 0 100px rgba(0,0,0,.72);
  will-change:transform;
  backface-visibility:hidden;
}
.flat-door i { position:absolute; inset:6% 8%; border:1px solid rgba(232,227,218,.08); box-shadow:inset 0 0 80px rgba(0,0,0,.86); }
.flat-door-left {
  left:0;
  border-right:1px solid rgba(204,185,148,.26);
  transform:translateX(var(--flat-left,0%)) scale(var(--flat-scale,1));
  transform-origin:left center;
}
.flat-door-right {
  right:0;
  border-left:1px solid rgba(204,185,148,.26);
  background:radial-gradient(circle at 50% 45%,rgba(232,227,218,.025),transparent 34%),linear-gradient(-90deg,#050505,#10100f 65%,#060606);
  transform:translateX(var(--flat-right,0%)) scale(var(--flat-scale,1));
  transform-origin:right center;
}
.hero-portal .hero-vignette { z-index:6; opacity:.78; pointer-events:none; }
.portal-hero-content {
  position:absolute;
  z-index:8;
  top:50%;
  left:50%;
  padding-top:3.5rem;
  opacity:var(--hero-opacity,1);
  transform:translate(-50%,-50%) scale(var(--hero-scale,1));
  will-change:opacity,transform;
  pointer-events:auto;
}
.scene-copy {
  position:absolute;
  z-index:7;
  color:var(--ivory);
  opacity:0;
  will-change:opacity,transform;
}
.scene-copy p { margin:0 0 .8rem; color:var(--gold); font-size:.62rem; font-weight:500; letter-spacing:.24em; text-transform:uppercase; }
.scene-copy h2 { margin:0; font-size:clamp(2.6rem,3.8vw,3.5rem); line-height:.96; letter-spacing:-.039em; }
.scene-copy span { display:block; margin-top:1rem; color:#b7b3aa; font-size:.78rem; line-height:1.7; letter-spacing:.02em; }
.exterior-copy {
  left:50%;
  bottom:12%;
  width:min(760px,calc(100vw - 40px));
  text-align:center;
  opacity:var(--exterior-copy,0);
  transform:translate(-50%,var(--exterior-copy-y,22px));
  transform-origin:center bottom;
}
.interior-copy {
  left:50%;
  bottom:12%;
  width:min(760px,calc(100vw - 40px));
  text-align:center;
  opacity:var(--interior-copy,0);
  transform:translate(-50%,var(--interior-copy-y,22px)) scale(var(--interior-copy-scale,1));
}
.hero-portal .scroll-cue {
  z-index:9;
  opacity:var(--scroll-cue-opacity,0);
  visibility:var(--scroll-cue-visibility,hidden);
  transition:opacity .45s ease, visibility 0s linear .45s;
}
.hero-portal .scroll-cue.is-active { transition-delay:0s; }
.hero-portal .kicker,
.hero-portal .hero-logo,
.hero-portal h1,
.hero-portal .hero-intro,
.hero-portal .hero-actions { animation:hero-arrival .9s var(--ease) both; }
.hero-portal .hero-logo { animation-delay:.08s; }
.hero-portal h1 { animation-delay:.16s; }
.hero-portal .hero-intro { animation-delay:.24s; }
.hero-portal .hero-actions { animation-delay:.32s; }
@keyframes hero-arrival { from { opacity:0; transform:translateY(22px); } }

.concept-transition { position:relative; height:220vh; overflow:clip; background:#050505; }
.concept-sticky { position:sticky; top:0; height:100svh; min-height:620px; overflow:hidden; isolation:isolate; background:#050505; }
.concept-sticky::before { content:""; position:absolute; z-index:-3; inset:0; background:linear-gradient(180deg,#050505 0%,transparent 16%,transparent 84%,#050505 100%); pointer-events:none; }
.concept-ambient { position:absolute; z-index:-2; inset:0; background:radial-gradient(circle at 50% 50%,rgba(180,155,104,.075),transparent 31%); opacity:.8; }
.concept-orbit { position:absolute; z-index:-1; top:50%; left:50%; width:min(620px,68vw); aspect-ratio:1; border:1px solid rgba(222,213,199,.105); border-radius:50%; opacity:var(--concept-orbit-opacity,.34); box-shadow:0 0 120px rgba(180,155,104,.045),inset 0 0 90px rgba(222,213,199,.018); transform:translate(-50%,-50%) scale(var(--concept-orbit-scale,.94)) rotate(var(--concept-orbit-rotation,0deg)); will-change:transform,opacity; }
.concept-orbit::after { content:""; position:absolute; inset:17%; border:1px solid rgba(180,155,104,.18); border-radius:50%; }
.concept-orbit i { position:absolute; width:6px; height:6px; border-radius:50%; background:var(--ivory); box-shadow:0 0 24px rgba(222,213,199,.82); }
.concept-orbit i:first-child { top:12%; left:21%; }
.concept-orbit i:last-child { right:8%; bottom:29%; }
.concept-stage { position:absolute; inset:0; display:grid; place-items:center; padding-block:6rem; }
.concept-stage-intro { opacity:var(--concept-first-opacity,1); transform:translate3d(0,var(--concept-first-y,0),0) scale(var(--concept-first-scale,1)); filter:blur(var(--concept-first-blur,0)); will-change:transform,opacity,filter; }
.concept-stage-selection { opacity:var(--concept-second-opacity,0); transform:translate3d(0,var(--concept-second-y,24px),0) scale(var(--concept-second-scale,.985)); filter:blur(var(--concept-second-blur,10px)); will-change:transform,opacity,filter; }
.concept-step { position:absolute; z-index:4; left:50%; bottom:2.2rem; display:flex; align-items:center; gap:.7rem; transform:translateX(-50%); color:#766f65; font-size:.48rem; letter-spacing:.14em; }
.concept-step i { position:relative; display:block; width:48px; height:1px; overflow:hidden; background:rgba(222,213,199,.14); }
.concept-step i::after { content:""; position:absolute; inset:0; transform:scaleX(var(--concept-progress,0)); transform-origin:left; background:var(--gold); }
.concept-panel-intro { display:flex; flex-direction:column; align-items:center; width:var(--shell); max-width:620px; text-align:center; }
.concept-panel-intro .section-index { margin-bottom:1rem; }
.concept-panel-intro h2 { margin:0; font-size:clamp(2.8rem,3.8vw,3.4rem); line-height:.94; letter-spacing:-.041em; }
.concept-panel-intro h2 em { color:#999287; }
.concept-audience { max-width:560px; margin:1.35rem auto 0; color:#b1aa9f; font:400 clamp(1.1rem,1.5vw,1.35rem)/1.25 var(--serif); }
.concept-summary { max-width:510px; margin:.9rem auto 0; color:#88837c; font-size:.68rem; line-height:1.75; }
.concept-panel-selection { width:var(--shell); max-width:620px; margin-inline:auto; text-align:center; }
.concept-selection-grid { display:flex; flex-direction:column; align-items:center; }
.concept-selection-lead .section-index { margin-bottom:1.1rem; }
.concept-selection-lead h2 { max-width:560px; margin:0 auto; font-size:clamp(2.7rem,3.7vw,3.35rem); line-height:.94; letter-spacing:-.041em; }
.concept-selection-lead h2 em { color:#999287; }
.concept-details { display:flex; flex-direction:column; align-items:center; gap:.55rem; width:100%; margin-top:1.6rem; padding-top:1.25rem; border-top:1px solid var(--line); text-align:center; }
.concept-details p { width:100%; margin:0; color:#9b958c; font-size:.69rem; line-height:1.7; }
.concept-line { display:flex; align-items:center; justify-content:center; gap:.9rem; width:100%; margin:1.35rem 0 0; color:#c5bcaf; font-size:.49rem; font-weight:500; letter-spacing:.17em; text-transform:uppercase; }

.change { background:#050505; }
.section-heading { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.65fr); align-items:end; gap:3.5rem; margin-bottom:3.3rem; }
.section-heading h2, .inside-heading h2, .restricted-heading h2, .application-intro h2 { margin:.75rem 0 0; font-size:clamp(2.5rem,3.7vw,3.35rem); line-height:.98; letter-spacing:-.039em; }
.section-heading > p { max-width:460px; margin:0 0 .4rem auto; color:var(--muted); font-size:.84rem; line-height:1.8; }
.story-rail { display:flex; min-height:470px; border:1px solid var(--line); border-radius:20px; overflow:hidden; background:#090909; }
.story-card { position:relative; flex:1 1 25%; min-width:0; overflow:hidden; border-right:1px solid var(--line); outline:none; transition:flex 1.35s cubic-bezier(.22,1,.36,1), filter .95s ease; }
.story-card:last-child { border-right:0; }
.story-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.58) contrast(1.08) brightness(.58); transition:transform 1.55s cubic-bezier(.22,1,.36,1), filter 1s ease; }
.story-shade { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.15) 48%,rgba(0,0,0,.94)); }
.story-copy { position:absolute; z-index:2; left:1.7rem; right:1.7rem; bottom:1.8rem; }
.story-copy span { color:#c2a76f; font-size:.58rem; letter-spacing:.15em; text-transform:uppercase; }
.story-copy h3 { margin:.7rem 0 .5rem; font-size:clamp(1.6rem,2.2vw,2.15rem); line-height:.97; }
.story-copy p { max-width:270px; margin:0; color:#c4c0b8; font-size:.72rem; line-height:1.65; opacity:0; transform:translateY(10px); transition:opacity .75s ease .12s, transform .9s cubic-bezier(.22,1,.36,1) .08s; }
.story-card:hover, .story-card:focus-visible { flex-basis:39%; }
.story-rail:hover .story-card:not(:hover) { filter:brightness(.58); }
.story-card:hover img, .story-card:focus-visible img { transform:scale(1.045); filter:saturate(.68) contrast(1.08) brightness(.72); }
.story-card:hover .story-copy p, .story-card:focus-visible .story-copy p { opacity:1; transform:none; }
.change-close { margin:2.2rem 0 0; color:var(--dim); text-align:center; font-size:.64rem; letter-spacing:.24em; text-transform:uppercase; }

.code { overflow:hidden; }
.section-heading.compact { margin-bottom:3.4rem; }
.code-stage { position:relative; height:320px; display:flex; flex-direction:column; justify-content:center; gap:1.55rem; overflow:hidden; border-block:1px solid var(--line); background:radial-gradient(circle at center,rgba(180,155,104,.09),transparent 18%); }
.code-stage::before, .code-stage::after { content:""; position:absolute; z-index:3; top:0; bottom:0; width:16vw; pointer-events:none; }
.code-stage::before { left:0; background:linear-gradient(90deg,#050505,transparent); }
.code-stage::after { right:0; background:linear-gradient(-90deg,#050505,transparent); }
.code-track { width:100%; overflow:hidden; transform:none; }
.code-track-b { transform:none; }
.code-loop { display:flex; width:max-content; align-items:center; animation:code-flow 56s linear infinite; }
.code-track-b .code-loop { animation-direction:reverse; animation-duration:64s; }
.code-loop span { min-width:max-content; padding-inline:1.55rem; color:var(--ivory); font:400 clamp(2.4rem,3.7vw,3.35rem)/1 var(--serif); letter-spacing:-.031em; }
.code-loop i { display:grid; width:38px; height:38px; place-items:center; flex:0 0 auto; border:1px solid rgba(232,227,218,.2); border-radius:50%; color:#9a958d; font:normal .58rem/1 var(--sans); }
.code-seal { position:absolute; z-index:5; top:50%; left:50%; width:92px; aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(221,206,177,.4); border-radius:50%; background:linear-gradient(145deg,#292826,#080808 58%,#1b1a18); box-shadow:0 0 55px rgba(210,195,166,.14),inset 0 1px rgba(232,227,218,.24); transform:translate(-50%,-50%); }
.code-seal::before { content:""; position:absolute; inset:8px; border:1px solid rgba(232,227,218,.09); border-radius:50%; }
.code-seal strong { font-size:1.1rem; font-weight:500; letter-spacing:.16em; }
.code-seal span { margin-top:.55rem; color:var(--gold); font-size:.46rem; letter-spacing:.25em; }
@keyframes code-flow { to { transform:translateX(-50%); } }

.inside { display:grid; grid-template-columns:minmax(330px,.8fr) minmax(0,1.25fr); gap:clamp(3rem,6vw,5.5rem); align-items:start; }
.inside-visual { position:sticky; top:5.5rem; min-height:550px; overflow:hidden; border:1px solid var(--line); border-radius:20px; background:#0a0a0a; }
.inside-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:saturate(.58) contrast(1.07) brightness(.63); }
.inside-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.06) 50%,rgba(0,0,0,.88)); }
.inside-visual-label { position:absolute; z-index:2; left:2rem; right:2rem; bottom:2rem; display:flex; justify-content:space-between; align-items:end; }
.inside-visual-label span { color:#b7b2a9; font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; }
.inside-visual-label strong { font-family:var(--serif); font-size:1.4rem; font-weight:400; }
.inside-heading > p:not(.section-index) { max-width:540px; margin:1.5rem 0 0; color:var(--muted); font-size:.84rem; line-height:1.8; }
.inside-heading > .inside-disclaimer { margin-top:1rem; margin-bottom:3.2rem; color:#777570; }
.inside-list { border-top:1px solid var(--line); }
.inside-row { display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:.9rem; align-items:center; min-height:94px; border-bottom:1px solid var(--line); }
.inside-row > span { color:#65625d; font-size:.58rem; }
.inside-row h3 { margin:0; font-size:clamp(1.3rem,1.7vw,1.6rem); line-height:1; }
.inside-row p { margin:.45rem 0 0; color:#7f7b74; font-size:.67rem; line-height:1.5; }
.inside-row b { padding:.48rem .68rem; border:1px solid rgba(180,155,104,.3); border-radius:999px; color:#c5aa73; background:rgba(180,155,104,.05); font-size:.5rem; font-weight:500; letter-spacing:.15em; text-transform:uppercase; white-space:nowrap; }

.restricted { overflow:hidden; padding-block:5.25rem 6.5rem; background:#070707; }
.restricted-heading { width:var(--shell); max-width:790px; margin:0 auto 4rem; text-align:center; }
.restricted-heading > p:last-child { max-width:520px; margin:1.5rem auto 0; color:var(--muted); font-size:.82rem; }
.card-fan { position:relative; height:380px; perspective:1500px; }
.access-card { position:absolute; top:47%; left:50%; width:min(270px,23vw); aspect-ratio:1.55; overflow:hidden; padding:1.25rem; border:1px solid rgba(232,227,218,.19); border-radius:17px; background:#101010; box-shadow:0 36px 66px rgba(0,0,0,.72),inset 0 1px rgba(232,227,218,.14); outline:none; transition:filter .45s ease, margin-top .55s var(--ease), box-shadow .55s ease; }
.access-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:blur(3.5px) saturate(.42) brightness(.38); transform:scale(1.08); transition:filter .55s ease, transform .8s var(--ease); }
.card-scrim { position:absolute; inset:0; background:linear-gradient(135deg,rgba(0,0,0,.12),rgba(0,0,0,.78)),repeating-linear-gradient(180deg,transparent 0 19px,rgba(232,227,218,.018) 20px); backdrop-filter:blur(.7px); }
.access-card::after { content:""; position:absolute; inset:-70%; background:linear-gradient(115deg,transparent 44%,rgba(232,227,218,.09) 50%,transparent 56%); transform:translateX(-50%); transition:transform 1s var(--ease); }
.access-card:hover::after, .access-card:focus-visible::after { transform:translateX(50%); }
.access-card > p, .access-card > h3, .access-card > b, .lock-mark { position:relative; z-index:2; }
.access-card > p { margin:0; color:#aaa59b; font-size:.52rem; letter-spacing:.18em; text-transform:uppercase; }
.access-card > h3 { position:absolute; z-index:2; left:1.25rem; bottom:2.55rem; margin:0; font-size:clamp(1.45rem,2.1vw,1.95rem); line-height:.92; }
.access-card > b { position:absolute; left:1.25rem; bottom:1.1rem; color:#c2a66c; font-size:.45rem; font-weight:500; letter-spacing:.17em; text-transform:uppercase; }
.lock-mark { position:absolute; top:1.2rem; right:1.2rem; width:30px; height:26px; border:1px solid rgba(225,217,201,.55); border-radius:7px; background:linear-gradient(145deg,#2b2a28,#101010); box-shadow:inset 0 1px rgba(232,227,218,.14); }
.lock-mark::before { content:""; position:absolute; left:7px; top:-12px; width:16px; height:14px; border:1px solid rgba(225,217,201,.55); border-bottom:0; border-radius:11px 11px 0 0; }
.lock-mark::after { content:""; position:absolute; left:14px; top:9px; width:3px; height:8px; border-radius:2px; background:#bcb5a8; }
.card-one { z-index:1; transform:translate(-122%,-38%) rotate(-13deg); }
.card-two { z-index:3; transform:translate(-82%,-57%) rotate(-4deg); }
.card-three { z-index:4; transform:translate(-18%,-57%) rotate(4deg); }
.card-four { z-index:2; transform:translate(22%,-38%) rotate(13deg); }
.access-card:hover, .access-card:focus-visible { z-index:10; margin-top:-18px; box-shadow:0 55px 110px rgba(0,0,0,.9),inset 0 1px rgba(232,227,218,.2); }
.access-card:hover img, .access-card:focus-visible img { filter:blur(.8px) saturate(.62) brightness(.58); transform:scale(1.09); }

.application { display:grid; grid-template-columns:minmax(0,.8fr) minmax(500px,1.2fr); gap:clamp(3rem,6vw,6rem); align-items:start; }
.application-intro { position:sticky; top:8rem; }
.application-intro > p:not(.section-index) { max-width:430px; color:var(--muted); font-size:.84rem; line-height:1.8; }
.application-note { display:flex; gap:1.4rem; margin-top:3rem; padding-top:1.2rem; border-top:1px solid var(--line); color:#77736c; font-size:.58rem; letter-spacing:.13em; text-transform:uppercase; }
.application-form { display:grid; grid-template-columns:1fr 1fr; gap:1.3rem 1rem; padding:clamp(1.5rem,4vw,3.2rem); border:1px solid var(--line); border-radius:28px; background:linear-gradient(145deg,rgba(232,227,218,.035),transparent 52%),#090909; box-shadow:inset 0 1px rgba(232,227,218,.035); }
.application-form label { display:flex; flex-direction:column; gap:.55rem; }
.application-form label.wide, .form-step, .privacy-copy, .submit-button, .form-status { grid-column:1/-1; }
.form-step { margin:0 0 .35rem; padding-bottom:.9rem; border-bottom:1px solid var(--line); color:var(--gold); font-size:.62rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; }
.form-step-secondary { margin-top:1.5rem; }
.application-form label span { color:#8f8b83; font-size:.6rem; letter-spacing:.08em; }
.application-form label small { margin-top:-.2rem; color:#666560; font-size:.55rem; line-height:1.5; }
.application-form input, .application-form textarea { width:100%; border:0; border-bottom:1px solid rgba(232,227,218,.17); border-radius:0; outline:0; color:var(--ivory); background:transparent; resize:vertical; transition:border-color .25s ease; }
.application-form input { height:46px; }
.application-form textarea { min-height:66px; padding:.7rem 0; }
.application-form input:focus, .application-form textarea:focus { border-color:var(--gold); }
.privacy-copy { margin:.4rem 0 0; color:#66635e; font-size:.57rem; }
.submit-button { width:100%; margin-top:.5rem; }
.form-status { min-height:1.2rem; margin:0; color:#bca675; font-size:.7rem; text-align:center; }

.site-footer { display:grid; grid-template-columns:110px minmax(130px,1fr) auto minmax(100px,.65fr); gap:clamp(1.5rem,3vw,3rem); align-items:center; padding-block:2.3rem 3rem; border-top:1px solid var(--line); color:#6f6b65; font-size:.56rem; letter-spacing:.1em; text-transform:uppercase; }
.footer-logo { position:relative; display:block; width:110px; height:54px; overflow:hidden; }
.footer-logo img { position:absolute; top:50%; left:0; width:100%; max-width:none; height:auto; transform:translateY(-50%); }
.site-footer > p { margin:0; }
.footer-claim { justify-self:center; white-space:nowrap; }
.site-footer nav { display:flex; justify-content:center; gap:1.3rem; white-space:nowrap; }
.copyright { justify-self:end; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .85s ease, transform .85s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1024px) {
  :root { --shell:min(100% - 40px, 920px); }
  .section { padding-block:6rem; }
  .site-header { grid-template-columns:120px 1fr 140px; width:calc(100vw - 28px); }
  .site-nav { gap:1.25rem; }
  .hero { min-height:100svh; }
  .portal { height:190vh; }
  .hero-portal { height:300vh; }
  .section-heading { grid-template-columns:1fr; gap:1.5rem; }
  .section-heading > p { margin-left:0; }
  .concept-orbit { width:min(590px,72vw); }
  .story-rail { display:grid; grid-template-columns:1fr 1fr; height:auto; min-height:0; }
  .story-card { min-height:400px; border-bottom:1px solid var(--line); }
  .story-card:nth-child(2n) { border-right:0; }
  .story-card:hover, .story-card:focus-visible { flex-basis:auto; }
  .story-copy p { opacity:1; transform:none; }
  .inside { grid-template-columns:minmax(280px,.72fr) minmax(0,1fr); gap:3rem; }
  .inside-visual { min-height:520px; }
  .access-card { width:260px; }
  .card-one { transform:translate(-116%,-36%) rotate(-11deg); }
  .card-two { transform:translate(-79%,-56%) rotate(-4deg); }
  .card-three { transform:translate(-21%,-56%) rotate(4deg); }
  .card-four { transform:translate(16%,-36%) rotate(11deg); }
  .application { grid-template-columns:1fr; }
  .application-intro { position:relative; top:auto; }
}

@media (max-width: 760px) {
  :root { --shell:calc(100vw - 32px); }
  .section { padding-block:4.5rem; }
  .site-header { grid-template-columns:minmax(0,1fr) auto; min-height:58px; top:.65rem; padding:.4rem .45rem .4rem .8rem; border-radius:15px; }
  .brand { width:94px; height:44px; }
  .site-nav { display:none; }
  .member-link { min-height:40px; padding-inline:.8rem; font-size:.58rem; }
  .hero { min-height:920px; align-items:start; }
  .hero-portal { height:270vh; }
  .hero-content { padding-top:8.5rem; }
  .portal-hero-content { top:48%; padding-top:3rem; }
  .hero-logo { width:min(70vw,250px); height:124px; }
  .hero h1, .hero-portal h1 { font-size:clamp(2.5rem,10vw,3.1rem); }
  .hero-intro { max-width:320px; font-size:.78rem; }
  .hero-actions { flex-direction:column; align-items:center; }
  .hero-actions .button { width:min(250px,100%); }
  .hero-media img { object-position:50% 50%; }
  .portal { height:155vh; }
  .portal-sticky { height:100svh; }
  .portal-room, .portal-window img { object-position:55% center; }
  .exterior-copy { left:50%; bottom:11%; width:calc(100vw - 32px); }
  .interior-copy { bottom:11%; width:calc(100vw - 32px); }
  .scene-copy h2 { font-size:2.4rem; }
  .scene-copy span { max-width:310px; font-size:.72rem; }
  .interior-copy span { margin-inline:auto; }
  .portal-word { font-size:3rem; letter-spacing:.1em; }
  .concept-transition { height:205vh; }
  .concept-sticky { min-height:560px; }
  .concept-stage { padding:6.5rem 0 4.5rem; }
  .concept-step { bottom:1.35rem; }
  .concept-orbit { width:min(520px,118vw); }
  .concept-panel-intro { max-width:520px; }
  .concept-panel-intro h2 { font-size:clamp(2.55rem,10.5vw,3.1rem); }
  .concept-audience { max-width:330px; margin-inline:auto; font-size:1.2rem; }
  .concept-summary { max-width:320px; margin-top:1rem; font-size:.68rem; }
  .concept-panel-selection { text-align:center; }
  .concept-selection-lead h2 { margin-inline:auto; font-size:clamp(2.5rem,10vw,3rem); }
  .concept-details { gap:.65rem; width:min(400px,100%); margin:1.25rem auto 0; padding-top:1rem; text-align:center; }
  .concept-details p { font-size:.67rem; line-height:1.7; }
  .concept-line { flex-direction:column; justify-content:center; gap:.6rem; max-width:350px; margin:2rem auto 0; font-size:.5rem; }
  .section-heading h2, .inside-heading h2, .restricted-heading h2, .application-intro h2 { font-size:clamp(2.3rem,9.5vw,2.9rem); }
  .story-rail { grid-template-columns:1fr; border-radius:20px; }
  .story-card { min-height:360px; border-right:0; }
  .story-copy { left:1.35rem; right:1.35rem; bottom:1.4rem; }
  .story-copy h3 { font-size:1.85rem; }
  .code-stage { height:270px; gap:1.15rem; }
  .code-loop span { padding-inline:1.1rem; font-size:2.45rem; }
  .code-seal { width:80px; }
  .inside { display:flex; flex-direction:column; gap:3.5rem; }
  .inside-visual { position:relative; top:auto; width:100%; min-height:400px; order:2; }
  .inside-content { display:contents; }
  .inside-heading { order:1; }
  .inside-list { order:3; width:100%; }
  .inside-row { grid-template-columns:28px minmax(0,1fr); min-height:108px; }
  .inside-row b { grid-column:2; width:max-content; margin-top:-.3rem; }
  .card-fan { width:100%; height:auto; display:flex; gap:.8rem; overflow-x:auto; padding:1rem 1rem 2.2rem; scroll-padding-inline:1rem; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .card-fan::-webkit-scrollbar { display:none; }
  .access-card, .card-one, .card-two, .card-three, .card-four { position:relative; inset:auto; flex:0 0 min(72vw,280px); width:min(72vw,280px); min-height:180px; aspect-ratio:1.55; scroll-snap-align:center; transform:none; }
  .access-card:nth-child(odd) { transform:rotate(-1.5deg); }
  .access-card:nth-child(even) { transform:rotate(1.5deg); }
  .access-card:hover, .access-card:focus-visible { margin-top:0; transform:translateY(-4px); }
  .restricted-heading { margin-bottom:3rem; }
  .application-form { grid-template-columns:1fr; padding:1.4rem; border-radius:20px; }
  .application-form label.wide, .form-step, .privacy-copy, .submit-button, .form-status { grid-column:auto; }
  .site-footer { grid-template-columns:1fr; align-items:start; gap:1rem; }
  .footer-logo { width:104px; height:52px; }
  .footer-claim { justify-self:start; }
  .site-footer nav { flex-wrap:wrap; }
  .copyright { justify-self:start; }
}

@media (max-width: 390px) {
  .hero h1, .hero-portal h1 { font-size:2.45rem; }
  .section-heading h2, .inside-heading h2, .restricted-heading h2, .application-intro h2 { font-size:2.25rem; }
  .concept-panel-intro h2 { font-size:2.45rem; }
  .concept-selection-lead h2 { font-size:2.35rem; }
  .inside-row h3 { font-size:1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
  .hero-portal { height:100svh; }
  .portal-facade { opacity:1; transform:none; }
  .portal-window { opacity:0; }
  .portal-hero-content { opacity:1; transform:translate(-50%,-50%); }
  .hero-portal .scroll-cue { display:none; }
  .hero-portal .hero-vignette { opacity:1; }
  .concept-transition { height:auto; }
  .concept-sticky { position:relative; height:auto; min-height:0; overflow:visible; }
  .concept-stage { position:relative; min-height:70svh; opacity:1; transform:none; filter:none; }
  .concept-orbit, .concept-step { display:none; }
}
