@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
* { box-sizing: border-box; } html,body { margin:0; min-height:100%; } body { color:#f1f1fa; background:#05040d; font-family:Inter,Arial,sans-serif; font-size:12px; }
.app-shell { min-height:100vh; overflow:hidden; position:relative; }.space { position:fixed; z-index:0; inset:0; overflow:hidden; pointer-events:none; background:#05040d; }.space:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,3,13,.76) 0%,rgba(4,3,13,.33) 48%,rgba(4,3,13,.67) 100%); }.space-bg { height:100%; width:100%; object-fit:cover; object-position:center; opacity:.6; }.orbit { position:absolute; inset:0; margin:auto; opacity:.34; }.orbit-outer { width:min(95vw,1060px); animation:spin 60s linear infinite; }.orbit-inner { width:min(58vw,660px); animation:spin 30s linear infinite reverse; }
.nav-bar,.token-banner,main { position:relative; z-index:1; }.nav-bar { height:65px; padding:0 18px; border-bottom:1px solid rgba(255,255,255,.06); background:rgba(7,6,18,.83); display:flex; gap:25px; align-items:center; backdrop-filter:blur(16px); }.logo { color:#d7d7fa; text-decoration:none; font-size:42px; font-weight:800; letter-spacing:-4px; line-height:1; }.nav-bar nav { display:flex; align-items:center; gap:27px; }.nav-bar nav a { color:#767688; text-decoration:none; font-size:13px; }.nav-bar nav a.active { color:#fff; }.search { height:38px; max-width:576px; flex:1; margin:auto; padding:0 15px; border:1px solid #1b1b2c; border-radius:8px; background:#0c0b1b; display:flex; align-items:center; gap:10px; color:#9b9aad; }.search input { width:100%; border:0; outline:0; background:transparent; color:#fff; font-size:13px; }.search input::placeholder { color:#898899; }.wallet { min-width:58px; padding:7px 10px; border:1px solid #202033; border-radius:8px; background:#0d0c1c; text-align:center; }.wallet small,.market-stats small { color:#898899; font-size:9px; }.wallet strong { display:block; font-size:12px; }.profile { width:38px; height:38px; border:0; border-radius:10px; background:#d8ef61; color:#10101e; font-size:24px; font-weight:bold; }
.token-banner { min-height:82px; padding:12px 20px; border-bottom:1px solid rgba(255,255,255,.06); background:rgba(6,5,17,.74); display:flex; align-items:center; gap:12px; backdrop-filter:blur(12px); }.token-image { width:48px; height:48px; border-radius:50%; object-fit:cover; background:#191824; }.token-title { align-self:center; min-width:150px; }.token-title strong { display:block; font-size:19px; }.token-title div { display:flex; gap:7px; align-items:center; color:#88889a; font-size:11px; max-width:150px; white-space:nowrap; overflow:hidden; }.token-title span { overflow:hidden; text-overflow:ellipsis; }.token-title button { border:0; background:none; color:#818196; cursor:pointer; font-size:16px; }.market-stats { margin-left:auto; display:flex; align-items:center; gap:34px; }.market-stats div { display:flex; flex-direction:column; gap:5px; white-space:nowrap; }.market-stats b { font-size:13px; }.positive { color:#11bd83; }.negative { color:#df3560; }
main { width:min(100% - 32px, 538px); margin:25px auto 40px; }.panel { border:1px solid #252438; border-radius:17px; background:rgba(12,10,29,.9); box-shadow:0 16px 50px rgba(0,0,0,.18); backdrop-filter:blur(12px); }.vote-card { padding:21px 20px 20px; text-align:center; }.eyebrow { margin:0 0 10px; color:#8d8c9e; font-size:10px; }.vote-image { width:60px; height:60px; border-radius:50%; object-fit:cover; background:#1b1a29; }.vote-card h1 { margin:12px 0 7px; font-size:23px; line-height:1.1; letter-spacing:-1px; }.vote-card h1 span { color:#15bc83; }.intro { margin:0; color:#9594a6; font-size:13px; }.vote-labels { display:flex; justify-content:space-between; margin-top:23px; color:#10b985; font-size:11px; }.vote-labels span:last-child { color:#e33861; }.vote-bar { height:10px; margin-top:7px; border-radius:100px; overflow:hidden; background:#e33861; }.vote-bar i { display:block; width:80%; height:100%; border-radius:100px 0 0 100px; background:#10b685; transition:width .25s ease; }.total { margin:12px 0 20px; color:#868596; font-size:11px; }.total i { display:inline-block; width:6px; height:6px; border-radius:50%; margin:0 5px 1px 0; background:#10b685; }.vote-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }.vote-actions button { height:49px; border:0; border-radius:28px; color:#fff; font-weight:800; font-size:15px; cursor:pointer; transition:filter .15s, transform .15s; }.vote-actions button:hover { filter:brightness(1.15); }.vote-actions button:active { transform:scale(.98); }.yes { background:#10b685; }.no { background:#e23760; }
.app-footer { position:relative; z-index:1; display:flex; align-items:center; justify-content:center; gap:16px; padding:0 20px 28px; color:#9594a6; font-size:12px; }.store-links { display:flex; gap:8px; }.store-links a { display:block; overflow:hidden; border-radius:6px; background:#000; box-shadow:inset 0 0 0 1px rgba(255,255,255,.18); transition:opacity .15s ease, box-shadow .15s ease; }.store-links a:hover { opacity:.9; box-shadow:0 0 0 1px rgba(255,255,255,.4); backdrop-filter:blur(8px); }.store-links svg { display:block; }
.activity { margin-top:15px; overflow:hidden; }.activity h2 { margin:0; padding:11px 16px; border-bottom:1px solid #26243a; font-size:13px; }.activity-head,.activity-row { display:grid; grid-template-columns:1fr 42px 45px 42px; padding:0 16px; column-gap:5px; }.activity-head { padding-top:12px; color:#838293; font-size:11px; }.activity-row { min-height:24px; align-items:center; font-size:11px; }.activity-row .voter { color:#edecf6; font-weight:600; }.activity-row .yes-vote { color:#11b984; }.activity-row .no-vote { color:#e33b62; }.activity-row .when { color:#858495; }
@keyframes spin { to { transform:rotate(360deg); } } @media(max-width:900px) { .market-stats { gap:16px; }.market-stats div:nth-child(4),.market-stats div:nth-child(5),.market-stats div:nth-child(6) { display:none; } } @media(max-width:650px) { .nav-bar { gap:15px; }.nav-bar nav,.wallet,.search { display:none; }.profile { margin-left:auto; }.token-banner { padding:10px 14px; }.market-stats { gap:14px; }.market-stats div:nth-child(2),.market-stats div:nth-child(3) { display:none; }.token-title { min-width:110px; }.token-title strong { font-size:17px; } main { margin-top:20px; }.orbit-outer { width:135vw; }.orbit-inner { width:90vw; } } @media(max-width:380px) { main { width:calc(100% - 20px); }.token-banner { gap:8px; }.token-image { width:42px; height:42px; }.market-stats { gap:8px; } }
.search svg { width:16px; height:16px; fill:none; stroke:#a19fb3; stroke-width:2; }.profile { padding:0; overflow:hidden; cursor:pointer; }.profile img { display:block; width:100%; height:100%; object-fit:cover; }.token-title button { width:16px; height:16px; padding:0; }.token-title button svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.7; }

.slot-modal[hidden] { display:none !important; }.slot-modal { position:fixed; z-index:20; inset:0; display:grid; place-items:center; padding:20px; background:rgba(3,2,12,.78); opacity:0; pointer-events:none; transition:opacity .2s ease; backdrop-filter:blur(8px); }.slot-modal.is-open { opacity:1; pointer-events:auto; }.slot-machine { position:relative; width:min(100%,420px); overflow:hidden; padding:29px 24px 25px; border:1px solid rgba(153,69,255,.72); border-radius:24px; background:radial-gradient(circle at 50% 0,#332064 0,#130d2b 47%,#090616 100%); box-shadow:0 0 0 6px rgba(20,13,44,.88),0 24px 90px rgba(0,0,0,.6),0 0 45px rgba(20,241,149,.22); text-align:center; transform:translateY(12px) scale(.97); transition:transform .2s ease; }.slot-modal.is-open .slot-machine { transform:translateY(0) scale(1); }.slot-close { position:absolute; top:10px; right:13px; border:0; background:none; color:#b7b1d0; font-size:28px; line-height:1; cursor:pointer; }.slot-kicker { margin:0 0 8px; color:#14f195; font-size:11px; font-weight:800; letter-spacing:.16em; }.slot-machine h2 { margin:0 20px 20px; font-size:22px; line-height:1.15; letter-spacing:-.7px; }.slot-window { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:7px; height:112px; padding:7px; overflow:hidden; border:2px solid #6c45d5; border-radius:13px; background:#080512; box-shadow:inset 0 0 20px #000; }.slot-window:after { content:""; position:absolute; top:50%; right:0; left:0; height:37px; transform:translateY(-50%); border-top:1px solid rgba(20,241,149,.65); border-bottom:1px solid rgba(20,241,149,.65); background:rgba(20,241,149,.08); pointer-events:none; }.slot-reel { display:flex; flex-direction:column; align-items:center; gap:12px; color:#14f195; font-size:30px; line-height:35px; text-shadow:0 0 12px currentColor; will-change:transform; }.slot-reel span:nth-child(2n) { color:#b86cff; }.slot-status { min-height:18px; margin:17px 0 0; color:#c5bddf; font-size:13px; }.slot-win { padding-top:16px; animation:win-pop .35s ease-out; }.slot-win span { display:block; color:#14f195; font-size:11px; font-weight:800; letter-spacing:.15em; }.slot-win strong { display:block; margin:5px 0 16px; color:#fff; font-size:40px; line-height:1; letter-spacing:-2px; text-shadow:0 0 20px rgba(20,241,149,.7); }.slot-win em { color:#14f195; font-size:18px; font-style:normal; letter-spacing:0; }.slot-win button { width:100%; height:48px; border:0; border-radius:24px; background:linear-gradient(90deg,#14f195,#00c2ff); color:#06120f; font-size:15px; font-weight:900; cursor:pointer; }.slot-win button:hover { filter:brightness(1.1); }.slot-modal.has-won .slot-machine { box-shadow:0 0 0 6px rgba(20,13,44,.88),0 24px 90px rgba(0,0,0,.6),0 0 55px rgba(20,241,149,.45); } @keyframes slot-spin { to { transform:translateY(-141px); } } @keyframes win-pop { from { opacity:0; transform:scale(.9); } to { opacity:1; transform:scale(1); } }

/* Solana jackpot cabinet enhancements. */
.slot-machine { width:min(100%,450px); padding:17px 26px 26px; border:2px solid #8b5cf6; background:linear-gradient(145deg,#3d1978 0,#160c35 38%,#080513 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.26),0 0 0 6px #120827,0 26px 100px rgba(0,0,0,.72),0 0 70px rgba(20,241,149,.2); }.slot-marquee { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:33px; margin:-5px 20px 11px; padding:0 12px; border:1px solid rgba(255,212,82,.75); border-radius:7px; background:linear-gradient(90deg,#4d168d,#191043,#4d168d); box-shadow:inset 0 0 12px rgba(0,0,0,.6),0 0 16px rgba(184,108,255,.35); color:#ffe48a; font-size:11px; letter-spacing:.18em; }.slot-marquee i { width:6px; height:6px; border-radius:50%; background:#ffe48a; box-shadow:-17px 0 #ffe48a,17px 0 #ffe48a,0 0 9px 3px rgba(255,228,138,.78); animation:bulbs 1s steps(2,end) infinite; }.slot-kicker { margin-bottom:7px; font-size:9px; color:#a99aff; }.slot-machine h2 { margin-bottom:16px; font-size:23px; }.slot-cabinet { position:relative; margin-right:22px; padding:8px; border:2px solid #6d42ce; border-radius:16px; background:linear-gradient(135deg,#5b2ba3,#1a0d40 48%,#391778); box-shadow:inset 0 0 0 2px rgba(255,255,255,.13),0 10px 24px rgba(0,0,0,.46); }.slot-window { height:126px; border-color:#f1c957; border-radius:10px; background:linear-gradient(180deg,#04030a,#130b25 50%,#04030a); box-shadow:inset 0 0 22px #000,0 0 12px rgba(255,211,82,.35); }.slot-window:before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(0,0,0,.72),transparent 26%,transparent 74%,rgba(0,0,0,.72)); pointer-events:none; }.slot-window:after { z-index:2; height:39px; border-color:#ffd75c; background:linear-gradient(90deg,rgba(20,241,149,.08),rgba(255,215,92,.23),rgba(20,241,149,.08)); box-shadow:0 0 15px rgba(255,215,92,.35); }.slot-reel { position:relative; z-index:0; gap:13px; font-size:33px; line-height:37px; }.slot-lever { position:absolute; top:12px; right:-31px; width:27px; height:103px; border-radius:0 14px 14px 0; background:linear-gradient(90deg,#4b278e,#b66cff); box-shadow:inset 2px 0 rgba(255,255,255,.3),4px 5px 10px rgba(0,0,0,.45); }.slot-lever:before { content:""; position:absolute; top:8px; left:11px; width:5px; height:66px; border-radius:6px; background:#b9a5ec; box-shadow:1px 0 2px #000; transform:rotate(-18deg); transform-origin:bottom; }.slot-lever i { position:absolute; top:0; left:3px; width:20px; height:20px; border:2px solid #ffcc4b; border-radius:50%; background:radial-gradient(circle at 35% 30%,#fff4b6,#ff594a 55%,#9a133b); box-shadow:0 0 12px #ffbe46; }.slot-payline { position:absolute; top:50%; left:5px; right:5px; z-index:3; height:2px; background:#fff1a2; box-shadow:0 0 9px 2px #ffcb48; }.slot-status { margin-top:15px; color:#d2c9f2; }.slot-win { position:relative; z-index:3; padding-top:14px; }.slot-win small { display:block; margin:-10px 0 16px; color:#bfb7d9; font-size:11px; }.slot-win strong { margin-bottom:14px; color:#fff5bd; text-shadow:0 0 8px #ffcb48,0 0 25px rgba(20,241,149,.64); }.slot-win button { box-shadow:0 5px 0 #087c5d,0 0 24px rgba(20,241,149,.45); }.slot-sparkles { position:absolute; inset:45px 22px 78px; pointer-events:none; }.slot-sparkles i { position:absolute; width:5px; height:5px; border-radius:50%; background:#ffe679; box-shadow:0 0 9px #ffe679; opacity:0; }.slot-sparkles i:nth-child(1) { left:5%; top:22%; }.slot-sparkles i:nth-child(2) { left:19%; top:70%; }.slot-sparkles i:nth-child(3) { left:77%; top:16%; }.slot-sparkles i:nth-child(4) { left:93%; top:54%; }.slot-sparkles i:nth-child(5) { left:58%; top:78%; }.slot-sparkles i:nth-child(6) { left:38%; top:9%; }.slot-modal.has-won .slot-sparkles i { animation:sparkle 1.3s ease-in-out infinite; }.slot-modal.has-won .slot-sparkles i:nth-child(2n) { animation-delay:.35s; }.slot-modal.has-won .slot-lever:before { animation:lever-pop .35s ease-out; } @keyframes bulbs { 50% { opacity:.35; filter:brightness(.6); } } @keyframes sparkle { 50% { opacity:1; transform:scale(2.2); } } @keyframes lever-pop { 50% { transform:rotate(13deg); } }
.slot-reel > span { display:grid; place-items:center; width:48px; height:37px; }.slot-reel .solana-mark { width:42px; height:34px; filter:drop-shadow(0 0 7px rgba(20,241,149,.7)); }.slot-token-logo { width:33px; height:33px; border:2px solid rgba(255,255,255,.75); border-radius:50%; background:#111; box-shadow:0 0 9px rgba(153,69,255,.8); object-fit:cover; }
.slot-coin { position:absolute; z-index:8; top:53%; left:50%; width:19px; height:19px; border:2px solid #fff0a6; border-radius:50%; background:radial-gradient(circle at 32% 27%,#fffbd5 0 9%,#ffdf62 10% 40%,#d78c0c 42% 67%,#ffdd55 69%); box-shadow:0 0 10px rgba(255,211,68,.9); transform:translate(-50%,-50%); pointer-events:none; animation:coin-burst 1.45s cubic-bezier(.13,.72,.31,1) var(--coin-delay) forwards; }.slot-coin:after { content:"$"; position:absolute; inset:0; color:#8a5200; font:800 11px/15px Inter,Arial,sans-serif; text-align:center; text-shadow:0 1px rgba(255,255,255,.45); } @keyframes coin-burst { 0% { opacity:0; transform:translate(-50%,-50%) scale(.25) rotate(0); } 12% { opacity:1; } 72% { opacity:1; } 100% { opacity:0; transform:translate(calc(-50% + var(--coin-x)),calc(-50% + var(--coin-y))) scale(.75) rotate(var(--coin-turn)); } }
.slot-window { height:174px; }.slot-reel { gap:14px; line-height:54px; }.slot-reel > span { width:64px; height:54px; }.slot-reel .solana-mark { width:56px; height:44px; }.slot-token-logo { width:44px; height:44px; }.slot-lever { height:150px; }.slot-lever:before { height:103px; }.slot-cabinet { margin-right:28px; }.slot-payline { left:7px; right:7px; }.slot-modal.has-won .slot-window { box-shadow:inset 0 0 22px #000,0 0 18px rgba(255,211,82,.75); } @keyframes slot-spin { to { transform:translateY(-153px); } }
.slot-machine { border-color:#10b685; background:linear-gradient(145deg,#123d35 0,#0c0b1b 42%,#05040d 100%); box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 0 6px #090817,0 26px 100px rgba(0,0,0,.72),0 0 70px rgba(16,182,133,.22); }.slot-marquee { border-color:#10b685; background:linear-gradient(90deg,#0d463a,#0c0b1b,#0d463a); box-shadow:inset 0 0 12px rgba(0,0,0,.6),0 0 16px rgba(16,182,133,.35); color:#d8ef61; }.slot-marquee i { background:#d8ef61; box-shadow:-17px 0 #d8ef61,17px 0 #d8ef61,0 0 9px 3px rgba(216,239,97,.65); }.slot-fomo-logo { color:#f0effb; font-size:21px; letter-spacing:-2px; line-height:1; }.slot-marquee span { color:#9b9aad; font-size:9px; letter-spacing:.11em; }.slot-kicker { color:#10b685; }.slot-cabinet { border-color:#168c6b; background:linear-gradient(135deg,#126f58,#101c29 48%,#0b443a); }.slot-window { border-color:#10b685; background:linear-gradient(180deg,#05040d,#102720 50%,#05040d); box-shadow:inset 0 0 22px #000,0 0 12px rgba(16,182,133,.35); }.slot-window:after { border-color:#d8ef61; background:linear-gradient(90deg,rgba(16,182,133,.08),rgba(216,239,97,.2),rgba(16,182,133,.08)); box-shadow:0 0 15px rgba(16,182,133,.38); }.slot-payline { background:#d8ef61; box-shadow:0 0 9px 2px #10b685; }.slot-lever { border:0; padding:0; cursor:pointer; background:linear-gradient(90deg,#0e7259,#10b685); box-shadow:inset 2px 0 rgba(255,255,255,.25),4px 5px 10px rgba(0,0,0,.45); }.slot-lever:hover { filter:brightness(1.15); }.slot-lever:disabled { cursor:wait; filter:saturate(.55); }.slot-lever i { border-color:#d8ef61; background:radial-gradient(circle at 35% 30%,#f2ffb3,#10b685 55%,#075c48); box-shadow:0 0 12px #10b685; }.slot-win strong { color:#e8ffd0; text-shadow:0 0 8px #d8ef61,0 0 25px rgba(16,182,133,.64); }.slot-modal.has-won .slot-window { box-shadow:inset 0 0 22px #000,0 0 18px rgba(16,182,133,.75); }
.slot-window { height:242px; }.slot-lever { height:218px; }.slot-lever:before { height:169px; transform-origin:bottom; }.slot-lever i { transform-origin:10px 177px; }.slot-lever.is-pulled:before { animation:lever-shaft-pull .72s cubic-bezier(.22,.8,.28,1); }.slot-lever.is-pulled i { animation:lever-knob-pull .72s cubic-bezier(.22,.8,.28,1); } @keyframes slot-spin { to { transform:translateY(-119px); } } @keyframes lever-shaft-pull { 0%,100% { transform:rotate(-18deg); } 44% { transform:rotate(18deg); } } @keyframes lever-knob-pull { 0%,100% { transform:rotate(0); } 44% { transform:rotate(36deg); } }
.slot-lever:before { top:auto; bottom:12px; left:11px; height:169px; transform:rotate(-18deg); transform-origin:bottom center; }.slot-lever i { top:26px; left:2px; width:22px; height:22px; transform:rotate(-18deg); transform-origin:11px 180px; }.slot-lever.is-pulled:before { animation:lever-shaft-pull .78s cubic-bezier(.18,.82,.25,1); }.slot-lever.is-pulled i { animation:lever-knob-pull .78s cubic-bezier(.18,.82,.25,1); } @keyframes lever-shaft-pull { 0%,100% { transform:rotate(-18deg); } 50% { transform:rotate(58deg); } } @keyframes lever-knob-pull { 0%,100% { transform:rotate(-18deg); } 50% { transform:rotate(58deg); } }
.slot-window { grid-template-columns:repeat(4,1fr); gap:5px; }
.slot-wild { display:inline-grid; place-items:center; min-width:49px; height:31px; padding:0 6px; border:1px solid #d8ef61; border-radius:6px; background:linear-gradient(135deg,#d8ef61,#10b685); box-shadow:0 0 12px rgba(216,239,97,.7); color:#0b1720; font-size:18px; font-weight:900; letter-spacing:-2px; line-height:1; text-shadow:0 1px rgba(255,255,255,.35); transform:skewX(-7deg); }
@keyframes slot-spin { to { transform:translateY(-1343px); } }
.slot-info { position:absolute; top:12px; right:49px; z-index:5; display:grid; place-items:center; width:22px; height:22px; border:1px solid #10b685; border-radius:50%; background:#0d2d26; color:#d8ef61; font:800 13px/1 Inter,Arial,sans-serif; cursor:pointer; }.slot-info:hover { background:#10b685; color:#071510; }.slot-info-panel { position:absolute; z-index:6; top:44px; right:22px; width:254px; padding:13px; border:1px solid #10b685; border-radius:10px; background:rgba(7,17,22,.97); box-shadow:0 10px 30px rgba(0,0,0,.55); color:#cbc8da; text-align:left; }.slot-info-panel b { display:block; margin-bottom:9px; color:#f0effb; font-size:12px; }.slot-info-panel span { display:flex; align-items:center; gap:7px; margin-top:6px; font-size:10px; line-height:1.3; }.slot-info-panel i { display:inline-grid; flex:0 0 auto; place-items:center; width:19px; height:14px; border-radius:3px; font-style:normal; }.info-sol { background:linear-gradient(135deg,#14f195,#9945ff); }.info-token { border-radius:50% !important; background:radial-gradient(circle,#d8ef61 0 25%,#10b685 27% 58%,#0c0b1b 60%); }.slot-info-panel .info-wild { width:29px; background:#d8ef61; color:#082018; font-size:9px; font-weight:900; letter-spacing:-1px; }

/* Mobile resilience: keep every component legible and inside the viewport. */
body { overflow-x:hidden; }
.token-title, .market-stats, .market-stats div, .content, .vote-card, .activity { min-width:0; }
.intro { overflow-wrap:anywhere; }
@media (max-width: 650px) {
  .app-shell { min-height:100svh; }
  .nav-bar { height:60px; padding:calc(10px + env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) 10px max(14px, env(safe-area-inset-left)); }
  .logo { font-size:36px; }
  .token-banner { align-items:center; min-height:70px; padding-inline:max(14px, env(safe-area-inset-left)); }
  .token-title { flex:1; max-width:calc(100vw - 130px); }
  .token-title div { max-width:100%; }
  .market-stats { margin-left:0; }
  .market-stats div { max-width:78px; overflow:hidden; }
  .market-stats b { overflow:hidden; text-overflow:ellipsis; }
  main { width:calc(100% - 24px); margin:16px auto 28px; }
  .vote-card { padding:18px 14px; border-radius:15px; }
  .vote-card h1 { font-size:clamp(20px, 6vw, 23px); }
  .intro { font-size:12px; line-height:1.45; }
  .vote-labels { margin-top:18px; }
  .vote-actions button { height:48px; font-size:14px; }
  .activity-head, .activity-row { grid-template-columns:minmax(0, 1fr) 38px 36px 42px; padding-inline:13px; }
  .app-footer { flex-direction:column; gap:10px; padding:0 max(14px, env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)); text-align:center; }
}
@media (max-width: 360px) {
  .token-banner { gap:7px; }
  .token-image { width:38px; height:38px; }
  .market-stats { gap:8px; }
  .vote-actions { gap:8px; }
  .store-links { width:100%; justify-content:center; gap:5px; }
  .store-links a { transform:scale(.92); transform-origin:center; }
}

/* --- Vote confirmation modal (fomo style) --- */
.fvm { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:16px; }
.fvm[hidden] { display:none; }
.fvm-backdrop { position:absolute; inset:0; background:rgba(4,3,11,.72); backdrop-filter:blur(6px); animation:fvm-fade .18s ease; }
.fvm-card { position:relative; width:min(452px,100%); max-height:calc(100vh - 32px); overflow:auto; padding:20px; border:1px solid #26243a; border-radius:20px; background:#14121f; box-shadow:0 30px 80px rgba(0,0,0,.6); animation:fvm-pop .2s cubic-bezier(.2,.8,.2,1); }
.fvm-head { display:flex; align-items:center; justify-content:space-between; }
.fvm-brand { display:flex; align-items:center; gap:9px; }
.fvm-brand b { font-size:19px; font-weight:800; letter-spacing:-1px; color:#f1f1fa; }
.fvm-brand span { color:#8a89a0; font-size:12px; }
.fvm-x { width:30px; height:30px; display:flex; align-items:center; justify-content:center; border:0; border-radius:9px; background:rgba(255,255,255,.06); color:#c9c8d6; font-size:20px; line-height:1; cursor:pointer; transition:background .15s; }
.fvm-x:hover { background:rgba(255,255,255,.12); }
.fvm-token { display:flex; align-items:center; gap:12px; margin-top:16px; }
.fvm-avatar { width:46px; height:46px; border-radius:50%; object-fit:cover; background:#000; flex:none; }
.fvm-token-meta { display:flex; flex-direction:column; gap:2px; min-width:0; }
.fvm-voting-for { color:#8f8ea3; font-size:12px; }
.fvm-token-meta b { font-size:15px; color:#f4f4fb; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fvm-ca { color:#77768b; font-size:12px; font-family:ui-monospace,Menlo,Consolas,monospace; }
.fvm-title { margin:16px 0 14px; font-size:26px; font-weight:800; letter-spacing:-.5px; line-height:1.1; }
.fvm-title .yesword { color:#10b685; }
.fvm-title .noword { color:#e23760; }
.fvm-xp { padding:14px; border:1px solid #2b2942; border-radius:13px; background:rgba(255,255,255,.025); }
.fvm-xp-head { display:flex; align-items:center; gap:9px; }
.fvm-xp-icon { font-size:16px; }
.fvm-xp-head b { font-size:14px; color:#f1f1fa; }
.fvm-xp-amount { color:#f6a723; }
.fvm-xp p { margin:8px 0 0; color:#9695a9; font-size:12.5px; line-height:1.5; }
.fvm-body { margin:16px 0; color:#a3a2b5; font-size:13px; line-height:1.55; }
.fvm-body b { color:#cfcede; }
.fvm-actions { display:flex; flex-direction:column; gap:10px; }
.fvm-confirm { height:52px; border:0; border-radius:14px; color:#fff; font-weight:800; font-size:15px; cursor:pointer; transition:filter .15s, transform .1s; }
.fvm-confirm:hover { filter:brightness(1.1); }
.fvm-confirm:active { transform:scale(.99); }
.fvm-confirm.yes { background:#10b685; }
.fvm-confirm.no { background:linear-gradient(90deg,#b04bd6 0%,#e23760 100%); }
.fvm-cancel { height:48px; border:1px solid #2a2940; border-radius:14px; background:rgba(255,255,255,.04); color:#cfced9; font-weight:700; font-size:14px; cursor:pointer; transition:background .15s; }
.fvm-cancel:hover { background:rgba(255,255,255,.08); }
@keyframes fvm-fade { from { opacity:0; } to { opacity:1; } }
@keyframes fvm-pop { from { opacity:0; transform:translateY(12px) scale(.97); } to { opacity:1; transform:none; } }
