/* Custom styles for the application */ :root { --noir-900: #0b0f12; --noir-800: #12171c; --noir-700: #1a2128; --ash-200: #d7d2c8; --ash-100: #f2efe8; --accent-gold: #d4a84b; --accent-crimson: #b7423b; --accent-teal: #4aa3a1; --glass: rgba(20, 26, 32, 0.75); } body { font-family: "Inter", system-ui, -apple-system, sans-serif; background: radial-gradient(circle at top, #1a2026, #0b0f12 55%); color: var(--ash-100); min-height: 100vh; } h1, h2, h3, .navbar-brand { font-family: "Cormorant Garamond", serif; letter-spacing: 0.02em; } .site-nav { background: linear-gradient(120deg, rgba(14, 18, 22, 0.95), rgba(20, 26, 32, 0.75)); border-bottom: 1px solid rgba(255, 255, 255, 0.06); position: sticky; top: 0; z-index: 100; } .navbar-brand { font-weight: 700; font-size: 1.4rem; color: var(--ash-100); } .brand-tag { display: block; font-size: 0.75rem; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); letter-spacing: 0.16em; } .nav-link { font-weight: 500; color: rgba(255, 255, 255, 0.8); } .nav-link:hover, .nav-link:focus { color: var(--accent-gold); } .nav-link-admin { border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 999px; padding: 0.35rem 1rem; } .hero { padding: 5rem 0 3rem; position: relative; overflow: hidden; } .hero::before { content: ""; position: absolute; inset: -20% 0 0; background: radial-gradient(circle, rgba(212, 168, 75, 0.15), transparent 55%); z-index: 0; } .hero-grid { display: grid; gap: 2.5rem; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); position: relative; z-index: 1; } .hero-text h1 { font-size: clamp(2.6rem, 3vw + 1.6rem, 3.8rem); margin-bottom: 1rem; } .hero-lead { color: rgba(255, 255, 255, 0.82); font-size: 1.1rem; line-height: 1.7; } .hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin: 2rem 0 1.5rem; } .hero-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; } .hero-tags span { background: rgba(255, 255, 255, 0.08); padding: 0.35rem 0.9rem; border-radius: 999px; font-size: 0.85rem; } .glass-card { background: var(--glass); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 20px; padding: 2rem; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35); backdrop-filter: blur(16px); } .hero-card { position: relative; } .hero-ornament { position: absolute; width: 140px; height: 140px; border-radius: 24px; background: linear-gradient(135deg, rgba(74, 163, 161, 0.35), rgba(183, 66, 59, 0.25)); right: -30px; bottom: -30px; filter: blur(2px); } .eyebrow { text-transform: uppercase; letter-spacing: 0.3em; font-size: 0.7rem; color: var(--accent-gold); } .section-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); padding-bottom: 3rem; } .section-card { background: rgba(18, 23, 28, 0.75); border-radius: 18px; padding: 1.8rem; border: 1px solid rgba(255, 255, 255, 0.06); } .stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 1rem; margin: 1.5rem 0; } .stat-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.15em; color: rgba(255, 255, 255, 0.55); margin-bottom: 0.35rem; } .stat-value { font-size: 1.3rem; font-weight: 600; } .muted { color: rgba(255, 255, 255, 0.68); } .text-link { color: var(--accent-gold); text-decoration: none; font-weight: 600; } .text-link:hover { color: var(--accent-teal); } .btn-primary { background: linear-gradient(120deg, var(--accent-gold), #f0c76a); border: none; color: #1c1406; font-weight: 600; box-shadow: 0 12px 30px rgba(212, 168, 75, 0.35); } .btn-outline-light { border-color: rgba(255, 255, 255, 0.35); } .page-head { margin: 3rem 0 2rem; } .split-head { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: space-between; align-items: center; } .head-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; } .form-card { max-width: 540px; } .form-grid { display: grid; gap: 1.2rem; } .form-error { color: var(--accent-crimson); font-size: 0.85rem; margin-top: 0.35rem; } .form-hint { background: rgba(255, 255, 255, 0.06); padding: 0.8rem 1rem; border-radius: 12px; font-size: 0.9rem; } .profile-grid, .story-grid, .quest-grid, .inventory-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); } .story-layout { padding-bottom: 3rem; } .story-scene h2 { margin: 0.8rem 0 1rem; } .story-body { font-size: 1.05rem; line-height: 1.75; } .choice-form { display: grid; gap: 1.2rem; } .choice-list { display: grid; gap: 0.8rem; } .choice-item { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.8rem 1rem; border-radius: 12px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); } .choice-item input[type="radio"] { margin-top: 0.25rem; } .result-card { margin-top: 1.5rem; padding: 1rem; border-radius: 14px; background: rgba(255, 255, 255, 0.06); } .result-meta { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-top: 0.5rem; font-size: 0.9rem; color: rgba(255, 255, 255, 0.7); } .info-list, .timeline { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: 0.75rem; } .info-list li, .timeline li { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; background: rgba(255, 255, 255, 0.04); padding: 0.7rem 1rem; border-radius: 12px; } .timeline-title { font-weight: 600; } .timeline-meta { color: rgba(255, 255, 255, 0.6); font-size: 0.9rem; } .badge-outcome { padding: 0.35rem 0.7rem; border-radius: 999px; font-size: 0.75rem; } .badge-success { background: rgba(74, 163, 161, 0.25); color: var(--accent-teal); } .badge-fail { background: rgba(183, 66, 59, 0.25); color: var(--accent-crimson); } .badge-neutral { background: rgba(212, 168, 75, 0.2); color: var(--accent-gold); } .badge-status { background: rgba(255, 255, 255, 0.1); color: var(--ash-200); } .narrow-section { padding-bottom: 3rem; } .quest-meta, .item-meta { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin-top: 1rem; } .site-footer { margin-top: 4rem; padding: 2.5rem 0 3rem; border-top: 1px solid rgba(255, 255, 255, 0.06); background: rgba(8, 10, 12, 0.8); } .footer-inner { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; color: rgba(255, 255, 255, 0.6); }