:root{
  --black:#050505;
  --ink:#0b0c10;
  --navy:#07111f;
  --gold:#d7a94a;
  --gold2:#f7dd8d;
  --cream:#f5ead1;
  --glass:rgba(5,6,10,.68);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:#050505}
body{margin:0;font-family:Georgia,'Times New Roman',serif;background:#050505;color:var(--cream);line-height:1.65;overflow-x:hidden}
body.locked{height:100vh;overflow:hidden}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block}
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:14px 26px;background:linear-gradient(to bottom,rgba(0,0,0,.82),rgba(0,0,0,.18));backdrop-filter:blur(8px);border-bottom:1px solid rgba(215,169,74,.22);opacity:0;pointer-events:none;transition:.5s ease}
body.entered .site-header{opacity:1;pointer-events:auto}.brand{display:flex;gap:10px;align-items:center;text-transform:uppercase;letter-spacing:.16em;color:var(--gold2);font-size:14px}.brand-logo{width:42px;height:42px;object-fit:cover;border-radius:50%}.nav{display:flex;gap:22px;align-items:center;font-size:13px;text-transform:uppercase;letter-spacing:.12em}.nav a{opacity:.84}.nav a:hover{color:var(--gold2);opacity:1}.menu-toggle{display:none;background:none;border:1px solid rgba(215,169,74,.45);color:var(--gold2);padding:8px 11px;border-radius:3px}
.hero{height:100vh;position:relative;display:grid;place-items:center;isolation:isolate;overflow:hidden}.hero-bg,.intro-bg,.bookshelf-bg,.desk-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:-2}.hero-bg{background-image:url('images/grand-hall.jpg');transform:scale(1.03);transition:transform 4.2s cubic-bezier(.16,1,.3,1)}.hero-overlay{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at center,rgba(5,5,5,.3),rgba(0,0,0,.82) 72%),linear-gradient(to bottom,rgba(0,0,0,.1),#050505)}.hero-content{text-align:center;padding:30px;max-width:900px;animation:fadeUp 1.1s ease both}.hero-logo{width:150px;height:110px;object-fit:cover;margin:0 auto 8px;border-radius:14px;mix-blend-mode:screen;filter:drop-shadow(0 0 18px rgba(215,169,74,.45))}.eyebrow{text-transform:uppercase;letter-spacing:.24em;color:var(--gold2);font-size:13px}.hero h1,.section-inner h2{font-size:clamp(48px,7vw,108px);line-height:.95;margin:10px 0;text-transform:uppercase;letter-spacing:.08em;color:var(--gold2);text-shadow:0 0 24px rgba(0,0,0,.8)}.tagline{font-size:clamp(20px,3vw,34px);letter-spacing:.08em}.gold-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;margin-top:18px;padding:14px 26px;border:none;border-radius:4px;background:linear-gradient(135deg,#7a4d12,#f4d06f 42%,#9a641e 100%);color:#100b04;font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-family:Georgia,'Times New Roman',serif;box-shadow:0 0 0 1px rgba(255,229,146,.7),0 10px 30px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.45);cursor:pointer}.gold-button:hover{filter:brightness(1.12);transform:translateY(-2px);box-shadow:0 0 0 1px rgba(255,239,174,.85),0 16px 42px rgba(0,0,0,.5),0 0 28px rgba(215,169,74,.22),inset 0 1px 0 rgba(255,255,255,.55)}.entry-note{font-size:13px;color:rgba(245,234,209,.72);letter-spacing:.08em}.library-content{display:none}.entered .library-content{display:block}.entered .hero-bg{transform:scale(1.09)}
.section-panel{position:relative;min-height:92vh;display:flex;align-items:center;padding:110px 24px;isolation:isolate}.section-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.45),rgba(0,0,0,.84));z-index:-1}.intro-bg{background-image:url('images/grand-hall.jpg')}.bookshelf-bg{background-image:url('images/bookshelf.jpg')}.desk-bg{background-image:url('images/desk.jpg')}.section-inner{width:min(1180px,100%);margin:auto}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:center}.glass-card{background:var(--glass);border:1px solid rgba(215,169,74,.32);box-shadow:0 20px 70px rgba(0,0,0,.45);padding:30px;border-radius:18px;backdrop-filter:blur(10px)}.center{text-align:center}.narrow{max-width:760px}.lead{font-size:20px;color:rgba(245,234,209,.86)}.full-cover-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:36px}.full-cover-card{background:rgba(0,0,0,.58);border:1px solid rgba(215,169,74,.36);border-radius:16px;padding:13px;transition:.38s cubic-bezier(.16,1,.3,1);box-shadow:0 18px 48px rgba(0,0,0,.45);will-change:transform}.full-cover-card:hover{transform:translateY(-8px) scale(1.01);box-shadow:0 0 32px rgba(215,169,74,.34),0 26px 70px rgba(0,0,0,.58)}.full-cover-card img{width:100%;height:280px;object-fit:contain;background:#080808;border-radius:10px}.full-cover-card span,.book-card span{display:block;text-align:center;margin-top:12px;color:var(--gold2);font-size:17px}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:38px}.book-card{background:rgba(0,0,0,.58);border:1px solid rgba(215,169,74,.38);padding:10px;border-radius:16px;color:var(--cream);font-family:Georgia,'Times New Roman',serif;cursor:pointer;transition:.42s cubic-bezier(.16,1,.3,1);transform-style:preserve-3d;will-change:transform,box-shadow}.book-card img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:10px;transition:.42s cubic-bezier(.16,1,.3,1);box-shadow:0 18px 34px rgba(0,0,0,.35)}.coming{background:radial-gradient(circle at 80% 40%,rgba(20,120,48,.22),transparent 40%),#050505}.flame-card img{border:1px solid rgba(53,255,106,.32);border-radius:18px;box-shadow:0 0 42px rgba(54,255,108,.18)}.status-pill{display:inline-block;border:1px solid rgba(215,169,74,.55);padding:8px 16px;border-radius:999px;color:var(--gold2);text-transform:uppercase;letter-spacing:.15em;font-size:12px}.small-logo{width:90px;height:70px;object-fit:cover;margin:0 auto 12px;border-radius:10px;mix-blend-mode:screen}.contact{background:linear-gradient(180deg,#050505,#0b0a08)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:32px}.signup-form{display:grid;gap:10px;margin-top:18px}.signup-form input,.signup-form select,.signup-form textarea{width:100%;padding:13px 14px;background:rgba(255,255,255,.08);border:1px solid rgba(215,169,74,.35);color:var(--cream);border-radius:6px;font-family:inherit}.signup-form textarea{min-height:130px;resize:vertical}.hidden-field{display:none}.reader-list{padding-left:22px}.shop{min-height:auto;padding:70px 24px;background:#efe7d6}.shop:before{display:none}.shop-inner{max-width:1400px}.shop-tease{display:block;border-radius:18px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.42);border:1px solid rgba(122,77,18,.25);transition:.25s}.shop-tease:hover{transform:translateY(-4px);box-shadow:0 34px 100px rgba(122,77,18,.45)}.shop-tease img{width:100%;height:auto}.closing-line{text-align:center;padding:46px 20px;background:#050505;color:var(--gold2)}footer{text-align:center;padding:24px;background:#030303;border-top:1px solid rgba(215,169,74,.28);color:rgba(245,234,209,.7)}footer a{color:var(--gold2)}
.world-modal{position:fixed;inset:0;z-index:100;display:none}.world-modal.open{display:block}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(6px)}.modal-card{position:relative;margin:6vh auto;width:min(980px,92vw);display:grid;grid-template-columns:minmax(220px,360px) 1fr;gap:26px;background:#090805;border:1px solid rgba(215,169,74,.42);border-radius:18px;padding:24px;box-shadow:0 30px 100px rgba(0,0,0,.8)}.modal-cover{width:100%;border-radius:12px}.modal-close{position:absolute;top:10px;right:14px;background:none;border:none;color:var(--gold2);font-size:34px;cursor:pointer}.modal-copy{align-self:center;padding:10px 20px}.modal-copy h2{font-size:42px;color:var(--gold2);line-height:1.05}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.site-header{padding:10px 14px}.menu-toggle{display:block}.nav{position:absolute;top:64px;right:14px;left:14px;display:none;flex-direction:column;align-items:flex-start;background:rgba(0,0,0,.92);border:1px solid rgba(215,169,74,.35);padding:18px}.nav.open{display:flex}.two-col,.contact-grid,.modal-card{grid-template-columns:1fr}.book-grid{grid-template-columns:repeat(2,1fr)}.full-cover-grid{grid-template-columns:1fr}.section-panel{padding:86px 18px}.hero h1,.section-inner h2{font-size:clamp(38px,12vw,64px)}.full-cover-card img{height:auto}.shop{padding:36px 0}.shop-tease{border-radius:0;border-left:0;border-right:0}.brand span{font-size:12px}.hero-logo{width:120px;height:86px}}


/* Subtle living-library atmosphere */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:6;
  opacity:0;
  background-image:
    radial-gradient(circle, rgba(247,221,141,.34) 0 1px, transparent 1.5px),
    radial-gradient(circle, rgba(255,255,255,.16) 0 .8px, transparent 1.3px);
  background-size:130px 130px, 210px 210px;
  background-position:0 0, 70px 40px;
  animation:libraryDust 34s linear infinite;
  transition:opacity 1.2s ease;
}
body.entered::before, body.doors-opening::before{opacity:.28}
@keyframes libraryDust{
  from{background-position:0 0,70px 40px;transform:translate3d(0,0,0)}
  to{background-position:260px -520px, -140px -420px;transform:translate3d(0,-20px,0)}
}

