[hidden] { display: none !important; }
:root { --font-body: 'Georgia', serif; }
.library-intro { margin: 0 0 2rem; }
.library-intro h2 { font-size: clamp(1.6rem, 4vw, 2.6rem); text-transform: none; letter-spacing: .02em; margin: .5rem 0 1rem; }
.eyebrow { color: var(--gold); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; }
p { line-height: 1.65; }
#library-status { min-height: 2.5rem; padding: .6rem 0; }
#library-status[data-error=true] { color: #ffb6c3; }
.library-toolbar { display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; margin: 1rem 0; }
.library-hint { color: var(--muted); margin-bottom: 1.5rem; }
#unlock-form { display: grid; gap: .8rem; max-width: 28rem; margin-top: 1rem; }
input { width: 100%; padding: .85rem; background: #100d19; color: var(--text); border: 1px solid var(--gold-dim); border-radius: 4px; font: inherit; }
button, a, input { touch-action: manipulation; }
button, .rune-btn { min-height: 44px; }
:focus-visible { outline: 3px solid #ead69d !important; outline-offset: 4px; }
.media-card { display: flex; flex-direction: column; }
.media-card img, .media-card video { width: 100%; height: 240px; object-fit: contain; background: #08060e; }
.media-caption { overflow-wrap: anywhere; padding: 1rem; }
.memory-delete { align-self: flex-start; margin: 0 1rem 1rem; color: #ffb6c3; }
#legacy-panel { margin-bottom: 1.5rem; }
dialog { margin: auto; max-width: min(92vw, 32rem); border: 1px solid var(--gold); padding: 2rem; background: #171120; color: var(--text); }
dialog::backdrop { background: #000a; }
dialog p { margin-top: 1rem; overflow-wrap: anywhere; }
@media(max-width: 540px) { .portal-nav { padding: 1rem; flex-wrap: wrap; } .portal-content { padding: 28px 18px; } .nav-title { order: 3; flex-basis: 100%; } .stone-panel { padding: 1.2rem; } }
@media(prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
