:root {
  --ink: #0a0806;
  --ink-2: #110d09;
  --ink-3: #18130d;
  --line: rgba(220, 171, 77, .26);
  --line-soft: rgba(220, 171, 77, .12);
  --gold: #dcab4d;
  --gold-hi: #f6dc9c;
  --ivory: #f4ecdc;
  --mute: #a99c84;
  --dim: #6f6453;
  --grad: linear-gradient(180deg, #ffe9b0 0%, #dcab4d 48%, #9c6b1a 100%);
  --foil: linear-gradient(100deg, #9c6b1a 0%, #dcab4d 22%, #fff0c2 40%, #dcab4d 58%, #b07b22 78%, #f2d38a 100%);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: Poppins, system-ui, sans-serif;
  --ease: cubic-bezier(.2, .8, .2, 1);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-padding-top: 90px; }
html:not(.lenis) { scroll-behavior: smooth; }
body { background: var(--ink); color: var(--ivory); font: 300 16px/1.7 var(--sans); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.wrap { width: min(1240px, 100% - 48px); margin-inline: auto; }
h1, h2, h3, .say, .facts b, .rn, .sn, .ring-txt b, .contact-list > *, blockquote, summary, .sig b, .foot-brand p { font-variant-numeric: lining-nums; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1; letter-spacing: -.01em; }
h2 { font-size: clamp(42px, 5.6vw, 82px); }
.foil { background-image: var(--foil); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: foil 8s ease-in-out infinite; }
@keyframes foil { 0%, 100% { background-position: 0% 0; } 50% { background-position: 100% 0; } }
.idx { font: 500 11.5px/1 var(--sans); letter-spacing: .32em; text-transform: uppercase; color: var(--gold); margin-bottom: 30px; display: flex; align-items: center; gap: 14px; }
.idx::after { content: ""; width: 60px; height: 1px; background: var(--line); }
.sub { color: var(--mute); font-size: 17px; margin-top: 26px; max-width: 460px; }

.grain { position: fixed; inset: -50%; z-index: 90; pointer-events: none; opacity: .06; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%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)'/%3E%3C/svg%3E"); animation: grain 1.2s steps(4) infinite; }
@keyframes grain { 0% { transform: translate(0, 0); } 25% { transform: translate(-3%, 2%); } 50% { transform: translate(2%, -3%); } 75% { transform: translate(-2%, -1%); } }

.cursor { position: fixed; left: 0; top: 0; z-index: 95; width: 34px; height: 34px; margin: -17px 0 0 -17px; border: 1px solid rgba(246, 220, 156, .6); border-radius: 50%; pointer-events: none; opacity: 0; transition: width .3s, height .3s, margin .3s, background .3s, opacity .3s; }
.cursor.on { opacity: 1; }
.cursor.big { width: 70px; height: 70px; margin: -35px 0 0 -35px; background: rgba(220, 171, 77, .1); border-color: transparent; }

/* loader */
.loader { position: fixed; inset: 0; z-index: 100; background: var(--ink); display: grid; place-content: center; justify-items: center; gap: 22px; }
.ld-mark { width: 110px; height: 110px; }
.ld-ring { stroke-dasharray: 296; stroke-dashoffset: 296; transform: rotate(-90deg); transform-origin: 50% 50%; }
.ld-ring-2 { stroke-dasharray: 255; stroke-dashoffset: 255; }
.ld-mg { opacity: 0; }
.ld-name { font: 500 12px var(--sans); letter-spacing: .6em; text-transform: uppercase; color: var(--gold); opacity: 0; margin-right: -.6em; }
.static .loader, .no-js .loader { display: none; }

/* buttons */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; height: 58px; padding: 0 34px; font: 500 13px var(--sans); letter-spacing: .14em; text-transform: uppercase; overflow: hidden; isolation: isolate; cursor: pointer; border: 0; transition: color .45s var(--ease), border-color .45s; }
.btn span { position: relative; z-index: 1; }
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; transform: translateY(101%); transition: transform .5s var(--ease); }
.btn:hover::before { transform: none; }
.btn-gold { background: var(--grad); color: #1c1305; box-shadow: 0 16px 40px -18px rgba(220, 171, 77, .8), inset 0 1px 0 rgba(255, 255, 255, .5); }
.btn-gold::before { background: var(--ivory); }
.btn-hair { border: 1px solid var(--line); color: var(--gold-hi); }
.btn-hair::before { background: var(--grad); }
.btn-hair:hover { color: #1c1305; border-color: transparent; }
.btn-sm { height: 44px; padding: 0 24px; font-size: 11.5px; }
.btn-block { width: 100%; }
.link-arrow { display: inline-flex; align-items: center; gap: 12px; font-weight: 400; font-size: 15px; color: var(--gold-hi); padding-bottom: 4px; background: linear-gradient(var(--gold), var(--gold)) 0 100% / 100% 1px no-repeat; transition: background-size .4s var(--ease); }
.link-arrow:hover { background-size: 0 1px; background-position: 100% 100%; }
.link-arrow i { font-style: normal; transition: transform .3s; }
.link-arrow:hover i { transform: translateX(5px); }

/* nav */
.nav { position: fixed; inset: 0 0 auto; z-index: 50; transition: background .4s, border-color .4s, transform .5s var(--ease); border-bottom: 1px solid transparent; }
.nav.solid { background: rgba(10, 8, 6, .8); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-color: var(--line-soft); }
.nav.away { transform: translateY(-100%); }
.nav-in { height: 84px; display: flex; align-items: center; gap: 44px; }
.brand { display: flex; align-items: center; gap: 13px; margin-right: auto; }
.brand-txt { display: flex; flex-direction: column; line-height: 1; }
.brand-txt b { font: 600 15px var(--sans); letter-spacing: .2em; text-transform: uppercase; background-image: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.brand-txt small { font-size: 8.5px; letter-spacing: .5em; color: var(--mute); text-transform: uppercase; margin-top: 6px; }
.links { display: flex; gap: 38px; font-size: 13.5px; letter-spacing: .04em; color: var(--mute); }
.links a { position: relative; transition: color .3s; }
.links a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: right; transition: transform .4s var(--ease); }
.links a:hover { color: var(--ivory); }
.links a:hover::after { transform: scaleX(1); transform-origin: left; }

/* hero */
.hero { position: relative; min-height: 100svh; display: flex; align-items: center; padding: 130px 0 110px; overflow: hidden; background: radial-gradient(70% 70% at 70% 45%, #2a1e0b 0%, #120d07 50%, var(--ink) 100%); }
.dust { position: absolute; inset: 0; width: 100%; height: 100%; }
.arcs { position: absolute; inset: 0; pointer-events: none; }
.arcs i { position: absolute; border: 1px solid rgba(220, 171, 77, .08); border-radius: 50%; }
.arcs i:nth-child(1) { width: 1500px; height: 1500px; left: -800px; top: -900px; }
.arcs i:nth-child(2) { width: 2000px; height: 2000px; left: -1100px; top: -1150px; }
.arcs i:nth-child(3) { width: 1500px; height: 1500px; right: -780px; bottom: -980px; }
.arcs i:nth-child(4) { width: 2100px; height: 2100px; right: -1100px; bottom: -1300px; }
.glow { position: absolute; width: 700px; height: 700px; right: 2%; top: 50%; margin-top: -350px; border-radius: 50%; background: radial-gradient(circle, rgba(220, 171, 77, .22), transparent 65%); filter: blur(30px); pointer-events: none; }
.hero-in { position: relative; display: grid; grid-template-columns: 1.3fr .7fr; gap: 40px; align-items: center; }
.hero-title { font-size: clamp(54px, 6.6vw, 100px); line-height: .96; letter-spacing: -.02em; font-weight: 500; }
.ln { display: block; overflow: hidden; padding-bottom: .06em; }
.ln > span { display: inline-block; }
.lead { margin-top: 34px; font-size: clamp(16px, 1.35vw, 18.5px); color: var(--mute); max-width: 520px; }
.hero-cta { margin-top: 44px; display: flex; flex-wrap: wrap; align-items: center; gap: 34px; }

.stage { position: relative; height: 480px; perspective: 1400px; }
.card { position: absolute; width: 380px; aspect-ratio: 1.586; border-radius: 22px; left: 50%; top: 50%; }
.card-back { transform: translate(-38%, -78%) rotate(-11deg); background: linear-gradient(150deg, #1d160d, #0c0905); border: 1px solid var(--line); box-shadow: 0 40px 80px -30px #000; display: flex; align-items: flex-end; justify-content: flex-end; padding: 22px; }
.card-back svg { opacity: .6; }
.card-front { transform: translate(-56%, -36%) rotateX(var(--rx, 6deg)) rotateY(var(--ry, -14deg)) rotate(4deg); transform-style: preserve-3d; padding: 26px 28px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; color: #2b1d06;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .06) 0 1px, transparent 1px 3px), linear-gradient(125deg, #8d5f17 0%, #d9a845 22%, #fbe5a8 42%, #e0b459 55%, #a8761f 80%, #e5bd66 100%);
  box-shadow: 0 50px 90px -30px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 236, 180, .5) inset, 0 2px 0 rgba(255, 255, 255, .5) inset; transition: transform .6s var(--ease); }
.card-sheen { position: absolute; inset: 0; background: radial-gradient(420px circle at var(--sx, 30%) var(--sy, 20%), rgba(255, 255, 255, .5), transparent 45%); mix-blend-mode: soft-light; pointer-events: none; }
.card-top { display: flex; justify-content: space-between; align-items: flex-start; position: relative; }
.card-name { font: 700 17px var(--sans); letter-spacing: .2em; text-transform: uppercase; text-shadow: 0 1px 0 rgba(255, 240, 200, .6); display: flex; flex-direction: column; line-height: 1; }
.card-name small { font-size: 8px; letter-spacing: .5em; font-weight: 600; margin-top: 7px; }
.card-mg { filter: brightness(.35) sepia(1) saturate(2); }
.chip { width: 52px; height: 40px; border-radius: 8px; background: linear-gradient(135deg, #f5dfa0, #b88a35); border: 1px solid rgba(80, 55, 10, .45); display: grid; grid-template-rows: repeat(3, 1fr); padding: 6px 0; position: relative; }
.chip i { border-top: 1px solid rgba(80, 55, 10, .35); }
.card-bot { display: flex; gap: 40px; position: relative; font: 600 15px var(--sans); letter-spacing: .12em; text-transform: uppercase; text-shadow: 0 1px 0 rgba(255, 240, 200, .6); }
.card-bot span { display: flex; flex-direction: column; line-height: 1.2; }
.card-bot small { font-size: 8px; letter-spacing: .35em; opacity: .7; font-weight: 600; }
.badge { position: absolute; left: 4%; bottom: 8%; display: flex; gap: 14px; align-items: center; padding: 14px 22px 14px 14px; background: rgba(16, 12, 8, .82); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid var(--line); border-radius: 999px; box-shadow: 0 24px 50px -20px #000; }
.badge-ic, .toast-ic { width: 40px; height: 40px; border-radius: 50%; background: var(--grad); display: grid; place-items: center; flex: none; }
.badge-ic svg, .toast-ic svg { width: 20px; height: 20px; fill: none; stroke: #1c1305; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.badge > span:last-child, .toast > span:last-child { display: flex; flex-direction: column; font-size: 12.5px; color: var(--mute); line-height: 1.35; }
.badge b, .toast b { color: var(--ivory); font-weight: 500; font-size: 14.5px; }
.scroll-cue { position: absolute; left: 50%; bottom: 28px; width: 1px; height: 64px; background: var(--line-soft); overflow: hidden; }
.scroll-cue i { position: absolute; inset: 0; background: var(--gold); animation: cue 2.2s var(--ease) infinite; }
@keyframes cue { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(100%); } }

/* statement */
.statement { padding: clamp(110px, 14vw, 190px) 0 clamp(90px, 10vw, 130px); }
.say { font: 400 clamp(32px, 4.4vw, 64px)/1.14 var(--serif); letter-spacing: -.01em; max-width: 1100px; }
.say .w { display: inline-block; opacity: .16; transition: opacity .3s; }
.facts { margin-top: clamp(70px, 9vw, 120px); display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line-soft); }
.facts > div { padding: 36px 30px 0 0; display: flex; flex-direction: column; gap: 10px; }
.facts > div + div { padding-left: 30px; border-left: 1px solid var(--line-soft); }
.facts b { font: 500 clamp(44px, 4.4vw, 64px)/1 var(--serif); background-image: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.facts span { color: var(--mute); font-size: 15px; max-width: 240px; }

/* marquee */
.marquee { border-block: 1px solid var(--line-soft); padding: 26px 0; overflow: hidden; background: var(--ink-2); }
.mq-track { display: flex; align-items: center; gap: 46px; width: max-content; animation: mq 34s linear infinite; }
.mq-track span { font: 500 clamp(40px, 5vw, 76px)/1 var(--serif); white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(220, 171, 77, .55); }
.mq-track span:nth-of-type(2n) { -webkit-text-stroke: 0; background-image: var(--grad); -webkit-background-clip: text; background-clip: text; }
.mq-track em { font-style: normal; color: var(--gold); font-size: 22px; }
@keyframes mq { to { transform: translateX(-50%); } }

/* requirements */
.reqs { padding: clamp(110px, 13vw, 180px) 0; }
.reqs-in { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(50px, 8vw, 130px); align-items: start; }
.reqs-side { position: sticky; top: 130px; }
.ring-row { display: flex; align-items: center; gap: 26px; margin: 46px 0 40px; }
.ring { position: relative; width: 116px; height: 116px; flex: none; }
.ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.ring circle { fill: none; stroke-width: 2; }
.ring-bg { stroke: var(--line-soft); }
.ring-fg { stroke: url(#gold); stroke: var(--gold); stroke-dasharray: 339.3; stroke-dashoffset: 339.3; stroke-linecap: round; transition: stroke-dashoffset .8s var(--ease); }
.ring-txt { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; }
.ring-txt b { font: 500 44px var(--serif); color: var(--gold-hi); }
.ring-txt span { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--mute); margin-top: 4px; }
.ring-msg { color: var(--mute); font-size: 15px; max-width: 260px; }
.reqs.done .ring-msg { color: var(--gold-hi); }
.reqs.done #readyBtn { animation: pulse 2.2s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { box-shadow: 0 16px 40px -18px rgba(220, 171, 77, .8); } 50% { box-shadow: 0 0 0 7px rgba(220, 171, 77, .14), 0 20px 50px -14px rgba(220, 171, 77, 1); } }
.req-list { list-style: none; border-top: 1px solid var(--line-soft); }
.req-list li { border-bottom: 1px solid var(--line-soft); }
.req { position: relative; width: 100%; display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 20px; padding: 48px 6px; text-align: left; overflow: hidden; }
.req::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(220, 171, 77, .1), transparent 70%); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--ease); }
.req:hover::before, .req[aria-pressed=true]::before { transform: scaleX(1); }
.rn { font: 500 64px/1 var(--serif); color: transparent; -webkit-text-stroke: 1px rgba(220, 171, 77, .6); position: relative; transition: color .4s; }
.req[aria-pressed=true] .rn { color: var(--gold); -webkit-text-stroke: 0; }
.rt { display: flex; flex-direction: column; gap: 6px; position: relative; }
.rt b { font: 500 clamp(28px, 2.8vw, 40px)/1.05 var(--serif); }
.rt small { color: var(--mute); font-size: 15px; }
.tick { width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; position: relative; transition: background .4s, border-color .4s, transform .4s var(--ease); }
.tick svg { width: 22px; height: 22px; fill: none; stroke: var(--gold); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 24; stroke-dashoffset: 24; transition: stroke-dashoffset .5s var(--ease) .1s, stroke .3s; }
.req:hover .tick { transform: scale(1.06); border-color: var(--gold); }
.req[aria-pressed=true] .tick { background: var(--grad); border-color: transparent; }
.req[aria-pressed=true] .tick svg { stroke: #1c1305; stroke-dashoffset: 0; }
.req:focus-visible { outline: 1px solid var(--gold); outline-offset: -1px; }

/* process */
.process { padding: clamp(100px, 12vw, 170px) 0; background: var(--ink-2); border-top: 1px solid var(--line-soft); }
.proc-head { margin-bottom: clamp(60px, 8vw, 100px); }
.track { position: relative; }
.track-line { position: absolute; left: 0; right: 0; top: 34px; height: 1px; background: var(--line-soft); }
.track-line i { position: absolute; inset: 0; background: linear-gradient(90deg, var(--gold), var(--gold-hi)); transform: scaleX(0); transform-origin: left; }
.static .track-line i { transform: none; }
.steps { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 36px; }
.steps li { position: relative; padding-top: 96px; }
.sn { position: absolute; top: 0; left: 0; width: 68px; height: 68px; border-radius: 50%; display: grid; place-items: center; font: 500 26px var(--serif); color: var(--gold-hi); background: var(--ink-2); border: 1px solid var(--line); }
.steps li:last-child .sn { background: var(--grad); color: #1c1305; border: 0; box-shadow: 0 0 40px -6px rgba(220, 171, 77, .6); }
.steps h3 { font-size: 34px; margin-bottom: 14px; }
.steps p { color: var(--mute); font-size: 15px; max-width: 250px; }

/* image band */
.band { position: relative; min-height: 88vh; display: flex; align-items: flex-end; overflow: hidden; }
.band-img { position: absolute; inset: -12% 0; }
.band-img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.band-shade { position: absolute; inset: 0; background: linear-gradient(180deg, var(--ink) 0%, rgba(10, 8, 6, .25) 30%, rgba(10, 8, 6, .35) 60%, var(--ink) 100%), linear-gradient(90deg, rgba(10, 8, 6, .85), transparent 65%); }
.band-in { position: relative; padding: 140px 0 110px; display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; }
blockquote { font: 400 clamp(38px, 5vw, 76px)/1.04 var(--serif); max-width: 820px; letter-spacing: -.01em; }
.toast { display: flex; gap: 14px; align-items: center; padding: 16px 24px 16px 16px; border-radius: 18px; background: rgba(16, 12, 8, .8); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid var(--line); flex: none; box-shadow: 0 30px 60px -24px #000; }

/* house */
.house { padding: clamp(110px, 13vw, 180px) 0; }
.house-in { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(50px, 8vw, 120px); align-items: center; overflow: clip; }
.medal { position: relative; aspect-ratio: 1; width: 100%; max-width: 460px; margin-inline: auto; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle, #2a1e0b 0%, #110c07 62%, transparent 63%); }
.medal::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 1px solid var(--line); box-shadow: 0 0 140px -20px rgba(220, 171, 77, .35); }
.medal::after { content: ""; position: absolute; inset: 12%; border-radius: 50%; border: 1px dashed rgba(220, 171, 77, .25); }
.medal-ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 50s linear infinite; }
.medal-ring text { font: 600 10.5px var(--sans); letter-spacing: 3.1px; fill: var(--gold); }
.medal-mg { width: 52%; height: 52%; filter: drop-shadow(0 0 30px rgba(220, 171, 77, .35)); }
@keyframes spin { to { transform: rotate(360deg); } }
.pillars { border-top: 1px solid var(--line-soft); }
.pl { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; align-items: baseline; padding: 32px 0; border-bottom: 1px solid var(--line-soft); }
.pl h3 { font-size: clamp(32px, 3.3vw, 48px); }
.pl p { color: var(--mute); }
.sig { margin-top: 44px; display: flex; flex-direction: column; font-size: 13.5px; color: var(--mute); }
.sig b { font: 500 30px/1.2 var(--serif); color: var(--gold-hi); }

/* apply */
.apply { padding: clamp(110px, 13vw, 180px) 0; background: radial-gradient(60% 70% at 85% 30%, #231909 0%, var(--ink-2) 60%); border-top: 1px solid var(--line-soft); }
.apply-in { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(50px, 8vw, 120px); align-items: start; }
.contact-list { margin-top: 50px; border-top: 1px solid var(--line-soft); }
.contact-list > * { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line-soft); font: 500 25px var(--serif); transition: color .3s, padding .4s var(--ease); }
.contact-list a:hover { color: var(--gold-hi); padding-left: 10px; }
.contact-list span { font: 400 11px var(--sans); letter-spacing: .25em; text-transform: uppercase; color: var(--mute); }
.form { position: relative; padding: clamp(30px, 4.5vw, 56px); background: linear-gradient(160deg, rgba(36, 27, 14, .7), rgba(12, 9, 6, .9)); border: 1px solid var(--line); border-radius: 4px; display: grid; gap: 30px; box-shadow: 0 50px 100px -40px #000; transition: box-shadow .5s; }
.form::before, .form::after { content: ""; position: absolute; width: 26px; height: 26px; border: 1px solid var(--gold); }
.form::before { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.form::after { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }
.form.flash { box-shadow: 0 0 0 1px var(--gold), 0 0 60px -10px rgba(220, 171, 77, .5), 0 50px 100px -40px #000; }
.row { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.field { position: relative; min-width: 0; }
.field input, .field select { width: 100%; height: 58px; padding: 22px 0 6px; background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--ivory); font: 400 17px var(--sans); transition: border-color .3s; appearance: none; }
.field select option { background: var(--ink-3); }
.field label { position: absolute; left: 0; top: 20px; font-size: 15px; color: var(--mute); pointer-events: none; transform-origin: left top; transition: transform .35s var(--ease), color .3s; }
.field input:focus + label, .field input:not(:placeholder-shown) + label, .field.sel label { transform: translateY(-20px) scale(.78); color: var(--gold); letter-spacing: .04em; }
.field::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--gold-hi); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); }
.field:focus-within::after { transform: scaleX(1); }
.field input:focus, .field select:focus { outline: 0; }
.field.sel::before { content: ""; position: absolute; right: 4px; top: 30px; width: 7px; height: 7px; border-right: 1px solid var(--gold); border-bottom: 1px solid var(--gold); transform: rotate(45deg); pointer-events: none; }
.field input.bad { border-color: #e07a62; }
.docs { border: 0; display: flex; flex-wrap: wrap; gap: 14px 28px; }
.docs legend { font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin-bottom: 16px; }
.docs label { position: relative; display: flex; align-items: center; gap: 12px; cursor: pointer; font-size: 15px; }
.docs input { position: absolute; left: 0; top: 0; width: 1px; height: 1px; opacity: 0; }
.box { width: 22px; height: 22px; border: 1px solid var(--line); display: grid; place-items: center; transition: background .3s, border-color .3s; }
.box::after { content: ""; width: 10px; height: 5px; border: 2px solid #1c1305; border-top: 0; border-right: 0; transform: rotate(-45deg) scale(0); margin-top: -3px; transition: transform .3s cubic-bezier(.3, 1.6, .5, 1); }
.docs input:checked + .box { background: var(--grad); border-color: transparent; }
.docs input:checked + .box::after { transform: rotate(-45deg) scale(1); }
.docs input:focus-visible + .box { outline: 1px solid var(--gold-hi); outline-offset: 3px; }
.err { color: #f0937c; font-size: 14px; }
.err:empty { display: none; }
.fine { font-size: 12.5px; color: var(--dim); text-align: center; margin-top: -10px; }

/* faq */
.faq { padding: clamp(110px, 13vw, 170px) 0; }
.faq-in { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; }
.qs { border-top: 1px solid var(--line-soft); }
details { border-bottom: 1px solid var(--line-soft); }
summary { list-style: none; cursor: pointer; padding: 30px 60px 30px 0; font: 500 clamp(22px, 2.2vw, 30px)/1.2 var(--serif); position: relative; transition: color .3s; }
summary::-webkit-details-marker { display: none; }
summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 16px; height: 16px; margin-top: -8px; background: linear-gradient(var(--gold), var(--gold)) center / 100% 1px no-repeat, linear-gradient(var(--gold), var(--gold)) center / 1px 100% no-repeat; transition: transform .4s var(--ease); }
details[open] summary::after { transform: rotate(135deg); }
summary:hover, details[open] summary { color: var(--gold-hi); }
details p { color: var(--mute); padding: 0 60px 30px 0; max-width: 620px; }

/* footer */
.foot { background: #070504; border-top: 1px solid var(--line-soft); padding: 90px 0 34px; overflow: hidden; }
.foot-top { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.foot-brand { display: flex; gap: 20px; align-items: center; }
.foot-brand p { font: 500 24px/1.2 var(--serif); color: var(--ivory); }
.foot-cols { display: flex; gap: 80px; }
.foot-cols div { display: flex; flex-direction: column; gap: 10px; font-size: 14.5px; color: var(--mute); }
.foot-cols h4 { color: var(--gold); font: 500 11px var(--sans); letter-spacing: .3em; text-transform: uppercase; margin-bottom: 8px; }
.foot-cols a { transition: color .3s; }
.foot-cols a:hover { color: var(--gold-hi); }
.wordmark { font: 500 clamp(90px, 21vw, 320px)/.8 var(--serif); letter-spacing: -.03em; text-align: center; margin: 70px 0 40px; white-space: nowrap; background-image: linear-gradient(180deg, rgba(220, 171, 77, .55), rgba(220, 171, 77, .04) 85%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.legal { padding-top: 26px; border-top: 1px solid var(--line-soft); font-size: 12.5px; color: var(--dim); max-width: 900px; }
.foot-bot { margin-top: 22px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--dim); }
.foot-bot a { color: var(--gold); }
.foot-bot a:hover { color: var(--gold-hi); }

.mbar { display: none; }

/* reveal (initial states only when JS animation runs) */
.anim .rv { opacity: 0; transform: translateY(40px); }
.anim .hero-fade { opacity: 0; transform: translateY(30px); }
.anim .ln > span { transform: translateY(105%); }

@media (max-width: 1060px) {
  .links { display: none; }
  .hero-in { grid-template-columns: 1fr; gap: 20px; }
  .stage { height: 380px; }
  .card { width: 340px; }
  .reqs-in, .house-in, .apply-in, .faq-in { grid-template-columns: 1fr; }
  .reqs-in { display: flex; flex-direction: column; gap: 0; }
  .reqs-side { display: contents; }
  .req-list { order: 1; margin-top: 40px; }
  .ring-row { order: 2; margin: 44px 0 32px; }
  #readyBtn { order: 3; align-self: flex-start; }
  .steps { grid-template-columns: 1fr 1fr; row-gap: 60px; }
  .track-line { display: none; }
  .band-in { flex-direction: column; align-items: flex-start; }
  .medal { max-width: 340px; }
  .faq-in { gap: 30px; }
}
@media (max-width: 640px) {
  .wrap { width: calc(100% - 32px); }
  .nav-in { height: 70px; }
  .nav .btn-sm { display: none; }
  .cursor { display: none; }
  .hero { padding: 110px 0 90px; min-height: auto; }
  .hero-title { font-size: clamp(46px, 13.5vw, 64px); }
  .hero-cta { gap: 24px; }
  .hero-cta .btn { width: 100%; }
  .stage { height: 300px; margin-top: 10px; }
  .card { width: 270px; border-radius: 16px; }
  .card-front { padding: 18px 20px; }
  .card-name { font-size: 13px; }
  .card-mg { width: 36px; height: 36px; }
  .chip { width: 40px; height: 30px; padding: 4px 0; }
  .card-bot { font-size: 12px; gap: 28px; }
  .card-back svg { width: 40px; height: 40px; }
  .badge { left: 0; bottom: 0; padding: 10px 18px 10px 10px; }
  .facts { grid-template-columns: 1fr; }
  .facts > div, .facts > div + div { padding: 26px 0; border-left: 0; border-bottom: 1px solid var(--line-soft); }
  .req { grid-template-columns: 62px 1fr auto; gap: 14px; padding: 32px 2px; }
  .rn { font-size: 40px; }
  .tick { width: 42px; height: 42px; }
  .ring-row { gap: 18px; }
  .ring { width: 96px; height: 96px; }
  .ring-txt b { font-size: 36px; }
  .reqs-side .btn { width: 100%; }
  .steps { grid-template-columns: 1fr; row-gap: 46px; }
  .steps li { padding-top: 0; padding-left: 92px; min-height: 68px; }
  .band { min-height: 0; }
  .band-in { padding: 160px 0 80px; }
  .pl { grid-template-columns: 1fr; gap: 8px; }
  .row { grid-template-columns: 1fr; }
  .contact-list > * { font-size: 22px; }
  summary { padding-right: 44px; }
  details p { padding-right: 0; }
  .foot-cols { gap: 44px; flex-wrap: wrap; }
  .foot { padding-bottom: 104px; }
  .mbar { display: flex; position: fixed; left: 16px; right: 16px; bottom: 14px; z-index: 60; height: 54px; align-items: center; justify-content: center; font: 500 13px var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #1c1305; background: var(--grad); box-shadow: 0 14px 30px -8px rgba(0, 0, 0, .7); transition: transform .4s var(--ease), opacity .4s; }
  .mbar.hide { transform: translateY(90px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition-duration: .01s !important; }
}
