        * { box-sizing: border-box; }
        html { background: linear-gradient(135deg, #0a0a0a 0%, #1a1a2e 100%); background-attachment: fixed; }
        body { margin: 0; padding: 0; overflow-x: hidden; background: transparent; color: #e0e0e0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; min-height: 100vh; }
        
        /* GIPHY STYLE TOP BAR */
        .top-giphy-nav {
            position: sticky;
            top: 0;
            z-index: 2500;
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 8px 0 0 0;
            /* Opaque gradient, background-attachment: fixed — paints on viewport,
               same as html's gradient. Visually identical (seamless blend) but
               still opaque so content doesn't bleed through while scrolling. */
            background: linear-gradient(135deg, #0a0a0a 0%, #1a1a2e 100%);
            background-attachment: fixed;
            transition: padding 0.4s ease;
        }
        /* Site header fades smoothly via --t during the last half of scroll
           progress (t 0.5 → 1), then the class toggle removes it from layout. */
        #site-header {
            opacity: calc(1 - clamp(0, (var(--t, 0) - 0.5) * 2, 1));
        }
        /* Game bar + icon bar fade IN as the site-header fades out (t 0.5 → 1).
           Invisible at page load, fully visible at scroll rest. Layout space
           is still reserved (chrome built from page load), only opacity changes.
           Target #nav-idle-content (the visible game bar) since #main-nav has
           display:contents and opacity doesn't apply to display:contents elements. */
        #nav-idle-content,
        #mode-rail {
            opacity: clamp(0, (var(--t, 0) - 0.5) * 2, 1);
        }
        body.layout-fullbleed #site-header {
            /* Opacity already fades to 0 via --t. Don't display:none — that
               removes 58px from body height, breaks scroll math, causes bounce.
               pointer-events:none keeps the invisible header from trapping clicks. */
            pointer-events: none;
        }
        /* Hide default browser scrollbar (no replacement indicator for now). */
        html { scrollbar-width: none; }
        html::-webkit-scrollbar { display: none; }
        /* Header marketplace transformation */
        .nav-morph-container {
            position: relative;
            height: 50px;
            width: 100%;
            max-width: 1400px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0 60px;
            box-sizing: border-box;
            gap: 60px;
            transition: gap 0.5s ease;
        }
        /* Logo collapse animation */
        .logo-char { display: inline; }
        .logo-collapse {
            display: inline-block;
            max-width: 200px;
            overflow: hidden;
            transition: max-width 0.5s ease, opacity 0.3s ease;
            vertical-align: bottom;
            opacity: 1;
        }
        /* Menu overlay area */
        .nav-menu-area {
            position: relative;
            height: 50px;
            display: flex;
            align-items: center;
        }
        .nav-default-icons {
            width: 100%;
            display: flex;
            align-items: center;
        }
        .nav-default-icons .top-menu {
            opacity: 1;
            transition: opacity 0.4s ease;
            pointer-events: auto;
        }
        /* .nav-mp-row (dead — deleted in nav split).
           Related morph rules on mp-stuck (logo-collapse, nav-morph-container,
           nav-menu-area, nav-default-icons .top-menu, nav-mp-row) all removed
           since the header now lives in #site-header (no morphing), and the
           game bar is a separate element that doesn't transform. */
        .nav-mp-row2 {
            display: none;
            max-height: 0;
            opacity: 0;
            overflow: hidden;
            transition: max-height 0.4s ease, opacity 0.3s ease 0.1s, padding 0.4s ease;
            align-items: center;
            gap: 10px;
            width: 100%;
            max-width: 1400px;
            margin: 0 auto;
            padding: 0 60px;
            box-sizing: border-box;
        }
        .top-giphy-nav.mp-stuck .nav-mp-row2 {
            display: flex;
            max-height: 80px;
            opacity: 1;
            padding: 0 60px 8px;
        }
        
        /* IDLE MODE - replaces toolbar with tweet + stats */
        .nav-idle-content {
            display: flex;
            align-items: stretch;
            gap: 12px;
            width: 100%;
            max-width: none;
            padding: 0;
            box-sizing: border-box;
        }
        /* Design-spec mint-mode stats (hidden by default, shown via body.layout-fullbleed) */
        /* Mint is the default mode — mint-stats visible by default. Rave mode
           opts out via body.rave-mode (not yet implemented). */
        .mint-stats {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 10px;
            flex: 1 1 auto;
            min-width: 0;
        }
        .mint-stat {
            border: 1px solid rgba(255,255,255,0.14);
            border-radius: 10px;
            padding: 8px 14px;
            background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.03) 100%);
            box-shadow: 0 4px 16px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.08);
            display: flex;
            flex-direction: column;
            justify-content: center;
            gap: 2px;
            min-width: 0;
            height: 100%;  /* fill bar height */
        }
        .mint-stat .k {
            font-family: inherit;
            font-size: 10px;
            text-transform: uppercase;
            color: #9a95b5;
            letter-spacing: 0.8px;
            font-weight: 500;
        }
        .mint-stat .v {
            font-family: inherit;
            font-size: 28px;
            font-weight: 900;
            line-height: 1;
            background: linear-gradient(90deg, #ff4444, #ffcc00);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            color: transparent;
        }
        .mint-stat .v.red {
            background: none;
            -webkit-text-fill-color: #d4352a;
            color: #d4352a;
        }
        .mint-stat .v.purple {
            background: none;
            -webkit-text-fill-color: #3b2e80;
            color: #3b2e80;
        }
        .mint-stat .sub {
            font-family: inherit;
            font-size: 9px;
            text-transform: uppercase;
            color: #9a95b5;
            letter-spacing: 0.6px;
            opacity: 0.8;
        }
        /* Mint-mode game-bar overrides */
        body.layout-fullbleed .nav-idle-content {
            max-width: none;
            /* No padding at all; app-shell gap + padding handles outer spacing.
               Bottom padding was adding to the 14px row-gap, making nav→grid gap 22. */
            padding: 0;
            display: flex !important;
        }
        /* Hide the marketplace/rave content when layout-fullbleed is on — no intermediate swap */
        /* .nav-morph-container display:none REMOVED — was collapsing site-header
           from 58px to 8px on fullbleed, shrinking body height + causing scroll
           bounce. Parent #site-header opacity fade already hides the menu links
           visually. .nav-mp-row2 is dead code (display:none everywhere). */
        body.mint-active .idle-stats { display: none !important; }
        body.mint-active .idle-gifs { display: none !important; }
        body.layout-fullbleed .idle-tweet {
            flex: 0 0 auto;
            max-width: 380px;
            background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.03) 100%) !important;
            border: 1px solid rgba(255,255,255,0.14) !important;
            box-shadow: 0 4px 16px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.08) !important;
        }
        /* Mint panel height: let the grid control it (the JS-computed inline height is stale) */
        body.mint-active #mint2-panel { height: 100% !important; }
        body.mint-active .mint-stats {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 10px;
            flex: 1 1 auto;
            min-width: 0;
        }
        .top-giphy-nav.idle-mode .nav-morph-container { display: none !important; }
        .top-giphy-nav.idle-mode .nav-mp-row2 { display: none !important; }
        .top-giphy-nav.idle-mode .nav-idle-content { display: flex !important; }
        .top-giphy-nav.idle-mode { overflow: hidden; }
        
        /* Side nav toggle tab */
        /* Side nav tabs - left edge */
        .side-tabs {
            display: none; /* hidden for now — use E key to edit */
            position: fixed;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            z-index: 3000;
            display: none;
            flex-direction: column;
            gap: 2px;
        }
        .side-tab {
            writing-mode: vertical-lr;
            text-orientation: mixed;
            background: rgba(15, 15, 25, 0.9);
            border: 1px solid rgba(255,255,255,0.1);
            border-left: none;
            border-radius: 0 8px 8px 0;
            padding: 16px 10px;
            color: #71767b;
            font-size: 11px;
            font-weight: 800;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            cursor: pointer;
            transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
            backdrop-filter: blur(10px);
        }
        .side-tab:hover {
            background: rgba(25, 25, 40, 0.95);
            color: #fff;
            border-color: rgba(255,255,255,0.2);
        }
        .side-tab.active {
            color: #1da1f2;
            border-color: rgba(29,161,242,0.3);
            background: rgba(29,161,242,0.08);
        }
        /* DJ Controls - left side of arena */
        .dj-controls {
            position: fixed;
            left: 12px;
            top: 50%;
            transform: translateY(-50%);
            z-index: 3000;
            display: none;
            flex-direction: column;
            gap: 8px;
            align-items: center;
        }
        .dj-controls.visible {
            display: flex;
        }
        /* NEW 6-item mode rail — replaces the old dj-controls visually.
           The old #dj-controls stays in the DOM (with all its IDs) so JS
           bindings keep working; we just hide it and render this instead. */
        body #dj-controls { display: none !important; }
        /* Rail is always in DOM + grid col 1 (reserves space even on landing).
           Opacity controls visibility — invisible on landing, visible in
           fullbleed. No layout shift when rail becomes visible. */
        .mode-rail {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: stretch;
            gap: 8px;
            width: 100%;
            height: 100%;
            padding: 10px 6px;
            box-sizing: border-box;
            background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.03) 100%);
            border: 1px solid rgba(255,255,255,0.14);
            border-radius: 16px;
            box-shadow: 0 4px 16px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.08);
            opacity: 1;
            pointer-events: auto;
            transition: opacity 0.3s ease;
        }
        @keyframes rail-enter {
            from { opacity: 0; transform: translateX(-20px); }
            to   { opacity: 1; transform: translateX(0); }
        }
        .mode-item {
            flex: 1 1 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: clamp(4px, 0.6vh, 8px);
            padding: clamp(6px, 0.8vh, 10px) 4px;
            border-radius: 10px;
            border: 2px solid transparent;
            background: transparent;
            cursor: pointer;
            color: #71767b;
            width: 100%;
            box-sizing: border-box;
            transition: color 0.2s, background 0.2s, border-color 0.2s;
        }
        .mode-item { color: #e8e6f0; background: transparent; }
        .mode-item:hover { background: rgba(255,255,255,0.04); }
        .mode-item.active { color: #1da1f2; background: #1e2028; border-color: #1da1f2; }
        .mode-item .ico {
            flex: 1 1 0;
            width: auto;
            height: auto;
            max-height: 48px;
            aspect-ratio: 1 / 1;
            display: grid;
            place-items: center;
        }
        .mode-item svg {
            width: 75%; height: 75%;
            stroke-width: 2; fill: none;
            stroke: currentColor; stroke-linecap: round; stroke-linejoin: round;
        }
        .mode-item .label {
            font-size: clamp(8px, 0.7vw, 10px);
            font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
            font-weight: 700;
            letter-spacing: 1px;
            text-transform: uppercase;
            color: currentColor;
        }
        /* Mascot - top-left corner, proportional to featured GIF, fits dead space */
        .idle-mascot {
            position: fixed;
            z-index: 2501;
            width: 100px;
            height: auto;
            border-radius: 6px;
            overflow: hidden;
            background: #16181c;
            display: none;
        }
        .idle-mascot.visible {
            display: block;
        }
        .idle-mascot img,
        .idle-mascot video {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            border-radius: 6px;
        }
        .dj-btn {
            width: 56px;
            height: 56px;
            border-radius: 10px;
            border: 2px solid rgba(255,255,255,0.15);
            cursor: pointer;
            overflow: hidden;
            background: rgba(15, 15, 25, 0.9);
            backdrop-filter: blur(10px);
            transition: transform 0.2s, border-color 0.3s, box-shadow 0.3s;
            position: relative;
        }
        .dj-btn:hover {
            transform: scale(1.1);
            border-color: #1da1f2;
            box-shadow: 0 0 15px rgba(29,161,242,0.4);
        }
        .dj-btn:active {
            transform: scale(0.95);
        }
        .dj-btn img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .dj-btn-label {
            font-size: 8px;
            color: #71767b;
            text-transform: uppercase;
            letter-spacing: 1px;
            font-weight: 700;
            text-align: center;
        }
        @media (max-width: 900px) {
            .dj-controls { display: none; }
        }
        .idle-tweet {
            flex: 0 0 auto;
            max-width: 380px;
            display: flex;
            align-items: center;
            gap: 10px;
            background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.03) 100%);
            border: 1px solid rgba(255,255,255,0.14);
            box-shadow: 0 4px 16px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.08);
            border-radius: 10px;
            padding: 12px 14px;
            transition: border-color 0.3s ease, box-shadow 0.3s ease;
        }
        .idle-tweet-avatar {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
            flex-shrink: 0;
        }
        .idle-tweet-body {
            min-width: 0;
            display: flex;
            flex-direction: column;
            gap: 4px;
        }
        .idle-tweet-meta {
            display: flex;
            align-items: center;
            gap: 4px;
            font-size: 14px;
        }
        .idle-tweet-name {
            color: #e7e9ea;
            font-weight: 800;
        }
        .idle-tweet-badge {
            display: inline-block;
            width: 16px;
            height: 16px;
            background: #1da1f2;
            border-radius: 50%;
            position: relative;
        }
        .idle-tweet-badge::after {
            content: '✓';
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: white;
            font-size: 10px;
            font-weight: bold;
        }
        .idle-tweet-handle {
            color: #71767b;
            font-size: 14px;
        }
        .idle-tweet-text {
            font-size: 16px;
            color: #e7e9ea;
            overflow: hidden;
            text-overflow: ellipsis;
            line-height: 1.4;
            min-height: 2.8em;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            white-space: normal;
        }
        .idle-stats {
            /* Rave stats default hidden — mint is the default mode.
               body.rave-mode (future) will opt-in to show. */
            display: none;
            align-items: stretch;
            gap: 6px;
            flex: 1;
            min-width: 0;
        }
        .idle-stat {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 3px;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 8px;
            padding: 10px 6px;
        }
        .idle-stat-sep {
            display: none;
        }
        .idle-stat-label {
            font-size: 10px;
            color: #71767b;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .idle-stat-value {
            font-size: 22px;
            font-weight: 900;
            font-family: 'Courier New', monospace;
            color: #e7e9ea;
        }
        .idle-stat-value.alive { color: #ff4444; text-shadow: 0 0 10px rgba(255,68,68,0.3); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
        .idle-stat-value.alive[data-death-mode="true"] { color: #ff4444; text-shadow: 0 0 10px rgba(255,68,68,0.4); font-size: 18px; letter-spacing: 2px; font-family: 'Arial Black', sans-serif; text-align: center; }
        .idle-stat-value.alive.eliminating { color: #ff4444; text-shadow: 0 0 10px rgba(255,68,68,0.4); animation: idleShake 0.15s infinite; }
        @keyframes idleShake {
            0%, 100% { transform: translateX(0); }
            25% { transform: translateX(-2px); }
            75% { transform: translateX(2px); }
        }
        .idle-stat-value.timer { color: #ff4444; text-shadow: 0 0 10px rgba(255,68,68,0.4); }
        
        /* Idle GIF strip - right section */
        .idle-gifs img[src=""], .idle-gifs img:not([src]),
        #top-gifs-content > img[src=""], #top-gifs-content > img:not([src]) {
            background: linear-gradient(90deg, #16181c 25%, #1e2028 50%, #16181c 75%) !important;
            background-size: 200% 100% !important;
            animation: gifShimmer 1.5s ease infinite;
        }
        /* Hide broken image icons globally */
        .character img[src=""]:not(.char-bg), .character img:not([src]):not(.char-bg),
        .character video[src=""], .character video:not([src]) {
            visibility: hidden;
        }
        @keyframes gifShimmer {
            0% { background-position: 200% 0; }
            100% { background-position: -200% 0; }
        }
        .idle-gifs {
            /* Default hidden (rave-mode content). Opt-in via body.rave-mode later. */
            display: none;
            align-items: center;
            align-self: center;
            gap: 4px;
            flex-shrink: 0;
        }
        .idle-gifs img, .idle-gifs video {
            border-radius: 6px;
            pointer-events: none;
            opacity: 0.9;
            width: 110px;
            height: 80px;
            display: block;
            object-fit: cover;
        }
        .edit-toolbar {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            width: 100%;
            padding: 6px 12px;
            box-sizing: border-box;
            flex-wrap: wrap;
        }
        .edit-toolbar-label {
            font-size: 11px;
            font-weight: 800;
            color: #1da1f2;
            letter-spacing: 1.5px;
            white-space: nowrap;
            margin-right: 4px;
        }
        .edit-toolbar-controls {
            display: flex;
            gap: 4px;
        }
        .edit-ctrl-btn {
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,255,255,0.12);
            color: #8899a6;
            font-size: 11px;
            font-weight: 700;
            padding: 4px 8px;
            border-radius: 5px;
            cursor: pointer;
            transition: all 0.15s;
            white-space: nowrap;
        }
        .edit-ctrl-btn:hover { background: rgba(255,255,255,0.1); color: #e7e9ea; }
        .edit-ctrl-btn.active {
            background: rgba(29,161,242,0.2);
            border-color: rgba(29,161,242,0.5);
            color: #1da1f2;
        }
        .edit-reset-btn {
            background: rgba(255,68,68,0.1) !important;
            border-color: rgba(255,68,68,0.3) !important;
            color: #ff4444 !important;
        }
        .edit-reset-btn:hover {
            background: rgba(255,68,68,0.25) !important;
            color: #ff6666 !important;
        }
        .edit-packname-btn {
            background: rgba(255,165,0,0.1) !important;
            border-color: rgba(255,165,0,0.3) !important;
            color: #ffa500 !important;
        }
        .edit-packname-btn:hover {
            background: rgba(255,165,0,0.25) !important;
            color: #ffb833 !important;
        }
        #edit-sync-btn[data-synced="true"] {
            background: rgba(0,230,118,0.2) !important;
            border-color: rgba(0,230,118,0.5) !important;
            color: #00e676 !important;
        }
        .edit-toolbar-hint {
            display: flex;
            align-items: center;
            gap: 6px;
            font-size: 11px;
            color: #71767b;
            white-space: nowrap;
            margin-left: 6px;
        }
        .edit-arrow-hint {
            color: #1da1f2;
            font-size: 16px;
            font-weight: 900;
        }
        .nav-mp-search {
            display: flex;
            align-items: center;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,68,68,0.2);
            border-radius: 8px;
            padding: 0 14px;
            height: 44px;
            flex: 1;
            min-width: 0;
            transition: border-color 0.3s ease;
        }
        .nav-mp-search:focus-within { border-color: #ff4444; }
        
        /* Row 2 stats / search toggle */
        .mp-row2-stats, .mp-row2-search {
            display: flex;
            align-items: center;
            gap: 8px;
            width: 100%;
        }
        .mp-r2-stat {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 2px;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 8px;
            padding: 14px 8px;
        }
        .mp-r2-stat + .mp-r2-stat::before {
            display: none;
        }
        .mp-r2-label {
            font-size: 10px;
            color: #71767b;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .mp-r2-value {
            font-size: 15px;
            color: #e7e9ea;
            font-weight: 800;
            font-family: 'Courier New', monospace;
        }
        .mp-r2-timer {
            color: #ff4444;
            text-shadow: 0 0 6px rgba(255,68,68,0.3);
        }
        .mp-r2-alive {
            color: #00ff88;
        }
        .mp-r2-divider {
            display: none;
        }
        .mp-r2-search-btn {
            display: none;
        }
        .mp-r2-close-btn {
            display: none;
        }
        
        /* Toolbar takeover during lock screen */
        .top-giphy-nav.stats-takeover .nav-morph-container {
            display: none !important;
        }
        .top-giphy-nav.stats-takeover .nav-mp-row2 {
            max-height: 120px !important;
            padding: 12px 60px !important;
        }
        .top-giphy-nav.stats-takeover .mp-row2-stats {
            display: flex !important;
        }
        .top-giphy-nav.stats-takeover .mp-row2-search {
            display: none !important;
        }
        .top-giphy-nav.stats-takeover .mp-r2-stat {
            padding: 16px 12px;
        }
        .top-giphy-nav.stats-takeover .mp-r2-label {
            font-size: 11px;
        }
        .top-giphy-nav.stats-takeover .mp-r2-value {
            font-size: 20px;
        }
        
        .nav-mp-search input {
            flex: 1;
            background: transparent;
            border: none;
            color: #e7e9ea;
            font-size: 14px;
            padding: 0;
            outline: none;
        }
        .nav-mp-search input::placeholder { color: #555; }
        .nav-mp-sort {
            padding: 10px 14px;
            background: transparent;
            border: 1px solid rgba(255,255,255,0.08);
            border-radius: 8px;
            color: #71767b;
            font-size: 14px;
            cursor: pointer;
            outline: none;
            flex-shrink: 0;
        }
        
        
        
        /* GHOST TOOLBAR */
        .mp-ghost {
            position: relative;
            z-index: 2000;
            max-width: 1400px;
            margin: 0 auto;
            padding: 0 40px;
            box-sizing: border-box;
            margin-bottom: 5px;
            background: transparent;
            padding-bottom: 4px;
            opacity: 1;
            transform: none;
        }
        .mp-ghost::before { display: none; }
        .mp-ghost.active { opacity: 1; transform: none; }

        /* ROW 1: chips only, horizontal scroll */
        .mp-ghost-row1 {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 6px 0;
            overflow-x: auto;
            overflow-y: hidden;
            scrollbar-width: none;
        }
        .mp-ghost-row1::-webkit-scrollbar { display: none; }

        /* Logo - hidden until stuck */
        .mp-ghost-stuck-logo {
            display: none;
            font-size: 15px;
            font-weight: 900;
            background: linear-gradient(90deg, #ff4444, #ffcc00);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            white-space: nowrap;
            flex-shrink: 0;
            margin-right: 4px;
        }

        /* ROW 2: search + sort - hidden until stuck */
        .mp-ghost-stuck-row2 {
            display: none;
            align-items: center;
            gap: 10px;
            padding: 2px 0 4px 0;
        }
        .mp-ghost-stuck-search {
            display: flex;
            align-items: center;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,68,68,0.2);
            border-radius: 8px;
            padding: 0 12px;
            height: 36px;
            flex: 1;
            min-width: 0;
            transition: border-color 0.3s ease;
        }
        .mp-ghost-stuck-search:focus-within { border-color: #ff4444; }
        .mp-ghost-stuck-search input {
            flex: 1;
            background: transparent;
            border: none;
            color: #e7e9ea;
            font-size: 14px;
            padding: 0;
            outline: none;
        }
        .mp-ghost-stuck-search input::placeholder { color: #555; }
        .mp-ghost-stuck-sort {
            padding: 7px 14px;
            background: transparent;
            border: 1px solid rgba(255,255,255,0.08);
            border-radius: 8px;
            color: #71767b;
            font-size: 14px;
            cursor: pointer;
            outline: none;
            flex-shrink: 0;
        }

        /* STUCK STATE */
        .mp-ghost.stuck .mp-ghost-stuck-logo { display: block; }
        .mp-ghost.stuck .mp-ghost-stuck-row2 { display: flex; }
        .mp-ghost.stuck .mp-chip { font-size: 13px; padding: 7px 14px; }
        .mp-ghost.stuck .mp-ghost-stuck-logo { font-size: 16px; }
        .mp-ghost-search {
            display: flex;
            align-items: center;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,68,68,0.2);
            border-radius: 8px;
            padding: 0 12px;
            height: 40px;
            flex: 1;
            min-width: 0;
            transition: border-color 0.3s ease, box-shadow 0.3s ease;
        }
        .mp-ghost-search:focus-within {
            border-color: #ff4444;
            box-shadow: 0 0 12px rgba(255,68,68,0.15);
        }
        .mp-ghost-search-icon { font-size: 14px; margin-right: 8px; opacity: 0.5; }
        .mp-ghost-input {
            flex: 1;
            background: transparent;
            border: none;
            color: #e7e9ea;
            font-size: 14px;
            padding: 0;
            outline: none;
        }
        .mp-ghost-input::placeholder { color: #555; }
        .mp-ghost-chips {
            display: flex;
            gap: 5px;
            flex-shrink: 0;
        }
        .mp-toggle-chip {
            /* normal tab style when not active */
        }
        .mp-toggle-chip.active {
            background: rgba(255,68,68,0.25) !important;
            border-color: #ff4444 !important;
            color: #fff !important;
        }
        .mp-chip {
            padding: 5px 10px;
            background: transparent;
            border: 1px solid rgba(255,255,255,0.08);
            border-radius: 60px;
            color: #71767b;
            font-size: 11px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s ease;
            white-space: nowrap;
        }
        .mp-chip:hover {
            background: rgba(255,68,68,0.1);
            color: #ff4444;
            border-color: rgba(255,68,68,0.3);
        }
        .mp-chip.active {
            background: rgba(255,68,68,0.15);
            color: #ff4444;
            border-color: #ff4444;
        }
        .mp-ghost-sort {
            padding: 7px 14px;
            background: rgba(255,255,255,0.04);
            border: 1px solid rgba(255,255,255,0.08);
            border-radius: 60px;
            color: #e7e9ea;
            font-size: 13px;
            cursor: pointer;
            outline: none;
            flex-shrink: 0;
        }
        .mp-ghost-sort:hover { border-color: rgba(255,68,68,0.3); }
        /* Row 2 hidden */
        .mp-ghost-row2 { display: none; }
        .mp-ghost-spacer { flex: 1; }
        /* Pack info row - slides down above filter bar */
        .mp-ghost-pack-info {
            max-height: 0;
            opacity: 0;
            overflow: hidden;
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 0;
            max-width: 1400px;
            margin: 0 auto;
            transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                        opacity 0.25s ease,
                        padding 0.35s ease;
        }
        .mp-ghost-pack-info.pack-active {
            max-height: 50px;
            opacity: 1;
            padding: 6px 40px 4px 40px;
        }
        .pack-info-left {
            display: flex;
            align-items: center;
            gap: 10px;
            flex-shrink: 0;
        }
        .pack-info-meta {
            display: flex;
            align-items: center;
            gap: 14px;
            flex: 1;
        }
        .pack-info-right {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-shrink: 0;
        }
        .nav-r2-pack-name {
            font-size: 13px;
            font-weight: 700;
            color: #e7e9ea;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .nav-r2-stat {
            font-size: 12px;
            color: #71767b;
            font-weight: 600;
            padding: 0 8px;
            border-left: 1px solid rgba(255,255,255,0.08);
        }
        .pack-meta {
            font-size: 12px;
            color: #71767b;
            font-weight: 600;
        }
        .pack-meta span {
            color: #aaa;
        }
        .pack-play-btn {
            padding: 4px 12px;
            background: rgba(255,68,68,0.1);
            border: 1px solid rgba(255,68,68,0.3);
            border-radius: 60px;
            color: #ff4444;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.2s ease;
            white-space: nowrap;
        }
        .pack-play-btn:hover {
            background: rgba(255,68,68,0.2);
            box-shadow: 0 0 10px rgba(255,68,68,0.2);
        }
        .pack-play-btn.playing {
            background: rgba(255,68,68,0.25);
            border-color: #ff4444;
            animation: pulseGlow 1.5s ease infinite;
        }
        @keyframes pulseGlow {
            0%, 100% { box-shadow: 0 0 5px rgba(255,68,68,0.2); }
            50% { box-shadow: 0 0 15px rgba(255,68,68,0.4); }
        }
        /* Pack bar elements */
        .nav-r2-back {
            background: rgba(255,68,68,0.1);
            border: 1px solid rgba(255,68,68,0.3);
            color: #ff4444;
            border-radius: 8px;
            padding: 4px 12px;
            font-size: 14px;
            cursor: pointer;
            font-weight: 700;
        }
        .nav-r2-back:hover { background: rgba(255,68,68,0.2); }
        .nav-r2-stat-val { font-weight: 800; color: #e7e9ea; }
        .nav-r2-stat-val.alive { color: #00e676; }
        .nav-r2-buy {
            padding: 5px 16px;
            background: linear-gradient(135deg, #ff4444, #ffcc00);
            border: none;
            border-radius: 60px;
            color: #000;
            font-size: 11px;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 1px;
            cursor: pointer;
        }
        .nav-r2-buy:hover { transform: scale(1.05); box-shadow: 0 0 15px rgba(255,68,68,0.4); }
        
        /* Second header clone above arena */
        .arena-header {
            width: 100%;
            z-index: 2400;
            display: flex;
            justify-content: center;
            padding: 15px 0;
            background: rgba(22, 24, 28, 0.95);
            backdrop-filter: blur(10px);
            margin-bottom: 0;
        }
        .arena-header-content {
            display: flex;
            flex-direction: column;
            gap: 15px;
            width: 100%;
            max-width: 1400px;
            padding: 0 20px;
        }
        .arena-row-1 {
            display: flex;
            align-items: center;
            gap: 20px;
        }
        .arena-row-2 {
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        .arena-logo {
            font-size: 24px;
            font-weight: 900;
            background: linear-gradient(90deg, #ff4444, #ffcc00);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            letter-spacing: 2px;
        }
        .top-nav-content {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 60px;
            height: 50px;
            width: 100%;
            padding: 0 40px;
            box-sizing: border-box;
        }
        
        #marketplace-nav-btn .top-text {
        }
        
        .top-logo {
            font-size: 24px;
            font-weight: 900;
            background: linear-gradient(90deg, #ff4444, #ffcc00);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            letter-spacing: 2px;
            flex-shrink: 0;
            text-transform: uppercase;
        }
        .top-menu {
            display: flex;
            gap: 5px;
        }
        .top-link {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 10px 16px;
            color: #71767b;
            text-decoration: none;
            border-radius: 8px;
            transition: all 0.3s ease;
            position: relative;
            white-space: nowrap;
            flex-shrink: 0;
        }
        .top-link:hover, .top-link.active {
            background: rgba(29, 161, 242, 0.1);
            color: #1da1f2;
        }
        .top-link.active::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 16px;
            right: 16px;
            height: 3px;
            background: #1da1f2;
            border-radius: 3px 3px 0 0;
        }
        .winners-count {
            font-size: 11px;
            font-weight: 800;
            color: #fff;
            background: #ff4444;
            padding: 1px 6px;
            border-radius: 10px;
            min-width: 14px;
            text-align: center;
            line-height: 16px;
        }
        .top-icon {
            font-size: 20px;
        }
        .top-text {
            font-size: 14px;
            font-weight: 600;
            color: #71767b;
            white-space: nowrap;
        }
        
        .container {
            max-width: calc(1400px + max(0px, (100vw - 1400px)) * var(--t, 0));
            margin: 0 auto;
            padding: 12px calc(40px - 20px * var(--t, 0)) 0 calc(40px - 20px * var(--t, 0));
            box-sizing: border-box;
        }
        /* Full-width experiment toggle: visit ?fullwidth=1 to enable */
        body.full-width .container { max-width: none !important; }
        body.full-width .info-bar { max-width: none !important; }
        body.full-width .left-column { max-width: none !important; flex: 1 !important; }
        body.full-width #tweet-container,
        body.full-width #kill-status,
        body.full-width #alive-status { max-width: none !important; }
        body.full-width .switchable-box { max-width: none !important; }
        body.full-width #fun-panel { max-width: none !important; }
        body.full-width .info-bar > div[style*="max-width: 600px"],
        body.full-width .info-bar > div[style*="max-width: none"] { max-width: none !important; flex: 1 !important; }
        /* Arena-center experiment: visit ?arenacenter=1 to enable. At --t=0 the
           #characters grid is translated UP (covers chrome space above) and scaled
           narrower (matches info-bar width). Interpolates back to natural at --t=1.
           Transform doesn't affect layout, no shifts. JS measures actual chrome
           height + width ratio on load/resize and sets the CSS vars below. */
        body.arena-center .characters-wrapper {
            transform-origin: top center;
            transform:
                translate(
                    calc(var(--arena-translate-x, 0px) * (1 - var(--t, 0))),
                    calc(-1 * var(--chrome-height, 200px) * (1 - var(--t, 0)))
                )
                scaleX(calc(1 - (1 - var(--arena-scale-x, 0.65)) * (1 - var(--t, 0))));
        }
        .main-title {
            text-align: center;
            background: linear-gradient(90deg, #ff4444, #ffcc00);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            margin: 0 0 40px 0;
            font-size: 4em;
            font-weight: 900;
            letter-spacing: 2px;
            width: 100%;
        }
        .website-title {
            text-align: center;
            background: linear-gradient(90deg, #ff4444, #ffcc00);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            margin: 0 0 30px 0;
            font-size: 3.5em;
            font-weight: 800;
            letter-spacing: -1px;
        }
        h1 { text-align: center; background: linear-gradient(90deg, #1da1f2, #14d9ff); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 40px; font-size: 3.5em; font-weight: 800; letter-spacing: -1px; min-height: 80px; display: flex; align-items: center; justify-content: center; }
        h1.flashing { animation: flash 0.5s infinite; background: linear-gradient(90deg, #ffcc00, #ff9500); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; text-shadow: 0 0 40px rgba(255, 204, 0, 0.8); }
        .info-bar { display: flex; justify-content: center; align-items: stretch; gap: 40px; margin-top: 0px; margin-bottom: 5px; max-width: 1400px; margin-left: auto; margin-right: auto; flex-wrap: wrap; }
        .info-stats-bar {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 0;
            padding: 14px 20px;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 16px;
            margin-top: -10px;
        }
        .info-stat {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 4px;
        }
        .info-stat-label {
            font-size: 10px;
            font-weight: 700;
            color: #71767b;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
        .info-stat-value {
            font-size: 18px;
            font-weight: 900;
            color: #e7e9ea;
            font-family: 'SF Mono', 'Fira Code', monospace;
        }
        .info-stat-value.alive {
            color: #00ff88;
            text-shadow: 0 0 10px rgba(0,255,136,0.3);
        }
        .info-stat-value.timer {
            color: #ff4444;
            text-shadow: 0 0 10px rgba(255,68,68,0.3);
        }
        .info-stat-divider {
            width: 1px;
            height: 30px;
            background: rgba(255,255,255,0.08);
            flex-shrink: 0;
        }
        .left-column { display: flex; flex-direction: column; gap: 30px; width: 100%; max-width: calc(600px + max(0px, (100vw - 1400px)) * var(--t, 0)); }
        #tweet-container, #kill-status, #alive-status { width: 100%; max-width: calc(600px + max(0px, (100vw - 1400px)) * var(--t, 0)); position: relative; }
        #kill-status, #alive-status { 
            background: #16181c; 
            border: 1px solid #38414a; 
            border-radius: 16px; 
            padding: 20px 20px 10px 20px; 
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5); 
            transition: all 0.3s ease;
            display: flex;
            flex-direction: column;
            height: 100%;
        }
        #stats-content {
            flex: 1;
            display: flex;
            flex-direction: column;
        }
        #how-it-works-content, #quick-buy-content {
            overflow-y: auto;
            overflow-x: hidden;
        }
        /* hover glow disabled — revisit later
        #kill-status:hover, #alive-status:hover, #fun-panel:hover, #mint-panel:hover, .tweet-box:hover, .top-gifs-section:hover { border-color: #ff6622 !important; box-shadow: 0 4px 30px rgba(255, 102, 34, 0.3) !important; }
        */
        .kill-header { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; padding-bottom: 8px; border-bottom: 1px solid #38414a; }
        .kill-icon { width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg, #ff4444, #cc0000); display: flex; align-items: center; justify-content: center; font-size: 24px; }
        .kill-title { font-weight: bold; font-size: 18px; color: #e7e9ea; text-transform: uppercase; letter-spacing: 1px; }
        .kill-subtitle { color: #71767b; font-size: 15px; }
        
        /* GAME EXPLANATION */
        .game-explanation {
            margin-bottom: 0;
            padding-bottom: 0;
        }
        .explanation-text {
            color: #e7e9ea;
            font-size: 15px;
            line-height: 1.6;
            margin: 0 0 8px 0;
        }
        .explanation-text strong {
            color: #ff4444;
            font-weight: 700;
        }
        
        /* PERSONA BUTTONS */
        .persona-buttons {
            padding: 0;
        }
        .persona-label {
            font-size: 10px;
            color: #71767b;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            display: block;
            margin-bottom: 8px;
        }
        .persona-pills {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }
        .persona-pill {
            background: rgba(29, 161, 242, 0.08);
            border: 1px solid rgba(29, 161, 242, 0.25);
            color: #e7e9ea;
            font-size: 10px;
            font-weight: 600;
            padding: 3px 8px;
            border-radius: 16px;
            cursor: pointer;
            transition: all 0.2s ease;
            margin: 0 !important;
        }
        .persona-pill:hover {
            background: rgba(29, 161, 242, 0.2);
            border-color: #1da1f2;
        }
        .persona-pill.active {
            background: #1da1f2;
            color: #fff;
            border-color: #1da1f2;
        }
        #how-it-works-content.persona-active .explanation-text {
            font-size: 15px;
        }
        .typewriter-cursor {
            display: inline;
            animation: blink-cursor 0.6s step-end infinite;
            color: #1da1f2;
            font-weight: 100;
        }
        @keyframes blink-cursor {
            0%, 100% { opacity: 1; }
            50% { opacity: 0; }
        }
        
        /* STAT ROW */
        .stats-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            grid-template-rows: 1fr auto;
            gap: 20px;
            padding: 10px 0;
            flex: 1;
            width: 100%;
        }
        
        /* COMPACT QUICK BUY */
        .switchable-box { width: 100%; max-width: calc(600px + max(0px, (100vw - 1400px)) * var(--t, 0)); }
        .quick-buy-inner { display: flex; flex-direction: column; gap: 8px; }
        .swap-section-compact { background: rgba(29, 161, 242, 0.05); border: 1px solid rgba(29, 161, 242, 0.2); border-radius: 8px; padding: 10px; }
        .swap-label-compact { font-size: 10px; color: #71767b; font-weight: 700; text-transform: uppercase; margin-bottom: 5px; }
        .swap-input-group-compact { display: flex; align-items: center; gap: 8px; }
        .swap-input-compact { flex: 1; background: transparent; border: none; color: #e7e9ea; font-size: 16px; font-weight: 700; outline: none; }
        .swap-input-compact::placeholder { color: #71767b; }
        .token-selector-compact { display: flex; align-items: center; gap: 6px; background: rgba(29, 161, 242, 0.1); padding: 6px 10px; border-radius: 16px; }
        .token-icon-compact { font-size: 14px; }
        .token-name-compact { font-weight: 700; font-size: 12px; color: #e7e9ea; }
        .swap-balance-compact { font-size: 10px; color: #71767b; margin-top: 4px; }
        .swap-arrow-compact { text-align: center; color: #71767b; font-size: 16px; margin: -4px 0; }
        .buy-button-compact { width: 100%; padding: 10px; background: linear-gradient(135deg, #1da1f2, #14d9ff); border: none; border-radius: 8px; color: white; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; transition: all 0.3s ease; }
        .buy-button-compact:hover { transform: scale(1.02); box-shadow: 0 4px 15px rgba(29, 161, 242, 0.4); }
        
        /* COMPACT INTERACTIVE */
        .interactive-compact { display: flex; gap: 20px; align-items: flex-start; }
        .interactive-left { flex: 0 0 45%; display: flex; justify-content: center; }
        .interactive-right { flex: 1; display: flex; flex-direction: column; gap: 8px; justify-content: center; }
        .single-ar-image { width: 100%; max-width: 200px; }
        .single-ar-image img { width: 100%; height: 200px; object-fit: cover; border-radius: 12px; border: 2px solid rgba(29, 161, 242, 0.3); }
        .interactive-desc-compact { font-size: 18px; color: #e7e9ea; margin: 0; line-height: 1.4; font-weight: 400; }
        .webar-btn-compact { 
            width: auto;
            align-self: flex-start;
            padding: 10px 24px; 
            font-size: 12px; 
            font-weight: 900; 
            color: white; 
            background: linear-gradient(135deg, #1da1f2, #14d9ff); 
            border: none; 
            border-radius: 8px; 
            cursor: pointer; 
            transition: all 0.3s ease; 
            text-transform: uppercase; 
            letter-spacing: 1px; 
        }
        .webar-btn-compact:hover { 
            transform: scale(1.05); 
            box-shadow: 0 4px 15px rgba(29, 161, 242, 0.4); 
        }
        
        .stat-box {
            text-align: center;
            padding: 15px;
            background: rgba(29, 161, 242, 0.05);
            border-radius: 12px;
            border: 1px solid rgba(29, 161, 242, 0.2);
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        .stat-box-small {
            text-align: center;
            padding: 12px;
            background: rgba(255, 255, 255, 0.02);
            border-radius: 12px;
            border: 1px solid rgba(255, 255, 255, 0.1);
        }
        .stat-label {
            color: #71767b;
            font-size: 11px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 1px;
            margin-bottom: 8px;
        }
        .alive-count {
            color: #00ff88;
            font-size: 32px;
            line-height: 1.2;
            text-align: center;
            font-weight: 800;
            text-shadow: 0 0 20px rgba(0, 255, 136, 0.4);
            transition: color 0.3s ease, text-shadow 0.3s ease;
        }
        .alive-count.eliminating {
            color: #ff4444;
            text-shadow: 0 0 20px rgba(255, 68, 68, 0.6);
        }
        @keyframes dj-shake {
            0%, 100% { transform: translateX(0); }
            10% { transform: translateX(-4px) translateY(2px); }
            20% { transform: translateX(4px) translateY(-2px); }
            30% { transform: translateX(-3px) translateY(1px); }
            40% { transform: translateX(3px) translateY(-1px); }
            50% { transform: translateX(-2px); }
            60% { transform: translateX(2px); }
            70% { transform: translateX(-1px); }
            80% { transform: translateX(1px); }
        }
        .dj-shake { animation: dj-shake 0.4s ease-out; }
        @keyframes dj-shake-violent-1 {
            0%, 100% { transform: translate(0, 0) rotate(0deg); }
            10% { transform: translate(-8px, 5px) rotate(-2deg); }
            20% { transform: translate(7px, -4px) rotate(1.5deg); }
            30% { transform: translate(-6px, 3px) rotate(-1deg); }
            40% { transform: translate(8px, -6px) rotate(2deg); }
            50% { transform: translate(-5px, 4px) rotate(-1.5deg); }
            60% { transform: translate(6px, -3px) rotate(1deg); }
            70% { transform: translate(-4px, 5px) rotate(-2deg); }
            80% { transform: translate(5px, -4px) rotate(1.5deg); }
            90% { transform: translate(-3px, 2px) rotate(-0.5deg); }
        }
        @keyframes dj-shake-violent-2 {
            0%, 100% { transform: translate(0, 0) rotate(0deg); }
            10% { transform: translate(6px, -6px) rotate(2deg); }
            20% { transform: translate(-7px, 4px) rotate(-1.5deg); }
            30% { transform: translate(5px, -5px) rotate(1deg); }
            40% { transform: translate(-8px, 3px) rotate(-2deg); }
            50% { transform: translate(7px, -4px) rotate(1.5deg); }
            60% { transform: translate(-5px, 6px) rotate(-1deg); }
            70% { transform: translate(6px, -3px) rotate(2deg); }
            80% { transform: translate(-4px, 5px) rotate(-1.5deg); }
            90% { transform: translate(3px, -2px) rotate(0.5deg); }
        }
        @keyframes dj-shake-violent-3 {
            0%, 100% { transform: translate(0, 0) rotate(0deg); }
            10% { transform: translate(-5px, -7px) rotate(-1deg); }
            20% { transform: translate(8px, 5px) rotate(2deg); }
            30% { transform: translate(-7px, -3px) rotate(-2deg); }
            40% { transform: translate(6px, 6px) rotate(1deg); }
            50% { transform: translate(-8px, -5px) rotate(-1.5deg); }
            60% { transform: translate(5px, 4px) rotate(2deg); }
            70% { transform: translate(-6px, -6px) rotate(-1deg); }
            80% { transform: translate(7px, 3px) rotate(1.5deg); }
            90% { transform: translate(-3px, -2px) rotate(-0.5deg); }
        }
        .dj-violent-1 { animation: dj-shake-violent-1 0.5s ease-out; }
        .dj-violent-2 { animation: dj-shake-violent-2 0.5s ease-out; }
        .dj-violent-3 { animation: dj-shake-violent-3 0.5s ease-out; }
        .timer-display {
            color: #ff4444; 
            font-size: 28px; 
            line-height: 1.2;
            font-weight: 800;
            font-family: 'Courier New', monospace;
            letter-spacing: 2px;
            text-shadow: 0 0 20px rgba(255, 68, 68, 0.6);
            cursor: pointer;
        }
        
        .stat-label-small {
            color: #71767b;
            font-size: 10px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 8px;
        }
        .stat-value-small {
            color: #e7e9ea;
            font-size: 16px;
            font-weight: 700;
            font-family: 'Courier New', monospace;
        }
        
        /* NEW STYLES FOR BETTER KILL STATUS UI */
        .kill-conditions { 
            margin-bottom: 0px; 
            flex: 1;
            display: flex;
            flex-direction: column;
            justify-content: center;
        }
        .condition-item { 
            display: flex; 
            align-items: center; 
            gap: 12px; 
            padding: 12px;
            margin-bottom: 8px;
            background: rgba(255, 68, 68, 0.1);
            border-left: 3px solid #ff4444;
            border-radius: 8px;
        }
        .condition-icon { 
            font-size: 20px; 
            width: 30px;
            text-align: center;
        }
        .condition-text { 
            color: #e7e9ea; 
            font-size: 15px;
            font-weight: 500;
        }
        .condition-text em {
            color: #71767b;
            font-style: italic;
            font-size: 14px;
        }
        .kill-word-inline {
            background: linear-gradient(135deg, #ff4444, #cc0000);
            padding: 4px 10px;
            border-radius: 6px;
            color: white;
            font-weight: 700;
            font-size: 13px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            display: inline-block;
            margin-left: 4px;
        }
        
        .best-of-luck {
            text-align: center;
            margin-top: 15px;
            padding-top: 15px;
            border-top: 1px solid #38414a;
            color: #1da1f2;
            font-size: 14px;
        }
        
        /* QUICK BUY */
        .quick-buy-container {
            width: 100%;
            max-width: 600px;
            margin-top: 30px;
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 16px;
            padding: 15px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
        }
        .buy-header {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 12px;
            padding-bottom: 10px;
            border-bottom: 1px solid #38414a;
        }
        .buy-icon {
            font-size: 18px;
        }
        .buy-title {
            font-weight: 900;
            font-size: 13px;
            color: #e7e9ea;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
        .swap-interface {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        .swap-section {
            background: rgba(29, 161, 242, 0.05);
            border: 1px solid rgba(29, 161, 242, 0.2);
            border-radius: 8px;
            padding: 10px;
        }
        .swap-input-group {
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .swap-input {
            flex: 1;
            background: transparent;
            border: none;
            color: #e7e9ea;
            font-size: 16px;
            font-weight: 700;
            outline: none;
        }
        .swap-input::placeholder {
            color: #71767b;
        }
        .token-selector {
            display: flex;
            align-items: center;
            background: rgba(29, 161, 242, 0.1);
            padding: 6px 10px;
            border-radius: 16px;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .token-selector:hover {
            background: rgba(29, 161, 242, 0.2);
        }
        .token-icon {
            font-size: 16px;
        }
        .swap-arrow {
            text-align: center;
            color: #71767b;
            font-size: 16px;
            margin: -2px 0;
        }
        .buy-button {
            width: 100%;
            padding: 10px;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
            border: none;
            border-radius: 8px;
            color: white;
            font-size: 13px;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 1px;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .buy-button:hover {
            transform: scale(1.02);
            box-shadow: 0 4px 15px rgba(29, 161, 242, 0.4);
        }
        
        /* VIBING SECTION */
        .vibing-section {
            max-width: 1400px;
            margin: 40px auto 20px;
            padding: 0 40px;
        }
        .dancing-gifs {
            display: flex;
            justify-content: center;
            gap: 20px;
            flex-wrap: wrap;
        }
        .dancing-gifs-small {
            display: flex;
            justify-content: center;
            gap: 10px;
            margin-bottom: 15px;
        }
        .giphy-embed {
            border-radius: 0;
        }
        
        /* LARGE QUICK BUY FOR ABOUT SECTION */
        .quick-buy-container-large {
            width: 100%;
            max-width: 800px;
            margin: 20px auto;
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 20px;
            padding: 30px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
        }
        .buy-header-large {
            display: flex;
            align-items: center;
            gap: 15px;
            margin-bottom: 30px;
            padding-bottom: 20px;
            border-bottom: 1px solid #38414a;
        }
        .buy-icon-large { font-size: 32px; }
        .buy-title-large { font-weight: 900; font-size: 24px; color: #e7e9ea; text-transform: uppercase; letter-spacing: 2px; }
        .swap-interface-large { display: flex; flex-direction: column; gap: 20px; }
        .swap-section-large { background: rgba(29, 161, 242, 0.05); border: 1px solid rgba(29, 161, 242, 0.2); border-radius: 16px; padding: 20px; }
        .swap-label { font-size: 14px; color: #71767b; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 12px; }
        .swap-input-group-large { display: flex; align-items: center; gap: 15px; }
        .swap-input-large { flex: 1; background: transparent; border: none; color: #e7e9ea; font-size: 32px; font-weight: 700; outline: none; }
        .swap-input-large::placeholder { color: #71767b; }
        .token-selector-large { display: flex; align-items: center; gap: 12px; background: rgba(29, 161, 242, 0.1); padding: 12px 20px; border-radius: 30px; cursor: pointer; transition: all 0.3s ease; }
        .token-selector-large:hover { background: rgba(29, 161, 242, 0.2); }
        .token-icon-large { font-size: 28px; }
        .token-name { font-weight: 700; font-size: 18px; color: #e7e9ea; }
        .swap-balance { font-size: 13px; color: #71767b; margin-top: 10px; }
        .swap-arrow-large { text-align: center; color: #71767b; }
        .buy-button-large { width: 100%; padding: 20px; background: linear-gradient(135deg, #1da1f2, #14d9ff); border: none; border-radius: 16px; color: white; font-size: 20px; font-weight: 900; text-transform: uppercase; letter-spacing: 2px; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 4px 20px rgba(29, 161, 242, 0.4); }
        .buy-button-large:hover { transform: scale(1.02); box-shadow: 0 8px 30px rgba(29, 161, 242, 0.6); }
        .buy-info-large { background: rgba(255, 255, 255, 0.02); border-radius: 12px; padding: 20px; }
        .info-row-large { display: flex; justify-content: space-between; font-size: 15px; color: #71767b; margin-bottom: 12px; }
        .info-row-large:last-child { margin-bottom: 0; }
        .info-row-large span:last-child { color: #e7e9ea; font-weight: 700; }
        
        /* TOP GIFS SECTION */
        .top-gifs-section {
            display: flex;
            justify-content: center;
            gap: 15px;
            flex-wrap: wrap;
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 16px;
            padding: 15px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
            position: relative;
            overflow: hidden;  /* clipping boundary stops the video-layer-teardown flash on scroll-out */
            min-height: 128px;  /* content 96 + padding 30 + border 2 (border-box) — keeps box from shrinking */
        }
        #top-gifs-content > img, #top-gifs-content > video {
            width: 126px !important;
            height: 96px !important;
            flex-shrink: 0;
            object-fit: cover;
            border-radius: 4px;
        }
        
        /* VOLUME SLIDER */
        #volume-slider::-webkit-slider-thumb {
            -webkit-appearance: none;
            width: 14px;
            height: 14px;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
            border-radius: 50%;
            cursor: pointer;
        }
        #volume-slider::-moz-range-thumb {
            width: 14px;
            height: 14px;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
            border-radius: 50%;
            cursor: pointer;
            border: none;
        }
        
        /* ABOUT SECTION */
        .about-content {
            display: grid;
            grid-template-columns: 1.5fr 1fr;
            gap: 40px;
            align-items: center;
        }
        .video-container {
            border-radius: 16px;
            overflow: hidden;
            border: 2px solid rgba(29, 161, 242, 0.3);
            box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4);
        }
        .video-container iframe {
            display: block;
        }
        .about-heading {
            font-size: 28px;
            font-weight: 900;
            background: linear-gradient(90deg, #1da1f2, #14d9ff);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            margin: 0 0 20px 0;
            letter-spacing: 1px;
        }
        .about-description {
            font-size: 16px;
            color: #e7e9ea;
            line-height: 1.8;
            margin: 0;
        }
        
        .timer-section {
            background: linear-gradient(135deg, rgba(255, 68, 68, 0.15), rgba(204, 0, 0, 0.15));
            border-radius: 12px;
            padding: 15px;
            text-align: center;
        }
        .timer-label {
            color: #71767b;
            font-size: 12px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 1px;
            margin-bottom: 8px;
        }
        #timer { 
            color: #ff4444; 
            font-size: 28px; 
            font-weight: 800;
            font-family: 'Courier New', monospace;
            letter-spacing: 2px;
            text-shadow: 0 0 20px rgba(255, 68, 68, 0.5);
        }
        
        .kill-timestamp { color: #71767b; font-size: 13px; }
        .tweet-box { background: #16181c; border: 1px solid #38414a; border-radius: 16px; padding: 20px; transition: all 0.3s ease; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5); }
        /* tweet-box hover now handled by unified orange glow rule */
        .tweet-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
        .tweet-avatar { width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg, #1da1f2, #14d9ff); }
        .tweet-user-info { flex: 1; }
        .tweet-name { font-weight: bold; font-size: 15px; color: #e7e9ea; display: flex; align-items: center; gap: 4px; }
        .verified-badge { display: inline-block; width: 18px; height: 18px; background: #1da1f2; border-radius: 50%; position: relative; }
        .verified-badge::after { content: '✓'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: white; font-size: 12px; font-weight: bold; }
        .tweet-handle { color: #71767b; font-size: 15px; }
        .tweet-content { color: #e7e9ea; font-size: 18px; line-height: 1.5; margin-bottom: 12px; white-space: pre-wrap; word-wrap: break-word; }
        .tweet-timestamp { color: #71767b; font-size: 13px; }
        @keyframes flash { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } }
        @keyframes diceNudge { 0%,100% { transform: rotate(0deg); } 20% { transform: rotate(2deg); } 40% { transform: rotate(-2deg); } 60% { transform: rotate(1deg); } 80% { transform: rotate(-1deg); } }
        @keyframes mint2Flash { 0%,100% { opacity: 1; } 50% { opacity: 0; } }
        @keyframes borderFlash { 0%, 100% { border-color: #1da1f2; box-shadow: 0 0 30px rgba(29, 161, 242, 0.8); } 50% { border-color: #ff4444; box-shadow: 0 0 30px rgba(255, 68, 68, 0.8); } }
        @keyframes textFlash { 
            0%, 100% { 
                color: #e7e9ea;
                text-shadow: 0 0 5px rgba(29, 161, 242, 0.3);
            } 
            50% { 
                color: #1da1f2;
                text-shadow: 0 0 15px rgba(29, 161, 242, 0.8);
            } 
        }
        .tweet-box.flash-border { animation: borderFlash 0.5s ease-in-out; animation-iteration-count: 10; }
        .demo-text-flash { animation: textFlash 1.2s ease-in-out infinite; }
        /* If vertical spacing/sizing issues come up later, reapply the
           reverted "vertical chain" commits — see session memory. */
        #characters {
            display: flex;
            gap: 8px;
            padding: 0;
            max-width: 100%;
            overflow: hidden;
            background: transparent;
            border-radius: 0;
            border: none;
            box-shadow: none;
            position: relative;
            height: var(--arena-height, 625px);
        }
        #characters.characters-limited::after {
            display: none;
        }
        /* Scroll trap bounce - smooth rubber band */
        .arena-column {
            flex: 1 1 0%;
            display: flex;
            flex-direction: column;
            gap: 8px;
            min-width: 0;
            max-width: calc(100% / var(--arena-cols, 5));
            transition: flex 0.4s ease, max-width 0.4s ease, opacity 0.4s ease;
            overflow: hidden;
        }
        .arena-column.column-hiding {
            flex: 0 !important;
            max-width: 0 !important;
            opacity: 0;
            overflow: hidden;
        }
        /* CHAT FLIP COLUMN */
        .arena-col-flip {
            flex: 1 1 0%;
            min-width: 0;
            max-width: calc(100% / var(--arena-cols, 5));
            perspective: 1200px;
            position: relative;
            height: var(--arena-height, 625px);
        }
        .arena-col-flip-inner {
            width: 100%;
            height: 100%;
            position: relative;
            transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
            transform-style: preserve-3d;
        }
        .arena-col-flip.flipped .arena-col-flip-inner {
            transform: rotateY(180deg);
        }
        .arena-col-flip-front,
        .arena-col-flip-back {
            position: absolute;
            top: 0; left: 0;
            width: 100%;
            height: 100%;
            backface-visibility: hidden;
            -webkit-backface-visibility: hidden;
        }
        .arena-col-flip-front {
            display: flex;
            flex-direction: column;
            gap: 8px;
            overflow: hidden;
        }
        .arena-col-flip-front .character {
            flex-shrink: 0;
        }
        .arena-col-flip-back {
            transform: rotateY(180deg);
            display: flex;
            flex-direction: column;
            background: #12141a;
            border: 1px solid #2f3336;
            border-radius: 12px;
            overflow: hidden;
        }
        .flip-chat-header {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 12px 14px;
            border-bottom: 1px solid #2f3336;
            flex-shrink: 0;
        }
        .flip-chat-header span:first-child { font-size: 14px; }
        .flip-chat-title {
            font-size: 13px;
            font-weight: 800;
            color: #e7e9ea;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
        .flip-chat-close {
            margin-left: auto;
            background: none;
            border: none;
            color: #71767b;
            cursor: pointer;
            font-size: 16px;
            padding: 2px 6px;
        }
        .flip-chat-close:hover { color: #e7e9ea; }
        .flip-chat-messages {
            flex: 1;
            overflow-y: auto;
            padding: 8px 10px;
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        .flip-chat-messages::-webkit-scrollbar { width: 3px; }
        .flip-chat-messages::-webkit-scrollbar-thumb { background: #38414a; border-radius: 2px; }
        .flip-chat-input-row {
            display: flex;
            gap: 6px;
            padding: 8px 10px;
            border-top: 1px solid #2f3336;
            flex-shrink: 0;
        }
        .flip-chat-input-row input {
            flex: 1;
            background: rgba(255,255,255,0.05);
            border: 1px solid #2f3336;
            border-radius: 8px;
            color: #e7e9ea;
            font-size: 12px;
            padding: 6px 10px;
            outline: none;
        }
        .flip-chat-input-row button {
            background: none;
            border: none;
            color: #1da1f2;
            font-size: 14px;
            cursor: pointer;
        }
        /* CHAT SLIDE PANEL - positioned outside arena, slides from right */
        .arena-chat-panel {
            position: fixed;
            top: 0;
            right: 0;
            width: 0;
            height: 100vh;
            background: #12141a;
            border-left: 1px solid #2f3336;
            z-index: 2400;
            display: flex;
            flex-direction: column;
            transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            overflow: hidden;
        }
        .arena-chat-panel.open {
            width: 340px;
        }
        .arena-chat-panel-header {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 14px 16px;
            border-bottom: 1px solid #2f3336;
            flex-shrink: 0;
            min-width: 340px;
        }
        .arena-chat-panel-header .acp-icon { font-size: 16px; }
        .arena-chat-panel-header .acp-title {
            font-size: 14px;
            font-weight: 800;
            color: #e7e9ea;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
        .arena-chat-panel-header .acp-count {
            font-size: 12px;
            color: #71767b;
            margin-left: 4px;
        }
        .arena-chat-panel-header .acp-close {
            margin-left: auto;
            background: none;
            border: none;
            color: #71767b;
            cursor: pointer;
            font-size: 18px;
            padding: 2px 6px;
        }
        .arena-chat-panel-header .acp-close:hover { color: #e7e9ea; }
        .arena-chat-panel-messages {
            flex: 1;
            overflow-y: auto;
            padding: 10px 14px;
            display: flex;
            flex-direction: column;
            gap: 6px;
            min-width: 340px;
        }
        .arena-chat-panel-messages::-webkit-scrollbar { width: 4px; }
        .arena-chat-panel-messages::-webkit-scrollbar-thumb { background: #38414a; border-radius: 2px; }
        .arena-chat-panel-input {
            display: flex;
            gap: 8px;
            padding: 10px 14px;
            border-top: 1px solid #2f3336;
            flex-shrink: 0;
            min-width: 340px;
        }
        .arena-chat-panel-input input {
            flex: 1;
            background: rgba(255,255,255,0.05);
            border: 1px solid #2f3336;
            border-radius: 8px;
            color: #e7e9ea;
            font-size: 13px;
            padding: 8px 12px;
            outline: none;
        }
        .arena-chat-panel-input button {
            background: none;
            border: none;
            color: #1da1f2;
            font-size: 16px;
            cursor: pointer;
        }
        /* BOTTOM BAR */
        .bottom-bar-spacer {
            width: 100%;
            height: 44px;
            background: transparent;
        }
        /* TEMP — hide chat widget. bottom-bar stays in place for layout/locking
           but made transparent so it blends into the body gradient. */
        #floating-chat,
        #floating-chat-fab,
        #chat-sidebar { display: none !important; }
        #bottom-bar { background: transparent !important; border-top: none !important; }
        #bottom-bar-inner { visibility: hidden !important; }
        .bottom-bar {
            position: fixed;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 44px;
            background: linear-gradient(135deg, #0a0a0a 0%, #1a1a2e 100%);
            border-top: 1px solid rgba(255, 255, 255, 0.08);
            display: flex;
            align-items: center;
            justify-content: center;
            box-sizing: border-box;
            z-index: 2500;
            transform: translateY(100%);
            transition: transform 0.4s ease;
        }
        .bottom-bar.visible {
            transform: translateY(0);
        }
        .bottom-bar-inner {
            width: 100%;
            max-width: 1400px;
            display: flex;
            align-items: center;
            gap: 16px;
            padding: 0 60px;
            box-sizing: border-box;
        }
        /* New footer grid (debug toggle) */
        .bottom-bar.new-footer { height: auto; }
        .bottom-bar.new-footer .bottom-bar-inner { display: none !important; }
        .bottom-bar.new-footer .bottom-bar-grid { display: flex !important; }
        .bottom-bar-grid {
            width: 100%;
            max-width: 1400px;
            display: flex;
            align-items: stretch;
            padding: 6px 40px;
            box-sizing: border-box;
            gap: 8px;
            margin: 0 auto;
        }
        .bb-cell {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 2px;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 8px;
            padding: 6px 8px;
            min-width: 0;
            overflow: hidden;
        }
        .bb-cell-label {
            font-size: 9px;
            color: #71767b;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            white-space: nowrap;
        }
        .bb-cell-value {
            font-size: 13px;
            color: #e7e9ea;
            font-weight: 800;
            font-family: 'Courier New', monospace;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 100%;
        }
        .bb-cell-value.alive { color: #00ff88; }
        .bb-cell-value.timer { color: #ff4444; text-shadow: 0 0 6px rgba(255,68,68,0.3); }
        .bb-cell-value.song {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
            font-size: 11px;
            font-weight: 600;
            color: #71767b;
        }
        .bb-cell-value.typewriter {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
            font-size: 11px;
            font-weight: 600;
            color: #71767b;
        }
        .bb-cell-chat {
            cursor: pointer;
            transition: background 0.2s;
        }
        .bb-cell-chat:hover {
            background: rgba(255,255,255,0.06);
        }
        .bottom-bar-np {
            display: flex;
            align-items: center;
            gap: 6px;
            white-space: nowrap;
            overflow: hidden;
            flex-shrink: 0;
        }
        .bnp-icon { font-size: 13px; opacity: 0.6; }
        .bnp-song {
            font-size: 13px;
            color: #71767b;
            font-weight: 600;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .demo-toggle {
            display: flex;
            align-items: center;
            gap: 6px;
            cursor: pointer;
            flex-shrink: 0;
            margin-right: 8px;
        }
        .demo-toggle input { display: none; }
        .demo-slider {
            width: 28px;
            height: 16px;
            background: rgba(255,255,255,0.15);
            border-radius: 8px;
            position: relative;
            transition: background 0.3s;
        }
        .demo-slider::after {
            content: '';
            position: absolute;
            width: 12px;
            height: 12px;
            background: #71767b;
            border-radius: 50%;
            top: 2px;
            left: 2px;
            transition: transform 0.3s, background 0.3s;
        }
        .demo-toggle input:checked + .demo-slider {
            background: rgba(29,161,242,0.3);
        }
        .demo-toggle input:checked + .demo-slider::after {
            transform: translateX(12px);
            background: #1da1f2;
        }
        .demo-label {
            font-size: 11px;
            color: #71767b;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .demo-toggle input:checked ~ .demo-label {
            color: #1da1f2;
        }
        .bottom-bar-timer-always {
            display: flex;
            align-items: center;
            gap: 8px;
            color: #71767b;
            font-size: 13px;
            font-weight: 600;
            white-space: nowrap;
            flex-shrink: 0;
        }
        .bottom-bar-timer-always .bottom-bar-value {
            color: #ff4444;
            font-weight: 800;
            font-family: 'Courier New', monospace;
            text-shadow: 0 0 8px rgba(255,68,68,0.4);
        }
        .bottom-bar-sep {
            width: 1px;
            height: 18px;
            background: rgba(255,255,255,0.12);
            flex-shrink: 0;
        }
        .bottom-bar-chat {
            margin-left: auto;
            display: flex;
            align-items: center;
            gap: 6px;
            cursor: pointer;
            padding: 0;
            border-radius: 8px;
            background: none;
            border: none;
            transition: opacity 0.2s;
            flex-shrink: 0;
        }
        .bottom-bar-chat:hover {
            opacity: 0.7;
        }
        .bbc-icon { font-size: 14px; }
        .bbc-label {
            font-size: 15px;
            color: #e7e9ea;
            font-weight: 700;
            letter-spacing: 0.5px;
        }
        .bbc-count {
            font-size: 13px;
            color: #71767b;
            font-weight: 600;
        }
        .bottom-chat-btn {
            background: none;
            border: none;
            color: #71767b;
            font-size: 13px;
            cursor: pointer;
            padding: 4px 8px;
            transition: color 0.2s;
            flex-shrink: 0;
            margin-left: auto;
            display: flex;
            align-items: center;
            gap: 6px;
            font-weight: 700;
        }
        .bottom-chat-btn:hover { color: #1da1f2; }
        .bottom-bar-stats {
            position: relative;
            flex: 1;
            min-width: 0;
            height: 30px;
            overflow: hidden;
            display: flex;
            align-items: center;
        }
        .bottom-bar-typewriter {
            color: #71767b;
            font-size: 13px;
            font-weight: 600;
            white-space: nowrap;
            overflow: hidden;
        }
        .bottom-bar-value {
            color: #e7e9ea;
            font-weight: 800;
        }
        .bottom-bar-value.alive {
            color: #1da1f2;
            text-shadow: 0 0 8px rgba(29, 161, 242, 0.3);
        }
        .bottom-bar-value.timer {
            color: #ff4444;
            text-shadow: 0 0 8px rgba(255, 68, 68, 0.3);
        }
        .bottom-bar-divider {
            width: 1px;
            height: 20px;
            background: rgba(255, 255, 255, 0.1);
        }
        .arena-column .character {
            flex-shrink: 0;
            overflow: hidden;
            border-radius: 6px;
            margin-bottom: 0;
        }
        .arena-column .character img,
        .arena-column .character video {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }
        .characters-clip {
            overflow: hidden;
            height: var(--arena-height, 625px);
            overflow: hidden;
            position: relative;
            margin-top: 0px;
            background: transparent;
        }
        .characters-clip.mp-scroll {
            overflow-y: auto;
            overflow-x: hidden;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
            overscroll-behavior-y: contain;
        }
        .characters-clip.mp-scroll::-webkit-scrollbar { display: none; }
        .characters-clip.mp-scroll #characters {
            height: auto !important;
            min-height: var(--arena-height, 625px);
            overflow: visible !important;
            align-items: flex-start;
        }
        .characters-clip.mp-scroll .arena-column {
            height: auto !important;
        }
        .characters-clip::after {
            display: none;
        }
        .arena-with-banner {
            display: flex;
            flex-direction: row;
            width: 100%;
        }
        .arena-with-banner .characters-clip {
            flex: 1;
            min-width: 0;
        }
        /* =========================================================
           Full-bleed layout (scoped to body.layout-fullbleed)
           App-shell fills the viewport below the sticky nav.
           Flex/height chain — grid claims all remaining space.
           No magic arena-height; scales with nav.
           ========================================================= */
        /* app-shell uses mint-mode grid from page load so rail's space is
           reserved even on landing — no shift when rail becomes visible. */
        .app-shell {
            display: grid;
            grid-template-columns: clamp(72px, 6vw, 120px) 1fr;
            gap: 14px;
            padding: 20px 0;
            box-sizing: border-box;
            width: 100%;
            height: 100dvh;
            align-items: stretch;
            /* Sticky at 12px from viewport top — pins app-shell there when user
               scrolls past, giving game bar proper top padding. No jump. */
            position: sticky;
            top: 12px;
        }
        .app-shell > #mode-rail { grid-column: 1; }
        .app-shell > .main-col,
        .app-shell > .characters-wrapper,
        .app-shell > #main-nav { grid-column: 2; }
        /* body.layout-fullbleed .container override removed — calc-based base
           rule reaches the same target at --t=1, lets container interpolate
           smoothly in both scroll directions without snap. */
        /* .container widening is now driven by --t var (see base rule).
           Vertical padding stays 12px top / 0 bottom throughout to keep the
           sentinel's Y position stable (prevents IntersectionObserver flap). */
        /* App-shell = 2×2 grid. Rail col 1 spans both rows. Game bar (#main-nav)
           col 2 row 1 (natural height). characters-wrapper col 2 row 2 (flex:1
           filling remaining height). */
        /* App-shell: 2-col grid (rail | main-col). Single row. */
        body.layout-fullbleed .app-shell {
            display: grid;
            grid-template-columns: clamp(72px, 6vw, 120px) 1fr;
            gap: 14px;
            padding: 20px 0;
            box-sizing: border-box;
            width: 100%;
            height: 100dvh;
            align-items: stretch;
        }
        /* Rail = col 1, fills height via align-items: stretch. */
        body.layout-fullbleed #mode-rail {
            position: relative;
            left: auto; top: auto; bottom: auto;
            width: auto;
            height: 100%;
            min-height: 0;
            padding: 4px 6px !important;
            z-index: auto;
            grid-column: 1;
        }
        /* Main column structure from page load — game bar's space is reserved
           even on landing so arena doesn't shift down when game bar appears. */
        .main-col {
            grid-column: 2;
            display: flex;
            flex-direction: column;
            gap: 14px;
            min-width: 0;
            min-height: 0;
        }
        /* display: contents from page load — nav children (mint-stats, tweet)
           flow as main-col flex children, taking their natural game-bar height. */
        #main-nav {
            display: contents;
            background: transparent !important;
        }
        .main-col > .characters-wrapper {
            flex: 1;
            min-height: 0;
            margin-top: 0;
        }
        body.layout-fullbleed .arena-with-banner {
            height: 100%;
            min-height: 0;
            min-width: 0;
        }
        body.layout-fullbleed .characters-clip {
            height: 100%;
            min-height: 0;
        }
        /* #bottom-bar is position:fixed so doesn't affect body height — fine to
           hide visually. .bottom-bar-spacer stays in flow always so body height
           is consistent across landing/fullbleed (chat is permanently hidden
           anyway, so the 44px reservation is harmless). */
        body.layout-fullbleed #bottom-bar {
            display: none !important;
        }
        /* Step B — character middle grid per design:
           pack col + 3 auto-width 4:3 tile cols × 3 rows.
           Source: Mint Panel Preview.html override CSS. */
        body.layout-fullbleed #characters {
            display: grid !important;
            grid-template-columns: minmax(0, 1fr) repeat(3, auto);
            grid-template-rows: repeat(3, minmax(0, 1fr));
            grid-auto-flow: column;
            gap: 10px;
            padding: 0 !important;
            height: 100% !important;
            min-height: 0;
            /* Kill base #characters rounded + hidden so mint panel's own
               border-radius isn't clipped at the corners. */
            border-radius: 0 !important;
            overflow: visible !important;
            background: transparent !important;
        }
        /* Arena columns pass through so their children (characters)
           become direct grid items of #characters. */
        body.layout-fullbleed .arena-column { display: contents; }
        /* Mint col wrapping the mint panel spans full height in col 1 */
        /* Character tiles: subtle border + radius matching site panel style */
        body.mint-active .character {
            border: 1px solid #38414a;
            border-radius: 10px;
            overflow: hidden;
        }
        body.layout-fullbleed #characters > .mint-col {
            grid-column: 1 / 2;
            grid-row: 1 / -1;
            min-width: 0;
            min-height: 0;
            height: 100% !important;
            width: 100%;
        }
        /* Character tiles: 4:3, height drives width */
        body.layout-fullbleed .character {
            aspect-ratio: 4 / 3 !important;
            height: 100% !important;
            width: auto !important;
            min-height: 0;
            min-width: 0;
            justify-self: start;
        }
        /* PROPORTIONAL ARENA — enable with ?prop=1 (adds body.prop-chrome).
           Lock the panel + cards together as ONE block of fixed shape (1390:590, from the
           measured-good 2.09 reference) and scale it to fit, centered. The block's height is
           set in JS (_applyPropArena) to width / 2.356 so the grid's 1fr rows get a DEFINITE
           pixel height and the 4:3 cards shrink with it. (CSS aspect-ratio left the rows
           indefinite, so the cards stayed big and the panel stayed thin — that was the bug.)
           On a screen whose aspect == the reference: fills exactly, no bars. On a taller
           aspect (true 16:9 / 16:10): unavoidable empty space — pure geometry, like a
           widescreen film on a 4:3 TV. Kept at the BOTTOM (top-aligned) so the panel + cards
           sit up top where the eye expects them, not floated with a gap above. */
        body.prop-chrome.layout-fullbleed .characters-clip {
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
        }
        /* ===== ARENA2 (deep rework, ?arena2=1) — PANEL-FIRST layout =====
           Panel is sized first from the available HEIGHT (uniform scale, fixed aspect → its
           images never stretch). Cards then fill the leftover width as a grid whose cols/rows
           are computed in JS (_arena2Layout) to fill the space. Panel + each card keep their
           shape on every screen; only the card count/arrangement flexes. Live-tunable via the
           on-screen ARENA2 panel (window._arena2). Grid templates are set by JS. */
        body.arena2.layout-fullbleed #characters {
            justify-content: start !important;
            align-content: center !important;
            gap: var(--a2-gap, 10px) !important;
            height: 100% !important;
            overflow: hidden !important;
        }
        body.arena2.layout-fullbleed #characters > .mint-col {
            grid-column: 1 / 2 !important;
            grid-row: 1 / -1 !important;
        }
        body.arena2.layout-fullbleed .character {
            width: 100% !important;          /* fill the grid cell width... */
            height: 100% !important;         /* ...and height */
            aspect-ratio: auto !important;
            min-width: 0 !important;
            min-height: 0 !important;
            justify-self: stretch !important;
            align-self: stretch !important;
            overflow: hidden;
            box-sizing: border-box !important;
            /* Per-axis card padding (insets the 3D content to reshape the card). Vars default 0
               so the live/unflagged layout is unchanged — only the ?arena2=1 sliders set them. */
            padding: var(--a2-cardpad-v, 0px) var(--a2-cardpad-h, 0px) !important;
        }
        body.arena2.layout-fullbleed .character .cube-wrap,
        body.arena2.layout-fullbleed .character .cube-face,
        body.arena2.layout-fullbleed .character canvas,
        body.arena2.layout-fullbleed .character video,
        body.arena2.layout-fullbleed .character img,
        body.arena2.layout-fullbleed .character .char-bg {
            width: 100% !important;
            height: 100% !important;
            object-fit: cover;
        }
        /* Stat-tile text scales with the stat-row height (--a2-stat-h, set in _arena2Layout),
           which scales with the screen — so the text grows/shrinks instead of staying fixed-px. */
        body.arena2.layout-fullbleed #mint-stats .mint-stat .v { font-size: calc(var(--a2-stat-h, 80px) * 0.32) !important; line-height: 1 !important; }
        body.arena2.layout-fullbleed #mint-stats .mint-stat .k { font-size: calc(var(--a2-stat-h, 80px) * 0.12) !important; }
        body.arena2.layout-fullbleed #mint-stats .mint-stat .sub { font-size: calc(var(--a2-stat-h, 80px) * 0.11) !important; }
        /* Fun panel pause button +10%. Scoped to pause images WITHOUT an inline transform,
           so the vibes pause (which sets its own inline scale) is never affected. */
        img[src*="pause_v1_trans"]:not([style*="transform"]) { transform: scale(1.15); }
        /* Tweet text scales with the screen too (was a fixed 16px). 2.18vh = 16px at 735px
           height, so it's unchanged on the reference screen and scales up on bigger ones. */
        /* Tweet body text: glyphs scale. No font-relative min-height (that shrank the card); the
           card width is pinned separately and its height comes from the bar row, so the text area
           stays natural — same content height as a stat tile, so the name centers at the same level. */
        body.v1k .idle-tweet-text {
            font-size: var(--a2-tweet-size, 1.95vh) !important;
            min-height: 0 !important;
            font-weight: 600 !important;
        }
        .pack-name-banner {
            display: none;
        }
        .pack-name-banner span {
            writing-mode: vertical-lr;
            text-orientation: mixed;
            font-size: 28px;
            font-weight: 900;
            letter-spacing: 4px;
            text-transform: uppercase;
            color: rgba(255,255,255,0.7);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-height: calc(100vh - 20px);
        }
        .pack-name-banner.editable {
            pointer-events: auto;
            cursor: pointer;
        }
        .pack-name-banner.editable span {
            color: rgba(29,161,242,0.9);
            text-shadow: 0 0 10px rgba(29,161,242,0.3);
        }
        .pack-name-banner.editable span:hover {
            color: #1da1f2;
        }
        .pack-name-banner.editing span {
            outline: 2px solid #1da1f2;
            outline-offset: 4px;
            border-radius: 4px;
            padding: 4px;
            background: rgba(0,0,0,0.6);
            color: #fff;
        }
        /* Pack loading spinner */
        .pack-loading {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 12px;
            z-index: 20;
            background: rgba(0,0,0,0.6);
        }
        .pack-loading-spinner {
            width: 36px;
            height: 36px;
            border: 3px solid rgba(255,68,68,0.2);
            border-top-color: #ff4444;
            border-radius: 50%;
            animation: packspin 0.8s linear infinite;
        }
        @keyframes packspin { to { transform: rotate(360deg); } }
        .pack-loading-text {
            color: #71767b;
            font-size: 13px;
            font-weight: 600;
        }
        
        .characters-clip.expanded::after {
            display: none;
        }
        /* Arena lock overlay - simple transparent layer during elimination */
        .arena-lock-overlay {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            z-index: 50;
            background: rgba(0, 0, 0, 0.55);
            display: flex;
            align-items: center;
            justify-content: center;
            pointer-events: none;
            backdrop-filter: blur(2px);
            opacity: 0;
            transition: opacity 0.3s ease;
        }
        .arena-lock-overlay.active {
            opacity: 1;
        }
        .arena-lock-box {
            background: rgba(15, 15, 25, 0.85);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 12px;
            padding: 24px 40px;
            text-align: center;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
        }
        .arena-lock-icon {
            font-size: 28px;
        }
        .arena-lock-title {
            font-size: 16px;
            font-weight: 800;
            color: #e7e9ea;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
        .arena-lock-sub {
            font-size: 12px;
            color: #71767b;
            font-weight: 600;
        }
        .character {
            width: 100%;
            display: inline-block;
            position: relative;
            perspective: 800px;
        }
        .character .cube-wrap {
            position: absolute;
            inset: 0;
        }
        .character .cube-face {
            position: absolute;
            inset: 0;
            overflow: hidden;
        }
        /* Driven by --t (scroll progress). Swaps the moment scroll passes the
           5% deadzone — not at the sentinel. */
        .character .cube-front {
            opacity: calc(1 - clamp(0, var(--t, 0) * 999, 1));
            z-index: 2;
        }
        .character .cube-top {
            opacity: clamp(0, var(--t, 0) * 999, 1);
            z-index: 1;
            background: #1a1a2e;
            background-size: cover;
            background-position: center;
        }
        .character img,
        .character video {
            width: 100%;
            display: block;
            border-radius: 8px;
            height: auto;
        }
        
        #characters.characters-limited {
            /* no max-height - let columns flow downward naturally */
        }
        #characters.characters-expanded {
            max-height: none;
        }
        .show-more-btn {
            padding: 12px 40px;
            font-size: 14px;
            font-weight: 900;
            color: white;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
            border: none;
            border-radius: 50px;
            cursor: pointer;
            transition: all 0.3s ease;
            text-transform: uppercase;
            letter-spacing: 2px;
        }
        .show-more-btn:hover {
            transform: scale(1.05);
            box-shadow: 0 0 20px rgba(29, 161, 242, 0.5);
        }
        .show-more-btn.hidden {
            display: none;
        }
        #characters::before { display: none; }
        
        /* EDIT MODE: clean uniform grid, no scrolling */
        body.edit-mode #characters {
            gap: 6px;
            padding: 6px 12px;
        }
        body.edit-mode .arena-column {
            gap: 6px;
        }
        body.edit-mode .character {
            border: 2px solid transparent;
        }
        body.edit-mode .character:hover {
            transform: none;
            border-color: rgba(29,161,242,0.5);
        }
        /* CUE EDITOR PANEL */
        #cue-editor-panel {
            display: none;
            flex-direction: column;
            gap: 10px;
            padding: 14px;
            background: #12141a;
            border: 1px solid #2f3336;
            border-radius: 12px;
            width: 260px;
            flex-shrink: 0;
            height: var(--arena-height, 625px);
            overflow-y: auto;
            box-sizing: border-box;
        }
        body.edit-mode.cue-editing #cue-editor-panel {
            display: flex;
        }
        .cue-header {
            font-size: 11px;
            font-weight: 800;
            color: #1da1f2;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            text-align: center;
            padding-bottom: 6px;
            border-bottom: 1px solid #2f3336;
        }
        .cue-time-big {
            font-size: 36px;
            font-weight: 900;
            color: #e7e9ea;
            font-family: 'Courier New', monospace;
            text-align: center;
            letter-spacing: 2px;
            padding: 8px 0;
        }
        .cue-progress-wrap {
            position: relative;
            padding: 4px 0;
        }
        .cue-progress-track {
            width: 100%;
            height: 8px;
            background: rgba(255,255,255,0.08);
            border-radius: 4px;
            position: relative;
            overflow: hidden;
            cursor: pointer;
        }
        .cue-progress-fill {
            height: 100%;
            width: 0%;
            background: linear-gradient(90deg, #1da1f2, #14d9ff);
            border-radius: 4px;
            transition: width 0.2s;
        }
        .cue-markers {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 16px;
            pointer-events: none;
        }
        .cue-marker {
            position: absolute;
            top: 0;
            width: 3px;
            height: 16px;
            border-radius: 1px;
            transform: translateX(-50%);
        }
        .cue-marker.kill-on { background: #ff4444; }
        .cue-marker.kill-off { background: #00ff88; }
        .cue-controls {
            display: flex;
            gap: 6px;
        }
        .cue-btn {
            flex: 1;
            padding: 10px 8px;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,255,255,0.12);
            color: #8899a6;
            font-size: 11px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            border-radius: 8px;
            cursor: pointer;
            transition: all 0.15s;
            white-space: nowrap;
            margin: 0;
        }
        .cue-btn:hover { background: rgba(255,255,255,0.1); color: #e7e9ea; }
        .cue-kill-btn.active {
            background: rgba(255,68,68,0.25);
            border-color: #ff4444;
            color: #ff4444;
            box-shadow: 0 0 10px rgba(255,68,68,0.3);
        }
        .cue-btn.cue-danger { color: #ff4444; border-color: rgba(255,68,68,0.3); }
        .cue-btn.cue-danger:hover { background: rgba(255,68,68,0.15); }
        .cue-btn.cue-method {
            background: rgba(255,165,0,0.1);
            border-color: rgba(255,165,0,0.3);
            color: #ffa500;
        }
        .cue-list {
            flex: 1;
            overflow-y: auto;
            display: flex;
            flex-direction: column;
            gap: 3px;
            min-height: 0;
        }
        .cue-list::-webkit-scrollbar { width: 3px; }
        .cue-list::-webkit-scrollbar-thumb { background: #38414a; border-radius: 2px; }
        .cue-item {
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 4px 8px;
            background: rgba(255,255,255,0.03);
            border-radius: 4px;
            font-size: 11px;
            color: #71767b;
        }
        .cue-item .cue-item-time { font-family: 'Courier New', monospace; font-weight: 700; color: #e7e9ea; min-width: 40px; }
        .cue-item .cue-item-action { font-weight: 700; }
        .cue-item .cue-item-action.on { color: #ff4444; }
        .cue-item .cue-item-action.off { color: #00ff88; }
        .cue-item .cue-item-del {
            margin-left: auto;
            background: none;
            border: none;
            color: #555;
            cursor: pointer;
            font-size: 12px;
            padding: 0 4px;
        }
        .cue-item .cue-item-del:hover { color: #ff4444; }
        .cue-item-nudge {
            display: flex;
            gap: 2px;
            margin-left: auto;
        }
        .cue-item-nudge button {
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,255,255,0.1);
            color: #71767b;
            font-size: 9px;
            font-weight: 700;
            padding: 1px 4px;
            border-radius: 3px;
            cursor: pointer;
            margin: 0;
        }
        .cue-item-nudge button:hover { color: #e7e9ea; background: rgba(255,255,255,0.1); }
        .cue-item-msg-edit {
            background: none;
            border: none;
            border-bottom: 1px dashed rgba(255,255,255,0.15);
            color: #aaa;
            font-size: 10px;
            padding: 1px 2px;
            outline: none;
            max-width: 90px;
            min-width: 0;
        }
        .cue-item-msg-edit:focus { border-bottom-color: #1da1f2; color: #e7e9ea; }
        .cue-saved-msgs {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            max-height: 60px;
            overflow-y: auto;
        }
        .cue-saved-msgs::-webkit-scrollbar { width: 2px; }
        .cue-saved-msgs::-webkit-scrollbar-thumb { background: #38414a; }
        .cue-saved-msg {
            display: flex;
            align-items: center;
            background: rgba(29,161,242,0.1);
            border: 1px solid rgba(29,161,242,0.2);
            border-radius: 4px;
            color: #8899a6;
            font-size: 9px;
            padding: 2px 4px 2px 6px;
            cursor: default;
            white-space: nowrap;
            max-width: 140px;
        }
        .cue-saved-msg span:first-child {
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .cue-saved-msg:hover { background: rgba(29,161,242,0.2); color: #e7e9ea; }
        .cue-msg-row {
            display: flex;
            gap: 6px;
        }
        .cue-msg-input {
            flex: 1;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,255,255,0.12);
            border-radius: 6px;
            color: #e7e9ea;
            font-size: 11px;
            padding: 8px 10px;
            outline: none;
            min-width: 0;
        }
        .cue-msg-input::placeholder { color: #555; }
        .cue-msg-input:focus { border-color: #1da1f2; }
        .cue-msg-btn {
            flex-shrink: 0;
            width: 36px;
            padding: 0;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .cue-item .cue-item-action.msg { color: #1da1f2; }
        .cue-item .cue-item-msg {
            color: #aaa;
            font-size: 10px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            max-width: 100px;
        }
        /* IDLE-ALIVE — kill effects (nav bar) */
        .idle-stat-value.idle-alive-killing {
            color: #ff4444 !important;
            text-shadow: 0 0 30px rgba(255, 68, 68, 0.8), 0 0 60px rgba(255, 0, 0, 0.4) !important;
            animation: idleAliveShake 0.08s infinite !important;
        }
        @keyframes idleAliveShake {
            0% { transform: translate(0, 0) scale(1); }
            20% { transform: translate(-4px, 2px) scale(1.02); }
            40% { transform: translate(3px, -3px) scale(0.98); }
            60% { transform: translate(-3px, -1px) scale(1.01); }
            80% { transform: translate(4px, 2px) scale(0.99); }
            100% { transform: translate(0, 0) scale(1); }
        }
        /* DRONE STRIKE flash — variable speed (nav bar) */
        .idle-stat-value.idle-airstrike-flash {
            animation: idleAirstrikeFlash var(--flash-speed, 2s) ease-in-out infinite !important;
        }
        @keyframes idleAirstrikeFlash {
            0%, 100% { opacity: 0.3; }
            50% { opacity: 1; }
        }
        @keyframes pulse { 0%, 100% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } }
        .character {
            border-radius: 12px;
            overflow: hidden;
            background: #111;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            border: none; 
            position: relative; 
            z-index: 1; 
        }
        .character:hover { box-shadow: 0 8px 25px rgba(0, 0, 0, 0.6); }
        button { padding: 15px 40px; font-size: 1.15em; font-weight: 600; color: white; border: none; border-radius: 50px; cursor: pointer; transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 1px; margin: 10px; }
        #start-btn { padding: 25px 80px; font-size: 2.5em; background: linear-gradient(135deg, #ff4444, #cc0000); box-shadow: 0 0 30px rgba(255, 68, 68, 0.7); }
        #start-btn:hover { transform: scale(1.1); box-shadow: 0 0 50px rgba(255, 68, 68, 1); }
        #restart-btn { background: linear-gradient(135deg, #ff4444, #cc0000); display: none; }
        #restart-btn:hover { background: linear-gradient(135deg, #cc0000, #ff4444); }
        @media (max-width: 1200px) {
        }
        @media (max-width: 900px) {
        }
        @media (max-width: 768px) {
            h1 { font-size: 2em; }
            #characters.characters-limited { /* no max-height */ }
            .stats-grid { grid-template-columns: 1fr; gap: 15px; }
            .nav-content { padding: 0 20px; flex-direction: column; gap: 12px; }
            .nav-center { gap: 20px; }
            .nav-link { font-size: 11px; }
            .nav-right { gap: 8px; }
            .mint-btn, .wallet-btn { padding: 6px 14px; font-size: 10px; }
            .about-content { grid-template-columns: 1fr; }
            .video-container iframe { height: 300px; }
            .giphy-embed { width: 150px; height: 150px; }
        }
        
        /* CHAT SIDEBAR - sliding drawer */
        /* FLOATING CHAT WIDGET */
        .floating-chat {
            position: fixed;
            bottom: 60px;
            right: 20px;
            z-index: 2500;
            display: none;
            flex-direction: column;
            align-items: flex-end;
            gap: 10px;
        }
        .floating-chat.visible {
            display: flex;
        }
        .floating-chat-box {
            width: 320px;
            height: 520px;
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 16px;
            display: none;
            flex-direction: column;
            overflow: hidden;
            box-shadow: 0 8px 40px rgba(0,0,0,0.6);
        }
        .floating-chat-box.open {
            display: flex;
        }
        .floating-chat-header {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 12px 14px;
            background: rgba(255,255,255,0.03);
            border-bottom: 1px solid #38414a;
        }
        .floating-chat-title {
            font-size: 12px;
            font-weight: 800;
            color: #e7e9ea;
            letter-spacing: 1px;
        }
        .floating-chat-count {
            font-size: 10px;
            color: #71767b;
            margin-left: auto;
        }
        .floating-chat-minimize {
            background: none;
            border: none;
            color: #71767b;
            font-size: 16px;
            cursor: pointer;
            padding: 0 4px;
            line-height: 1;
        }
        .floating-chat-minimize:hover { color: #e7e9ea; }
        .floating-chat-messages {
            flex: 1;
            overflow-y: auto;
            padding: 10px;
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        .floating-chat-messages::-webkit-scrollbar { width: 4px; }
        .floating-chat-messages::-webkit-scrollbar-track { background: transparent; }
        .floating-chat-messages::-webkit-scrollbar-thumb { background: #38414a; border-radius: 2px; }
        .floating-chat-input {
            display: flex;
            gap: 6px;
            padding: 10px;
            border-top: 1px solid #38414a;
        }
        .floating-chat-input input {
            flex: 1;
            background: rgba(255,255,255,0.05);
            border: 1px solid #38414a;
            border-radius: 8px;
            padding: 8px 10px;
            color: #e7e9ea;
            font-size: 12px;
            outline: none;
        }
        .floating-chat-input button {
            background: #1da1f2;
            border: none;
            border-radius: 8px;
            color: white;
            padding: 8px 12px;
            cursor: pointer;
            font-size: 12px;
        }
        .floating-chat-fab { 
            display: none;
            position: fixed;
            bottom: 72px;
            right: 20px;
            width: 48px;
            height: 48px;
            border-radius: 50%;
            background: #1da1f2;
            border: none;
            color: #fff;
            font-size: 20px;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 4px 16px rgba(0,0,0,0.4);
            z-index: 2600;
            transition: transform 0.2s, background 0.2s;
        }
        .floating-chat-fab.visible { display: flex; }
        .floating-chat-fab:hover { transform: scale(1.1); background: #1991da; }
        .floating-chat-fab.hidden { display: none !important; }

        .chat-sidebar {
            position: fixed;
            top: 0;
            right: 0;
            width: 280px;
            height: 100vh;
            overflow: hidden;
            background: rgba(22, 24, 28, 0.97);
            backdrop-filter: blur(8px);
            border-left: 1px solid #38414a;
            display: flex;
            flex-direction: column;
            transform: translateX(100%);
            transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            z-index: 2400;
        }
        .chat-sidebar.open {
            transform: translateX(0);
        }
        .chat-sidebar-header {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 10px 12px;
            background: rgba(29, 161, 242, 0.1);
            border-bottom: 1px solid #38414a;
            flex-shrink: 0;
        }
        .chat-sidebar-header .chat-title {
            font-weight: 700;
            font-size: 12px;
            color: #e7e9ea;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            flex: 1;
        }
        .chat-sidebar-header .chat-icon {
            font-size: 14px;
        }
        .chat-sidebar-header .chat-count {
            color: #71767b;
            font-size: 10px;
            font-weight: 600;
        }
        .chat-sidebar-messages {
            flex: 1;
            overflow-y: auto;
            padding: 8px 10px;
            display: flex;
            flex-direction: column;
            gap: 2px;
            scrollbar-width: thin;
            scrollbar-color: #38414a transparent;
        }
        .chat-sidebar-messages::-webkit-scrollbar { width: 4px; }
        .chat-sidebar-messages::-webkit-scrollbar-track { background: transparent; }
        .chat-sidebar-messages::-webkit-scrollbar-thumb { background: #38414a; border-radius: 2px; }
        .chat-sidebar-input {
            display: flex;
            gap: 6px;
            padding: 8px;
            border-top: 1px solid #38414a;
            flex-shrink: 0;
        }
        .chat-sidebar-input input {
            flex: 1;
            background: rgba(255,255,255,0.05);
            border: 1px solid #38414a;
            border-radius: 8px;
            padding: 7px 10px;
            color: #71767b;
            font-size: 11px;
            outline: none;
        }
        .chat-send-btn {
            background: rgba(255,255,255,0.05);
            border: 1px solid #38414a;
            border-radius: 8px;
            color: #71767b;
            padding: 7px 10px;
            cursor: not-allowed;
            font-size: 11px;
        }
        .chat-toggle-pill.chat-active {
            background: rgba(255, 68, 68, 0.15);
            color: #ff4444;
        }
        .chat-toggle-pill.chat-active .top-text {
            color: #ff4444;
        }
        .chat-message {
            display: flex;
            gap: 6px;
            padding: 4px 8px;
            border-radius: 4px;
            background: transparent;
            animation: slideIn 0.3s ease;
            flex-wrap: wrap;
        }
        .chat-message:hover {
            background: rgba(255, 255, 255, 0.03);
        }
        @keyframes slideIn {
            from {
                opacity: 0;
                transform: translateY(10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }
        .chat-username {
            font-weight: 700;
            font-size: 12px;
        }
        .chat-text {
            color: #e7e9ea;
            font-size: 12px;
            line-height: 1.3;
            word-wrap: break-word;
        }
        .chat-emoji {
            font-size: 16px;
        }
        
        /* LAUNCH & INTERACTIVE SECTIONS */
        .section-container {
            max-width: 1400px;
            margin: 60px auto;
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 20px;
            padding: 50px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
        }
        .section-title {
            font-size: 42px;
            font-weight: 900;
            text-align: center;
            background: linear-gradient(90deg, #ff4444, #ffcc00);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            letter-spacing: 3px;
            margin: 0 0 10px 0;
        }
        .section-subtitle {
            text-align: center;
            color: #71767b;
            font-size: 18px;
            margin: 0 0 40px 0;
            font-weight: 600;
        }
        .game-concepts {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 30px;
            margin-bottom: 50px;
        }
        .concept-card {
            background: rgba(29, 161, 242, 0.05);
            border: 1px solid rgba(29, 161, 242, 0.2);
            border-radius: 16px;
            padding: 30px;
            transition: all 0.3s ease;
        }
        .concept-card:hover {
            border-color: #1da1f2;
            transform: translateY(-5px);
            box-shadow: 0 8px 30px rgba(29, 161, 242, 0.3);
        }
        .concept-icon { font-size: 48px; text-align: center; margin-bottom: 15px; }
        .concept-title { font-size: 22px; font-weight: 900; color: #e7e9ea; text-align: center; margin: 0 0 15px 0; letter-spacing: 1px; }
        .concept-description { color: #e7e9ea; font-size: 15px; line-height: 1.6; text-align: center; margin: 0 0 10px 0; }
        .concept-tagline { color: #1da1f2; font-size: 14px; font-weight: 700; text-align: center; margin: 10px 0 0 0; font-style: italic; }
        .concept-image {
            width: 100%;
            height: 200px;
            object-fit: cover;
            border-radius: 12px;
            margin-top: 15px;
            border: 2px solid rgba(29, 161, 242, 0.3);
        }
        .launch-cta { background: rgba(255, 68, 68, 0.1); border: 2px solid #ff4444; border-radius: 16px; padding: 40px; text-align: center; }
        .cta-text { font-size: 20px; color: #e7e9ea; font-weight: 700; margin: 0 0 20px 0; }
        .email-signup { display: flex; gap: 15px; max-width: 500px; margin: 0 auto; justify-content: center; flex-wrap: wrap; }
        .email-input { flex: 1; min-width: 250px; padding: 15px 20px; font-size: 15px; background: rgba(255, 255, 255, 0.05); border: 1px solid #38414a; border-radius: 50px; color: #e7e9ea; outline: none; transition: all 0.3s ease; }
        .email-input:focus { border-color: #1da1f2; box-shadow: 0 0 20px rgba(29, 161, 242, 0.3); }
        .email-input::placeholder { color: #71767b; }
        .notify-btn { padding: 15px 40px; font-size: 14px; font-weight: 900; color: white; background: linear-gradient(135deg, #ff4444, #cc0000); border: none; border-radius: 50px; cursor: pointer; transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 2px; }
        .notify-btn:hover { transform: scale(1.05); box-shadow: 0 4px 20px rgba(255, 68, 68, 0.5); }
        .interactive-content { display: flex; flex-direction: column; gap: 40px; }
        .interactive-text { text-align: center; }
        .interactive-description { font-size: 18px; color: #e7e9ea; line-height: 1.8; margin: 0 0 30px 0; max-width: 700px; margin-left: auto; margin-right: auto; }
        .webar-btn { padding: 20px 60px; font-size: 18px; font-weight: 900; color: white; background: linear-gradient(135deg, #1da1f2, #14d9ff); border: none; border-radius: 50px; cursor: pointer; transition: all 0.3s ease; text-transform: uppercase; letter-spacing: 2px; box-shadow: 0 4px 20px rgba(29, 161, 242, 0.4); }
        .webar-btn:hover { transform: scale(1.05); box-shadow: 0 8px 30px rgba(29, 161, 242, 0.6); }
        .ar-gallery { position: relative; display: flex; align-items: center; gap: 20px; max-width: 1000px; margin: 0 auto; }
        .gallery-container { overflow: hidden; flex: 1; }
        .gallery-track { display: flex; gap: 20px; transition: transform 0.5s ease; }
        .gallery-item { min-width: calc(33.333% - 14px); flex-shrink: 0; }
        .gallery-item img { width: 100%; height: 400px; object-fit: cover; border-radius: 16px; border: 2px solid rgba(29, 161, 242, 0.3); transition: all 0.3s ease; }
        .gallery-item img:hover { border-color: #1da1f2; transform: scale(1.02); box-shadow: 0 8px 30px rgba(29, 161, 242, 0.4); }
        .gallery-arrow { width: 50px; height: 50px; border-radius: 50%; background: rgba(29, 161, 242, 0.2); border: 2px solid #1da1f2; color: #1da1f2; font-size: 24px; font-weight: 900; cursor: pointer; transition: all 0.3s ease; flex-shrink: 0; }
        .gallery-arrow:hover { background: #1da1f2; color: white; transform: scale(1.1); }
        
        /* FOOTER */
        .footer {
            padding: 30px 0 0 0;
            margin-top: 60px;
            text-align: center;
        }
        .footer-content {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 20px;
            margin-bottom: 15px;
        }
        .footer-link {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 10px 16px;
            color: #71767b;
            text-decoration: none;
            border-radius: 8px;
            transition: all 0.3s ease;
            font-size: 14px;
            font-weight: 600;
        }
        .footer-link:hover {
            background: rgba(29, 161, 242, 0.1);
            color: #1da1f2;
        }
        .footer-icon {
            font-size: 18px;
        }
        .footer-links {
            display: flex;
            gap: 5px;
        }
        .footer-socials {
            display: flex;
            gap: 5px;
        }
        .social-link {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 10px 16px;
            color: #71767b;
            text-decoration: none;
            border-radius: 8px;
            transition: all 0.3s ease;
            font-size: 14px;
            font-weight: 600;
        }
        .social-link:hover {
            background: rgba(29, 161, 242, 0.1);
            color: #1da1f2;
        }
        .social-icon {
            font-size: 18px;
        }
        .footer-copyright {
            text-align: center;
            color: #71767b;
            font-size: 12px;
        }
        
        /* NFT SZN SECTION */
        #nft-szn-section {
            margin-top: 40px;
        }
        .section-subtitle {
            font-size: 28px;
            font-weight: 900;
            background: linear-gradient(90deg, #1da1f2, #14d9ff);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-align: center;
            margin: 10px 0 15px 0;
        }
        .section-description {
            font-size: 16px;
            color: #71767b;
            text-align: center;
            font-style: italic;
            margin-bottom: 30px;
            max-width: 600px;
            margin-left: auto;
            margin-right: auto;
        }
        .nft-tabs {
            display: flex;
            gap: 10px;
            justify-content: center;
            margin-bottom: 20px;
        }
        .nft-tab {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 12px 20px;
            background: rgba(22, 24, 28, 0.8);
            border: 1px solid rgba(29, 161, 242, 0.3);
            border-radius: 8px;
            color: #71767b;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .nft-tab:hover {
            background: rgba(29, 161, 242, 0.1);
            border-color: #1da1f2;
        }
        .nft-tab.active {
            background: rgba(29, 161, 242, 0.2);
            border-color: #1da1f2;
            color: #1da1f2;
        }
        .nft-tab-icon {
            font-size: 20px;
        }
        .nft-tab-text {
            font-size: 14px;
            font-weight: 700;
        }
        .nft-container {
            position: relative;
            min-height: 400px;
        }
        .nft-view {
            display: none;
        }
        .nft-view.active {
            display: block;
        }
        .nft-box {
            background: rgba(22, 24, 28, 0.8);
            border: 1px solid rgba(29, 161, 242, 0.3);
            border-radius: 16px;
            padding: 30px;
            max-width: 800px;
            margin: 0 auto;
        }
        .nft-title {
            font-size: 24px;
            font-weight: 900;
            color: #1da1f2;
            margin-bottom: 15px;
            text-align: center;
        }
        .nft-text {
            font-size: 16px;
            color: #e7e9ea;
            line-height: 1.6;
            text-align: center;
            margin-bottom: 20px;
        }
        .mini-gif-grid {
            display: grid;
            grid-template-columns: repeat(5, 1fr);
            gap: 8px;
            background: rgba(10, 10, 10, 0.6);
            padding: 15px;
            border-radius: 12px;
            border: 1px solid rgba(255, 255, 255, 0.1);
            max-width: 500px;
            margin: 0 auto;
        }
        .mini-gif {
            width: 100%;
            aspect-ratio: 1;
            border-radius: 6px;
            overflow: hidden;
            background: #111;
            border: 1px solid rgba(29, 161, 242, 0.2);
            transition: all 0.3s ease;
        }
        .mini-gif img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .mini-gif.removed {
            opacity: 0;
            transform: scale(0);
        }
        .pack-preview {
            display: flex;
            flex-direction: column;
            gap: 15px;
            max-width: 400px;
            margin: 0 auto;
        }
        .pack-feature {
            display: flex;
            align-items: center;
            gap: 15px;
            padding: 15px;
            background: rgba(29, 161, 242, 0.1);
            border: 1px solid rgba(29, 161, 242, 0.3);
            border-radius: 10px;
        }
        .pack-icon {
            font-size: 32px;
        }
        .pack-label {
            font-size: 16px;
            font-weight: 700;
            color: #e7e9ea;
        }
        .nft-view-inline {
            display: none;
        }
        .nft-view-inline.active {
            display: block;
        }
        
        /* TOP PERFORMERS - HORIZONTAL SCROLL */
        .performers-scroll-container {
            padding: 8px;
            overflow-x: auto;
            overflow-y: hidden;
        }
        .performers-scroll-container::-webkit-scrollbar {
            height: 4px;
        }
        .performers-scroll-container::-webkit-scrollbar-track {
            background: rgba(29, 161, 242, 0.1);
            border-radius: 2px;
        }
        .performers-scroll-container::-webkit-scrollbar-thumb {
            background: rgba(29, 161, 242, 0.4);
            border-radius: 2px;
        }
        .performers-scroll {
            display: flex;
            gap: 8px;
        }
        .performer-gif-small {
            width: 60px;
            height: 60px;
            border-radius: 6px;
            object-fit: cover;
            border: 2px solid rgba(255, 204, 0, 0.4);
            cursor: pointer;
            transition: all 0.3s ease;
            flex-shrink: 0;
        }
        .performer-gif-small:hover {
            transform: scale(1.1);
            border-color: #ffcc00;
            box-shadow: 0 4px 15px rgba(255, 204, 0, 0.5);
        }
        
        /* MARKETPLACE MODE */
        .marketplace-container {
            display: flex;
            gap: 20px;
            margin-top: 20px;
            opacity: 0;
            max-height: 0;
            overflow: hidden;
            transition: all 0.5s ease;
        }
        .marketplace-container.active {
            opacity: 1;
            max-height: 2000px;
        }
        .marketplace-sidebar {
            width: 250px;
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 16px;
            padding: 20px;
            height: fit-content;
            flex-shrink: 0;
        }
        .marketplace-main {
            flex: 1;
        }
        .marketplace-toolbar {
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 16px;
            padding: 15px 20px;
            margin-bottom: 20px;
            display: flex;
            flex-direction: column;
            gap: 12px;
            box-sizing: border-box;
            column-span: all;
            -webkit-column-span: all;
        }
        .toolbar-row {
            display: flex;
            align-items: center;
            gap: 15px;
        }
        .toolbar-stat {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 14px;
        }
        .filter-chip {
            padding: 8px 16px;
            background: rgba(29, 161, 242, 0.1);
            border: 1px solid rgba(29, 161, 242, 0.3);
            border-radius: 20px;
            color: #1da1f2;
            font-size: 13px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .filter-chip:hover {
            background: rgba(29, 161, 242, 0.2);
            border-color: #1da1f2;
            transform: translateY(-2px);
        }
        .filter-chip.active {
            background: #1da1f2;
            color: white;
            border-color: #1da1f2;
        }
        .toolbar-stats-group {
            display: flex;
            gap: 20px;
            align-items: center;
        }
        .toolbar-stat-box {
            text-align: center;
        }
        .stat-label {
            font-size: 11px;
            color: #71767b;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 4px;
        }
        .stat-value {
            font-size: 16px;
            color: #1da1f2;
            font-weight: 900;
        }
        .marketplace-search {
            flex: 1;
            background: rgba(29, 161, 242, 0.05);
            border: 1px solid rgba(29, 161, 242, 0.2);
            border-radius: 50px;
            padding: 10px 20px;
            color: #e7e9ea;
            font-size: 14px;
            outline: none;
        }
        .marketplace-search::placeholder {
            color: #71767b;
        }
        .marketplace-sort {
            background: rgba(29, 161, 242, 0.05);
            border: 1px solid rgba(29, 161, 242, 0.2);
            border-radius: 8px;
            padding: 10px 15px;
            color: #e7e9ea;
            font-size: 14px;
            cursor: pointer;
        }
        .marketplace-view-toggle {
            padding: 10px 20px;
            background: rgba(29, 161, 242, 0.1);
            border: 1px solid rgba(29, 161, 242, 0.3);
            border-radius: 8px;
            color: #1da1f2;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .marketplace-view-toggle:hover {
            background: rgba(29, 161, 242, 0.2);
            border-color: #1da1f2;
        }
        .marketplace-nav-tab {
            padding: 10px 20px;
            background: transparent;
            border: none;
            color: #71767b;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
            border-bottom: 2px solid transparent;
        }
        .marketplace-nav-tab:hover {
            color: #1da1f2;
        }
        .marketplace-nav-tab.active {
            color: #1da1f2;
            border-bottom-color: #1da1f2;
        }
        .filter-section {
            margin-bottom: 25px;
        }
        .filter-title {
            font-size: 12px;
            font-weight: 700;
            color: #71767b;
            text-transform: uppercase;
            letter-spacing: 1px;
            margin-bottom: 12px;
        }
        .filter-option {
            padding: 8px 12px;
            margin-bottom: 6px;
            background: rgba(29, 161, 242, 0.05);
            border: 1px solid rgba(29, 161, 242, 0.2);
            border-radius: 8px;
            color: #e7e9ea;
            font-size: 13px;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .filter-option:hover {
            background: rgba(29, 161, 242, 0.15);
            border-color: #1da1f2;
        }
        #characters.marketplace-mode {
            margin-left: 0;
            transition: all 0.5s ease;
            overflow-x: hidden;
        }
        #characters.pack-detail-mode {
            overflow-x: hidden;
        }
        
        .characters-wrapper {
            display: flex;
            gap: 0;
            transition: all 0.5s ease;
            position: relative;
            margin-top: 20px;
            overflow: hidden;
            background: transparent;
        }
        
        /* TENSION STRIP */
        .tension-strip {
            display: none;
            gap: 8px;
            margin-top: 12px;
            margin-bottom: 8px;
            padding: 0 20px;
        }
        .tension-card {
            flex: 1;
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 16px;
            padding: 14px 18px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
            transition: all 0.3s ease;
        }
        .tension-card:hover {
            border-color: #1da1f2;
            box-shadow: 0 4px 30px rgba(29, 161, 242, 0.3);
        }
        .tension-tweet-box {
            display: flex;
            flex-direction: column;
            gap: 10px;
        }
        .tension-tweet-box .tweet-header { margin-bottom: 0; }
        .tension-tweet-content {
            color: #e7e9ea;
            font-size: 16px;
            line-height: 1.5;
            white-space: pre-wrap;
            word-wrap: break-word;
        }
        .tension-tweet-box .tweet-timestamp { font-size: 12px; }
        .tension-stats-card {
            display: flex;
            align-items: center;
        }
        .tension-stats-grid {
            width: 100%;
            display: grid;
            grid-template-columns: 1fr 1fr;
            grid-template-rows: 1fr 1fr;
            gap: 10px;
        }
        .tension-stat {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 3px;
            background: rgba(255,255,255,0.03);
            border: 1px solid rgba(255,255,255,0.06);
            border-radius: 10px;
            padding: 10px 8px;
        }
        .tension-stat-label {
            font-size: 10px;
            color: #71767b;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .tension-stat-value {
            font-size: 16px;
            color: #e7e9ea;
            font-weight: 800;
            font-family: 'Courier New', monospace;
        }
        .tension-stat-value.alive { color: #00ff88; }
        .tension-stat-value.timer { color: #ff4444; text-shadow: 0 0 6px rgba(255,68,68,0.3); }
        
        /* Debug: hide toolbar */
        .top-giphy-nav.dbg-hidden {
            display: none !important;
        }
        /* Debug: hide pack labels */
        .pack-name-overlay.dbg-hidden-label {
            opacity: 0 !important;
            transition: opacity 0.2s;
        }
        .character:hover .pack-name-overlay.dbg-hidden-label {
            opacity: 1 !important;
        }
        /* UNIFIED ARENA BAR - hidden until scroll */
        .arena-bar {
            display: none;
            border-radius: 16px 16px 0 0;
            padding: 0 16px;
            max-height: 0;
            opacity: 0;
            overflow: hidden;
            transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
            z-index: 10;
        }
        .arena-bar.visible {
            max-height: 70px;
            opacity: 1;
            padding: 12px 16px;
        }
        .arena-bar.visible.expanded {
            max-height: 250px;
        }
        .arena-bar-row-top {
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .arena-bar-tabs {
            flex-shrink: 0;
            display: flex;
            flex-direction: column;
            gap: 4px;
        }
        
        /* FILTER CHIPS - hidden, pop in on expand */
        .arena-bar-filters {
            display: flex;
            gap: 6px;
            flex-shrink: 0;
        }
        .ab-filter {
            opacity: 0;
            transform: scale(0.5) translateY(-5px);
            pointer-events: none;
            max-width: 0;
            padding-left: 0;
            padding-right: 0;
            margin: 0;
            overflow: hidden;
            transition: opacity 0.3s ease, transform 0.3s ease, max-width 0.3s ease, padding 0.3s ease;
        }
        .arena-bar.expanded .ab-filter {
            opacity: 1;
            transform: scale(1) translateY(0);
            pointer-events: auto;
            max-width: 160px;
            padding-left: 12px;
            padding-right: 12px;
        }
        
        /* SEARCH + SORT CONTROLS - slide down on expand */
        .arena-bar-controls {
            display: flex;
            align-items: center;
            gap: 10px;
            flex: 1;
            min-width: 0;
            transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                        opacity 0.3s ease;
        }
        .arena-bar.expanded .arena-bar-controls {
            transform: translateY(52px);
        }
        
        .ab-search {
            flex: 1;
            min-width: 0;
            padding: 8px 16px;
            background: rgba(255, 255, 255, 0.04);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 60px;
            color: #e7e9ea;
            font-size: 13px;
            outline: none;
            transition: border-color 0.3s ease, box-shadow 0.3s ease;
        }
        .ab-search:focus {
            border-color: rgba(29, 161, 242, 0.5);
            box-shadow: 0 0 12px rgba(29, 161, 242, 0.15);
        }
        .ab-search::placeholder {
            color: #555;
        }
        .ab-sort {
            flex-shrink: 0;
            padding: 8px 14px;
            background: rgba(255, 255, 255, 0.04);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 60px;
            color: #e7e9ea;
            font-size: 13px;
            cursor: pointer;
            outline: none;
            transition: border-color 0.3s ease;
        }
        .ab-sort:hover {
            border-color: rgba(29, 161, 242, 0.4);
        }
        
        /* BOTTOM ROW - marketplace stats, slides in */
        .arena-bar-row-bottom {
            max-height: 0;
            opacity: 0;
            overflow: hidden;
            transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                        opacity 0.3s ease 0.1s;
        }
        .arena-bar.expanded .arena-bar-row-bottom {
            max-height: 60px;
            opacity: 1;
            margin-top: 8px;
        }
        .ab-mp-info {
            display: flex;
            align-items: center;
            gap: 15px;
        }
        
        /* MARKETPLACE PANEL - no longer needed */
        .marketplace-panel {
            display: none;
        }
        .mp-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 15px;
            flex-wrap: wrap;
        }
        .mp-filters {
            display: flex;
            gap: 6px;
        }
        .mp-stats {
            display: flex;
            align-items: center;
            gap: 0;
        }
        .mp-stat {
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 0 14px;
        }
        .mp-stat-label {
            font-size: 10px;
            color: #555;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .mp-stat-value {
            font-size: 13px;
            color: #1da1f2;
            font-weight: 800;
            font-family: 'Courier New', monospace;
        }
        .mp-stat-divider {
            width: 1px;
            height: 18px;
            background: rgba(255, 255, 255, 0.08);
        }
        .mp-sort {
            background: rgba(255, 255, 255, 0.04);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 8px;
            padding: 5px 12px;
            color: #e7e9ea;
            font-size: 11px;
            cursor: pointer;
            outline: none;
            transition: border-color 0.3s ease;
        }
        .mp-sort:hover {
            border-color: rgba(29, 161, 242, 0.4);
        }
        .mode-toggle { display: none; }
        .arena-tab {
            padding: 10px 24px;
            font-size: 14px;
            font-weight: 600;
            color: #71767b;
            background: transparent;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            transition: color 0.2s ease, background 0.2s ease;
        }
        .arena-tab:hover {
            color: #e7e9ea;
            background: rgba(255,255,255,0.05);
        }
        .arena-tab.active {
            color: #e7e9ea;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
        }
        #characters.marketplace-mode .character {
            position: relative;
        }
        .character-number {
            position: absolute;
            bottom: 8px;
            left: 8px;
            background: rgba(0, 0, 0, 0.8);
            color: #fff;
            padding: 4px 8px;
            border-radius: 4px;
            font-size: 11px;
            font-weight: 900;
            z-index: 10;
        }
        .character-badge {
            position: absolute;
            top: 8px;
            right: 8px;
            font-size: 20px;
            z-index: 10;
            filter: drop-shadow(0 2px 4px rgba(0,0,0,0.8));
        }
        
        /* CHARACTER DETAIL MODAL */
        .character-modal {
            display: none;
        }
        .character-modal.active {
            display: block;
        }
        .character-modal-content {
            background: transparent;
            border: none;
            position: relative;
        }
        .character-modal-header {
            padding: 20px;
            border-bottom: 1px solid #38414a;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .character-modal-close {
            background: none;
            border: none;
            color: #71767b;
            font-size: 24px;
            cursor: pointer;
            padding: 5px 10px;
            transition: color 0.3s ease;
        }
        .character-modal-close:hover {
            color: #e7e9ea;
        }
        .character-detail-container {
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 16px;
            padding: 30px;
            display: grid;
            grid-template-columns: 350px 1px 1fr;
            gap: 30px;
        }
        .character-detail-left {
            display: flex;
            flex-direction: column;
            gap: 15px;
        }
        .character-detail-divider {
            background: #38414a;
            width: 1px;
        }
        .character-detail-right {
            display: flex;
            flex-direction: column;
            gap: 15px;
        }
        .history-list {
            max-height: 300px;
            overflow-y: auto;
            margin-top: 15px;
            padding-right: 5px;
        }
        .history-list::-webkit-scrollbar {
            width: 6px;
        }
        .history-list::-webkit-scrollbar-track {
            background: rgba(56, 65, 74, 0.3);
            border-radius: 3px;
        }
        .history-list::-webkit-scrollbar-thumb {
            background: #1da1f2;
            border-radius: 3px;
        }
        .character-modal-body {
            padding: 30px;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 30px;
        }
        .character-detail-gif {
            width: 250px;
            height: 250px;
            object-fit: cover;
            border-radius: 12px;
            border: 3px solid #38414a;
        }
        .character-detail-gif.alive {
            border-color: #00ff00;
            box-shadow: 0 0 20px rgba(0, 255, 0, 0.4);
        }
        .character-detail-gif.dead {
            border-color: #ff4444;
            box-shadow: 0 0 20px rgba(255, 68, 68, 0.4);
        }
        .character-nav {
            display: flex;
            gap: 10px;
            margin-top: 15px;
            justify-content: center;
            width: 250px;
        }
        .character-nav-btn {
            padding: 10px 20px;
            background: rgba(29, 161, 242, 0.1);
            border: 1px solid rgba(29, 161, 242, 0.3);
            border-radius: 8px;
            color: #1da1f2;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .character-nav-btn:hover:not(:disabled) {
            background: rgba(29, 161, 242, 0.2);
            border-color: #1da1f2;
        }
        .character-nav-btn:disabled {
            opacity: 0.3;
            cursor: not-allowed;
        }
        .character-detail-title {
            font-size: 24px;
            font-weight: 900;
            color: #e7e9ea;
            margin-bottom: 5px;
        }
        .character-detail-subtitle {
            font-size: 14px;
            color: #71767b;
            margin-bottom: 20px;
        }
        .character-stats-section {
            margin-bottom: 25px;
        }
        .character-stats-title {
            font-size: 12px;
            font-weight: 700;
            color: #71767b;
            text-transform: uppercase;
            letter-spacing: 1px;
            margin-bottom: 12px;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .character-stat-item {
            padding: 8px 0;
            border-bottom: 1px solid rgba(56, 65, 74, 0.3);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .character-stat-label {
            color: #71767b;
            font-size: 13px;
        }
        .character-stat-value {
            color: #e7e9ea;
            font-size: 14px;
            font-weight: 700;
        }
        .character-stat-value.success {
            color: #00ff00;
        }
        .character-stat-value.danger {
            color: #ff4444;
        }
        .character-history-item {
            padding: 6px 0;
            font-size: 13px;
            color: #71767b;
        }
        .character-history-item.survived {
            color: #00ff00;
        }
        .character-history-item.eliminated {
            color: #ff4444;
        }
        .pack-action-btn {
            width: 100%;
            padding: 15px;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
            border: none;
            border-radius: 12px;
            color: white;
            font-size: 14px;
            font-weight: 900;
            cursor: pointer;
            transition: all 0.3s ease;
            margin-top: 10px;
        }
        .pack-action-btn:hover {
            transform: scale(1.02);
            box-shadow: 0 4px 20px rgba(29, 161, 242, 0.4);
        }
        .pack-action-btn.secondary {
            background: rgba(29, 161, 242, 0.1);
            border: 1px solid rgba(29, 161, 242, 0.3);
            color: #1da1f2;
        }
        .pack-name-overlay {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            text-align: center;
            color: #fff;
            font-size: 11px;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            z-index: 10;
            padding: 6px 4px;
            background: linear-gradient(transparent, rgba(0,0,0,0.85));
            display: none;
        }
        .pack-labels-visible .pack-name-overlay {
            display: block;
            transition: opacity 0.3s ease;
        }
        
        /* MARKETPLACE LOCK OVERLAY */
        .marketplace-lock-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.82);
            z-index: 2000;
            display: none;
            align-items: center;
            justify-content: center;
        }
        .marketplace-lock-overlay.active {
            display: flex;
        }
        .lock-message {
            max-width: 580px;
            width: 90vw;
            transform: scale(1.1);
            transform-origin: center center;
        }
        
        /* === LOCK SCREEN - UNIFIED DESIGN === */
        .lock-design-a {
            display: flex;
            flex-direction: column;
            background: #12141a;
            border: 2px solid #ff4444;
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 0 40px rgba(255,68,68,0.2), 0 0 80px rgba(255,68,68,0.1);
        }
        /* Header strip */
        .lock-design-a .lock-header-strip {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            padding: 14px 28px;
            position: relative;
        }
        .lock-design-a .lock-header-strip::after {
            content: '';
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            height: 1px;
            background: #2f3336;
        }
        .lock-header-strip .lh-lock { font-size: 16px; }
        .lock-header-strip .lh-title {
            font-size: 13px;
            font-weight: 800;
            color: #ff4444;
            text-transform: uppercase;
            letter-spacing: 2px;
            text-shadow: 0 0 12px rgba(255,68,68,0.4);
        }
        /* Tweet area - full width */
        .lock-design-a .lock-hero-tweet {
            padding: 28px 28px 24px;
        }
        .lock-hero-tweet .lh-header {
            display: flex;
            align-items: center;
            gap: 14px;
            margin-bottom: 18px;
        }
        .lock-hero-tweet .lh-avatar {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
            flex-shrink: 0;
        }
        .lock-hero-tweet .lh-name {
            font-weight: 700;
            font-size: 15px;
            color: #e7e9ea;
        }
        .lock-hero-tweet .lh-handle {
            font-size: 13px;
            color: #71767b;
        }
        .lock-hero-tweet .lh-text {
            color: #e7e9ea;
            font-size: 20px;
            line-height: 1.4;
        }
        /* Tweet text */
        /* Bottom row */
        .lock-design-a .lock-bottom-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0;
            position: relative;
        }
        .lock-design-a .lock-bottom-row::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 1px;
            background: #2f3336;
        }
        .lock-bottom-row {
            /* fallback */
        }
        .lock-bottom-var { display: none; }
        .lock-bottom-var.active { display: flex; width: 100%; }
        
        /* VAR 1: Centered stack */
        .lock-var1 {
            flex-direction: column;
            align-items: center;
            gap: 8px;
            padding: 20px 36px;
        }
        .lock-var1 .lv-method {
            display: flex;
            align-items: center;
            gap: 10px;
        }
        .lock-var1 .lv-method-icon { font-size: 18px; }
        .lock-var1 .lv-method-name {
            font-size: 13px;
            font-weight: 800;
            color: #ff4444;
            text-transform: uppercase;
            letter-spacing: 1px;
            text-shadow: 0 0 12px rgba(255,68,68,0.4);
        }
        .lock-var1 .lv-count {
            font-size: 28px;
            font-weight: 800;
            color: #ff4444;
            font-variant-numeric: tabular-nums;
            text-shadow: 0 0 15px rgba(255,68,68,0.5);
            transition: color 0.3s, text-shadow 0.3s;
        }
        .lock-var1 .lv-count.respawning {
            color: #00ff88;
            text-shadow: 0 0 15px rgba(0,255,136,0.5);
        }
        .lock-var1 .lv-count.flash {
            color: #00ff88;
            text-shadow: 0 0 20px rgba(0,255,136,0.7);
            animation: survivorPulse 0.5s ease infinite;
        }
        
        /* VAR 2: Three equal columns with dividers */
        .lock-var2 {
            align-items: stretch;
            padding: 0;
        }
        .lock-var2 .lv-col {
            flex: 1 1 0%;
            width: 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 4px;
            padding: 16px 8px;
            text-align: center;
            position: relative;
        }
        .lock-var2 .lv-col + .lv-col::before {
            content: '';
            position: absolute;
            left: 0;
            top: 25%;
            bottom: 25%;
            width: 1px;
            background: #2f3336;
        }
        .lock-var2 .lv-method {
            display: flex;
            align-items: center;
            gap: 3px;
        }
        .lock-var2 .lv-method-icon { font-size: 16px; }
        .lock-var2 .lv-method-name {
            font-size: 12px;
            font-weight: 700;
            color: #e7e9ea;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .lock-var2 .lv-count {
            font-size: 22px;
            font-weight: 800;
            color: #ff4444;
            font-variant-numeric: tabular-nums;
            text-shadow: 0 0 12px rgba(255,68,68,0.5);
            transition: color 0.3s, text-shadow 0.3s;
        }
        .lock-var2 .lv-count.respawning {
            color: #00ff88;
            text-shadow: 0 0 12px rgba(0,255,136,0.5);
        }
        .lock-var2 .lv-count.flash {
            color: #00ff88;
            text-shadow: 0 0 20px rgba(0,255,136,0.7);
            animation: survivorPulse 0.5s ease infinite;
        }
        .lock-var2 .lv-status-text {
            font-size: 11px;
            font-weight: 700;
            color: #71767b;
            text-transform: uppercase;
            letter-spacing: 1px;
            text-align: center;
        }
        
        /* VAR 3: Full-width ticker */
        .lock-var3 {
            align-items: center;
            justify-content: center;
            gap: 20px;
            padding: 16px 36px;
            flex-wrap: wrap;
        }
        .lock-var3 .lv-method {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 6px 16px;
            background: rgba(255,68,68,0.08);
            border: 1px solid rgba(255,68,68,0.2);
            border-radius: 20px;
        }
        .lock-var3 .lv-method-icon { font-size: 16px; }
        .lock-var3 .lv-method-name {
            font-size: 13px;
            font-weight: 800;
            color: #ff4444;
            text-transform: uppercase;
            letter-spacing: 1px;
            text-shadow: 0 0 12px rgba(255,68,68,0.4);
        }
        .lock-var3 .lv-status {
            font-size: 13px;
            font-weight: 800;
            color: #ff4444;
            text-shadow: 0 0 12px rgba(255,68,68,0.4);
        }
        .lock-var3 .lv-count {
            font-size: 22px;
            font-weight: 800;
            color: #ff4444;
            font-variant-numeric: tabular-nums;
            text-shadow: 0 0 12px rgba(255,68,68,0.5);
            transition: color 0.3s, text-shadow 0.3s;
        }
        .lock-var3 .lv-count.respawning {
            color: #00ff88;
            text-shadow: 0 0 12px rgba(0,255,136,0.5);
        }
        .lock-var3 .lv-count.flash {
            color: #00ff88;
            text-shadow: 0 0 20px rgba(0,255,136,0.7);
            animation: survivorPulse 0.5s ease infinite;
        }
        
        @keyframes survivorPulse {
        }
        .lock-info-row .li-sub {
            font-size: 11px;
            color: #71767b;
        }
        
        @keyframes survivorPulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.08); }
        }
        @keyframes shake {
            0% { transform: translate(0, 0) rotate(0deg); }
            10% { transform: translate(-4px, 3px) rotate(-1deg); }
            20% { transform: translate(5px, -4px) rotate(1.5deg); }
            30% { transform: translate(-5px, -3px) rotate(-1.5deg); }
            40% { transform: translate(4px, 5px) rotate(1deg); }
            50% { transform: translate(-3px, -5px) rotate(-1deg); }
            60% { transform: translate(5px, 3px) rotate(1.5deg); }
            70% { transform: translate(-4px, 4px) rotate(-1.5deg); }
            80% { transform: translate(3px, -5px) rotate(1deg); }
            90% { transform: translate(-5px, 3px) rotate(-1deg); }
            100% { transform: translate(0, 0) rotate(0deg); }
        }
        @keyframes lockShake {
            0% { transform: scale(1.1) translate(0, 0) rotate(0deg); }
            10% { transform: scale(1.1) translate(-4px, 3px) rotate(-1deg); }
            20% { transform: scale(1.1) translate(5px, -4px) rotate(1.5deg); }
            30% { transform: scale(1.1) translate(-5px, -3px) rotate(-1.5deg); }
            40% { transform: scale(1.1) translate(4px, 5px) rotate(1deg); }
            50% { transform: scale(1.1) translate(-3px, -5px) rotate(-1deg); }
            60% { transform: scale(1.1) translate(5px, 3px) rotate(1.5deg); }
            70% { transform: scale(1.1) translate(-4px, 4px) rotate(-1.5deg); }
            80% { transform: scale(1.1) translate(3px, -5px) rotate(1deg); }
            90% { transform: scale(1.1) translate(-5px, 3px) rotate(-1deg); }
            100% { transform: scale(1.1) translate(0, 0) rotate(0deg); }
        }
        @keyframes violentShake {
            0% { transform: translate(0, 0); }
            10% { transform: translate(-6px, 4px); }
            20% { transform: translate(5px, -6px); }
            30% { transform: translate(-7px, -3px); }
            40% { transform: translate(6px, 5px); }
            50% { transform: translate(-4px, -7px); }
            60% { transform: translate(7px, 3px); }
            70% { transform: translate(-5px, 6px); }
            80% { transform: translate(4px, -5px); }
            90% { transform: translate(-6px, 4px); }
            100% { transform: translate(0, 0); }
        }
        .character.death-flash {
            animation: deathFlash 0.15s ease-out !important;
        }
        @keyframes deathFlash {
            0% { filter: brightness(3) saturate(0); }
            50% { filter: brightness(2) saturate(0.5); }
            100% { filter: brightness(1) saturate(1); }
        }
        
        @keyframes reloadSnap {
            0% { transform: translateX(0); }
            30% { transform: translateX(-40px); }
            50% { transform: translateX(-40px); }
            100% { transform: translateX(0); }
        }
        body.reload-snap {
            animation: reloadSnap 0.35s ease-out !important;
            overflow-x: visible !important;
        }
        body.reload-snap .dj-controls,
        body.reload-snap #floating-chat,
        body.reload-snap #bottom-bar {
            display: none !important;
        }
        html:has(body.reload-snap) {
            overflow-x: hidden !important;
        }
        
        /* PACK REFRESHING OVERLAY */
        .pack-refreshing {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background: #16181c;
            border: 2px solid #1da1f2;
            border-radius: 16px;
            padding: 30px 50px;
            z-index: 1500;
            display: none;
            text-align: center;
        }
        .pack-refreshing.active {
            display: block;
        }
        .refresh-icon {
            font-size: 48px;
            animation: spin 1s linear infinite;
        }
        @keyframes spin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }
        .refresh-text {
            font-size: 18px;
            font-weight: 700;
            color: #1da1f2;
            margin-top: 15px;
        }
        
        /* PACK DETAIL VIEW */
        .pack-detail-header {
            display: none !important;
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 16px;
            padding: 15px 20px;
            margin-bottom: 20px;
            display: none;
            flex-direction: column;
            gap: 12px;
            box-sizing: border-box;
        }
        .pack-detail-header.active {
            display: flex;
        }
        .pack-stat-inline {
            color: #71767b;
            font-size: 14px;
            display: flex;
            align-items: center;
            gap: 5px;
        }
        .pack-stat-inline .pack-stat-value {
            color: #e7e9ea;
            font-weight: 700;
        }
        .buy-pack-btn-inline {
            margin-left: auto;
            padding: 10px 24px;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
            border: none;
            border-radius: 12px;
            color: white;
            font-size: 14px;
            font-weight: 900;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .buy-pack-btn-inline:hover {
            transform: scale(1.05);
            box-shadow: 0 4px 20px rgba(29, 161, 242, 0.4);
        }
        .back-btn {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 8px 16px;
            background: rgba(29, 161, 242, 0.1);
            border: 1px solid rgba(29, 161, 242, 0.3);
            border-radius: 8px;
            color: #1da1f2;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
            margin-bottom: 15px;
        }
        .back-btn:hover {
            background: rgba(29, 161, 242, 0.2);
            border-color: #1da1f2;
        }
        .back-btn-inline {
            background: none;
            border: none;
            color: #71767b;
            font-size: 24px;
            cursor: pointer;
            padding: 0;
            width: 32px;
            height: 32px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            transition: all 0.3s ease;
            flex-shrink: 0;
        }
        .back-btn-inline:hover {
            background: rgba(29, 161, 242, 0.1);
            color: #1da1f2;
        }
        .pack-info-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 15px;
        }
        .pack-name {
            font-size: 28px;
            font-weight: 900;
            color: #1da1f2;
            text-transform: uppercase;
        }
        .pack-stats {
            display: flex;
            gap: 30px;
            margin: 15px 0;
        }
        .pack-stat {
            text-align: center;
        }
        .pack-stat-label {
            font-size: 11px;
            color: #71767b;
            text-transform: uppercase;
            letter-spacing: 1px;
            margin-bottom: 5px;
        }
        .pack-stat-value {
            font-size: 20px;
            font-weight: 900;
            color: #e7e9ea;
        }
        .pack-stat-value.alive {
            color: #00ff00;
        }
        .pack-stat-value.dead {
            color: #ff4444;
        }
        .buy-pack-btn {
            padding: 15px 40px;
            background: linear-gradient(135deg, #1da1f2, #14d9ff);
            border: none;
            border-radius: 50px;
            color: white;
            font-size: 16px;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 2px;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .buy-pack-btn:hover {
            transform: scale(1.05);
            box-shadow: 0 4px 20px rgba(29, 161, 242, 0.5);
        }
        
        /* Character alive/dead borders */
        .character.alive {
            border-color: #00ff00;
            box-shadow: 0 0 10px rgba(0, 255, 0, 0.3);
        }
        .character.dead {
            border-color: #ff4444;
            box-shadow: 0 0 10px rgba(255, 68, 68, 0.3);
        }
        
        /* Pagination */
        .pagination {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 15px;
            margin-top: 15px;
            padding: 15px;
        }
        .pagination-btn {
            padding: 10px 20px;
            background: rgba(29, 161, 242, 0.1);
            border: 1px solid rgba(29, 161, 242, 0.3);
            border-radius: 8px;
            color: #1da1f2;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .pagination-btn:hover:not(:disabled) {
            background: rgba(29, 161, 242, 0.2);
            border-color: #1da1f2;
        }
        .pagination-btn:disabled {
            opacity: 0.3;
            cursor: not-allowed;
        }
        .pagination-info {
            color: #e7e9ea;
            font-size: 14px;
            font-weight: 600;
        }
        
        /* AI PROMPT SUGGESTIONS */
        .ai-suggestions {
            margin-top: 15px;
        }
        .ai-suggestion-buttons {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
        }
        .ai-suggestion-btn {
            padding: 6px 12px;
            background: rgba(29, 161, 242, 0.05);
            border: 1px solid rgba(29, 161, 242, 0.2);
            border-radius: 20px;
            color: #1da1f2;
            font-size: 11px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .ai-suggestion-btn:hover {
            background: rgba(29, 161, 242, 0.15);
            border-color: #1da1f2;
        }
        .typing-cursor {
            display: inline-block;
            width: 2px;
            height: 14px;
            background: #1da1f2;
            margin-left: 2px;
            animation: blink 1s infinite;
        }
        @keyframes blink {
            0%, 49% { opacity: 1; }
            50%, 100% { opacity: 0; }
        }
        
        /* BOX DEATH ANIMATION */
        @keyframes boxDie {
            0% { transform: scale(1); opacity: 1; }
            15% { transform: scale(1.03) rotate(-0.5deg); border-color: #ff4444; box-shadow: 0 0 30px rgba(255, 68, 68, 0.5); }
            30% { transform: scale(1.03) rotate(0.5deg); }
            45% { transform: scale(1.02) rotate(-0.5deg); }
            60% { transform: scale(1.01); opacity: 1; }
            100% { transform: scale(0.8) translateY(20px); opacity: 0; }
        }
        @keyframes boxRevive {
            0% { transform: scale(0.8) translateY(20px); opacity: 0; }
            50% { transform: scale(1.03); opacity: 0.8; }
            100% { transform: scale(1); opacity: 1; }
        }
        .box-dying {
            animation: boxDie 0.6s ease-out forwards;
            pointer-events: none;
        }
        .box-dead {
            display: none !important;
        }
        .box-reviving {
            animation: boxRevive 0.5s ease-out forwards;
        }
        
        /* Arena marketplace rise */
        @keyframes arenaRise {
            0% { transform: translateY(30px); opacity: 0.3; }
            100% { transform: translateY(0); opacity: 1; }
        }
        .arena-rising {
            animation: arenaRise 0.4s ease-out forwards;
        }
        
        /* Arena marketplace fade out */
        @keyframes arenaFade {
            0% { opacity: 1; }
            100% { opacity: 0; transform: translateY(10px); }
        }
        .arena-fading {
            animation: arenaFade 0.3s ease-out forwards;
        }
        
        /* DEATH SKULL OVERLAY */
        .death-skull-overlay {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%) scale(0);
            font-size: 80px;
            z-index: 100;
            opacity: 0;
            pointer-events: none;
            filter: drop-shadow(0 0 20px rgba(255, 68, 68, 0.8));
            transition: none;
        }
        .death-skull-overlay.active {
            animation: skullPop 0.8s ease-out forwards;
        }
        @keyframes skullPop {
            0% { transform: translate(-50%, -50%) scale(0) rotate(-20deg); opacity: 0; }
            30% { transform: translate(-50%, -50%) scale(1.4) rotate(10deg); opacity: 1; }
            50% { transform: translate(-50%, -50%) scale(1.1) rotate(-5deg); opacity: 1; }
            100% { transform: translate(-50%, -50%) scale(0.5) rotate(0deg); opacity: 0; }
        }
        
        /* MARKETPLACE HERO - replaces dead boxes */
        @keyframes mpRise {
            0% { transform: translateY(30px); opacity: 0; }
            100% { transform: translateY(0); opacity: 1; }
        }
        .marketplace-hero {
            display: none;
            flex: 1;
            min-width: 0;
        }
        .marketplace-hero.active {
            display: flex;
            flex-direction: column;
            gap: 20px;
            animation: mpRise 0.5s ease-out forwards;
        }
        .mp-hero-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 15px;
        }
        .mp-hero-pack {
            background: #16181c;
            border: 1px solid #38414a;
            border-radius: 16px;
            padding: 15px;
            cursor: pointer;
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }
        .mp-hero-pack:hover {
            border-color: #1da1f2;
            box-shadow: 0 4px 20px rgba(29, 161, 242, 0.2);
            transform: translateY(-3px);
        }
        .mp-hero-pack-img {
            width: 100%;
            aspect-ratio: 1;
            border-radius: 10px;
            object-fit: cover;
            margin-bottom: 10px;
        }
        .mp-hero-pack-name {
            font-size: 13px;
            font-weight: 800;
            color: #e7e9ea;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 4px;
        }
        .mp-hero-pack-info {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .mp-hero-pack-price {
            font-size: 12px;
            font-weight: 700;
            color: #1da1f2;
        }
        .mp-hero-pack-count {
            font-size: 11px;
            color: #71767b;
        }
        .mp-hero-pack-badge {
            position: absolute;
            top: 10px;
            right: 10px;
            padding: 3px 8px;
            border-radius: 10px;
            font-size: 10px;
            font-weight: 800;
            text-transform: uppercase;
        }
        .mp-hero-pack-badge.hot {
            background: rgba(255, 68, 68, 0.2);
            color: #ff4444;
        }
        .mp-hero-pack-badge.new {
            background: rgba(29, 161, 242, 0.2);
            color: #1da1f2;
        }
        .mp-hero-pack-badge.rare {
            background: rgba(255, 165, 0, 0.2);
            color: #ffa500;
        }

        /* ============================================================
           1K LAUNCH VERSION — gated by ?1k=1
           Started as the cohesion preview (white-tint glass + warm
           red→gold accents replacing Twitter blue leftovers). Now also
           the umbrella flag for the underground-rave / 1000-character
           launch — future 1k-specific changes (supply numbers, copy,
           layout) go here too.
           Toggle: append ?1k=1 to the URL.
        ============================================================ */
        /* DON'T display:none .char-bg — chaos shake paints radial-gradient
           onto it during scroll-up. Hiding it = black boxes on scroll-up.
           See arena_center_system.md / commit 0aa6371. Pack bg leak under
           v1k is covered by chaos gradient (scroll-up) and cube-top WebM+
           gradient (scroll-down). */

        /* === v1k page background — burnt industrial / dark club wall === */
        /* Replace the live blue-purple gradient with a warm-tinted dark
           base + low-opacity orange-red glow blooms. Applied to body AND
           .top-giphy-nav so the header doesn't break the palette. The
           html element's gradient is hidden behind these via fixed bg. */
        html:has(body.v1k) {
            background: #000 !important;
            --t: 1 !important;
        }
        body.v1k,
        body.v1k .top-giphy-nav {
            background: #000 !important;
            background-attachment: fixed !important;
        }
        body.v1k::before, body.v1k::after { display: none !important; }
        /* Land directly on mint mode under v1k — hide the intro section
           (tweet/kill-status/fun-panel/etc.) entirely so the app-shell
           is the page from load. */
        body.v1k .info-bar,
        body.v1k .top-gifs-section {
            display: none !important;
        }
        /* v1k: the mint view IS the top of the page. Remove the dead invisible site-header and
           the container's top padding, and snap the sticky app-shell to pixel 0 — so there's no
           empty gap above the mint view. (Safe now: no intro, and updateT skips the scroll
           machinery under v1k, so the old display:none scroll-bounce can't happen.) */
        body.v1k #site-header { display: none !important; }
        body.v1k .container { padding-top: 0 !important; }
        body.v1k.layout-fullbleed .app-shell { top: 0 !important; }
        /* Stacking — keep app content above the pseudo overlays */
        body.v1k > * {
            position: relative;
            z-index: 1;
        }

        /* Rail panel under v1k — burnt-orange frame via 9-slice
           border-image. Source PNG (724x2172, aspect ~1:3) wraps the
           tall narrow rail (~92x695, aspect ~1:7.5). border-image
           keeps corners sharp; only the middle stretches vertically. */
        body.v1k .mode-rail {
            background: transparent !important;
            border: 14px solid transparent !important;
            border-image-source: url(/fun/rail_frame.png) !important;
            border-image-slice: 120 fill !important;
            border-image-width: 14px !important;
            border-image-repeat: stretch !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            position: relative !important;
        }
        /* Sliding active indicator — train on tracks. Spans full rail width.
           Position via --active-y per active state, stretches via tool vars. */
        body.v1k #mode-rail {
            --slot-step: calc((100% - 48px) / 6 + 8px);
            --active-y: 4px;
            --ind-left: -14px;
            --ind-right: -14px;
            --ind-y-offset: 0px;
            --ind-top-stretch: 16px;
            --ind-bot-stretch: 45px;
            /* Responsive icon/label sizing — PROPORTIONAL to viewport height so icons stay the
               same relative size on every screen (calibrated: 6.53vh = 48px at 735px height, the
               size that looks perfect; was clamp(48,5vh,78) which floored small + capped on big
               screens → icons looked smaller on bigger monitors). Per-slot multiplier on top. */
            --icon-base: clamp(32px, 6.53vh, 160px);
            --label-size: calc(var(--icon-base) * 0.22);
            --icon-gap: calc(var(--icon-base) * 0.18);
        }
        body.v1k .mode-item { gap: var(--icon-gap) !important; }
        body.v1k .mode-item .ico {
            flex: 0 0 auto !important;
            width: calc(var(--icon-base) * var(--icon-scale, 1)) !important;
            height: calc(var(--icon-base) * var(--icon-scale, 1)) !important;
            max-height: none !important;
            aspect-ratio: 1 / 1 !important;
        }
        body.v1k .mode-item .ico > img,
        body.v1k .mode-item .ico > svg {
            width: 100% !important;
            height: 100% !important;
            object-fit: contain !important;
        }
        body.v1k .mode-item .label {
            font-size: var(--label-size) !important;
        }
        /* Per-slot icon scale multipliers (tuned via _v1kIconSizeTool) */
        body.v1k #mr-market    { --icon-scale: 1.10; }
        body.v1k #mr-create    { --icon-scale: 0.93; }
        body.v1k #mr-ring      { --icon-scale: 1.10; }
        body.v1k #mr-mint      { --icon-scale: 1.10; }
        body.v1k #mr-fun       { --icon-scale: 1.10; }
        body.v1k #mr-whitelist { --icon-scale: 0.99; }
        /* PNG icon color — idle state (tuned via _v1kIconColorTool) */
        body.v1k .mode-item .ico > img {
            filter: hue-rotate(-29deg) saturate(90%) brightness(72%) opacity(100%);
            transition: filter 0.3s ease;
        }
        /* Per-icon brightness override — Secret tuned via Rail icon slider */
        body.v1k .mode-item#mr-whitelist .ico > img {
            filter: hue-rotate(-29deg) saturate(90%) brightness(69%) opacity(100%);
        }
        /* Candy icon — full 360° color-spectrum sweep, seamless loop.
           0° → 360° is the SAME color at both ends, so the loop has NO reset jump. */
        @keyframes v1k-candy-hue {
            from { filter: hue-rotate(0deg)   saturate(100%) brightness(100%) opacity(100%); }
            to   { filter: hue-rotate(360deg) saturate(100%) brightness(100%) opacity(100%); }
        }
        body.v1k .mode-item#mr-create .ico > img {
            animation: v1k-candy-hue 10s linear infinite !important;
        }
        /* Active state — natural color (overlay highlights it) */
        body.v1k .mode-item.active .ico > img {
            filter: hue-rotate(0deg) saturate(100%) brightness(100%) opacity(100%);
        }
        /* Secret's ID-level idle override above out-specifies the shared .active rule,
           so it never got the active hue-shift. Restore it with matching ID specificity. */
        body.v1k .mode-item#mr-whitelist.active .ico > img {
            filter: hue-rotate(0deg) saturate(100%) brightness(100%) opacity(100%);
        }
        /* Game-bar stats: dim the values a touch (tuned via _v1kGameBarStatTool) */
        body.v1k #mint-stats .mint-stat .v {
            filter: brightness(80%);
        }
        /* Hide sub-text in stat row (e.g. "total characters") — visual experiment */
        body.v1k #mint-stats .mint-stat .sub {
            display: none !important;
        }
        /* Tweet card colors — name + text tuned via _v1kTweetTool */
        body.v1k .tweet-name,
        body.v1k .lh-name,
        body.v1k .idle-tweet-name {
            color: #d5bbaa !important;
            font-size: var(--a2-tweet-name-size, 14px) !important;
        }
        body.v1k .tweet-content,
        body.v1k .lh-text,
        body.v1k .idle-tweet-text,
        body.v1k .tension-tweet-content,
        body.v1k #tweet-text,
        body.v1k #tension-tweet-text,
        body.v1k #idle-tweet-text,
        body.v1k #arena-tweet-text {
            color: #f4caae !important;
        }
        body.v1k #mode-rail:has(.mode-item:nth-child(2).active) { --active-y: 4px; }
        body.v1k #mode-rail:has(.mode-item:nth-child(3).active) { --active-y: calc(4px + var(--slot-step)); }
        body.v1k #mode-rail:has(.mode-item:nth-child(4).active) { --active-y: calc(4px + 2 * var(--slot-step)); }
        body.v1k #mode-rail:has(.mode-item:nth-child(5).active) { --active-y: calc(4px + 3 * var(--slot-step)); }
        body.v1k #mode-rail:has(.mode-item:nth-child(6).active) { --active-y: calc(4px + 4 * var(--slot-step)); }
        body.v1k #mode-rail:has(.mode-item:nth-child(7).active) { --active-y: calc(4px + 5 * var(--slot-step)); --ind-bot-stretch: 62px; }
        body.v1k .rail-indicator {
            position: absolute;
            top: calc(var(--active-y) - var(--ind-top-stretch, 0px) + var(--ind-y-offset, 0px));
            bottom: calc(100% - var(--active-y) - (100% - 48px) / 6 - var(--ind-bot-stretch, 0px) - var(--ind-y-offset, 0px));
            left: var(--ind-left, -14px);
            right: var(--ind-right, -14px);
            background: url(/fun/rail_icon_hover.png) center/100% 100% no-repeat;
            transition:
                top var(--ind-trans, 0.4s) cubic-bezier(0.65, 0, 0.35, 1),
                bottom var(--ind-trans, 0.4s) cubic-bezier(0.65, 0, 0.35, 1),
                left 0.2s ease,
                right 0.2s ease;
            pointer-events: none;
            z-index: 0;
        }
        body.v1k .mode-item {
            position: relative;
            z-index: 1;
        }
        body.v1k .mode-item:hover {
            background: transparent !important;
        }
        /* Character number labels under v1k */
        body.v1k .mint2-pack-label {
            color: #b89b8e !important;
            opacity: 1 !important;
            font-size: 13px !important;
            font-weight: 700 !important;
            text-align: center !important;
        }
        /* Remove inner dividers in the mint panel (title underline + price top line) */
        body.v1k #mint2-panel .v1k-titleblock { border-bottom: 0 !important; }
        body.v1k #mint2-panel .v1k-pricerow { border-top: 0 !important; }

        /* Rail icon + label colors */
        body.v1k .mode-item {
            color: #dc8f5b !important;
        }
        body.v1k .mode-item .label {
            color: #cb714d !important;
        }
        body.v1k .mode-item.active .label {
            color: #ff7a1f !important;
        }
        /* Rail active state — bg handled by sliding .rail-indicator */
        body.v1k .mode-item.active {
            color: #ff7a1f !important;
            background: transparent !important;
            border-color: transparent !important;
            box-shadow: none !important;
        }
        /* Top stat card labels + values — warm off-white labels, hot
           orange-red values with glow */
        body.v1k .mint-stat .k {
            color: #d4b8a8 !important;
            font-family: 'Oxanium', ui-monospace, SFMono-Regular, Menlo, monospace !important;
            font-weight: 500 !important;
            font-size: 9px !important;
            letter-spacing: 0.18em !important;
            text-transform: uppercase !important;
        }
        body.v1k .mint-stat .v {
            color: #ff4a1f !important;
            background: none !important;
            -webkit-text-fill-color: #ff4a1f !important;
            text-shadow: 0 0 6px rgba(255, 74, 31, 0.38) !important;
            font-family: 'Oxanium', ui-monospace, SFMono-Regular, Menlo, monospace !important;
            font-weight: 700 !important;
        }
        /* cube-top has a solid bg color (#1a1a2e) baked in at line ~3046
           which covers the .char-bg image behind it. Override to
           transparent under v1k so per-slot pack bgs show through. */
        body.v1k .character .cube-top {
            background: transparent !important;
        }

        /* Character card frame — dark recessed display window.
           Environment WebM provides the orange atmosphere, not the border. */
        body.v1k .character {
            border: 1px solid rgba(204, 66, 20, 0.20) !important;
            border-radius: 10px !important;
            box-shadow: none !important;
            transition: border-color 0.18s ease !important;
        }
        body.v1k .character:hover {
            border-color: rgba(0, 0, 0, 0.75) !important;
            box-shadow: none !important;
        }

        /* Intro flat panels → glass */
        body.v1k .tweet-box,
        body.v1k #fun-panel,
        body.v1k #mint-panel,
        body.v1k #kill-status,
        body.v1k #alive-status {
            background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.02) 100%) !important;
            border: 1px solid rgba(255,255,255,0.10) !important;
            box-shadow: 0 4px 20px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.06) !important;
        }

        /* Mint2 panel under v1k — burnt-orange PNG stretched to fill.
           Aspect of panel (~1.02) is close enough to PNG (~0.92) that
           100%/100% stretch is acceptable (~11% horizontal stretch on
           grungy art is not visible). Transparent edges of the PNG
           blend invisibly into the dark v1k page bg behind the panel.
           height: 100% so the panel fills its grid cell vertically
           and matches the character grid height on the right. */
        /* Editor open (tool present): show the tweet is selectable, like other editable elements */
        body.bkf-edit .idle-tweet-name,
        body.bkf-edit .idle-tweet-text { cursor: crosshair !important; }
        body.v1k #mint2-panel {
            background: url(/fun/mint_panel_v6.png) center/100% 100% no-repeat !important;
            border: 0 !important;
            outline: 0 !important;
            border-radius: 0 !important;
            height: 100% !important;
            box-shadow: none !important;
        }
        /* 3D door-flip on mint panel — outside wrap, sibling back face */
        #v1k-mint-flip-container {
            perspective: 1800px;
            position: relative;
            height: 100%;
            /* Clamp the panel WIDTH so its art never stretches past native shape (600:590 = 1.017).
               width = height × ratio, but never wider than the available column (max-width:100%). */
            aspect-ratio: var(--mint-panel-aspect, 1.017);
            width: auto;
            max-width: 100%;
        }
        /* Registered custom property — interpolates as a number, NOT as a matrix.
           This eliminates the "every other flip goes wrong direction" matrix-decomposition bug. */
        @property --v1k-flip-rot {
            syntax: '<number>';
            inherits: false;
            initial-value: 0;
        }
        #v1k-mint-flip-container .v1k-flip-inner {
            position: relative;
            width: 100%;
            height: 100%;
            transform-style: preserve-3d;
            transform: rotateY(calc(var(--v1k-flip-rot) * 1deg));
            transition: --v1k-flip-rot 0.8s cubic-bezier(0.4, 0, 0.2, 1);
        }
        #v1k-mint-flip-container > .v1k-flip-inner > #mint2-panel,
        #v1k-mint-flip-container > .v1k-flip-inner > .v1k-flip-back {
            position: absolute !important;
            inset: 0;
            backface-visibility: hidden;
        }
        /* Disable pointer events on the hidden face so its interactive elements
           (like the mint button) don't capture cursor/clicks through the visible face */
        #v1k-mint-flip-container.flipped > .v1k-flip-inner > #mint2-panel {
            pointer-events: none;
        }
        #v1k-mint-flip-container:not(.flipped) > .v1k-flip-inner > .v1k-flip-back {
            pointer-events: none;
        }
        body.v1k .v1k-flip-back {
            background: url(/fun/mint_panel_v6.png) center/100% 100% no-repeat !important;
            border: 0 !important;
            outline: 0 !important;
            border-radius: 0 !important;
            box-shadow: none !important;
        }
        /* Socials icon hover — hue/saturate shift, no glow (non-transparent icons) */
        body.v1k .v1k-flip-back .vs-discord,
        body.v1k .v1k-flip-back .vs-x,
        body.v1k .v1k-flip-back .vs-tg,
        body.v1k .v1k-flip-back .vs-email {
            transition: filter 0.18s ease;
        }
        body.v1k .v1k-flip-back .vs-discord:hover,
        body.v1k .v1k-flip-back .vs-x:hover,
        body.v1k .v1k-flip-back .vs-tg:hover,
        body.v1k .v1k-flip-back .vs-email:hover {
            filter: hue-rotate(33deg) saturate(224%);
        }
        #v1k-mint-flip-container .v1k-flip-back {
            transform: rotateY(180deg);
        }
        body.v1k #mint2-panel .v1k-grain {
            display: none !important;
        }

        /* Mint2 CTA button: cyan → warm */
        body.v1k #mint2-btn {
            background: linear-gradient(135deg, #ff4444, #ffcc00) !important;
        }

        /* Mint2 size pill (default: cyan tinted) → neutral, then active variant warm */
        body.v1k .mint2-size-btn {
            background: rgba(255,255,255,0.04) !important;
            border-color: rgba(255,255,255,0.14) !important;
            color: #e7e9ea !important;
        }
        body.v1k .mint2-size-btn.active {
            background: rgba(255,68,68,0.18) !important;
            border-color: rgba(255,204,0,0.45) !important;
            color: #ffcc00 !important;
        }

        /* Intro stat-box cyan tint → glass */
        body.v1k .stat-box {
            background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.02) 100%);
            border: 1px solid rgba(255,255,255,0.10);
        }

        /* Persona pills, swap-section, token-selector cyan → neutral, hover/active warm */
        body.v1k .persona-pill,
        body.v1k .swap-section-compact,
        body.v1k .token-selector-compact {
            background: rgba(255,255,255,0.04) !important;
            border-color: rgba(255,255,255,0.12) !important;
        }
        body.v1k .persona-pill:hover {
            background: rgba(255,204,0,0.08) !important;
            border-color: rgba(255,204,0,0.30) !important;
        }
        body.v1k .persona-pill.active {
            background: linear-gradient(135deg, #ff4444, #ffcc00) !important;
            color: #fff !important;
            border-color: transparent !important;
        }

        /* h1 cyan gradient → red→gold */
        body.v1k h1 {
            background: linear-gradient(90deg, #ff4444, #ffcc00) !important;
            -webkit-background-clip: text !important;
            background-clip: text !important;
            -webkit-text-fill-color: transparent !important;
        }

        /* Top-link hover/active: cyan → warm */
        body.v1k .top-link:hover,
        body.v1k .top-link.active {
            background: rgba(255,204,0,0.10) !important;
            color: #ffcc00 !important;
        }
        body.v1k .top-link.active::after {
            background: linear-gradient(90deg, #ff4444, #ffcc00) !important;
        }

        /* Verified check mark — hide entirely under cohesion v2 */
        body.v1k .idle-tweet-badge,
        body.v1k .verified-badge {
            display: none !important;
        }

        /* Tweet card under v1k — burnt-orange frame via 9-slice using
           the mint panel PNG. Reuses the same asset for visual
           consistency across panels (rather than a custom PNG per
           element). border-image-width 12 keeps rivets small at
           this 380x93 panel size. */
        body.v1k .idle-tweet {
            background: url(/fun/tweet_card_bg.png) center/100% 100% no-repeat !important;
            border: 0 !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            padding: 12px 14px !important;
            /* Pin the card so text size never resizes it (was shrink-to-fit via flex:0 0 auto + max-width) */
            width: var(--a2-tweet-card-w, 380px) !important;
            flex: 0 0 var(--a2-tweet-card-w, 380px) !important;
            max-width: var(--a2-tweet-card-w, 380px) !important;
            /* Fill the bar height like the stat tiles so content lines up at the same height */
            height: 100% !important;
            align-items: center !important;
        }
        /* Body fills the fixed card width AND centers its content vertically (matches the
           stat tiles' justify-content:center) so the DJ name aligns with the stat-tile text */
        body.v1k .idle-tweet-body { flex: 1 1 auto !important; min-width: 0 !important; justify-content: center !important; }

        /* 4 mint-stat cards under v1k — burnt-orange frame via ::before
           overlay (no real border, so card height doesn't grow). Each
           card gets a per-position transform on its ::before so the 4
           don't look like identical clones. Same pattern as the
           countdown cells. */
        body.v1k .mint-stat {
            background: transparent !important;
            border: 14px solid transparent !important;
            border-image-source: url(/fun/counter_transparent_tight.png) !important;
            border-image-slice: 100 fill !important;
            border-image-width: 14px !important;
            border-image-repeat: stretch !important;
            border-radius: 0 !important;
            box-shadow: none !important;
        }
        body.v1k .mint-stat:nth-child(1) {
            background: url(/fun/mint_stat_supply_bg.png) center/100% 100% no-repeat !important;
            border: 0 !important;
        }
        body.v1k .mint-stat:nth-child(2) {
            background: url(/fun/mint_stat_date_bg.png) center/100% 100% no-repeat !important;
            border: 0 !important;
        }
        body.v1k .mint-stat:nth-child(3) {
            background: url(/fun/mint_stat_price_bg.png) center/100% 100% no-repeat !important;
            border: 0 !important;
        }
        body.v1k .mint-stat:nth-child(4) {
            background: url(/fun/mint_stat_bg.png) center/100% 100% no-repeat !important;
            border: 0 !important;
        }

        /* Stats card icon (currently cyan inline override) → warm */
        body.v1k #stats-icon,
        body.v1k .kill-icon {
            background: linear-gradient(135deg, #ff4444, #ffcc00) !important;
        }

        /* Blue glow box-shadows → warm */
        body.v1k .dj-btn:hover,
        body.v1k .buy-button-compact:hover,
        body.v1k .buy-button-large,
        body.v1k .show-more-btn:hover,
        body.v1k .email-input:focus,
        body.v1k .webar-btn,
        body.v1k #mint2-btn:hover {
            box-shadow: 0 0 15px rgba(255,153,0,0.4) !important;
        }

/* ============================================================================
   MOBILE FUN-PANEL LANDING  (test flag ?mobile=1 -> html.fun-mobile)
   Additive + scoped to html.fun-mobile: ZERO effect on the normal site.
   NOTE: the Fun flip panel lives INSIDE #characters (as .mint-col), so we must
   NOT hide #characters / -clip / -wrapper — only the cards + stray chrome.
   ============================================================================ */
html.fun-mobile, html.fun-mobile body { background:#0e0f13 !important; margin:0 !important; overflow-x:hidden !important; }

/* hide non-Fun chrome + the persistent stat tiles (#mint-stats) */
html.fun-mobile body.v1k #site-header,
html.fun-mobile body.v1k #mode-rail,
html.fun-mobile body.v1k .mode-rail,
html.fun-mobile body.v1k #mint-stats,
html.fun-mobile body.v1k .mint-stats,
html.fun-mobile body.v1k #alive-status,
html.fun-mobile body.v1k #mp-row2-stats,
html.fun-mobile body.v1k .top-gifs-section,
html.fun-mobile body.v1k .info-bar,
html.fun-mobile body.v1k .top-menu,
html.fun-mobile body.v1k [id*="tweet"],
html.fun-mobile body.v1k [class*="tweet"],
html.fun-mobile body.v1k .nav-default-icons { display:none !important; }

/* hide the character CARDS but keep the Fun flip panel that shares #characters */
html.fun-mobile body.v1k #characters .character { display:none !important; }

/* kill the idle top-bar + arena lock/chat overlays that push/cover the Fun panel */
html.fun-mobile body.v1k #nav-idle-content,
html.fun-mobile body.v1k #arena-lock,
html.fun-mobile body.v1k .arena-lock-overlay,
html.fun-mobile body.v1k .arena-chat-panel,
html.fun-mobile body.v1k .arena-chat-panel-header,
html.fun-mobile body.v1k .arena-chat-panel-messages,
html.fun-mobile body.v1k #acp-messages,
html.fun-mobile body.v1k .chat-message { display:none !important; }

/* let the flip panel's ancestor chain flow normally (undo arena 3D / clipping / collapse) */
html.fun-mobile body.v1k #characters,
html.fun-mobile body.v1k #characters-clip,
html.fun-mobile body.v1k #arena-with-banner,
html.fun-mobile body.v1k #characters-wrapper,
html.fun-mobile body.v1k .mint-col {
  display:block !important; height:auto !important; min-height:0 !important; max-height:none !important;
  transform:none !important; overflow:visible !important; width:100% !important; inset:auto !important; position:static !important;
}

/* undo the 2-column app-shell grid (col 1 reserved for the hidden icon tray) so the panel fills full width */
html.fun-mobile body.v1k #app-shell {
  display:block !important; grid-template-columns:1fr !important; width:100vw !important; max-width:100vw !important; padding:0 !important; margin:0 !important;
}
html.fun-mobile body.v1k #main-col,
html.fun-mobile body.v1k #main-nav,
html.fun-mobile body.v1k .container {
  width:100vw !important; max-width:100vw !important; margin:0 !important; padding:0 !important;
}
/* hard-kill every stat display */
html.fun-mobile body.v1k #mint-stats,
html.fun-mobile body.v1k .mint-stats,
html.fun-mobile body.v1k .mint-stat,
html.fun-mobile body.v1k #kill-status,
html.fun-mobile body.v1k .stats-grid,
html.fun-mobile body.v1k .stat-box,
html.fun-mobile body.v1k .stat-box-small,
html.fun-mobile body.v1k .tension-stats-card,
html.fun-mobile body.v1k .tension-card,
html.fun-mobile body.v1k #nav-r2-pack,
html.fun-mobile body.v1k .nav-mp-row2,
html.fun-mobile body.v1k .nav-r2-stat { display:none !important; }
/* Fun panel fills the phone width, centered */
html.fun-mobile body.v1k #v1k-mint-flip-container {
  width:100vw !important; max-width:100vw !important; margin:0 auto !important; float:none !important; position:relative !important; left:0 !important; transform:none !important;
}

/* no Home-then-flip: kill the flip rotation, and keep the panel hidden until it's on Fun,
   then fade it in (fm-ready is added by the mobile script right after the switch). */
html.fun-mobile body.v1k #v1k-mint-flip-container,
html.fun-mobile body.v1k #v1k-mint-flip-container *,
html.fun-mobile body.v1k .v1k-flip-inner,
html.fun-mobile body.v1k .v1k-flip-front,
html.fun-mobile body.v1k .v1k-flip-back { transition:none !important; animation:none !important; }
html.fun-mobile:not(.fm-ready) body.v1k #main-col { opacity:0 !important; }
html.fun-mobile.fm-ready body.v1k #main-col { opacity:1 !important; transition:opacity .25s ease !important; }

/* ── PREVIEW: fill full phone HEIGHT (test flag ?mobile=1&fill=1 → html.fun-mobile.fm-fill) ──
   Scoped to .fm-fill so the live /mobile page (plain ?mobile=1) is completely unaffected.
   The panel is only ~half-height on mobile because width is forced to 100vw but height stays
   at its fixed desktop px value; this forces the panel + its faces to the full viewport height. */
/* lock the page to the viewport + clip ALL overflow, so negative padding bleeds off every edge
   evenly (cropped) instead of growing the page taller. */
html.fun-mobile.fm-fill, html.fun-mobile.fm-fill body { overflow:hidden !important; height:100dvh !important; max-height:100dvh !important; }
html.fun-mobile.fm-fill body.v1k #v1k-mint-flip-container {
  width:calc(100vw - 2 * var(--fm-pad, 0px)) !important; max-width:calc(100vw - 2 * var(--fm-pad, 0px)) !important;
  height:calc(100dvh - 2 * var(--fm-pad, 0px)) !important; max-height:calc(100dvh - 2 * var(--fm-pad, 0px)) !important; min-height:calc(100dvh - 2 * var(--fm-pad, 0px)) !important;
  margin:var(--fm-pad, 0px) !important;
}
html.fun-mobile.fm-fill body.v1k .v1k-flip-inner,
html.fun-mobile.fm-fill body.v1k .v1k-flip-front,
html.fun-mobile.fm-fill body.v1k .v1k-flip-back,
html.fun-mobile.fm-fill body.v1k #mint2-panel {
  height:calc(100dvh - 2 * var(--fm-pad, 0px)) !important; max-height:calc(100dvh - 2 * var(--fm-pad, 0px)) !important; min-height:calc(100dvh - 2 * var(--fm-pad, 0px)) !important; width:100% !important;
}
/* Character webm / 3D canvas: keep its aspect on the stretched mobile panel so it doesn't squish
   (same fix as commit fc7a3522 — object-fit:contain). */
html.fun-mobile.fm-fill body.v1k #v1k-mint-flip-container video,
html.fun-mobile.fm-fill body.v1k #v1k-mint-flip-container canvas,
html.fun-mobile.fm-fill body.v1k #fun-preview-container video,
html.fun-mobile.fm-fill body.v1k #fun-preview-container canvas,
html.fun-mobile.fm-fill body.v1k [data-funwebm] { object-fit:contain !important; }

/* MOBILE ONLY: pin tile text to the self-hosted-ish JetBrains Mono webfont (already loaded by
   index.html) so line-wrapping is identical on every device. Without this the tiles fall back to
   the DEVICE's monospace (ui-monospace/Menlo/etc), whose different glyph widths shift wrap points
   (3 lines on desktop editor -> 4 lines on phone, overflowing the box). Desktop panel untouched. */
html.fun-mobile .vtb-text, html.fun-mobile .vtb-text > div {
  font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace !important;
}
/* MOBILE ONLY: an authored text line NEVER auto-wraps — each `lines` entry renders as exactly
   one line. Combined with the pinned webfont above, line count is deterministic on every device. */
html.fun-mobile .vtb-text > div { white-space:nowrap !important; }
