:root {
  --ink: #eef2e8;
  --night: #0b120d;
  --acid: #c7ff68;
  --paper: #e8e8dc;
  --forest: #153922;
  --progress: 0;
  --tilt-x: 0;
  --tilt-y: 0;
}

* { box-sizing: border-box; }

html {
  background: var(--night);
  color: var(--ink);
  font-family: "Manrope", sans-serif;
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: clip;
  background: var(--night);
}

a { color: inherit; }
button, input { font: inherit; }

.skip-link {
  position: fixed;
  z-index: 100;
  left: 1rem;
  top: 1rem;
  padding: .75rem 1rem;
  color: #0b120d;
  background: var(--acid);
  transform: translateY(-150%);
  transition: transform .2s ease;
}

.skip-link:focus { transform: translateY(0); }

.site-header {
  position: absolute;
  z-index: 30;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: max(1.25rem, env(safe-area-inset-top)) 1.25rem 0;
  mix-blend-mode: difference;
}

.wordmark {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: -.03em;
  text-decoration: none;
}

.wordmark-dot {
  display: inline-block;
  width: .58rem;
  height: .58rem;
  background: var(--acid);
  border-radius: 50% 0 50% 50%;
  transform: rotate(-35deg);
}

.login-link {
  font: 500 .68rem "DM Mono", monospace;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: .08em;
  border-bottom: 1px solid currentColor;
  padding-bottom: .22rem;
}

:focus-visible { outline: 2px solid var(--acid); outline-offset: 4px; }

.portal {
  position: relative;
  height: 245svh;
  background: #07110a;
}

.portal-stage {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 560px;
  overflow: hidden;
  isolation: isolate;
  perspective: 950px;
}

