A unique and luxurious golden hour inspired theme. if you like the color gold (like i do) you'll love this theme! (ITS ALSO GOOD FOR THE EYES, as it's a dark mode!)
Golden Hour
Versions · 2
fixed some formatting issues
Gallery
2 images
homepage background
Palette
9 colors · 7 settings
dark
- Primary
#dcb445 - Secondary
#b8965a - Background
#0c0906 - Text
#f1e6c8 - Danger
#e5674f - Success
#93c47d - Warning
#f2b84b - Speech
#ffe3a3 - Thoughts
#b8a27a
Theme controls
- Accent color
- 43° · 68% · 55%
- Preferred mode
- dark
- Corner scale
- 0.6
- Glass surfaces
- Yes
- Type scale
- 1
- Interface scale
- 1
Stylesheets
2 stylesheets
/* ═══════════════════════════════════════════════════════════
GOLDEN HOUR
Onyx-black dark mode, Art-Deco gold. Slow sunburst rays, rising gold dust,
a drifting fan-scale floor, a periodic light sheen, gilded portrait frames,
and a "gallery hall" home page where every character gets an arched,
gold-foil frame with a spinning glint.
FONT: "GN Lora" (Lora, open licence) - names/headings are set in tracked capitals.
Every control lives in :root below. Change a value, save, done.
═══════════════════════════════════════════════════════════ */
:root {
/* ── TEXT ─────────────────────────────────────────────── */
--gn-font-color: #f1e6c8; /* main ivory text */
/* ★ CHAT TEXT COLOUR: change this ONE value and every message recolours.
Spoken dialogue, *actions* and **bold** are tinted from it automatically.
Presets: #f1e6c8 warm ivory (default) · #ffffff white · #ffe9a8 pale gold · #f5d0c5 rose gold · #cfe8ff moonlit blue */
--gn-message-color: #f1e6c8;
--gn-heading-color: #f4d98e;
--gn-dialogue-color: color-mix(in srgb, var(--gn-message-color) 62%, #ffd978); /* "spoken words" */
--gn-action-color: color-mix(in srgb, var(--gn-message-color) 72%, #b39a62); /* *italic actions* */
--gn-bold-color: color-mix(in srgb, var(--gn-message-color) 40%, #fff6dc); /* **bold** - or set any colour */
--gn-name-color: #e9c46a;
--gn-date-color: color-mix(in srgb, var(--gn-message-color) 55%, var(--gn-gold)); /* the #0 · Aug · 1:11 PM stamp */
--gn-link-color: #ffdf9a;
--gn-font-color-soft: color-mix(in srgb, var(--gn-font-color) 70%, #0d0a07);
--gn-font-color-dim: color-mix(in srgb, var(--gn-font-color) 46%, #0d0a07);
--gn-font: "GN Lora Star", "Lora", Georgia, "Times New Roman", serif; /* body: Lora with star-dotted i / j */
--gn-font-display: "GN Dunhill", "GN Lora Star", "Lora", Georgia, serif; /* names + titles: Art-Deco capitals */
--gn-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
--gn-chat-font-scale: 1;
--gn-meta-font-scale: 0.8;
--gn-letter-spacing: 0.005em;
--gn-text-glow: 0 0 10px rgba(212, 175, 55, 0.10); /* none = crisp text */
--gn-caps-tracking: 0.16em; /* tracking of NAMES / TITLES */
/* ── MOTION & DECOR (0 = hide, bigger duration = slower) ── */
--gn-rays-opacity: 0.55; /* rotating sunburst from the top */
--gn-dust-opacity: 0.85; /* rising gold dust */
--gn-floor-opacity: 0.42; /* drifting fan-scale floor */
--gn-sheen-opacity: 1; /* light sheen sweeping across */
--gn-rays-speed: 300s; /* one full turn of the sunburst */
--gn-dust-speed: 40s; /* time for dust to rise one 420px tile */
--gn-floor-speed: 50s; /* time to drift 400px */
--gn-sheen-speed: 20s; /* one sweep (it pauses between) */
--gn-floor-height: 130px;
--gn-radius: 8px;
--gn-blur: 4px;
--gn-msg-decor: 1; /* corner brackets + crest on messages */
/* ── PORTRAITS ────────────────────────────────────────── */
--gn-avatar-width-char: var(--ui-portrait-w);
--gn-avatar-height-char: var(--ui-portrait-h);
--gn-avatar-width-user: var(--ui-portrait-w);
--gn-avatar-height-user: var(--ui-portrait-h);
--gn-avatar-sticky-top: 72px;
--gn-portrait-arch: 84px; /* roundness of the arch top (10px = plain frame) */
--gn-portrait-backing: #0c0906;
--gn-img-scale: 1;
--gn-img-x: center;
--gn-img-y: top;
/* ── GLASS ────────────────────────────────────────────── */
--gn-content-radius: 10px;
--gn-content-blur: 5px;
--gn-content-glass: rgba(14, 10, 6, 0.64);
--gn-content-glass-user: rgba(30, 21, 9, 0.62);
/* ── GOLD PALETTE ─────────────────────────────────────── */
--gn-gold: #d4af37;
--gn-gold-bright: #f4d57a;
--gn-gold-pale: #fff0c2;
--gn-gold-deep: #9a7420;
--gn-accent: #dcb445;
--gn-accent-hot: #efc95e;
--gn-accent-soft: #f3dd9b;
--gn-ink: #0c0906;
--gn-ink-2: #15100a;
--gn-ink-3: #1d160c;
--gn-foil-text: linear-gradient(115deg, #b8892a 0%, #e9c458 20%, #fff3cf 34%, #e9c458 48%, #b8892a 64%, #f4d57a 82%, #b8892a 100%);
--gn-foil: linear-gradient(115deg, #8a6414 0%, #d4af37 18%, #fff0c2 32%, #d4af37 46%, #9a7420 62%, #f4d57a 80%, #8a6414 100%);
--gn-glass: rgba(18, 13, 7, 0.62);
--gn-glass-hover: rgba(30, 22, 11, 0.70);
--gn-glass-border: rgba(212, 175, 55, 0.32);
--gn-glass-border-hover: rgba(244, 213, 122, 0.62);
--gn-drawer-panel: rgba(13, 10, 6, 0.80);
--gn-drawer-icon-strip: rgba(8, 6, 4, 0.84);
--gn-drawer-toggle: rgba(10, 8, 5, 0.70);
--gn-tab-active: rgba(212, 175, 55, 0.20);
--gn-tab-hover: rgba(212, 175, 55, 0.11);
--gn-nav-hover: rgba(212, 175, 55, 0.13);
--gn-nav-active: rgba(212, 175, 55, 0.24);
--gn-modal: rgba(14, 10, 6, 0.92);
--gn-modal-backdrop: rgba(0, 0, 0, 0.55);
--gn-card-border: rgba(212, 175, 55, 0.36);
--gn-card-glow: rgba(212, 175, 55, 0.14);
--gn-quote-bg: rgba(212, 175, 55, 0.07);
--gn-code-bg: rgba(6, 5, 3, 0.72);
--gn-input-bg: rgba(12, 9, 5, 0.78);
--gn-input-border: rgba(212, 175, 55, 0.44);
--gn-scrollbar: rgba(212, 175, 55, 0.40);
--gn-scrollbar-hover: rgba(244, 213, 122, 0.70);
--gn-selection: rgba(212, 175, 55, 0.38);
/* ── CATHEDRAL PILLARS ────────────────────────────────── */
/* Big gold fluted columns, floor to ceiling, either side of the hall. To switch them off, put this in the
personal tweaks at the bottom: :root { --gn-pillar-layers: linear-gradient(transparent, transparent); } */
--gn-pillar-layers:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='100' viewBox='0 0 128 100' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='c' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%233d2c0a'/%3E%3Cstop offset='.2' stop-color='%23a8801f'/%3E%3Cstop offset='.45' stop-color='%23e3c25a'/%3E%3Cstop offset='.62' stop-color='%23f1d98a'/%3E%3Cstop offset='.84' stop-color='%23b58a25'/%3E%3Cstop offset='1' stop-color='%233a2909'/%3E%3C/linearGradient%3E%3ClinearGradient id='f' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23140c02' stop-opacity='.5'/%3E%3Cstop offset='.4' stop-color='%23140c02' stop-opacity='0'/%3E%3Cstop offset='.75' stop-color='%23fff0c2' stop-opacity='.16'/%3E%3Cstop offset='1' stop-color='%23140c02' stop-opacity='.35'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg opacity='.6'%3E%3Crect width='128' height='100' fill='url(%23c)'/%3E%3Crect x='9.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='25.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='41.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='57.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='73.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='89.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='105.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='0' width='8' height='100' fill='%232a1c06' fill-opacity='.35'/%3E%3Crect x='120' width='8' height='100' fill='%232a1c06' fill-opacity='.35'/%3E%3Crect x='7.5' width='1.2' height='100' fill='%23f4d57a' fill-opacity='.8'/%3E%3Crect x='119.3' width='1.2' height='100' fill='%23f4d57a' fill-opacity='.6'/%3E%3C/g%3E%3C/svg%3E") left 0 top 0 / 128px 100% no-repeat,
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='100' viewBox='0 0 128 100' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='c' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%233d2c0a'/%3E%3Cstop offset='.2' stop-color='%23a8801f'/%3E%3Cstop offset='.45' stop-color='%23e3c25a'/%3E%3Cstop offset='.62' stop-color='%23f1d98a'/%3E%3Cstop offset='.84' stop-color='%23b58a25'/%3E%3Cstop offset='1' stop-color='%233a2909'/%3E%3C/linearGradient%3E%3ClinearGradient id='f' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23140c02' stop-opacity='.5'/%3E%3Cstop offset='.4' stop-color='%23140c02' stop-opacity='0'/%3E%3Cstop offset='.75' stop-color='%23fff0c2' stop-opacity='.16'/%3E%3Cstop offset='1' stop-color='%23140c02' stop-opacity='.35'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg opacity='.6'%3E%3Cg transform='translate(128 0) scale(-1 1)'%3E%3Crect width='128' height='100' fill='url(%23c)'/%3E%3Crect x='9.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='25.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='41.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='57.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='73.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='89.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='105.5' y='0' width='13.0' height='100' fill='url(%23f)'/%3E%3Crect x='0' width='8' height='100' fill='%232a1c06' fill-opacity='.35'/%3E%3Crect x='120' width='8' height='100' fill='%232a1c06' fill-opacity='.35'/%3E%3Crect x='7.5' width='1.2' height='100' fill='%23f4d57a' fill-opacity='.8'/%3E%3Crect x='119.3' width='1.2' height='100' fill='%23f4d57a' fill-opacity='.6'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") right 0 top 0 / 128px 100% no-repeat,
linear-gradient(90deg, rgba(0, 0, 0, 0.5), transparent) left 128px top 0 / 54px 100% no-repeat,
linear-gradient(270deg, rgba(0, 0, 0, 0.5), transparent) right 128px top 0 / 54px 100% no-repeat;
}
@media (max-width: 900px) { :root { --gn-pillar-layers: linear-gradient(transparent, transparent); } }
/* ─── FONT ─────────────────────────────────────────────── */
@font-face { font-family: "GN Lora Star"; font-style: normal; font-weight: 100 599; font-display: swap; src: url("assets/fonts/gn-lora-star-regular.woff") format("woff"); }
@font-face { font-family: "GN Lora Star"; font-style: normal; font-weight: 600 900; font-display: swap; src: url("assets/fonts/gn-lora-star-bold.woff") format("woff"); }
@font-face { font-family: "GN Lora Star"; font-style: italic; font-weight: 100 599; font-display: swap; src: url("assets/fonts/gn-lora-star-italic.woff") format("woff"); }
@font-face { font-family: "GN Lora Star"; font-style: italic; font-weight: 600 900; font-display: swap; src: url("assets/fonts/gn-lora-star-bolditalic.woff") format("woff"); }
/* Display face: capitals, digits and punctuation ONLY. Lowercase always falls through to the star-dotted Lora above. */
@font-face {
font-family: "GN Dunhill"; font-style: normal; font-weight: 100 900; font-display: swap;
src: url("assets/fonts/gn-dunhill.woff") format("woff");
unicode-range: U+0020-0040, U+0041-005A, U+005B-0060, U+007B-007E, U+00A0-00BF, U+00C0-00DE, U+2010-2027, U+2030-203A, U+2212;
}
/* ─── LUMIVERSE TOKENS ─────────────────────────────────── */
:root,
html,
html[data-theme-mode="dark"],
body {
--lumiverse-primary: var(--gn-accent) !important;
--lumiverse-primary-hover: var(--gn-accent-hot) !important;
--lumiverse-primary-light: rgba(220, 180, 69, 0.18) !important;
--lumiverse-primary-soft: rgba(220, 180, 69, 0.14) !important;
--lumiverse-primary-muted: rgba(220, 180, 69, 0.55) !important;
--lumiverse-primary-text: var(--gn-accent-soft) !important;
--lumiverse-primary-010: rgba(220, 180, 69, 0.08) !important;
--lumiverse-primary-015: rgba(220, 180, 69, 0.12) !important;
--lumiverse-primary-020: rgba(220, 180, 69, 0.18) !important;
--lumiverse-primary-050: rgba(220, 180, 69, 0.45) !important;
--lumiverse-primary-contrast: #1a1204 !important;
--lumiverse-primary-deep: #9a7420 !important;
--lumiverse-primary-deep-hover: #7f5f18 !important;
--lumiverse-primary-deep-contrast: #fff7e0 !important;
--lumiverse-bg: #0d0a07 !important;
--lumiverse-bg-elevated: #1a140b !important;
--lumiverse-bg-hover: #251c0e !important;
--lumiverse-bg-dark: rgba(0, 0, 0, 0.38) !important;
--lumiverse-bg-darker: rgba(0, 0, 0, 0.55) !important;
--lumiverse-bg-deep: #070605 !important;
--lumiverse-bg-deep-080: rgba(7, 6, 5, 0.82) !important;
--lumiverse-surface: rgba(34, 26, 13, 0.62) !important;
--lumiverse-surface-raised: rgba(46, 35, 17, 0.72) !important;
--lumiverse-surface-hover: rgba(60, 46, 22, 0.72) !important;
--lumiverse-surface-muted: rgba(212, 175, 55, 0.06) !important;
--lumiverse-input-bg: rgba(10, 8, 5, 0.62) !important;
--lumiverse-text: var(--gn-font-color) !important;
--lumiverse-text-primary: var(--gn-font-color) !important;
--lumiverse-text-secondary: var(--gn-font-color-soft) !important;
--lumiverse-text-muted: var(--gn-font-color-soft) !important;
--lumiverse-text-dim: var(--gn-font-color-dim) !important;
--lumiverse-text-hint: var(--gn-font-color-dim) !important;
--lumiverse-icon: var(--gn-accent-soft) !important;
--lumiverse-icon-muted: color-mix(in srgb, var(--gn-accent-soft) 70%, #0d0a07) !important;
--lumiverse-icon-dim: color-mix(in srgb, var(--gn-accent-soft) 45%, #0d0a07) !important;
--lumiverse-border: rgba(212, 175, 55, 0.30) !important;
--lumiverse-border-hover: rgba(244, 213, 122, 0.58) !important;
--lumiverse-border-light: rgba(212, 175, 55, 0.15) !important;
--lumiverse-border-subtle: rgba(212, 175, 55, 0.10) !important;
--lumiverse-border-neutral: rgba(255, 240, 205, 0.14) !important;
--lumiverse-border-neutral-hover: rgba(255, 240, 205, 0.30) !important;
--lumiverse-secondary: rgba(184, 150, 90, 0.14) !important;
--lumiverse-secondary-hover: rgba(184, 150, 90, 0.24) !important;
--lumiverse-secondary-border: rgba(184, 150, 90, 0.34) !important;
--lumiverse-danger: #e5674f !important;
--lumiverse-danger-hover: #cf4f39 !important;
--lumiverse-success: #93c47d !important;
--lumiverse-warning: #f2b84b !important;
--lumiverse-error: #e5674f !important;
--lumiverse-danger-015: rgba(229, 103, 79, 0.16) !important;
--lumiverse-success-015: rgba(147, 196, 125, 0.16) !important;
--lumiverse-warning-015: rgba(242, 184, 75, 0.16) !important;
--lumiverse-radius-sm: 4px !important;
--lumiverse-radius: 6px !important;
--lumiverse-radius-md: 8px !important;
--lumiverse-radius-lg: 12px !important;
--lumiverse-radius-xl: 16px !important;
--lcs-radius: 10px !important;
--lcs-radius-sm: 6px !important;
--lcs-radius-xs: 4px !important;
--lumiverse-shadow-sm: 0 3px 12px rgba(0, 0, 0, 0.40) !important;
--lumiverse-shadow-md: 0 10px 30px rgba(0, 0, 0, 0.55) !important;
--lumiverse-shadow-lg: 0 20px 60px rgba(0, 0, 0, 0.65) !important;
--lumiverse-modal-backdrop: var(--gn-modal-backdrop) !important;
--lumiverse-fill-subtle: rgba(255, 230, 170, 0.03) !important;
--lumiverse-fill: rgba(255, 230, 170, 0.06) !important;
--lumiverse-fill-hover: rgba(255, 230, 170, 0.10) !important;
--lumiverse-fill-medium: rgba(255, 230, 170, 0.15) !important;
--lumiverse-fill-strong: rgba(255, 230, 170, 0.22) !important;
--lumiverse-fill-heavy: rgba(8, 6, 3, 0.58) !important;
--lumiverse-fill-deepest: rgba(4, 3, 2, 0.80) !important;
--lumiverse-font-family: var(--gn-font) !important;
--lumiverse-font-mono: var(--gn-font-mono) !important;
--lumiverse-prose-dialogue: var(--gn-dialogue-color) !important;
--lumiverse-prose-italic: var(--gn-action-color) !important;
--lumiverse-prose-bold: var(--gn-bold-color) !important;
--lumiverse-prose-blockquote: var(--gn-font-color-soft) !important;
--lumiverse-prose-link: var(--gn-link-color) !important;
--lcs-glass-bg: var(--gn-glass) !important;
--lcs-glass-bg-hover: var(--gn-glass-hover) !important;
--lcs-glass-border: var(--gn-glass-border) !important;
--lcs-glass-border-hover: var(--gn-glass-border-hover) !important;
--lcs-glass-blur: var(--gn-blur) !important;
}
/* ─── TYPOGRAPHY ───────────────────────────────────────── */
html, body, #root, [data-theme],
[class*="_app_"], [class*="_shell_"], [class*="_layout_"], [class*="_modal_"],
[class*="_drawer_"], [class*="_panel_"], [class*="_menu_"], [class*="_popover_"],
[class*="_tooltip_"], button, input, select, textarea, label {
font-family: var(--gn-font) !important;
}
html, body, #root { color: var(--gn-font-color); letter-spacing: var(--gn-letter-spacing); font-variant-ligatures: none; }
h1, h2, h3, h4, h5, h6,
[class*="_title_"], [class*="_heading_"], [class*="_headerTitle_"], [class*="_panelTitle_"],
[class*="_modalTitle_"], [class*="_sectionTitle_"], [class*="_panelHeader_"] {
font-family: var(--gn-font) !important;
font-weight: 600 !important;
color: var(--gn-heading-color);
}
[class*="_panelTitle_"], [class*="_modalTitle_"], [class*="_sectionTitle_"] {
font-family: var(--gn-font-display) !important;
font-weight: 400 !important;
font-size: 1.12em;
text-transform: uppercase;
letter-spacing: 0.14em;
}
strong, b { font-weight: 700 !important; }
code, pre, kbd, samp, [class*="_highlightPre_"], [class*="_textareaHighlighted_"],
[class*="_token_"], [class*="_counter_"] { font-family: var(--gn-font-mono) !important; }
/* ═══════════════════════════════════════════════════════════
THE HALL: backgrounds + animated layers
═══════════════════════════════════════════════════════════ */
html, body {
background:
radial-gradient(900px 520px at 50% -8%, rgba(212, 175, 55, 0.20), transparent 62%),
radial-gradient(520px 420px at 100% 100%, rgba(212, 175, 55, 0.10), transparent 70%),
radial-gradient(520px 420px at 0% 100%, rgba(212, 175, 55, 0.08), transparent 70%),
repeating-linear-gradient(45deg, rgba(212, 175, 55, 0.035) 0 1px, transparent 1px 38px),
repeating-linear-gradient(-45deg, rgba(212, 175, 55, 0.035) 0 1px, transparent 1px 38px),
radial-gradient(140% 120% at 50% 45%, transparent 50%, rgba(0, 0, 0, 0.68) 100%),
var(--gn-pillar-layers),
linear-gradient(180deg, #16110a 0%, #0c0906 55%, #060504 100%) !important;
background-attachment: fixed !important;
}
/* HOME PAGE = grand gallery hall: bright stage spotlight, golden pillars either side, stronger rays */
html:has([data-component="LandingPageChats"]),
body:has([data-component="LandingPageChats"]) {
--gn-rays-opacity: 0.95;
--gn-dust-opacity: 1;
--gn-floor-opacity: 0.55;
background:
radial-gradient(ellipse 60% 55% at 50% 0%, rgba(255, 226, 150, 0.30), transparent 70%),
radial-gradient(ellipse 90% 30% at 50% 100%, rgba(212, 175, 55, 0.20), transparent 75%),
linear-gradient(90deg, rgba(212, 175, 55, 0.10), transparent 6%, transparent 94%, rgba(212, 175, 55, 0.10)),
repeating-linear-gradient(45deg, rgba(212, 175, 55, 0.04) 0 1px, transparent 1px 38px),
repeating-linear-gradient(-45deg, rgba(212, 175, 55, 0.04) 0 1px, transparent 1px 38px),
radial-gradient(140% 120% at 50% 45%, transparent 48%, rgba(0, 0, 0, 0.74) 100%),
var(--gn-pillar-layers),
linear-gradient(180deg, #1c150b 0%, #0d0a06 55%, #050403 100%) !important;
background-attachment: fixed !important;
}
#root, #root > * { background: transparent !important; }
body { isolation: isolate; }
/* Every moving layer slides with transform (GPU compositor): no repaint, no re-blur of glass panels. */
/* 1) SUNBURST: huge conic fan of rays turning slowly around the top-centre */
body::after {
content: "";
position: fixed;
top: 0;
left: 50%;
width: 2200px;
height: 2200px;
margin: -1100px 0 0 -1100px;
z-index: -5;
pointer-events: none;
opacity: var(--gn-rays-opacity);
background: repeating-conic-gradient(from 0deg,
rgba(244, 213, 122, 0.13) 0deg 2.4deg, transparent 2.4deg 7deg,
rgba(244, 213, 122, 0.07) 7deg 8.4deg, transparent 8.4deg 14deg);
-webkit-mask-image: radial-gradient(circle closest-side, #000 0%, rgba(0, 0, 0, 0.55) 30%, transparent 100%);
mask-image: radial-gradient(circle closest-side, #000 0%, rgba(0, 0, 0, 0.55) 30%, transparent 100%);
backface-visibility: hidden;
will-change: transform;
animation: gnRays var(--gn-rays-speed) linear infinite;
}
/* 2) GOLD DUST: two tiles (420 + 280 both divide 840) rising and gently breathing */
body::before {
content: "";
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: -840px;
z-index: -4;
pointer-events: none;
opacity: var(--gn-dust-opacity);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420'%3E%3Cdefs%3E%3CradialGradient id='g'%3E%3Cstop offset='0' stop-color='%23f4d57a' stop-opacity='.55'/%3E%3Cstop offset='1' stop-color='%23f4d57a' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='191.3' cy='233.4' r='0.70' fill='%23d4af37' fill-opacity='0.39'/%3E%3Ccircle cx='376.3' cy='196.5' r='7.0' fill='url(%23g)' fill-opacity='0.34'/%3E%3Ccircle cx='376.3' cy='196.5' r='1.40' fill='%23fff0c2' fill-opacity='0.58'/%3E%3Ccircle cx='86.4' cy='214.7' r='10.1' fill='url(%23g)' fill-opacity='0.47'/%3E%3Cpath d='M86.4 209.1 Q87.632 213.468 92.0 214.7 Q87.632 215.932 86.4 220.29999999999998 Q85.168 215.932 80.80000000000001 214.7 Q85.168 213.468 86.4 209.1Z' fill='%23d4af37' fill-opacity='0.94'/%3E%3Ccircle cx='260.9' cy='324.8' r='6.1' fill='url(%23g)' fill-opacity='0.34'/%3E%3Cpath d='M260.9 321.40000000000003 Q261.64799999999997 324.052 264.29999999999995 324.8 Q261.64799999999997 325.548 260.9 328.2 Q260.152 325.548 257.5 324.8 Q260.152 324.052 260.9 321.40000000000003Z' fill='%23fff0c2' fill-opacity='0.69'/%3E%3Ccircle cx='50.9' cy='132.9' r='9.0' fill='url(%23g)' fill-opacity='0.39'/%3E%3Ccircle cx='50.9' cy='132.9' r='1.80' fill='%23fff0c2' fill-opacity='0.65'/%3E%3Ccircle cx='49.5' cy='331.4' r='0.70' fill='%23fff0c2' fill-opacity='0.93'/%3E%3Ccircle cx='285.8' cy='30.4' r='0.70' fill='%23f4d57a' fill-opacity='0.77'/%3E%3Ccircle cx='399.0' cy='392.2' r='1.00' fill='%23d4af37' fill-opacity='0.83'/%3E%3Ccircle cx='270.3' cy='255.3' r='7.0' fill='url(%23g)' fill-opacity='0.43'/%3E%3Ccircle cx='270.3' cy='255.3' r='1.40' fill='%23fff0c2' fill-opacity='0.72'/%3E%3Ccircle cx='75.7' cy='19.9' r='9.0' fill='url(%23g)' fill-opacity='0.42'/%3E%3Ccircle cx='75.7' cy='19.9' r='1.80' fill='%23fff0c2' fill-opacity='0.70'/%3E%3Ccircle cx='221.1' cy='37.3' r='1.00' fill='%23d4af37' fill-opacity='0.6'/%3E%3Ccircle cx='25.8' cy='195.9' r='1.30' fill='%23f4d57a' fill-opacity='0.87'/%3E%3Ccircle cx='186.7' cy='344.2' r='0.70' fill='%23f4d57a' fill-opacity='0.46'/%3E%3Ccircle cx='193.3' cy='123.0' r='1.30' fill='%23f4d57a' fill-opacity='0.48'/%3E%3Ccircle cx='343.4' cy='291.5' r='1.70' fill='%23f4d57a' fill-opacity='0.85'/%3E%3Ccircle cx='137.6' cy='104.0' r='1.00' fill='%23fff0c2' fill-opacity='0.4'/%3E%3Ccircle cx='127.3' cy='41.5' r='1.70' fill='%23f4d57a' fill-opacity='0.57'/%3E%3Ccircle cx='314.4' cy='171.0' r='1.00' fill='%23d4af37' fill-opacity='0.85'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280' viewBox='0 0 280 280'%3E%3Cdefs%3E%3CradialGradient id='g'%3E%3Cstop offset='0' stop-color='%23f4d57a' stop-opacity='.55'/%3E%3Cstop offset='1' stop-color='%23f4d57a' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Ccircle cx='152.1' cy='101.1' r='1.27' fill='%23f4d57a' fill-opacity='0.62'/%3E%3Ccircle cx='226.9' cy='86.7' r='1.27' fill='%23d4af37' fill-opacity='0.54'/%3E%3Ccircle cx='118.7' cy='259.4' r='4.6' fill='url(%23g)' fill-opacity='0.34'/%3E%3Cpath d='M118.7 256.84999999999997 Q119.261 258.839 121.25 259.4 Q119.261 259.96099999999996 118.7 261.95 Q118.13900000000001 259.96099999999996 116.15 259.4 Q118.13900000000001 258.839 118.7 256.84999999999997Z' fill='%23f4d57a' fill-opacity='0.68'/%3E%3Ccircle cx='40.1' cy='126.1' r='0.52' fill='%23f4d57a' fill-opacity='0.56'/%3E%3Ccircle cx='70.7' cy='102.1' r='0.75' fill='%23d4af37' fill-opacity='0.68'/%3E%3Ccircle cx='265.7' cy='97.0' r='3.5' fill='url(%23g)' fill-opacity='0.20'/%3E%3Cpath d='M265.7 95.05 Q266.12899999999996 96.571 267.65 97.0 Q266.12899999999996 97.429 265.7 98.95 Q265.271 97.429 263.75 97.0 Q265.271 96.571 265.7 95.05Z' fill='%23f4d57a' fill-opacity='0.39'/%3E%3Ccircle cx='198.1' cy='126.7' r='0.98' fill='%23fff0c2' fill-opacity='0.6'/%3E%3Ccircle cx='116.8' cy='213.8' r='0.52' fill='%23fff0c2' fill-opacity='0.69'/%3E%3Ccircle cx='155.8' cy='63.5' r='1.27' fill='%23fff0c2' fill-opacity='0.33'/%3E%3Ccircle cx='169.7' cy='209.9' r='0.75' fill='%23f4d57a' fill-opacity='0.29'/%3E%3Ccircle cx='39.0' cy='250.3' r='0.75' fill='%23d4af37' fill-opacity='0.27'/%3E%3Ccircle cx='106.5' cy='49.1' r='1.27' fill='%23f4d57a' fill-opacity='0.64'/%3E%3C/svg%3E");
background-size: 420px 420px, 280px 280px;
background-repeat: repeat, repeat;
backface-visibility: hidden;
contain: layout paint style;
transform: translate3d(0, 0, 0);
will-change: transform;
animation: gnRise calc(var(--gn-dust-speed) * 2) linear infinite;
}
/* 3) FAN FLOOR: art-deco scales drifting sideways, fading upward */
#root::before {
content: "";
position: fixed;
left: 0;
right: -400px;
bottom: 0;
height: var(--gn-floor-height);
z-index: -3;
pointer-events: none;
opacity: var(--gn-floor-opacity);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='50' viewBox='0 0 100 50'%3E%3Ccircle cx='50' cy='-25' r='50' fill='%230c0906' stroke='%23d4af37' stroke-width='1.3' stroke-opacity='.95'/%3E%3Ccircle cx='50' cy='-25' r='40' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.7'/%3E%3Ccircle cx='50' cy='-25' r='30' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.55'/%3E%3Ccircle cx='50' cy='-25' r='20' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.45'/%3E%3Ccircle cx='50' cy='-25' r='10' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.35'/%3E%3Ccircle cx='50' cy='-25' r='3' fill='%23f4d57a' fill-opacity='.55'/%3E%3Ccircle cx='0' cy='0' r='50' fill='%230c0906' stroke='%23d4af37' stroke-width='1.3' stroke-opacity='.95'/%3E%3Ccircle cx='0' cy='0' r='40' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.7'/%3E%3Ccircle cx='0' cy='0' r='30' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.55'/%3E%3Ccircle cx='0' cy='0' r='20' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.45'/%3E%3Ccircle cx='0' cy='0' r='10' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.35'/%3E%3Ccircle cx='0' cy='0' r='3' fill='%23f4d57a' fill-opacity='.55'/%3E%3Ccircle cx='100' cy='0' r='50' fill='%230c0906' stroke='%23d4af37' stroke-width='1.3' stroke-opacity='.95'/%3E%3Ccircle cx='100' cy='0' r='40' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.7'/%3E%3Ccircle cx='100' cy='0' r='30' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.55'/%3E%3Ccircle cx='100' cy='0' r='20' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.45'/%3E%3Ccircle cx='100' cy='0' r='10' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.35'/%3E%3Ccircle cx='100' cy='0' r='3' fill='%23f4d57a' fill-opacity='.55'/%3E%3Ccircle cx='50' cy='25' r='50' fill='%230c0906' stroke='%23d4af37' stroke-width='1.3' stroke-opacity='.95'/%3E%3Ccircle cx='50' cy='25' r='40' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.7'/%3E%3Ccircle cx='50' cy='25' r='30' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.55'/%3E%3Ccircle cx='50' cy='25' r='20' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.45'/%3E%3Ccircle cx='50' cy='25' r='10' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.35'/%3E%3Ccircle cx='50' cy='25' r='3' fill='%23f4d57a' fill-opacity='.55'/%3E%3Ccircle cx='0' cy='50' r='50' fill='%230c0906' stroke='%23d4af37' stroke-width='1.3' stroke-opacity='.95'/%3E%3Ccircle cx='0' cy='50' r='40' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.7'/%3E%3Ccircle cx='0' cy='50' r='30' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.55'/%3E%3Ccircle cx='0' cy='50' r='20' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.45'/%3E%3Ccircle cx='0' cy='50' r='10' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.35'/%3E%3Ccircle cx='0' cy='50' r='3' fill='%23f4d57a' fill-opacity='.55'/%3E%3Ccircle cx='100' cy='50' r='50' fill='%230c0906' stroke='%23d4af37' stroke-width='1.3' stroke-opacity='.95'/%3E%3Ccircle cx='100' cy='50' r='40' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.7'/%3E%3Ccircle cx='100' cy='50' r='30' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.55'/%3E%3Ccircle cx='100' cy='50' r='20' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.45'/%3E%3Ccircle cx='100' cy='50' r='10' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.35'/%3E%3Ccircle cx='100' cy='50' r='3' fill='%23f4d57a' fill-opacity='.55'/%3E%3Ccircle cx='50' cy='75' r='50' fill='%230c0906' stroke='%23d4af37' stroke-width='1.3' stroke-opacity='.95'/%3E%3Ccircle cx='50' cy='75' r='40' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.7'/%3E%3Ccircle cx='50' cy='75' r='30' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.55'/%3E%3Ccircle cx='50' cy='75' r='20' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.45'/%3E%3Ccircle cx='50' cy='75' r='10' fill='none' stroke='%23f4d57a' stroke-width='.9' stroke-opacity='0.35'/%3E%3Ccircle cx='50' cy='75' r='3' fill='%23f4d57a' fill-opacity='.55'/%3E%3C/svg%3E");
background-size: 100px 50px;
background-position: 0 100%;
background-repeat: repeat-x repeat-y;
-webkit-mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0.6) 40%, transparent 100%);
mask-image: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0.6) 40%, transparent 100%);
backface-visibility: hidden;
contain: layout paint style;
transform: translate3d(0, 0, 0);
will-change: transform;
animation: gnFloor var(--gn-floor-speed) linear infinite;
}
/* 4) SHEEN: a slanted band of light that sweeps across now and then */
#root::after {
content: "";
position: fixed;
top: -10vh;
bottom: -10vh;
left: 0;
width: 36vw;
z-index: -2;
pointer-events: none;
opacity: var(--gn-sheen-opacity);
background: linear-gradient(100deg, transparent 0%, rgba(255, 226, 150, 0.06) 38%,
rgba(255, 240, 200, 0.13) 50%, rgba(255, 226, 150, 0.06) 62%, transparent 100%);
transform: translate3d(-60vw, 0, 0) skewX(-14deg);
will-change: transform;
animation: gnSheen var(--gn-sheen-speed) ease-in-out infinite;
}
/* keep it working when a wallpaper sets [data-chat-bg] on <html> */
[data-chat-bg] {
background:
radial-gradient(900px 520px at 50% -8%, rgba(212, 175, 55, 0.20), transparent 62%),
radial-gradient(520px 420px at 0% 100%, rgba(212, 175, 55, 0.10), transparent 70%),
linear-gradient(180deg, #16110a 0%, #0c0906 55%, #060504 100%) !important;
}
@keyframes gnRays { to { transform: rotate(360deg); } }
@keyframes gnRise { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, -840px, 0); } }
@keyframes gnFloor { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-400px, 0, 0); } }
@keyframes gnSheen {
0%, 52% { transform: translate3d(-60vw, 0, 0) skewX(-14deg); }
100% { transform: translate3d(130vw, 0, 0) skewX(-14deg); }
}
@keyframes gnGlow { 0%, 100% { opacity: 0.75; } 50% { opacity: 1; } }
@keyframes gnBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes gnFoil { from { background-position: 0% 0; } to { background-position: 220% 0; } }
@keyframes gnPulse {
0%, 100% { box-shadow: 0 0 0 2px rgba(255, 240, 200, 0.18), 0 4px 16px rgba(212, 175, 55, 0.35); }
50% { box-shadow: 0 0 0 5px rgba(255, 240, 200, 0.10), 0 4px 26px rgba(244, 213, 122, 0.60); }
}
@keyframes gnGlint {
0%, 60% { translate: -170% 0; }
100% { translate: 480% 0; }
}
@media (prefers-reduced-motion: reduce) {
body::before, body::after, #root::before, #root::after,
[data-component="MessageContent"]::after,
[data-component="BubbleMessage"]::after,
[data-component="InputArea"]::before,
[data-component="InputArea"] [class*="_sendBtn_"] { animation: none !important; }
}
/* ═══════════════════════════════════════════════════════════
DRAWER: smoked glass with gold hairlines
═══════════════════════════════════════════════════════════ */
[class*="_wrapper_"]:has([data-spindle-mount="sidebar"]) {
background: transparent;
--lcs-glass-bg: var(--gn-glass);
--lcs-glass-bg-hover: var(--gn-glass-hover);
}
[class*="_drawer_"]:has([data-spindle-mount="sidebar"]) { background: transparent; }
[class*="_drawerTab_"] {
background: var(--gn-drawer-toggle);
backdrop-filter: blur(var(--gn-blur));
-webkit-backdrop-filter: blur(var(--gn-blur));
border-color: var(--gn-glass-border);
}
[data-spindle-mount="sidebar"] {
background: var(--gn-drawer-icon-strip);
backdrop-filter: blur(var(--gn-blur));
-webkit-backdrop-filter: blur(var(--gn-blur));
}
[data-spindle-mount="sidebar"] [class*="_tabBtnActive_"][class*="_tabBtnActive_"] { background: var(--gn-tab-active); }
[data-spindle-mount="sidebar"] [class*="_tabBtn_"]:hover { background: var(--gn-tab-hover); }
[class*="_drawer_"]:has([data-spindle-mount="sidebar"]) > [class*="_panel_"] {
background: var(--gn-drawer-panel);
backdrop-filter: blur(var(--gn-blur));
-webkit-backdrop-filter: blur(var(--gn-blur));
border-color: var(--gn-glass-border);
}
[class*="_panelContent_"], [class*="_panelContentFull_"] { background: transparent; }
[class*="_panelContent_"] > div, [class*="_panelContentFull_"] > div,
[class*="_panelContent_"] [class*="_layout_"], [class*="_panelContentFull_"] [class*="_layout_"],
[class*="_panelContent_"] [class*="_scrollArea_"], [class*="_panelContentFull_"] [class*="_scrollArea_"],
[class*="_panelContent_"] [class*="_section_"], [class*="_panelContent_"] [class*="_group_"],
[class*="_panelContent_"] [class*="_card_"], [class*="_panelContent_"] [class*="_emptyState_"],
[class*="_panelContentFull_"] [class*="_section_"], [class*="_panelContentFull_"] [class*="_group_"],
[class*="_panelContentFull_"] [class*="_card_"], [class*="_panelContentFull_"] [class*="_emptyState_"],
[class*="_accordionSection_"], [class*="_accordionBody_"], [class*="_accordionBodyGen_"] { background: transparent; }
/* panel header: gold wash + diamond lattice */
[class*="_drawer_"]:has([data-spindle-mount="sidebar"]) [class*="_panelHeader_"] {
position: relative;
isolation: isolate;
overflow: hidden;
background: linear-gradient(135deg, rgba(212, 175, 55, 0.24), rgba(60, 42, 12, 0.18));
border-bottom: 1px solid var(--gn-glass-border);
}
[class*="_drawer_"]:has([data-spindle-mount="sidebar"]) [class*="_panelHeader_"]::before {
content: "";
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath d='M0 20 L20 0 L40 20 L20 40Z' fill='none' stroke='%23d4af37' stroke-opacity='.30' stroke-width='1'/%3E%3Cpath d='M10 20 L20 10 L30 20 L20 30Z' fill='none' stroke='%23f4d57a' stroke-opacity='.18' stroke-width='.8'/%3E%3Cpolygon points='20,18.4 21.6,20 20,21.6 18.4,20' fill='%23f4d57a' fill-opacity='0.55'/%3E%3C/svg%3E");
background-size: 40px 40px;
opacity: 0.8;
z-index: 0;
pointer-events: none;
}
[class*="_drawer_"]:has([data-spindle-mount="sidebar"]) [class*="_panelTitle_"],
[class*="_drawer_"]:has([data-spindle-mount="sidebar"]) [class*="_panelHeader_"] button,
[class*="_drawer_"]:has([data-spindle-mount="sidebar"]) [class*="_panelHeader_"] svg { position: relative; z-index: 1; }
/* ═══════════════════════════════════════════════════════════
MODALS
═══════════════════════════════════════════════════════════ */
[class*="_modal_"] {
background: var(--gn-modal);
border: 1px solid var(--gn-glass-border);
border-radius: calc(var(--gn-radius) + 2px);
box-shadow: inset 0 0 0 4px rgba(7, 6, 4, 0.7), inset 0 0 0 5px rgba(212, 175, 55, 0.20),
0 18px 60px rgba(0, 0, 0, 0.70), 0 0 40px rgba(212, 175, 55, 0.10);
}
[class*="_overlay_"], [class*="_backdrop_"] {
background: var(--gn-modal-backdrop);
backdrop-filter: blur(var(--gn-blur));
-webkit-backdrop-filter: blur(var(--gn-blur));
}
[class*="_modal_"]:has(> [class*="_body_"] > nav[class*="_sidebar_"]) [class*="_header_"],
[class*="_modal_"]:has(> [class*="_body_"] > nav[class*="_sidebar_"]) nav[class*="_sidebar_"],
[class*="_modal_"]:has(> [class*="_body_"] > nav[class*="_sidebar_"]) > [class*="_body_"] > [class*="_content_"] { background: transparent; }
[class*="_modal_"]:has(> [class*="_body_"] > nav[class*="_sidebar_"]) [class*="_navBtn_"]:hover { background: var(--gn-nav-hover); }
[class*="_modal_"]:has(> [class*="_body_"] > nav[class*="_sidebar_"]) [class*="_navBtnActive_"][class*="_navBtnActive_"],
[class*="_modal_"]:has(> [class*="_body_"] > nav[class*="_sidebar_"]) [class*="_navBtnActive_"][class*="_navBtnActive_"]:hover { background: var(--gn-nav-active); }
/* ═══════════════════════════════════════════════════════════
CHAT AREA & HEADER
═══════════════════════════════════════════════════════════ */
[data-chatroom-region="header"] {
background: linear-gradient(180deg, rgba(26, 19, 9, 0.84), rgba(12, 9, 5, 0.62));
backdrop-filter: blur(var(--gn-blur));
-webkit-backdrop-filter: blur(var(--gn-blur));
border-bottom: 1px solid var(--gn-glass-border);
box-shadow: 0 1px 0 rgba(0, 0, 0, 0.7), 0 2px 0 rgba(212, 175, 55, 0.16);
}
[data-chatroom-region="body"], [data-lumiverse-surface="chat-body"] { background: transparent !important; }
/* base layout / knobs (same grid as the stock portrait-rail layout) */
html body [data-component="MinimalMessage"]:is([data-part="user"], [data-part="character"], [data-part="streaming"][class*="_character_"]) {
--me-avatar-width: var(--gn-avatar-width-char);
--me-avatar-height: var(--gn-avatar-height-char);
--me-avatar-sticky-top: var(--gn-avatar-sticky-top);
--me-rail-gap: clamp(12px, 1.4vw, 24px);
--me-card-pad-x: 0px;
--me-card-pad-y: 0px;
--me-content-pad: clamp(16px, 1.4vw, 24px);
--me-img-scale: var(--gn-img-scale);
--me-img-x: var(--gn-img-x);
--me-img-y: var(--gn-img-y);
--me-content-glass-bg: var(--gn-content-glass);
--me-content-glass-border: var(--gn-glass-border);
--me-content-glass-blur: var(--gn-content-blur);
--me-content-glass-radius: var(--gn-content-radius);
--me-content-glass-shadow: 0 10px 28px rgba(0, 0, 0, 0.45), 0 0 30px var(--gn-card-glow);
--me-grid-template: var(--me-avatar-width) minmax(0, 1fr);
--me-message-padding: 0 clamp(16px, 1.5vw, 24px) clamp(20px, 2vw, 32px) 0;
--me-avatar-column: 1;
--me-bubble-column: 2;
--me-avatar-justify: start;
position: relative !important;
display: grid !important;
grid-template-columns: var(--me-grid-template) !important;
column-gap: var(--me-rail-gap) !important;
align-items: start !important;
width: 100% !important;
max-width: 100% !important;
min-width: 0 !important;
padding: var(--me-message-padding) !important;
box-sizing: border-box !important;
overflow: visible !important;
contain: none !important;
transform: none !important;
font-family: var(--gn-font) !important;
background: transparent !important;
border: 0 !important;
outline: 0 !important;
box-shadow: none !important;
backdrop-filter: none !important;
-webkit-backdrop-filter: none !important;
}
html body [data-component="MinimalMessage"][data-part="user"][data-part="user"][data-part="user"] {
--me-avatar-width: var(--gn-avatar-width-user);
--me-avatar-height: var(--gn-avatar-height-user);
--me-grid-template: minmax(0, 1fr) var(--me-avatar-width);
--me-message-padding: 0 0 clamp(20px, 2vw, 32px) clamp(16px, 1.5vw, 24px);
--me-avatar-column: 2;
--me-bubble-column: 1;
--me-avatar-justify: end;
--me-content-glass-bg: var(--gn-content-glass-user);
}
html body [data-component="MinimalMessage"]::before,
html body [data-component="MinimalMessage"]::after,
html body [data-component="MinimalMessage"][class*="_card_"]::before,
html body [data-component="MinimalMessage"][class*="_card_"]::after,
html body [data-component="MinimalMessage"][class*="_user_"]::before,
html body [data-component="MinimalMessage"][class*="_user_"]::after,
html body [data-component="MinimalMessage"][class*="_character_"]::before,
html body [data-component="MinimalMessage"][class*="_character_"]::after { content: none !important; display: none !important; }
html body [data-component="MinimalMessage"]:hover { background: transparent !important; box-shadow: none !important; }
[data-chat-scroll="true"] [data-virtual-index],
[data-chat-scroll="true"] [data-item-type="message"],
html body [data-component="MinimalMessage"] { overflow: visible !important; }
/* ── GILDED PORTRAIT RAIL: arched top, foil frame, light glint ── */
html body [data-component="MinimalMessage"]:is([data-part="user"], [data-part="character"], [data-part="streaming"][class*="_character_"]) > [class*="_avatar_"] {
grid-column: var(--me-avatar-column) !important;
grid-row: 1 / span 2 !important;
justify-self: var(--me-avatar-justify) !important;
position: sticky !important;
top: var(--me-avatar-sticky-top, 72px) !important;
align-self: start !important;
width: var(--me-avatar-width) !important;
min-width: var(--me-avatar-width) !important;
max-width: var(--me-avatar-width) !important;
height: var(--me-avatar-height) !important;
min-height: var(--me-avatar-height) !important;
max-height: var(--me-avatar-height) !important;
aspect-ratio: auto !important;
margin: 0 !important;
z-index: 12 !important;
overflow: hidden !important;
contain: paint !important;
isolation: isolate !important;
box-sizing: border-box !important;
border: 3px solid transparent !important;
border-radius: var(--gn-portrait-arch) var(--gn-portrait-arch) 8px 8px / calc(var(--gn-portrait-arch) * 0.7) calc(var(--gn-portrait-arch) * 0.7) 8px 8px !important;
background: linear-gradient(var(--gn-portrait-backing), var(--gn-portrait-backing)) padding-box, var(--gn-foil) border-box !important;
box-shadow: 0 0 0 2px #070504, 0 0 0 3px rgba(212, 175, 55, 0.45), 0 12px 34px rgba(0, 0, 0, 0.6), 0 0 34px rgba(212, 175, 55, 0.16) !important;
-webkit-mask-image: none !important;
mask-image: none !important;
}
html body [data-component="MinimalMessage"] > [class*="_avatar_"],
html body [data-component="MinimalMessage"] > [class*="_avatar_"] > *,
html body [data-component="MinimalMessage"] > [class*="_avatar_"] div,
html body [data-component="MinimalMessage"] > [class*="_avatar_"] picture {
overflow: hidden !important;
width: 100% !important;
height: 100% !important;
min-width: 100% !important;
min-height: 100% !important;
max-width: 100% !important;
max-height: 100% !important;
aspect-ratio: auto !important;
box-sizing: border-box !important;
}
html body [data-component="MinimalMessage"] > [class*="_avatar_"] img {
display: block !important;
width: 100% !important;
height: 100% !important;
min-width: 100% !important;
min-height: 100% !important;
max-width: none !important;
max-height: none !important;
object-fit: cover !important;
object-position: var(--me-img-x) var(--me-img-y) !important;
transform: scale(var(--me-img-scale)) !important;
transform-origin: var(--me-img-x) var(--me-img-y) !important;
opacity: 1 !important;
filter: saturate(1.04) contrast(1.05) brightness(0.97) !important;
border-radius: inherit !important;
box-sizing: border-box !important;
}
/* foot of the portrait melts into shadow with a warm gold rim light */
html body [data-component="MinimalMessage"] > [class*="_avatar_"]::after {
content: "" !important;
position: absolute !important;
inset: 0 !important;
z-index: 3 !important;
pointer-events: none !important;
background-image:
linear-gradient(to top, rgba(7, 5, 3, 0.80) 0%, rgba(7, 5, 3, 0) 30%),
linear-gradient(to top, rgba(212, 175, 55, 0.20) 0%, rgba(212, 175, 55, 0) 18%),
linear-gradient(180deg, rgba(255, 236, 180, 0.12), transparent 22%) !important;
box-shadow: inset 0 0 26px rgba(212, 175, 55, 0.16) !important;
border-radius: inherit !important;
}
/* a slanted glint crossing the portrait every few seconds (transform only = cheap) */
html body [data-component="MinimalMessage"] > [class*="_avatar_"]::before {
content: "" !important;
position: absolute !important;
top: -20% !important;
bottom: -20% !important;
left: 0 !important;
width: 34% !important;
z-index: 4 !important;
pointer-events: none !important;
background: linear-gradient(100deg, transparent, rgba(255, 238, 190, 0.22) 50%, transparent) !important;
transform: skewX(-18deg);
translate: -170% 0;
animation: gnGlint 11s ease-in-out infinite;
}
html body [data-component="MinimalMessage"][data-part="user"] > [class*="_avatar_"]::before { animation-delay: -5s; }
/* ── bubble lane ── */
html body [data-component="MinimalMessage"]:is([data-part="user"], [data-part="character"], [data-part="streaming"][class*="_character_"]) > [class*="_bubble_"] {
grid-column: var(--me-bubble-column) !important;
position: relative !important;
width: 100% !important;
max-width: 100% !important;
min-width: 0 !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
background: transparent !important;
border: 0 !important;
outline: 0 !important;
box-shadow: none !important;
}
/* header: tracked-capital gold name with a deco rule under it */
html body [data-component="MinimalMessage"] [class*="_header_"] {
display: flex !important;
flex-direction: column !important;
align-items: center !important;
justify-content: center !important;
gap: 0.35rem !important;
margin: 0 !important;
padding: 10px var(--me-content-pad) 28px var(--me-content-pad) !important;
min-height: 0 !important;
width: 100% !important;
text-align: center !important;
box-sizing: border-box !important;
}
html body [data-component="MinimalMessage"] [class*="_name_"] {
display: block !important;
width: 100% !important;
margin: 0 !important;
padding: 0 !important;
text-align: center !important;
font-family: var(--gn-font-display) !important;
font-weight: 400 !important;
font-size: clamp(1.25rem, 1.75vw, 1.85rem) !important;
line-height: 1.15 !important;
text-transform: uppercase;
letter-spacing: var(--gn-caps-tracking);
color: transparent !important;
-webkit-text-fill-color: transparent;
background: var(--gn-foil-text) 0 0 / 220% 100%;
-webkit-background-clip: text;
background-clip: text;
filter: drop-shadow(0 0 10px rgba(212, 175, 55, 0.30));
animation: gnFoil 7s linear infinite;
}
html body [data-component="MinimalMessage"] [class*="_nameUser_"] {
background: linear-gradient(115deg, #cfc2a0, #fff6dc 40%, #cfc2a0 80%) 0 0 / 220% 100%;
-webkit-background-clip: text;
background-clip: text;
filter: none;
}
html body [data-component="MinimalMessage"] [class*="_name_"]::after {
content: "";
display: block;
width: 100%;
height: 16px;
margin-top: 6px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='16' viewBox='0 0 220 16'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='1' x2='0'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='10' y='7.4' width='84' height='1.2' fill='url(%23a)'/%3E%3Crect x='126' y='7.4' width='84' height='1.2' fill='url(%23b)'/%3E%3Cpolygon points='110,2.8 115.2,8 110,13.2 104.8,8' fill='%23f4d57a' fill-opacity='1' stroke='%23fff0c2' stroke-width='0.8'/%3E%3Cpolygon points='110,6 112,8 110,10 108,8' fill='%230c0906' fill-opacity='1.0'/%3E%3Cpolygon points='98,6 100,8 98,10 96,8' fill='%23d4af37' fill-opacity='1.0'/%3E%3Cpolygon points='122,6 124,8 122,10 120,8' fill='%23d4af37' fill-opacity='1.0'/%3E%3Ccircle cx='90' cy='8' r='1' fill='%23f4d57a'/%3E%3Ccircle cx='130' cy='8' r='1' fill='%23f4d57a'/%3E%3C/svg%3E") center / auto 16px no-repeat;
-webkit-text-fill-color: initial;
}
html body [data-component="MinimalMessage"] [class*="_metaPill_"] {
display: inline-flex !important;
align-items: center !important;
justify-content: center !important;
align-self: center !important;
width: fit-content !important;
max-width: 100% !important;
margin: 0 !important;
padding: 0.12rem 0.7rem !important;
border: 0 !important;
background: transparent !important;
box-shadow: none !important;
font-family: var(--gn-font-mono) !important;
font-size: calc(0.9rem * var(--gn-meta-font-scale)) !important;
font-weight: 700 !important;
line-height: 1 !important;
color: var(--gn-date-color) !important;
opacity: 0.95 !important;
gap: 9px !important;
white-space: nowrap !important;
text-shadow: 0 0 8px rgba(8, 6, 3, 0.9);
}
/* little gold rules either side of the date */
html body [data-component="MinimalMessage"] [class*="_metaPill_"]::before,
html body [data-component="MinimalMessage"] [class*="_metaPill_"]::after {
content: "";
flex: 0 0 auto;
width: 26px;
height: 1px;
background: linear-gradient(90deg, transparent, var(--gn-gold));
}
html body [data-component="MinimalMessage"] [class*="_metaPill_"]::after { transform: scaleX(-1); }
@media (max-width: 720px) {
html body [data-component="MinimalMessage"] [class*="_metaPill_"]::before,
html body [data-component="MinimalMessage"] [class*="_metaPill_"]::after { display: none; }
}
/* ── message panel: smoked glass, double gold rule, corner brackets, crest ── */
html body [data-component="MinimalMessage"] [data-component="MessageContent"] {
position: relative !important;
isolation: isolate !important;
width: 100% !important;
max-width: 100% !important;
min-width: 0 !important;
margin: 0 !important;
padding: 9px var(--me-content-pad) var(--me-content-pad) var(--me-content-pad) !important;
border-radius: var(--me-content-glass-radius) !important;
box-sizing: border-box !important;
overflow: visible !important;
color: var(--gn-message-color) !important;
font-family: var(--gn-font) !important;
text-shadow: var(--gn-text-glow);
text-align: left !important;
}
html body [data-component="MinimalMessage"] [data-component="MessageContent"]::before {
content: "" !important;
position: absolute !important;
inset: 0 !important;
z-index: -1 !important;
border: 1px solid var(--me-content-glass-border) !important;
border-radius: inherit !important;
background: var(--me-content-glass-bg) !important;
box-shadow:
inset 0 0 0 5px rgba(7, 5, 3, 0.55),
inset 0 0 0 6px rgba(212, 175, 55, 0.20),
inset 0 1px 0 rgba(255, 236, 180, 0.10),
var(--me-content-glass-shadow) !important;
backdrop-filter: blur(var(--me-content-glass-blur)) saturate(110%) !important;
-webkit-backdrop-filter: blur(var(--me-content-glass-blur)) saturate(110%) !important;
pointer-events: none !important;
}
html body [data-component="MinimalMessage"] [data-component="MessageContent"]::after {
content: "";
position: absolute;
top: -26px;
left: 0;
right: 0;
bottom: 0;
background:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='28' viewBox='0 0 96 28'%3E%3Cdefs%3E%3ClinearGradient id='f' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37' stop-opacity='1'/%3E%3C/linearGradient%3E%3ClinearGradient id='r' x1='1' x2='0'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37' stop-opacity='1'/%3E%3C/linearGradient%3E%3ClinearGradient id='d' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23fff0c2'/%3E%3Cstop offset='.5' stop-color='%23d4af37'/%3E%3Cstop offset='1' stop-color='%239a7420'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='2' y='19' width='32' height='1.4' fill='url(%23f)'/%3E%3Crect x='62' y='19' width='32' height='1.4' fill='url(%23r)'/%3E%3Cpath d='M34 19.7 Q40 19.7 42 14' fill='none' stroke='%23d4af37' stroke-width='1.2'/%3E%3Cpath d='M62 19.7 Q56 19.7 54 14' fill='none' stroke='%23d4af37' stroke-width='1.2'/%3E%3Cpolygon points='48,2 60,14 48,26 36,14' fill='url(%23d)' stroke='%23fff0c2' stroke-opacity='.7' stroke-width='.8'/%3E%3Cpolygon points='48,8 54,14 48,20 42,14' fill='%230c0906' fill-opacity='.85'/%3E%3Cpolygon points='48,11 51,14 48,17 45,14' fill='%23f4d57a'/%3E%3Cpolygon points='27,17.7 29,19.7 27,21.7 25,19.7' fill='%23f4d57a' fill-opacity='1.0'/%3E%3Cpolygon points='69,17.7 71,19.7 69,21.7 67,19.7' fill='%23f4d57a' fill-opacity='1.0'/%3E%3Ccircle cx='19' cy='19.7' r='1.1' fill='%23f4d57a'/%3E%3Ccircle cx='77' cy='19.7' r='1.1' fill='%23f4d57a'/%3E%3C/svg%3E") center top 7px / 96px 28px no-repeat,
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cg transform='' fill='none' stroke-linecap='square'%3E%3Cpath d='M1 27 V5 Q1 1 5 1 H27' stroke='%23d4af37' stroke-width='1.6'/%3E%3Cpath d='M6 27 V10 Q6 6 10 6 H27' stroke='%23f4d57a' stroke-width='.8' stroke-opacity='.55'/%3E%3Cpolygon points='1,-1.6 3.6,1 1,3.6 -1.6,1' fill='%23fff0c2' fill-opacity='1.0'/%3E%3Cpolygon points='12,10.5 13.5,12 12,13.5 10.5,12' fill='%23f4d57a' fill-opacity='0.8'/%3E%3C/g%3E%3C/svg%3E") left 8px top 34px / 28px 28px no-repeat,
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cg transform='translate(28 0) scale(-1 1)' fill='none' stroke-linecap='square'%3E%3Cpath d='M1 27 V5 Q1 1 5 1 H27' stroke='%23d4af37' stroke-width='1.6'/%3E%3Cpath d='M6 27 V10 Q6 6 10 6 H27' stroke='%23f4d57a' stroke-width='.8' stroke-opacity='.55'/%3E%3Cpolygon points='1,-1.6 3.6,1 1,3.6 -1.6,1' fill='%23fff0c2' fill-opacity='1.0'/%3E%3Cpolygon points='12,10.5 13.5,12 12,13.5 10.5,12' fill='%23f4d57a' fill-opacity='0.8'/%3E%3C/g%3E%3C/svg%3E") right 8px top 34px / 28px 28px no-repeat,
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cg transform='translate(0 28) scale(1 -1)' fill='none' stroke-linecap='square'%3E%3Cpath d='M1 27 V5 Q1 1 5 1 H27' stroke='%23d4af37' stroke-width='1.6'/%3E%3Cpath d='M6 27 V10 Q6 6 10 6 H27' stroke='%23f4d57a' stroke-width='.8' stroke-opacity='.55'/%3E%3Cpolygon points='1,-1.6 3.6,1 1,3.6 -1.6,1' fill='%23fff0c2' fill-opacity='1.0'/%3E%3Cpolygon points='12,10.5 13.5,12 12,13.5 10.5,12' fill='%23f4d57a' fill-opacity='0.8'/%3E%3C/g%3E%3C/svg%3E") left 8px bottom 8px / 28px 28px no-repeat,
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cg transform='translate(28 28) scale(-1 -1)' fill='none' stroke-linecap='square'%3E%3Cpath d='M1 27 V5 Q1 1 5 1 H27' stroke='%23d4af37' stroke-width='1.6'/%3E%3Cpath d='M6 27 V10 Q6 6 10 6 H27' stroke='%23f4d57a' stroke-width='.8' stroke-opacity='.55'/%3E%3Cpolygon points='1,-1.6 3.6,1 1,3.6 -1.6,1' fill='%23fff0c2' fill-opacity='1.0'/%3E%3Cpolygon points='12,10.5 13.5,12 12,13.5 10.5,12' fill='%23f4d57a' fill-opacity='0.8'/%3E%3C/g%3E%3C/svg%3E") right 8px bottom 8px / 28px 28px no-repeat;
pointer-events: none;
opacity: calc(0.95 * var(--gn-msg-decor));
animation: gnBob 5s ease-in-out infinite;
}
html body [data-component="MinimalMessage"] [data-component="MessageContent"] > [class*="_prose_"] {
position: relative !important;
z-index: 1 !important;
width: 100% !important;
max-width: 100% !important;
min-width: 0 !important;
margin: 0 !important;
box-sizing: border-box !important;
padding: 6px 4px 0 !important;
color: var(--gn-message-color) !important;
font-family: var(--gn-font) !important;
font-size: calc(1rem * var(--gn-chat-font-scale)) !important;
line-height: 1.72 !important;
text-wrap: pretty;
}
html body [data-component="MinimalMessage"] [data-component="MessageContent"] :is(img, video, canvas, svg):not([class*="lucide"]) {
display: block !important;
width: auto !important;
max-width: 100% !important;
height: auto !important;
object-fit: contain !important;
border-radius: 6px !important;
border: 1px solid var(--gn-card-border);
}
/* prose */
[data-component="MessageContent"] [class*="_prose_"] :is(h1, h2, h3, h4) {
font-family: var(--gn-font-display) !important;
color: var(--gn-heading-color) !important;
text-transform: uppercase;
letter-spacing: 0.12em;
font-weight: 400 !important;
}
[data-component="MessageContent"] [class*="_prose_"] :is(p, ul, ol, blockquote, pre) { margin-block: 0.7em; }
[data-component="MessageContent"] [class*="_prose_"] :is(em, [class*="_proseItalic_"]) { color: var(--gn-action-color) !important; }
[data-component="MessageContent"] [class*="_prose_"] :is(strong, [class*="_proseBold_"]) { color: var(--gn-bold-color) !important; }
[data-component="MessageContent"] [class*="_prose_"] [class*="_proseDialogue_"] { color: var(--gn-dialogue-color) !important; }
[data-component="MessageContent"] [class*="_prose_"] :is(a, a:visited) {
color: var(--gn-link-color) !important;
text-decoration-color: rgba(255, 223, 154, 0.5);
text-underline-offset: 0.2em;
}
[data-component="MessageContent"] [class*="_prose_"] ul > li::marker { content: "\25C6 "; color: var(--gn-gold); font-size: 0.7em; }
[data-component="MessageContent"] [class*="_prose_"] ol > li::marker { color: var(--gn-gold); font-weight: 700; }
[data-component="MessageContent"] [class*="_prose_"] blockquote {
position: relative;
margin-left: 0;
padding: 10px 14px 10px 40px;
border: 0;
border-left: 2px solid var(--gn-gold);
border-radius: 0 6px 6px 0;
background: linear-gradient(90deg, rgba(212, 175, 55, 0.12), rgba(212, 175, 55, 0.03));
}
[data-component="MessageContent"] [class*="_prose_"] blockquote::before {
content: "";
position: absolute;
left: 13px;
top: 14px;
width: 14px;
height: 14px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpolygon points='7,1.5 12.5,7 7,12.5 1.5,7' fill='%23d4af37' fill-opacity='1' stroke='%23fff0c2' stroke-width='0.8'/%3E%3Cpolygon points='7,4.8 9.2,7 7,9.2 4.8,7' fill='%230c0906' fill-opacity='0.85'/%3E%3C/svg%3E") center / contain no-repeat;
}
[data-component="MessageContent"] [class*="_prose_"] hr {
border: 0;
height: 16px;
margin: 1.1em 0;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='16' viewBox='0 0 220 16'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='1' x2='0'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='10' y='7.4' width='84' height='1.2' fill='url(%23a)'/%3E%3Crect x='126' y='7.4' width='84' height='1.2' fill='url(%23b)'/%3E%3Cpolygon points='110,2.8 115.2,8 110,13.2 104.8,8' fill='%23f4d57a' fill-opacity='1' stroke='%23fff0c2' stroke-width='0.8'/%3E%3Cpolygon points='110,6 112,8 110,10 108,8' fill='%230c0906' fill-opacity='1.0'/%3E%3Cpolygon points='98,6 100,8 98,10 96,8' fill='%23d4af37' fill-opacity='1.0'/%3E%3Cpolygon points='122,6 124,8 122,10 120,8' fill='%23d4af37' fill-opacity='1.0'/%3E%3Ccircle cx='90' cy='8' r='1' fill='%23f4d57a'/%3E%3Ccircle cx='130' cy='8' r='1' fill='%23f4d57a'/%3E%3C/svg%3E") center / auto 16px no-repeat;
}
[data-component="MessageContent"] code:not(pre code) {
font-family: var(--gn-font-mono) !important;
background: var(--gn-code-bg);
border: 1px solid rgba(212, 175, 55, 0.28);
border-radius: 4px;
padding: 0.08em 0.4em;
color: var(--gn-accent-soft);
}
[data-component="MessageContent"] [class*="_codeBlock_"],
[data-component="MessageContent"] pre {
background: var(--gn-code-bg) !important;
border: 1px solid rgba(212, 175, 55, 0.26);
border-radius: 6px;
}
[data-component="MessageContent"] [class*="_codeHeader_"] {
background: rgba(212, 175, 55, 0.10);
border-bottom: 1px solid rgba(212, 175, 55, 0.20);
}
[data-component="MessageContent"] [class*="_codeLang_"] { color: var(--gn-gold-bright); }
[data-component="MessageContent"] [class*="_codeCopy_"] { color: var(--gn-accent-soft); }
[data-component="MessageContent"] [class*="_codeCopy_"]:hover { color: var(--gn-gold-pale); background: var(--gn-tab-active); }
[data-component="MessageEditArea"] textarea {
font-family: var(--gn-font) !important;
color: var(--gn-message-color) !important;
caret-color: var(--gn-gold) !important;
}
/* ★ COLOURED TEXT: <font color="#5E8DE3">…</font> (or an inline colour style) wins over the theme's
dialogue / *italic* / bold / link colours. Without this, quoted speech, italics or bold inside the
colour tag get repainted by the theme and the custom colour is lost. (Same method as Pink Jellyfish.) */
[data-component="MessageContent"] [class*="_prose_"] :is(font[color], [style*="color"]) :is(em, strong, b, i, a, [class*="_proseItalic_"], [class*="_proseBold_"], [class*="_proseDialogue_"]):not(font[color]):not([style*="color"]),
[data-component="BubbleMessage"] :is(font[color], [style*="color"]) :is(em, strong, b, i, a):not(font[color]):not([style*="color"]) {
color: inherit !important;
}
[data-component="MessageContent"] [class*="_prose_"] :is(font[color], [style*="color"]) {
text-shadow: 0 0 12px color-mix(in srgb, currentColor 26%, transparent);
}
/* reasoning / thinking blocks + message actions */
html body [data-component="MinimalMessage"] [class*="_container_"] {
border: 1px solid rgba(212, 175, 55, 0.22) !important;
border-radius: 6px !important;
background: rgba(8, 6, 3, 0.45) !important;
}
html body [data-component="MinimalMessage"] [class*="_container_"] > button[type="button"]:has(svg.lucide-brain) { color: var(--gn-gold-bright) !important; }
html body [data-component="MinimalMessage"] > [class*="_actionsWrap_"] { opacity: 0.55; transition: opacity 0.2s ease; }
html body [data-component="MinimalMessage"]:hover > [class*="_actionsWrap_"] { opacity: 1; }
[data-component="SwipeControls"] button, [data-component="MinimalMessage"] button[data-hone-btn] { border-radius: 6px; color: var(--gn-accent-soft); }
[data-component="SwipeControls"] button:hover, [data-component="MinimalMessage"] button[data-hone-btn]:hover { background: var(--gn-tab-active); color: var(--gn-gold-pale); }
@media (max-width: 720px) {
html body [data-component="MinimalMessage"]:is([data-part="user"], [data-part="character"], [data-part="streaming"][class*="_character_"]) {
--me-avatar-width: clamp(96px, 28vw, 150px);
--me-avatar-height: clamp(220px, 40vh, 340px);
--gn-portrait-arch: 44px;
--me-content-pad: 14px;
}
html body [data-component="MinimalMessage"] [data-component="MessageContent"]::after { opacity: calc(0.7 * var(--gn-msg-decor)); }
}
/* ═══════════════════════════════════════════════════════════
INPUT: smoked glass, double gold rule, a crest perched on top
═══════════════════════════════════════════════════════════ */
[data-component="InputArea"] {
position: relative;
--lcs-glass-bg: var(--gn-input-bg);
background: var(--gn-input-bg);
border: 1px solid var(--gn-input-border) !important;
border-radius: calc(var(--gn-radius) + 2px) !important;
box-shadow: inset 0 0 0 4px rgba(7, 5, 3, 0.55), inset 0 0 0 5px rgba(212, 175, 55, 0.18),
0 8px 28px rgba(0, 0, 0, 0.55), 0 0 30px rgba(212, 175, 55, 0.12);
backdrop-filter: blur(var(--gn-blur));
-webkit-backdrop-filter: blur(var(--gn-blur));
}
[data-component="InputArea"]::before {
content: "";
position: absolute;
top: -24px;
left: 22px;
width: 130px;
height: 34px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='34' viewBox='0 0 130 34'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23d4af37'/%3E%3Cstop offset='1' stop-color='%23d4af37' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='d' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23fff0c2'/%3E%3Cstop offset='.55' stop-color='%23d4af37'/%3E%3Cstop offset='1' stop-color='%239a7420'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='24' y='26' width='104' height='1.3' fill='url(%23a)'/%3E%3Cpolygon points='13,8 25,20 13,32 1,20' fill='url(%23d)' stroke='%23fff0c2' stroke-opacity='.7' stroke-width='.8'/%3E%3Cpolygon points='13,14 19,20 13,26 7,20' fill='%230c0906' fill-opacity='.85'/%3E%3Cpolygon points='13,17 16,20 13,23 10,20' fill='%23f4d57a'/%3E%3Cpath d='M25 20 Q36 20 40 26' fill='none' stroke='%23d4af37' stroke-width='1.2'/%3E%3Cpolygon points='52,24.6 54,26.6 52,28.6 50,26.6' fill='%23f4d57a' fill-opacity='1.0'/%3E%3Cpolygon points='70,25.1 71.5,26.6 70,28.1 68.5,26.6' fill='%23d4af37' fill-opacity='1.0'/%3E%3Cpolygon points='86,25.5 87.1,26.6 86,27.700000000000003 84.9,26.6' fill='%23d4af37' fill-opacity='1.0'/%3E%3C/svg%3E") left center / contain no-repeat;
pointer-events: none;
animation: gnBob 5s ease-in-out infinite;
}
[data-component="InputArea"] textarea, [data-component="InputArea"] input {
font-family: var(--gn-font) !important;
font-size: calc(1em * var(--gn-chat-font-scale));
color: var(--gn-font-color) !important;
caret-color: var(--gn-gold) !important;
}
[data-component="InputArea"] textarea::placeholder { color: var(--gn-font-color-dim) !important; opacity: 1; font-style: italic; }
[data-component="InputArea"] [class*="_inputWrapper_"] {
border-radius: 6px !important;
border: 1px solid rgba(212, 175, 55, 0.28) !important;
background: rgba(5, 4, 2, 0.50) !important;
}
[data-component="InputArea"] [class*="_actionBtn_"], [data-component="InputArea"] [class*="_attachBtn_"] { border-radius: 6px !important; color: var(--gn-accent-soft); }
[data-component="InputArea"] [class*="_actionBtn_"]:hover, [data-component="InputArea"] [class*="_attachBtn_"]:hover,
[data-component="InputArea"] [class*="_actionBtnHasSelection_"], [data-component="InputArea"] [aria-pressed="true"] {
background: var(--gn-tab-active) !important;
color: var(--gn-gold-pale);
}
/* send button: gold foil coin with a breathing glow */
[data-component="InputArea"] [class*="_sendBtn_"] {
border: 1px solid #fff0c2 !important;
border-radius: 50% !important;
color: #1a1204 !important;
background: radial-gradient(circle at 32% 28%, #fff6d6 0%, #f4d57a 34%, #d4af37 62%, #8a6414 100%) !important;
animation: gnPulse 3.2s ease-in-out infinite;
}
[data-component="InputArea"] [class*="_sendBtn_"]:hover:not(:disabled) {
background: radial-gradient(circle at 32% 28%, #fffbe8 0%, #ffe494 34%, #e6bf48 62%, #9a7420 100%) !important;
transform: scale(1.1);
}
/* ═══════════════════════════════════════════════════════════
BUTTONS, TOGGLES, TOASTS
═══════════════════════════════════════════════════════════ */
[data-variant="primary"] {
background: linear-gradient(115deg, #a67c1f 0%, #e9c458 30%, #fff0c2 50%, #e9c458 70%, #a67c1f 100%) 0% 0 / 220% 100% !important;
color: #1a1204 !important;
border: 1px solid #fff0c2 !important;
border-radius: 6px !important;
font-weight: 700 !important;
letter-spacing: 0.04em;
box-shadow: 0 4px 16px rgba(212, 175, 55, 0.30);
transition: background-position 0.6s ease, transform 0.15s ease, box-shadow 0.3s ease;
}
[data-variant="primary"]:hover {
background-position: 100% 0 !important;
transform: translateY(-1px);
box-shadow: 0 6px 22px rgba(244, 213, 122, 0.45);
}
[data-state="checked"] { background-color: var(--gn-gold) !important; }
[data-sonner-toast] {
font-family: var(--gn-font) !important;
background: var(--gn-modal) !important;
color: var(--gn-font-color) !important;
border: 1px solid var(--gn-glass-border) !important;
border-radius: 8px !important;
box-shadow: inset 0 0 0 3px rgba(7, 5, 3, 0.6), inset 0 0 0 4px rgba(212, 175, 55, 0.18), 0 10px 34px rgba(0, 0, 0, 0.65) !important;
}
[data-reasoning-toggle="true"] { border-radius: 6px; color: var(--gn-gold-bright); }
[data-component="DesktopPwaTitlebar"] {
background: linear-gradient(90deg, rgba(26, 19, 9, 0.96), rgba(12, 9, 5, 0.96)) !important;
color: var(--gn-font-color) !important;
border-bottom: 1px solid var(--gn-glass-border);
}
/* ═══════════════════════════════════════════════════════════
HOME PAGE: THE GALLERY
Every character card is a gilded display niche: an arched frame with a
slowly turning sunburst halo, a portrait window rimmed in spinning gold
foil, gold dust drifting up, a keystone on the arch, an engraved nameplate
and a glint of light that crosses the frame now and then.
Hover = the room "brightens": everything turns faster, the portrait rises.
The card keeps the host's 3:4 footprint (its list virtualizer relies on it).
═══════════════════════════════════════════════════════════ */
@property --gn-ang { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
[data-component="LandingPageChats"] {
--gv-ink: var(--gn-font-color);
--gv-muted: var(--gn-font-color-soft);
--gv-glow: var(--gn-gold); /* frame + halo glow colour */
--gv-label: var(--gn-gold-bright); /* tiny "presenting" label */
--gv-spin-speed: 9s; /* foil glint orbiting the portrait */
--gv-burst-speed: 80s; /* sunburst turn */
--gv-float-speed: 7s; /* portrait hover-float */
--gv-rise-speed: 18s; /* gold dust drifting up the card */
--gv-glint-speed: 9s; /* light sweeping across the card */
--gv-rise-opacity: 0.9; /* 0 hides the dust */
--lcs-glass-bg: var(--gn-glass);
--lcs-glass-bg-hover: var(--gn-glass-hover);
--lcs-glass-border: var(--gn-glass-border);
--lcs-glass-border-hover: var(--gn-glass-border-hover);
font-family: var(--gn-font) !important;
}
[data-component="LandingPageChats"] [class*="_cardTilt_"] { min-width: 0 !important; }
/* hovered card: faster, brighter */
[data-component="LandingPageChats"] [class*="_card_"]:not([class*="_cardContent_"]):hover {
--gv-spin-speed: 3.2s;
--gv-burst-speed: 24s;
--gv-float-speed: 3.4s;
--gv-rise-speed: 8s;
--gv-glint-speed: 3.6s;
}
/* ── the niche ── */
[data-component="LandingPageChats"] [class*="_card_"]:not([class*="_cardContent_"]) {
position: relative !important;
isolation: isolate !important;
overflow: hidden !important;
border: 1px solid rgba(212, 175, 55, 0.60) !important;
border-radius: 46% 46% 12px 12px / 26% 26% 12px 12px !important;
background:
radial-gradient(ellipse 70% 38% at 50% 0%, rgba(255, 232, 170, 0.22), transparent 72%),
radial-gradient(ellipse 80% 26% at 50% 100%, rgba(212, 175, 55, 0.16), transparent 75%),
linear-gradient(180deg, #1e160b 0%, #100b06 55%, #070504 100%) !important;
box-shadow:
inset 0 0 0 5px rgba(7, 5, 3, 0.75),
inset 0 0 0 6px rgba(212, 175, 55, 0.30),
0 10px 26px rgba(0, 0, 0, 0.60),
0 0 22px rgba(212, 175, 55, 0.14) !important;
transition: box-shadow 0.35s ease, border-color 0.35s ease;
}
[data-component="LandingPageChats"] [class*="_card_"]:not([class*="_cardContent_"]):hover {
border-color: rgba(255, 232, 160, 0.95) !important;
box-shadow:
inset 0 0 0 5px rgba(7, 5, 3, 0.75),
inset 0 0 0 6px rgba(244, 213, 122, 0.55),
inset 0 0 40px rgba(212, 175, 55, 0.18),
0 14px 34px rgba(0, 0, 0, 0.65),
0 0 40px rgba(244, 213, 122, 0.38) !important;
}
/* sunburst halo turning behind the portrait */
[data-component="LandingPageChats"] [class*="_card_"]:not([class*="_cardContent_"])::before {
content: "";
position: absolute;
z-index: 0;
left: 50%;
top: 32%;
width: 330%;
aspect-ratio: 1;
translate: -50% -50%;
background: repeating-conic-gradient(from 0deg, rgba(244, 213, 122, 0.20) 0deg 3deg, transparent 3deg 12deg);
-webkit-mask-image: radial-gradient(circle closest-side, #000 0%, rgba(0, 0, 0, 0.5) 24%, transparent 52%);
mask-image: radial-gradient(circle closest-side, #000 0%, rgba(0, 0, 0, 0.5) 24%, transparent 52%);
pointer-events: none;
will-change: rotate;
animation: gvBurst var(--gv-burst-speed) linear infinite;
}
@keyframes gvBurst { to { rotate: 360deg; } }
/* light glint crossing the whole card */
[data-component="LandingPageChats"] [class*="_card_"]:not([class*="_cardContent_"])::after {
content: "";
position: absolute;
z-index: 8;
top: -20%;
bottom: -20%;
left: 0;
width: 36%;
background: linear-gradient(100deg, transparent 0%, rgba(255, 238, 190, 0.26) 50%, transparent 100%);
transform: skewX(-18deg);
translate: -170% 0;
pointer-events: none;
will-change: translate;
animation: gnGlint var(--gv-glint-speed) ease-in-out infinite;
}
/* stagger neighbours so the whole row doesn't flash at once */
[data-component="LandingPageChats"] [class*="_cardTilt_"]:nth-child(3n+2) [class*="_card_"]::after { animation-delay: -3s; }
[data-component="LandingPageChats"] [class*="_cardTilt_"]:nth-child(3n+3) [class*="_card_"]::after { animation-delay: -6s; }
[data-component="LandingPageChats"] [class*="_cardTilt_"]:nth-child(2n) [class*="_card_"]::before { animation-delay: -30s; }
/* ── whole-card button keeps the 3:4 footprint ── */
[data-component="LandingPageChats"] [class*="_cardBtn_"] {
position: relative !important;
display: block !important;
width: 100% !important;
aspect-ratio: 3 / 4 !important;
padding: 0 !important;
color: var(--gv-ink) !important;
background: transparent !important;
}
/* gold dust drifting up the niche (behind the portrait) */
[data-component="LandingPageChats"] [class*="_cardBtn_"]::before {
content: "";
position: absolute;
inset: 0;
z-index: 1;
opacity: var(--gv-rise-opacity);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='170' viewBox='0 0 16 170'%3E%3Cpath d='M8.0 133.5 Q9.43 138.57 14.5 140 Q9.43 141.43 8.0 146.5 Q6.57 141.43 1.5 140 Q6.57 138.57 8.0 133.5Z' fill='%23f4d57a' fill-opacity='1.0'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='230' viewBox='0 0 10 230'%3E%3Ccircle cx='5.0' cy='120' r='1.7' fill='%23fff0c2' fill-opacity='0.9'/%3E%3Ccircle cx='5.0' cy='120' r='5.1' fill='%23fff0c2' fill-opacity='.14'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='130' viewBox='0 0 10 130'%3E%3Cpolygon points='5.0,56.6 8.4,60 5.0,63.4 1.6,60' fill='%23d4af37' fill-opacity='0.95'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='290' viewBox='0 0 12 290'%3E%3Cpath d='M6.0 195.5 Q6.99 199.01 10.5 200 Q6.99 200.99 6.0 204.5 Q5.01 200.99 1.5 200 Q5.01 199.01 6.0 195.5Z' fill='%23fff0c2' fill-opacity='1.0'/%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='210' viewBox='0 0 12 210'%3E%3Ccircle cx='6.0' cy='100' r='2.4' fill='%23f4d57a' fill-opacity='0.9'/%3E%3Ccircle cx='6.0' cy='100' r='7.199999999999999' fill='%23f4d57a' fill-opacity='.14'/%3E%3C/svg%3E");
background-repeat: repeat-y, repeat-y, repeat-y, repeat-y, repeat-y;
background-size: 16px 170px, 10px 230px, 10px 130px, 12px 290px, 12px 210px;
background-position: 6% 0, 94% 0, 88% 0, 12% 0, 3% 0;
-webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 60%, transparent 80%);
mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 60%, transparent 80%);
pointer-events: none;
animation: gvDust var(--gv-rise-speed) linear infinite;
}
@keyframes gvDust {
from { background-position: 6% 0, 94% 0, 88% 0, 12% 0, 3% 0; }
to { background-position: 6% -170px, 94% -230px, 88% -130px, 12% -290px, 3% -210px; }
}
/* keystone at the apex of the arch */
[data-component="LandingPageChats"] [class*="_cardBtn_"]::after {
content: "";
position: absolute;
z-index: 6;
top: 1.2%;
left: 50%;
width: 24%;
aspect-ratio: 54 / 34;
margin-left: -12%;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='54' height='34' viewBox='0 0 54 34'%3E%3Cdefs%3E%3ClinearGradient id='d' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23fff0c2'/%3E%3Cstop offset='.5' stop-color='%23d4af37'/%3E%3Cstop offset='1' stop-color='%239a7420'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cline x1='18.2' y1='20.3' x2='5.8' y2='13.7' stroke='%23f4d57a' stroke-width='1.3' stroke-linecap='round' stroke-opacity='.85'/%3E%3Cline x1='20.8' y1='17.1' x2='12.2' y2='6.1' stroke='%23f4d57a' stroke-width='1.3' stroke-linecap='round' stroke-opacity='.85'/%3E%3Cline x1='24.6' y1='15.3' x2='21.2' y2='1.7' stroke='%23f4d57a' stroke-width='1.3' stroke-linecap='round' stroke-opacity='.85'/%3E%3Cline x1='29.4' y1='15.3' x2='32.8' y2='1.7' stroke='%23f4d57a' stroke-width='1.3' stroke-linecap='round' stroke-opacity='.85'/%3E%3Cline x1='33.2' y1='17.1' x2='41.8' y2='6.1' stroke='%23f4d57a' stroke-width='1.3' stroke-linecap='round' stroke-opacity='.85'/%3E%3Cline x1='35.8' y1='20.3' x2='48.2' y2='13.7' stroke='%23f4d57a' stroke-width='1.3' stroke-linecap='round' stroke-opacity='.85'/%3E%3Cpolygon points='27,14 38,25 27,36 16,25' fill='url(%23d)' stroke='%23fff0c2' stroke-opacity='.8' stroke-width='.9'/%3E%3Cpolygon points='27,20 32,25 27,30 22,25' fill='%230c0906' fill-opacity='.85'/%3E%3Cpolygon points='27,22.5 29.5,25 27,27.5 24.5,25' fill='%23f4d57a'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
filter: drop-shadow(0 0 6px rgba(244, 213, 122, 0.7));
transition: scale 0.3s cubic-bezier(0.34, 1.8, 0.5, 1);
pointer-events: none;
animation: gnGlow 3.4s ease-in-out infinite;
}
[data-component="LandingPageChats"] [class*="_card_"]:not([class*="_cardContent_"]):hover [class*="_cardBtn_"]::after { scale: 1.25; }
/* ── the portrait window: arched, rimmed in spinning gold foil ── */
[data-component="LandingPageChats"] [class*="_cardImage_"] {
position: absolute !important;
top: 11% !important;
left: 15% !important;
z-index: 3 !important;
width: 70% !important;
height: auto !important;
aspect-ratio: 1 / 1.08 !important;
box-sizing: border-box !important;
border: 3px solid transparent !important;
border-radius: 50% 50% 8px 8px / 38% 38% 8px 8px !important;
background:
linear-gradient(var(--gn-ink), var(--gn-ink)) padding-box,
conic-gradient(from var(--gn-ang), #8a6414, #f4d57a 10%, #fff6d6 15%, #d4af37 24%, #8a6414 42%, #5c4413 52%, #d4af37 68%, #fff0c2 78%, #8a6414 100%) border-box !important;
box-shadow:
0 0 0 2px #070504,
0 0 0 3px rgba(212, 175, 55, 0.50),
0 0 28px rgba(212, 175, 55, 0.40),
0 10px 22px rgba(0, 0, 0, 0.55) !important;
overflow: hidden !important;
isolation: isolate !important;
animation: gvFloat var(--gv-float-speed) ease-in-out infinite, gvSpin var(--gv-spin-speed) linear infinite;
}
@keyframes gvFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -4px; } }
@keyframes gvSpin { to { --gn-ang: 360deg; } }
[data-component="LandingPageChats"] [class*="_cardImage_"] :is(img, picture img) {
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
filter: saturate(1.05) contrast(1.05) brightness(0.97) !important;
transition: scale 0.6s ease;
}
[data-component="LandingPageChats"] [class*="_card_"]:not([class*="_cardContent_"]):hover [class*="_cardImage_"] :is(img, picture img) { scale: 1.06; }
[data-component="LandingPageChats"] [class*="_cardImageOverlay_"] { display: none !important; }
/* top light + shadowed foot */
[data-component="LandingPageChats"] [class*="_cardImage_"]::before {
content: "";
position: absolute;
inset: 0;
z-index: 4;
border-radius: inherit;
background:
radial-gradient(ellipse 55% 22% at 50% 6%, rgba(255, 240, 200, 0.40), transparent 72%),
linear-gradient(180deg, transparent 58%, rgba(7, 5, 3, 0.58) 100%);
pointer-events: none;
}
[data-component="LandingPageChats"] [class*="_cardImage_"]::after {
content: "";
position: absolute;
inset: 0;
z-index: 5;
border-radius: inherit;
box-shadow: inset 0 0 0 1px rgba(255, 240, 200, 0.30), inset 0 0 22px rgba(212, 175, 55, 0.28);
pointer-events: none;
}
/* ── engraved nameplate ── */
[data-component="LandingPageChats"] [class*="_cardContent_"] {
position: absolute !important;
top: auto !important;
right: 10px !important;
bottom: 10px !important;
left: 10px !important;
z-index: 4 !important;
display: flex !important;
flex-direction: column !important;
justify-content: space-between !important;
gap: 2px !important;
height: 28% !important;
padding: 4px 4px 0 !important;
border: 0 !important;
color: var(--gv-ink) !important;
background: transparent !important;
}
[data-component="LandingPageChats"] [class*="_cardName_"] {
position: relative !important;
display: block !important;
min-width: 0 !important;
margin: 0 !important;
font: 400 14px/1.2 var(--gn-font-display) !important;
text-transform: uppercase;
letter-spacing: 0.14em !important;
text-align: center !important;
color: transparent !important;
-webkit-text-fill-color: transparent;
background: var(--gn-foil-text) 0 0 / 220% 100%;
-webkit-background-clip: text;
background-clip: text;
filter: drop-shadow(0 0 6px rgba(212, 175, 55, 0.35));
animation: gnFoil 7s linear infinite;
}
[data-component="LandingPageChats"] [class*="_cardName_"] svg {
position: absolute !important;
top: 0 !important;
right: 0 !important;
width: 9px !important;
height: 9px !important;
color: var(--gn-accent-soft) !important;
-webkit-text-fill-color: initial;
}
[data-component="LandingPageChats"] [class*="_cardName_"]::before {
content: "\25C6 presenting \25C6";
display: block;
margin-bottom: 3px;
color: var(--gv-label);
-webkit-text-fill-color: var(--gv-label);
font: 500 7.5px/1 var(--gn-font);
font-style: italic;
letter-spacing: 0.2em;
text-transform: lowercase;
opacity: 0.95;
}
[data-component="LandingPageChats"] [class*="_cardName_"] span {
display: block !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
white-space: nowrap !important;
}
[data-component="LandingPageChats"] [class*="_cardMeta_"] {
display: flex !important;
flex-wrap: wrap !important;
align-content: center !important;
align-items: center !important;
justify-content: center !important;
gap: 1px 6px !important;
min-height: 29px !important;
padding: 3px 10px !important;
border: 1px solid rgba(212, 175, 55, 0.50) !important;
border-radius: 3px !important;
color: var(--gv-muted) !important;
background: linear-gradient(180deg, rgba(212, 175, 55, 0.12), rgba(6, 4, 2, 0.70)) !important;
box-shadow: inset 0 0 0 2px rgba(6, 4, 2, 0.6), inset 0 0 0 3px rgba(212, 175, 55, 0.16) !important;
}
[data-component="LandingPageChats"] [class*="_cardMeta_"]::before {
content: "last encore";
flex-basis: 100%;
color: var(--gn-gold-bright);
font: italic 500 7px/1 var(--gn-font);
letter-spacing: 0.14em;
text-align: center;
opacity: 0.9;
}
[data-component="LandingPageChats"] [class*="_cardMeta_"] :is([class*="_cardTime_"], [class*="_chatCountBadge_"], [class*="_groupBadge_"]) {
padding: 0 !important;
border: 0 !important;
border-radius: 0 !important;
color: var(--gv-muted) !important;
background: transparent !important;
font: 600 8px/1.1 var(--gn-font) !important;
letter-spacing: 0.06em !important;
}
/* ornamental rule under the plate, breathing */
[data-component="LandingPageChats"] [class*="_cardContent_"]::after {
content: "";
display: block;
height: 10px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='16' viewBox='0 0 220 16'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='1' x2='0'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='10' y='7.4' width='84' height='1.2' fill='url(%23a)'/%3E%3Crect x='126' y='7.4' width='84' height='1.2' fill='url(%23b)'/%3E%3Cpolygon points='110,2.8 115.2,8 110,13.2 104.8,8' fill='%23f4d57a' fill-opacity='1' stroke='%23fff0c2' stroke-width='0.8'/%3E%3Cpolygon points='110,6 112,8 110,10 108,8' fill='%230c0906' fill-opacity='1.0'/%3E%3Cpolygon points='98,6 100,8 98,10 96,8' fill='%23d4af37' fill-opacity='1.0'/%3E%3Cpolygon points='122,6 124,8 122,10 120,8' fill='%23d4af37' fill-opacity='1.0'/%3E%3Ccircle cx='90' cy='8' r='1' fill='%23f4d57a'/%3E%3Ccircle cx='130' cy='8' r='1' fill='%23f4d57a'/%3E%3C/svg%3E") center / auto 10px no-repeat;
opacity: 0.75;
pointer-events: none;
animation: gnGlow 3.4s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
[data-component="LandingPageChats"] [class*="_card_"]:not([class*="_cardContent_"])::before,
[data-component="LandingPageChats"] [class*="_card_"]:not([class*="_cardContent_"])::after,
[data-component="LandingPageChats"] [class*="_cardBtn_"]::before,
[data-component="LandingPageChats"] [class*="_cardBtn_"]::after,
[data-component="LandingPageChats"] [class*="_cardContent_"]::after,
[data-component="LandingPageChats"] [class*="_cardName_"],
[data-component="LandingPageChats"] [class*="_cardImage_"] { animation: none; }
}
@media (max-width: 600px) {
[data-component="LandingPageChats"] [class*="_cardImage_"] { top: 10% !important; left: 17% !important; width: 66% !important; border-width: 2px !important; }
[data-component="LandingPageChats"] [class*="_cardContent_"] { right: 6px !important; bottom: 6px !important; left: 6px !important; height: 33% !important; }
[data-component="LandingPageChats"] [class*="_cardName_"] { font-size: 11.5px !important; letter-spacing: 0.08em !important; }
[data-component="LandingPageChats"] [class*="_cardMeta_"] { min-height: 23px !important; padding: 2px 7px !important; }
}
/* ═══════════════════════════════════════════════════════════
SCROLLBAR & SELECTION
═══════════════════════════════════════════════════════════ */
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--gn-scrollbar); border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: var(--gn-scrollbar-hover); }
::selection { background: var(--gn-selection) !important; color: inherit !important; }
/* ═══════════════════════════════════════════════════════════
OPTIONAL PERSONAL TWEAKS
Place custom CSS below
═══════════════════════════════════════════════════════════ */
/* ═══════════ UI SIZE — matched to Pinned Butterflies ═══════════
Measured off Pinned Butterflies (1166×924 window):
portrait frame 270×370 · text panel ≈620 wide · input + top bar ≈830 wide · whole message row ≈930 wide.
Everything sits centred in the chat area. The portrait scales gently with window height (40vh → 370px at 924px tall).
To resize, change these five numbers — nothing else needs touching. */
:root {
--ui-portrait-h: clamp(300px, 40vh, 430px);
--ui-portrait-w: calc(var(--ui-portrait-h) * 0.73);
--ui-msg-w: 930px; /* portrait + text panel */
--ui-bar-w: 830px; /* top bar + input bar */
--ui-rail-gap: 16px; /* space between portrait and text panel */
}
/* message rows: centred column instead of edge-to-edge */
html body [data-component="MinimalMessage"][data-component="MinimalMessage"][data-component="MinimalMessage"][data-component="MinimalMessage"] {
max-width: min(var(--ui-msg-w), 100%) !important;
margin-left: auto !important;
margin-right: auto !important;
}
@media (min-width: 721px) {
html body [data-component="MinimalMessage"][data-component="MinimalMessage"][data-component="MinimalMessage"][data-component="MinimalMessage"] {
--me-rail-gap: var(--ui-rail-gap);
}
}
/* top bar: same strip width as the input bar, floating like the Butterflies bar */
html body [data-chatroom-region="header"][data-chatroom-region="header"] {
box-sizing: border-box !important;
position: relative;
left: 0; right: 0;
width: min(var(--ui-bar-w), calc(100% - 24px)) !important;
margin: 12px auto 0 !important;
}
html body [class*="_chatToolbar_"][class*="_chatToolbar_"],
html body [data-spindle-mount="chat_top_dock"][data-spindle-mount="chat_top_dock"] {
width: min(var(--ui-bar-w), 100%) !important;
align-self: center !important;
box-sizing: border-box !important;
}
/* input bar (the toolbar icons + text box live inside it) */
html body [data-component="InputArea"][data-component="InputArea"] {
box-sizing: border-box !important;
left: 0 !important; right: 0 !important;
margin-left: auto !important; margin-right: auto !important;
width: min(var(--ui-bar-w), calc(100% - 24px)) !important;
max-width: 100% !important;
}
html body [data-chatroom-region="header"][data-chatroom-region="header"] {
border: 1px solid var(--gn-glass-border) !important;
border-radius: calc(var(--gn-radius) + 2px) !important;
}
/* bubble-style chat (if you switch the message style) uses the same centred column */
html body [data-component="BubbleMessage"][data-component="BubbleMessage"] {
box-sizing: border-box !important;
width: min(var(--ui-msg-w), 100%) !important;
min-width: 0 !important;
margin-left: auto !important;
margin-right: auto !important;
}
/* ═══════════════════════════════════════════════════════════
GOLDEN HOUR - BUBBLEMESSAGE CSS
Smoked-glass bubbles with a gold double rule and a crest on the corner.
Colours / fonts / glow come from the Global CSS (--gn-*).
═══════════════════════════════════════════════════════════ */
[data-component="BubbleMessage"] { position: relative; font-family: var(--gn-font) !important; color: var(--gn-font-color); }
[data-component="BubbleMessage"] [class*="_content_"],
[data-component="BubbleMessage"] [class*="_text_"],
[data-component="BubbleMessage"] [class*="_markdown_"] {
font-family: var(--gn-font) !important;
font-size: calc(1em * var(--gn-chat-font-scale));
color: var(--gn-message-color);
text-shadow: var(--gn-text-glow);
line-height: 1.7;
}
[data-component="BubbleMessage"] em, [data-component="BubbleMessage"] i:not([class]) { color: var(--gn-action-color); }
[data-component="BubbleMessage"] strong, [data-component="BubbleMessage"] b { color: var(--gn-bold-color); }
[data-component="BubbleMessage"] h1, [data-component="BubbleMessage"] h2,
[data-component="BubbleMessage"] h3, [data-component="BubbleMessage"] h4 {
font-family: var(--gn-font-display) !important;
font-weight: 400 !important;
color: var(--gn-heading-color);
text-transform: uppercase;
letter-spacing: 0.12em;
}
[data-component="BubbleMessage"] [class*="_name_"] {
font-family: var(--gn-font-display) !important;
font-weight: 400 !important;
font-size: 1.15em;
text-transform: uppercase;
letter-spacing: 0.14em;
color: var(--gn-name-color) !important;
}
[data-component="BubbleMessage"] [class*="_metaPill_"],
[data-component="BubbleMessage"] [class*="_metaSegment_"],
[data-component="BubbleMessage"] [class*="_meta_"],
[data-component="BubbleMessage"] [class*="_counter_"],
[data-component="BubbleMessage"] [class*="_token_"] {
font-family: var(--gn-font-mono) !important;
font-size: calc(1em * var(--gn-meta-font-scale));
color: var(--gn-font-color-soft);
opacity: 0.8;
}
[data-component="BubbleMessage"] [class*="_card_"] {
position: relative;
background: linear-gradient(150deg, rgba(30, 22, 11, 0.78), rgba(10, 7, 4, 0.74)) !important;
border: 1px solid var(--gn-card-border) !important;
border-radius: var(--gn-radius) !important;
box-shadow:
inset 0 0 0 4px rgba(7, 5, 3, 0.55),
inset 0 0 0 5px rgba(212, 175, 55, 0.18),
0 6px 22px rgba(0, 0, 0, 0.5),
0 0 26px var(--gn-card-glow);
backdrop-filter: blur(var(--gn-blur));
-webkit-backdrop-filter: blur(var(--gn-blur));
}
[data-component="BubbleMessage"][class*="_user_"] [class*="_card_"],
[data-component="BubbleMessage"] [class*="_user_"] [class*="_card_"] {
background: linear-gradient(150deg, rgba(48, 34, 14, 0.78), rgba(16, 11, 5, 0.74)) !important;
}
[data-component="BubbleMessage"] [class*="_card_"]::after {
content: "";
position: absolute;
top: -22px;
right: 18px;
width: 80px;
height: 24px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='28' viewBox='0 0 96 28'%3E%3Cdefs%3E%3ClinearGradient id='f' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37' stop-opacity='1'/%3E%3C/linearGradient%3E%3ClinearGradient id='r' x1='1' x2='0'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37' stop-opacity='1'/%3E%3C/linearGradient%3E%3ClinearGradient id='d' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23fff0c2'/%3E%3Cstop offset='.5' stop-color='%23d4af37'/%3E%3Cstop offset='1' stop-color='%239a7420'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='2' y='19' width='32' height='1.4' fill='url(%23f)'/%3E%3Crect x='62' y='19' width='32' height='1.4' fill='url(%23r)'/%3E%3Cpath d='M34 19.7 Q40 19.7 42 14' fill='none' stroke='%23d4af37' stroke-width='1.2'/%3E%3Cpath d='M62 19.7 Q56 19.7 54 14' fill='none' stroke='%23d4af37' stroke-width='1.2'/%3E%3Cpolygon points='48,2 60,14 48,26 36,14' fill='url(%23d)' stroke='%23fff0c2' stroke-opacity='.7' stroke-width='.8'/%3E%3Cpolygon points='48,8 54,14 48,20 42,14' fill='%230c0906' fill-opacity='.85'/%3E%3Cpolygon points='48,11 51,14 48,17 45,14' fill='%23f4d57a'/%3E%3Cpolygon points='27,17.7 29,19.7 27,21.7 25,19.7' fill='%23f4d57a' fill-opacity='1.0'/%3E%3Cpolygon points='69,17.7 71,19.7 69,21.7 67,19.7' fill='%23f4d57a' fill-opacity='1.0'/%3E%3Ccircle cx='19' cy='19.7' r='1.1' fill='%23f4d57a'/%3E%3Ccircle cx='77' cy='19.7' r='1.1' fill='%23f4d57a'/%3E%3C/svg%3E") center / contain no-repeat;
pointer-events: none;
animation: gnBob 4.5s ease-in-out infinite;
}
[data-component="BubbleMessage"] blockquote {
position: relative;
margin-left: 0;
padding: 10px 14px 10px 40px;
border: 0;
border-left: 2px solid var(--gn-gold);
border-radius: 0 6px 6px 0;
background: linear-gradient(90deg, rgba(212, 175, 55, 0.12), rgba(212, 175, 55, 0.03));
}
[data-component="BubbleMessage"] blockquote::before {
content: "";
position: absolute;
left: 13px;
top: 14px;
width: 14px;
height: 14px;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpolygon points='7,1.5 12.5,7 7,12.5 1.5,7' fill='%23d4af37' fill-opacity='1' stroke='%23fff0c2' stroke-width='0.8'/%3E%3Cpolygon points='7,4.8 9.2,7 7,9.2 4.8,7' fill='%230c0906' fill-opacity='0.85'/%3E%3C/svg%3E") center / contain no-repeat;
}
[data-component="BubbleMessage"] ul > li::marker { content: "\25C6 "; color: var(--gn-gold); font-size: 0.7em; }
[data-component="BubbleMessage"] ol > li::marker { color: var(--gn-gold); font-weight: 700; }
[data-component="BubbleMessage"] hr { border: 0; height: 16px; margin: 1.1em 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='16' viewBox='0 0 220 16'%3E%3Cdefs%3E%3ClinearGradient id='a' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='1' x2='0'%3E%3Cstop offset='0' stop-color='%23d4af37' stop-opacity='0'/%3E%3Cstop offset='1' stop-color='%23d4af37'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect x='10' y='7.4' width='84' height='1.2' fill='url(%23a)'/%3E%3Crect x='126' y='7.4' width='84' height='1.2' fill='url(%23b)'/%3E%3Cpolygon points='110,2.8 115.2,8 110,13.2 104.8,8' fill='%23f4d57a' fill-opacity='1' stroke='%23fff0c2' stroke-width='0.8'/%3E%3Cpolygon points='110,6 112,8 110,10 108,8' fill='%230c0906' fill-opacity='1.0'/%3E%3Cpolygon points='98,6 100,8 98,10 96,8' fill='%23d4af37' fill-opacity='1.0'/%3E%3Cpolygon points='122,6 124,8 122,10 120,8' fill='%23d4af37' fill-opacity='1.0'/%3E%3Ccircle cx='90' cy='8' r='1' fill='%23f4d57a'/%3E%3Ccircle cx='130' cy='8' r='1' fill='%23f4d57a'/%3E%3C/svg%3E") center / auto 16px no-repeat; }
[data-component="BubbleMessage"] code:not(pre code) {
font-family: var(--gn-font-mono) !important;
background: var(--gn-code-bg);
border: 1px solid rgba(212, 175, 55, 0.28);
border-radius: 4px;
padding: 0.08em 0.4em;
color: var(--gn-accent-soft);
}
[data-component="BubbleMessage"] pre, [data-component="BubbleMessage"] pre code { font-family: var(--gn-font-mono) !important; }
[data-component="BubbleMessage"] pre { background: var(--gn-code-bg) !important; border: 1px solid rgba(212, 175, 55, 0.26); border-radius: 6px; }
[data-component="BubbleMessage"] a { color: var(--gn-link-color); text-decoration-color: rgba(255, 223, 154, 0.5); text-underline-offset: 0.2em; }
[data-component="BubbleMessage"] img { border-radius: 6px; border: 1px solid var(--gn-card-border); }
/* ═══════════════════════════════════════════════════════════
OPTIONAL PERSONAL TWEAKS
Place custom CSS below
═══════════════════════════════════════════════════════════ */