:root {
  --bg: #050507;
  --bg-2: #08090d;
  --panel: rgba(13, 14, 20, .82);
  --panel-solid: #0d0e13;
  --panel-2: rgba(18, 20, 28, .84);
  --panel-3: #151721;
  --line: rgba(255,255,255,.105);
  --line-strong: rgba(255,255,255,.18);
  --line-red: rgba(255,53,91,.32);
  --text: #f8f7f4;
  --muted: #8a8d98;
  --dim: #565a66;
  --red: #ff355f;
  --red-hot: #ff6685;
  --red-dark: #7f1530;
  --gold: #e0b85a;
  --gold-soft: #a38745;
  --blue: #7695d9;
  --green: #69d5a1;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: Georgia, "Times New Roman", serif;
  --radius: 18px;
  --shadow: 0 28px 90px rgba(0,0,0,.42);
}

* { box-sizing: border-box; }
html { background: var(--bg); color: var(--text); scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; overflow-x: hidden; background: var(--bg); font-family: var(--sans); color: var(--text); }
button, input { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
::selection { background: rgba(255,53,95,.35); color:#fff; }

.ambient { position: fixed; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; background: radial-gradient(circle at 50% -25%, #191522 0, #090a0e 34%, #050507 72%); }
.ambient-grid { position:absolute; inset:-20%; opacity:.17; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg,rgba(255,255,255,.035) 1px, transparent 1px); background-size: 52px 52px; transform: perspective(900px) rotateX(64deg) translateY(-8%); transform-origin:50% 0; mask-image: linear-gradient(to bottom, rgba(0,0,0,.8), transparent 64%); }
.ambient-glow { position:absolute; width:52vw; aspect-ratio:1; border-radius:50%; filter:blur(110px); opacity:.12; }
.ambient-glow-red { background:var(--red); top:-34vw; right:-10vw; }
.ambient-glow-blue { background:#2d5bff; bottom:-40vw; left:-24vw; opacity:.08; }
.ambient-noise { position:absolute; inset:0; opacity:.025; 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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
.cursor-aura { position:absolute; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle,rgba(255,53,95,.105),transparent 68%); transform:translate(-50%,-50%); left:50%; top:18%; transition:opacity .25s ease; }

.shell { min-height: 100vh; }
.header { height: 72px; position:sticky; top:0; z-index:40; border-bottom:1px solid rgba(255,255,255,.07); background:rgba(5,5,7,.76); backdrop-filter:blur(24px) saturate(140%); }
.header::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:linear-gradient(90deg,transparent 14%,rgba(255,53,95,.24),transparent 86%); }
.header-inner { width:min(1380px,calc(100% - 44px)); height:100%; margin:0 auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; }
.brand { width:max-content; display:flex; align-items:center; gap:11px; border:0; background:none; color:inherit; padding:0; cursor:pointer; }
.brand-mark { width:39px; height:39px; border-radius:12px; overflow:hidden; border:1px solid rgba(255,255,255,.12); background:#08080a; box-shadow:0 0 22px rgba(255,53,95,.13); }
.brand-mark img { width:100%; height:100%; object-fit:cover; transform:scale(1.07); }
.brand-copy { display:grid; line-height:1; text-align:left; }
.brand-copy strong { font-size:13px; letter-spacing:.115em; font-weight:760; }
.brand-copy small { margin-top:7px; color:#727681; font-family:var(--mono); font-size:6px; letter-spacing:.24em; }
.nav-shell { display:flex; align-items:center; border:1px solid rgba(255,255,255,.075); padding:4px; border-radius:12px; background:rgba(15,16,21,.72); box-shadow:inset 0 1px 0 rgba(255,255,255,.035); }
.nav { display:flex; align-items:center; }
.nav button,.nav a { position:relative; height:34px; padding:0 16px; border:0; border-radius:8px; background:transparent; color:#747884; font-family:var(--mono); font-size:9px; font-weight:700; cursor:pointer; transition:.18s ease; }
.nav button:hover,.nav a:hover { color:#d8dae0; }
.nav button.active,.nav a.active { color:#fff; background:rgba(255,255,255,.055); box-shadow:inset 0 0 0 1px rgba(255,255,255,.045); }
.nav button.active::after,.nav a.active::after { content:""; position:absolute; left:34%; right:34%; bottom:-5px; height:2px; border-radius:2px; background:var(--red); box-shadow:0 0 12px var(--red); }
.header-actions { display:flex; justify-content:flex-end; align-items:center; gap:8px; }
.chain-pill { height:36px; display:flex; align-items:center; gap:8px; padding:0 11px; border:1px solid var(--line); border-radius:10px; background:rgba(15,16,21,.76); color:#a0a3ad; font-family:var(--mono); font-size:8px; }
.chain-dot { width:7px; height:7px; border-radius:50%; background:var(--green); box-shadow:0 0 10px rgba(105,213,161,.6); }
.icon-btn,.wallet-btn,.small-btn,.ghost-btn { border:1px solid var(--line); background:rgba(14,15,20,.78); cursor:pointer; transition:.18s ease; }
.icon-btn:hover,.wallet-btn:hover,.small-btn:hover,.ghost-btn:hover { border-color:var(--line-strong); background:rgba(23,24,31,.88); transform:translateY(-1px); }
.icon-btn { width:36px; height:36px; border-radius:10px; display:grid; place-items:center; color:#9a9da6; font-family:var(--mono); }
.wallet-btn { min-height:36px; padding:0 13px; border-radius:10px; display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:9px; font-weight:800; }
.wallet-dot { width:7px; height:7px; border-radius:50%; background:#6f727b; }
.wallet-btn.connected .wallet-dot { background:var(--green); box-shadow:0 0 10px rgba(105,213,161,.55); }
.mobile-menu { display:none; }

.main { width:min(1120px,calc(100% - 36px)); margin:34px auto 110px; }
.trade-main { width:min(1180px,calc(100% - 36px)); }

.announcement { min-height:38px; display:flex; align-items:center; justify-content:center; gap:24px; margin:0 auto 18px; border:1px solid rgba(255,255,255,.075); border-radius:12px; background:rgba(13,14,18,.55); color:#838792; font-family:var(--mono); font-size:8px; letter-spacing:.09em; overflow:hidden; }
.announcement span { white-space:nowrap; }
.announcement b { color:#f3f1ee; font-weight:700; }
.announcement .live { color:var(--green); }
.announcement-sep { width:3px; height:3px; border-radius:50%; background:#444852; }

.trade-shell { position:relative; border:1px solid rgba(255,255,255,.11); border-radius:22px; background:linear-gradient(145deg,rgba(18,19,25,.92),rgba(8,9,12,.94)); box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.045); overflow:hidden; }
.trade-shell::before { content:""; position:absolute; z-index:0; left:12%; right:12%; top:-1px; height:1px; background:linear-gradient(90deg,transparent,var(--red),transparent); opacity:.55; }
.trade-shell::after { content:""; position:absolute; z-index:0; width:520px; height:520px; top:-410px; right:4%; border-radius:50%; background:rgba(255,53,95,.09); filter:blur(74px); }
.trade-grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(360px,.82fr) minmax(540px,1.18fr); min-height:576px; }
.trade-panel { padding:24px; border-right:1px solid rgba(255,255,255,.085); background:linear-gradient(180deg,rgba(11,12,16,.22),rgba(7,8,11,.48)); }
.panel-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.tabs { display:flex; gap:4px; padding:3px; border:1px solid rgba(255,255,255,.075); border-radius:9px; background:#0a0b0f; }
.tab { height:30px; min-width:62px; border:0; border-radius:6px; background:transparent; color:#666a75; font-family:var(--mono); font-size:9px; font-weight:800; cursor:pointer; }
.tab.active { color:#fff; background:#1a1b22; box-shadow:inset 0 0 0 1px rgba(255,255,255,.055); }
.balance { color:#666a74; font-family:var(--mono); font-size:8px; }
.balance b { color:var(--red-hot); cursor:pointer; }

.swap-stack { position:relative; display:grid; gap:8px; }
.asset-box { min-height:110px; padding:16px; border:1px solid rgba(255,255,255,.095); border-radius:14px; background:linear-gradient(140deg,rgba(22,23,30,.92),rgba(11,12,16,.93)); transition:.2s ease; }
.asset-box:focus-within { border-color:rgba(255,53,95,.36); box-shadow:0 0 0 3px rgba(255,53,95,.055); }
.asset-label { display:flex; justify-content:space-between; color:#737782; font-family:var(--mono); font-size:8px; }
.asset-value { display:flex; align-items:center; gap:12px; margin-top:16px; }
.asset-value input { min-width:0; width:100%; border:0; outline:0; background:transparent; color:#fff; font-family:var(--sans); font-size:30px; font-weight:650; letter-spacing:-.045em; }
.asset-value input::placeholder { color:#4c505a; }
.token-pill { flex:0 0 auto; display:flex; align-items:center; gap:8px; height:36px; padding:0 11px 0 7px; border:1px solid rgba(255,255,255,.1); border-radius:10px; background:#161820; font-size:11px; font-weight:700; }
.token-icon { width:23px; height:23px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(145deg,#768ef5,#3156b9); font-size:10px; box-shadow:inset 0 1px 0 rgba(255,255,255,.3); }
.token-icon.jack { background:linear-gradient(145deg,#ff6583,#8d1733); color:#fff; }
.swap-arrow { position:absolute; z-index:3; left:50%; top:50%; width:34px; height:34px; transform:translate(-50%,-50%); border:5px solid #0f1015; border-radius:11px; display:grid; place-items:center; background:#252832; color:#bdc0c9; font-family:var(--mono); font-size:13px; }
.output-preview { color:#d1d3da; font-family:var(--mono); font-size:23px; font-weight:760; letter-spacing:-.04em; }
.output-sub { margin-top:5px; color:#656a75; font-family:var(--mono); font-size:8px; }

.trade-meta { margin:14px 0 0; display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(255,255,255,.075); border-radius:11px; overflow:hidden; }
.trade-meta-item { padding:10px; border-right:1px solid rgba(255,255,255,.065); }
.trade-meta-item:last-child { border-right:0; }
.trade-meta-item small { display:block; color:#5f636e; font-family:var(--mono); font-size:7px; letter-spacing:.1em; }
.trade-meta-item strong { display:block; margin-top:6px; font-family:var(--mono); font-size:9px; }

.odds-head { margin:17px 0 9px; display:flex; justify-content:space-between; align-items:center; color:#686c76; font-family:var(--mono); font-size:8px; letter-spacing:.12em; }
.odds-head span:last-child { color:#8e929c; letter-spacing:0; }
.odds-strip { display:grid; grid-template-columns:50fr 27fr 14fr 7fr 1.8fr .8fr; gap:3px; height:9px; }
.odds-segment { min-width:3px; border-radius:3px; background:#353843; }
.odds-segment.floor { background:#41444e; }
.odds-segment.neutral { background:#6e7078; }
.odds-segment.low { background:#6a2939; }
.odds-segment.mid { background:var(--red-dark); }
.odds-segment.rare { background:#56688f; }
.odds-segment.jackpot { background:var(--gold); box-shadow:0 0 10px rgba(224,184,90,.28); }
.odds-list { margin-top:9px; display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
.odds-chip { min-height:37px; padding:7px 8px; border:1px solid rgba(255,255,255,.07); border-radius:8px; background:rgba(11,12,16,.64); }
.odds-chip b { display:block; font-family:var(--mono); font-size:9px; }
.odds-chip small { display:block; margin-top:4px; color:#5d616b; font-family:var(--mono); font-size:7px; }
.odds-chip.jackpot b { color:var(--gold); }
.odds-chip.rare b { color:#9db2e1; }
.odds-chip.mid b { color:var(--red-hot); }

.primary-btn { width:100%; min-height:46px; margin-top:17px; border:0; border-radius:11px; background:linear-gradient(180deg,#ff4169,#e8244e); color:#fff; font-family:var(--mono); font-size:10px; font-weight:900; letter-spacing:.11em; cursor:pointer; box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 28px rgba(255,53,95,.18); transition:.18s ease; }
.primary-btn:hover { transform:translateY(-1px); filter:brightness(1.06); box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 14px 34px rgba(255,53,95,.25); }
.primary-btn:disabled { cursor:not-allowed; opacity:.55; }
.disclaimer { margin-top:10px; color:#575b65; text-align:center; font-family:var(--mono); font-size:7px; line-height:1.55; }

.rail-panel { min-width:0; position:relative; display:flex; flex-direction:column; background:radial-gradient(circle at 50% 38%,rgba(255,53,95,.05),transparent 45%); }
.rail-head { min-height:106px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 22px; border-bottom:1px solid rgba(255,255,255,.08); }
.rail-status { display:flex; align-items:center; gap:8px; color:#737782; font-family:var(--mono); font-size:8px; letter-spacing:.13em; }
.rail-status::before { content:""; width:6px; height:6px; border-radius:2px; background:var(--red); box-shadow:0 0 10px rgba(255,53,95,.75); animation:pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 50% { opacity:.4; transform:scale(.75); } }
.rail-title { margin-top:11px; }
.rail-title small { display:block; color:#5d616b; font-family:var(--mono); font-size:7px; letter-spacing:.11em; }
.rail-title strong { display:block; margin-top:5px; font-size:13px; font-weight:650; }
.rail-actions { display:flex; align-items:center; gap:7px; }
.small-btn { min-height:32px; padding:0 11px; border-radius:9px; color:#a8abb4; font-family:var(--mono); font-size:8px; font-weight:800; }
.demo-btn { color:#fff; border-color:rgba(255,53,95,.24); background:rgba(255,53,95,.075); }

.reel-stage { height:260px; position:relative; overflow:hidden; border-bottom:1px solid rgba(255,255,255,.08); background:linear-gradient(180deg,rgba(4,5,8,.45),rgba(7,8,11,.88)); perspective:800px; }
.reel-stage::before,.reel-stage::after { content:""; position:absolute; z-index:7; top:0; bottom:0; width:86px; pointer-events:none; }
.reel-stage::before { left:0; background:linear-gradient(90deg,#0a0b0f 15%,transparent); }
.reel-stage::after { right:0; background:linear-gradient(-90deg,#0a0b0f 15%,transparent); }
.reel-track-lines { position:absolute; inset:0; opacity:.32; background:linear-gradient(90deg,transparent,rgba(255,255,255,.035),transparent),repeating-linear-gradient(0deg,transparent 0 31px,rgba(255,255,255,.018) 32px); }
.reel { display:flex; align-items:center; gap:9px; height:100%; width:max-content; padding:0 0; transform:translateX(-150px); will-change:transform; transform-style:preserve-3d; }
.ticket { --tc1:#671d32; --tc2:#39111d; width:190px; height:132px; flex:0 0 auto; position:relative; display:grid; place-items:center; overflow:hidden; clip-path:polygon(0 0,100% 0,100% 30%,95% 36%,95% 64%,100% 70%,100% 100%,0 100%,0 70%,5% 64%,5% 36%,0 30%); background:linear-gradient(135deg,var(--tc1),var(--tc2)); color:#fff; border:1px solid rgba(255,255,255,.12); font-family:var(--mono); font-size:29px; font-weight:900; text-shadow:0 2px 8px rgba(0,0,0,.25); box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 20px 40px rgba(0,0,0,.28); }
.ticket::before { content:""; position:absolute; inset:8px; border:1px solid rgba(255,255,255,.09); clip-path:inherit; }
.ticket::after { content:"SWAPJACK"; position:absolute; bottom:15px; font-size:6px; letter-spacing:.25em; color:rgba(255,255,255,.35); }
.ticket.floor { --tc1:#3b3e48; --tc2:#1e2028; color:#c7c9cf; }
.ticket.neutral { --tc1:#646770; --tc2:#33353d; }
.ticket.low { --tc1:#612334; --tc2:#32151e; }
.ticket.mid { --tc1:#a02a49; --tc2:#571528; }
.ticket.rare { --tc1:#526385; --tc2:#283249; }
.ticket.jackpot { --tc1:#9a823b; --tc2:#4e3f19; color:#fff5ce; }
.pointer { position:absolute; z-index:9; top:0; bottom:0; left:50%; width:2px; background:linear-gradient(transparent 0,#ff6d89 18%,#fff 50%,#ff6d89 82%,transparent); box-shadow:0 0 14px var(--red),0 0 38px rgba(255,53,95,.65); }
.pointer::before,.pointer::after { content:""; position:absolute; left:50%; width:13px; height:13px; transform:translateX(-50%) rotate(45deg); background:#fff1f4; border:2px solid #ff7290; box-shadow:0 0 16px var(--red); }
.pointer::before { top:8px; }
.pointer::after { bottom:8px; }
.pointer-halo { position:absolute; z-index:6; top:50%; left:50%; width:150px; height:150px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle,rgba(255,53,95,.14),transparent 70%); }
.result-flash { position:absolute; inset:0; z-index:10; pointer-events:none; opacity:0; background:radial-gradient(circle at center,rgba(255,255,255,.22),rgba(255,53,95,.22) 22%,transparent 58%); }
.result-flash.on { animation:flash .6s ease; }
@keyframes flash { 50% { opacity:1; } }

.rail-bottom { display:grid; grid-template-columns:1fr 1fr; min-height:130px; }
.history { padding:18px 20px; border-right:1px solid rgba(255,255,255,.075); }
.history-label,.last-bets strong { display:block; color:#626671; font-family:var(--mono); font-size:7px; letter-spacing:.13em; }
.history-items { display:flex; gap:6px; flex-wrap:wrap; margin-top:14px; }
.history-chip { min-width:44px; padding:6px 7px; border:1px solid rgba(255,255,255,.075); border-radius:7px; background:rgba(10,11,15,.7); color:#747883; text-align:center; font-family:var(--mono); font-size:7px; }
.history-chip.win { color:#ff7891; border-color:rgba(255,53,95,.22); background:rgba(255,53,95,.045); }
.last-bets { padding:18px 20px; }
.last-bets p { margin:15px 0 0; color:#5d616c; font-family:var(--mono); font-size:8px; line-height:1.55; }

.section { margin-top:52px; }
.section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:14px; }
.section-kicker { color:#676b76; font-family:var(--mono); font-size:8px; letter-spacing:.17em; font-weight:800; }
.section-title { margin:7px 0 0; font-size:30px; letter-spacing:-.045em; font-weight:620; }
.section-side-note { color:#565a65; font-family:var(--mono); font-size:8px; }
.empty-box { min-height:96px; display:flex; align-items:center; gap:15px; padding:19px; border:1px dashed rgba(255,255,255,.14); border-radius:14px; background:rgba(11,12,16,.44); }
.empty-icon { width:39px; height:39px; flex:0 0 auto; display:grid; place-items:center; border:1px solid rgba(255,255,255,.12); border-radius:10px; color:#9a9da6; background:#111219; }
.empty-copy strong { display:block; font-size:11px; }
.empty-copy small { display:block; margin-top:7px; color:#656974; font-family:var(--mono); font-size:8px; }
.section-note { margin-top:10px; color:#515560; text-align:center; font-family:var(--mono); font-size:7px; }

.jackpot-card { position:relative; padding:22px; border:1px solid rgba(255,255,255,.095); border-radius:18px; background:linear-gradient(150deg,rgba(18,19,25,.84),rgba(10,11,15,.92)); overflow:hidden; box-shadow:0 20px 56px rgba(0,0,0,.24); }
.jackpot-card::after { content:""; position:absolute; width:240px; height:240px; border-radius:50%; right:-130px; top:-150px; background:var(--gold); opacity:.045; filter:blur(30px); }
.jackpot-card.last-buyer-card::after { background:var(--red); opacity:.06; }
.card-head { position:relative; z-index:1; display:flex; justify-content:space-between; align-items:flex-start; }
.card-head h3 { margin:0; font-size:14px; font-weight:620; }
.card-head p { margin:6px 0 0; color:#686c76; font-family:var(--mono); font-size:8px; }
.jackpot-grid { position:relative; z-index:1; margin-top:22px; display:grid; grid-template-columns:1.16fr .84fr; gap:18px; }
.big-number { color:var(--gold); font-family:var(--mono); font-size:44px; font-weight:900; letter-spacing:-.065em; }
.big-number small { margin-left:6px; font-size:9px; letter-spacing:0; }
.countdown-row { display:flex; justify-content:space-between; margin:16px 0 9px; color:#6b6f7a; font-family:var(--mono); font-size:8px; }
.countdown-row strong { color:#d7d8dd; }
.progress { height:4px; position:relative; overflow:hidden; border-radius:999px; background:#24262e; }
.progress span { position:absolute; inset:0 auto 0 0; width:56%; border-radius:inherit; background:linear-gradient(90deg,#8f6f28,var(--gold)); box-shadow:0 0 16px rgba(224,184,90,.23); }
.stats-grid { margin-top:15px; display:grid; grid-template-columns:1fr 1fr; overflow:hidden; border:1px solid rgba(255,255,255,.075); border-radius:11px; }
.stat { min-height:62px; padding:12px; }
.stat:nth-child(odd) { border-right:1px solid rgba(255,255,255,.07); }
.stat:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.07); }
.stat small { display:block; color:#60646f; font-family:var(--mono); font-size:7px; letter-spacing:.1em; }
.stat strong { display:block; margin-top:8px; font-family:var(--mono); font-size:11px; }
.winners { overflow:hidden; border:1px solid rgba(255,255,255,.075); border-radius:11px; background:rgba(7,8,11,.28); }
.winner-head { padding:12px; border-bottom:1px solid rgba(255,255,255,.07); color:#626671; font-family:var(--mono); font-size:7px; letter-spacing:.11em; }
.winner-row { display:flex; justify-content:space-between; padding:15px 12px; border-bottom:1px solid rgba(255,255,255,.055); font-family:var(--mono); font-size:8px; }
.winner-row:last-child { border-bottom:0; }
.winner-row span:last-child { color:var(--gold); font-weight:800; }
.live-badge { display:inline-flex; align-items:center; gap:7px; padding:7px 9px; border:1px solid rgba(255,53,95,.22); border-radius:8px; background:rgba(255,53,95,.055); color:#ff8ba1; font-family:var(--mono); font-size:7px; letter-spacing:.06em; }
.live-badge::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--red); box-shadow:0 0 9px var(--red); }

.hero { min-height:calc(100vh - 110px); display:grid; grid-template-columns:1fr .9fr; align-items:center; gap:70px; padding:40px 0 30px; }
.hero-copy { position:relative; z-index:2; }
.hero h1 { margin:20px 0 0; max-width:720px; font-size:clamp(62px,7.2vw,108px); line-height:.88; letter-spacing:-.075em; font-weight:680; }
.hero h1 .accent { color:var(--red); text-shadow:0 0 34px rgba(255,53,95,.22); }
.hero h1 .outline { color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.5); }
.hero p { max-width:640px; margin:28px 0 0; color:#8c909a; font-size:17px; line-height:1.68; }
.hero-actions { margin-top:32px; display:flex; gap:10px; }
.hero-actions .primary-btn { width:auto; min-width:190px; margin:0; padding:0 22px; }
.ghost-btn { min-height:46px; padding:0 20px; border-radius:11px; color:#c7c9cf; font-family:var(--mono); font-size:9px; font-weight:800; }
.hero-proof { margin-top:25px; display:flex; flex-wrap:wrap; gap:16px; color:#626671; font-family:var(--mono); font-size:8px; }
.hero-proof span { display:flex; align-items:center; gap:7px; }
.hero-proof span::before { content:"✓"; color:var(--green); }
.hero-visual { min-height:560px; position:relative; display:grid; place-items:center; }
.hero-visual::before { content:""; position:absolute; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle,rgba(255,53,95,.105),transparent 64%); filter:blur(8px); }
.logo-orbit { width:min(480px,88vw); aspect-ratio:1; position:relative; display:grid; place-items:center; border-radius:50%; }
.logo-orbit::before,.logo-orbit::after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(255,255,255,.095); }
.logo-orbit::before { inset:1%; box-shadow:inset 0 0 70px rgba(255,53,95,.035); }
.logo-orbit::after { inset:16%; border-color:rgba(255,53,95,.15); }
.orbit-ring { position:absolute; inset:7%; border-radius:50%; border:1px dashed rgba(255,255,255,.08); animation:orbitSpin 28s linear infinite; }
@keyframes orbitSpin { to { transform:rotate(360deg); } }
.logo-orbit img { width:61%; height:61%; object-fit:cover; border-radius:50%; position:relative; z-index:2; box-shadow:0 0 0 1px rgba(255,255,255,.09),0 24px 80px rgba(0,0,0,.55),0 0 70px rgba(255,53,95,.16); }
.orbit-ticket { position:absolute; z-index:3; width:128px; height:82px; font-size:18px; }
.orbit-ticket.one { left:-4%; top:24%; transform:rotate(-9deg); }
.orbit-ticket.two { right:-6%; top:35%; transform:rotate(8deg); }
.orbit-ticket.three { bottom:1%; left:37%; transform:rotate(3deg); }
.hero-rail-label { position:absolute; top:10%; right:2%; color:#646874; font-family:var(--mono); font-size:7px; letter-spacing:.15em; writing-mode:vertical-rl; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); margin:0 0 80px; overflow:hidden; border:1px solid rgba(255,255,255,.09); border-radius:16px; background:rgba(11,12,16,.48); }
.metric { padding:23px 20px; border-right:1px solid rgba(255,255,255,.075); }
.metric:last-child { border-right:0; }
.metric strong { font-family:var(--mono); font-size:25px; letter-spacing:-.04em; }
.metric span { display:block; margin-top:9px; color:#656974; font-family:var(--mono); font-size:7px; letter-spacing:.12em; }
.info-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.info-card { min-height:220px; position:relative; overflow:hidden; padding:23px; border:1px solid rgba(255,255,255,.085); border-radius:16px; background:linear-gradient(145deg,rgba(19,20,27,.75),rgba(10,11,15,.86)); }
.info-card::after { content:""; position:absolute; right:-50px; bottom:-70px; width:150px; height:150px; border:1px solid rgba(255,255,255,.05); border-radius:50%; }
.info-card .num { color:var(--red-hot); font-family:var(--mono); font-size:8px; letter-spacing:.1em; }
.info-card h3 { margin:40px 0 0; font-size:19px; font-weight:620; }
.info-card p { color:#767a85; font-size:13px; line-height:1.68; }

.page-head { padding:54px 0 27px; border-bottom:1px solid rgba(255,255,255,.08); }
.page-head h1 { margin:8px 0 0; font-size:48px; letter-spacing:-.055em; }
.page-head p { max-width:760px; color:#7f838e; line-height:1.72; }
.data-grid { margin-top:24px; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.data-card { padding:22px; border:1px solid rgba(255,255,255,.085); border-radius:15px; background:rgba(16,17,23,.73); }
.data-card small { color:#666a75; font-family:var(--mono); font-size:7px; letter-spacing:.12em; }
.data-card strong { display:block; margin-top:16px; font-family:var(--mono); font-size:26px; letter-spacing:-.045em; }
.data-card p { color:#6f737e; font-size:12px; line-height:1.6; }
.reserve-table { margin-top:18px; overflow:hidden; border:1px solid rgba(255,255,255,.085); border-radius:14px; }
.reserve-row { display:grid; grid-template-columns:1.3fr .8fr .8fr; padding:16px; border-bottom:1px solid rgba(255,255,255,.07); font-family:var(--mono); font-size:9px; }
.reserve-row:last-child { border-bottom:0; }
.reserve-row.head { color:#626671; background:rgba(255,255,255,.025); font-size:7px; letter-spacing:.1em; }
.docs-layout { margin-top:26px; display:grid; grid-template-columns:220px 1fr; gap:30px; }
.docs-nav { position:sticky; top:94px; align-self:start; padding:8px; border:1px solid rgba(255,255,255,.085); border-radius:13px; background:rgba(13,14,19,.7); }
.docs-nav button { width:100%; text-align:left; padding:11px; border:0; border-radius:8px; background:transparent; color:#70747f; font-family:var(--mono); font-size:8px; cursor:pointer; }
.docs-nav button.active { color:#fff; background:#1b1d25; }
.docs-content { max-width:800px; }
.docs-content h2 { margin:0 0 15px; font-size:32px; letter-spacing:-.04em; }
.docs-content h3 { margin-top:36px; }
.docs-content p,.docs-content li { color:#858994; line-height:1.78; font-size:14px; }
.code { margin:16px 0; padding:16px; overflow:auto; border:1px solid rgba(255,255,255,.085); border-radius:12px; background:#0c0d12; color:#d4d6dc; font-family:var(--mono); font-size:10px; white-space:pre-wrap; }
.footer { width:min(1120px,calc(100% - 36px)); margin:0 auto; padding:26px 0 38px; display:flex; justify-content:space-between; border-top:1px solid rgba(255,255,255,.07); color:#555963; font-family:var(--mono); font-size:7px; letter-spacing:.08em; }

.toast { position:fixed; left:50%; bottom:28px; z-index:100; padding:13px 16px; transform:translate(-50%,18px); opacity:0; pointer-events:none; border:1px solid rgba(255,255,255,.13); border-radius:11px; background:rgba(23,24,31,.94); box-shadow:0 18px 52px rgba(0,0,0,.5); color:#fff; font-family:var(--mono); font-size:9px; transition:.22s ease; }
.toast.show { opacity:1; transform:translate(-50%,0); }

@media (max-width: 1040px) {
  .trade-grid { grid-template-columns:1fr; }
  .trade-panel { border-right:0; border-bottom:1px solid rgba(255,255,255,.08); }
  .hero { grid-template-columns:1fr; padding-top:70px; }
  .hero-visual { min-height:480px; }
}
@media (max-width: 900px) {
  .header-inner { grid-template-columns:1fr auto; }
  .nav-shell,.chain-pill { display:none; }
  .mobile-menu { display:grid; }
  .main,.trade-main { width:min(100% - 22px,740px); margin-top:22px; }
  .jackpot-grid,.docs-layout { grid-template-columns:1fr; }
  .metrics,.data-grid,.info-grid { grid-template-columns:1fr 1fr; }
  .metric:nth-child(2) { border-right:0; }
  .metric:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.075); }
  .docs-nav { position:static; display:flex; overflow:auto; }
  .docs-nav button { white-space:nowrap; }
}
@media (max-width: 620px) {
  .header { height:62px; }
  .header-inner { width:calc(100% - 18px); }
  .brand-copy small { display:none; }
  .brand-mark { width:35px; height:35px; }
  .header-actions .icon-btn:not(.mobile-menu) { display:none; }
  .wallet-btn { max-width:145px; overflow:hidden; }
  .announcement { justify-content:flex-start; padding:0 13px; overflow:auto; }
  .trade-shell { border-radius:16px; }
  .trade-panel { padding:15px; }
  .trade-meta { grid-template-columns:1fr; }
  .trade-meta-item { border-right:0; border-bottom:1px solid rgba(255,255,255,.065); }
  .trade-meta-item:last-child { border-bottom:0; }
  .odds-list { grid-template-columns:1fr 1fr; }
  .rail-head { align-items:flex-start; flex-direction:column; padding:17px; }
  .rail-actions { width:100%; }
  .rail-actions .small-btn { flex:1; }
  .reel-stage { height:210px; }
  .ticket { width:154px; height:108px; font-size:24px; }
  .rail-bottom { grid-template-columns:1fr; }
  .history { border-right:0; border-bottom:1px solid rgba(255,255,255,.075); }
  .section-head { align-items:flex-start; flex-direction:column; }
  .jackpot-card { padding:17px; }
  .big-number { font-size:36px; }
  .metrics,.data-grid,.info-grid { grid-template-columns:1fr; }
  .metric { border-right:0; border-bottom:1px solid rgba(255,255,255,.075); }
  .metric:last-child { border-bottom:0; }
  .hero { gap:20px; }
  .hero h1 { font-size:58px; }
  .hero p { font-size:15px; }
  .hero-actions { flex-direction:column; }
  .hero-actions .primary-btn,.ghost-btn { width:100%; }
  .hero-visual { min-height:400px; }
  .logo-orbit { width:330px; }
  .orbit-ticket { width:94px; height:61px; font-size:14px; }
  .reserve-row { grid-template-columns:1.2fr .8fr; }
  .reserve-row > :nth-child(3) { display:none; }
  .footer { flex-direction:column; gap:8px; }
}

/* ==========================================================================\n   SWAPJACK V3 — PREMIUM SCALE & MOTION LAYER\n   Preserves the original art direction while improving legibility, depth and\n   perceived production value on large desktop displays.\n   ========================================================================== */
:root {
  --content: 1440px;
  --content-home: 1320px;
  --red: #ff315d;
  --red-hot: #ff7893;
  --text: #fbfaf8;
  --muted: #9a9eaa;
  --dim: #626773;
  --line: rgba(255,255,255,.115);
  --line-strong: rgba(255,255,255,.22);
  --terminal-shadow: 0 42px 130px rgba(0,0,0,.62), 0 0 0 1px rgba(255,255,255,.025) inset;
}

html { font-size: 16px; }
body { background:#050507; }
body::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% -12%, rgba(255,49,93,.075), transparent 31%),
    linear-gradient(180deg, rgba(255,255,255,.01), transparent 22%);
}

.boot-screen {
  position:fixed;
  inset:0;
  z-index:999;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:18px;
  background:#050507;
  transition:opacity .55s cubic-bezier(.22,.8,.22,1), visibility .55s;
}
.boot-screen.is-hidden { opacity:0; visibility:hidden; pointer-events:none; }
.boot-mark {
  width:72px;
  height:72px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:22px;
  box-shadow:0 0 55px rgba(255,49,93,.22), inset 0 1px 0 rgba(255,255,255,.08);
  animation:bootPulse 1.5s ease-in-out infinite;
}
.boot-mark img { width:100%; height:100%; object-fit:cover; transform:scale(1.07); }
.boot-copy { display:grid; justify-items:center; gap:7px; }
.boot-copy strong { font-size:13px; letter-spacing:.22em; }
.boot-copy span { color:#686d78; font-family:var(--mono); font-size:8px; letter-spacing:.22em; }
.boot-line { width:170px; height:2px; overflow:hidden; border-radius:999px; background:#171820; }
.boot-line span { display:block; width:55%; height:100%; background:linear-gradient(90deg,transparent,var(--red),transparent); animation:bootLine .8s ease-in-out infinite; }
@keyframes bootPulse { 50% { transform:scale(1.035); box-shadow:0 0 80px rgba(255,49,93,.3), inset 0 1px 0 rgba(255,255,255,.1); } }
@keyframes bootLine { from { transform:translateX(-120%); } to { transform:translateX(230%); } }

.ambient { background:radial-gradient(circle at 50% -22%, #1a1420 0, #090a0e 35%, #050507 72%); }
.signal-canvas { position:absolute; inset:0; width:100%; height:100%; opacity:.72; mask-image:linear-gradient(to bottom,rgba(0,0,0,.92),rgba(0,0,0,.26) 68%,transparent); }
.ambient-grid {
  opacity:.19;
  background-size:62px 62px;
  transform:perspective(1080px) rotateX(66deg) translateY(-12%);
}
.ambient-beam {
  position:absolute;
  left:50%;
  top:-22%;
  width:1px;
  height:78%;
  background:linear-gradient(to bottom,transparent,rgba(255,71,107,.22),transparent);
  box-shadow:0 0 48px 12px rgba(255,49,93,.055);
  transform:rotate(24deg);
  opacity:.6;
}
.ambient-vignette { position:absolute; inset:0; background:radial-gradient(ellipse at center,transparent 36%,rgba(0,0,0,.44) 100%); }
.ambient-noise { opacity:.032; }
.cursor-aura { width:460px; height:460px; opacity:.7; background:radial-gradient(circle,rgba(255,49,93,.12),rgba(255,49,93,.025) 42%,transparent 70%); mix-blend-mode:screen; }

.header { height:78px; background:rgba(5,5,7,.71); border-bottom-color:rgba(255,255,255,.075); }
.header-inner { width:min(var(--content),calc(100% - 56px)); gap:28px; }
.brand { gap:13px; }
.brand-mark { width:44px; height:44px; border-radius:14px; box-shadow:0 0 28px rgba(255,49,93,.17), inset 0 1px 0 rgba(255,255,255,.07); }
.brand-copy strong { font-size:14px; letter-spacing:.13em; }
.brand-copy small { margin-top:8px; font-size:7px; color:#7a7f8b; }
.nav-shell { padding:5px; border-radius:14px; background:rgba(15,16,21,.78); box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 12px 30px rgba(0,0,0,.18); }
.nav button,.nav a { height:38px; padding:0 20px; border-radius:9px; font-size:10px; letter-spacing:.02em; }
.chain-pill,.icon-btn,.wallet-btn { height:40px; }
.chain-pill { padding:0 13px; font-size:9px; }
.icon-btn { width:40px; border-radius:11px; }
.wallet-btn { min-height:40px; padding:0 15px; font-size:10px; border-radius:11px; }

.main { width:min(var(--content-home),calc(100% - 48px)); margin:42px auto 130px; }
.trade-main { width:min(var(--content),calc(100% - 48px)); }

.announcement {
  min-height:46px;
  gap:28px;
  margin-bottom:20px;
  padding:0 22px;
  border-radius:14px;
  font-size:9px;
  letter-spacing:.095em;
  background:linear-gradient(180deg,rgba(18,19,24,.74),rgba(9,10,13,.62));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 16px 36px rgba(0,0,0,.18);
}
.announcement .live { text-shadow:0 0 15px rgba(105,213,161,.22); }
.announcement-sep { width:4px; height:4px; }

.trade-shell {
  --tilt-x:0deg;
  --tilt-y:0deg;
  --shine-x:50%;
  --shine-y:0%;
  border-radius:26px;
  background:linear-gradient(145deg,rgba(20,21,28,.96),rgba(7,8,11,.975));
  box-shadow:var(--terminal-shadow);
  transform:perspective(1800px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style:preserve-3d;
  transition:transform .22s ease-out,border-color .3s ease,box-shadow .3s ease;
  will-change:transform;
}
.trade-shell::before { left:8%; right:8%; opacity:.75; box-shadow:0 0 22px rgba(255,49,93,.25); }
.trade-shell::after { width:700px; height:700px; top:-560px; right:0; opacity:.82; }
.trade-shell.is-tilting { border-color:rgba(255,255,255,.155); box-shadow:0 52px 150px rgba(0,0,0,.66),0 0 70px rgba(255,49,93,.035),inset 0 1px 0 rgba(255,255,255,.06); }
.trade-shell > * { position:relative; z-index:1; }
.trade-shell .terminal-chrome {
  height:38px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 20px;
  border-bottom:1px solid rgba(255,255,255,.075);
  background:linear-gradient(180deg,rgba(255,255,255,.024),transparent);
  color:#626773;
  font-family:var(--mono);
  font-size:8px;
  letter-spacing:.12em;
}
.terminal-chrome span { display:flex; align-items:center; gap:8px; }
.terminal-chrome i { width:6px; height:6px; border-radius:50%; background:var(--green); box-shadow:0 0 10px rgba(105,213,161,.62); }
.trade-shell::selection { background:rgba(255,49,93,.4); }

.trade-grid { grid-template-columns:minmax(490px,.88fr) minmax(670px,1.12fr); min-height:680px; }
.trade-panel { padding:30px; border-right-color:rgba(255,255,255,.09); }
.panel-top { margin-bottom:20px; }
.tabs { padding:4px; border-radius:11px; }
.tab { height:34px; min-width:72px; border-radius:7px; font-size:10px; }
.balance { font-size:9px; }
.swap-stack { gap:10px; }
.asset-box { min-height:132px; padding:19px; border-radius:17px; background:linear-gradient(140deg,rgba(24,25,33,.96),rgba(10,11,15,.95)); box-shadow:inset 0 1px 0 rgba(255,255,255,.025); }
.asset-box:hover { border-color:rgba(255,255,255,.145); }
.asset-label { font-size:9px; letter-spacing:.04em; }
.asset-value { margin-top:21px; gap:16px; }
.asset-value input { font-size:38px; }
.token-pill { height:42px; padding:0 13px 0 8px; border-radius:12px; font-size:13px; }
.token-icon { width:27px; height:27px; font-size:12px; }
.swap-arrow { width:40px; height:40px; border-width:6px; border-radius:13px; font-size:15px; background:#2a2d38; box-shadow:0 8px 24px rgba(0,0,0,.35); }
.output-preview { font-size:31px; }
.output-sub { margin-top:7px; font-size:9px; }
.trade-meta { margin-top:17px; border-radius:13px; }
.trade-meta-item { min-height:64px; padding:13px 14px; }
.trade-meta-item small { font-size:8px; }
.trade-meta-item strong { margin-top:8px; font-size:11px; }
.odds-head { margin:19px 0 10px; font-size:9px; }
.odds-strip { height:7px; gap:3px; }
.odds-list { margin-top:11px; gap:7px; }
.odds-chip { min-height:50px; padding:11px 12px; border-radius:11px; }
.odds-chip b { font-size:11px; }
.odds-chip small { margin-top:5px; font-size:8px; }
.primary-btn {
  --mag-x:0px;
  --mag-y:0px;
  min-height:54px;
  margin-top:18px;
  border-radius:13px;
  font-size:10px;
  letter-spacing:.06em;
  transform:translate(var(--mag-x),var(--mag-y));
  box-shadow:0 12px 34px rgba(255,49,93,.18),inset 0 1px 0 rgba(255,255,255,.18);
}
.primary-btn::before { content:""; position:absolute; inset:1px; border-radius:11px; background:linear-gradient(100deg,transparent,rgba(255,255,255,.16),transparent); transform:translateX(-120%); transition:transform .75s ease; }
.primary-btn:hover::before { transform:translateX(120%); }
.primary-btn:hover { box-shadow:0 17px 46px rgba(255,49,93,.27),0 0 34px rgba(255,49,93,.12); }
.disclaimer { margin-top:12px; font-size:8px; line-height:1.55; }

.rail-panel { min-width:0; }
.rail-head { min-height:113px; padding:25px 28px; background:linear-gradient(180deg,rgba(255,49,93,.055),transparent); }
.rail-status { font-size:8px; letter-spacing:.13em; }
.rail-title { margin-top:12px; }
.rail-title small { font-size:8px; }
.rail-title strong { margin-top:7px; font-size:15px; }
.rail-actions { gap:8px; }
.small-btn,.ghost-btn,.wallet-btn {
  --mag-x:0px;
  --mag-y:0px;
  transform:translate(var(--mag-x),var(--mag-y));
}
.small-btn { min-height:38px; padding:0 13px; border-radius:10px; font-size:8px; letter-spacing:.04em; }
.demo-btn { border-color:rgba(255,49,93,.34); background:rgba(255,49,93,.085); color:#ffdbe3; box-shadow:0 0 24px rgba(255,49,93,.05); }
.reel-stage { height:340px; background:linear-gradient(180deg,#090a0e,#101117 54%,#08090c); }
.reel-stage::before,.reel-stage::after { width:26%; }
.reel-track-lines { opacity:.58; background-size:70px 100%; }
.reel { gap:13px; }
.ticket { width:205px; height:142px; border-radius:4px; font-size:31px; box-shadow:0 20px 40px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.065); }
.ticket::before,.ticket::after { width:22px; height:44px; }
.ticket::before { left:-12px; }
.ticket::after { right:-12px; }
.pointer { width:2px; box-shadow:0 0 18px 2px rgba(255,72,108,.9),0 0 42px rgba(255,49,93,.5); }
.pointer::before,.pointer::after { width:16px; height:16px; border-radius:2px; box-shadow:0 0 20px rgba(255,49,93,.8); }
.pointer-halo { width:72px; opacity:.72; background:linear-gradient(to right,transparent,rgba(255,49,93,.08),transparent); }
.rail-bottom { min-height:156px; }
.history,.last-bets { padding:22px; }
.history-label,.last-bets strong { font-size:8px; letter-spacing:.11em; }
.history-items { gap:7px; margin-top:15px; }
.history-chip { padding:7px 10px; font-size:9px; border-radius:8px; }
.last-bets p { margin-top:14px; font-size:10px; line-height:1.65; }

.section { margin-top:68px; }
.section-head { margin-bottom:18px; }
.section-kicker { font-size:8px; letter-spacing:.18em; }
.section-title { margin-top:8px; font-size:27px; }
.section-side-note { font-size:8px; }
.empty-box { min-height:94px; padding:19px 21px; border-radius:15px; }
.empty-icon { width:42px; height:42px; border-radius:11px; font-size:14px; }
.empty-copy strong { font-size:13px; }
.empty-copy small { margin-top:8px; font-size:9px; }
.section-note { margin-top:12px; font-size:8px; }

.jackpot-card,.info-card,.data-card {
  --tilt-x:0deg;
  --tilt-y:0deg;
  --shine-x:50%;
  --shine-y:0%;
  transform:perspective(1200px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
  transform-style:preserve-3d;
  transition:transform .28s ease-out,border-color .25s ease,box-shadow .25s ease;
  will-change:transform;
}
.jackpot-card::before,.info-card::before,.data-card::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:0;
  background:radial-gradient(circle at var(--shine-x) var(--shine-y),rgba(255,255,255,.075),transparent 34%);
  transition:opacity .25s ease;
}
.jackpot-card.is-tilting::before,.info-card.is-tilting::before,.data-card.is-tilting::before { opacity:1; }
.jackpot-card.is-tilting,.info-card.is-tilting,.data-card.is-tilting { border-color:rgba(255,255,255,.15); box-shadow:0 28px 70px rgba(0,0,0,.32); }
.jackpot-card { padding:28px; border-radius:20px; }
.card-head h3 { font-size:17px; }
.card-head p { margin-top:8px; font-size:9px; }
.jackpot-grid { margin-top:27px; gap:24px; }
.big-number { position:relative; font-size:56px; }
.big-number small { font-size:11px; }
.big-number::after { content:attr(data-glow-copy); position:absolute; inset:0 auto auto 0; z-index:-1; opacity:.14; filter:blur(14px); }
.countdown-row { margin:20px 0 11px; font-size:9px; }
.progress { height:5px; }
.stats-grid { margin-top:19px; border-radius:13px; }
.stat { min-height:74px; padding:15px; }
.stat small,.winner-head { font-size:8px; }
.stat strong { margin-top:10px; font-size:13px; }
.winners { border-radius:13px; }
.winner-head { padding:15px; }
.winner-row { padding:18px 15px; font-size:10px; }
.live-badge { padding:8px 11px; font-size:8px; border-radius:9px; }

.hero { min-height:calc(100vh - 126px); gap:90px; }
.hero h1 { font-size:clamp(68px,6.4vw,112px); }
.hero p { font-size:18px; }
.hero-proof { font-size:9px; gap:20px; }
.hero-visual { min-height:620px; }
.logo-orbit { width:min(540px,88vw); }
.orbit-ticket { width:145px; height:94px; font-size:21px; }
.metrics { border-radius:19px; }
.metric { padding:28px 24px; }
.metric strong { font-size:31px; }
.metric span { font-size:8px; }
.info-grid { gap:16px; }
.info-card { min-height:250px; padding:28px; border-radius:19px; }
.info-card .num { font-size:9px; }
.info-card h3 { margin-top:48px; font-size:22px; }
.info-card p { font-size:14px; }

.page-head { padding:64px 0 32px; }
.page-head h1 { font-size:56px; }
.page-head p { font-size:16px; }
.data-grid { gap:16px; }
.data-card { position:relative; padding:27px; border-radius:18px; }
.data-card small { font-size:8px; }
.data-card strong { font-size:31px; }
.data-card p { font-size:13px; }
.reserve-row { padding:19px; font-size:11px; }
.reserve-row.head { font-size:8px; }
.docs-layout { grid-template-columns:250px 1fr; gap:40px; }
.docs-nav button { padding:13px; font-size:10px; }
.docs-content h2 { font-size:38px; }
.docs-content p,.docs-content li { font-size:15px; }
.code { padding:19px; font-size:12px; }
.footer { width:min(var(--content-home),calc(100% - 48px)); padding:32px 0 44px; font-size:8px; }
.toast { padding:15px 18px; font-size:10px; }

@media (min-width: 1700px) {
  :root { --content: 1520px; --content-home: 1380px; }
  .trade-grid { grid-template-columns:minmax(520px,.9fr) minmax(720px,1.1fr); }
  .announcement { font-size:10px; }
  .trade-shell .terminal-chrome { font-size:9px; }
}

@media (max-width: 1280px) {
  .trade-grid { grid-template-columns:minmax(420px,.88fr) minmax(560px,1.12fr); }
  .trade-panel { padding:24px; }
  .ticket { width:178px; height:124px; font-size:27px; }
  .reel-stage { height:306px; }
}

@media (max-width: 1040px) {
  .trade-shell { transform:none !important; }
  .trade-grid { grid-template-columns:1fr; }
  .trade-panel { padding:26px; }
  .rail-panel { min-height:580px; }
  .hero { gap:34px; }
}

@media (max-width: 900px) {
  .header { height:68px; }
  .header-inner { width:calc(100% - 24px); }
  .main,.trade-main { width:min(100% - 24px,760px); margin-top:24px; }
  .announcement { justify-content:flex-start; overflow:auto; scrollbar-width:none; }
  .announcement::-webkit-scrollbar { display:none; }
  .trade-shell .terminal-chrome { padding:0 15px; }
  .trade-shell .terminal-chrome span:last-child { display:none; }
}

@media (max-width: 620px) {
  .boot-mark { width:62px; height:62px; }
  .header { height:62px; }
  .brand-mark { width:37px; height:37px; }
  .brand-copy strong { font-size:12px; }
  .wallet-btn { max-width:150px; font-size:9px; }
  .announcement { min-height:42px; padding:0 13px; gap:18px; font-size:8px; }
  .trade-shell { border-radius:18px; }
  .trade-shell .terminal-chrome { height:34px; font-size:7px; }
  .trade-panel { padding:16px; }
  .asset-box { min-height:116px; padding:16px; }
  .asset-value input { font-size:31px; }
  .output-preview { font-size:25px; }
  .token-pill { height:38px; font-size:11px; }
  .trade-meta-item { min-height:58px; }
  .odds-chip { min-height:47px; }
  .primary-btn { min-height:51px; }
  .rail-head { min-height:122px; padding:18px; }
  .reel-stage { height:230px; }
  .ticket { width:165px; height:114px; font-size:25px; }
  .rail-bottom { min-height:0; }
  .history,.last-bets { padding:18px; }
  .jackpot-card { padding:18px; }
  .big-number { font-size:41px; }
  .hero h1 { font-size:58px; }
  .hero p { font-size:15px; }
  .hero-visual { min-height:420px; }
  .logo-orbit { width:340px; }
  .footer { width:calc(100% - 24px); }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
  .trade-shell,.jackpot-card,.info-card,.data-card,.primary-btn,.small-btn,.wallet-btn,.ghost-btn { transform:none !important; }
  .boot-screen { display:none; }
  .signal-canvas,.cursor-aura { display:none; }
}

/* Lenis compatibility styles are bundled locally so the page never blocks on a CDN. */
html.lenis,html.lenis body { height:auto; }
.lenis.lenis-smooth { scroll-behavior:auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior:contain; }
.lenis.lenis-stopped { overflow:hidden; }
.lenis.lenis-smooth iframe { pointer-events:none; }

.primary-btn { position:relative; overflow:hidden; }
.primary-btn:hover { transform:translate(var(--mag-x),calc(var(--mag-y) - 1px)); }
.wallet-btn:hover,.small-btn:hover,.ghost-btn:hover { transform:translate(var(--mag-x),calc(var(--mag-y) - 1px)); }
.ticket::before { width:auto; height:auto; left:8px; right:8px; }
.ticket::after { width:auto; height:auto; left:auto; right:auto; }


/* Navigation hardening — v3.1 */
.nav a { display:flex; align-items:center; justify-content:center; text-decoration:none; }
.mobile-nav { display:none; }
.primary-btn,.ghost-btn { text-decoration:none; align-items:center; justify-content:center; }

@media (max-width: 900px) {
  .header-inner { position:relative; }
  .mobile-nav {
    display:none;
    position:absolute;
    top:calc(100% + 10px);
    left:0;
    right:0;
    z-index:60;
    padding:8px;
    border:1px solid rgba(255,255,255,.11);
    border-radius:14px;
    background:rgba(12,13,18,.97);
    box-shadow:0 22px 70px rgba(0,0,0,.56);
    backdrop-filter:blur(24px) saturate(140%);
  }
  .mobile-nav.open { display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
  .mobile-nav a {
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:9px;
    color:#7d818c;
    font-family:var(--mono);
    font-size:9px;
    font-weight:800;
    text-decoration:none;
  }
  .mobile-nav a:hover,.mobile-nav a.active { color:#fff; background:rgba(255,255,255,.065); }
}

@media (max-width: 620px) {
  .mobile-nav.open { grid-template-columns:1fr 1fr; }
  .mobile-nav a:last-child { grid-column:1 / -1; }
}

/* SwapJack V4 — live protocol states and onchain ticket inbox */
.chain-dot.demo { background:#e1a85f; box-shadow:0 0 10px rgba(225,168,95,.58); }
.chain-dot.checking { background:#7d9df9; box-shadow:0 0 12px rgba(125,157,249,.62); animation:protocolPulse 1.25s ease-in-out infinite; }
.chain-dot.ready { background:var(--green); box-shadow:0 0 12px rgba(105,213,161,.68); }
.chain-dot.blocked { background:var(--red-hot); box-shadow:0 0 12px rgba(255,53,95,.68); }
@keyframes protocolPulse { 50% { opacity:.35; transform:scale(.72); } }

.protocol-alert {
  display:flex;
  align-items:flex-start;
  gap:14px;
  margin:0 0 16px;
  padding:13px 15px;
  border:1px solid rgba(125,157,249,.2);
  border-radius:12px;
  background:rgba(75,102,190,.075);
  color:#9daee4;
  font-family:var(--mono);
  font-size:9px;
  line-height:1.55;
}
.protocol-alert strong { flex:0 0 auto; color:#d9e0ff; font-size:8px; letter-spacing:.12em; }
.protocol-alert span { color:#8e94a2; }
.protocol-alert.error { border-color:rgba(255,53,95,.25); background:rgba(255,53,95,.075); }
.protocol-alert.error strong { color:#ff6b88; }
.protocol-alert.demo { border-color:rgba(225,168,95,.2); background:rgba(225,168,95,.065); }
.protocol-alert.demo strong { color:#e9bd7c; }

.primary-btn:disabled,.small-btn:disabled,.wallet-btn:disabled {
  cursor:not-allowed;
  opacity:.48;
  transform:none !important;
  filter:saturate(.55);
}

.ticket-inbox-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}
.ticket-card {
  position:relative;
  min-width:0;
  padding:17px;
  border:1px solid rgba(255,255,255,.085);
  border-radius:15px;
  background:linear-gradient(145deg,rgba(20,21,28,.92),rgba(9,10,14,.94));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 14px 42px rgba(0,0,0,.18);
  overflow:hidden;
}
.ticket-card::after {
  content:"";
  position:absolute;
  inset:auto -50px -90px auto;
  width:180px;
  height:180px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,49,93,.08),transparent 68%);
  pointer-events:none;
}
.ticket-card-head,.ticket-card-meta,.ticket-card-actions {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.ticket-card-head strong { color:#f4f2ef; font-family:var(--mono); font-size:10px; letter-spacing:.08em; }
.ticket-status {
  padding:5px 7px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:7px;
  color:#8b909c;
  background:rgba(255,255,255,.035);
  font-family:var(--mono);
  font-size:7px;
  letter-spacing:.08em;
}
.ticket-card-result { position:relative; z-index:1; margin:22px 0 17px; }
.ticket-card-result b { display:block; color:#fff; font-size:34px; line-height:.9; letter-spacing:-.055em; }
.ticket-card-result span { display:block; margin-top:9px; color:#6d727d; font-family:var(--mono); font-size:8px; }
.ticket-card-meta { align-items:flex-end; padding-top:13px; border-top:1px solid rgba(255,255,255,.06); }
.ticket-card-meta span { color:#666b76; font-family:var(--mono); font-size:7px; line-height:1.55; }
.ticket-card-meta b { display:block; color:#c5c8d0; font-size:9px; font-weight:700; }
.ticket-card-actions { justify-content:flex-start; margin-top:14px; }
.ticket-card-actions .small-btn { min-height:34px; }

@media (max-width: 760px) {
  .protocol-alert { flex-direction:column; gap:5px; }
  .ticket-inbox-grid { grid-template-columns:1fr; }
}
