@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600&family=EB+Garamond:ital@0;1&family=Libre+Baskerville:ital@0;1&display=swap'); :root { --realm-bg-primary: #0c1410; --realm-bg-secondary: #142218; --realm-bg-tertiary: #1c3024; --realm-text-primary: #f0ead8; --realm-text-secondary: #b8b090; --realm-text-tertiary: #708068; --realm-accent-gold: #d4a84b; --realm-accent-violet: #9070b8; --realm-accent-ember: #e07b4a; --realm-forest: #2a4a3a; --realm-border: rgba(212, 168, 75, 0.18); --realm-border-strong: rgba(212, 168, 75, 0.4); --realm-glass: rgba(12, 20, 16, 0.72); --realm-glass-border: rgba(212, 168, 75, 0.22); --realm-glass-glow: rgba(212, 168, 75, 0.08); --realm-line-height: 1.65; --realm-letter-spacing: 0.02em; } /* Gradio overrides */ .gradio-container { background: var(--realm-bg-primary) !important; max-width: 1400px !important; font-family: system-ui, -apple-system, sans-serif !important; } .gradio-container .contain { background: transparent !important; } footer { display: none !important; } /* Hero banner */ .hero-banner { position: relative; width: 100%; border-radius: 14px; overflow: hidden; margin-bottom: 1.5rem; border: 1px solid var(--realm-border-strong); box-shadow: 0 10px 50px rgba(0,0,0,0.55), 0 0 70px rgba(212,168,75,0.07); } .hero-image-wrap { position: relative; overflow: hidden; } .hero-image { width: 100%; height: auto; display: block; object-fit: cover; animation: heroParallax 18s ease-in-out infinite alternate; } @keyframes heroParallax { from { transform: scale(1) translateY(0); } to { transform: scale(1.04) translateY(-1%); } } .hero-particles { position: absolute; inset: 0; pointer-events: none; overflow: hidden; } .hero-particle { position: absolute; bottom: -4px; width: 3px; height: 3px; border-radius: 50%; background: rgba(212, 168, 75, 0.55); box-shadow: 0 0 8px rgba(212, 168, 75, 0.4); animation: heroParticleRise linear infinite; } @keyframes heroParticleRise { 0% { transform: translateY(0) scale(0.6); opacity: 0; } 10% { opacity: 0.8; } 90% { opacity: 0.5; } 100% { transform: translateY(-320px) scale(1.2); opacity: 0; } } .hero-shimmer { position: absolute; inset: 0; background: linear-gradient( 105deg, transparent 40%, rgba(212, 168, 75, 0.06) 50%, transparent 60% ); background-size: 200% 100%; animation: heroShimmer 8s ease-in-out infinite; pointer-events: none; } @keyframes heroShimmer { 0%, 100% { background-position: 200% 0; } 50% { background-position: -200% 0; } } .hero-statusbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.55rem; padding: 0.7rem 1.25rem; background: linear-gradient(90deg, rgba(20,34,24,0.95), rgba(12,20,16,0.95)); border-top: 1px solid var(--realm-border); font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); font-size: 0.92rem; } .hero-status-live { font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--realm-text-secondary); margin-right: 0.4rem; } .hero-statusbar .hero-stat b { color: var(--realm-accent-gold); font-weight: 600; } .hero-statusbar .hero-stat-div { color: var(--realm-text-tertiary); } .hero-eyebrow { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--realm-accent-gold); margin: 0 0 0.4rem; } .hero-tagline { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-primary); font-size: 1.05rem; margin: 0 0 0.75rem; opacity: 0.9; } .hero-pillars { display: flex; flex-wrap: wrap; gap: 0.75rem 1.25rem; } .pillar { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--realm-text-secondary); } .pillar-icon { color: var(--realm-accent-gold); margin-right: 0.3rem; } /* World vignette */ .world-vignette { background: linear-gradient(135deg, rgba(42,74,58,0.3), rgba(28,48,36,0.5)); border: 1px solid var(--realm-border); border-radius: 10px; padding: 1.25rem 1.5rem; margin-bottom: 1.25rem; border-left: 3px solid var(--realm-accent-gold); } .vignette-label { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--realm-accent-gold); margin: 0 0 0.4rem; } .vignette-title { font-family: 'Libre Baskerville', serif; color: var(--realm-text-primary); font-size: 1.1rem; margin: 0 0 0.4rem; } .vignette-text { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); line-height: 1.65; margin: 0; font-size: 1rem; } /* Featured characters */ .featured-section { margin-bottom: 1.5rem; } .section-header { margin-bottom: 1rem; } .section-title { font-family: 'Cinzel', serif; color: var(--realm-accent-gold); font-size: 1rem; letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 0.25rem; } .section-desc { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-tertiary); margin: 0; font-size: 0.9rem; } .featured-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; } .featured-card { position: relative; display: flex; gap: 1rem; background-color: var(--realm-bg-secondary); background-size: cover; background-position: center; border: 1px solid var(--realm-border); border-radius: 10px; padding: 1rem; overflow: hidden; transition: border-color 0.25s, box-shadow 0.25s, transform 0.25s; } .featured-card-scrim { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(12,20,16,0.94) 30%, rgba(12,20,16,0.74) 70%, rgba(12,20,16,0.5)); z-index: 0; } .featured-card > .featured-portrait, .featured-card > .featured-info { position: relative; z-index: 1; } .featured-card:hover { border-color: var(--realm-border-strong); box-shadow: 0 8px 30px rgba(0,0,0,0.5), 0 0 24px rgba(212,168,75,0.1); transform: translateY(-3px); } .featured-legendary { border-color: rgba(144,112,184,0.35); box-shadow: 0 0 20px rgba(144,112,184,0.06); } .featured-portrait { flex-shrink: 0; } .featured-info { min-width: 0; } .featured-type { font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--realm-accent-ember); } .featured-name { font-family: 'Libre Baskerville', serif; color: var(--realm-text-primary); font-size: 1.05rem; margin: 0.15rem 0; } .featured-location { font-size: 0.75rem; color: var(--realm-accent-gold); margin: 0 0 0.4rem; } .featured-appearance { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); font-size: 0.85rem; line-height: 1.5; margin: 0 0 0.4rem; } .featured-greeting { font-family: 'Libre Baskerville', serif; font-style: italic; color: var(--realm-accent-gold); font-size: 0.8rem; margin: 0.25rem 0; padding-left: 0.5rem; border-left: 2px solid var(--realm-border); opacity: 0.85; } .featured-memory { font-family: 'EB Garamond', serif; font-size: 0.78rem; color: var(--realm-text-tertiary); font-style: italic; margin: 0.25rem 0 0; } .entity-avatar { border-radius: 50%; } .entity-card-top { display: flex; gap: 1.25rem; margin-bottom: 1rem; align-items: flex-start; } .entity-portrait { flex-shrink: 0; } /* Header (legacy fallback) */ .realm-header { text-align: center; padding: 2rem 1rem 1.5rem; border-bottom: 1px solid var(--realm-border); margin-bottom: 1.5rem; background: linear-gradient(180deg, rgba(200,160,64,0.03) 0%, transparent 100%); } .realm-title { font-family: 'Cinzel', serif; font-size: 2.2rem; font-weight: 600; color: var(--realm-accent-gold); letter-spacing: 0.15em; text-transform: uppercase; margin: 0 0 0.5rem; text-shadow: 0 0 40px rgba(200, 160, 64, 0.2); } .realm-subtitle { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-secondary); font-size: 1.1rem; margin: 0 0 1rem; } .realm-stats { font-size: 0.85rem; color: var(--realm-text-tertiary); letter-spacing: 0.05em; } .realm-myth { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-secondary); font-size: 0.95rem; max-width: 700px; margin: 1rem auto 0; line-height: 1.6; opacity: 0.8; } /* Tabs */ .realm-tabs { border-bottom: 1px solid var(--realm-border) !important; } .realm-tabs button { font-family: 'Cinzel', serif !important; letter-spacing: 0.1em !important; color: var(--realm-text-secondary) !important; background: transparent !important; border: none !important; } .realm-tabs button.selected { color: var(--realm-accent-gold) !important; border-bottom: 2px solid var(--realm-accent-gold) !important; } /* Map */ .realm-map { width: 100%; height: auto; border-radius: 10px; background: var(--realm-bg-secondary); border: 1px solid var(--realm-border-strong); box-shadow: inset 0 0 40px rgba(42,74,58,0.2); } .location-circle { transition: opacity 0.3s, transform 0.3s; cursor: pointer; } .location-node:hover .location-circle { opacity: 0.5 !important; transform: scale(1.08); } .location-pulse .location-circle, .location-glow .location-circle { animation: pulse-glow 2.5s ease-in-out infinite; } .location-glow .location-aura { animation: aura-breathe 4s ease-in-out infinite; } .realm-path { animation: path-shimmer 6s ease-in-out infinite; } @keyframes aura-breathe { 0%, 100% { opacity: 0.08; r: 44; } 50% { opacity: 0.16; } } @keyframes path-shimmer { 0%, 100% { stroke-opacity: 0.18; } 50% { stroke-opacity: 0.38; } } .location-selected .location-circle { stroke-width: 3 !important; opacity: 0.6 !important; } @keyframes pulse-glow { 0%, 100% { opacity: 0.25; } 50% { opacity: 0.55; } } .entity-dot { animation: fade-in-scale 0.6s ease-out; } @keyframes fade-in-scale { from { opacity: 0; transform: scale(0.5); } to { opacity: 0.9; transform: scale(1); } } /* Activity feed */ .activity-feed { padding: 0.5rem 0; } .feed-item { padding: 0.75rem 0; border-bottom: 1px solid var(--realm-border); animation: slide-up 0.4s ease-out; } .feed-day { font-size: 0.7rem; color: var(--realm-accent-gold); text-transform: uppercase; letter-spacing: 0.1em; } .feed-content { color: var(--realm-text-primary); font-family: 'EB Garamond', serif; font-size: 0.95rem; margin: 0.25rem 0 0; line-height: 1.5; } @keyframes slide-up { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } /* Realm Pulse — live simulation ticker */ .realm-pulse { margin: 0 0 1.25rem; padding: 1rem 1.1rem 0.85rem; background: linear-gradient(135deg, rgba(20,34,24,0.85), rgba(12,20,16,0.92)); border: 1px solid var(--realm-border-strong); border-radius: 12px; box-shadow: 0 4px 28px rgba(0,0,0,0.35); } .pulse-header { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem 0.75rem; margin-bottom: 0.85rem; } .pulse-title { font-family: 'Cinzel', serif; font-size: 0.82rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--realm-accent-gold); } .pulse-sub { font-family: 'EB Garamond', serif; font-size: 0.85rem; color: var(--realm-text-tertiary); font-style: italic; } .pulse-quiet { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); font-style: italic; margin: 0; } .pulse-track { display: flex; gap: 0.75rem; overflow-x: auto; padding-bottom: 0.35rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; } .pulse-track::-webkit-scrollbar { height: 4px; } .pulse-track::-webkit-scrollbar-thumb { background: var(--realm-border-strong); border-radius: 4px; } .pulse-card { flex: 0 0 min(280px, 78vw); scroll-snap-align: start; padding: 0.85rem 1rem; border-radius: 10px; border: 1px solid var(--realm-border); background: var(--realm-bg-tertiary); animation: slide-up 0.5s ease-out; } .pulse-encounter { border-left: 3px solid var(--realm-accent-violet); } .pulse-event { border-left: 3px solid var(--realm-accent-gold); } .pulse-arrival { border-left: 3px solid #5fd07a; } .pulse-kind { font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--realm-text-tertiary); } .pulse-headline { font-family: 'Cinzel', serif; font-size: 0.95rem; color: var(--realm-text-primary); margin: 0.35rem 0 0.25rem; line-height: 1.35; } .pulse-detail { font-family: 'EB Garamond', serif; font-size: 0.88rem; color: var(--realm-text-secondary); margin: 0; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .pulse-day { display: inline-block; margin-top: 0.5rem; font-size: 0.68rem; color: var(--realm-accent-gold); letter-spacing: 0.08em; } /* Current event */ .current-event { background: var(--realm-bg-tertiary); border: 1px solid var(--realm-border); border-radius: 8px; padding: 1.25rem; margin-bottom: 1rem; } .event-active { border-color: var(--realm-border-strong); box-shadow: 0 0 20px rgba(200, 160, 64, 0.05); } .event-label { font-family: 'Cinzel', serif; font-size: 0.75rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--realm-accent-gold); margin: 0 0 0.5rem; } .event-title { font-family: 'Libre Baskerville', serif; color: var(--realm-text-primary); font-size: 1.1rem; margin: 0 0 0.5rem; } .event-text { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); line-height: 1.6; margin: 0; } .event-locations { font-size: 0.8rem; color: var(--realm-text-tertiary); margin: 0.5rem 0 0; } /* Summon form */ .summon-section { background: linear-gradient(135deg, rgba(42,74,58,0.25), var(--realm-bg-secondary)); border: 1px solid var(--realm-border-strong); border-radius: 10px; padding: 1.5rem; margin-top: 1rem; } .summon-title { font-family: 'Cinzel', serif; color: var(--realm-accent-gold); font-size: 0.85rem; letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 1rem; } .summon-hint { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-tertiary); font-size: 0.85rem; margin-top: 0.75rem; } /* Entity card */ .entity-card { background: var(--realm-bg-secondary); border: 1px solid var(--realm-border); border-radius: 8px; padding: 1.5rem; animation: fade-in-scale 0.5s ease-out; } .entity-header { margin-bottom: 1rem; } .entity-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.5rem; } .entity-type { font-size: 0.75rem; color: var(--realm-text-tertiary); text-transform: uppercase; letter-spacing: 0.08em; } .entity-status { font-size: 0.75rem; padding: 0.2rem 0.6rem; border-radius: 12px; background: rgba(200, 160, 64, 0.1); color: var(--realm-accent-gold); } .status-dormant { background: rgba(96, 88, 72, 0.2); color: var(--realm-text-secondary); } .status-legendary { background: rgba(128, 96, 176, 0.2); color: var(--realm-accent-violet); } .entity-name { font-family: 'Libre Baskerville', serif; color: var(--realm-text-primary); font-size: 1.5rem; margin: 0; } .entity-appearance { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); line-height: 1.7; margin-bottom: 1rem; font-size: 1rem; } .entity-traits { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 1rem; } .trait-tag, .entity-tag { font-size: 0.7rem; padding: 0.2rem 0.6rem; border-radius: 12px; background: rgba(200, 160, 64, 0.08); color: var(--realm-text-secondary); border: 1px solid var(--realm-border); } .entity-section { margin-bottom: 0.75rem; } .section-label { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--realm-accent-gold); margin-bottom: 0.25rem; } .entity-section p { font-family: 'EB Garamond', serif; color: var(--realm-text-primary); margin: 0; line-height: 1.5; } .secret-goal .section-label { color: var(--realm-accent-violet); } .entity-greeting { font-family: 'Libre Baskerville', serif; font-style: italic; color: var(--realm-accent-gold); opacity: 0.9; border-left: 2px solid var(--realm-border-strong); padding: 0.75rem 1rem; margin: 1rem 0; background: rgba(200, 160, 64, 0.03); } .secret-section { background: rgba(112, 144, 176, 0.05); border: 1px solid rgba(112, 144, 176, 0.15); border-radius: 6px; padding: 0.75rem; } .sea-whisper { color: var(--realm-text-tertiary); font-size: 0.6rem; } .secret-name { font-style: italic; color: #7090b0 !important; } .memory-section { border-top: 1px solid var(--realm-border); padding-top: 0.75rem; margin-top: 0.75rem; } .memory-text { color: var(--realm-text-secondary) !important; } .entity-footer { font-size: 0.75rem; color: var(--realm-text-tertiary); margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid var(--realm-border); } /* Location panel */ .location-panel { background: var(--realm-bg-tertiary); border: 1px solid var(--realm-border); border-radius: 10px; overflow: hidden; animation: slide-up 0.3s ease-out; } .location-panel-banner { position: relative; height: 120px; background-color: var(--realm-bg-secondary); background-size: cover; background-position: center; display: flex; align-items: flex-end; } .location-panel-scrim { position: absolute; inset: 0; background: linear-gradient(transparent, rgba(12,20,16,0.55) 50%, rgba(12,20,16,0.95)); } .location-panel-content { padding: 1.25rem; } .location-panel-name { position: relative; z-index: 1; font-family: 'Cinzel', serif; color: #f4ecd4; font-size: 1.2rem; margin: 0; padding: 1rem 1.25rem; text-shadow: 0 2px 12px rgba(0,0,0,0.8); } .location-panel-desc { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); font-size: 0.9rem; line-height: 1.5; margin: 0 0 0.75rem; } .location-panel-special { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-accent-gold); font-size: 0.82rem; line-height: 1.5; margin: 0 0 0.75rem; opacity: 0.85; } .location-entity-list { display: flex; flex-wrap: wrap; gap: 0.5rem; } .location-entity-chip { font-size: 0.8rem; padding: 0.35rem 0.75rem; background: rgba(200, 160, 64, 0.08); border: 1px solid var(--realm-border); border-radius: 16px; color: var(--realm-text-primary); cursor: pointer; transition: background 0.2s; } .location-entity-chip:hover { background: rgba(200, 160, 64, 0.15); border-color: var(--realm-border-strong); } /* Book of Ages */ .book-container { background: var(--realm-bg-secondary); border: 1px solid var(--realm-border); border-radius: 8px; padding: 2rem; max-height: 70vh; overflow-y: auto; } .book-title { font-family: 'Cinzel', serif; color: var(--realm-accent-gold); font-size: 1.5rem; letter-spacing: 0.1em; margin: 0; } .book-subtitle { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-tertiary); margin: 0.25rem 0 1.5rem; } .book-day-header { font-family: 'Cinzel', serif; color: var(--realm-accent-gold); font-size: 0.9rem; letter-spacing: 0.12em; padding: 1rem 0 0.5rem; border-bottom: 1px solid var(--realm-border); margin-bottom: 0.75rem; } .book-entry { padding: 0.6rem 0; border-bottom: 1px solid rgba(200, 160, 64, 0.05); animation: slide-up 0.4s ease-out; } .entry-type-badge { font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.1em; padding: 0.15rem 0.5rem; border-radius: 8px; margin-right: 0.5rem; vertical-align: middle; } .entry-arrival .entry-type-badge { background: rgba(200,160,64,0.15); color: var(--realm-accent-gold); } .entry-interaction .entry-type-badge { background: rgba(128,96,176,0.15); color: var(--realm-accent-violet); } .entry-event .entry-type-badge { background: rgba(176,96,32,0.15); color: #b06020; } .entry-milestone .entry-type-badge { background: rgba(192,64,32,0.15); color: #c04020; } .entry-dream .entry-type-badge { background: rgba(64,80,64,0.15); color: #608060; } .entry-content { font-family: 'EB Garamond', serif; color: var(--realm-text-primary); font-size: 1rem; line-height: 1.6; margin: 0.25rem 0 0; display: inline; } .entry-title { color: var(--realm-accent-gold); } /* Entity grid */ .entity-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; } .entity-grid-card { position: relative; display: flex; gap: 0.85rem; background-color: var(--realm-bg-secondary); background-size: cover; background-position: center; border: 1px solid var(--realm-border); border-radius: 10px; padding: 1rem; overflow: hidden; cursor: pointer; transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s; } .grid-card-scrim { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(12,20,16,0.95) 35%, rgba(12,20,16,0.78) 75%, rgba(12,20,16,0.55)); z-index: 0; } .entity-grid-card:hover { border-color: var(--realm-border-strong); transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,0.5), 0 0 18px rgba(212,168,75,0.1); } .grid-card-portrait { position: relative; z-index: 1; flex-shrink: 0; } .grid-card-body { position: relative; z-index: 1; min-width: 0; } .grid-card-greeting { font-family: 'Libre Baskerville', serif; font-style: italic; font-size: 0.75rem; color: var(--realm-accent-gold); opacity: 0.8; margin: 0.3rem 0 0; } .grid-card-type { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--realm-text-tertiary); } .grid-card-name { font-family: 'Libre Baskerville', serif; color: var(--realm-text-primary); font-size: 1.1rem; margin: 0.25rem 0; } .grid-card-location { font-size: 0.75rem; color: var(--realm-accent-gold); margin: 0 0 0.5rem; } .grid-card-preview { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); font-size: 0.85rem; line-height: 1.5; margin: 0; } .grid-card-meta { font-size: 0.7rem; color: var(--realm-text-tertiary); margin-top: 0.75rem; } .grid-status-legendary { border-color: rgba(128, 96, 176, 0.3); } /* Empty & loading states */ .empty-state { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-tertiary); text-align: center; padding: 3rem; } .feed-empty { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-tertiary); } /* Loading */ .loading-constellation { text-align: center; padding: 2rem; color: var(--realm-accent-gold); font-family: 'Cinzel', serif; letter-spacing: 0.2em; animation: pulse-glow 2s ease-in-out infinite; } /* The Oracle dreaming a new soul into being */ .oracle-summoning { position: relative; text-align: center; padding: 2.5rem 1.5rem 2.75rem; margin-top: 0.75rem; border: 1px solid var(--realm-border-strong); border-radius: 14px; background: radial-gradient(120% 90% at 50% 0%, rgba(200, 160, 64, 0.10), transparent 60%), linear-gradient(180deg, rgba(26, 26, 46, 0.6), rgba(10, 10, 18, 0.4)); overflow: hidden; animation: fade-in-scale 0.5s ease-out both; } .oracle-orbit { position: relative; width: 92px; height: 92px; margin: 0 auto 1.25rem; } .oracle-core { position: absolute; inset: 50% auto auto 50%; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: radial-gradient(circle, #ffe7ab, var(--realm-accent-gold)); box-shadow: 0 0 22px 6px rgba(200, 160, 64, 0.55); animation: oracle-breathe 2.2s ease-in-out infinite; } .oracle-ring { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(200, 160, 64, 0.28); border-top-color: rgba(255, 231, 171, 0.9); animation: oracle-spin 1.6s linear infinite; } .oracle-ring.two { inset: 16px; border-top-color: transparent; border-right-color: rgba(128, 96, 176, 0.8); animation-duration: 2.4s; animation-direction: reverse; } .oracle-ring.three { inset: 30px; border-top-color: rgba(200, 160, 64, 0.6); animation-duration: 3.2s; } .oracle-title { font-family: 'Cinzel', serif; letter-spacing: 0.22em; text-transform: uppercase; font-size: 0.82rem; color: var(--realm-accent-gold); margin-bottom: 0.5rem; } .oracle-line { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-secondary); max-width: 30rem; margin: 0 auto; min-height: 1.4em; } .oracle-echo { font-family: 'EB Garamond', serif; color: var(--realm-text-tertiary); font-size: 0.85rem; margin-top: 0.85rem; opacity: 0.8; } .soul-card-image { border-radius: 12px; overflow: hidden; animation: fade-in-scale 0.6s ease-out both; } .soul-card-image img { border-radius: 10px; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5); } @keyframes oracle-spin { to { transform: rotate(360deg); } } @keyframes oracle-breathe { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: 0.7; } } /* Error messages */ .realm-error { color: #c04040; font-family: 'EB Garamond', serif; padding: 0.75rem; background: rgba(192, 64, 64, 0.08); border: 1px solid rgba(192, 64, 64, 0.2); border-radius: 6px; margin-top: 0.5rem; } /* Sidebar panel */ .sidebar-panel { padding: 0.5rem; } /* Hero live indicator + stats */ .live-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #5fd07a; box-shadow: 0 0 8px #5fd07a; margin-right: 0.35rem; vertical-align: middle; animation: live-pulse 2s ease-in-out infinite; } @keyframes live-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.4; transform: scale(0.75); } } .hero-stats { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin: 0 0 0.85rem; font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); font-size: 0.9rem; } .hero-stat b { color: var(--realm-accent-gold); font-weight: 600; } .hero-stat-div { color: var(--realm-text-tertiary); } /* Entity card location banner */ .entity-card { overflow: hidden; } .entity-card-banner { position: relative; height: 110px; margin: -1.5rem -1.5rem 1rem; background-color: var(--realm-bg-tertiary); background-size: cover; background-position: center; } .entity-card-banner-scrim { position: absolute; inset: 0; background: linear-gradient(transparent 20%, rgba(20,34,24,0.85) 80%, var(--realm-bg-secondary)); } .entity-card .entity-card-top { margin-top: -2.75rem; position: relative; z-index: 2; } .entity-card .entity-portrait .entity-avatar { box-shadow: 0 6px 20px rgba(0,0,0,0.6); background: var(--realm-bg-secondary); } /* Sacred Locations gallery */ .locations-gallery { padding: 0.5rem 0 1.5rem; } .loc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 1.25rem; } .loc-card { position: relative; min-height: 260px; border-radius: 14px; overflow: hidden; background-color: var(--realm-bg-secondary); background-size: cover; background-position: center; border: 1px solid var(--realm-border); display: flex; align-items: flex-end; transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; cursor: pointer; } .loc-card:hover { transform: translateY(-4px) scale(1.01); border-color: var(--realm-border-strong); box-shadow: 0 16px 40px rgba(0,0,0,0.55), 0 0 30px rgba(212,168,75,0.12); } .loc-card-scrim { position: absolute; inset: 0; background: linear-gradient(transparent 10%, rgba(10,18,12,0.55) 45%, rgba(10,18,12,0.96)); transition: background 0.3s; } .loc-card:hover .loc-card-scrim { background: linear-gradient(transparent 5%, rgba(10,18,12,0.45) 40%, rgba(10,18,12,0.95)); } .loc-card-body { position: relative; z-index: 1; width: 100%; padding: 1.25rem; } .loc-card-top { position: absolute; z-index: 2; top: 1rem; left: 1rem; right: 1rem; display: flex; justify-content: space-between; align-items: flex-start; gap: 0.5rem; } .loc-card-count { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.08em; text-transform: uppercase; color: #f4ecd4; background: rgba(10,18,12,0.6); border: 1px solid var(--realm-border); padding: 0.25rem 0.6rem; border-radius: 20px; backdrop-filter: blur(4px); } .loc-card-flag { font-family: 'EB Garamond', serif; font-style: italic; font-size: 0.7rem; color: var(--realm-accent-ember); background: rgba(10,18,12,0.6); padding: 0.25rem 0.6rem; border-radius: 20px; border: 1px solid rgba(224,123,74,0.3); } .loc-card-name { font-family: 'Cinzel', serif; color: #f4ecd4; font-size: 1.3rem; margin: 0 0 0.4rem; text-shadow: 0 2px 14px rgba(0,0,0,0.85); } .loc-card-desc { font-family: 'EB Garamond', serif; color: #d8d0b8; font-size: 0.9rem; line-height: 1.55; margin: 0 0 0.65rem; } .loc-card-vibes { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.65rem; } .loc-vibe { font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.15rem 0.5rem; border-radius: 10px; background: rgba(212,168,75,0.14); color: var(--realm-accent-gold); border: 1px solid var(--realm-border); } .loc-card-residents { font-family: 'EB Garamond', serif; font-style: italic; font-size: 0.78rem; color: var(--realm-text-tertiary); margin: 0; } .loc-card-live { border-color: rgba(224,123,74,0.5); } .loc-card-live .loc-card-scrim { box-shadow: inset 0 0 60px rgba(224,123,74,0.2); animation: loc-live 3s ease-in-out infinite; } @keyframes loc-live { 0%, 100% { box-shadow: inset 0 0 50px rgba(224,123,74,0.12); } 50% { box-shadow: inset 0 0 80px rgba(224,123,74,0.28); } } /* 3D diorama iframe */ .diorama-wrap { position: relative; margin: 1.25rem 0; border: 2px solid var(--realm-border-strong); border-radius: 16px; overflow: hidden; background: var(--realm-bg-secondary); box-shadow: 0 14px 48px rgba(0,0,0,0.55), 0 0 60px var(--realm-glass-glow), inset 0 0 0 1px rgba(255,255,255,0.04); padding: 6px; } .diorama-wrap::before, .diorama-wrap::after { content: '◆'; position: absolute; z-index: 2; color: var(--realm-accent-gold); font-size: 0.65rem; opacity: 0.45; pointer-events: none; } .diorama-wrap::before { top: 10px; left: 14px; } .diorama-wrap::after { top: 10px; right: 14px; } .diorama-header { padding: 1rem 1.25rem; border-bottom: 1px solid var(--realm-border); background: linear-gradient(90deg, rgba(20,34,24,0.95), rgba(12,20,16,0.95)); } .diorama-label { font-family: 'Cinzel', serif; font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--realm-accent-gold); margin: 0 0 0.25rem; } .diorama-place-name { font-family: 'Cinzel', serif; color: #f4ecd4; font-size: 1.35rem; margin: 0 0 0.35rem; } .diorama-hint { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-tertiary); font-size: 0.85rem; margin: 0; } .diorama-stage { position: relative; } .diorama-frame { display: block; width: 100%; height: min(80vh, 720px); min-height: 540px; border: none; background: #0c1410; cursor: crosshair; } /* External pad hidden — in-iframe pad is more reliable on HF Spaces */ .diorama-remote-controls { display: none !important; } .diorama-remote-controls.legacy { position: absolute; inset: 0; z-index: 20; pointer-events: none; } .drc-label { position: absolute; left: 1rem; bottom: 9.5rem; font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: #d4a84b; pointer-events: none; text-shadow: 0 1px 8px #000; } .drc-pad { position: absolute; left: 1rem; bottom: 1.25rem; display: grid; grid-template-columns: 3.4rem 3.4rem 3.4rem; gap: 0.35rem; pointer-events: auto; } .drc-spacer { visibility: hidden; } .drc-btn { width: 3.4rem; height: 3.4rem; border-radius: 12px; border: 2px solid rgba(212, 168, 75, 0.55); background: rgba(8, 12, 10, 0.82); color: #f0d9a0; font-family: 'Cinzel', serif; font-size: 1rem; font-weight: 600; cursor: pointer; touch-action: none; user-select: none; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.45); backdrop-filter: blur(6px); } .drc-btn:hover { background: rgba(212, 168, 75, 0.18); } .drc-btn.pressed, .drc-btn:active { background: rgba(212, 168, 75, 0.38); color: #fff8e8; transform: scale(0.96); } .drc-joy { position: absolute; right: 1rem; bottom: 1.25rem; width: 7.5rem; height: 7.5rem; border-radius: 50%; border: 2px solid rgba(212, 168, 75, 0.45); background: rgba(8, 12, 10, 0.72); pointer-events: auto; touch-action: none; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.45); backdrop-filter: blur(6px); } .drc-knob { position: absolute; left: 50%; top: 50%; width: 2.6rem; height: 2.6rem; margin: -1.3rem 0 0 -1.3rem; border-radius: 50%; background: rgba(212, 168, 75, 0.42); border: 2px solid rgba(212, 168, 75, 0.65); pointer-events: none; } .diorama-empty { text-align: center; padding: 2.5rem 1.5rem; border: 1px dashed var(--realm-border); border-radius: 12px; margin: 1.25rem 0; } .diorama-empty-title { font-family: 'Cinzel', serif; color: var(--realm-accent-gold); font-size: 1.1rem; margin: 0 0 0.5rem; } .diorama-empty-text { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); max-width: 520px; margin: 0 auto; line-height: 1.65; } .realm-map .location-node { cursor: pointer; } /* Explore / step-inside experience */ .explore-intro { margin-bottom: 0.75rem; } .places-gallery, .souls-gallery { border: none !important; background: transparent !important; } .places-gallery .grid-wrap, .souls-gallery .grid-wrap { background: transparent !important; } .places-gallery button.thumbnail-item img, .souls-gallery button.thumbnail-item img { border-radius: 12px; transition: transform 0.25s, box-shadow 0.25s; } .places-gallery button.thumbnail-item:hover img, .souls-gallery button.thumbnail-item:hover img { transform: scale(1.03); box-shadow: 0 10px 30px rgba(0,0,0,0.5), 0 0 22px rgba(212,168,75,0.18); } .room-empty { text-align: center; padding: 3rem 1.5rem; border: 1px dashed var(--realm-border); border-radius: 12px; background: linear-gradient(135deg, rgba(42,74,58,0.12), rgba(28,48,36,0.2)); margin: 1.25rem 0; } .room-empty-title { font-family: 'Cinzel', serif; color: var(--realm-accent-gold); font-size: 1.1rem; letter-spacing: 0.08em; margin: 0 0 0.5rem; } .room-empty-text { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); max-width: 520px; margin: 0 auto; line-height: 1.6; } .room-view { margin: 1.5rem 0 1rem; border: 1px solid var(--realm-border-strong); border-radius: 14px; overflow: hidden; background: var(--realm-bg-secondary); box-shadow: 0 14px 44px rgba(0,0,0,0.5); animation: fade-in-scale 0.5s ease-out; } .room-hero { position: relative; min-height: 300px; background-color: var(--realm-bg-tertiary); background-size: cover; background-position: center; display: flex; align-items: flex-end; } .room-hero-scrim { position: absolute; inset: 0; background: linear-gradient(transparent 20%, rgba(10,18,12,0.7) 60%, rgba(10,18,12,0.97)); } .room-hero-text { position: relative; z-index: 1; padding: 1.75rem; } .room-eyebrow { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--realm-accent-gold); margin: 0 0 0.4rem; } .room-name { font-family: 'Cinzel', serif; color: #f4ecd4; font-size: 1.9rem; margin: 0 0 0.5rem; text-shadow: 0 2px 18px rgba(0,0,0,0.9); } .room-ambience { font-family: 'EB Garamond', serif; font-style: italic; color: #e0d8c0; font-size: 1.05rem; margin: 0; max-width: 640px; text-shadow: 0 1px 8px rgba(0,0,0,0.8); } .room-body { padding: 1.5rem 1.75rem; } .room-lore { font-family: 'EB Garamond', serif; color: var(--realm-text-primary); line-height: 1.7; font-size: 1rem; margin: 0.75rem 0; } .room-special { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-accent-gold); font-size: 0.9rem; margin: 0.5rem 0 1rem; opacity: 0.9; } .room-count { font-family: 'Cinzel', serif; font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--realm-accent-ember); margin: 0; } /* How it works explainer */ .how-it-works p { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); line-height: 1.65; margin: 0.4rem 0; } .how-it-works b { color: var(--realm-accent-gold); } /* Bonds on entity card */ .bond-list, .encounter-list { list-style: none; padding: 0; margin: 0.5rem 0 0; } .bond-item, .encounter-item { padding: 0.55rem 0; border-bottom: 1px solid var(--realm-border); font-family: 'EB Garamond', serif; font-size: 0.92rem; color: var(--realm-text-secondary); } .bond-partner { color: var(--realm-accent-gold); font-family: 'Cinzel', serif; } .bond-type { font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--realm-accent-violet); margin-left: 0.35rem; } .bond-strength { color: var(--realm-accent-gold); margin-left: 0.35rem; letter-spacing: 0.1em; } .bond-desc { margin: 0.25rem 0 0; font-style: italic; font-size: 0.88rem; } .enc-day { color: var(--realm-accent-gold); font-size: 0.75rem; margin-right: 0.35rem; } /* Relationship graph */ .rel-graph-wrap { margin: 1rem 0; } .rel-graph-desc { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-secondary); margin-bottom: 0.75rem; } .rel-graph-svg { width: 100%; border: 1px solid var(--realm-border-strong); border-radius: 12px; margin-bottom: 0.75rem; } .rel-legend { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-bottom: 0.75rem; } .rel-legend-item { font-size: 0.72rem; color: var(--realm-text-tertiary); display: flex; align-items: center; gap: 0.35rem; } .rel-legend-item i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; } .rel-node-label { fill: #e8e0d0; font-size: 10px; font-family: Georgia, serif; pointer-events: none; } .rel-edge { pointer-events: none; } .rel-list { font-family: 'EB Garamond', serif; color: var(--realm-text-secondary); font-size: 0.9rem; line-height: 1.55; padding-left: 1.1rem; } /* Valley dream panel */ .valley-dream-panel { padding: 1rem 1.25rem; background: linear-gradient(180deg, rgba(12,20,16,0.9), rgba(8,16,12,0.95)); border-top: 1px solid rgba(95,120,100,0.25); } .valley-dream-label { font-family: 'Cinzel', serif; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: #7d9a84; margin: 0 0 0.4rem; } .valley-dream-text { font-family: 'EB Garamond', serif; font-style: italic; color: #b8c8b8; margin: 0; line-height: 1.6; } /* Location panel slide-in */ .location-panel-animate { transform: translateX(24px); opacity: 0; transition: transform 0.45s ease, opacity 0.45s ease; } .location-panel-animate.open { transform: translateX(0); opacity: 1; } /* Oracle cold-start rotating lines */ .oracle-wait-lines { position: relative; min-height: 2.5rem; margin-top: 0.5rem; } .oracle-wait-lines p { font-family: 'EB Garamond', serif; font-style: italic; color: var(--realm-text-tertiary); font-size: 0.88rem; margin: 0; position: absolute; left: 0; right: 0; opacity: 0; animation: oracle-cycle 12s infinite; } .oracle-wait-lines p:nth-child(1) { animation-delay: 0s; } .oracle-wait-lines p:nth-child(2) { animation-delay: 4s; } .oracle-wait-lines p:nth-child(3) { animation-delay: 8s; } @keyframes oracle-cycle { 0%, 26% { opacity: 0.9; } 33%, 100% { opacity: 0; } } /* Responsive */ @media (max-width: 768px) { .realm-title { font-size: 1.5rem; } .room-name { font-size: 1.4rem; } .room-hero { min-height: 220px; } .entity-grid { grid-template-columns: 1fr; } .featured-grid { grid-template-columns: 1fr; } .loc-grid { grid-template-columns: 1fr; } .featured-card { flex-direction: column; align-items: center; text-align: center; } .entity-card-top { flex-direction: column; align-items: center; text-align: center; } .hero-pillars { justify-content: center; } .hero-stats { justify-content: center; } .diorama-frame { height: min(58vh, 480px); min-height: 360px; } .pulse-card { flex: 0 0 min(240px, 88vw); } .rel-graph-svg { height: auto; } .location-panel-animate { transform: translateY(20px); } .location-panel-animate.open { transform: translateY(0); } .sidebar-panel { margin-top: 1rem; } } /* ── Live tick result ── */ .tick-result { padding: 0.85rem 1rem; background: linear-gradient(135deg, rgba(20,34,24,0.9), rgba(12,20,16,0.9)); border: 1px solid rgba(212,168,75,0.28); border-radius: 10px; margin-top: 0.5rem; } .tick-title { color: #d4a84b; font-size: 0.92rem; font-family: 'Cinzel', serif; margin-bottom: 0.3rem; } .tick-body { color: #a8a090; font-size: 0.82rem; line-height: 1.5; font-style: italic; } /* ── Presence bar ── */ .presence-bar { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; padding: 0.4rem 1rem; font-size: 0.75rem; background: rgba(212,168,75,0.05); border-bottom: 1px solid rgba(212,168,75,0.12); color: var(--realm-text-tertiary); font-family: 'EB Garamond', serif; font-style: italic; } .presence-count { color: var(--realm-accent-gold); } .presence-arrivals{ color: var(--realm-text-secondary); } /* 2026 game-shell refresh */ :root { --realm-bg-primary: #070908; --realm-bg-secondary: #101714; --realm-bg-tertiary: #17231d; --realm-surface: rgba(18, 24, 22, 0.82); --realm-surface-strong: rgba(24, 33, 29, 0.94); --realm-text-primary: #f5efe1; --realm-text-secondary: #c7beaa; --realm-text-tertiary: #899284; --realm-accent-gold: #e3b85d; --realm-accent-violet: #a98add; --realm-accent-ember: #ef835d; --realm-accent-teal: #6ec9bc; --realm-border: rgba(227, 184, 93, 0.16); --realm-border-strong: rgba(227, 184, 93, 0.38); } body, .gradio-container { background: radial-gradient(circle at 12% 0%, rgba(110, 201, 188, 0.08), transparent 28rem), radial-gradient(circle at 88% 8%, rgba(169, 138, 221, 0.09), transparent 32rem), linear-gradient(180deg, #070908 0%, #0d1110 46%, #070908 100%) !important; color: var(--realm-text-primary) !important; } .gradio-container { max-width: 1480px !important; padding: 1rem 1.25rem 2rem !important; } .gradio-container button, .gradio-container .gr-button { border-radius: 8px !important; border: 1px solid var(--realm-border-strong) !important; background: linear-gradient(180deg, rgba(227,184,93,0.18), rgba(227,184,93,0.08)) !important; color: var(--realm-text-primary) !important; box-shadow: 0 10px 26px rgba(0,0,0,0.28) !important; transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease !important; } .gradio-container button:hover, .gradio-container .gr-button:hover { transform: translateY(-1px); border-color: rgba(227,184,93,0.64) !important; background: linear-gradient(180deg, rgba(227,184,93,0.28), rgba(239,131,93,0.12)) !important; } .gradio-container textarea, .gradio-container input, .gradio-container select { border-radius: 8px !important; border-color: rgba(227,184,93,0.22) !important; background: rgba(7,9,8,0.72) !important; color: var(--realm-text-primary) !important; } .gradio-container textarea:focus, .gradio-container input:focus { border-color: rgba(110,201,188,0.66) !important; box-shadow: 0 0 0 2px rgba(110,201,188,0.16) !important; } .realm-header-wrap { display: block; margin-bottom: 1rem; } .hero-banner { border-radius: 8px; border-color: rgba(227,184,93,0.28); box-shadow: 0 22px 70px rgba(0,0,0,0.52), 0 0 0 1px rgba(255,255,255,0.03) inset; } .hero-statusbar, .diorama-header, .realm-pulse, .current-event, .location-panel, .book-container, .entity-card, .room-view, .summon-section, .world-vignette, .featured-card, .entity-grid-card, .pulse-card { background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0)), var(--realm-surface) !important; border-color: var(--realm-border) !important; border-radius: 8px !important; box-shadow: 0 12px 36px rgba(0,0,0,0.28); } .realm-tabs { position: sticky; top: 0; z-index: 15; background: rgba(7,9,8,0.84); backdrop-filter: blur(14px); border: 1px solid rgba(227,184,93,0.10) !important; border-radius: 8px; padding: 0.25rem; margin-bottom: 1rem; } .realm-tabs button { border-radius: 6px !important; min-height: 2.35rem !important; letter-spacing: 0.08em !important; } .realm-tabs button.selected { background: rgba(227,184,93,0.14) !important; border-bottom: none !important; box-shadow: inset 0 0 0 1px rgba(227,184,93,0.22) !important; } .presence-bar { position: sticky; top: 0; z-index: 20; justify-content: center; border: 1px solid rgba(110,201,188,0.18); border-radius: 999px; margin: 0.2rem auto 0.75rem; max-width: 820px; background: rgba(7,9,8,0.74); backdrop-filter: blur(12px); } .realm-map { border-radius: 8px; border-color: rgba(227,184,93,0.34); box-shadow: 0 24px 80px rgba(0,0,0,0.34), inset 0 0 70px rgba(110,201,188,0.08); } .location-node { filter: drop-shadow(0 7px 12px rgba(0,0,0,0.36)); } .location-selected .location-circle { stroke: var(--realm-accent-teal) !important; } .diorama-wrap { border-radius: 8px; border-color: rgba(110,201,188,0.24); box-shadow: 0 24px 76px rgba(0,0,0,0.48), 0 0 0 1px rgba(255,255,255,0.025) inset; } .diorama-frame { height: min(82vh, 760px); min-height: 620px; } .diorama-label, .section-title, .summon-title, .event-label, .pulse-title, .book-title, .location-panel-special { color: var(--realm-accent-gold) !important; } .section-desc, .diorama-hint, .summon-hint { color: var(--realm-text-tertiary) !important; } .featured-card:hover, .entity-grid-card:hover, .loc-card:hover { border-color: rgba(110,201,188,0.42) !important; box-shadow: 0 18px 48px rgba(0,0,0,0.46), 0 0 28px rgba(110,201,188,0.10); } .loc-card, .places-gallery button.thumbnail-item img, .souls-gallery button.thumbnail-item img { border-radius: 8px; } .oracle-summoning { border-radius: 8px; background: radial-gradient(circle at 50% 0%, rgba(110,201,188,0.14), transparent 42%), radial-gradient(circle at 70% 20%, rgba(169,138,221,0.12), transparent 36%), rgba(12,18,16,0.88); } .tick-result { border-radius: 8px; background: linear-gradient(135deg, rgba(110,201,188,0.12), rgba(227,184,93,0.07)), rgba(12,18,16,0.9); } @media (max-width: 768px) { .gradio-container { padding: 0.75rem !important; } .realm-tabs { position: relative; } .presence-bar { position: relative; border-radius: 8px; } .diorama-frame { height: min(64vh, 520px); min-height: 390px; } .diorama-wrap::before, .diorama-wrap::after { display: none; } } /* ── Premium glassmorphism & polish ── */ .entity-card, .current-event, .book-container, .location-panel, .realm-pulse, .world-vignette, .featured-card { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 12px 40px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.05); } .section-title, .book-title, .pulse-title, .event-label, .summon-title { background: linear-gradient(90deg, #d4a84b, #f0d9a0, #d4a84b); background-size: 200% auto; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; animation: titleShimmer 6s linear infinite; } @keyframes titleShimmer { to { background-position: 200% center; } } .entity-card, .pulse-card, .featured-card { animation: cardEntrance 0.55s ease-out both; } @keyframes cardEntrance { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } .gradio-container button.primary, .gradio-container button[class*="primary"], .gradio-container .primary { background: linear-gradient(135deg, rgba(212,168,75,0.25), rgba(212,168,75,0.12)) !important; border: 1px solid rgba(212,168,75,0.45) !important; color: #f0d9a0 !important; transition: box-shadow 0.25s, transform 0.2s, background 0.25s !important; } .gradio-container button.primary:hover, .gradio-container button[class*="primary"]:hover { box-shadow: 0 0 24px rgba(212,168,75,0.28) !important; transform: translateY(-1px); } .gradio-container button, .gradio-container .tab-nav button { transition: box-shadow 0.2s, border-color 0.2s !important; } .gradio-container button:hover { border-color: rgba(212,168,75,0.35) !important; } .gradio-container input, .gradio-container textarea, .gradio-container select { background: rgba(12,20,16,0.85) !important; border-color: var(--realm-glass-border) !important; line-height: var(--realm-line-height) !important; } .book-container, .entity-detail-wrap { scroll-behavior: smooth; } .skeleton-pulse { background: linear-gradient(90deg, rgba(42,74,58,0.3) 25%, rgba(58,90,68,0.45) 50%, rgba(42,74,58,0.3) 75%); background-size: 200% 100%; animation: skeletonShimmer 1.5s ease-in-out infinite; border-radius: 8px; min-height: 1.2rem; } @keyframes skeletonShimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } body, .gradio-container { line-height: var(--realm-line-height); letter-spacing: var(--realm-letter-spacing); } .section-divider { height: 1px; margin: 2rem 0; background: linear-gradient(90deg, transparent, var(--realm-border-strong), transparent); }