@font-face{font-family:Cormorant;font-style:italic;src:url(fonts2/CormorantGaramond-Italic-VariableFont_wght.ttf) format("truetype");font-weight:300 700;font-display:swap}
@font-face{font-family:JBM;src:url(fonts2/JetBrainsMono-VariableFont_wght.ttf) format("truetype");font-weight:100 800;font-display:swap}
@font-face{font-family:Inter;src:url(fonts2/Inter-Variable.ttf) format("truetype");font-weight:100 900;font-display:swap}
:root{--ivory:#efe7d8;--mute:#cfc4b0;--gold:#d2b07a;--champ:#e9d6b0;--brz:#d9a066;--line:rgba(239,231,216,.14)}
*{box-sizing:border-box;margin:0}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html,body{min-height:100%}
body{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;font:400 16px/1.6 Inter,system-ui,sans-serif;color:var(--ivory);-webkit-font-smoothing:antialiased;
background:radial-gradient(90% 70% at 50% 0%,#5a4636 0%,#3b2c22 45%,#1c140f 100%) fixed,#1c140f;position:relative}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:72px 24px 40px;position:relative}
.brand{display:flex;flex-direction:column;align-items:center;gap:26px;font:400 13px JBM,monospace;letter-spacing:.42em;padding-left:.42em;white-space:nowrap}
.brand svg{width:92px;height:auto;color:var(--brz);filter:drop-shadow(0 2px 10px rgba(0,0,0,.4))}
.brand i{font-style:normal;color:var(--gold)}
.tag{margin-top:46px;font:italic 400 clamp(34px,4.4vw,52px)/1.1 Cormorant,serif;color:var(--champ)}
.line{margin-top:14px;font:500 15px Inter,sans-serif;letter-spacing:.01em;color:var(--mute)}
.reg{width:100%;max-width:460px;margin-top:48px}
.reg-f{text-align:left}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.reg-row{display:flex;align-items:center;gap:6px;height:54px;padding:0 6px 0 0;border-radius:999px;border:1px solid rgba(217,160,102,.35);background:rgba(20,14,10,.45);transition:border-color .2s,box-shadow .2s}
.reg-row:focus-within{border-color:rgba(217,160,102,.85);box-shadow:0 0 0 3px rgba(217,160,102,.14)}
.is-err .reg-row{border-color:#c4473f}
.reg-row input{flex:1;min-width:0;height:100%;padding:0 0 0 22px;border:0;background:transparent;outline:none;-webkit-appearance:none;appearance:none;font:400 16px Inter,sans-serif;color:var(--ivory)}
.reg-row input::placeholder{color:rgba(207,196,176,.55)}
.reg-row input:-webkit-autofill{-webkit-text-fill-color:#efe7d8;-webkit-box-shadow:0 0 0 40px #2a1f18 inset}
.btn{flex:none;height:42px;padding:0 20px;border-radius:999px;border:1px solid #c58a55;background:linear-gradient(180deg,#d9a066,#9c6b43);color:#1c140f;font:500 13.5px Inter,sans-serif;letter-spacing:.01em;cursor:pointer;-webkit-appearance:none;appearance:none;transition:filter .2s}
@media (hover:hover){.btn:hover{filter:brightness(1.08)}}
.btn:focus-visible{outline:2px solid var(--champ);outline-offset:2px}.btn:disabled{opacity:.6;cursor:default}
.err{margin:9px 0 0 22px;font-size:12.5px;color:#e8a294}
.check{display:flex;gap:11px;align-items:flex-start;margin-top:18px;padding:0 8px;font-size:13px;line-height:1.5;color:var(--mute);cursor:pointer}
.check input{flex:none;width:15px;height:15px;margin:3px 0 0;-webkit-appearance:none;appearance:none;border:1px solid rgba(217,160,102,.5);border-radius:3px;background:transparent center/11px no-repeat;cursor:pointer}
.check input:checked{border-color:#d9a066;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23d9a066' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.check input:focus-visible{outline:1px solid var(--brz);outline-offset:2px}
.fine{margin-top:10px;padding:0 8px;font-size:11.5px;line-height:1.55;color:rgba(207,196,176,.6)}
.reg-ok{padding:24px 20px;border-radius:18px;border:1px solid rgba(217,160,102,.35);background:rgba(20,14,10,.35);text-align:center;outline:none}
.ok-t{font:italic 400 28px Cormorant,serif;color:var(--champ)}.ok-s{margin-top:6px;font-size:14px;color:var(--mute)}
footer{padding:0 24px 28px;text-align:center;font:400 11px JBM,monospace;letter-spacing:.2em;color:rgba(207,196,176,.6)}
@media (max-width:480px){main{padding-top:56px}.brand{gap:20px;font-size:11.5px}.brand svg{width:74px}.tag{margin-top:36px}.reg{margin-top:38px}
.reg-row{height:auto;flex-direction:column;align-items:stretch;padding:0;border:0;background:none;gap:10px}
.reg-row input{flex:none;height:52px;border-radius:999px;border:1px solid rgba(217,160,102,.35);background:rgba(20,14,10,.45)}
.reg-row:focus-within{box-shadow:none}.reg-row input:focus{border-color:rgba(217,160,102,.85)}.btn{height:50px}}
/* v2.1: compact form, balanced group */
main{justify-content:center;padding:48px 24px 9vh}
.brand{gap:22px}.brand svg{width:80px}
.tag{margin-top:36px;font-size:clamp(32px,3.6vw,44px)}
.line{margin-top:10px;font-size:14px}
.reg{max-width:380px;margin-top:36px}
.reg-row{height:46px;padding-right:4px}
.reg-row input{padding-left:18px;font-size:14px}
.btn{height:36px;padding:0 15px;font-size:12.5px}
.check{margin-top:14px;font-size:12px;padding:0 6px}.check input{width:14px;height:14px;margin-top:2px}
.fine{margin-top:6px;font-size:10.5px;padding:0 6px}
.err{margin-left:18px;font-size:12px}
footer{padding-bottom:22px;font-size:10px;color:rgba(207,196,176,.45)}
@media (max-width:480px){main{padding:40px 28px 8vh}.brand svg{width:66px}.tag{margin-top:30px}.reg{margin-top:30px;max-width:340px}
.reg-row input{height:46px;font-size:16px}.btn{height:44px;font-size:13.5px}}
.reg{max-width:400px}.check{font-size:11.5px}
@media (max-width:480px){.reg-row{height:auto;padding:0}.check{font-size:12.5px}.reg{max-width:340px}}

/* v2.2: ghost button, two-step reveal (space reserved: no layout jump) */
.btn{background:rgba(217,160,102,.10);border:1px solid rgba(217,160,102,.55);color:#e2b07a;transition:background .25s,border-color .25s,color .25s}
@media (hover:hover){.btn:hover{filter:none;background:rgba(217,160,102,.2);border-color:#d9a066;color:#f0c58e}}
.more{opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .35s ease,transform .35s ease,visibility 0s .35s}
[data-step="2"] .more{opacity:1;visibility:visible;transform:none;transition:opacity .35s ease,transform .35s ease,visibility 0s}
.more .check{margin-top:12px}
@media (prefers-reduced-motion:reduce){.more{transition:none!important}}
.more .fine{margin-top:8px}

/* v19.1: invite reveal + required 21+/Privacy checkbox. No /club link. */
.cta-wrap{margin-top:40px;width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center}
.cta{margin-top:0;display:inline-block;font:500 13px Inter,sans-serif;letter-spacing:.04em;color:var(--champ);text-decoration:none;padding:13px 26px;border-radius:999px;border:1px solid rgba(217,160,102,.35);background:rgba(20,14,10,.35);cursor:pointer;-webkit-appearance:none;appearance:none;transition:border-color .2s,background .2s}
.cta:hover,.cta:focus-visible{border-color:var(--brz);background:rgba(217,160,102,.1);outline:none}
.invite{width:100%;margin-top:0;text-align:left}
.invite .reg-row{margin-top:0}
.invite .btn{font:500 12.5px Inter,sans-serif;height:36px;padding:0 15px;background:rgba(217,160,102,.10);border:1px solid rgba(217,160,102,.55);color:#e2b07a}
@media (hover:hover){.invite .btn:hover{filter:none;background:rgba(217,160,102,.2);border-color:#d9a066;color:#f0c58e}}
.invite .check{margin-top:12px;font:400 11.5px/1.5 Inter,sans-serif;color:var(--mute);padding:0 6px}
.invite .check a{color:var(--brz);text-decoration:underline;text-underline-offset:2px}
.invite .check a:hover,.invite .check a:focus-visible{color:var(--champ);outline:none}
.invite #e-confirm{margin:6px 0 0 6px}
.invite .ok-t{font:italic 400 28px Cormorant,serif;color:var(--champ);text-align:center}
.invite .ok-s{margin-top:6px;font:400 14px Inter,sans-serif;color:var(--mute);text-align:center}
.invite .reg-ok{text-align:center}
@media (max-width:480px){.cta-wrap{margin-top:30px;max-width:340px}.invite .btn{height:44px;font-size:13.5px}.invite .check{font-size:12px}}