.canopy, .canopy-image, .sunbeam, .grain {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.canopy { z-index: -3; background: #07110a; }

.canopy-image {
  background-image: linear-gradient(180deg, rgba(3, 12, 5, .2), rgba(3, 9, 5, .74)), url("/cdx/images/unsplash/canopy.jpg");
  background-position: center;
  background-size: cover;
  will-change: transform, opacity;
}

.canopy-image-back {
  filter: saturate(.72) contrast(1.08);
  transform: scale(calc(1.03 + var(--progress) * .12));
}

.canopy-image-front {
  opacity: calc(.7 - var(--progress) * .46);
  filter: blur(1.5px) saturate(1.2);
  transform: scale(calc(1.18 + var(--progress) * .23)) translateY(calc(var(--progress) * -3%));
  clip-path: polygon(0 0, 100% 0, 100% 23%, 86% 17%, 78% 31%, 62% 22%, 49% 35%, 29% 21%, 17% 33%, 0 26%);
}

.sunbeam {
  inset: -20% -50% 0 10%;
  background: conic-gradient(from 197deg at 52% 0%, transparent 0 16deg, rgba(218, 255, 174, .19) 27deg, transparent 40deg);
  filter: blur(18px);
  mix-blend-mode: screen;
  opacity: calc(.45 + var(--progress) * .45);
  transform: translateX(calc(var(--tilt-x) * 1px));
}

.grain {
  opacity: .16;
  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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

.hero-copy {
  position: absolute;
  z-index: 5;
  top: 17svh;
  left: 1.25rem;
  right: 1.25rem;
  max-width: 42rem;
  opacity: calc(1 - var(--progress) * 2.15);
  transform: translateY(calc(var(--progress) * -46px));
  will-change: transform, opacity;
}

.kicker, .section-label {
  display: flex;
  gap: 1rem;
  margin: 0 0 1rem;
  font: 400 .6rem "DM Mono", monospace;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.kicker span + span::before { content: "/"; margin-right: 1rem; opacity: .55; }

h1, h2, p { text-wrap: pretty; }

h1 {
  margin: 0;
  max-width: 8.3em;
  font-size: clamp(2.8rem, 13vw, 6.9rem);
  line-height: .86;
  letter-spacing: -.075em;
  font-weight: 500;
}

h1 em, h2 i {
  font-family: "Newsreader", serif;
  font-weight: 400;
}

h1 em { color: var(--acid); }

.link-sculpture {
  position: absolute;
  z-index: 8;
  width: min(84vw, 390px);
  height: 310px;
  left: 50%;
  bottom: 8svh;
  transform-style: preserve-3d;
  transform: translate3d(calc(-50% + var(--tilt-x) * .7px), calc(var(--progress) * -20svh + var(--tilt-y) * .45px), calc(-150px + var(--progress) * 160px)) rotateX(calc(58deg - var(--progress) * 50deg + var(--tilt-y) * .12deg)) rotateZ(calc(-6deg + var(--progress) * 6deg + var(--tilt-x) * .07deg));
  will-change: transform;
}

.physical-card {
  position: absolute;
  left: 0;
  width: 100%;
  border: 1px solid rgba(255, 255, 255, .72);
  box-shadow: 0 18px 36px rgba(0, 0, 0, .28), 0 3px 0 #a9aa9f, 0 6px 0 #777b70;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transform-style: preserve-3d;
}

.profile-chip {
  top: 0;
  height: 76px;
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .7rem;
  color: #172017;
  background: rgba(238, 241, 228, .92);
  border-radius: 24px;
  transform: translateZ(calc(112px - var(--progress) * 60px)) translateY(calc(var(--progress) * -17px));
}

.profile-chip img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 17px;
}

.profile-chip span { display: flex; flex-direction: column; }
.profile-chip strong { font-size: .83rem; letter-spacing: -.03em; }
.profile-chip small { margin-top: .16rem; font: .52rem "DM Mono", monospace; opacity: .56; }

.profile-chip .status-dot {
  width: .55rem;
  height: .55rem;
  margin-left: auto;
  margin-right: .65rem;
  background: #86b93b;
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(134, 185, 59, .16);
}

.link-card {
  height: 62px;
  display: grid;
  grid-template-columns: 1.6rem 1fr 1.5rem;
  align-items: center;
  padding: 0 1rem;
  color: #131a13;
  background: rgba(232, 232, 220, .93);
  border-radius: 18px;
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: -.025em;
}

.card-index { font: .45rem "DM Mono", monospace; opacity: .5; }
.arrow { justify-self: end; font-size: .95rem; }
.link-card-one { top: 91px; transform: translateZ(calc(76px - var(--progress) * 38px)) translateX(calc(var(--progress) * -6px)); }
.link-card-two { top: 168px; transform: translateZ(calc(38px - var(--progress) * 19px)) translateX(calc(var(--progress) * 5px)); }
.link-card-three { top: 245px; transform: translateZ(0); }

.social-card {
  top: 322px;
  height: 46px;
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 0 1rem;
  color: var(--ink);
  background: rgba(12, 30, 17, .84);
  border-radius: 15px;
  border-color: rgba(216, 243, 205, .28);
  box-shadow: 0 16px 28px rgba(0, 0, 0, .3), 0 3px 0 #08150c;
  font: 500 .65rem "DM Mono", monospace;
  transform: translateZ(-36px);
}

.social-card small { margin-left: auto; font-size: .44rem; opacity: .55; }
.card-shadow { position: absolute; inset: 40px -16px -82px; background: rgba(0,0,0,.55); filter: blur(28px); transform: translateZ(-70px); }

.scroll-note {
  position: absolute;
  z-index: 8;
  left: 1.25rem;
  bottom: max(1.3rem, env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  gap: .65rem;
  margin: 0;
  font: .52rem "DM Mono", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: calc(.72 - var(--progress));
}

.scroll-note span { width: 1.8rem; height: 1px; background: currentColor; transform-origin: left; animation: pulse 1.8s ease-in-out infinite; }
@keyframes pulse { 50% { transform: scaleX(.45); opacity: .4; } }

.turn {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 2rem 1.25rem 3rem;
  background: #132417;
  isolation: isolate;
}

.turn-photo, .turn-scrim { position: absolute; inset: 0; }
.turn-photo { z-index: -2; background: #17301d center / cover; transform: scale(1.05); transition: opacity .8s ease; }
.turn-photo.is-visible { background-image: url("/cdx/images/unsplash/aerial-forest.jpg"); }
.turn-scrim { z-index: -1; background: linear-gradient(180deg, rgba(5, 13, 7, .16) 0%, rgba(5, 13, 7, .84) 70%, #071009 100%); }
.turn-content { max-width: 52rem; }
.turn .section-label { color: var(--acid); }

.turn h2 {
  margin: 0;
  max-width: 9em;
  font-size: clamp(2.45rem, 11.5vw, 6.2rem);
  line-height: .91;
  letter-spacing: -.065em;
  font-weight: 500;
}

.turn h2 span {
  display: block;
  color: var(--acid);
  font: 400 1.9em/.74 "Newsreader", serif;
  letter-spacing: -.08em;
}

.turn-detail {
  max-width: 32rem;
  margin: 1.35rem 0 0;
  font-size: .8rem;
  line-height: 1.65;
  color: rgba(238, 242, 232, .74);
}

.plain-note {
  position: absolute;
  right: 1.25rem;
  top: 1.5rem;
  margin: 0;
  writing-mode: vertical-rl;
  font: .48rem "DM Mono", monospace;
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: .65;
}

.proof {
  position: relative;
  overflow: hidden;
  padding: 6rem 1.25rem 7rem;
  color: #172017;
  background: var(--paper);
}

.moss-plane {
  position: absolute;
  top: -18vw;
  right: -38%;
  width: 92%;
  aspect-ratio: 1;
  background: #31513a center / cover;
  clip-path: polygon(20% 0, 100% 9%, 84% 94%, 4% 100%, 0 27%);
  opacity: .72;
  transform: rotate(8deg);
  filter: saturate(.78);
}

.moss-plane.is-visible { background-image: url("/cdx/images/unsplash/moss.jpg"); }

.proof-copy { position: relative; z-index: 2; max-width: 38rem; }
.proof .section-label { color: #315538; }

.proof h2, .claim h2 {
  margin: 0;
  font-size: clamp(2.9rem, 14vw, 6.4rem);
  line-height: .86;
  letter-spacing: -.075em;
  font-weight: 500;
}

.proof h2 i { color: #3e6d44; }
.proof-copy > p:last-child { max-width: 26rem; margin: 1.5rem 0 3rem; font-size: .8rem; line-height: 1.6; color: rgba(23, 32, 23, .68); }

.assembled-profile {
  position: relative;
  z-index: 3;
  width: min(100%, 410px);
  margin: 5rem auto 0;
  padding: .8rem;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 30px;
  color: var(--ink);
  background: rgba(16, 39, 23, .94);
  box-shadow: 0 34px 60px rgba(29, 45, 27, .3), 0 6px 0 #09200f, 0 10px 0 #b8b9ac;
  transform: rotate(-2.5deg);
}

.assembled-top { display: grid; grid-template-columns: 54px 1fr auto; align-items: center; gap: .75rem; padding: .25rem .25rem 1rem; }
.assembled-top img { width: 54px; height: 54px; border-radius: 18px; object-fit: cover; }
.assembled-top div { display: flex; flex-direction: column; gap: .2rem; }
.assembled-top strong { font-size: .78rem; }
.assembled-top span { font-size: .54rem; opacity: .6; }
.assembled-mark { color: var(--acid); font-size: 1.2rem !important; opacity: 1 !important; }

.assembled-profile > a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 58px;
  margin-top: .55rem;
  padding: 0 1rem;
  border-radius: 16px;
  color: #172017;
  background: var(--paper);
  text-decoration: none;
  font-size: .72rem;
  font-weight: 600;
}

.assembled-foot { display: flex; justify-content: space-between; padding: 1.15rem .75rem .4rem; font: .56rem "DM Mono", monospace; }
.assembled-foot small { opacity: .45; font-size: .44rem; }

.claim {
  position: relative;
  overflow: hidden;
  min-height: 92svh;
  display: flex;
  align-items: center;
  padding: 6rem 1.25rem;
  background: #0b120d;
}

.claim::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 70% 35%, rgba(76, 131, 61, .19), transparent 34%), linear-gradient(135deg, transparent 0 57%, rgba(199,255,104,.035) 57% 58%, transparent 58%);
}

.claim-light { position: absolute; top: -15rem; right: -18rem; width: 32rem; height: 32rem; border-radius: 50%; background: rgba(199, 255, 104, .1); filter: blur(70px); }
.claim-inner { position: relative; width: 100%; max-width: 66rem; margin: auto; }
.claim .section-label { color: var(--acid); }
.claim h2 i { color: var(--acid); }

.claim-form { margin-top: 3rem; max-width: 48rem; }
.claim-form > label { display: block; margin-bottom: .7rem; font: .55rem "DM Mono", monospace; letter-spacing: .09em; text-transform: uppercase; }

.claim-control {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0;
  padding: .75rem;
  border: 1px solid rgba(238,242,232,.26);
  border-radius: 20px;
  background: rgba(255,255,255,.055);
}

.claim-control > span { padding-left: .2rem; font: .67rem "DM Mono", monospace; color: rgba(238,242,232,.55); }
.claim-control input { width: 100%; min-width: 0; padding: .3rem 0; border: 0; outline: 0; color: var(--ink); background: transparent; font: .67rem "DM Mono", monospace; }
.claim-control input::placeholder { color: rgba(238,242,232,.28); }

.claim-control button {
  grid-column: 1 / -1;
  min-height: 53px;
  margin-top: .8rem;
  border: 0;
  border-radius: 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  color: #15200f;
  background: var(--acid);
  font-size: .75rem;
  font-weight: 700;
  cursor: pointer;
}

.claim-control button:hover { background: #d5ff8e; }
.handle-note, .handle-error { min-height: 1em; margin: .8rem 0 0; font: .51rem "DM Mono", monospace; color: rgba(238,242,232,.48); }
.handle-error { color: #ffb798; }

.site-footer {
  display: grid;
  gap: 1.4rem;
  padding: 2.2rem 1.25rem calc(2.2rem + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(238,242,232,.13);
  color: rgba(238,242,232,.55);
  background: #080d09;
  font: .5rem "DM Mono", monospace;
}

.site-footer .wordmark { color: var(--ink); font-family: "Manrope", sans-serif; font-size: .82rem; }
.site-footer p { margin: 0; }
.site-footer details { max-width: 28rem; }
.site-footer summary { cursor: pointer; }
.site-footer details p { margin-top: .75rem; line-height: 1.6; }
.copyright { opacity: .55; }

@media (min-width: 700px) {
  .site-header { padding: 1.6rem 2rem 0; }
  .hero-copy { left: 6vw; top: 16vh; }
  .link-sculpture { width: 390px; left: auto; right: 9vw; bottom: 18vh; transform: translate3d(calc(var(--tilt-x) * .7px), calc(var(--progress) * -18vh + var(--tilt-y) * .45px), calc(-150px + var(--progress) * 160px)) rotateX(calc(58deg - var(--progress) * 50deg + var(--tilt-y) * .12deg)) rotateZ(calc(-6deg + var(--progress) * 6deg + var(--tilt-x) * .07deg)); }
  .scroll-note { left: 2rem; }
  .turn { padding: 5rem 6vw; }
  .turn-detail { font-size: .92rem; }
  .proof { min-height: 105vh; padding: 9rem 6vw; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 8vw; }
  .moss-plane { right: -15%; width: 56%; top: -8%; }
  .assembled-profile { margin: 0; }
  .claim { padding: 9rem 6vw; }
  .claim-control { grid-template-columns: auto minmax(0, 1fr) 140px; padding: .55rem; border-radius: 16px; }
  .claim-control button { grid-column: auto; min-height: 52px; margin-top: 0; }
  .site-footer { grid-template-columns: 1.1fr 1fr 1.5fr auto; align-items: start; padding: 2.5rem 2rem; }
}

@media (max-width: 360px) {
  .hero-copy, .site-header, .turn, .proof, .claim, .site-footer { padding-left: 1rem; padding-right: 1rem; }
  .link-sculpture { width: calc(100vw - 2rem); }
  h1 { font-size: 2.72rem; }
  .claim-control > span, .claim-control input { font-size: .6rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .canopy-image, .hero-copy, .link-sculpture, .physical-card { transform: none !important; }
  .hero-copy { opacity: 1; }
  .link-sculpture { bottom: 6svh; }
}

@supports not (overflow: clip) {
  html, body { overflow-x: hidden; }
}
