:root { --bg:#090909; --panel:#0d0d0d; --text:#f4f2ed; --muted:#8e8b84; --line:#343330; --soft:#171716; --cream:#e8e3d8; --gold:#d7a921; --green:#8dd29c; }
* { box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent; }
html,body { min-height:100%; background:var(--bg); color:var(--text); }
body { font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif; -webkit-font-smoothing:antialiased; }
button,input { font:inherit; } svg { width:20px; height:20px; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.14; 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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E"); }
#app { width:min(100%,520px); min-height:100dvh; margin:auto; padding:14px 14px calc(26px + env(safe-area-inset-bottom)); position:relative; }
.screen { display:flex; flex-direction:column; gap:12px; animation:reveal .45s cubic-bezier(.22,1,.36,1); }
.screen.centered { min-height:calc(100dvh - 40px); align-items:center; justify-content:center; text-align:center; }
.hidden { display:none!important; }
@keyframes reveal { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.muted { color:var(--muted); font-size:14px; line-height:1.5; }
.overline { color:#aaa69d; font-size:10px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; }
.brand-header { height:48px; display:flex; align-items:center; justify-content:space-between; padding:0 2px; }
.brand { display:flex; align-items:center; gap:9px; }
.brand img { width:34px; height:34px; border-radius:50%; object-fit:cover; border:1px solid #292929; }
.brand div { display:flex; flex-direction:column; line-height:1; }
.brand strong { font-size:15px; letter-spacing:-.03em; }
.brand span { margin-top:4px; color:#77746f; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.status-chip { display:flex; align-items:center; gap:7px; padding:7px 11px; border:1px solid var(--line); border-radius:999px; color:#c8c5bd; font-size:10px; }
.status-dot { width:5px; height:5px; border-radius:50%; background:var(--green); box-shadow:0 0 8px var(--green); }
.status-chip.finished .status-dot,.status-chip.cancelled .status-dot { background:#7f7c76; box-shadow:none; }
.hero { padding:26px 0 4px; text-align:center; overflow:hidden; }
.hero h1 { max-width:100%; margin-top:10px; font-size:clamp(34px,10vw,52px); line-height:.92; letter-spacing:-.055em; font-weight:780; overflow-wrap:anywhere; }
.hero h1 span { display:block; padding-inline:4px; }
.hero h1 em { display:block; margin-top:2px; color:#8d8a83; font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif; font-size:.92em; font-style:normal; font-weight:650; letter-spacing:-.05em; }
.hero-copy { max-width:360px; margin:14px auto 0; color:#aaa69d; font-size:12px; line-height:1.5; }
.collectible { height:350px; margin-top:8px; position:relative; display:grid; place-items:center; }
.collectible-disc { width:245px; height:245px; border-radius:50%; overflow:hidden; position:relative; z-index:2; background:var(--cream); box-shadow:0 0 0 1px rgba(255,255,255,.16),0 24px 60px rgba(0,0,0,.42); }
.nft-animation { position:absolute; inset:9%; z-index:3; display:grid; place-items:center; }
.nft-animation svg { width:100%!important; height:100%!important; }
.nft-image { width:100%; height:100%; display:block; object-fit:cover; }
.nft-image.animation-ready { opacity:0; }
.nft-fallback { position:absolute; inset:14%; width:72%; height:72%; object-fit:contain; }
.nft-image:not([src]),.nft-image[src=""] { display:none; }
.orbit { position:absolute; z-index:3; width:390px; height:135px; border:1px solid rgba(232,227,216,.52); border-radius:50%; transform:rotate(-18deg); pointer-events:none; }
.orbit::after { content:""; position:absolute; right:22px; top:22px; width:10px; height:10px; border-radius:50%; background:var(--cream); box-shadow:-310px 66px 0 2px #050505; }
.orbit-two { z-index:1; width:315px; height:315px; border-color:rgba(255,255,255,.08); transform:none; }
.orbit-two::after { display:none; }
.spark { position:absolute; z-index:4; color:var(--cream); font-size:30px; font-weight:200; text-shadow:0 0 18px rgba(255,255,255,.4); }
.spark-one { top:30px; left:15%; animation:twinkle 2.4s ease-in-out infinite; }
.spark-two { bottom:46px; right:15%; font-size:20px; animation:twinkle 2.4s ease-in-out -1.2s infinite; }
@keyframes twinkle { 50% { transform:scale(.65) rotate(45deg); opacity:.45; } }
.collectible-label { position:absolute; z-index:7; left:50%; bottom:22px; transform:translateX(-50%); width:min(280px,calc(100% - 64px)); padding:10px 10px 10px 14px; display:flex; align-items:center; justify-content:space-between; gap:8px; text-align:left; border:1px solid #57534c; border-radius:999px; background:rgba(9,9,9,.94); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.collectible-label div { min-width:0; display:flex; flex-direction:column; }
.collectible-label span { font-size:11px; font-weight:650; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.collectible-label small { max-width:110px; margin-top:3px; color:#88847d; font-size:8px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.collectible-label a { flex:0 0 28px; width:28px; height:28px; display:grid; place-items:center; color:var(--cream); }
.collectible-label svg { width:15px; }
.prize-caption { display:inline-flex; align-items:center; gap:8px; margin-top:-4px; color:#aaa69d; font-size:10px; }
.prize-caption span { letter-spacing:.12em; text-transform:uppercase; }
.prize-caption strong { color:var(--text); font-size:11px; }

/* NFT Carousel */
.nft-carousel { width:100%; height:285px; overflow:hidden; position:relative; z-index:2; touch-action:pan-y; }
.nft-slides { width:100%; height:100%; position:relative; }
.nft-slide { position:absolute; inset:0; display:grid; place-items:center; opacity:0; transform:translateX(115%) scale(.72); transition:transform .42s cubic-bezier(.32,.72,.32,1),opacity .3s ease; pointer-events:none; will-change:transform,opacity; backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.nft-slide.active { z-index:3; opacity:1; transform:translateX(0) scale(1); pointer-events:auto; }
.nft-slide.before { z-index:2; opacity:.42; transform:translateX(-72%) scale(.72); }
.nft-slide.after { z-index:2; opacity:.42; transform:translateX(72%) scale(.72); }
.nft-slide.far-before { transform:translateX(-115%) scale(.65); }
.nft-slide .collectible-disc { width:238px; height:238px; }
.carousel-arrow { position:absolute; z-index:6; top:50%; width:38px; height:38px; display:grid; place-items:center; border:1px solid #4a4843; border-radius:50%; color:var(--cream); background:rgba(9,9,9,.9); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); transform:translateY(-50%); }
.carousel-arrow.prev { left:8px; }
.carousel-arrow.next { right:8px; }
.carousel-arrow:disabled { opacity:.28; }
.carousel-arrow svg { width:18px; }
.carousel-status { position:absolute; z-index:7; left:50%; bottom:4px; transform:translateX(-50%); display:flex; align-items:center; gap:9px; }
.nft-dots { display:flex; gap:6px; }
.nft-dot { width:6px; height:6px; border:0; border-radius:50%; background:rgba(255,255,255,.23); transition:width .2s,background .2s; }
.nft-dot.active { width:18px; border-radius:999px; background:var(--cream); }
.nft-position { color:#77746f; font-size:9px; letter-spacing:.08em; white-space:nowrap; }

.countdown-panel,.participation-panel,.stats-panel,.brand-footer,.referral-panel,.ticket-card,.success-stats { border:1px solid var(--line); border-radius:18px; background:rgba(13,13,13,.82); }
.countdown-panel { display:grid; grid-template-columns:repeat(4,1fr); padding:18px 8px; }
.countdown-cell { position:relative; display:flex; flex-direction:column; align-items:center; }
.countdown-cell:not(:last-of-type)::after { content:""; position:absolute; right:0; top:2px; width:1px; height:32px; background:var(--line); }
.countdown-cell strong { font-size:23px; letter-spacing:-.05em; }
.countdown-cell span { margin-top:5px; color:#77746f; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.participation-panel { padding:16px; overflow:hidden; }
.panel-title { display:flex; align-items:flex-start; justify-content:space-between; padding-bottom:12px; border-bottom:1px solid var(--line); }
.panel-title div { display:flex; flex-direction:column; text-align:left; }
.panel-title span { font-size:17px; font-weight:700; letter-spacing:-.025em; }
.panel-title small { margin-top:4px; color:#77746f; font-size:9px; }
.panel-title > strong { color:#aaa69d; font-size:10px; }
.step { min-height:64px; display:flex; align-items:center; gap:12px; border-bottom:1px solid #252523; padding:10px 0; }
#subscription-step { cursor:pointer; }
.step-chevron { transition:transform .2s ease; margin-left:auto; }
.step.expanded .step-chevron { transform:rotate(180deg); }
.step-number { flex:0 0 24px; width:24px; height:24px; display:grid; place-items:center; border:1px solid #69655d; border-radius:50%; color:#d1cdc4; font-size:10px; }
.step.completed .step-number { color:#071009; border-color:var(--green); background:var(--green); }
.step.completed .step-number { font-size:0; }
.step.completed .step-number::after { content:"✓"; font-size:11px; font-weight:800; }
.step-icon { flex:0 0 28px; color:var(--cream); display:grid; place-items:center; }
.step-icon svg { width:20px; }
.step-copy { flex:1; display:flex; flex-direction:column; text-align:left; min-width:0; }
.step-copy strong { font-size:13px; }
.step-copy span { margin-top:3px; color:#8e8b84; font-size:11px; }
.step-chevron { width:14px; color:#625f59; }
.last-step { border-bottom:0; }
.subs-wrap { padding:12px 0 4px; }
.subs-list { display:flex; flex-direction:column; border:1px solid #34322f; border-radius:12px; overflow:hidden; }
.sub-item { min-height:48px; display:flex; align-items:center; gap:10px; padding:0 14px; color:#d8d4cc; text-decoration:none; font-size:13px; border-bottom:1px solid #292825; transition:color .15s,background .15s; }
.sub-item:last-child { border-bottom:0; }
.sub-item::after { content:"↗"; margin-left:auto; color:#6f6b64; font-size:13px; }
.sub-item.opened { color:var(--green); background:rgba(141,210,156,.05); }
.sub-item.opened::after { content:"✓"; color:var(--green); }
.sub-item svg { width:16px; flex:0 0 16px; }
.check-button { width:100%; min-height:44px; margin-top:10px; display:flex; align-items:center; justify-content:center; gap:7px; border:1px solid #514e48; border-radius:12px; color:var(--cream); background:#151514; font-size:13px; cursor:pointer; }
.check-button:disabled { opacity:.45; }
.check-button svg { width:14px; }
.subscription-message { min-height:14px; margin-top:8px; color:#8e8981; text-align:center; font-size:11px; }
.subscription-message.error { color:#ff7168; }
.captcha { padding:10px 0 6px; }
.captcha-track { height:46px; position:relative; overflow:hidden; border:1px solid #45433e; border-radius:999px; background:#111; touch-action:none; }
.captcha-progress { position:absolute; inset:0 auto 0 0; width:0; background:rgba(232,227,216,.12); }
.captcha-handle { position:absolute; z-index:2; left:3px; top:3px; width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:#111; background:var(--cream); cursor:grab; }
.captcha-handle.done { background:var(--green); }
.captcha-handle svg { width:16px; }
.captcha-text { position:absolute; inset:0; display:grid; place-items:center; padding:0 48px; color:#77746f; font-size:11px; letter-spacing:.04em; text-align:center; pointer-events:none; }
.outline-button,.white-button { border-radius:999px; display:flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; transition:opacity .2s,transform .15s; }
.outline-button { width:100%; min-height:48px; color:var(--text); border:1px solid #666159; background:transparent; font-size:13px; }
.outline-button svg { width:15px; }
.outline-button:disabled { opacity:.24; }
.outline-button:active,.white-button:active { transform:scale(.985); }
.message { min-height:14px; padding-top:8px; text-align:center; color:#8d8981; font-size:11px; }
.message.error,.msg.error { color:#ff7168; }.message.ok,.msg.ok { color:var(--green); }.msg { min-height:14px; padding-top:8px; text-align:center; font-size:11px; }
.stats-panel { min-height:76px; padding:14px 18px; display:grid; grid-template-columns:38px 1fr 1px 38px 1fr; align-items:center; gap:10px; }
.stat-icon { width:36px; height:36px; display:grid; place-items:center; border:1px solid #625e57; border-radius:50%; }
.stat-icon svg { width:17px; }
.stats-panel > div:not(.stat-icon):not(.stats-divider) { display:flex; flex-direction:column; }
.stats-panel strong { font-size:18px; }
.stats-panel span { margin-top:3px; color:#77746f; font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.stats-divider { width:1px; height:38px; background:var(--line); }
.brand-footer { min-height:108px; padding:20px; display:flex; align-items:center; justify-content:space-between; overflow:hidden; }
.brand-footer > div { display:flex; flex-direction:column; text-align:left; }
.brand-footer span,.brand-footer strong { font-size:19px; line-height:1.05; font-weight:700; }
.brand-footer small { max-width:190px; margin-top:8px; color:#77746f; font-size:9px; line-height:1.45; }
.brand-footer img { width:78px; height:78px; border-radius:50%; object-fit:cover; opacity:.82; }
.loader-star { width:34px; height:34px; position:relative; animation:spin 2.2s linear infinite; }
.loader-star::before,.loader-star::after { content:""; position:absolute; left:50%; top:0; width:1px; height:100%; background:var(--cream); }.loader-star::after { transform:rotate(90deg); }
@keyframes spin { to { transform:rotate(180deg); } }
.result-logo { width:92px; height:92px; border-radius:50%; object-fit:cover; border:1px solid #4c4944; }
.result-title { font-size:40px; line-height:1; letter-spacing:-.055em; }
.ticket-card { width:100%; padding:18px; display:flex; align-items:center; justify-content:space-between; }
.ticket-card span { color:#8a867e; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }.ticket-card strong { font-size:26px; }
.success-stats { width:100%; display:grid; grid-template-columns:1fr 1fr; padding:15px; }.success-stats div { display:flex; flex-direction:column; }.success-stats div+div { border-left:1px solid var(--line); }.success-stats strong { font-size:21px; }.success-stats span { margin-top:4px; color:#77746f; font-size:9px; text-transform:uppercase; }
.referral-panel { width:100%; padding:15px; }.referral-heading { display:flex; align-items:center; gap:10px; text-align:left; }.referral-heading > svg { width:20px; }.referral-heading div { flex:1; display:flex; flex-direction:column; }.referral-heading strong { font-size:12px; }.referral-heading span { margin-top:3px; color:#77746f; font-size:9px; }.referral-heading b { font-size:20px; }
.ref-link { margin:14px 0 10px; min-height:40px; padding:6px 7px 6px 11px; display:flex; align-items:center; gap:8px; border:1px solid #34322f; border-radius:10px; }.ref-link>svg { width:14px; color:#77746f; }.ref-link span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#8f8b84; text-align:left; font:9px ui-monospace,monospace; }.ref-link button { width:29px; height:29px; display:grid; place-items:center; border:0; border-radius:7px; color:var(--text); background:#20201e; }.ref-link button svg { width:13px; }
.white-button { width:100%; min-height:43px; border:0; color:#111; background:var(--cream); font-size:11px; }.white-button svg { width:14px; }
.fine-print { display:flex; align-items:center; gap:6px; color:#77746f; font-size:9px; }.fine-print svg { width:13px; }
.result-medal { width:76px; height:76px; display:grid; place-items:center; border:1px solid #6b655b; border-radius:50%; color:var(--gold); }.result-medal svg { width:34px; height:34px; }.result-medal.error { color:#ff7168; }
.confetti { position:fixed; inset:0; pointer-events:none; opacity:.45; background-image:radial-gradient(circle at 15% 20%,#e8e3d8 2px,transparent 3px),radial-gradient(circle at 80% 18%,#d7a921 2px,transparent 3px),radial-gradient(circle at 30% 70%,#e8e3d8 1px,transparent 2px); background-size:180px 180px; animation:fall 4s linear infinite; }@keyframes fall { from { background-position:0 -180px; } to { background-position:0 180px; } }
.skeleton-screen { min-height:100dvh; padding-top:8px; }
.skeleton-screen > * { background:linear-gradient(90deg,#10100f 25%,#1a1917 50%,#10100f 75%); background-size:200% 100%; animation:shimmer 1.4s infinite; }
@keyframes shimmer { to { background-position:-200% 0; } }
.skeleton-nav { height:42px; display:flex; justify-content:space-between; background:none!important; animation:none!important; }
.skeleton-nav span { width:96px; border-radius:12px; background:#171716; }.skeleton-nav i { width:62px; border-radius:999px; background:#171716; }
.skeleton-line { height:10px; margin:28px auto 0; border-radius:999px; }.skeleton-line.short { width:130px; }.skeleton-line.title { width:78%; height:44px; margin-top:14px; }.skeleton-line.subtitle { width:65%; margin-top:12px; }
.skeleton-orbit { width:245px; height:245px; margin:35px auto; border-radius:50%; }.skeleton-panel { height:82px; border-radius:18px; }.skeleton-panel.tall { height:260px; margin-top:12px; }
@media(max-width:430px) {
  #app { padding:10px 12px calc(24px + env(safe-area-inset-bottom)); }
  .screen { gap:10px; }
  .hero { padding-top:20px; }
  .hero h1 { font-size:clamp(33px,10.2vw,43px); line-height:.94; letter-spacing:-.05em; }
  .hero h1 em { font-size:.88em; }
  .collectible { height:330px; margin-top:2px; }
  .nft-carousel { height:270px; }
  .nft-slide .collectible-disc { width:224px; height:224px; }
  .orbit { width:330px; height:112px; }
  .orbit-two { width:278px; height:278px; }
  .spark-one { top:24px; left:12%; }
  .spark-two { bottom:52px; right:12%; }
  .collectible-label { bottom:24px; width:min(260px,calc(100% - 54px)); }
  .carousel-arrow { width:36px; height:36px; }
  .carousel-arrow.prev { left:2px; }
  .carousel-arrow.next { right:2px; }
  .countdown-panel { padding:15px 4px; }
  .countdown-cell strong { font-size:22px; }
  .participation-panel { padding:14px 16px 16px; border-radius:16px; }
  .panel-title { align-items:center; padding-bottom:14px; }
  .panel-title span { font-size:18px; }
  .panel-title > strong { font-size:11px; }
  .step { min-height:72px; gap:10px; padding:12px 0; }
  .step-number { flex-basis:24px; }
  .step-icon { flex-basis:26px; }
  .step-copy strong { font-size:14px; }
  .step-copy span { font-size:10px; line-height:1.35; }
  .subs-wrap { width:100%; padding:8px 0 10px; }
  .subs-list { width:100%; border-radius:14px; }
  .sub-item { width:100%; min-height:50px; padding:0 14px; font-size:12px; }
  .check-button { min-height:48px; margin-top:10px; border-radius:14px; font-size:12px; }
  .captcha { width:100%; padding:8px 0 10px; }
  .captcha-track { width:100%; height:48px; }
  .captcha-handle { width:40px; height:40px; }
  .outline-button { min-height:50px; margin-top:2px; }
  .stats-panel { grid-template-columns:36px minmax(0,1fr) 1px 36px minmax(0,1.15fr); gap:8px; padding:13px 14px; }
  .stats-panel strong { font-size:17px; }
  .stats-panel span { line-height:1.25; }
}
@media(max-height:760px) and (max-width:520px) {
  .hero { padding-top:12px; }
  .hero-copy { margin-top:10px; }
  .collectible { height:300px; }
  .nft-carousel { height:244px; }
  .nft-slide .collectible-disc { width:204px; height:204px; }
  .orbit { width:310px; height:104px; }
  .orbit-two { width:252px; height:252px; }
  .collectible-label { bottom:22px; }
  .countdown-panel { padding:13px 4px; }
}
@media(max-width:370px){.hero h1{font-size:36px}.nft-slide .collectible-disc{width:200px;height:200px}.orbit{width:300px}}