.ambience-toggle{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:70;
  opacity:0;
  pointer-events:none;
  border:1px solid rgba(215,169,74,.48);
  background:rgba(5,5,5,.72);
  color:var(--gold2);
  padding:10px 14px;
  border-radius:999px;
  font-family:Georgia,'Times New Roman',serif;
  letter-spacing:.06em;
  box-shadow:0 12px 34px rgba(0,0,0,.42);
  backdrop-filter:blur(8px);
  cursor:pointer;
  transition:.35s ease;
}
body.entered .ambience-toggle{opacity:1;pointer-events:auto}
.ambience-toggle:hover{transform:translateY(-2px);box-shadow:0 16px 44px rgba(0,0,0,.55),0 0 22px rgba(215,169,74,.18)}

.book-card:hover{
  transform:translateY(-10px) rotate(-1.5deg) scale(1.015);
  box-shadow:0 0 34px rgba(215,169,74,.36),0 28px 78px rgba(0,0,0,.65);
}
.book-card:hover img{transform:translateY(-3px) scale(1.035);box-shadow:0 28px 60px rgba(0,0,0,.58)}
.book-card:nth-child(even):hover{transform:translateY(-10px) rotate(1.5deg) scale(1.015)}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;scroll-behavior:auto !important;transition-duration:.01ms !important}
  body::before{display:none}
}


