:root{
  --bg:#0b0a09; --gold:#c9a96e; --gold-2:#e2c99a; --ivory:#f3ece0; --beige:#cbbfae;
  --line:rgba(201,169,110,.35);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--ivory)}
body{font-family:Inter,system-ui,sans-serif;font-weight:300;min-height:100svh;-webkit-font-smoothing:antialiased}
.bg{position:fixed;inset:0;z-index:0}.bg img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,7,6,.72) 0%,rgba(8,7,6,.82) 55%,rgba(8,7,6,.94) 100%)}
.wrap{position:relative;z-index:1;max-width:440px;margin:0 auto;padding:28px 22px 36px;display:flex;flex-direction:column;align-items:center;text-align:center;min-height:100svh}
.portrait{display:block;height:min(38svh,300px);width:auto;max-width:100%;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.55);margin-bottom:20px}
h1{font-family:"Playfair Display",serif;font-weight:400;font-size:34px;letter-spacing:.3px;color:var(--ivory);line-height:1.15}
.sub{margin-top:10px;font-size:15px;line-height:1.55;color:var(--beige)}
.rule{width:44px;height:1px;background:var(--gold);margin:18px auto}
.small{font-family:"Playfair Display",serif;font-style:italic;font-size:15px;line-height:1.6;color:var(--gold-2)}
.btn{display:block;width:100%;padding:16px 20px;margin-top:14px;border-radius:999px;text-decoration:none;font-size:13px;font-weight:500;letter-spacing:2.2px;text-transform:uppercase;transition:transform .15s ease,background .2s ease}
.btn:active{transform:scale(.98)}
.btn-gold{margin-top:26px;background:linear-gradient(135deg,var(--gold-2),var(--gold));color:#14110d;box-shadow:0 6px 24px rgba(201,169,110,.25)}
.btn-ghost{border:1px solid var(--line);color:var(--ivory);background:rgba(11,10,9,.45)}
.private-text{font-size:16px;line-height:1.75}
body.final .wrap,body.gate .wrap{justify-content:center}
.portrait-final{height:min(58svh,460px)}
.btn-final{text-transform:none;letter-spacing:.3px;font-size:16px;font-weight:500;padding:18px 20px}
.gate-box{width:100%;display:flex;flex-direction:column;align-items:center}
.gate-badge{width:64px;height:64px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;font-family:"Playfair Display",serif;font-size:20px;color:var(--gold-2);margin-bottom:22px}
.gate form{width:100%}
.gate .gate-btn{border:0;cursor:pointer;font-family:inherit;text-transform:none;letter-spacing:.4px;font-size:15px}
.gate-leave{margin-top:18px;color:var(--beige);opacity:.7;font-size:13px;text-decoration:none;letter-spacing:1px}
.cta-sub{display:block;margin-top:3px;font-size:13px;letter-spacing:1.4px;font-weight:600;white-space:nowrap}
.age-modal{position:fixed;inset:0;z-index:10;display:none;align-items:center;justify-content:center;padding:22px}
.age-modal:target{display:flex}
.age-backdrop{position:absolute;inset:0;background:rgba(5,4,3,.78);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.age-card{position:relative;width:100%;max-width:360px;background:#14110d;border:1px solid var(--line);border-radius:20px;padding:30px 24px 22px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.age-card h2{font-family:"Playfair Display",serif;font-weight:400;font-size:26px;color:var(--ivory)}
.age-card form{width:100%}
.age-yes{border:0;cursor:pointer;font-family:inherit;text-transform:none;letter-spacing:.4px;font-size:15px;margin-top:20px}
.age-no{margin-top:14px;color:var(--beige);opacity:.75;font-size:13px;text-decoration:none;letter-spacing:1px}
.ext-help{position:fixed;inset:0;z-index:20;display:none;flex-direction:column;align-items:center;justify-content:center;padding:22px;background:rgba(5,4,3,.86);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.ext-help.show{display:flex}
.ext-arrow{position:absolute;top:6px;right:22px;color:var(--gold-2);animation:extbob 1.6s ease-in-out infinite}
@keyframes extbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.ext-card{width:100%;max-width:360px;background:#14110d;border:1px solid var(--line);border-radius:20px;padding:28px 24px 24px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.6)}
.ext-card h2{font-family:"Playfair Display",serif;font-weight:400;font-size:26px;color:var(--ivory)}
.ext-steps{list-style:none;margin:22px 0 4px;padding:18px 16px;border:1px solid var(--line);border-radius:16px;text-align:left;display:flex;flex-direction:column;gap:14px}
.ext-steps li{display:flex;align-items:center;gap:12px;font-size:15px;line-height:1.45;color:var(--ivory)}
.ext-steps b{font-weight:500;color:var(--gold-2)}
.ext-dots{letter-spacing:1px}
.ext-num{flex:0 0 28px;height:28px;border-radius:50%;border:1px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--gold-2)}
.ext-retry{text-transform:none;letter-spacing:.4px;font-size:15px;margin-top:22px}
