@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600&family=Cinzel+Decorative:wght@700&family=Cormorant+Garamond:ital,wght@0,500;1,500&family=EB+Garamond:ital@0;1&family=IM+Fell+English: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: 'EB Garamond', 'Libre Baskerville', Georgia, 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; } .event-chronicle { font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.88rem; line-height: 1.5; color: #5c4228; margin: 0.55rem 0 0; padding-top: 0.45rem; border-top: 1px solid rgba(138, 106, 58, 0.2); } .vignette-mystery { margin-top: 0.45rem !important; } /* 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; border-radius: 10px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(138, 106, 58, 0.22); } .diorama-frame { display: block; width: 100%; height: min(80vh, 720px); min-height: 540px; border: none; background: #0c1410; cursor: crosshair; } /* Walk pad — anchored inside the 3D diorama stage only */ #aether-walk-pad { display: none !important; position: absolute; left: 0.85rem; bottom: 0.85rem; z-index: 12; pointer-events: none; } #aether-walk-pad.visible { display: none !important; } #aether-walk-pad.visible.explore-only { display: block !important; } #aether-walk-pad.controls-hidden { display: none !important; } #aether-walk-pad .awp-pad { display: grid; grid-template-columns: 2.4rem 2.4rem 2.4rem; gap: 0.2rem; pointer-events: auto; } #aether-walk-pad .awp-spacer { visibility: hidden; } #aether-walk-pad .awp-btn { width: 2.4rem; height: 2.4rem; border-radius: 8px; border: 1px solid rgba(212, 168, 75, 0.4); background: rgba(8, 12, 10, 0.82); color: #f0d9a0; font-family: 'Cinzel', serif; font-size: 0.75rem; font-weight: 600; cursor: pointer; touch-action: none; user-select: none; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4); } #aether-walk-pad .awp-btn.pressed, #aether-walk-pad .awp-btn:active { background: rgba(212, 168, 75, 0.35); color: #fff8e8; } .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; background: linear-gradient(180deg, #faf1dc, #ead9b3) !important; box-shadow: inset 0 0 24px rgba(161,124,74,0.08), 0 12px 28px rgba(94,66,38,0.18); } .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: #3a2a1a; font-size: 11px; font-family: Georgia, serif; pointer-events: none; paint-order: stroke; stroke: rgba(248, 239, 217, 0.92); stroke-width: 4px; } .rel-edge { pointer-events: none; filter: drop-shadow(0 1px 1px rgba(80,60,32,0.12)); } .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: linear-gradient(180deg, #1a110b 0%, #0f0906 52%, #090605 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)); cursor: pointer; pointer-events: all; } .location-node .location-hit { pointer-events: all; } .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); } /* -------------------------------------------------------------------------- */ /* Living Tome redesign overrides */ /* -------------------------------------------------------------------------- */ :root { --tome-paper: #f3e6c8; --tome-paper-shadow: #d8c69e; --tome-paper-edge: #c2a877; --tome-ink: #3a2a1a; --tome-ink-faded: #6b5638; --tome-ink-red: #7a2e1d; --tome-leather: #4a2c1a; --tome-leather-light: #6b4226; --tome-leather-dark: #2e1a10; --tome-binding: #8a6a3a; --tome-gold: #c9a13b; --tome-gold-bright: #e8c873; --tome-gold-dark: #8a6c24; --tome-bronze: #a3713c; --tome-shadow: rgba(40, 25, 10, 0.45); --tome-glow: rgba(232, 200, 115, 0.35); --tome-overlay: rgba(58, 42, 26, 0.06); } body, .gradio-container { color: var(--tome-ink) !important; background: linear-gradient(180deg, #c5a271 0%, #b68f5f 100%) !important; } .gradio-container { --body-background-fill: #f6ebd3; --background-fill-primary: #fbf3df; --background-fill-secondary: #f2e3c2; --block-background-fill: #fbf1dc; --block-border-color: rgba(138, 106, 58, 0.28); --border-color-primary: rgba(138, 106, 58, 0.28); --body-text-color: var(--tome-ink); --body-text-color-subdued: var(--tome-ink-faded); --block-label-text-color: var(--tome-ink); --input-background-fill: #fff8ea; --input-border-color: rgba(138, 106, 58, 0.35); --button-secondary-background-fill: #efdec0; --button-secondary-border-color: rgba(138, 106, 58, 0.32); --checkbox-label-background-fill: #f4e4c2; } .realm-tabs { background: transparent !important; border: 0 !important; } .realm-tabs button, .realm-tabs [role="tablist"] { display: none !important; } .realm-tabs [role="tabpanel"] { margin: 0 auto; max-width: 1380px; min-height: 70vh; border: 1px solid var(--tome-paper-edge) !important; border-radius: 18px !important; padding: 1.2rem 1.25rem 2.2rem; color: var(--tome-ink) !important; background: radial-gradient(circle at 8% 14%, rgba(255,255,255,0.42), transparent 28%), radial-gradient(circle at 92% 18%, rgba(255,255,255,0.3), transparent 24%), linear-gradient(90deg, #f9efd8 0%, #f5e8ca 44.8%, #e7d2aa 48.6%, #b39263 49.5%, #8e6840 50%, #b39263 50.5%, #e7d2aa 51.4%, #f5e8ca 55.2%, #faf1db 100%) !important; box-shadow: 0 18px 38px rgba(76, 50, 22, 0.26), inset 0 0 0 2px rgba(255, 247, 224, 0.58), inset 18px 0 26px rgba(161, 124, 74, 0.12), inset -18px 0 26px rgba(161, 124, 74, 0.12), inset 0 -18px 36px rgba(168, 134, 83, 0.14); position: relative; overflow: hidden; } .realm-tabs [role="tabpanel"]::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, transparent 0 46.5%, rgba(255,255,255,0.16) 47.8%, transparent 49%), linear-gradient(90deg, transparent 51%, rgba(255,255,255,0.16) 52.2%, transparent 53.5%), radial-gradient(circle at 12% 18%, rgba(113, 82, 42, 0.06) 0 2px, transparent 2px), radial-gradient(circle at 70% 74%, rgba(113, 82, 42, 0.05) 0 1.5px, transparent 1.5px); opacity: 0.42; } .realm-tabs [role="tabpanel"]::after { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 112px; transform: translateX(-50%); pointer-events: none; background: radial-gradient(ellipse at center, rgba(92, 63, 33, 0.16) 0%, rgba(92, 63, 33, 0.08) 28%, rgba(255, 244, 221, 0) 74%); opacity: 0.88; } .gradio-container .section-title, .gradio-container .book-title, .gradio-container .diorama-place-name, .gradio-container .room-name, .gradio-container .entity-name, .gradio-container .loc-card-name { color: var(--tome-ink) !important; font-family: 'Cinzel Decorative', 'Cinzel', serif !important; text-shadow: none !important; } .gradio-container .section-desc, .gradio-container .vignette-text, .gradio-container .feed-content, .gradio-container .entry-content, .gradio-container .entity-appearance, .gradio-container .room-lore, .gradio-container .pulse-detail, .gradio-container p, .gradio-container li, .gradio-container label { color: var(--tome-ink) !important; } .gradio-container .world-vignette, .gradio-container .current-event, .gradio-container .pulse-card, .gradio-container .entity-card, .gradio-container .book-container, .gradio-container .location-panel, .gradio-container .featured-card, .gradio-container .entity-grid-card, .gradio-container .room-view, .gradio-container .diorama-wrap { background: linear-gradient(180deg, rgba(255,255,255,0.28), rgba(255,255,255,0.02)), linear-gradient(180deg, #f6ead0, #ecdbb8) !important; border-color: var(--tome-paper-edge) !important; box-shadow: 0 14px 35px rgba(78, 55, 26, 0.24) !important; } .grid-card-scrim, .featured-card-scrim, .location-panel-scrim, .room-hero-scrim, .entity-card-banner-scrim { display: none !important; } .featured-card, .entity-grid-card, .location-panel-banner, .room-hero, .entity-card-banner { background-blend-mode: screen !important; } .gradio-container .hero-statusbar, .gradio-container .diorama-header, .gradio-container .realm-pulse { background: linear-gradient(180deg, #ecd8af, #e2c89a) !important; } .location-circle, .pulse-title, .event-label, .section-label, .room-eyebrow, .oracle-title, .vignette-label, .entity-type, .entity-status, .book-day-header, .entry-type-badge { color: var(--tome-gold-dark) !important; } #tome-nav { position: fixed; inset: auto 0 1.2rem 0; z-index: 2100; pointer-events: none; } #presence-bar:empty { display: none !important; } .tome-corner, .tome-ribbon, .tome-page-indicator, .tome-jump-select { pointer-events: auto; } .tome-corner { position: fixed; bottom: 2rem; width: 54px; height: 54px; border: 1px solid var(--tome-gold-dark); border-radius: 12px; background: linear-gradient(180deg, #f4dfb0, #d2ae63); color: var(--tome-ink); font-size: 1.1rem; cursor: pointer; box-shadow: 0 10px 24px rgba(26, 14, 6, 0.3); } .tome-corner-left { left: 1.2rem; bottom: 5.5rem; } .tome-corner-right { right: 1.2rem; } .tome-ribbon { position: fixed; top: 0.2rem; right: 4.2rem; padding: 0.45rem 0.85rem 0.65rem; border: 1px solid #7f1622; border-radius: 0 0 8px 8px; background: linear-gradient(180deg, #b22a3b, #7e1723); color: #fff5e0; font-family: 'IM Fell English', serif; font-size: 0.76rem; letter-spacing: 0.04em; cursor: pointer; } .tome-page-indicator { position: fixed; left: 50%; bottom: 1rem; transform: translateX(-50%); padding: 0.22rem 0.62rem; border-radius: 999px; background: rgba(243,230,200,0.84); border: 1px solid var(--tome-paper-edge); color: var(--tome-ink-faded); font-family: 'IM Fell English', serif; font-size: 0.78rem; } .tome-floating-toc { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(720px, 88vw); display: grid; opacity: 0; visibility: hidden; pointer-events: none; padding: 1rem; border: 1px solid var(--tome-paper-edge); border-radius: 18px; background: rgba(247, 237, 212, 0.96); box-shadow: 0 16px 34px rgba(28, 16, 8, 0.35); z-index: 2102; } .tome-floating-toc.open { opacity: 1; visibility: visible; pointer-events: auto; gap: 0.55rem; } .tome-floating-toc::before { content: "Table of Contents"; display: block; text-align: center; font-family: 'Cinzel Decorative', 'Cinzel', serif; font-size: clamp(1.2rem, 3vw, 2rem); color: var(--tome-ink); margin-bottom: 0.25rem; } .tome-floating-link { text-align: center; border: 1px solid #d8c59f; border-radius: 12px; padding: 0.65rem 0.7rem; background: #fff8ea; color: var(--tome-ink); font-family: 'Cormorant Garamond', serif; font-size: 1rem; cursor: pointer; } .tome-floating-link:hover { background: #f2e1ba; } .tome-jump-select { position: fixed; left: -9999px; } .sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; border: 0 !important; } .realm-opening { background: transparent; } .realm-opening-glitter { position: absolute; inset: 0; pointer-events: none; } .realm-opening-glitter span { position: absolute; width: 8px; height: 8px; border-radius: 999px; background: radial-gradient(circle, rgba(232, 196, 112, 0.95) 0%, rgba(194, 148, 58, 0.34) 55%, transparent 72%); filter: drop-shadow(0 0 7px rgba(194, 148, 58, 0.35)); animation: floatSpark 6.5s linear infinite; } .realm-opening-glitter span:nth-child(1) { left: 9%; top: 18%; animation-delay: 0s; } .realm-opening-glitter span:nth-child(2) { left: 16%; top: 32%; animation-delay: 1.2s; } .realm-opening-glitter span:nth-child(3) { left: 23%; top: 14%; animation-delay: 2.1s; } .realm-opening-glitter span:nth-child(4) { left: 74%; top: 20%; animation-delay: 0.7s; } .realm-opening-glitter span:nth-child(5) { left: 81%; top: 30%; animation-delay: 2.4s; } .realm-opening-glitter span:nth-child(6) { left: 67%; top: 13%; animation-delay: 3s; } .realm-opening-glitter span:nth-child(7) { left: 12%; top: 65%; animation-delay: 1.4s; } .realm-opening-glitter span:nth-child(8) { left: 24%; top: 72%; animation-delay: 3.3s; } .realm-opening-glitter span:nth-child(9) { left: 37%; top: 61%; animation-delay: 4.2s; } .realm-opening-glitter span:nth-child(10) { left: 63%; top: 68%; animation-delay: 1.9s; } .realm-opening-glitter span:nth-child(11) { left: 78%; top: 74%; animation-delay: 4.7s; } .realm-opening-glitter span:nth-child(12) { left: 88%; top: 58%; animation-delay: 2.9s; } .realm-cover-card, .realm-toc-card { position: relative; z-index: 2; width: min(760px, 94vw); text-align: center; border-radius: 18px; border: 1px solid rgba(201,161,59,0.44); box-shadow: 0 30px 100px rgba(0,0,0,0.58); } .realm-cover-card { padding: clamp(2rem, 5vh, 3rem) clamp(1.6rem, 4vw, 2.6rem); background: radial-gradient(circle at 25% 15%, rgba(255,240,198,0.12), transparent 28%), linear-gradient(150deg, var(--tome-leather-light), var(--tome-leather), var(--tome-leather-dark)); display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: min(380px, 58vh); } .realm-cover-kicker { margin: 0; color: #ead7a4; font-family: 'IM Fell English', serif; letter-spacing: 0.08em; } .realm-cover-title { margin: 0.6rem 0; color: #f8e4a8 !important; font-family: 'Cinzel Decorative', 'Cinzel', serif; font-size: clamp(1.5rem, 6vw, 3rem); letter-spacing: 0.16em; word-spacing: 0.12em; display: flex; flex-direction: column; gap: 0.18em; align-items: center; line-height: 0.95; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.65), 0 1px 0 rgba(255, 248, 220, 0.45); } .realm-cover-title span { display: inline-block; white-space: nowrap; color: #f8e4a8 !important; -webkit-text-fill-color: #f8e4a8; background: transparent; letter-spacing: inherit; clip-path: inset(0 100% 0 0); animation: revealSigil 1.8s steps(18, end) forwards; } .realm-cover-title span:nth-child(2) { animation-delay: 0.45s; } .realm-cover-calligraphy { position: absolute; inset: auto 12% 16% 12%; height: 160px; pointer-events: none; background: linear-gradient(90deg, transparent 0 17%, rgba(232, 200, 115, 0.1) 17.2% 18%, transparent 18.2% 82%, rgba(232, 200, 115, 0.1) 82.2% 83%, transparent 83.2%), linear-gradient(36deg, transparent 0 21%, rgba(232, 200, 115, 0.1) 21.5% 22.8%, transparent 23.2%), linear-gradient(-36deg, transparent 0 21%, rgba(232, 200, 115, 0.1) 21.5% 22.8%, transparent 23.2%), linear-gradient(-36deg, transparent 76.8%, rgba(232, 200, 115, 0.1) 77.2% 78.5%, transparent 79%), linear-gradient(36deg, transparent 76.8%, rgba(232, 200, 115, 0.1) 77.2% 78.5%, transparent 79%); opacity: 0.14; filter: blur(0.2px); } .realm-cover-sub { color: #d2b97b; margin: 0 0 1rem; font-style: italic; } #realm-opening-enter { border: 1px solid var(--tome-gold-dark); border-radius: 999px; background: linear-gradient(180deg, #f0d696, #bb8e33); color: #2d1a0c; padding: 0.6rem 1rem; font-family: 'Cinzel', serif; text-transform: uppercase; letter-spacing: 0.1em; cursor: pointer; } .realm-toc-card { display: none; margin-top: 1rem; padding: 1.1rem; background: linear-gradient(180deg, #f4e7c6, #ead7af); color: var(--tome-ink); } .realm-toc-card.open { display: block; } .realm-toc-card h2 { margin-top: 0; font-family: 'Cinzel Decorative', 'Cinzel', serif; } .realm-toc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem; } .realm-toc-link { border: 1px solid var(--tome-paper-edge); border-radius: 8px; padding: 0.5rem 0.6rem; background: rgba(255, 250, 236, 0.85); color: var(--tome-ink); font-family: 'Cormorant Garamond', serif; cursor: pointer; } .realm-opening.is-opened .realm-cover-card { transform: translateY(-10px) scale(0.98); opacity: 0; pointer-events: none; transition: opacity 0.45s ease, transform 0.45s ease; } .realm-opening.is-opened .realm-toc-card { pointer-events: auto; } .realm-opening.is-closed { opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.6s ease; } .seal-summon-btn { border-radius: 999px !important; min-width: 170px; background: radial-gradient(circle at 30% 26%, #d23c46, #8d1f2b) !important; border: 2px solid #f2d8a0 !important; color: #fff6de !important; font-family: 'Cinzel Decorative', 'Cinzel', serif !important; } .oracle-summoning { background: radial-gradient(circle at 24% 32%, rgba(58,42,26,0.09), transparent 35%), radial-gradient(circle at 74% 58%, rgba(58,42,26,0.1), transparent 40%), linear-gradient(180deg, #f2e4c0, #e6d1a1) !important; } .oracle-orbit, .oracle-ring, .oracle-core { display: none !important; } .oracle-summoning::before, .oracle-summoning::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; animation: inkBloom 3.8s ease-in-out infinite; } .oracle-summoning::before { width: 180px; height: 180px; left: 10%; top: 20%; background: radial-gradient(circle, rgba(58,42,26,0.2), transparent 68%); } .oracle-summoning::after { width: 210px; height: 210px; right: 8%; bottom: 8%; background: radial-gradient(circle, rgba(122,46,29,0.18), transparent 70%); animation-delay: 1.1s; } @keyframes inkBloom { 0%, 100% { transform: scale(0.84); opacity: 0.38; } 50% { transform: scale(1.15); opacity: 0.7; } } .tome-turn-next .realm-tabs [role="tabpanel"] { animation: pageTurnNext 0.72s cubic-bezier(0.45, 0, 0.55, 1); } .tome-turn-prev .realm-tabs [role="tabpanel"] { animation: pageTurnPrev 0.72s cubic-bezier(0.45, 0, 0.55, 1); } @keyframes pageTurnNext { 0% { opacity: 0.92; transform: perspective(1800px) translateX(16px) rotateY(8deg) scale(0.99); transform-origin: left center; } 55% { opacity: 1; transform: perspective(1800px) translateX(-6px) rotateY(-2deg) scale(1); transform-origin: left center; } 100% { opacity: 1; transform: perspective(1800px) translateX(0) rotateY(0deg) scale(1); } } @keyframes pageTurnPrev { 0% { opacity: 0.92; transform: perspective(1800px) translateX(-16px) rotateY(-8deg) scale(0.99); transform-origin: right center; } 55% { opacity: 1; transform: perspective(1800px) translateX(6px) rotateY(2deg) scale(1); transform-origin: right center; } 100% { opacity: 1; transform: perspective(1800px) translateX(0) rotateY(0deg) scale(1); } } @media (max-width: 920px) { .realm-tabs [role="tabpanel"]::after { display: none; } .realm-toc-grid { grid-template-columns: 1fr; } .tome-corner { width: 46px; height: 46px; bottom: 1rem; } .tome-ribbon { right: 1rem; top: 0; font-size: 0.7rem; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } } /* Mystical opening gate */ .realm-opening { position: fixed; inset: 0; z-index: 9999; display: grid; place-items: center; padding: 1.25rem; transition: opacity 0.9s ease, visibility 0.9s ease; } .realm-opening.is-closed { opacity: 0; visibility: hidden; pointer-events: none; } .realm-opening-backdrop { position: absolute; inset: 0; background: radial-gradient(circle at 26% 14%, rgba(201, 161, 59, 0.1), transparent 34%), radial-gradient(circle at 82% 22%, rgba(138, 106, 58, 0.12), transparent 34%), linear-gradient(180deg, #140d09 0%, #0b0605 100%); } .realm-opening-stars { position: absolute; inset: 0; background-image: radial-gradient(circle at 13% 22%, rgba(227,184,93,0.75) 0 1.3px, transparent 1.7px), radial-gradient(circle at 69% 37%, rgba(227,184,93,0.55) 0 1.2px, transparent 1.6px), radial-gradient(circle at 83% 65%, rgba(227,184,93,0.52) 0 1.4px, transparent 1.8px), radial-gradient(circle at 30% 72%, rgba(194,168,119,0.45) 0 1.2px, transparent 1.8px); opacity: 0.5; animation: openingStars 8s ease-in-out infinite alternate; } .realm-opening-card { position: relative; z-index: 1; width: min(820px, 94vw); border-radius: 18px; border: 1px solid rgba(227,184,93,0.36); background: radial-gradient(120% 110% at 50% 0%, rgba(227,184,93,0.15), transparent 62%), rgba(8, 12, 10, 0.9); box-shadow: 0 24px 90px rgba(0,0,0,0.62); padding: clamp(1.2rem, 3vw, 2rem); text-align: center; } .realm-opening-kicker { margin: 0; color: var(--realm-accent-gold); font-family: 'Cinzel', serif; font-size: 0.74rem; text-transform: uppercase; letter-spacing: 0.2em; opacity: 0.9; } .realm-opening-title { margin: 0.65rem 0 1.2rem; color: #f6efdd; font-family: 'Libre Baskerville', serif; font-size: clamp(1.2rem, 3.8vw, 2.05rem); line-height: 1.32; text-wrap: balance; } .realm-opening-line { margin: 0.45rem 0; color: #d8ceb4; font-style: italic; opacity: 0; transform: translateY(8px); animation: openingLineIn 0.9s ease forwards; } #realm-opening-enter { margin-top: 1rem; border: 1px solid rgba(227,184,93,0.58); border-radius: 999px; padding: 0.6rem 1.2rem; font-family: 'Cinzel', serif; font-size: 0.76rem; letter-spacing: 0.12em; text-transform: uppercase; background: linear-gradient(180deg, rgba(227,184,93,0.3), rgba(227,184,93,0.14)); color: #fff4dd; cursor: pointer; } #realm-opening-enter:hover { background: linear-gradient(180deg, rgba(227,184,93,0.42), rgba(110,201,188,0.2)); } @keyframes openingLineIn { to { opacity: 1; transform: translateY(0); } } @keyframes openingStars { from { opacity: 0.35; transform: scale(1); } to { opacity: 0.6; transform: scale(1.02); } } @keyframes floatSpark { 0% { transform: translateY(8px) scale(0.7); opacity: 0; } 15% { opacity: 0.95; } 60% { opacity: 0.85; } 100% { transform: translateY(-42px) scale(1.1); opacity: 0; } } @keyframes writeSigil { from { width: 0; } to { width: 100%; } } @keyframes revealSigil { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } } /* -------------------------------------------------------------------------- */ /* Viewport-fit hotfix: keep app in one screen and scroll inside the spread */ /* -------------------------------------------------------------------------- */ html, body { height: 100%; overflow: hidden; } body, .gradio-container { background: linear-gradient(180deg, #f2e6ce 0%, #e4d2ae 56%, #d7bf92 100%) !important; } .gradio-container { height: 760px !important; max-height: calc(100vw * 0.62) !important; min-height: 620px !important; display: flex !important; flex-direction: column !important; max-width: min(1500px, 100vw) !important; padding: 0.35rem 0.6rem 0.5rem !important; overflow: hidden !important; } #presence-bar, .realm-header-wrap { flex: 0 0 auto; margin-bottom: 0.35rem !important; } .realm-header-wrap { display: none !important; } .realm-tabs { flex: 1 1 auto; height: 565px !important; max-height: 565px !important; min-height: 0; overflow: hidden !important; margin-bottom: 0 !important; } .realm-tabs .tab-wrapper { display: none !important; height: 0 !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; } .realm-tabs [role="tabpanel"] { height: 565px !important; max-height: 565px !important; min-height: 0 !important; overflow: hidden !important; padding: 0.65rem 1.15rem 0.8rem !important; display: flex !important; flex-direction: column !important; } .realm-tabs [role="tabpanel"] > .column, .realm-tabs [role="tabpanel"] > .column > .column { min-height: 0 !important; height: auto !important; } .realm-tabs [role="tabpanel"]::-webkit-scrollbar { width: 9px; } .realm-tabs [role="tabpanel"]::-webkit-scrollbar-thumb { background: rgba(138, 106, 58, 0.45); border-radius: 9px; } .realm-opening-backdrop { background: radial-gradient(circle at 28% 18%, rgba(201, 161, 59, 0.12), transparent 38%), radial-gradient(circle at 78% 24%, rgba(138, 106, 58, 0.1), transparent 36%), linear-gradient(180deg, #120a06 0%, #0a0604 55%, #050302 100%) !important; } #realm-opening-enter:hover { background: linear-gradient(180deg, rgba(227,184,93,0.52), rgba(227,184,93,0.28)); } .realm-opening { display: flex !important; align-items: center !important; justify-content: center !important; padding: clamp(1rem, 3vh, 2rem) !important; overflow: hidden; } .realm-opening.is-prologue { overflow-y: auto; } .realm-opening-inner { position: relative; z-index: 4; width: min(820px, 92vw); display: flex; align-items: center; justify-content: center; min-height: min(480px, 72vh); max-height: min(88vh, 760px); margin: auto; } .realm-cover-card { margin: 0 auto !important; } .realm-cover-title { font-size: clamp(2.4rem, 7vw, 4.7rem) !important; color: #f8e4a8 !important; letter-spacing: 0.16em !important; word-spacing: 0.12em !important; } .realm-cover-title span { color: #f8e4a8 !important; -webkit-text-fill-color: #f8e4a8 !important; letter-spacing: inherit !important; } .realm-cover-sub, .realm-cover-kicker { color: #f8e7b9 !important; } .realm-cover-card::before, .realm-cover-card::after { content: ""; position: absolute; bottom: 0.85rem; width: 120px; height: 210px; opacity: 0.42; pointer-events: none; background: radial-gradient(circle at 50% 18%, rgba(232, 200, 115, 0.5) 0 6px, transparent 8px), radial-gradient(circle at 34% 30%, rgba(232, 200, 115, 0.35) 0 4px, transparent 6px), radial-gradient(circle at 66% 33%, rgba(232, 200, 115, 0.3) 0 4px, transparent 6px), linear-gradient(90deg, transparent 48%, rgba(232, 200, 115, 0.55) 49% 51%, transparent 52%), linear-gradient(35deg, transparent 50%, rgba(232, 200, 115, 0.28) 51% 53%, transparent 54%), linear-gradient(-35deg, transparent 50%, rgba(232, 200, 115, 0.28) 51% 53%, transparent 54%); filter: drop-shadow(0 0 16px rgba(232, 200, 115, 0.28)); } .realm-cover-card::before { left: 1.4rem; } .realm-cover-card::after { right: 1.4rem; transform: scaleX(-1); } .current-event, .realm-pulse, .pulse-card, .activity-feed, .location-panel, .book-container, .entity-card, .featured-card, .entity-grid-card, .room-view, .summon-section, .diorama-header, .rel-graph-wrap { background: linear-gradient(180deg, rgba(255, 249, 232, 0.96), rgba(236, 218, 178, 0.92)) !important; color: var(--tome-ink) !important; border-color: rgba(138, 106, 58, 0.38) !important; box-shadow: 0 10px 24px rgba(76, 50, 22, 0.16) !important; } .gradio-container .wrap, .gradio-container .form, .gradio-container .panel, .gradio-container .block, .gradio-container .container, .gradio-container .tabitem, .gradio-container .head { color: var(--tome-ink) !important; } .gradio-container input, .gradio-container textarea, .gradio-container select, .gradio-container .input-container, .gradio-container .dropdown, .gradio-container .wrap.svelte-p5q82i, .gradio-container .full-container, .gradio-container .container.svelte-1mutzus, .gradio-container .head.svelte-1kajgn1, .gradio-container .block, .gradio-container .form { background: #fff7e7 !important; color: var(--tome-ink) !important; border-color: rgba(138, 106, 58, 0.3) !important; } .gradio-container .head.svelte-1kajgn1, .gradio-container .full-container.svelte-5gfv2q, .gradio-container .container.svelte-1mutzus, .gradio-container .wrap.svelte-p5q82i { box-shadow: none !important; } .current-event *, .realm-pulse *, .pulse-card *, .activity-feed *, .location-panel *, .book-container *, .entity-card *, .featured-card *, .entity-grid-card *, .room-view *, .summon-section *, .diorama-header *, .rel-graph-wrap * { color: var(--tome-ink) !important; text-shadow: none !important; } .event-label, .pulse-title, .pulse-day, .feed-day, .section-label, .location-panel-special, .entity-status, .book-day-header, .entry-title { color: var(--tome-gold-dark) !important; } .realm-map, .diorama-stage, .diorama-frame, .rel-graph-svg { background: linear-gradient(180deg, #faf1dc, #ead9b3) !important; } @media (max-width: 920px) { body, html { overflow: hidden; } .gradio-container { height: 100dvh !important; max-height: 100dvh !important; min-height: 100dvh !important; overflow: hidden !important; } .realm-tabs { height: auto !important; max-height: none !important; flex: 1 1 auto !important; } .realm-tabs [role="tabpanel"] { height: auto !important; max-height: none !important; flex: 1 1 auto !important; overflow: hidden !important; padding-bottom: 0.25rem !important; } .realm-opening-inner { min-height: min(420px, 68vh); } .realm-prologue-card { max-height: min(82vh, 620px); overflow-y: auto; } .tome-page-left, .tome-page-right { padding-left: 0.5rem !important; padding-right: 0.5rem !important; } } /* -------------------------------------------------------------------------- */ /* Cinematic book opening + prologue */ /* -------------------------------------------------------------------------- */ .realm-opening-vignette { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 42%, transparent 28%, rgba(8, 5, 3, 0.72) 100%); z-index: 1; } .realm-book-stage { position: relative; z-index: 3; width: 100%; perspective: 1800px; transform-style: preserve-3d; display: flex; align-items: center; justify-content: center; } .realm-opening.is-prologue .realm-book-stage, .realm-opening.is-unfolded .realm-book-stage { visibility: hidden; opacity: 0; pointer-events: none; position: absolute; width: min(760px, 94vw); height: min(380px, 58vh); overflow: hidden; } .realm-book-closed { position: relative; transform-style: preserve-3d; transition: transform 1.4s cubic-bezier(0.45, 0, 0.2, 1), opacity 0.9s ease; } .realm-book-closed.is-opening { transform: rotateY(-14deg) translateZ(-40px); opacity: 0; pointer-events: none; } .realm-book-spine { position: absolute; left: 50%; top: 4%; bottom: 4%; width: 18px; transform: translateX(-50%); background: linear-gradient(90deg, #2e1a10, #6b4226 48%, #2e1a10); border-radius: 4px; box-shadow: 0 0 24px rgba(0, 0, 0, 0.45); z-index: 0; } .realm-book-open { position: absolute; inset: 0; display: flex; gap: 0; opacity: 0; transform: scale(0.94); pointer-events: none; transition: opacity 1s ease 0.3s, transform 1.2s cubic-bezier(0.34, 1.2, 0.64, 1) 0.2s; } .realm-opening.is-unfolded .realm-book-open { opacity: 1; transform: scale(1); } .realm-book-page { flex: 1; min-height: 320px; border: 1px solid rgba(138, 106, 58, 0.35); background: radial-gradient(circle at 18% 22%, rgba(255, 255, 255, 0.35), transparent 32%), linear-gradient(180deg, #f8efd8, #e8d5ad); box-shadow: inset 0 0 40px rgba(138, 106, 58, 0.12); } .realm-book-page-left { border-radius: 14px 4px 4px 14px; transform-origin: right center; animation: pageFanLeft 1.1s cubic-bezier(0.34, 1.1, 0.64, 1) 0.15s both; clip-path: polygon( 0% 2%, 3% 0%, 7% 1.5%, 11% 0.5%, 15% 2%, 19% 0%, 23% 1%, 27% 0.5%, 31% 2%, 35% 0%, 39% 1.5%, 43% 0.5%, 47% 2%, 51% 0%, 55% 1%, 59% 0.5%, 63% 2%, 67% 0%, 71% 1.5%, 75% 0.5%, 79% 2%, 83% 0%, 87% 1%, 91% 0.5%, 95% 2%, 98% 0%, 100% 2%, 100% 98%, 98% 100%, 95% 98%, 91% 100%, 87% 98%, 83% 100%, 79% 98%, 75% 100%, 71% 98%, 67% 100%, 63% 98%, 59% 100%, 55% 98%, 51% 100%, 47% 98%, 43% 100%, 39% 98%, 35% 100%, 31% 98%, 27% 100%, 23% 98%, 19% 100%, 15% 98%, 11% 100%, 7% 98%, 3% 100%, 0% 98% ); } .realm-book-page-right { border-radius: 4px 14px 14px 4px; transform-origin: left center; animation: pageFanRight 1.1s cubic-bezier(0.34, 1.1, 0.64, 1) 0.15s both; clip-path: polygon( 0% 2%, 3% 0%, 7% 1.5%, 11% 0.5%, 15% 2%, 19% 0%, 23% 1%, 27% 0.5%, 31% 2%, 35% 0%, 39% 1.5%, 43% 0.5%, 47% 2%, 51% 0%, 55% 1%, 59% 0.5%, 63% 2%, 67% 0%, 71% 1.5%, 75% 0.5%, 79% 2%, 83% 0%, 87% 1%, 91% 0.5%, 95% 2%, 98% 0%, 100% 2%, 100% 98%, 98% 100%, 95% 98%, 91% 100%, 87% 98%, 83% 100%, 79% 98%, 75% 100%, 71% 98%, 67% 100%, 63% 98%, 59% 100%, 55% 98%, 51% 100%, 47% 98%, 43% 100%, 39% 98%, 35% 100%, 31% 98%, 27% 100%, 23% 98%, 19% 100%, 15% 98%, 11% 100%, 7% 98%, 3% 100%, 0% 98% ); } @keyframes pageFanLeft { from { transform: rotateY(78deg); opacity: 0; } to { transform: rotateY(0deg); opacity: 1; } } @keyframes pageFanRight { from { transform: rotateY(-78deg); opacity: 0; } to { transform: rotateY(0deg); opacity: 1; } } .realm-prologue-card { position: absolute; z-index: 5; width: min(760px, 94vw); max-width: min(760px, 94vw); left: 50%; top: 50%; transform: translate(-50%, -50%); margin: 0; padding: clamp(1.6rem, 3.8vw, 2.4rem) clamp(1.6rem, 4.2vw, 2.8rem); border: 1px solid rgba(98, 62, 28, 0.42); border-radius: 6px 16px 14px 8px; background: /* coffee ring stains — kept to corners, away from title */ radial-gradient(ellipse 130px 100px at 94% 92%, rgba(72, 44, 18, 0.22) 0%, rgba(92, 58, 26, 0.1) 40%, transparent 68%), radial-gradient(ellipse 150px 120px at 6% 88%, rgba(68, 42, 18, 0.2) 0%, rgba(84, 52, 22, 0.08) 42%, transparent 70%), radial-gradient(ellipse 100px 80px at 8% 12%, rgba(54, 32, 12, 0.14) 0%, transparent 62%), radial-gradient(ellipse 90px 70px at 92% 10%, rgba(58, 34, 14, 0.12) 0%, transparent 60%), /* foxing — edges only */ radial-gradient(circle at 4% 42%, rgba(88, 62, 32, 0.12) 0 2.5px, transparent 3.5px), radial-gradient(circle at 96% 55%, rgba(78, 54, 28, 0.1) 0 2px, transparent 3px), radial-gradient(circle at 12% 96%, rgba(74, 48, 22, 0.1) 0 2.5px, transparent 3.5px), /* smoky edge darkening — even vignette, no center blob */ radial-gradient(ellipse 115% 100% at 50% 50%, transparent 55%, rgba(48, 30, 14, 0.12) 82%, rgba(32, 18, 8, 0.2) 100%), /* aged parchment base */ linear-gradient(168deg, #e8d4a8 0%, #dcc292 38%, #cdb47a 72%, #c4a86e 100%); box-shadow: 0 28px 70px rgba(12, 6, 2, 0.55), 0 8px 22px rgba(28, 16, 6, 0.35), inset 0 0 0 1px rgba(255, 240, 200, 0.28), inset 0 -22px 44px rgba(88, 56, 24, 0.16), inset 18px 0 28px rgba(72, 46, 20, 0.08), inset -18px 0 28px rgba(72, 46, 20, 0.08); text-align: center; opacity: 0; pointer-events: none; transition: opacity 0.8s ease; overflow-x: hidden; overflow-y: auto; max-height: min(88vh, 700px); isolation: isolate; clip-path: polygon( 0% 3%, 2% 0%, 5% 2%, 8% 0%, 12% 2%, 16% 0%, 20% 1.5%, 24% 0%, 100% 0%, 100% 97%, 98% 100%, 95% 98%, 92% 100%, 88% 98%, 84% 100%, 0% 100% ); } .realm-prologue-card::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: 0.45; background: radial-gradient(ellipse 180px 140px at 96% 96%, rgba(42, 24, 8, 0.18) 0%, transparent 58%), radial-gradient(ellipse 160px 130px at 4% 94%, rgba(38, 22, 6, 0.16) 0%, transparent 56%), linear-gradient(125deg, rgba(58, 36, 14, 0.06) 0%, transparent 50%, rgba(48, 28, 10, 0.07) 100%); mix-blend-mode: multiply; } .realm-prologue-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: 0.35; background: repeating-linear-gradient( 0deg, transparent, transparent 2px, rgba(62, 40, 18, 0.025) 2px, rgba(62, 40, 18, 0.025) 3px ), repeating-linear-gradient( 90deg, transparent, transparent 3px, rgba(48, 30, 12, 0.02) 3px, rgba(48, 30, 12, 0.02) 4px ), radial-gradient(ellipse 90% 80% at 50% 100%, rgba(28, 14, 4, 0.22) 0%, transparent 55%); mix-blend-mode: multiply; } .realm-prologue-card > * { position: relative; z-index: 1; } .realm-prologue-card.visible { opacity: 1; transform: translate(-50%, -50%); pointer-events: auto; } .realm-typewriter.is-typing::after { content: "▌"; display: inline; margin-left: 1px; color: var(--tome-gold-dark); animation: cursorBlink 0.85s step-end infinite; } .realm-prologue-cursor { display: none; margin: 0.25rem 0 0.5rem; text-align: left; max-width: 640px; margin-left: auto; margin-right: auto; color: var(--tome-gold-dark); font-family: 'IM Fell English', serif; animation: cursorBlink 0.85s step-end infinite; } .realm-prologue-cursor.active { display: none; } @keyframes cursorBlink { 50% { opacity: 0; } } .realm-opening.is-unfolding .realm-cover-card { transform-origin: left center; animation: coverLift 1.2s cubic-bezier(0.45, 0, 0.2, 1) forwards; will-change: transform, opacity; } @keyframes coverLift { 0% { transform: perspective(1200px) rotateY(0deg); opacity: 1; } 55% { transform: perspective(1200px) rotateY(-72deg); opacity: 0.85; } 100% { transform: perspective(1200px) rotateY(-94deg); opacity: 0; } } .realm-prologue-kicker { margin: 0; font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.92rem; color: #5c4228; letter-spacing: 0.06em; text-shadow: 0 1px 0 rgba(255, 236, 196, 0.35); } .realm-prologue-title { margin: 0.5rem 0 1rem; font-family: 'Cinzel Decorative', 'Cinzel', serif; font-size: clamp(1.4rem, 4vw, 2.2rem); color: #8a6424; letter-spacing: 0.2em; word-spacing: 0.08em; text-transform: uppercase; text-shadow: 0 1px 1px rgba(255, 240, 200, 0.35); } .realm-prologue-body { padding: 0 0.85rem; font-family: 'IM Fell English', serif; font-size: clamp(1rem, 2.2vw, 1.15rem); line-height: 1.75; color: #3d2a16; text-align: left; max-width: 640px; margin: 0 auto 1.2rem; word-spacing: 0.07em; letter-spacing: 0.02em; text-shadow: 0 1px 0 rgba(255, 236, 196, 0.2); } .realm-prologue-body p { margin: 0 0 0.85rem; } .realm-prologue-whisper { font-style: italic; color: #5a4024; border-top: 1px solid rgba(98, 62, 28, 0.32); padding-top: 0.85rem; margin-top: 0.5rem !important; } .realm-prologue-actions { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.65rem; width: 100%; margin-top: 0.65rem; text-align: center; } .realm-prologue-skip { display: inline-block; margin: 0 auto; border: 1px solid rgba(98, 62, 28, 0.35); border-radius: 999px; background: rgba(255, 249, 232, 0.55); color: #5c4228; padding: 0.5rem 1.35rem; font-family: 'Cinzel', serif; text-transform: uppercase; letter-spacing: 0.1em; cursor: pointer; font-size: 0.68rem; transition: background 0.2s ease, border-color 0.2s ease; } .realm-prologue-skip:hover { background: rgba(240, 214, 150, 0.75); border-color: rgba(98, 62, 28, 0.5); } .realm-prologue-skip.is-hidden { display: none; } #realm-prologue-enter { display: none; border: 1px solid var(--tome-gold-dark); border-radius: 999px; background: linear-gradient(180deg, #f0d696, #bb8e33); color: #2d1a0c; padding: 0.65rem 1.4rem; font-family: 'Cinzel', serif; text-transform: uppercase; letter-spacing: 0.12em; cursor: pointer; font-size: 0.78rem; margin: 0.55rem auto 0; opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity 0.5s ease, transform 0.5s ease, background 0.2s ease; } #realm-prologue-enter.ready { display: inline-block; opacity: 1; transform: translateY(0); pointer-events: auto; } #realm-prologue-enter:disabled { cursor: default; } #realm-prologue-enter.ready:hover { background: linear-gradient(180deg, #f5e0a8, #c9a13b); } .realm-opening.is-unfolding .realm-opening-backdrop, .realm-opening.is-prologue .realm-opening-backdrop { background: radial-gradient(ellipse 70% 55% at 50% 42%, rgba(201, 161, 59, 0.1), transparent 52%), radial-gradient(ellipse 90% 70% at 50% 100%, rgba(18, 8, 4, 0.65), transparent 55%), linear-gradient(180deg, #0c0705 0%, #140c08 42%, #080403 100%) !important; } .realm-opening.is-prologue .realm-opening-vignette { background: radial-gradient(ellipse 65% 58% at 50% 46%, transparent 32%, rgba(6, 3, 2, 0.55) 100%), radial-gradient(circle at 20% 30%, rgba(92, 58, 28, 0.08) 0%, transparent 42%), radial-gradient(circle at 80% 70%, rgba(72, 44, 18, 0.1) 0%, transparent 38%); } /* -------------------------------------------------------------------------- */ /* Two-page spread content distribution */ /* -------------------------------------------------------------------------- */ .tome-spread-row { gap: 0 !important; margin: 0 !important; } .realm-tabs [role="tabpanel"] { padding-left: 2.35rem !important; padding-right: 2.35rem !important; clip-path: none !important; overflow: hidden !important; border-radius: 3px 8px 8px 3px !important; } .realm-tabs [role="tabpanel"]::after { width: 88px; opacity: 0.95; } .book-header, .explore-intro, .rel-graph-wrap > .rel-graph-desc { max-width: calc(50% - 2rem); margin-left: 0; padding-right: 1.5rem; } .book-container .book-header { max-width: 100%; padding-right: 0; text-align: center; margin-bottom: 0.75rem; } .book-entries { column-count: 2; column-gap: 3.5rem; padding: 0 0.5rem; } .book-entries .book-day-header { break-after: avoid; } .book-entries .book-entry { break-inside: avoid; margin-bottom: 0.65rem; } .explore-intro { max-width: 100%; text-align: center; padding: 0 2rem; margin-bottom: 1rem; } /* -------------------------------------------------------------------------- */ /* 3D bonds graph frame */ /* -------------------------------------------------------------------------- */ .rel-graph-stage { position: relative; width: 100%; height: min(62vh, 520px); min-height: 380px; border-radius: 14px; overflow: hidden; border: 1px solid rgba(138, 106, 58, 0.38); box-shadow: inset 0 0 32px rgba(58, 42, 26, 0.18), 0 14px 32px rgba(76, 50, 22, 0.22); margin-bottom: 0.85rem; } .rel-graph-frame { display: block; width: 100%; height: 100%; border: none; background: #0a0806; } /* Form controls — parchment palette */ .gradio-container label, .gradio-container .label-wrap span { color: var(--tome-ink-faded) !important; font-family: 'IM Fell English', serif !important; font-size: 0.88rem !important; } .gradio-container select, .gradio-container .dropdown input, .gradio-container .svelte-1gfkn6j { background: #fff7e7 !important; color: var(--tome-ink) !important; border-color: rgba(138, 106, 58, 0.35) !important; } .gradio-container .wrap.svelte-p5q82i .wrap-inner { background: #fff7e7 !important; } .sidebar-panel { padding: 0.35rem 0 0.5rem !important; } .current-event, .realm-pulse, .activity-feed { margin-bottom: 0.75rem !important; padding: 0.85rem 1rem !important; } .realm-map { margin-bottom: 0.5rem; border-radius: 10px; overflow: hidden; } /* -------------------------------------------------------------------------- */ /* Living book spread — no scroll, printed pages, expand option */ /* -------------------------------------------------------------------------- */ /* Hidden Gradio pickers — mounted but invisible (Gradio 5 drops visible=False) */ .aether-pick-bridge { position: fixed !important; left: -9999px !important; top: 0 !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; z-index: -1 !important; margin: 0 !important; padding: 0 !important; border: none !important; } .aether-hidden-pick, .aether-hidden-pick.block, .aether-pick-bridge .block { width: 1px !important; height: 1px !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: none !important; box-shadow: none !important; background: transparent !important; overflow: hidden !important; } .aether-hidden-pick textarea, .aether-hidden-pick input { width: 1px !important; height: 1px !important; min-height: 0 !important; padding: 0 !important; border: none !important; opacity: 0 !important; } .tome-offpage-store { display: none !important; height: 0 !important; max-height: 0 !important; overflow: hidden !important; visibility: hidden !important; pointer-events: none !important; margin: 0 !important; padding: 0 !important; } .tome-spread-shell { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden; } .tome-spread-row { flex: 1 1 auto; min-height: 0 !important; max-height: 100% !important; align-items: stretch !important; overflow: hidden !important; gap: 0 !important; margin: 0 !important; } .tome-spread-row > .column, .tome-spread-row > .gr-column { min-height: 0 !important; max-height: 100% !important; overflow: hidden !important; } .tome-printed-page { position: relative; display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important; min-height: 0 !important; max-height: 100% !important; overflow: hidden !important; padding: 0.75rem 1.25rem 0.65rem !important; background: transparent !important; box-shadow: none !important; border: none !important; border-radius: 0 !important; isolation: isolate; } .tome-printed-page::before { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: 0.4; background: repeating-linear-gradient( 0deg, transparent, transparent 2px, rgba(62, 40, 18, 0.02) 2px, rgba(62, 40, 18, 0.02) 3px ), radial-gradient(ellipse 100% 90% at 50% 50%, transparent 58%, rgba(48, 30, 14, 0.08) 100%); mix-blend-mode: multiply; } .tome-printed-page > * { position: relative; z-index: 1; min-height: 0; } /* Strip Gradio chrome — ink sits on parchment, not in nested UI cards */ .tome-printed-page > .block, .tome-printed-page > .form, .tome-printed-page .block, .tome-printed-page .form, .tome-printed-page .html-container, .tome-printed-page .prose, .tome-printed-page .empty, .tome-printed-page .gr-group { background: transparent !important; border: none !important; box-shadow: none !important; border-radius: 0 !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; min-height: 0 !important; } .tome-printed-page > .block, .tome-printed-page > .form { flex-shrink: 0; } .tome-printed-page > .block:has(#world-map), .tome-printed-page > .block:has(#location-panel-host-wrap), .tome-explore-stage > .block:has(#explore-diorama-host), .tome-explore-stage #explore-diorama-host { flex: 1 1 auto !important; min-height: 260px !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; } .tome-printed-page::-webkit-scrollbar { display: none !important; width: 0 !important; } .tome-printed-page .block.hidden, .tome-printed-page .form.hidden, .tome-printed-page .block:empty, .tome-printed-page .svelte-1gfkn6j.hidden { display: none !important; height: 0 !important; max-height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; border: none !important; } .tome-expand-btn, .tome-expand-backdrop { display: none !important; visibility: hidden !important; pointer-events: none !important; } /* Printed ink — content sits on paper, not in UI cards */ .tome-printed-page .current-event, .tome-printed-page .activity-feed, .tome-printed-page .location-panel, .tome-printed-page .book-container, .tome-printed-page .book-entries { background: transparent !important; box-shadow: none !important; border: none !important; border-radius: 0 !important; } .tome-printed-page .current-event { padding: 0 0 0.65rem !important; margin: 0 0 0.5rem !important; border-bottom: 1px solid rgba(98, 62, 28, 0.22) !important; } .tome-printed-page .event-label, .tome-printed-page .event-title, .tome-printed-page .event-text, .tome-printed-page .event-locations { color: #3d2a16 !important; text-shadow: 0 1px 0 rgba(255, 236, 196, 0.2); } .tome-printed-page .event-label { color: #7a5a28 !important; font-family: 'IM Fell English', serif !important; } .tome-printed-page .activity-feed { padding: 0 !important; margin: 0 !important; overflow-x: hidden !important; overflow-y: auto !important; } .tome-printed-page .feed-item { padding: 0.4rem 0 !important; border-bottom: 1px solid rgba(98, 62, 28, 0.16) !important; background: transparent !important; } .tome-printed-page .feed-content { color: #3d2a16 !important; font-family: 'IM Fell English', serif !important; font-size: 0.88rem !important; line-height: 1.45 !important; display: block !important; overflow: visible !important; -webkit-line-clamp: unset !important; } .tome-printed-page .feed-day { color: #8a6424 !important; font-family: 'Cinzel', serif !important; } .tome-page-left.tome-printed-page #world-map, .tome-page-left.tome-printed-page .realm-map { flex: 1 1 auto !important; min-height: 280px !important; max-height: none !important; width: 100% !important; border: 1px solid rgba(98, 62, 28, 0.28) !important; border-radius: 2px !important; box-shadow: inset 0 0 18px rgba(58, 36, 14, 0.12) !important; background: rgba(12, 18, 14, 0.92) !important; } .tome-printed-page .location-panel { padding: 0.45rem 0 0 !important; margin: 0 !important; font-family: 'IM Fell English', serif !important; font-style: italic; font-size: 0.82rem !important; color: #5c4228 !important; } .tome-printed-page .location-panel * { color: #5c4228 !important; } .tome-book-index .tome-printed-heading { margin-bottom: 0.75rem; padding-bottom: 0.65rem; border-bottom: 1px solid rgba(98, 62, 28, 0.22); } .tome-book-index .book-title { margin: 0 0 0.35rem; font-size: 1.35rem !important; color: #7a5a28 !important; } .tome-book-index .book-subtitle { margin: 0; font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.88rem; color: #5c4228; } .tome-printed-page .book-entries { column-count: 1 !important; column-gap: 0 !important; overflow: hidden !important; max-height: 100%; } .tome-printed-page .book-entry { break-inside: avoid; margin-bottom: 0.55rem !important; padding-bottom: 0.45rem !important; border-bottom: 1px solid rgba(98, 62, 28, 0.14) !important; background: transparent !important; } .tome-printed-page .entry-content { font-family: 'IM Fell English', serif !important; font-size: 0.86rem !important; line-height: 1.45 !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .tome-printed-page .book-day-header { font-family: 'Cinzel', serif !important; color: #8a6424 !important; margin: 0.35rem 0 !important; } /* Aged spread binding — worn parchment across both pages */ .realm-tabs [role="tabpanel"] { background: radial-gradient(ellipse 130px 100px at 3% 92%, rgba(72, 44, 18, 0.1) 0%, transparent 62%), radial-gradient(ellipse 120px 95px at 97% 8%, rgba(58, 34, 14, 0.09) 0%, transparent 60%), linear-gradient(90deg, #e8d8b4 0%, #e2d0a6 44.5%, #c9a87a 48.8%, #8e6840 49.8%, #6b4a2c 50%, #8e6840 50.2%, #c9a87a 51.2%, #e2d0a6 55.5%, #ebe2c6 100%) !important; } .realm-tabs [role="tabpanel"]::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; } .tome-muted { font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.82rem; color: #5c4228; } /* Spread helpers — left/right page content */ .tome-printed-kicker { margin: 0 0 0.2rem; font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: #8a6424; } .tome-printed-hint, .explore-controls-hint, .realm-summon-hint { margin: 0 0 0.55rem; font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.82rem; color: #5c4228; } .realm-stats-strip { display: flex; flex-wrap: wrap; gap: 0.65rem 1rem; margin-bottom: 0.55rem; padding: 0.45rem 0.65rem; border-radius: 8px; background: rgba(255, 249, 232, 0.55); font-family: 'IM Fell English', serif; font-size: 0.82rem; color: #4a3420; } .realm-summon-block { margin-top: 0.35rem; } .realm-summon-input textarea { min-height: 4.2rem !important; } /* Place ribbon — Explore left page */ .place-ribbon { display: flex; flex-direction: column; gap: 0.45rem; min-height: 0; flex: 1 1 auto; overflow: hidden; } .place-ribbon-kicker, .day-tabs-title { margin: 0; font-family: 'Cinzel Decorative', 'Cinzel', serif; font-size: 1rem; color: var(--tome-ink); text-align: center; } .place-ribbon-hint, .day-tabs-sub { margin: 0 0 0.35rem; font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.8rem; color: #5c4228; text-align: center; } .place-ribbon-list { display: flex; flex-direction: column; gap: 0.35rem; overflow-y: auto; min-height: 0; flex: 1 1 auto; padding-right: 0.15rem; } .place-ribbon-item { display: grid; grid-template-columns: 42px 1fr auto; gap: 0.45rem; align-items: center; padding: 0.35rem 0.45rem; border: 1px solid rgba(138, 106, 58, 0.28); border-radius: 8px; background: rgba(255, 249, 232, 0.72); cursor: pointer; text-align: left; color: var(--tome-ink); font-family: 'IM Fell English', serif; transition: transform 0.15s ease, box-shadow 0.15s ease; } .place-ribbon-item:hover, .place-ribbon-item.is-selected { transform: translateX(2px); box-shadow: 0 4px 12px rgba(76, 50, 22, 0.14); border-color: rgba(138, 106, 58, 0.5); } .ribbon-thumb { width: 42px; height: 42px; border-radius: 6px; background-size: cover; background-position: center; border: 1px solid rgba(138, 106, 58, 0.35); } .ribbon-thumb-empty { background: linear-gradient(135deg, #d8c49a, #b89562); } .ribbon-label { font-family: 'Cinzel', serif; font-size: 0.78rem; line-height: 1.2; } .ribbon-count { font-size: 0.68rem; color: #6b4f30; white-space: nowrap; } /* Day tabs — Book left page */ .day-tabs-wrap { display: flex; flex-direction: column; gap: 0.35rem; min-height: 0; } .day-tabs { display: flex; flex-direction: column; gap: 0.3rem; overflow-y: auto; max-height: 220px; } .day-tab { padding: 0.4rem 0.55rem; border: 1px solid rgba(138, 106, 58, 0.28); border-radius: 8px; background: rgba(255, 249, 232, 0.72); font-family: 'Cinzel', serif; font-size: 0.82rem; color: var(--tome-ink); cursor: pointer; text-align: left; } .day-tab.is-active, .day-tab:hover { background: rgba(255, 244, 214, 0.95); border-color: rgba(138, 106, 58, 0.55); } .book-day-view .book-entries { column-count: 1 !important; padding: 0; } .book-day-banner { font-family: 'Cinzel Decorative', 'Cinzel', serif; font-size: 1.1rem; margin: 0 0 0.65rem; color: #6b4a2c; } /* Bonds sidebar */ .bonds-sidebar { display: flex; flex-direction: column; gap: 0.45rem; min-height: 0; overflow: hidden auto; } .bonds-sidebar-desc, .bonds-sidebar-empty { font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.84rem; color: #5c4228; margin: 0; } .bonds-sidebar .rel-legend { display: flex; flex-wrap: wrap; gap: 0.35rem 0.55rem; } .bonds-sidebar .rel-list { margin: 0; padding-left: 1rem; font-family: 'IM Fell English', serif; font-size: 0.78rem; line-height: 1.35; color: var(--tome-ink); } .tome-explore-stage .diorama-wrap, .tome-explore-stage .rel-graph-stage { flex: 1 1 auto; min-height: 280px; } .tome-souls-index .entity-grid { display: flex; flex-direction: column; gap: 0.45rem; max-height: 340px; overflow-y: auto; } .tome-souls-index .entity-grid-card { display: grid; grid-template-columns: 56px 1fr; min-height: 72px; } .souls-filter-row, .souls-search-row { display: flex !important; flex-wrap: wrap !important; gap: 0.45rem !important; margin-bottom: 0.35rem !important; align-items: flex-end !important; position: static !important; z-index: auto !important; flex: 0 0 auto !important; } .tome-souls-index .souls-filter-row > .block, .tome-souls-index .souls-filter-row > .form { flex: 1 1 calc(50% - 0.35rem) !important; min-width: 0 !important; max-width: 100% !important; margin: 0 !important; } .tome-souls-index .souls-search-row { margin-bottom: 0.55rem !important; padding-bottom: 0.55rem !important; border-bottom: 1px solid rgba(138, 106, 58, 0.22); } .tome-souls-index .souls-search-row > .block, .tome-souls-index .souls-search-row > .form { flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; margin: 0 !important; } .tome-souls-index .souls-filter-row input, .tome-souls-index .souls-filter-row textarea, .tome-souls-index .souls-search-row input, .tome-souls-index .souls-search-row textarea { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; } .tome-souls-index > .block:has(.entity-grid), .tome-souls-index > .block:has(.html-container) { flex: 1 1 auto !important; min-height: 0 !important; overflow: hidden !important; margin-top: 0.2rem !important; position: relative !important; z-index: 1 !important; } /* Entity hologram — Souls right page */ .entity-hologram { position: relative; perspective: 900px; min-height: 320px; flex: 1 1 auto; } .entity-hologram-empty .hologram-stage { display: grid; place-items: center; min-height: 280px; border: 1px dashed rgba(138, 106, 58, 0.35); border-radius: 12px; background: rgba(255, 249, 232, 0.45); } .hologram-hint { font-family: 'IM Fell English', serif; font-style: italic; color: #5c4228; text-align: center; padding: 1rem; } .hologram-beam { position: absolute; left: 50%; bottom: 8%; width: 62%; height: 42%; transform: translateX(-50%); background: radial-gradient(ellipse at center, rgba(201, 161, 59, 0.22), transparent 68%); pointer-events: none; filter: blur(8px); animation: hologramPulse 3.2s ease-in-out infinite; } @keyframes hologramPulse { 0%, 100% { opacity: 0.45; transform: translateX(-50%) scale(0.96); } 50% { opacity: 0.85; transform: translateX(-50%) scale(1.04); } } .hologram-stage { position: relative; transform: rotateX(8deg) translateZ(12px); transform-style: preserve-3d; border: 1px solid rgba(201, 161, 59, 0.35); border-radius: 14px; background: linear-gradient(180deg, rgba(12, 10, 8, 0.92), rgba(24, 18, 12, 0.88)); box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35), 0 0 28px rgba(201, 161, 59, 0.12); overflow: hidden; color: #f4e8c8; } .hologram-banner { height: 88px; background-size: cover; background-position: center; position: relative; } .hologram-banner-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, transparent, rgba(10, 8, 6, 0.85)); } .hologram-head { position: relative; } .hologram-portrait-wrap { position: absolute; top: 52px; left: 1rem; z-index: 2; filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.45)); } .hologram-body { padding: 3.2rem 1rem 1rem; font-family: 'IM Fell English', serif; } .hologram-meta { margin: 0 0 0.25rem; font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase; color: #c9a13b; } .hologram-name { margin: 0 0 0.45rem; font-family: 'Cinzel Decorative', 'Cinzel', serif; font-size: 1.25rem; color: #f8e4a8; } .hologram-appearance, .hologram-memory { margin: 0 0 0.55rem; font-size: 0.88rem; line-height: 1.45; color: #e8dcc0; } .hologram-goals { font-size: 0.82rem; margin-bottom: 0.45rem; color: #d8c8a4; } .hologram-greeting { margin: 0.35rem 0 0.55rem; padding-left: 0.75rem; border-left: 2px solid rgba(201, 161, 59, 0.45); font-style: italic; color: #f0e2b8; } /* Closed book overlay after last page */ .realm-opening.is-reclosed { opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; } .realm-opening.is-reclosed .realm-book-stage { display: flex !important; } .realm-opening.is-reclosed .realm-book-closed { opacity: 1 !important; pointer-events: auto !important; transform: none !important; } .realm-opening.is-reclosed .realm-prologue-card, .realm-opening.is-reclosed .realm-book-open { display: none !important; } .realm-cover-card { background: radial-gradient(circle at 22% 12%, rgba(255, 240, 198, 0.1), transparent 30%), radial-gradient(circle at 78% 88%, rgba(0, 0, 0, 0.22), transparent 42%), linear-gradient(155deg, #4a2e1a 0%, #2e1a10 38%, #1a0f08 100%) !important; border-color: rgba(120, 78, 42, 0.65) !important; } .tome-printed-page .current-event, .tome-printed-page .realm-pulse, .tome-printed-page .activity-feed, .tome-printed-page .book-container, .tome-printed-page .entity-hologram-empty .hologram-stage { background: rgba(255, 249, 232, 0.62) !important; box-shadow: none !important; border: 1px solid rgba(138, 106, 58, 0.22) !important; } /* ── Centered spread pages with ornaments ── */ .tome-page-centered { justify-content: flex-start !important; flex-wrap: nowrap !important; gap: 0.45rem !important; } .tome-ornament { text-align: center; font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.22em; color: rgba(122, 90, 40, 0.55); margin: 0.15rem 0; flex-shrink: 0; } .tome-ornament.top { margin-bottom: 0.35rem; } .tome-ornament.bottom { margin-top: auto; padding-top: 0.35rem; } /* ── Location popup modal ── */ .location-panel-host { position: relative; min-height: 0; } .location-panel-host .map-hint { text-align: center; font-family: 'IM Fell English', serif; font-style: italic; color: #5c4228; padding: 0.5rem; } .location-modal-overlay { display: none; position: fixed; inset: 0; z-index: 8800; background: rgba(12, 8, 5, 0.72); backdrop-filter: blur(4px); align-items: center; justify-content: center; padding: 1rem; } .location-modal-overlay.is-open { display: flex; animation: modalFadeIn 0.35s ease; } @keyframes modalFadeIn { from { opacity: 0; } to { opacity: 1; } } .location-modal-card { position: relative; width: min(420px, 92vw); max-height: min(78vh, 560px); overflow: auto; border-radius: 14px; transform: perspective(900px) rotateX(6deg) scale(0.98); animation: modalPop 0.42s cubic-bezier(0.34, 1.2, 0.64, 1); box-shadow: 0 28px 64px rgba(0, 0, 0, 0.55), 0 0 40px rgba(201, 161, 59, 0.15); } @keyframes modalPop { from { opacity: 0; transform: perspective(900px) rotateX(14deg) translateY(24px) scale(0.92); } to { opacity: 1; transform: perspective(900px) rotateX(6deg) scale(0.98); } } .location-modal-close { position: absolute; top: 0.55rem; right: 0.65rem; z-index: 3; width: 28px; height: 28px; border-radius: 50%; background: rgba(20, 12, 8, 0.65); color: #f4e8c8; display: grid; place-items: center; cursor: pointer; font-size: 0.9rem; border: 1px solid rgba(201, 161, 59, 0.35); } .location-modal-card .location-panel { margin: 0 !important; border: none !important; box-shadow: none !important; } /* Stacked modal — image on top, title + text below */ .location-panel-stacked { background: linear-gradient(180deg, #f8efd8, #ead9b3) !important; } .location-panel-stacked .location-panel-image-wrap { width: 100%; height: min(200px, 34vh); overflow: hidden; background: #1a120c; flex-shrink: 0; } .location-panel-stacked .location-panel-image { width: 100%; height: 100%; object-fit: cover; display: block; } .location-panel-stacked .location-panel-content { padding: 1rem 1.15rem 1.2rem !important; text-align: left; } .location-panel-stacked .location-panel-name { position: static !important; z-index: auto !important; color: #3d2a16 !important; font-family: 'Cinzel Decorative', 'Cinzel', serif !important; font-size: 1.05rem !important; letter-spacing: 0.06em; margin: 0 0 0.55rem !important; padding: 0 !important; text-shadow: none !important; line-height: 1.3; } .location-panel-stacked .location-panel-desc { color: #4a3420 !important; font-family: 'IM Fell English', serif !important; font-size: 0.92rem !important; line-height: 1.55 !important; margin: 0 0 0.65rem !important; } .location-panel-stacked .location-panel-special { color: #7a5528 !important; font-family: 'IM Fell English', serif !important; font-style: italic; font-size: 0.84rem !important; margin: 0 0 0.5rem !important; opacity: 1 !important; } .location-panel-stacked .location-soul-count { color: #6b4e2c !important; font-size: 0.78rem !important; margin: 0 !important; padding-top: 0.45rem; border-top: 1px solid rgba(138, 106, 58, 0.22); } .location-modal-card .location-panel-stacked { border-radius: 12px; overflow: hidden; } #aether-location-modal .location-modal-close { top: 0.45rem; right: 0.5rem; background: rgba(12, 8, 5, 0.72); } .location-soul-count { color: #5c4228; font-size: 0.8rem; margin-bottom: 0.75rem; font-family: 'IM Fell English', serif; } /* ── Explore spread — force 3D diorama visible ── */ .tome-explore-index, .tome-explore-stage { display: flex !important; flex-direction: column !important; min-height: 0 !important; flex: 1 1 auto !important; } .tome-explore-index .place-ribbon { flex: 1 1 auto; min-height: 180px; } .tome-explore-index .place-ribbon-list { flex: 1 1 auto; min-height: 120px; max-height: 420px; scrollbar-width: none; } .tome-explore-index .place-ribbon-list::-webkit-scrollbar { display: none; width: 0; } .tome-explore-stage > .block, .tome-explore-stage > .form, .tome-explore-stage #explore-diorama-host, .tome-explore-stage #explore-diorama-host > div { flex: 1 1 auto !important; min-height: 260px !important; display: flex !important; flex-direction: column !important; } .tome-explore-stage .diorama-wrap { flex: 1 1 auto !important; min-height: 260px !important; max-height: 100% !important; margin: 0 !important; display: flex !important; flex-direction: column !important; } .tome-explore-stage .diorama-header { display: none !important; } .tome-explore-stage .diorama-stage { flex: 1 1 auto !important; min-height: 240px !important; } .tome-explore-stage .diorama-frame { min-height: 240px !important; height: 100% !important; max-height: 400px !important; } .tome-explore-stage .diorama-empty { flex: 1 1 auto; min-height: 240px; display: grid; place-items: center; padding: 1rem; text-align: center; border: 1px dashed rgba(138, 106, 58, 0.35); border-radius: 12px; font-family: 'IM Fell English', serif; } /* ── Souls spread fix ── */ .tome-souls-index, .tome-souls-stage { display: flex !important; flex-direction: column !important; min-height: 0 !important; } .tome-souls-index .entity-grid { flex: 1 1 auto; max-height: none; min-height: 200px; } .tome-souls-stage .entity-hologram { flex: 1 1 auto; min-height: 280px; } #tome-spreads [role="tabpanel"]:has(#entities) .featured-section { display: none !important; } /* ── Book 3D cover flip ── */ .realm-book-3d { position: relative; width: min(760px, 94vw); margin: 0 auto; box-sizing: border-box; transform-style: preserve-3d; transition: transform 1.15s cubic-bezier(0.45, 0, 0.2, 1); } .realm-book-3d.show-back { transform: rotateY(180deg); } .realm-book-3d.is-opening { opacity: 0; pointer-events: none; transition: opacity 0.85s ease; } .realm-book-face { backface-visibility: hidden; -webkit-backface-visibility: hidden; } .realm-book-closed, .realm-book-front { position: relative; width: 100%; transform-style: preserve-3d; } .realm-book-back { position: absolute; inset: 0; transform: rotateY(180deg); } .realm-book-closed .realm-book-spine { left: 0 !important; top: 10px !important; bottom: 10px !important; width: 16px !important; height: auto !important; transform: translateX(-100%) !important; border-radius: 8px 0 0 8px !important; z-index: 1; } .realm-cover-back { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: min(380px, 58vh); background: radial-gradient(circle at 30% 20%, rgba(255, 240, 198, 0.08), transparent 32%), radial-gradient(circle at 70% 80%, rgba(0, 0, 0, 0.28), transparent 40%), linear-gradient(155deg, #3d2616 0%, #24150c 42%, #120a06 100%) !important; } .realm-back-ornament { font-size: 2.4rem; color: rgba(201, 161, 59, 0.45); margin-bottom: 0.75rem; } .realm-back-text { font-family: 'IM Fell English', serif; font-style: italic; color: #d8c49a; line-height: 1.55; margin: 0 0 1.25rem; max-width: 22rem; } .realm-opening.is-reclosed .realm-book-stage { display: flex !important; align-items: center; justify-content: center; } .realm-opening.is-reclosed .realm-book-3d { opacity: 1 !important; pointer-events: auto !important; } .realm-opening.is-closing .realm-book-stage { perspective: 1400px; } .realm-opening.is-back-visible .realm-book-open, .realm-opening.is-back-visible .realm-prologue-card { display: none !important; } /* ═══════════════════════════════════════════════════════════════════════════ FIX PACK — centering, book edges, interactions, readability ═══════════════════════════════════════════════════════════════════════════ */ #realm-opening-host, #realm-opening-host > .block, #realm-opening-host .html-container { position: fixed !important; inset: 0 !important; width: 100vw !important; height: 100vh !important; max-width: none !important; margin: 0 !important; padding: 0 !important; left: 0 !important; right: 0 !important; transform: none !important; z-index: 99999 !important; pointer-events: none !important; } /* After hoist, empty host must not blanket the realm */ #realm-opening-host:not(:has(#realm-opening)), #realm-opening-host:empty, body.aether-realm-entered #realm-opening-host { display: none !important; visibility: hidden !important; pointer-events: none !important; width: 0 !important; height: 0 !important; overflow: hidden !important; z-index: -1 !important; } #realm-opening.realm-opening-hoisted.is-closed { display: none !important; pointer-events: none !important; } #realm-opening-host .realm-opening, #realm-opening.realm-opening-hoisted { position: fixed !important; inset: 0 !important; width: 100vw !important; height: 100vh !important; max-width: none !important; margin: 0 !important; padding: 0 !important; left: 0 !important; right: 0 !important; transform: none !important; display: flex !important; align-items: center !important; justify-content: center !important; z-index: 99999 !important; pointer-events: auto !important; overflow-x: clip !important; overflow-y: auto !important; } .realm-opening.is-closed { pointer-events: none !important; } .realm-opening-inner { position: relative !important; width: min(820px, 92vw) !important; min-height: min(480px, 72vh) !important; display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 auto !important; flex-shrink: 0 !important; } .realm-opening.is-unfolding .realm-opening-inner, .realm-opening.is-prologue .realm-opening-inner { min-height: min(480px, 72vh) !important; } .realm-book-stage { width: 100% !important; display: flex !important; align-items: center !important; justify-content: center !important; margin: 0 auto !important; } .realm-book-3d { width: min(760px, 94vw) !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box !important; } .realm-book-3d .realm-cover-card { width: 100% !important; max-width: 100% !important; min-height: min(380px, 58vh) !important; margin: 0 auto !important; flex-shrink: 0 !important; } .realm-cover-front, .realm-cover-back { border: 3px solid rgba(92, 58, 28, 0.75) !important; outline: 1px solid rgba(201, 161, 59, 0.35) !important; outline-offset: 3px; box-shadow: inset 0 2px 0 rgba(255, 240, 198, 0.12), inset 0 -3px 8px rgba(0, 0, 0, 0.35), 0 22px 60px rgba(0, 0, 0, 0.55) !important; } /* Book spread — leather edge frame (top + sides) */ .realm-tabs [role="tabpanel"] { box-shadow: inset 0 14px 20px -6px rgba(48, 28, 14, 0.18), inset 14px 0 18px -8px rgba(72, 44, 18, 0.12), inset -14px 0 18px -8px rgba(72, 44, 18, 0.12), inset 0 -8px 16px rgba(168, 134, 83, 0.1), 0 18px 38px rgba(76, 50, 22, 0.26) !important; } /* Page I — content prints directly on parchment, no nested cards */ .tome-page-left.tome-page-centered { display: flex !important; flex-direction: column !important; justify-content: flex-start !important; gap: 0 !important; min-height: 0 !important; background: transparent !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; } .tome-page-left .tome-ornament.top { margin-bottom: 0.15rem !important; } .tome-page-left .tome-printed-kicker { margin: 0 0 0.08rem !important; font-size: 0.92rem !important; text-align: center; } .tome-page-left .tome-printed-hint { margin: 0 0 0.3rem !important; font-size: 0.8rem !important; line-height: 1.35 !important; text-align: center; } .tome-page-right.tome-page-centered { display: flex !important; flex-direction: column !important; justify-content: flex-start !important; gap: 0.3rem !important; min-height: 0 !important; position: relative !important; background: transparent !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; overflow: hidden !important; } .tome-page-right.tome-page-centered::after { content: "❧"; position: absolute; right: 0.55rem; bottom: 0.45rem; font-size: 1.15rem; color: rgba(138, 106, 58, 0.22); pointer-events: none; z-index: 0; } .tome-page-right .tome-printed-kicker { margin: 0 0 0.08rem !important; font-size: 0.92rem !important; text-align: center; } .tome-page-right .tome-printed-hint { margin: 0 0 0.35rem !important; font-size: 0.8rem !important; text-align: center; line-height: 1.35 !important; } .tome-page-left > .block, .tome-page-left > .form, .tome-page-right > .block, .tome-page-right > .form, .tome-page-left .html-container, .tome-page-right .html-container { width: 100% !important; max-width: 100% !important; } .tome-page-right .realm-stats-strip { width: 100% !important; max-width: 100% !important; margin-left: auto !important; margin-right: auto !important; justify-content: space-around !important; text-align: center; margin-bottom: 0.3rem !important; border: 1px solid rgba(138, 106, 58, 0.2); background: rgba(255, 249, 232, 0.62) !important; } .tome-realm-vignette, .tome-realm-vignette .world-vignette { width: 100% !important; margin: 0 0 0.3rem !important; } .tome-page-right .world-vignette { padding: 0.55rem 0.7rem !important; border: 1px solid rgba(138, 106, 58, 0.22) !important; border-radius: 4px !important; background: linear-gradient(135deg, rgba(255, 249, 232, 0.72), rgba(244, 228, 194, 0.45)) !important; box-shadow: inset 0 0 18px rgba(58, 36, 14, 0.06) !important; } .tome-page-right .vignette-label { font-family: 'Cinzel', serif !important; font-size: 0.62rem !important; letter-spacing: 0.18em !important; text-transform: uppercase !important; color: #8a6424 !important; margin: 0 0 0.25rem !important; } .tome-page-right .vignette-title { font-family: 'Cinzel Decorative', 'Cinzel', serif !important; font-size: 0.95rem !important; color: #4a3420 !important; margin: 0 0 0.35rem !important; } .tome-page-right .vignette-text { font-family: 'IM Fell English', serif !important; font-style: italic; font-size: 0.84rem !important; line-height: 1.5 !important; color: #5c4228 !important; margin: 0 !important; } .tome-page-right .current-event { width: 100% !important; padding: 0.65rem 0.75rem !important; margin: 0 0 0.3rem !important; border: 1px solid rgba(138, 106, 58, 0.24) !important; border-radius: 4px !important; background: rgba(255, 249, 232, 0.5) !important; } .tome-page-right.tome-page-centered .realm-pulse { display: none !important; } .tome-page-right .pulse-header { margin-bottom: 0.45rem !important; } .tome-page-right .pulse-track { flex-direction: column !important; overflow: hidden !important; gap: 0.45rem !important; max-width: 100% !important; padding-bottom: 0 !important; scrollbar-width: none !important; } .tome-page-right .pulse-track::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; } .tome-page-right .pulse-track .pulse-card { flex: 0 0 auto !important; width: 100% !important; max-width: 100% !important; min-width: 0 !important; box-sizing: border-box !important; overflow: hidden !important; word-break: break-word !important; background: rgba(255, 252, 240, 0.65) !important; border: 1px solid rgba(138, 106, 58, 0.18) !important; } .tome-page-right .pulse-card:nth-child(n+3) { display: none !important; } .tome-page-right .pulse-title, .tome-page-right .pulse-headline { color: #4a3420 !important; } .tome-page-right .pulse-detail { color: #5c4228 !important; } .tome-page-right .activity-feed { width: 100% !important; padding: 0.5rem 0.65rem !important; margin: 0 0 0.3rem !important; border: 1px solid rgba(138, 106, 58, 0.2) !important; border-radius: 4px !important; background: rgba(255, 249, 232, 0.4) !important; max-height: 11.5rem !important; overflow-y: auto !important; overflow-x: hidden !important; -webkit-overflow-scrolling: touch; scrollbar-width: thin; } .tome-page-right .activity-feed::-webkit-scrollbar { width: 5px; } .tome-page-right .activity-feed::-webkit-scrollbar-thumb { background: rgba(138, 106, 58, 0.45); border-radius: 4px; } .tome-page-right .activity-feed::before { content: "Recent Pages"; display: block; font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: #8a6424; margin-bottom: 0.35rem; } .tome-page-right .realm-summon-block { width: 100% !important; margin-top: 0.25rem !important; padding: 0.5rem 0.6rem 0.35rem !important; border: 1px solid rgba(138, 106, 58, 0.22) !important; border-radius: 4px !important; background: rgba(255, 249, 232, 0.55) !important; text-align: center; } .tome-page-right .tome-ornament.bottom { margin-top: auto !important; padding-top: 0.2rem !important; } .tome-page-left .tome-ornament.bottom { margin-top: auto !important; padding-top: 0.2rem !important; } .tome-map-chrome { display: flex; align-items: center; justify-content: center; gap: 0.45rem; margin: 0.1rem 0 0.15rem; flex-shrink: 0; } .tome-map-chrome-line { flex: 1; max-width: 72px; height: 1px; background: linear-gradient(90deg, transparent, rgba(138, 106, 58, 0.35), transparent); } .tome-map-chrome-label { font-family: 'Cinzel', serif; font-size: 0.58rem; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(122, 90, 40, 0.55); white-space: nowrap; } .tome-map-chrome-glyph { color: rgba(138, 106, 58, 0.45); font-size: 0.7rem; } .tome-map-divider { display: flex; align-items: center; justify-content: center; gap: 0.5rem; margin: 0.12rem 0 0.08rem; flex-shrink: 0; } .tome-map-divider-text { font-family: 'Cinzel', serif; font-size: 0.58rem; letter-spacing: 0.16em; color: rgba(122, 90, 40, 0.5); white-space: nowrap; } .tome-map-vine { flex: 1; height: 10px; max-width: 88px; background-repeat: no-repeat; background-size: contain; opacity: 0.55; } .tome-map-vine.left { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 10'%3E%3Cpath d='M0 5 Q20 0 40 5 T80 5' fill='none' stroke='%238a6a3a' stroke-width='0.8'/%3E%3Ccircle cx='40' cy='5' r='1.2' fill='%23c9a13b'/%3E%3C/svg%3E"); background-position: right center; } .tome-map-vine.right { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 10'%3E%3Cpath d='M0 5 Q20 10 40 5 T80 5' fill='none' stroke='%238a6a3a' stroke-width='0.8'/%3E%3Ccircle cx='40' cy='5' r='1.2' fill='%23c9a13b'/%3E%3C/svg%3E"); background-position: left center; } .tome-page-centered .realm-stats-strip, .tome-page-centered .current-event, .tome-page-centered .realm-pulse, .tome-page-centered .activity-feed { flex-shrink: 0; margin-bottom: 0.35rem !important; } .tome-page-centered .realm-summon-block, .tome-page-centered .realm-summon-input, .tome-page-centered .seal-summon-btn { flex-shrink: 0; } .tome-page-left .realm-map, .tome-page-left #world-map { flex: 1 1 auto !important; width: 100% !important; max-width: 100% !important; min-height: 280px !important; max-height: none !important; margin: 0.3rem auto 0 !important; border: 1px solid rgba(98, 62, 28, 0.3) !important; border-radius: 3px !important; padding: 0.28rem !important; background: rgba(10, 14, 12, 0.06) !important; box-shadow: inset 0 0 22px rgba(58, 36, 14, 0.1) !important; } .tome-page-left #world-map .html-container, .tome-page-left #world-map .prose { min-height: 0 !important; } .tome-page-left .location-panel-host, .tome-page-left #location-panel-host-wrap { flex-shrink: 0 !important; margin: 0.3rem 0 0 !important; width: 100% !important; } .tome-page-left .location-panel-host .map-hint { padding: 0.4rem 0.5rem 0.35rem !important; margin: 0 !important; font-size: 0.76rem !important; line-height: 1.4 !important; border-top: 1px solid rgba(138, 106, 58, 0.22); text-align: center; } .tome-page-left .map-hint-selected { text-align: left; background: rgba(255, 249, 232, 0.55); border: 1px solid rgba(138, 106, 58, 0.2); border-radius: 3px; padding: 0.45rem 0.55rem !important; } .tome-page-left .map-hint-selected strong { font-family: 'Cinzel', serif; color: #5c3e1e; font-weight: 600; } .tome-page-left .map-hint-sub { color: #6b4e2c; font-style: italic; } .tome-page-left .map-hint-glyph { color: #a8843a; } #aether-location-modal { z-index: 90000 !important; } /* Explore spread — centered headers, balanced gutters */ .tome-explore-index { padding: 0.65rem 1.2rem 0.75rem 1.2rem !important; gap: 0.5rem !important; text-align: center; align-items: center !important; } .tome-explore-stage-header { text-align: center; width: 100%; margin: 0 0 0.2rem; flex-shrink: 0; } .tome-explore-stage-header .tome-ornament.top { margin-bottom: 0.1rem !important; font-size: 0.62rem !important; } .tome-explore-stage-header .tome-printed-kicker, .tome-explore-stage-header .explore-controls-hint { text-align: center; margin-left: auto; margin-right: auto; max-width: 100%; } .tome-explore-stage-header .tome-printed-kicker { font-size: 0.68rem !important; margin-bottom: 0.05rem !important; } .tome-explore-stage-header .explore-controls-hint { font-size: 0.72rem !important; margin-bottom: 0.2rem !important; line-height: 1.3 !important; } .tome-explore-index .place-ribbon-item { padding: 0.5rem 0.55rem !important; margin-bottom: 0.15rem; } .tome-explore-index .wander-btn, .tome-explore-index button { margin-top: 0.35rem !important; } .tome-explore-stage { padding: 0.5rem 1.2rem 0.55rem 1.2rem !important; text-align: center; align-items: center !important; min-height: 0 !important; } .tome-explore-stage > .block:has(#explore-diorama-host) { flex: 1 1 auto !important; min-height: 420px !important; max-height: 100% !important; width: 100% !important; display: flex !important; flex-direction: column !important; overflow: hidden !important; order: 1; margin: 0 !important; } .tome-explore-stage > .block:has(.tome-explore-stage-header) { flex: 0 0 auto !important; width: 100% !important; min-height: auto !important; order: 2; margin-top: 0.25rem !important; } .tome-explore-stage .diorama-header { display: none !important; } .tome-explore-stage .diorama-wrap { flex: 1 1 auto !important; min-height: 400px !important; margin: 0 !important; width: 100% !important; border-radius: 8px !important; } .tome-explore-stage .diorama-stage { flex: 1 1 auto !important; min-height: 400px !important; } .tome-explore-stage .diorama-frame { min-height: 400px !important; height: 100% !important; max-height: none !important; background: #0c1410 !important; } /* Stacked page fore-edges — cinematic book, not flat panels */ .tome-spread-row > .column.tome-page-left, .tome-spread-row > .column.tome-page-right { position: relative !important; } .tome-spread-row > .column.tome-page-left::after { content: ""; position: absolute; top: 3%; bottom: 3%; right: 0.15rem; width: 6px; pointer-events: none; z-index: 4; border-radius: 0 2px 2px 0; background: repeating-linear-gradient( 180deg, rgba(88, 56, 24, 0.22) 0 1px, rgba(255, 249, 232, 0.55) 1px 2.5px, rgba(72, 44, 18, 0.14) 2.5px 3.5px ); box-shadow: 2px 0 5px rgba(48, 28, 14, 0.1); } .tome-spread-row > .column.tome-page-right::before { content: ""; position: absolute; top: 3%; bottom: 3%; left: 0.15rem; width: 6px; pointer-events: none; z-index: 4; border-radius: 2px 0 0 2px; background: repeating-linear-gradient( 180deg, rgba(88, 56, 24, 0.22) 0 1px, rgba(255, 249, 232, 0.55) 1px 2.5px, rgba(72, 44, 18, 0.14) 2.5px 3.5px ); box-shadow: -2px 0 5px rgba(48, 28, 14, 0.1); } .realm-tabs [role="tabpanel"]::before { background: linear-gradient(90deg, transparent 0 46.5%, rgba(255,255,255,0.14) 47.8%, transparent 49%), linear-gradient(90deg, transparent 51%, rgba(255,255,255,0.14) 52.2%, transparent 53.5%), radial-gradient(circle at 12% 18%, rgba(113, 82, 42, 0.06) 0 2px, transparent 2px), radial-gradient(circle at 70% 74%, rgba(113, 82, 42, 0.05) 0 1.5px, transparent 1.5px) !important; opacity: 0.42 !important; } /* ── Spread pages: balanced gutters + centered content ── */ .tome-spread-row > .column.tome-page-left.tome-printed-page, .tome-spread-row > .column.tome-page-right.tome-printed-page, .tome-spread-row > .column.tome-explore-index, .tome-spread-row > .column.tome-explore-stage { flex-wrap: nowrap !important; align-content: flex-start !important; align-items: stretch !important; overflow-x: hidden !important; overflow-y: hidden !important; box-sizing: border-box !important; } .tome-spread-row > .column.tome-page-left.tome-printed-page { padding: 0.7rem 2.25rem 0.55rem 1.15rem !important; border-right: none !important; } .tome-spread-row > .column.tome-page-right.tome-printed-page { padding: 0.7rem 1.15rem 0.55rem 2.25rem !important; } .tome-spread-row > .column.tome-printed-page > .block, .tome-spread-row > .column.tome-printed-page > .form { width: 100% !important; max-width: 100% !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box !important; overflow: hidden !important; min-width: 0 !important; } .tome-spread-row > .column.tome-printed-page .html-container, .tome-spread-row > .column.tome-printed-page .prose { max-width: 100% !important; overflow: hidden !important; } /* Page I right — hide pulse + collapsed Gradio blocks that bleed on outer edge */ .tome-page-right.tome-page-centered > .block:has(.realm-pulse), .tome-page-right.tome-page-centered > .block.hidden, .tome-page-right.tome-page-centered > .form.hidden, .tome-page-right.tome-page-centered > .block:has(.share-caption-box.hidden), .tome-page-right.tome-page-centered > .block:has(.soul-card-image.hidden) { display: none !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: hidden !important; border: none !important; box-shadow: none !important; } .tome-page-right.tome-page-centered .realm-summon-input, .tome-page-right.tome-page-centered .realm-summon-input textarea { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; resize: vertical !important; } .tome-explore-index .place-ribbon, .tome-explore-index .place-ribbon-list, .tome-explore-index .wander-btn { width: 100% !important; max-width: 100% !important; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box !important; } /* Souls — parchment hologram (readable) */ .tome-souls-stage .hologram-stage { background: linear-gradient(168deg, #faf3df 0%, #ebe0c4 55%, #dccca8 100%) !important; border: 1px solid rgba(138, 106, 58, 0.45) !important; box-shadow: inset 0 0 24px rgba(88, 56, 24, 0.08), 0 12px 28px rgba(76, 50, 22, 0.18) !important; transform: none !important; color: #3d2814 !important; } .tome-souls-stage .hologram-beam { display: none; } .tome-souls-stage .hologram-meta { color: #8a6424 !important; } .tome-souls-stage .hologram-name { color: #3d2814 !important; font-family: 'Cinzel Decorative', 'Cinzel', serif !important; } .tome-souls-stage .hologram-appearance, .tome-souls-stage .hologram-memory, .tome-souls-stage .hologram-goals { color: #4a3420 !important; font-family: 'IM Fell English', serif !important; line-height: 1.5 !important; } .tome-souls-stage .hologram-greeting { color: #5c4228 !important; border-left-color: rgba(138, 106, 58, 0.55) !important; } .tome-souls-stage .hologram-banner { height: 72px; } .tome-souls-index .entity-grid-card.is-selected { outline: 2px solid rgba(138, 106, 58, 0.75); outline-offset: 2px; box-shadow: 0 6px 16px rgba(76, 50, 22, 0.2) !important; } .tome-souls-index { padding: 0.55rem 1.2rem 0.65rem 1.2rem !important; align-items: stretch !important; display: flex !important; flex-direction: column !important; gap: 0.25rem !important; overflow: hidden !important; } .tome-souls-index .entity-grid { max-height: 100% !important; overflow-y: auto !important; overflow-x: hidden !important; flex: 1 1 auto !important; min-height: 0 !important; padding: 0.35rem 0.1rem 0.35rem 0 !important; margin-top: 0.15rem !important; } .tome-souls-index .entity-grid-card { display: grid !important; grid-template-columns: 52px minmax(0, 1fr) !important; gap: 0.6rem !important; align-items: start !important; min-height: auto !important; padding: 0.5rem 0.55rem !important; background: rgba(255, 249, 232, 0.78) !important; border: 1px solid rgba(138, 106, 58, 0.28) !important; border-radius: 8px !important; overflow: visible !important; box-shadow: none !important; } .tome-souls-index .grid-card-scrim { display: none !important; } .tome-souls-index .grid-card-portrait { width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; } .tome-souls-index .grid-card-portrait .entity-avatar { width: 48px !important; height: 48px !important; flex-shrink: 0; } .tome-souls-index .grid-card-body { min-width: 0; overflow: visible; } .tome-souls-index .grid-card-name { font-family: 'Cinzel', serif !important; font-size: 0.82rem !important; color: #3d2814 !important; margin: 0.1rem 0 !important; line-height: 1.25 !important; } .tome-souls-index .grid-card-type { font-family: 'Cinzel', serif !important; font-size: 0.58rem !important; letter-spacing: 0.14em !important; color: #8a6424 !important; } .tome-souls-index .grid-card-preview { font-family: 'IM Fell English', serif !important; font-size: 0.78rem !important; line-height: 1.4 !important; color: #5c4228 !important; margin: 0.15rem 0 0 !important; display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important; } .tome-souls-index .grid-card-location, .tome-souls-index .grid-card-meta { font-size: 0.68rem !important; color: #7a5a28 !important; } .tome-souls-stage { overflow: hidden !important; align-items: stretch !important; display: flex !important; flex-direction: column !important; min-height: 0 !important; } .tome-souls-stage > .block { flex: 1 1 auto !important; min-height: 0 !important; overflow: hidden !important; display: flex !important; flex-direction: column !important; } .tome-souls-stage .entity-hologram { flex: 1 1 auto !important; min-height: 0 !important; overflow: hidden !important; display: flex !important; flex-direction: column !important; } .tome-souls-stage .hologram-stage { flex: 1 1 auto !important; min-height: 0 !important; max-height: 100% !important; overflow: hidden !important; display: flex !important; flex-direction: column !important; } .tome-souls-stage .hologram-banner { flex: 0 0 auto !important; height: 4.5rem !important; min-height: 4.5rem !important; border-radius: 8px 8px 0 0; background-size: cover !important; background-position: center !important; } .tome-souls-stage .hologram-scroll { flex: 1 1 auto !important; min-height: 0 !important; max-height: min(420px, calc(100dvh - 14rem)) !important; overflow-y: auto !important; overflow-x: hidden !important; padding: 0.7rem 0.85rem 1rem !important; -webkit-overflow-scrolling: touch; scrollbar-width: thin; touch-action: pan-y; } .tome-souls-stage .hologram-scroll::-webkit-scrollbar { width: 5px; } .tome-souls-stage .hologram-scroll::-webkit-scrollbar-thumb { background: rgba(138, 106, 58, 0.45); border-radius: 4px; } .tome-souls-stage .hologram-identity-row { display: grid !important; grid-template-columns: 76px minmax(0, 1fr) !important; gap: 0.75rem !important; align-items: start !important; margin-bottom: 0.7rem !important; } .tome-souls-stage .hologram-portrait-wrap { position: static !important; top: auto !important; left: auto !important; transform: none !important; float: none !important; margin: 0 !important; width: 72px; height: 72px; } .tome-souls-stage .hologram-portrait-wrap .entity-avatar { width: 72px !important; height: 72px !important; } .tome-souls-stage .hologram-identity-text { min-width: 0; } .tome-souls-stage .hologram-meta, .tome-souls-stage .hologram-name, .tome-souls-stage .hologram-appearance, .tome-souls-stage .hologram-goals, .tome-souls-stage .hologram-goals p, .tome-souls-stage .hologram-greeting, .tome-souls-stage .hologram-memory { overflow: visible !important; text-overflow: unset !important; -webkit-line-clamp: unset !important; max-height: none !important; line-height: 1.65 !important; margin-bottom: 0.55rem !important; } .tome-souls-stage .hologram-name { margin-bottom: 0.35rem !important; line-height: 1.3 !important; } /* Bonds — compact cards */ .bond-cards { display: flex; flex-direction: column; gap: 0.4rem; overflow-y: auto; max-height: 380px; padding-right: 0.2rem; } .bond-card { padding: 0.45rem 0.55rem; border-radius: 8px; border-left: 3px solid var(--bond-color, #8a6a3a); background: rgba(255, 249, 232, 0.72); border: 1px solid rgba(138, 106, 58, 0.22); border-left-width: 3px; border-left-color: var(--bond-color, #8a6a3a); } .bond-card-type { font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--bond-color, #8a6a3a); } .bond-card-names { margin: 0.15rem 0; font-family: 'Cinzel', serif; font-size: 0.78rem; color: #3d2814; line-height: 1.25; } .bond-card-desc { margin: 0; font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.76rem; color: #5c4228; line-height: 1.35; } .bonds-legend-compact { margin-bottom: 0.35rem; } .bonds-legend-compact .rel-legend-item { font-size: 0.68rem; } .bonds-sidebar .rel-list { display: none; } /* Book day view — fill right page */ .tome-book-index + .column .book-day-view, .tome-page-right .book-day-view { min-height: 200px; } .tome-page-right .book-entries { overflow-y: auto !important; max-height: 420px !important; } .tome-book-index { padding: 0.55rem 0.75rem !important; gap: 0.45rem !important; } /* Location modal always on top */ .location-modal-overlay.is-open { z-index: 9900 !important; } /* Back cover — match front "Open The Tome" button */ #realm-reopen-enter { margin-top: 1rem; border: 1px solid rgba(227, 184, 93, 0.58); border-radius: 999px; padding: 0.6rem 1.2rem; font-family: 'Cinzel', serif; font-size: 0.76rem; letter-spacing: 0.12em; text-transform: uppercase; background: linear-gradient(180deg, rgba(227, 184, 93, 0.3), rgba(227, 184, 93, 0.14)); color: #fff4dd; cursor: pointer; } #realm-reopen-enter:hover { background: linear-gradient(180deg, rgba(227, 184, 93, 0.42), rgba(110, 201, 188, 0.2)); } /* Page VI — Summon spread */ .tome-summon-index, .tome-summon-stage { flex-wrap: nowrap !important; overflow-x: hidden !important; overflow-y: auto !important; justify-content: flex-start !important; gap: 0.75rem !important; } .tome-summon-index > .block, .tome-summon-index > .form, .tome-summon-index > button { flex-shrink: 0; margin-bottom: 0.2rem !important; } .tome-summon-index .tome-printed-kicker { margin: 0 0 0.45rem !important; line-height: 1.35 !important; } .tome-summon-index .summon-prompt-input { flex: 0 0 auto !important; width: 100% !important; max-width: 100% !important; min-height: 0 !important; display: block !important; } .tome-summon-index .summon-prompt-input textarea { flex: 0 0 auto !important; min-height: 6.5rem !important; max-height: 8.5rem !important; } .tome-summon-index .summon-leaf-hint { font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.82rem; color: #5c4228; text-align: center; margin: 0 0 0.85rem; line-height: 1.7; } .tome-summon-index .summon-prompt-input textarea { font-family: 'IM Fell English', serif !important; font-size: 0.92rem !important; line-height: 1.7 !important; padding: 0.7rem 0.8rem !important; } .tome-summon-index .summon-prompt-input { margin-bottom: 0.35rem !important; } .tome-summon-index .seal-summon-btn, .tome-summon-index button.seal-summon-btn, .tome-summon-index #summon-seal-btn { flex: 0 0 auto !important; display: block !important; visibility: visible !important; opacity: 1 !important; width: 100% !important; max-width: 100% !important; min-height: 3rem !important; margin: 0.25rem auto 0.85rem !important; padding: 0.72rem 1.35rem !important; font-size: 0.84rem !important; font-weight: 600 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important; color: #fff8e8 !important; background: linear-gradient(180deg, #d43845 0%, #8f1a28 55%, #6e1018 100%) !important; border: 2px solid #f2d8a0 !important; box-shadow: 0 0 0 3px rgba(201, 42, 56, 0.18), 0 8px 22px rgba(100, 18, 28, 0.38) !important; position: relative !important; z-index: 5 !important; cursor: pointer !important; pointer-events: auto !important; filter: none !important; transition: transform 0.15s ease, box-shadow 0.15s ease !important; } .tome-summon-index #summon-seal-btn:hover, .tome-summon-index button.seal-summon-btn:hover { transform: translateY(-1px) !important; box-shadow: 0 0 0 3px rgba(201, 42, 56, 0.28), 0 12px 26px rgba(100, 18, 28, 0.45) !important; } .tome-summon-index .summon-submit-hint { font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.12em; text-transform: uppercase; color: #8a6424; text-align: center; margin: 0.65rem 0 0.4rem; line-height: 1.55; } .tome-summon-stage { overflow-y: auto !important; align-items: stretch !important; } .tome-summon-stage > .block:has(.entity-result-slot), .tome-summon-stage .entity-result-slot { flex: 1 1 auto !important; min-height: 0 !important; overflow: visible !important; } .tome-summon-stage .entity-card .entity-card-top { margin-top: 0 !important; } .tome-summon-stage .entity-result-slot, .tome-summon-stage .entity-result-slot .block { width: 100% !important; max-width: 100% !important; overflow: visible !important; } .summon-reveal-empty { padding: 1.25rem 1rem; border: 1px dashed rgba(138, 106, 58, 0.38); border-radius: 10px; background: rgba(255, 249, 232, 0.55); text-align: center; margin: 0.25rem 0 0.5rem; } .summon-reveal-kicker { font-family: 'Cinzel Decorative', 'Cinzel', serif; font-size: 0.95rem; color: #4a3420; margin: 0 0 0.35rem; } .summon-reveal-hint { font-family: 'IM Fell English', serif; font-style: italic; font-size: 0.86rem; line-height: 1.5; color: #5c4228; margin: 0; } .tome-summon-stage .entity-card { background: rgba(255, 249, 232, 0.72) !important; border: 1px solid rgba(138, 106, 58, 0.32) !important; border-radius: 10px !important; padding: 0 !important; color: #3d2814 !important; box-shadow: inset 0 0 18px rgba(88, 56, 24, 0.06) !important; overflow: visible !important; max-height: none !important; } .tome-summon-stage .entity-card-banner { height: 9.5rem !important; min-height: 9.5rem !important; width: 100% !important; margin: 0 !important; border-radius: 10px 10px 0 0 !important; background-size: cover !important; background-position: center center !important; } .tome-summon-stage .entity-card-banner-scrim { display: block !important; background: linear-gradient(180deg, rgba(12, 10, 8, 0.05) 0%, rgba(255, 249, 232, 0.92) 100%) !important; } .tome-summon-stage .entity-card-top { display: grid !important; grid-template-columns: 72px minmax(0, 1fr) !important; gap: 0.65rem !important; align-items: start !important; margin: 0 !important; margin-top: 0 !important; padding: 0.75rem 0.9rem 0.5rem !important; } .tome-summon-stage .entity-appearance, .tome-summon-stage .entity-traits, .tome-summon-stage .entity-section, .tome-summon-stage .entity-greeting, .tome-summon-stage .entity-footer { padding-left: 0.9rem !important; padding-right: 0.9rem !important; } .tome-summon-stage .entity-footer { padding-bottom: 0.9rem !important; } .tome-summon-stage .entity-portrait { grid-row: 1 / span 2; } .tome-summon-stage .entity-portrait .entity-avatar { width: 68px !important; height: 68px !important; } .tome-summon-stage .entity-name, .tome-summon-stage .entity-type, .tome-summon-stage .entity-status { color: #3d2814 !important; } .tome-summon-stage .entity-appearance, .tome-summon-stage .entity-section p, .tome-summon-stage .memory-text, .tome-summon-stage .entity-greeting { color: #4a3420 !important; font-family: 'IM Fell English', serif !important; line-height: 1.7 !important; margin-bottom: 0.55rem !important; overflow: visible !important; } .tome-summon-stage .section-label { color: #8a6424 !important; font-family: 'Cinzel', serif !important; } .tome-summon-stage .oracle-summoning { margin: 0.25rem 0 0.5rem; border-radius: 10px; overflow: hidden; } /* -------------------------------------------------------------------------- */ /* Mobile & tablet — single-leaf spreads (one page at a time, full width) */ /* -------------------------------------------------------------------------- */ .tome-leaf-bar { display: none; } @media (max-width: 920px) { html, body { overflow: hidden; height: 100%; } /* Override desktop fixed viewport lock */ .gradio-container { height: 100dvh !important; max-height: 100dvh !important; min-height: 100dvh !important; max-width: 100vw !important; } .realm-tabs { height: auto !important; max-height: none !important; } .realm-tabs [role="tabpanel"] { height: auto !important; max-height: none !important; flex: 1 1 auto !important; } /* Single-leaf default: hide right page until Leaf › (works before JS) */ .tome-spread-row:not(.tome-leaf-right) > .tome-page-right, .tome-spread-row:not(.tome-leaf-right) > .gr-column.tome-page-right { display: none !important; flex: 0 0 0 !important; width: 0 !important; max-width: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; visibility: hidden !important; pointer-events: none !important; } .tome-spread-row.tome-leaf-right > .tome-page-left, .tome-spread-row.tome-leaf-right > .gr-column.tome-page-left { display: none !important; flex: 0 0 0 !important; width: 0 !important; max-width: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; visibility: hidden !important; pointer-events: none !important; } .tome-spread-row > .tome-page-left, .tome-spread-row > .tome-page-right, .tome-spread-row > .gr-column.tome-page-left, .tome-spread-row > .gr-column.tome-page-right { flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; } .tome-spread-row > .column.tome-page-left.tome-printed-page, .tome-spread-row > .column.tome-page-right.tome-printed-page, .tome-spread-row > .gr-column.tome-page-left.tome-printed-page, .tome-spread-row > .gr-column.tome-page-right.tome-printed-page, .tome-spread-row > .column.tome-explore-index, .tome-spread-row > .column.tome-explore-stage, .tome-spread-row > .gr-column.tome-explore-index, .tome-spread-row > .gr-column.tome-explore-stage { padding: 0.55rem 0.75rem 0.45rem !important; overflow-y: auto !important; overflow-x: hidden !important; } .place-ribbon-item { grid-template-columns: 46px minmax(0, 1fr) !important; grid-template-rows: auto auto; gap: 0.15rem 0.5rem !important; padding: 0.45rem 0.5rem !important; align-items: start !important; } .place-ribbon-item .ribbon-thumb { grid-row: 1 / span 2; width: 46px; height: 46px; } .place-ribbon-item .ribbon-label { grid-column: 2; font-size: 0.82rem !important; line-height: 1.25 !important; white-space: normal !important; word-break: break-word; } .place-ribbon-item .ribbon-count { grid-column: 2; white-space: normal !important; font-size: 0.68rem !important; } .gradio-container { height: 100dvh !important; max-height: 100dvh !important; min-height: 100dvh !important; max-width: 100vw !important; width: 100% !important; padding: 0.2rem 0.35rem 0.25rem !important; box-sizing: border-box !important; overflow: hidden !important; } #presence-bar { font-size: 0.68rem; padding: 0.25rem 0.5rem; margin-bottom: 0.2rem !important; } .realm-tabs { height: auto !important; max-height: none !important; flex: 1 1 auto !important; min-height: 0 !important; overflow: hidden !important; } .realm-tabs [role="tabpanel"] { padding: 0.35rem 0.45rem 0.25rem !important; overflow: hidden !important; clip-path: none !important; border-radius: 6px !important; } .realm-tabs [role="tabpanel"]::before, .realm-tabs [role="tabpanel"]::after { display: none !important; } .tome-spread-shell { height: 100%; min-height: 0; overflow: hidden; } .tome-spread-row { flex: 1 1 auto !important; min-height: 0 !important; max-height: 100% !important; align-items: stretch !important; overflow: hidden !important; } .tome-spread-row > .column, .tome-spread-row > .gr-column { min-height: 0 !important; max-height: 100% !important; } /* Hide inactive leaf — show one full-width page only */ .tome-spread-row.tome-leaf-left .tome-page-right, .tome-spread-row.tome-leaf-right .tome-page-left { display: none !important; flex: 0 0 0 !important; width: 0 !important; max-width: 0 !important; padding: 0 !important; margin: 0 !important; overflow: hidden !important; visibility: hidden !important; pointer-events: none !important; } .tome-spread-row.tome-leaf-left .tome-page-left, .tome-spread-row.tome-leaf-right .tome-page-right { flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; min-height: 0 !important; overflow-x: hidden !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch; padding: 0.55rem 0.75rem 0.45rem !important; } .tome-spread-row > .column.tome-page-left::after, .tome-spread-row > .column.tome-page-right::before, .tome-spread-row > .gr-column.tome-page-left::after, .tome-spread-row > .gr-column.tome-page-right::before { display: none !important; } .tome-spread-row > .column.tome-page-left.tome-printed-page, .tome-spread-row > .column.tome-page-right.tome-printed-page { padding: 0.55rem 0.75rem 0.45rem !important; } /* Leaf toggle bar */ .tome-leaf-bar { display: flex; align-items: center; justify-content: center; gap: 0.65rem; flex: 0 0 auto; padding: 0.3rem 0.5rem 0.15rem; border-top: 1px solid rgba(138, 106, 58, 0.2); margin-top: 0.15rem; } .tome-leaf-btn { border: 1px solid rgba(138, 106, 58, 0.45) !important; background: rgba(255, 249, 232, 0.85) !important; color: #5c3e1e !important; font-family: 'Cinzel', serif !important; font-size: 0.62rem !important; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.35rem 0.65rem !important; border-radius: 999px !important; min-height: 2rem; box-shadow: none !important; } .tome-leaf-btn.is-active { background: rgba(201, 161, 59, 0.28) !important; border-color: rgba(138, 106, 58, 0.65) !important; } .tome-leaf-dots { display: flex; gap: 0.35rem; align-items: center; } .tome-leaf-dots i { display: block; width: 6px; height: 6px; border-radius: 50%; background: rgba(138, 106, 58, 0.28); transition: background 0.2s ease, transform 0.2s ease; } .tome-leaf-dots i.active { background: #8a6a3a; transform: scale(1.15); } /* Restore content hidden on desktop two-page layout */ .tome-page-right.tome-page-centered > .block:has(.realm-pulse), .tome-page-right.tome-page-centered > .block:has(.activity-feed) { display: block !important; height: auto !important; min-height: 0 !important; max-height: none !important; margin: 0 0 0.35rem !important; padding: 0 !important; overflow: visible !important; } .tome-page-right .pulse-card:nth-child(n+3) { display: flex !important; } /* Map & diorama — use available height on small screens */ .tome-page-left .realm-map, .tome-page-left #world-map { min-height: min(48dvh, 380px) !important; max-height: min(56dvh, 440px) !important; } .tome-explore-stage .diorama-wrap, .tome-explore-stage .diorama-stage { min-height: min(52dvh, 460px) !important; } .tome-explore-stage .diorama-frame, .diorama-frame { height: min(52dvh, 480px) !important; min-height: 260px !important; } .rel-graph-stage { height: min(50dvh, 420px) !important; min-height: 280px !important; } .book-entries { column-count: 1 !important; } .entity-grid { grid-template-columns: 1fr !important; } .souls-filter-row { flex-direction: column !important; } /* Souls spread — let the page column scroll full character text */ .tome-page-right.tome-souls-stage, .tome-page-left.tome-souls-index { overflow-x: hidden !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch; padding-bottom: calc(3.75rem + env(safe-area-inset-bottom, 0px)) !important; } .tome-souls-index { overflow: visible !important; max-height: none !important; } .tome-souls-index .entity-grid { max-height: none !important; overflow: visible !important; flex: 0 0 auto !important; } .tome-page-right.tome-souls-stage > .block, .tome-page-right.tome-souls-stage > .form, .tome-page-right.tome-souls-stage .html-container, .tome-page-right.tome-souls-stage .prose, .tome-souls-stage .entity-hologram, .tome-souls-stage .hologram-stage, .tome-souls-stage .hologram-scroll { flex: 0 0 auto !important; height: auto !important; max-height: none !important; min-height: 0 !important; overflow: visible !important; } .tome-souls-stage .hologram-stage { transform: none !important; } .tome-souls-stage .hologram-appearance, .tome-souls-stage .hologram-goals, .tome-souls-stage .hologram-goals p, .tome-souls-stage .hologram-greeting, .tome-souls-stage .hologram-memory { overflow: visible !important; max-height: none !important; -webkit-line-clamp: unset !important; white-space: normal !important; word-break: break-word; } /* Opening gate */ .realm-opening { padding: 0.75rem !important; } .realm-cover-card, .realm-prologue-card, .realm-toc-card { width: min(96vw, 100%) !important; max-width: 100% !important; } .realm-cover-title span { font-size: clamp(1.4rem, 8vw, 2rem) !important; } /* Tome navigation chrome */ #tome-nav .tome-corner { width: 42px; height: 42px; bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px)); font-size: 1rem; } #tome-nav .tome-corner-left { left: 0.5rem; } #tome-nav .tome-corner-right { right: 0.5rem; } .tome-ribbon { right: 0.5rem; top: 0; font-size: 0.62rem; max-width: 46vw; padding: 0.3rem 0.5rem; } .tome-page-indicator { font-size: 0.62rem; bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px)); } #aether-walk-pad, #aether-walk-pad.visible { display: none !important; } #aether-walk-pad.visible.explore-only { display: block !important; position: absolute; left: 0.55rem; bottom: 0.55rem; z-index: 24; pointer-events: auto; } #aether-walk-pad .awp-btn { width: 2.75rem; height: 2.75rem; font-size: 0.85rem; } .tome-floating-toc { max-height: min(70dvh, 520px); overflow-y: auto; } } @media (max-width: 480px) { .tome-printed-kicker { font-size: 0.62rem !important; } .tome-printed-hint { font-size: 0.72rem !important; } .tome-leaf-btn { font-size: 0.58rem !important; padding: 0.3rem 0.5rem !important; } } /* -------------------------------------------------------------------------- */ /* Mobile hotfix — kill book spine background; stack Explore + diorama */ /* -------------------------------------------------------------------------- */ @media (max-width: 920px) { .realm-tabs [role="tabpanel"] { background: radial-gradient(circle at 8% 14%, rgba(255, 255, 255, 0.42), transparent 28%), radial-gradient(circle at 92% 18%, rgba(255, 255, 255, 0.3), transparent 24%), linear-gradient(180deg, #f9efd8 0%, #f5e8ca 48%, #faf1db 100%) !important; box-shadow: 0 10px 28px rgba(76, 50, 22, 0.22), inset 0 0 0 1px rgba(255, 247, 224, 0.58) !important; padding-left: 0.45rem !important; padding-right: 0.45rem !important; } .realm-tabs [role="tabpanel"]::before, .realm-tabs [role="tabpanel"]::after { content: none !important; display: none !important; background: none !important; opacity: 0 !important; width: 0 !important; height: 0 !important; } .tome-printed-page::before, .tome-printed-page::after { content: none !important; display: none !important; background: none !important; opacity: 0 !important; } /* Explore: stack place picker above 3D diorama (both visible, no leaf toggle) */ .tome-spread-row:has(.tome-explore-index) { flex-direction: column !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch; gap: 0.35rem !important; } .tome-spread-row:has(.tome-explore-index) > .tome-explore-index, .tome-spread-row:has(.tome-explore-index) > .tome-explore-stage, .tome-spread-row:has(.tome-explore-index) > .gr-column.tome-explore-index, .tome-spread-row:has(.tome-explore-index) > .gr-column.tome-explore-stage, .tome-spread-row:has(.tome-explore-index) > .tome-page-left, .tome-spread-row:has(.tome-explore-index) > .tome-page-right, .tome-spread-row:has(.tome-explore-index) > .gr-column.tome-page-left, .tome-spread-row:has(.tome-explore-index) > .gr-column.tome-page-right { display: flex !important; visibility: visible !important; pointer-events: auto !important; width: 100% !important; max-width: 100% !important; flex: 0 0 auto !important; padding-left: 0.5rem !important; padding-right: 0.5rem !important; } .tome-spread-row:has(.tome-explore-index) > .tome-explore-index, .tome-spread-row:has(.tome-explore-index) > .gr-column.tome-explore-index { flex: 0 0 auto !important; max-height: none !important; overflow: visible !important; } .tome-explore-index .place-ribbon { overflow: visible !important; } .tome-explore-index .place-ribbon-list { max-height: 28dvh; overflow-y: auto !important; -webkit-overflow-scrolling: touch; } .tome-spread-row:has(.tome-explore-index) > .tome-explore-stage, .tome-spread-row:has(.tome-explore-index) > .gr-column.tome-explore-stage { flex: 1 1 auto !important; min-height: min(52dvh, 460px) !important; overflow: visible !important; border-top: 1px solid rgba(138, 106, 58, 0.22); padding-top: 0.45rem !important; padding-bottom: 0.25rem !important; } .tome-explore-stage .diorama-wrap, .tome-explore-stage .diorama-stage { min-height: min(50dvh, 440px) !important; width: 100% !important; overflow: visible !important; position: relative; } .tome-explore-stage .diorama-frame, .tome-explore-stage #explore-diorama-host .diorama-frame { height: min(50dvh, 440px) !important; min-height: 300px !important; width: 100% !important; max-width: 100% !important; } .tome-spread-shell:has(.tome-explore-index) .tome-leaf-bar { display: none !important; } /* Other spreads: leaf toggle shows full right-page content */ .tome-leaf-bar { display: flex !important; position: sticky; bottom: 0; background: rgba(255, 249, 232, 0.94); z-index: 8; } .tome-spread-row.tome-leaf-right .tome-page-right .pulse-card, .tome-spread-row.tome-leaf-right .tome-page-right .pulse-card:nth-child(n+3) { display: flex !important; } .tome-spread-row.tome-leaf-right .tome-page-right.tome-page-centered > .block:has(.realm-pulse), .tome-spread-row.tome-leaf-right .tome-page-right.tome-page-centered > .block:has(.activity-feed) { display: block !important; height: auto !important; max-height: none !important; overflow: visible !important; } .tome-spread-shell { padding-bottom: 0 !important; } .tome-spread-row.tome-leaf-left .tome-page-left, .tome-spread-row.tome-leaf-right .tome-page-right { padding-bottom: calc(0.35rem + env(safe-area-inset-bottom, 0px)) !important; } .tome-page-right.tome-souls-stage, .tome-page-left.tome-souls-index { padding-bottom: calc(2.5rem + env(safe-area-inset-bottom, 0px)) !important; } .tome-explore-stage-header .explore-controls-hint { font-size: 0.68rem !important; } }