:root{
 --ink:#2a2620;--gold:#D4952A;--gold-hi:#F0B23E;--parch:#f4ecd2;--parch2:#efe3c2;
 --sea:#9cc6b8;--cream:#fbf6e7;--ember:#e8632e;
 --display:"Baloo 2","Cinzel Decorative",cursive;--map:"Cinzel",serif;--body:"Spectral",Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;min-height:100%;max-width:100%;color:var(--ink);font-family:var(--body);
 -webkit-font-smoothing:antialiased;
 background:
  radial-gradient(120% 90% at 50% -10%, rgba(240,178,62,.35), rgba(240,178,62,0) 55%),
  radial-gradient(90% 70% at 85% 15%, rgba(232,99,46,.20), rgba(232,99,46,0) 50%),
  radial-gradient(100% 80% at 12% 90%, rgba(156,198,184,.35), rgba(156,198,184,0) 55%),
  linear-gradient(180deg, #2c241c 0%, #3a2e22 38%, #4a3a28 100%);
 background-attachment:fixed;
 overflow-x:hidden;
}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px 10px}

/* ---- top bar ---- */
.bar{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;max-width:1120px;margin:0 auto}
.wordmark{font-family:var(--display);font-weight:800;font-size:30px;line-height:1;letter-spacing:.5px;color:var(--cream);text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink),-2px 0 0 var(--ink),2px 0 0 var(--ink),0 -2px 0 var(--ink),0 2px 0 var(--ink),0 4px 0 var(--ink),0 6px 7px rgba(0,0,0,.4)}
.wordmark b{color:var(--gold-hi)}
.bar .back{font-family:var(--map);font-weight:700;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;color:#f2e4bf;background:rgba(0,0,0,.22);border:1.5px solid rgba(244,236,210,.35);border-radius:30px;padding:8px 15px;transition:.2s}
.bar .back:hover{background:rgba(0,0,0,.4);color:#fff}

/* ---- top layout (intro + form side by side) ---- */
.top{display:flex;flex-direction:column}
.intro{order:1;text-align:center}
.featured{order:2}
.signup{order:3}
.intro h1{font-family:var(--display);font-weight:900;color:var(--cream);
 font-size:clamp(26px,5.4vw,52px);line-height:1.05;margin:6px 0 0;letter-spacing:.5px;
 overflow-wrap:break-word;
 text-shadow:0 3px 0 rgba(0,0,0,.35),0 0 30px rgba(240,178,62,.25)}
.intro h1 .hl{color:var(--gold-hi)}
.intro .lede{font-size:clamp(15px,2vw,19px);color:#ecdfc2;max-width:620px;margin:16px auto 0;line-height:1.55}
.intro .lede b{color:#fff}
.trust{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:20px 0 4px}
.trust span{font-family:var(--map);font-weight:700;font-size:11.5px;letter-spacing:1.5px;text-transform:uppercase;color:#f2e4bf;background:rgba(0,0,0,.25);border:1.5px solid rgba(244,236,210,.3);border-radius:30px;padding:7px 14px}
.trust span i{font-style:normal;color:var(--gold-hi)}

/* ---- mint stages ---- */
.mint{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:18px 0 2px}
.stage{display:flex;align-items:center;gap:10px;background:rgba(0,0,0,.25);border:1.5px solid rgba(244,236,210,.3);border-radius:12px;padding:9px 14px}
.stage .sn{flex:none;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-family:var(--map);font-weight:900;font-size:12px;color:#3a2a08;background:linear-gradient(180deg,var(--gold-hi),var(--gold));border:2px solid var(--ink)}
.stage .si{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.stage .si b{font-family:var(--display);font-weight:800;font-size:14px;color:var(--cream)}
.stage .si small{font-family:var(--map);font-weight:700;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#e6cf95}
.stage.on{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}

/* ---- featured dragon ---- */
.featured{display:flex;justify-content:center;margin:34px 0 18px;position:relative}
.featured .fwrap{position:relative;animation:floaty 6s ease-in-out infinite}
.featured .ring{width:min(210px,52vw);aspect-ratio:1/1;border-radius:50%;
 border:6px solid var(--gold);box-shadow:0 0 0 5px var(--ink),0 25px 60px rgba(0,0,0,.5),0 0 70px rgba(240,178,62,.4);
 overflow:hidden;background:#fff}
.featured .ring img{width:100%;height:100%;object-fit:cover;display:block}
.featured .tag{position:absolute;left:50%;bottom:-14px;transform:translateX(-50%);white-space:nowrap;
 font-family:var(--map);font-weight:700;font-size:12px;letter-spacing:1px;color:#3a2a08;
 background:linear-gradient(180deg,var(--gold-hi),var(--gold));border:2.5px solid var(--ink);border-radius:30px;padding:5px 16px;box-shadow:0 4px 0 var(--ink)}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
/* small satellite dragons around the featured one */
.featured .sat{position:absolute;border-radius:50%;overflow:hidden;background:#fff;
 border:4px solid var(--gold);box-shadow:0 0 0 3px var(--ink),0 14px 30px rgba(0,0,0,.45)}
.featured .sat img{width:100%;height:100%;object-fit:cover;display:block}
.featured .sat1{width:84px;height:84px;top:-22px;right:-30px;animation:floaty 5.4s ease-in-out infinite .3s}
.featured .sat2{width:66px;height:66px;bottom:6px;right:-44px;animation:floaty 6.2s ease-in-out infinite .9s}
.featured .sat3{width:58px;height:58px;bottom:-18px;left:-30px;animation:floaty 5.8s ease-in-out infinite .6s}

/* ---- showcase strip ---- */
.showcase{margin:30px 0 10px}
.showcase h2{text-align:center;font-family:var(--map);font-weight:700;font-size:13px;letter-spacing:4px;text-transform:uppercase;color:#d8c596;margin:0 0 22px}
.strip{display:flex;gap:26px;justify-content:center;flex-wrap:wrap}
.nft{display:flex;flex-direction:column;align-items:center;width:120px}
.nft .disc{width:104px;height:104px;border-radius:50%;overflow:hidden;border:4px solid var(--gold);box-shadow:0 0 0 3px var(--ink),0 12px 26px rgba(0,0,0,.4);background:#fff;transition:transform .25s}
.nft:hover .disc{transform:translateY(-8px) scale(1.07)}
.nft .disc img{width:100%;height:100%;object-fit:cover;display:block}
.nft .nm{margin-top:12px;font-family:var(--map);font-weight:700;font-size:13px;letter-spacing:.5px;color:#f3e6c5}
.nft .rt{font-family:var(--body);font-style:italic;font-size:12px;color:#cdb98a;margin-top:1px}
.nft .disc.bob1{animation:floaty 5.5s ease-in-out infinite}
.nft .disc.bob2{animation:floaty 6.5s ease-in-out infinite .4s}
.nft .disc.bob3{animation:floaty 5s ease-in-out infinite .8s}

/* ---- form card ---- */
.signup{max-width:560px;margin:6px auto 30px;width:100%}
.card{position:relative;background:linear-gradient(180deg,var(--parch),var(--parch2));
 border:3px solid var(--ink);border-radius:16px;padding:30px 30px 26px;
 box-shadow:0 26px 70px rgba(0,0,0,.5),inset 0 2px 0 rgba(255,255,255,.5)}
.card::before{content:"";position:absolute;inset:7px;border:1.5px solid rgba(92,63,18,.35);border-radius:10px;pointer-events:none}
.card h3{font-family:var(--display);font-weight:900;text-align:center;color:#4a3410;margin:0 0 4px;font-size:clamp(22px,4vw,30px)}
.card .sub{text-align:center;font-size:15px;color:#6c4f18;margin:0 0 20px;line-height:1.5}
.steps{display:flex;justify-content:center;gap:8px;margin:0 0 22px;flex-wrap:wrap}
.steps .st{font-family:var(--map);font-weight:700;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:#7a5a1c;display:flex;align-items:center;gap:7px}
.steps .st b{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border-radius:50%;background:var(--gold);color:#3a2a08;border:2px solid var(--ink);font-size:11px}
.steps .st.on{color:#4a3410}
.steps .sep{color:#b79a55;align-self:center}
.field{margin-bottom:14px}
.field label{display:block;font-family:var(--map);font-weight:700;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#6c4f18;margin:0 0 6px}
.field input{width:100%;font-family:var(--body);font-size:16px;color:#3a2a10;background:#fffdf5;
 border:2.5px solid var(--ink);border-radius:9px;padding:12px 14px;outline:none;transition:.15s}
.field input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(212,149,42,.3)}
.field input::placeholder{color:#b09a6e}
.field .opt-tag{font-weight:400;text-transform:none;letter-spacing:0;color:#a08a55;font-style:italic;font-family:var(--body)}
.field .info{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:5px;border-radius:50%;background:var(--gold);color:#3a2a08;border:1.5px solid var(--ink);font-family:var(--map);font-weight:900;font-style:normal;font-size:10px;letter-spacing:0;text-transform:none;cursor:pointer;vertical-align:middle;outline:none}
.field .info:focus{box-shadow:0 0 0 3px rgba(212,149,42,.4)}
.field .info .tip{display:none;position:absolute;right:-4px;left:auto;bottom:calc(100% + 9px);width:min(240px,72vw);background:#2a2620;color:#f4ecd2;font-family:var(--body);font-weight:400;font-size:12.5px;line-height:1.45;letter-spacing:0;text-transform:none;text-align:left;padding:10px 12px;border:2px solid var(--ink);border-radius:9px;box-shadow:0 10px 24px rgba(0,0,0,.45);z-index:6}
.field .info .tip b{color:#fff}
.field .info .tip a{color:var(--gold-hi);font-weight:700;text-decoration:underline}
.field .info .tip::after{content:"";position:absolute;top:100%;right:12px;border:7px solid transparent;border-top-color:#2a2620}
.field .info:hover .tip,.field .info:focus .tip,.field .info:focus-within .tip{display:block}
.field .req-tag{display:inline-block;font-family:var(--map);font-weight:900;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:#fff;background:var(--ember);border:1.5px solid var(--ink);border-radius:20px;padding:1px 8px;vertical-align:middle}
.field label a{color:#a9761b;text-decoration:none;font-weight:600;text-transform:none;letter-spacing:0;font-family:var(--body);font-style:italic}
.field label a:hover{text-decoration:underline}
.toggle{display:flex;gap:9px}
.toggle .opt{flex:1;font-family:var(--map);font-weight:700;font-size:13px;letter-spacing:.5px;color:#6c4f18;background:#fffdf5;border:2.5px solid var(--ink);border-radius:9px;padding:11px;cursor:pointer;transition:.12s}
.toggle .opt:hover{background:#fbf3da}
.toggle .opt.on{background:linear-gradient(180deg,var(--gold-hi),var(--gold));color:#3a2a08;box-shadow:inset 0 2px 0 rgba(255,255,255,.4)}
.submit{width:100%;font-family:var(--map);font-weight:900;font-size:15px;letter-spacing:1.5px;text-transform:uppercase;
 color:#3a2a08;background:linear-gradient(180deg,var(--gold-hi),var(--gold));border:3px solid var(--ink);border-radius:11px;
 padding:15px;margin-top:8px;cursor:pointer;box-shadow:0 5px 0 var(--ink);transition:.1s}
.submit:hover{filter:brightness(1.05)}
.submit:active{transform:translateY(5px);box-shadow:0 0 0 var(--ink)}
.submit:disabled{opacity:.7;cursor:wait}
.err{display:none;color:#b3261e;font-size:13.5px;text-align:center;margin:12px 0 0;font-weight:600}
.privacy{text-align:center;font-size:12px;color:#8a6a28;margin:16px 0 0}

/* ---- success ---- */
.done{display:none;text-align:center;padding:8px 4px}
.done.show{display:block;animation:rise .5s ease both}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.done .seal{width:84px;height:84px;margin:0 auto 14px;border-radius:50%;background:linear-gradient(180deg,var(--gold-hi),var(--gold));border:3px solid var(--ink);box-shadow:0 8px 0 rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;font-size:42px}
.done h3{font-family:var(--display);font-weight:900;color:#4a3410;font-size:28px;margin:0 0 8px}
.done p{color:#5c451a;font-size:15.5px;line-height:1.55;margin:0 auto 6px;max-width:420px}
.done .socials{display:flex;gap:12px;justify-content:center;margin-top:22px;flex-wrap:wrap}
.done .socials a{font-family:var(--map);font-weight:700;font-size:12px;letter-spacing:1px;text-transform:uppercase;text-decoration:none;color:#3a2a08;background:linear-gradient(180deg,var(--gold-hi),var(--gold));border:2.5px solid var(--ink);border-radius:30px;padding:11px 20px;box-shadow:0 4px 0 var(--ink);transition:.1s}
.done .socials a.alt{background:#2a1c16;color:#f3d6cf}
.done .socials a.dc{position:relative;flex:1 0 100%;background:linear-gradient(180deg,#7c86f2,#5865F2);color:#fff;font-size:14px;padding:16px 20px;overflow:visible}
.done .socials a.dc .req{position:absolute;top:-11px;left:50%;transform:translateX(-50%);font-family:var(--map);font-weight:900;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#fff;background:var(--ember);border:2px solid var(--ink);border-radius:20px;padding:3px 11px;box-shadow:0 3px 0 var(--ink)}
.done .socials a:active{transform:translateY(4px);box-shadow:0 0 0 var(--ink)}

/* ---- footer ---- */
footer{text-align:center;padding:24px 22px 40px;color:#bba879;font-family:var(--map);font-size:11px;letter-spacing:2px;text-transform:uppercase}
footer a{color:#e6cf95;text-decoration:none;margin:0 8px}
footer a:hover{color:#fff}

/* embers */
.ember{position:fixed;bottom:-20px;width:6px;height:6px;border-radius:50%;background:var(--gold-hi);box-shadow:0 0 8px var(--gold-hi);opacity:0;pointer-events:none;z-index:0;animation:ember linear infinite}
@keyframes ember{0%{transform:translateY(0) scale(.6);opacity:0}10%{opacity:.8}90%{opacity:.5}100%{transform:translateY(-105vh) scale(1.1);opacity:0}}

.wrap,.bar,.top,.showcase{position:relative;z-index:1}

/* ---- desktop: two columns, form visible from the start ---- */
@media(min-width:900px){
 .top{display:grid;grid-template-columns:1.02fr .98fr;column-gap:48px;row-gap:6px;align-items:start;padding-top:8px}
 .intro{grid-column:1;grid-row:1;text-align:left}
 .intro .lede{margin-left:0}
 .trust,.mint{justify-content:flex-start}
 .featured{grid-column:1;grid-row:2;justify-content:flex-start;margin:22px 0 0 8px}
 .signup{grid-column:2;grid-row:1 / span 2;align-self:center;margin:0}
}

@media(max-width:620px){
 .intro h1{font-size:25px;letter-spacing:0}
 .intro h1 br{display:none}
 .strip{gap:18px}
 .nft{width:92px}
 .nft .disc{width:84px;height:84px}
 .card{padding:24px 18px 22px}
 .steps .st{font-size:9.5px}
 .intro .lede{margin-top:10px}
 .mint{margin:12px 0 2px;gap:8px}
 .stage{padding:7px 11px;gap:8px}
 .featured{margin:18px 0 6px}
 .featured .sat1{width:62px;height:62px;top:-12px;right:-8px}
 .featured .sat2{width:50px;height:50px;bottom:10px;right:-16px}
 .featured .sat3{width:46px;height:46px;bottom:-10px;left:-8px}
}
@media(prefers-reduced-motion:reduce){
 .featured .ring,.featured .sat,.nft .disc,.ember{animation:none!important}
}