/* Opening library loader */
.site-loader{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:radial-gradient(circle at 50% 44%, rgba(215,169,74,.16), transparent 24%), #050403;color:var(--gold2);letter-spacing:.12em;text-transform:uppercase;font-size:12px;transition:opacity 1.35s ease, visibility 1.35s ease;}
.site-loader h2{margin:0;color:var(--gold2);font-family:Georgia,'Times New Roman',serif;font-size:clamp(28px,5vw,58px);letter-spacing:.16em;text-transform:uppercase;text-shadow:0 0 28px rgba(215,169,74,.28);animation:fadeUp .9s ease .2s both;}
.site-loader p{margin:0;animation:fadeUp .9s ease .75s both;}
.site-loader em{font-family:Georgia,'Times New Roman',serif;color:rgba(245,234,209,.86);letter-spacing:.08em;text-transform:none;font-size:15px;animation:fadeUp .9s ease 1.15s both;}
.site-loader.hide{opacity:0;visibility:hidden;pointer-events:none;}
.loader-logo{width:118px;height:118px;object-fit:contain;filter:drop-shadow(0 0 30px rgba(215,169,74,.35));animation:loaderGlow 2.8s ease-in-out infinite;}
@keyframes loaderGlow{0%,100%{transform:translateY(0);filter:drop-shadow(0 0 18px rgba(215,169,74,.22));opacity:.82}50%{transform:translateY(-4px);filter:drop-shadow(0 0 38px rgba(247,221,141,.5));opacity:1}}

/* Cinematic door-opening entrance */
.library-doors{
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  opacity:0;
  overflow:hidden;
  transition:opacity .25s ease;
}
.door-panel{
  position:absolute;
  top:0;
  bottom:0;
  width:50.4%;
  background:
    linear-gradient(90deg,rgba(0,0,0,.28),transparent 24%,rgba(212,163,74,.07) 50%,rgba(0,0,0,.45)),
    repeating-linear-gradient(90deg,rgba(255,220,130,.06) 0 1px,transparent 1px 110px),
    linear-gradient(180deg,#070401,#130b04 42%,#030201);
  box-shadow:inset 0 0 70px rgba(0,0,0,.9), inset 0 0 0 1px rgba(215,169,74,.42);
}
.door-left{left:0;border-right:1px solid rgba(255,213,121,.75)}
.door-right{right:0;border-left:1px solid rgba(255,213,121,.75)}
.door-panel:before{
  content:"";
  position:absolute;
  inset:34px;
  border:1px solid rgba(215,169,74,.42);
  box-shadow:inset 0 0 0 1px rgba(255,237,179,.07),0 0 18px rgba(215,169,74,.14);
}
.door-panel:after{
  content:"";
  position:absolute;
  top:48%;
  width:22px;
  height:22px;
  border-radius:50%;
  background:radial-gradient(circle,#fff2b8 0,#d7a94a 34%,#5d3309 74%);
  box-shadow:0 0 18px rgba(215,169,74,.55);
}
.door-left:after{right:34px}.door-right:after{left:34px}
.door-glow{position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(transparent,#f7d36f,transparent);opacity:.65}.door-left .door-glow{right:0}.door-right .door-glow{left:0}
.door-seal{
  position:absolute;
  left:0;
  top:0;
  transform:translate(-50%,-50%) scale(.9);
  width:135px;
  height:105px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:radial-gradient(circle,rgba(215,169,74,.16),rgba(0,0,0,.18) 58%,transparent 72%);
  filter:drop-shadow(0 0 22px rgba(215,169,74,.45));
}
.door-seal img{width:100%;height:100%;object-fit:cover;mix-blend-mode:screen;border-radius:12px}
body.doors-opening .library-doors{opacity:1}
body.doors-opening .hero-content{animation:fadeAway .8s ease forwards}
body.doors-opening .door-left{animation:openLeft 5.4s cubic-bezier(.76,0,.16,1) .7s forwards}
body.doors-opening .door-right{animation:openRight 5.4s cubic-bezier(.76,0,.16,1) .7s forwards}
body.doors-opening .door-seal{animation:sealFade 3.6s ease .45s forwards}
@keyframes openLeft{0%{transform:translateX(0)}100%{transform:translateX(-104%)}}
@keyframes openRight{0%{transform:translateX(0)}100%{transform:translateX(104%)}}
@keyframes sealFade{0%{opacity:1;transform:translate(-50%,-50%) scale(.9)}55%{opacity:.8;transform:translate(-50%,-50%) scale(1.05)}100%{opacity:0;transform:translate(-50%,-50%) scale(.72)}}
@keyframes fadeAway{to{opacity:0;transform:translateY(-10px)}}
@media(max-width:850px){.door-panel:before{inset:18px}.door-seal{width:105px;height:82px}.door-left:after{right:22px}.door-right:after{left:22px}}

/* Library atmosphere chooser */
.ambience-panel{
  position:fixed;
  right:18px;
  bottom:74px;
  width:min(390px,calc(100vw - 36px));
  z-index:71;
  opacity:0;
  transform:translateY(12px) scale(.98);
  pointer-events:none;
  background:rgba(6,5,4,.92);
  color:var(--cream);
  border:1px solid rgba(215,169,74,.42);
  border-radius:18px;
  box-shadow:0 24px 80px rgba(0,0,0,.65),0 0 34px rgba(215,169,74,.08);
  backdrop-filter:blur(12px);
  padding:16px;
  transition:.28s ease;
}
body.entered .ambience-panel.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.ambience-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;border-bottom:1px solid rgba(215,169,74,.2);padding-bottom:10px;margin-bottom:10px}
.ambience-panel h3{margin:0;color:var(--gold2);font-size:22px;line-height:1.05}
.mini-eyebrow{margin:0 0 3px;text-transform:uppercase;letter-spacing:.22em;font-size:10px;color:rgba(247,221,141,.78)}
.ambience-close{border:1px solid rgba(215,169,74,.35);background:rgba(255,255,255,.04);color:var(--gold2);border-radius:50%;width:34px;height:34px;font-size:22px;line-height:1;cursor:pointer}
.ambience-options{display:grid;gap:8px;max-height:52vh;overflow:auto;padding-right:3px}
.ambience-option{width:100%;text-align:left;border:1px solid rgba(215,169,74,.22);background:rgba(255,255,255,.045);color:var(--cream);border-radius:12px;padding:10px 12px;cursor:pointer;font-family:Georgia,'Times New Roman',serif;display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:start;transition:.22s ease}
.ambience-option span{color:var(--gold2);font-weight:700;display:block;line-height:1.25}.ambience-option small{grid-column:2;color:rgba(245,234,209,.7);font-size:12px;line-height:1.35}.ambience-option:hover,.ambience-option.active{border-color:rgba(247,221,141,.65);background:rgba(215,169,74,.12);box-shadow:0 0 22px rgba(215,169,74,.08)}
.headphones-note{margin:10px 2px 0;color:rgba(245,234,209,.72);font-size:12px;line-height:1.4;text-align:center}.ambience-off{margin-top:12px;width:100%;border:1px solid rgba(215,169,74,.35);background:transparent;color:var(--gold2);border-radius:999px;padding:10px 12px;font-family:Georgia,'Times New Roman',serif;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;font-size:12px}
.ambience-off:hover{background:rgba(215,169,74,.1)}
@media(max-width:850px){.ambience-panel{right:12px;bottom:70px;width:calc(100vw - 24px)}.ambience-options{max-height:48vh}.ambience-toggle{right:12px;bottom:12px}}


/* Playful guiding orb of light */
.guiding-orb{
  position:fixed;
  left:0;
  top:0;
  width:34px;
  height:34px;
  z-index:68;
  pointer-events:none;
  opacity:0;
  transform:translate3d(-50%,-50%,0) scale(.6);
  filter:drop-shadow(0 0 12px rgba(247,221,141,.75));
  transition:opacity 1.1s ease, filter .4s ease;
  will-change:transform, opacity;
}
.guiding-orb.active{opacity:1}
.guiding-orb.shy{filter:drop-shadow(0 0 24px rgba(247,221,141,.95))}
.orb-core,.orb-halo{position:absolute;inset:0;border-radius:50%}
.orb-core{
  background:radial-gradient(circle at 36% 34%, #fff9d8 0 9%, #ffe88f 18%, #d7a94a 42%, rgba(215,169,74,.18) 68%, transparent 72%);
  box-shadow:0 0 18px rgba(247,221,141,.88),0 0 38px rgba(215,169,74,.48),0 0 72px rgba(215,169,74,.2);
  animation:orbPulse 2.8s ease-in-out infinite;
}
.orb-halo{
  inset:-18px;
  background:
    radial-gradient(circle, rgba(247,221,141,.24), transparent 58%),
    conic-gradient(from 0deg, transparent, rgba(247,221,141,.35), transparent, rgba(215,169,74,.18), transparent);
  opacity:.75;
  animation:orbSpin 5.5s linear infinite;
}
.guiding-orb::before,
.guiding-orb::after{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:5px;
  height:5px;
  border-radius:50%;
  background:rgba(247,221,141,.92);
  box-shadow:0 0 12px rgba(247,221,141,.9);
  opacity:.78;
}
.guiding-orb::before{animation:orbSparkOne 3.2s ease-in-out infinite}
.guiding-orb::after{animation:orbSparkTwo 4.1s ease-in-out infinite}
.orb-trail{
  position:fixed;
  width:7px;
  height:7px;
  border-radius:50%;
  pointer-events:none;
  z-index:67;
  background:rgba(247,221,141,.7);
  box-shadow:0 0 14px rgba(247,221,141,.55);
  transform:translate(-50%,-50%);
  animation:orbTrailFade .9s ease-out forwards;
}
@keyframes orbPulse{0%,100%{transform:scale(.92);opacity:.92}50%{transform:scale(1.12);opacity:1}}
@keyframes orbSpin{to{transform:rotate(360deg)}}
@keyframes orbSparkOne{0%,100%{transform:translate(-20px,-15px) scale(.55);opacity:.2}45%{transform:translate(22px,-30px) scale(1);opacity:.9}72%{transform:translate(16px,20px) scale(.65);opacity:.35}}
@keyframes orbSparkTwo{0%,100%{transform:translate(18px,18px) scale(.45);opacity:.18}35%{transform:translate(-26px,16px) scale(.95);opacity:.72}68%{transform:translate(-10px,-28px) scale(.7);opacity:.4}}
@keyframes orbTrailFade{0%{opacity:.5;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-50%) scale(.15)}}
@media(max-width:850px){.guiding-orb{width:25px;height:25px}.orb-halo{inset:-12px}}
@media (prefers-reduced-motion: reduce){.guiding-orb,.orb-trail{display:none!important}}

/* Story Room archive gallery */
.modal-card.story-room-mode{
  width:min(1120px,94vw);
  grid-template-columns:minmax(280px,440px) 1fr;
}
.modal-card.story-room-mode .modal-cover{
  max-height:78vh;
  object-fit:contain;
  background:#050505;
  border:1px solid rgba(215,169,74,.28);
  box-shadow:0 0 42px rgba(215,169,74,.13);
}
.modal-archives{
  display:none;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:20px 0 18px;
}
.story-room-mode .modal-archives{display:grid;}
.archive-thumb{
  border:1px solid rgba(215,169,74,.28);
  background:rgba(255,255,255,.045);
  color:var(--cream);
  border-radius:12px;
  padding:8px;
  cursor:pointer;
  text-align:left;
  transition:.25s ease;
  font-family:Georgia,'Times New Roman',serif;
}
.archive-thumb:hover,.archive-thumb.active{
  border-color:rgba(215,169,74,.8);
  box-shadow:0 0 24px rgba(215,169,74,.18);
  transform:translateY(-2px);
}
.archive-thumb img{
  width:100%;
  aspect-ratio:2/3;
  object-fit:cover;
  border-radius:8px;
  display:block;
  margin-bottom:8px;
}
.archive-thumb span{
  display:block;
  font-size:13px;
  line-height:1.25;
  color:var(--gold2);
}
@media(max-width:850px){
  .modal-card.story-room-mode{grid-template-columns:1fr;width:min(94vw,640px);margin:4vh auto;max-height:92vh;overflow:auto;}
  .modal-card.story-room-mode .modal-cover{max-height:62vh;}
  .modal-archives{grid-template-columns:1fr 1fr;}
}

/* v1.1.1 — Story Room scrolling fix */
.world-modal.open{
  display:block;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  padding:24px 0;
}
.world-modal.open .modal-backdrop{
  position:fixed;
}
.modal-card.story-room-mode{
  max-height:none;
  margin:4vh auto;
}
.modal-card.story-room-mode .modal-copy{
  align-self:start;
  max-height:none;
  overflow:visible;
}
@media(min-width:851px){
  .modal-card.story-room-mode .modal-cover{
    position:sticky;
    top:24px;
    align-self:start;
  }
}
@media(max-width:850px){
  .world-modal.open{padding:10px 0 28px;}
  .modal-card.story-room-mode{
    max-height:none;
    overflow:visible;
  }
}


/* v1.1.5 — Enlarged archive image lightbox */
.modal-cover,
.archive-thumb img{
  cursor:zoom-in;
}
.modal-cover:focus{
  outline:2px solid rgba(215,169,74,.9);
  outline-offset:4px;
}
.archive-thumb::after{
  content:'Tap to enlarge';
  display:block;
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:rgba(245,220,174,.62);
  margin-top:6px;
}
.image-lightbox{
  position:fixed;
  inset:0;
  z-index:300;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.image-lightbox.open{display:flex;}
.image-lightbox-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.92);
  backdrop-filter:blur(8px);
}
.image-lightbox-img{
  position:relative;
  z-index:2;
  max-width:min(96vw,1300px);
  max-height:92vh;
  object-fit:contain;
  border:1px solid rgba(215,169,74,.55);
  border-radius:12px;
  box-shadow:0 30px 100px rgba(0,0,0,.9), 0 0 34px rgba(215,169,74,.18);
  background:#050505;
}
.image-lightbox-close{
  position:fixed;
  z-index:3;
  top:14px;
  right:20px;
  width:44px;
  height:44px;
  border:1px solid rgba(215,169,74,.45);
  border-radius:50%;
  background:rgba(0,0,0,.7);
  color:var(--gold2);
  font-size:34px;
  line-height:38px;
  cursor:pointer;
}
body.lightbox-open{overflow:hidden;}
@media(max-width:850px){
  .image-lightbox{padding:10px;}
  .image-lightbox-img{max-width:98vw;max-height:88vh;}
  .image-lightbox-close{top:10px;right:10px;}
}

/* First-time fantasy name gate */
.name-gate{
  position:fixed;
  inset:0;
  z-index:120;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .35s ease, visibility .35s ease;
}
.name-gate.open{opacity:1;visibility:visible;pointer-events:auto}
.name-gate-backdrop{
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 50% 42%, rgba(215,169,74,.18), transparent 32%), rgba(0,0,0,.78);
  backdrop-filter:blur(8px);
}
.name-gate-card{
  position:relative;
  width:min(540px,100%);
  border:1px solid rgba(215,169,74,.62);
  border-radius:22px;
  padding:34px 28px 28px;
  text-align:center;
  color:var(--cream);
  background:
    linear-gradient(135deg, rgba(215,169,74,.12), transparent 34%),
    radial-gradient(circle at 50% 0, rgba(247,221,141,.14), transparent 42%),
    rgba(6,5,4,.94);
  box-shadow:0 30px 90px rgba(0,0,0,.78), 0 0 44px rgba(215,169,74,.14);
}
.name-gate-card:before,.name-gate-card:after{
  content:"✦";
  position:absolute;
  top:14px;
  color:var(--gold2);
  opacity:.75;
}
.name-gate-card:before{left:18px}.name-gate-card:after{right:18px}
.name-gate-card h2{
  margin:8px 0 10px;
  color:var(--gold2);
  font-size:clamp(26px,5vw,42px);
  line-height:1.08;
  letter-spacing:.055em;
}
.name-gate-copy{margin:0 auto 20px;max-width:390px;color:rgba(245,234,209,.78);line-height:1.55}
.name-gate-label{display:block;text-align:left;max-width:360px;margin:0 auto 8px;color:var(--gold2);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.name-gate-input{
  width:min(360px,100%);
  border:1px solid rgba(215,169,74,.48);
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:var(--cream);
  padding:14px 18px;
  font:18px Georgia,'Times New Roman',serif;
  text-align:center;
  outline:none;
  box-shadow:inset 0 0 20px rgba(0,0,0,.34);
}
.name-gate-input:focus{border-color:rgba(247,221,141,.9);box-shadow:0 0 25px rgba(215,169,74,.16), inset 0 0 20px rgba(0,0,0,.34)}
.name-gate-input::placeholder{color:rgba(245,234,209,.42)}
.name-gate-message{min-height:20px;margin:12px 0;color:var(--gold2);font-style:italic}
.name-gate-actions{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}
.enter-only{
  border:1px solid rgba(215,169,74,.35);
  background:transparent;
  color:var(--cream);
  border-radius:999px;
  padding:12px 18px;
  font-family:Georgia,'Times New Roman',serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:12px;
  cursor:pointer;
}
.enter-only:hover{background:rgba(215,169,74,.1);color:var(--gold2)}
@media(max-width:520px){.name-gate-card{padding:28px 18px 22px}.name-gate-actions .gold-button,.enter-only{width:100%}}

/* v1.1.8 — Library Name greeting, celestial doors, and whimsical Library Wisp */
.entry-greeting{
  position:absolute;
  left:50%;
  top:48%;
  transform:translate(-50%,-50%);
  z-index:4;
  text-align:center;
  pointer-events:none;
  opacity:0;
  width:min(92vw,900px);
  color:var(--gold2);
  text-shadow:0 0 20px rgba(215,169,74,.46), 0 0 48px rgba(0,0,0,.92);
}
.greeting-line{display:block;letter-spacing:.08em;filter:blur(7px);opacity:0;transform:translateY(12px) scale(.96)}
.greeting-main{font-size:clamp(28px,5vw,74px);line-height:1.04;text-transform:uppercase}.greeting-sub{font-size:clamp(18px,2.5vw,34px);font-style:italic;margin-top:10px;color:rgba(245,234,209,.96)}
body.doors-opening .entry-greeting{opacity:1;animation:greetingVanish 2.6s ease 6.65s forwards}
body.doors-opening .greeting-main{animation:greetingAssemble 1.25s ease 2.7s forwards}
body.doors-opening .greeting-sub{animation:greetingAssemble 1.35s ease 3.55s forwards}
body.doors-opening .entry-greeting:before,body.doors-opening .entry-greeting:after{content:"";position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:rgba(247,221,141,.9);box-shadow:0 0 12px rgba(247,221,141,.9),38px -20px 0 rgba(215,169,74,.54),-42px 25px 0 rgba(247,221,141,.44),76px 30px 0 rgba(215,169,74,.34),-80px -34px 0 rgba(247,221,141,.32);opacity:0;animation:greetingParticles 4.8s ease 2.35s forwards}
body.doors-opening .entry-greeting:after{transform:rotate(180deg);animation-delay:2.7s}
@keyframes greetingAssemble{0%{opacity:0;filter:blur(9px);letter-spacing:.24em;transform:translateY(18px) scale(.94)}55%{opacity:1;filter:blur(2px);letter-spacing:.13em}100%{opacity:1;filter:blur(0);letter-spacing:.08em;transform:translateY(0) scale(1)}}
@keyframes greetingVanish{0%,70%{opacity:1}100%{opacity:0;transform:translate(-50%,-52%) scale(.98);filter:blur(6px)}}
@keyframes greetingParticles{0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0)}20%,70%{opacity:.92}100%{opacity:0;transform:translate(-50%,-50%) scale(1.9) rotate(80deg)}}

/* More thematic celestial library doors */
.library-doors{background:radial-gradient(circle at center,rgba(247,221,141,.16),transparent 12%,rgba(0,0,0,.38) 45%,rgba(0,0,0,.72));}
.door-panel{
  background:
    radial-gradient(circle at 50% 20%,rgba(247,221,141,.09),transparent 18%),
    radial-gradient(circle at 18% 34%,rgba(247,221,141,.22) 0 1px,transparent 2px),
    radial-gradient(circle at 78% 28%,rgba(247,221,141,.17) 0 1px,transparent 2px),
    radial-gradient(circle at 38% 72%,rgba(247,221,141,.14) 0 1px,transparent 2px),
    linear-gradient(90deg,rgba(0,0,0,.45),transparent 22%,rgba(212,163,74,.08) 50%,rgba(0,0,0,.52)),
    repeating-linear-gradient(90deg,rgba(255,220,130,.06) 0 1px,transparent 1px 78px),
    repeating-linear-gradient(0deg,transparent 0 58px,rgba(215,169,74,.08) 59px 60px,transparent 61px 128px),
    linear-gradient(180deg,#020203,#0c0704 38%,#040202);
  box-shadow:inset 0 0 88px rgba(0,0,0,.95), inset 0 0 0 1px rgba(215,169,74,.48), inset 0 0 0 12px rgba(0,0,0,.2);
}
.door-panel:before{inset:28px;border:1px solid rgba(247,221,141,.45);border-radius:4px;box-shadow:inset 0 0 0 1px rgba(255,237,179,.08),0 0 22px rgba(215,169,74,.15)}
.door-panel:after{width:24px;height:58px;border-radius:22px;background:linear-gradient(180deg,#fff2bd,#d7a94a 38%,#63420c);box-shadow:0 0 18px rgba(215,169,74,.5), inset 0 0 0 1px rgba(45,25,5,.55)}
.door-left:after{right:35px}.door-right:after{left:35px}.door-glow{width:4px;filter:blur(.2px);opacity:.88;background:linear-gradient(transparent,rgba(247,221,141,.2),#f7dd8d,rgba(247,221,141,.2),transparent)}
.door-seal{left:50%;top:50%;width:165px;height:132px;background:radial-gradient(circle,rgba(247,221,141,.24),rgba(215,169,74,.08) 50%,rgba(0,0,0,.28) 68%,transparent 78%);}
.door-seal:before{content:"";position:absolute;inset:-42px;border-radius:50%;border:1px solid rgba(215,169,74,.28);box-shadow:0 0 34px rgba(215,169,74,.12), inset 0 0 34px rgba(215,169,74,.08)}
body.doors-opening .door-left{animation:openLeft 6.15s cubic-bezier(.76,0,.13,1) 1.15s forwards}
body.doors-opening .door-right{animation:openRight 6.15s cubic-bezier(.76,0,.13,1) 1.15s forwards}
body.doors-opening .door-seal{animation:sealFade 4.3s ease .85s forwards}

/* Library Name dialog polish */
.name-gate-card h2{font-size:clamp(26px,4vw,47px);line-height:1.08}.name-gate-copy{font-size:18px;color:rgba(247,221,141,.9)}
.name-gate-input{text-align:center}.enter-only{min-width:150px}

/* Whimsical Library Wisp */
.guiding-orb{width:42px;height:42px;mix-blend-mode:screen;filter:drop-shadow(0 0 18px rgba(247,221,141,.85));}
.guiding-orb.active{animation:wispBob 3.4s ease-in-out infinite}.guiding-orb.curious{filter:drop-shadow(0 0 34px rgba(247,221,141,1));}.guiding-orb.excited .orb-core{animation:orbPulse .85s ease-in-out infinite}.guiding-orb.guiding .orb-halo{animation:orbSpin 1.7s linear infinite}.guiding-orb:before{width:7px;height:7px}.guiding-orb:after{width:4px;height:4px}.orb-core{background:radial-gradient(circle at 34% 30%,#fffce2 0 10%,#fff1a6 18%,#e5bc51 38%,rgba(215,169,74,.28) 62%,transparent 75%);box-shadow:0 0 22px rgba(247,221,141,.9),0 0 55px rgba(215,169,74,.58),0 0 110px rgba(215,169,74,.25)}
.orb-halo{inset:-25px;background:radial-gradient(circle,rgba(247,221,141,.24),transparent 55%),conic-gradient(from 0deg,transparent,rgba(255,247,205,.55),transparent,rgba(215,169,74,.25),transparent)}
.orb-trail{width:8px;height:8px}.orb-spark{position:fixed;z-index:69;width:5px;height:5px;border-radius:50%;pointer-events:none;background:rgba(247,221,141,.9);box-shadow:0 0 12px rgba(247,221,141,.85);animation:wispSpark .75s ease-out forwards}.wisp-glimmer{animation:wispGlimmer 1.4s ease-in-out 2;box-shadow:0 0 34px rgba(247,221,141,.45)!important}.wisp-hint{animation:wispHint 1.7s ease-in-out 1}.book-card.wisp-hint,.full-cover-card.wisp-hint{box-shadow:0 0 30px rgba(247,221,141,.34),0 18px 48px rgba(0,0,0,.45)!important}
@keyframes wispBob{0%,100%{margin-top:0}50%{margin-top:-7px}}
@keyframes wispSpark{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.15)}}
@keyframes wispGlimmer{0%,100%{filter:none}50%{filter:brightness(1.22) saturate(1.12)}}
@keyframes wispHint{0%,100%{transform:translateY(0)}45%{transform:translateY(-5px)}}
@media(max-width:850px){.guiding-orb{width:30px;height:30px}.entry-greeting{top:45%}.door-seal{width:112px;height:90px}}


/* Meet the Curator author portrait restoration */
.curator-section:before{
  background:linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.38),rgba(0,0,0,.88));
}
.curator-layout{grid-template-columns:minmax(280px,430px) 1fr;gap:46px;align-items:center}
.curator-portrait-card{
  position:relative;
  max-width:430px;
  margin-inline:auto;
  padding:12px;
  border-radius:24px;
  background:linear-gradient(135deg,rgba(215,169,74,.72),rgba(255,239,174,.22),rgba(87,52,13,.72));
  box-shadow:0 32px 100px rgba(0,0,0,.62),0 0 42px rgba(215,169,74,.18);
  overflow:hidden;
  isolation:isolate;
  transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s cubic-bezier(.16,1,.3,1);
}
.curator-portrait-card:before{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:22px;
  border:1px solid rgba(255,239,174,.35);
  pointer-events:none;
  z-index:2;
}
.curator-portrait-card:after{
  content:"";
  position:absolute;
  inset:-40% -55%;
  background:linear-gradient(115deg,transparent 35%,rgba(255,240,176,.34) 46%,transparent 58%);
  transform:translateX(-65%) rotate(8deg);
  transition:transform .9s ease;
  z-index:1;
  pointer-events:none;
}
.curator-portrait-card:hover{transform:translateY(-8px);box-shadow:0 40px 120px rgba(0,0,0,.72),0 0 58px rgba(215,169,74,.32)}
.curator-portrait-card:hover:after{transform:translateX(64%) rotate(8deg)}
.curator-portrait-card img{display:block;width:100%;height:min(68vh,620px);object-fit:cover;object-position:center;border-radius:18px;filter:contrast(1.03) saturate(1.05)}
.curator-signature{
  position:absolute;
  left:30px;
  right:30px;
  bottom:28px;
  z-index:3;
  text-align:center;
  font-family:Georgia,'Times New Roman',serif;
  color:var(--gold2);
  font-size:clamp(24px,3vw,38px);
  letter-spacing:.08em;
  text-transform:uppercase;
  text-shadow:0 2px 18px rgba(0,0,0,.9),0 0 22px rgba(215,169,74,.42);
  opacity:.95;
}
.curator-copy h2{font-size:clamp(42px,6vw,88px);text-align:left;margin-top:6px}
.curator-copy p{font-size:18px;line-height:1.7;color:rgba(245,234,209,.9)}
.curator-closing{color:var(--gold2)!important;margin-top:4px}
.curator-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.ghost-gold{background:transparent;color:var(--gold2);box-shadow:inset 0 0 0 1px rgba(215,169,74,.65),0 10px 30px rgba(0,0,0,.26)}
.ghost-gold:hover{background:rgba(215,169,74,.1);color:var(--gold2)}
@media(max-width:850px){
  .curator-layout{grid-template-columns:1fr;gap:26px}
  .curator-portrait-card{max-width:360px}
  .curator-portrait-card img{height:auto;max-height:none}
  .curator-copy h2{text-align:left;font-size:clamp(38px,11vw,62px)}
  .curator-actions .gold-button{width:100%}
}


/* v1.2.7 — Reading Quarters background for Story Rooms */
.worlds{
  background-image:url('images/reading-quarters-night.png');
  background-size:cover;
  background-position:center center;
  background-attachment:fixed;
}
.worlds:before{
  background:
    linear-gradient(180deg,rgba(0,0,0,.52),rgba(0,0,0,.68)),
    radial-gradient(circle at 50% 30%,rgba(25,52,94,.12),transparent 45%),
    linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.36),rgba(0,0,0,.84));
}
.worlds .section-inner{
  position:relative;
  z-index:1;
}
.worlds .lead{
  max-width:780px;
  margin-left:auto;
  margin-right:auto;
  text-shadow:0 3px 18px rgba(0,0,0,.9);
}
.worlds h2,.worlds .eyebrow{
  text-shadow:0 3px 22px rgba(0,0,0,.95),0 0 30px rgba(215,169,74,.25);
}
@media(max-width:850px){
  .worlds{background-attachment:scroll;background-position:center top;}
}

/* v1.2.0 — Library Collections shelves */
.collection-shelves{
  display:grid;
  gap:34px;
  margin-top:44px;
}
.collection-shelf{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(215,169,74,.28);
  border-radius:22px;
  padding:26px 24px 28px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.018)),
    rgba(0,0,0,.52);
  box-shadow:0 22px 70px rgba(0,0,0,.46);
}
.collection-shelf:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.78;
  background:radial-gradient(circle at 14% 0%,var(--shelf-glow,rgba(215,169,74,.18)),transparent 36%);
}
.shelf-heading{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
  border-bottom:1px solid rgba(215,169,74,.28);
  padding-bottom:14px;
}
.shelf-heading h3{
  margin:0;
  color:var(--shelf-title,var(--gold2));
  font-size:clamp(28px,4vw,50px);
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-shadow:0 0 24px var(--shelf-glow,rgba(215,169,74,.25));
}
.shelf-kicker{
  margin:0;
  color:rgba(245,234,209,.76);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:12px;
}
.shelf-grid{
  position:relative;
  z-index:1;
  margin-top:0;
  justify-content:start;
}
.collection-shelf .book-card{
  max-width:210px;
}
.trilogy-row{grid-template-columns:repeat(3,minmax(150px,210px));}
.two-book-row{grid-template-columns:repeat(2,minmax(150px,210px));}
.single-book{grid-template-columns:minmax(150px,210px);}
.shelf-standalone{--shelf-title:#f2c777;--shelf-glow:rgba(235,161,63,.24);}
.shelf-royal{--shelf-title:#9fc2ff;--shelf-glow:rgba(41,99,211,.36);border-color:rgba(85,130,232,.38);}
.shelf-royal .shelf-heading{border-color:rgba(120,157,241,.38);}
.shelf-veil{--shelf-title:#f5dc8e;--shelf-glow:rgba(215,169,74,.34);}
.shelf-terriers{--shelf-title:#d12f45;--shelf-glow:rgba(139,30,45,.36);border-color:rgba(209,47,69,.35);}
.shelf-terriers .shelf-heading{border-color:rgba(209,47,69,.38);}
.shelf-terriers .book-card{border-color:rgba(209,47,69,.36);}
.shelf-terriers .book-card:hover{box-shadow:0 0 34px rgba(209,47,69,.26),0 28px 78px rgba(0,0,0,.65);}
.shelf-flame{--shelf-title:#63ff9b;--shelf-glow:rgba(44,255,118,.28);border-color:rgba(44,255,118,.25);}
.coming-soon-card{
  cursor:default;
  opacity:.88;
}
.coming-soon-card:hover{
  transform:none;
}
.coming-soon-card small{
  display:block;
  margin-top:6px;
  text-align:center;
  color:rgba(245,234,209,.62);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:11px;
}
.coming-soon-cover{
  width:100%;
  aspect-ratio:2/3;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#080808;
  border:1px solid rgba(215,169,74,.25);
  box-shadow:0 18px 34px rgba(0,0,0,.35), inset 0 0 70px rgba(215,169,74,.06);
}
.coming-soon-cover span{
  margin:0;
  font-size:64px;
  color:rgba(245,220,174,.76);
  letter-spacing:.08em;
}
.celestial-placeholder{
  background:
    radial-gradient(circle at 52% 35%,rgba(215,169,74,.2),transparent 28%),
    radial-gradient(circle at 50% 68%,rgba(255,255,255,.06),transparent 18%),
    linear-gradient(180deg,#0a0a12,#030303);
}
.terrier-placeholder{
  background:
    radial-gradient(circle at 50% 40%,rgba(139,30,45,.30),transparent 30%),
    linear-gradient(180deg,#1a0609,#030303);
}
.flame-coming img{
  width:100%;
  aspect-ratio:2/3;
  object-fit:cover;
  border-radius:10px;
  border:1px solid rgba(53,255,106,.32);
  box-shadow:0 0 42px rgba(54,255,108,.18);
}
@media(max-width:850px){
  .shelf-heading{display:block;text-align:center;}
  .shelf-heading h3{margin-top:8px;}
  .trilogy-row,.two-book-row,.single-book{grid-template-columns:repeat(2,minmax(0,1fr));}
  .collection-shelf .book-card{max-width:none;}
}
@media(max-width:560px){
  .trilogy-row,.two-book-row,.single-book{grid-template-columns:1fr;}
  .collection-shelf{padding:22px 16px 24px;}
}


/* v1.2.1 — Library Name written by the Wisp as the doors open */
.hero .entry-greeting{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:9;
}
.writing-wisp{
  position:absolute;
  left:50%;
  top:38%;
  width:20px;
  height:20px;
  border-radius:50%;
  opacity:0;
  background:radial-gradient(circle at 34% 30%,#fffce2 0 12%,#fff1a6 24%,#e5bc51 48%,rgba(215,169,74,.28) 72%,transparent 78%);
  box-shadow:
    0 0 18px rgba(247,221,141,.95),
    0 0 44px rgba(215,169,74,.65),
    0 0 90px rgba(215,169,74,.34),
    -22px 8px 0 -8px rgba(247,221,141,.8),
    -43px -10px 0 -10px rgba(215,169,74,.7),
    -66px 9px 0 -12px rgba(247,221,141,.55);
  pointer-events:none;
  transform:translate(-50%,-50%) scale(.6);
}
body.doors-opening .entry-greeting{
  opacity:1;
  animation:greetingVanish 2.7s ease 7.65s forwards;
}
body.doors-opening .entry-greeting.writing-active .writing-wisp{
  animation:wispWritesName 5.75s cubic-bezier(.42,0,.18,1) 1.85s forwards;
}
body.doors-opening .entry-greeting.writing-active .greeting-main{
  animation:greetingWriteReveal 1.9s ease 3.05s forwards;
}
body.doors-opening .entry-greeting.writing-active .greeting-sub{
  animation:greetingWriteReveal 1.65s ease 4.55s forwards;
}
body.doors-opening .entry-greeting.writing-active:before,
body.doors-opening .entry-greeting.writing-active:after{
  animation:greetingParticles 5.6s ease 2.05s forwards;
}
@keyframes greetingWriteReveal{
  0%{opacity:0;filter:blur(14px);letter-spacing:.32em;transform:translateY(24px) scale(.9);clip-path:inset(0 100% 0 0)}
  45%{opacity:.95;filter:blur(3px);letter-spacing:.14em;clip-path:inset(0 22% 0 0)}
  100%{opacity:1;filter:blur(0);letter-spacing:.08em;transform:translateY(0) scale(1);clip-path:inset(0 0 0 0)}
}
@keyframes wispWritesName{
  0%{opacity:0;transform:translate(-260px,-84px) scale(.55)}
  10%{opacity:1;transform:translate(-210px,-96px) scale(.85)}
  24%{transform:translate(-112px,-72px) scale(1)}
  39%{transform:translate(8px,-90px) scale(.92)}
  54%{transform:translate(160px,-60px) scale(1.04)}
  67%{transform:translate(-150px,54px) scale(.9)}
  81%{transform:translate(92px,64px) scale(1.02)}
  91%{opacity:1;transform:translate(228px,38px) scale(.82)}
  100%{opacity:0;transform:translate(272px,-34px) scale(.35)}
}

/* Stronger themed door detail: black celestial archive doors with gold constellations. */
.door-panel{
  background:
    radial-gradient(circle at 50% 20%,rgba(247,221,141,.10),transparent 18%),
    radial-gradient(circle at 20% 30%,rgba(247,221,141,.35) 0 1px,transparent 2px),
    radial-gradient(circle at 34% 22%,rgba(247,221,141,.2) 0 1px,transparent 2px),
    radial-gradient(circle at 70% 34%,rgba(247,221,141,.22) 0 1px,transparent 2px),
    radial-gradient(circle at 82% 58%,rgba(247,221,141,.28) 0 1px,transparent 2px),
    radial-gradient(circle at 42% 72%,rgba(247,221,141,.2) 0 1px,transparent 2px),
    linear-gradient(115deg,transparent 0 17%,rgba(247,221,141,.09) 17.2% 17.6%,transparent 18% 100%),
    linear-gradient(72deg,transparent 0 58%,rgba(247,221,141,.07) 58.2% 58.6%,transparent 59% 100%),
    linear-gradient(90deg,rgba(0,0,0,.56),transparent 22%,rgba(212,163,74,.09) 50%,rgba(0,0,0,.62)),
    repeating-linear-gradient(90deg,rgba(255,220,130,.055) 0 1px,transparent 1px 72px),
    repeating-linear-gradient(0deg,transparent 0 56px,rgba(215,169,74,.085) 57px 58px,transparent 59px 128px),
    linear-gradient(180deg,#010102,#090504 42%,#020101);
}
.door-panel:before{
  border:1px solid rgba(247,221,141,.5);
  box-shadow:inset 0 0 0 1px rgba(255,237,179,.09),0 0 26px rgba(215,169,74,.18), inset 0 0 34px rgba(0,0,0,.38);
}
.door-seal img{
  filter:drop-shadow(0 0 18px rgba(247,221,141,.42));
}
@media(max-width:650px){
  @keyframes wispWritesName{
    0%{opacity:0;transform:translate(-150px,-78px) scale(.55)}
    12%{opacity:1;transform:translate(-118px,-88px) scale(.85)}
    30%{transform:translate(-54px,-68px) scale(1)}
    48%{transform:translate(64px,-76px) scale(.95)}
    66%{transform:translate(-82px,52px) scale(.9)}
    84%{transform:translate(72px,58px) scale(1)}
    100%{opacity:0;transform:translate(132px,-20px) scale(.35)}
  }
}


/* Library Update 2.1 seed — Light-brarian thought bubbles over Story Room thumbnails */
.lightbrarian-thought{
  position:fixed;
  z-index:90;
  transform:translate(-50%,-100%) scale(.92);
  max-width:min(310px,82vw);
  padding:14px 18px 15px;
  border-radius:18px 18px 18px 6px;
  border:1px solid rgba(255,226,151,.72);
  background:
    radial-gradient(circle at 18% 0%,rgba(255,244,190,.22),transparent 38%),
    linear-gradient(135deg,rgba(41,25,7,.93),rgba(12,9,5,.9));
  color:#ffe9af;
  font-family:Georgia,'Times New Roman',serif;
  font-size:15px;
  line-height:1.35;
  letter-spacing:.02em;
  text-align:center;
  box-shadow:0 18px 46px rgba(0,0,0,.55),0 0 34px rgba(215,169,74,.22),inset 0 0 24px rgba(255,225,142,.08);
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease, transform .34s cubic-bezier(.16,1,.3,1);
}
.lightbrarian-thought:before{
  content:"";
  position:absolute;
  inset:5px;
  border-radius:14px 14px 14px 4px;
  border:1px solid rgba(255,232,167,.16);
}
.lightbrarian-thought:after{
  content:"✦";
  position:absolute;
  right:12px;
  top:-12px;
  color:#ffe6a3;
  font-size:14px;
  text-shadow:0 0 16px rgba(255,226,142,.8);
  animation:thoughtStar 1.8s ease-in-out infinite;
}
.lightbrarian-thought.open{
  opacity:1;
  transform:translate(-50%,-108%) scale(1);
}
.lightbrarian-thought .thought-dots{
  display:none;
  letter-spacing:.28em;
  font-size:20px;
  color:#fff1bd;
  text-shadow:0 0 18px rgba(255,226,151,.72);
}
.lightbrarian-thought.thinking .thought-dots{display:inline-block;animation:thinkingDots .9s ease-in-out infinite;}
.lightbrarian-thought.thinking .thought-text{display:none;}
.lightbrarian-thought .thought-text{position:relative;z-index:1;}
.world-trigger.wisp-listening{
  box-shadow:0 0 36px rgba(255,218,126,.28),0 26px 80px rgba(0,0,0,.64);
}
.world-trigger.wisp-listening img{filter:saturate(1.08) brightness(1.08);}
@keyframes thinkingDots{0%,100%{opacity:.45;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}
@keyframes thoughtStar{0%,100%{opacity:.35;transform:translateY(0) rotate(0deg)}50%{opacity:1;transform:translateY(-3px) rotate(18deg)}}
@media(max-width:650px){
  .lightbrarian-thought{font-size:14px;max-width:78vw;padding:12px 15px;}
}

/* Library Update 3.0 — The Library Opens the Books */
.reading-collection-grid .reading-volume{position:relative;text-decoration:none;overflow:hidden;}
.reading-volume small{display:block;text-align:center;color:rgba(245,234,209,.68);font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-top:6px;}
.reading-volume:after{content:"";position:absolute;inset:10px;border-radius:14px;border:1px solid rgba(247,221,141,0);pointer-events:none;transition:.35s ease;}
.reading-volume:hover:after,.reading-volume.volume-listening:after{border-color:rgba(247,221,141,.55);box-shadow:inset 0 0 28px rgba(247,221,141,.14);}
.reading-volume.volume-listening img{filter:brightness(1.08) saturate(1.05);transform:perspective(900px) rotateY(-4deg) translateY(-2px);}
.reading-modal{position:fixed;inset:0;z-index:140;display:none;align-items:center;justify-content:center;padding:24px;}
.reading-modal.open{display:flex;}
body.reading-open{overflow:hidden;}
.reading-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,rgba(58,41,13,.35),rgba(0,0,0,.9) 64%);backdrop-filter:blur(8px);}
.reading-book{position:relative;z-index:1;width:min(1120px,96vw);max-height:90vh;display:grid;grid-template-columns:minmax(230px,360px) minmax(0,1fr);gap:28px;padding:26px;border-radius:22px;background:linear-gradient(135deg,rgba(8,7,5,.94),rgba(18,12,5,.9));border:1px solid rgba(215,169,74,.5);box-shadow:0 36px 120px rgba(0,0,0,.86),0 0 60px rgba(215,169,74,.14);animation:bookRises .42s ease both;overflow:hidden;}
.reading-book:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 8%,rgba(247,221,141,.18),transparent 32%),linear-gradient(90deg,transparent,rgba(255,255,255,.03),transparent);pointer-events:none;}
.reading-cover-wrap{position:relative;align-self:center;z-index:1;}
.reading-cover-img{width:100%;max-height:66vh;object-fit:contain;border-radius:14px;background:#050505;box-shadow:0 25px 70px rgba(0,0,0,.65),0 0 35px rgba(215,169,74,.18);transform-origin:left center;animation:coverOpens .9s cubic-bezier(.16,1,.3,1) both;}
.reading-wisp-line{margin:16px auto 0;padding:12px 14px;border:1px solid rgba(215,169,74,.38);border-radius:999px;background:rgba(0,0,0,.35);color:var(--gold2);font-style:italic;text-align:center;box-shadow:0 0 28px rgba(215,169,74,.12);}
.reading-page{position:relative;z-index:1;max-height:76vh;overflow:auto;padding:34px 38px;border-radius:18px;color:#24190c;background:linear-gradient(180deg,rgba(253,242,210,.98),rgba(233,207,151,.96));border:1px solid rgba(247,221,141,.55);box-shadow:inset 0 0 40px rgba(92,53,8,.18),0 24px 70px rgba(0,0,0,.45);}
.reading-page:before{content:"";position:absolute;inset:12px;border:1px solid rgba(114,71,16,.25);border-radius:12px;pointer-events:none;}
.reading-page .eyebrow{color:#7b5115;margin-bottom:10px;}
.reading-page h2{font-size:clamp(36px,5vw,62px);line-height:.94;margin:0 0 8px;color:#33200b;text-shadow:none;}
.reading-subtitle{font-family:Georgia,'Times New Roman',serif;color:#68440e;font-style:italic;margin-top:0;margin-bottom:22px;}
.reading-text{font-family:Georgia,'Times New Roman',serif;font-size:18px;line-height:1.72;color:#24190c;}
.reading-text p{margin:0 0 18px;}
.first-reading-line:first-letter{float:left;font-size:4.6em;line-height:.8;padding:.08em .12em 0 0;color:#8d5d16;font-weight:bold;}
.reading-closing{margin:22px 0 16px;padding-top:18px;border-top:1px solid rgba(114,71,16,.25);font-style:italic;color:#6d4711;text-align:center;}
.reading-amazon{display:inline-flex;margin:4px auto 0;}
.reading-close{position:absolute;top:12px;right:16px;z-index:3;border:0;background:rgba(0,0,0,.42);color:var(--gold2);font-size:34px;line-height:1;border-radius:999px;width:44px;height:44px;cursor:pointer;}
.reading-close:hover{background:rgba(215,169,74,.18);}
.reading-book.moonlight-read{box-shadow:0 36px 120px rgba(0,0,0,.86),0 0 80px rgba(247,221,141,.18);}
.reading-book.shadow-read{background:linear-gradient(135deg,rgba(2,2,4,.96),rgba(7,7,10,.94));border-color:rgba(196,196,210,.45);}
.reading-book.shadow-read .reading-page{background:linear-gradient(180deg,rgba(232,226,211,.98),rgba(190,184,173,.96));}
.reading-book.queen-read{border-color:rgba(65,106,191,.6);box-shadow:0 36px 120px rgba(0,0,0,.86),0 0 70px rgba(33,75,178,.22);}
.reading-book.twelve-read{border-color:rgba(196,143,74,.58);}
.reading-book.terriers-read{border-color:rgba(139,30,45,.7);box-shadow:0 36px 120px rgba(0,0,0,.86),0 0 70px rgba(139,30,45,.16);}
.reading-book.flame-read{border-color:rgba(40,255,115,.58);box-shadow:0 36px 120px rgba(0,0,0,.86),0 0 70px rgba(40,255,115,.17);}
@keyframes bookRises{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes coverOpens{0%{transform:perspective(900px) rotateY(0deg)}60%{transform:perspective(900px) rotateY(-8deg)}100%{transform:perspective(900px) rotateY(-4deg)}}
@media(max-width:850px){.reading-modal{padding:10px}.reading-book{grid-template-columns:1fr;gap:16px;max-height:94vh;overflow:auto;padding:18px}.reading-cover-img{max-height:36vh}.reading-page{max-height:none;padding:28px 22px}.reading-text{font-size:16px}.reading-wisp-line{font-size:14px}.reading-close{top:8px;right:8px}}

/* Mobile gallery hotfix: keep pinch/drag inside the image lightbox so phones don't refresh/restart the page */
.image-lightbox{
  touch-action:none;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:auto;
}
.image-lightbox-img{
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  -webkit-user-drag:none;
  transform-origin:center center;
  transition:transform .18s ease;
  will-change:transform;
}
.image-lightbox.is-zooming .image-lightbox-img,
.image-lightbox.is-dragging .image-lightbox-img{
  transition:none;
}
.image-lightbox-help{
  position:fixed;
  z-index:3;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  padding:7px 13px;
  border:1px solid rgba(215,169,74,.42);
  border-radius:999px;
  background:rgba(0,0,0,.58);
  color:rgba(245,234,209,.78);
  font-size:12px;
  letter-spacing:.08em;
  pointer-events:none;
}
@media(max-width:850px){
  .image-lightbox-help{bottom:12px;font-size:11px;max-width:88vw;text-align:center;}
}

/* Library Update: doors answer the reader's touch */
body.doors-opening .library-doors{cursor:pointer;pointer-events:auto;}
body.doors-opening .library-doors::after{
  content:none;
  position:absolute;
  left:50%;bottom:6.5vh;
  transform:translateX(-50%);
  color:rgba(247,221,141,.78);
  font:12px/1.2 Georgia,'Times New Roman',serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  opacity:.72;
  text-shadow:0 0 14px rgba(215,169,74,.5);
  pointer-events:none;
  animation:doorHintPulse 1.9s ease-in-out infinite;
}
body.doors-fast-forward .library-doors::after{content:none;}
body.doors-fast-forward .door-panel{
  animation:none!important;
  transition:transform .85s cubic-bezier(.16,1,.3,1), opacity .85s ease, filter .85s ease;
  filter:brightness(1.22);
}
body.doors-fast-forward .door-left{transform:perspective(1100px) translateX(-78vw) rotateY(-72deg)!important;}
body.doors-fast-forward .door-right{transform:perspective(1100px) translateX(78vw) rotateY(72deg)!important;}
body.doors-fast-forward .door-seal{animation:none!important;opacity:0!important;transition:opacity .35s ease;}
body.doors-fast-forward .entry-greeting{animation:greetingVanish .85s ease .75s forwards!important;}
@keyframes doorHintPulse{0%,100%{opacity:.38;transform:translateX(-50%) translateY(0)}50%{opacity:.85;transform:translateX(-50%) translateY(-3px)}}

/* Library Update 3.1 — The Living Library polish */
.hero::after,
.worlds::after,
.author::after,
.published::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.22;
  background:
    radial-gradient(ellipse at 18% 16%, rgba(247,221,141,.18), transparent 28%),
    radial-gradient(ellipse at 78% 20%, rgba(255,255,255,.10), transparent 24%),
    linear-gradient(105deg, transparent 0 42%, rgba(247,221,141,.07) 48%, transparent 57%);
  mix-blend-mode:screen;
  animation:moonRaysDrift 18s ease-in-out infinite alternate;
}
@keyframes moonRaysDrift{
  from{transform:translate3d(-1%,0,0) scale(1);opacity:.16}
  to{transform:translate3d(1.5%,-1%,0) scale(1.03);opacity:.28}
}


.collection-shelf{
  box-shadow:0 26px 80px rgba(0,0,0,.55), inset 0 -18px 40px rgba(0,0,0,.22), 0 1px 0 rgba(255,255,255,.04);
}
.collection-shelf::after{
  content:"";
  position:absolute;
  left:22px;right:22px;bottom:18px;height:10px;
  border-radius:50%;
  background:radial-gradient(ellipse, rgba(0,0,0,.48), transparent 70%);
  pointer-events:none;
}
.book-card,.full-cover-card{position:relative;overflow:hidden;}
.book-card::after,.full-cover-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,transparent 0 34%,rgba(247,221,141,.18) 48%,transparent 62%);
  transform:translateX(-130%);
  transition:transform .9s cubic-bezier(.16,1,.3,1);
}
.book-card:hover::after,.book-card.wisp-glimmer::after,.full-cover-card:hover::before,.full-cover-card.wisp-glimmer::before{transform:translateX(130%)}
.wisp-glimmer{box-shadow:0 0 36px rgba(247,221,141,.28),0 22px 70px rgba(0,0,0,.62)!important;}

.curator-portrait-card.curator-excited{
  transform:translateY(-8px) scale(1.012);
  box-shadow:0 48px 130px rgba(0,0,0,.78),0 0 76px rgba(247,221,141,.34),0 0 130px rgba(215,169,74,.16);
}
.curator-portrait-card.curator-excited::before{animation:curatorFramePulse 1.4s ease-in-out infinite alternate;}
.curator-portrait-card.curator-excited::after{transform:translateX(80%) rotate(8deg);opacity:.75;}
@keyframes curatorFramePulse{
  from{box-shadow:inset 0 0 0 1px rgba(255,237,179,.10),0 0 26px rgba(215,169,74,.22)}
  to{box-shadow:inset 0 0 0 1px rgba(255,237,179,.22),0 0 58px rgba(247,221,141,.42)}
}
.guiding-orb.curator-orbiting .orb-core{animation-duration:1.15s;}
.guiding-orb.excited .orb-halo{opacity:1;filter:saturate(1.25);}

.lightbrarian-thought{
  max-width:min(310px,80vw);
  box-shadow:0 18px 60px rgba(0,0,0,.62),0 0 32px rgba(215,169,74,.18);
}
.lightbrarian-thought.open .thought-text{animation:thoughtWrites .55s ease both;}
@keyframes thoughtWrites{from{opacity:0;filter:blur(3px);transform:translateY(4px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}

.reading-page{scrollbar-color:#9b6b23 rgba(255,255,255,.12);scrollbar-width:thin;}
.reading-page::-webkit-scrollbar{width:10px}.reading-page::-webkit-scrollbar-thumb{background:#9b6b23;border-radius:999px}.reading-page::-webkit-scrollbar-track{background:rgba(0,0,0,.08)}
.reading-book::after{
  content:"";
  position:absolute;
  inset:-30%;
  background:radial-gradient(circle at 30% 30%,rgba(247,221,141,.08),transparent 28%);
  pointer-events:none;
  animation:readingGlowBreath 5s ease-in-out infinite alternate;
}
@keyframes readingGlowBreath{from{opacity:.25;transform:scale(.95)}to{opacity:.55;transform:scale(1.05)}}

.closing-line p em{display:block;margin-top:8px;color:rgba(247,221,141,.92);font-style:italic;letter-spacing:.04em;text-transform:none;}

@media(max-width:850px){
  .gold-button,.book-card,.full-cover-card,.world-trigger,.reading-volume{touch-action:manipulation;}
  .modal-archives{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;}
  .archive-thumb{scroll-snap-align:center;min-width:120px;}
  .lightbrarian-thought{font-size:13px;max-width:76vw;}
  .collection-shelf::after{left:10px;right:10px;}
  .hero::after,.worlds::after,.author::after,.published::after{opacity:.14}
}


/* Library Update 3.1.1 — Mobile-safe living effects + Light-brarian welcome writing */
body.doors-opening .entry-greeting.writing-active .greeting-main,
body.doors-opening .entry-greeting.writing-active .greeting-sub{
  overflow:hidden;
  white-space:nowrap;
  margin-left:auto;
  margin-right:auto;
  max-width:100%;
}
body.doors-opening .entry-greeting.writing-active .greeting-main{
  animation:greetingWriteReveal 1.9s steps(var(--greeting-chars, 18), end) 3.05s forwards;
}
body.doors-opening .entry-greeting.writing-active .greeting-sub{
  animation:greetingWriteReveal 1.65s steps(var(--greeting-sub-chars, 18), end) 4.55s forwards;
}
.library-doors:hover .door-glow{opacity:1;filter:blur(.4px) drop-shadow(0 0 8px rgba(247,221,141,.85));}
body.doors-opening .library-doors::after,
body.doors-fast-forward .library-doors::after{display:none!important;content:none!important;}

@media(max-width:850px){
  html,body{max-width:100%;overflow-x:hidden;}
  body::before{display:none!important;}
  .hero::after,.worlds::after,.author::after,.published::after{animation:none!important;opacity:.10!important;}
  .guiding-orb{mix-blend-mode:normal;}
  .orb-trail,.orb-spark{display:none!important;}
  .book-card:hover,.book-card:nth-child(even):hover,.full-cover-card:hover{transform:none;}
  .book-card:hover img{transform:none;}
  .entry-greeting{width:94vw;top:47%;}
  .greeting-main{font-size:clamp(26px,8vw,42px);white-space:normal!important;line-height:1.08;}
  .greeting-sub{font-size:clamp(17px,5vw,24px);white-space:normal!important;}
  body.doors-opening .entry-greeting.writing-active .greeting-main,
  body.doors-opening .entry-greeting.writing-active .greeting-sub{
    animation:greetingWriteReveal 1.2s ease forwards;
  }
  body.doors-opening .entry-greeting.writing-active .greeting-sub{animation-delay:4.1s;}
  body.doors-opening .entry-greeting.writing-active .greeting-main{animation-delay:2.9s;}
  .world-modal.open,.image-lightbox.open,.reading-modal.open{overscroll-behavior:contain;}
  .modal-card{max-height:92vh;overflow:auto;-webkit-overflow-scrolling:touch;}
  .modal-archives{overscroll-behavior-x:contain;}
  .image-lightbox{touch-action:none;}
  .image-lightbox img{max-width:94vw;max-height:82vh;}
}


/* Library Update 3.1.2 — The Library Reveals Itself */
.library-reveal{
  opacity:0;
  transform:translateY(34px) scale(.985);
  filter:blur(5px);
  transition:
    opacity 1.05s ease,
    transform 1.05s cubic-bezier(.16,1,.3,1),
    filter 1.05s ease;
  transition-delay:var(--reveal-delay,0ms);
  will-change:opacity,transform,filter;
}
.library-reveal.revealed{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:blur(0);
}
.section-panel.library-reveal{
  transform:translateY(46px) scale(.99);
}
.collection-shelf.library-reveal,
.glass-card.library-reveal,
.curator-portrait-card.library-reveal,
.curator-copy.library-reveal,
.reading-volume.library-reveal,
.full-cover-card.library-reveal,
.book-card.library-reveal{
  transform:translateY(28px) scale(.98);
}
.collection-shelf.library-reveal.revealed,
.glass-card.library-reveal.revealed,
.curator-portrait-card.library-reveal.revealed,
.curator-copy.library-reveal.revealed,
.reading-volume.library-reveal.revealed,
.full-cover-card.library-reveal.revealed,
.book-card.library-reveal.revealed{
  transform:translateY(0) scale(1);
}
.library-reveal.revealed:hover{
  filter:blur(0);
}
@media (prefers-reduced-motion: reduce){
  .library-reveal,
  .library-reveal.revealed{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    transition:none!important;
  }
}
@media(max-width:850px){
  .library-reveal{
    transform:translateY(20px) scale(.995);
    filter:blur(2px);
    transition-duration:.72s;
  }
  .section-panel.library-reveal,
  .collection-shelf.library-reveal,
  .glass-card.library-reveal,
  .curator-portrait-card.library-reveal,
  .curator-copy.library-reveal,
  .reading-volume.library-reveal,
  .full-cover-card.library-reveal,
  .book-card.library-reveal{
    transform:translateY(18px) scale(.995);
  }
  .section-panel.library-reveal.revealed,
  .collection-shelf.library-reveal.revealed,
  .glass-card.library-reveal.revealed,
  .curator-portrait-card.library-reveal.revealed,
  .curator-copy.library-reveal.revealed,
  .reading-volume.library-reveal.revealed,
  .full-cover-card.library-reveal.revealed,
  .book-card.library-reveal.revealed{
    transform:translateY(0) scale(1);
  }
}


/* v5 Story Rooms Hall */
.story-doorway{position:relative;overflow:hidden;background:radial-gradient(circle at 70% 30%,rgba(210,170,90,.18),transparent 36%),linear-gradient(135deg,rgba(9,11,20,.96),rgba(25,18,32,.92));}
.story-door-layout{align-items:center;}
.story-door-card{position:relative;display:block;min-height:360px;border:1px solid rgba(218,176,93,.6);border-radius:24px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.55),0 0 30px rgba(218,176,93,.14);text-decoration:none;color:#f6e7c0;background:#090b13;}
.story-door-card img{width:100%;height:100%;min-height:360px;object-fit:cover;display:block;filter:brightness(.82) contrast(1.05);transform:scale(1.02);transition:transform .8s ease,filter .8s ease;}
.story-door-card:hover img{transform:scale(1.07);filter:brightness(1) contrast(1.08);}
.story-door-light{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 50% 45%,rgba(255,220,140,.36),transparent 25%),linear-gradient(90deg,transparent,rgba(255,225,155,.22),transparent);opacity:.65;transition:opacity .5s ease;pointer-events:none;}
.story-door-card:hover .story-door-light{opacity:1;}
.story-door-caption{position:absolute;z-index:2;left:24px;right:24px;bottom:22px;padding:14px 16px;border:1px solid rgba(218,176,93,.42);border-radius:16px;background:rgba(5,7,14,.66);backdrop-filter:blur(8px);font-family:Georgia,serif;color:#ffe3a3;text-align:center;}
.story-door-button{margin-top:20px;}
.story-rooms-page{background:#090b13;color:#f7ead1;}
.story-rooms-page .site-header{opacity:1;transform:none;}
.story-rooms-content{padding-top:96px;}
.story-rooms-page .worlds{min-height:100vh;}
@media(max-width:800px){.story-door-card,.story-door-card img{min-height:260px}.story-door-caption{font-size:14px;left:14px;right:14px;bottom:14px}.story-rooms-content{padding-top:78px}}

/* v5.0.2 Story Rooms return path */
.return-library-ribbon{
  position:fixed;
  top:82px;
  left:24px;
  z-index:45;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 15px;
  border:1px solid rgba(218,176,93,.55);
  border-radius:999px;
  background:rgba(5,7,14,.72);
  color:#ffe3a3;
  font-family:Georgia,serif;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 12px 32px rgba(0,0,0,.28),0 0 18px rgba(218,176,93,.12);
  backdrop-filter:blur(10px);
  transition:transform .35s ease,background .35s ease,border-color .35s ease,color .35s ease;
}
.return-library-ribbon:hover{
  transform:translateY(-2px);
  background:rgba(19,15,28,.86);
  border-color:rgba(255,218,134,.85);
  color:#fff1c9;
}
.return-symbol{font-size:16px;line-height:1;}
.story-rooms-page .story-rooms-content{padding-top:126px;}
@media(max-width:800px){
  .return-library-ribbon{
    top:72px;
    left:12px;
    right:12px;
    justify-content:center;
    padding:9px 12px;
    font-size:11px;
  }
  .story-rooms-page .story-rooms-content{padding-top:122px;}
}

/* v5.1 Library Architecture */
.library-page .site-header{opacity:1;pointer-events:auto;transform:none;}
.library-page .ambience-toggle{opacity:1;pointer-events:auto;}
.library-page .library-content{display:block;}
.library-page .section-panel:first-child{padding-top:120px;}
.entrance-only .entry-note{min-height:1em;}
