/* The.Books of library entrance */
.books-library-top .nav a[aria-current="page"]{background:var(--gold-soft);color:var(--ink)}
.books-library .brand{max-width:none}.books-library .brand-series{font-size:.63rem}.books-library .footer-series{color:var(--gold)}
.books-hero{max-width:1280px;margin:auto;padding:clamp(3.5rem,9vw,8rem) clamp(1rem,6vw,5rem) 2.5rem}.books-hero h1{max-width:18ch;font-size:clamp(.9rem,4.25vw,3.25rem);letter-spacing:normal;line-height:1.02}.books-hero .lead{max-width:760px;font-size:clamp(1.08rem,2.5vw,1.45rem);color:var(--muted)}
.books-hero-actions,.book-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}.library-principles{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:2rem}.library-principles > span,.book-meta > span,.book-state{display:inline-flex;align-items:center;border:1px solid rgba(201,162,39,.36);border-radius:999px;padding:.28rem .6rem;color:var(--gold);background:rgba(201,162,39,.08);font-size:.73rem;font-weight:850;letter-spacing:.05em}
.books-wrap{padding-bottom:5rem}.books-intro{margin-top:0}.books-intro h2{font-size:clamp(1.65rem,3vw,2.6rem);margin:.2rem 0 .8rem}.library-status{display:grid;align-content:start;gap:.4rem}.library-status strong{color:var(--gold);font-size:4rem;line-height:.9}.library-status > span{text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;font-weight:800}.library-status p{margin:.45rem 0 0}
.books-catalog{margin-top:4rem}.books-catalog .section-title{align-items:end}.book-shelf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.book-card{display:grid;grid-template-columns:88px minmax(0,1fr);min-height:300px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);box-shadow:var(--shadow)}.book-card.published{background:linear-gradient(135deg,rgba(201,162,39,.15),rgba(255,255,255,.055));border-color:rgba(201,162,39,.46)}.book-card.future{background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.025))}.book-spine{display:flex;flex-direction:column;justify-content:space-between;padding:1rem .7rem;border-right:1px solid var(--line);background:rgba(0,0,0,.18);color:var(--muted);font-size:.7rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.book-spine span:first-child{color:var(--gold);font-size:1rem}.book-card-content{display:flex;flex-direction:column;padding:1.35rem}.book-card-content h3{font-size:clamp(1.3rem,2.5vw,2rem);margin:0 0 .7rem}.book-card-content p:not(.eyebrow){margin:0;color:var(--muted);max-width:48ch}.book-meta{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:1rem}.book-actions{margin-top:auto}.book-card.compact{min-height:230px}.book-card.compact .book-card-content h3{font-size:1.35rem}.book-state{margin-top:auto;align-self:flex-start;color:var(--muted);border-color:var(--line);background:rgba(255,255,255,.04)}
.books-note{margin-top:4rem;padding:clamp(1.5rem,4vw,3rem);border:1px solid rgba(201,162,39,.35);border-radius:var(--radius);background:linear-gradient(135deg,rgba(201,162,39,.13),rgba(255,255,255,.04))}.books-note h2{font-size:clamp(1.65rem,3vw,2.7rem);margin:.2rem 0 .7rem}.books-note p:last-child{max-width:780px;margin:0;color:var(--muted)}
@media(max-width:900px){.book-shelf{grid-template-columns:1fr}.books-catalog .section-title{display:block}.books-catalog .section-title p{margin-top:.5rem}}@media(max-width:540px){.books-hero{padding-top:2.75rem}.book-card{grid-template-columns:62px minmax(0,1fr)}.book-spine{padding:.85rem .45rem;font-size:.61rem}.book-card-content{padding:1.05rem}}

/* @RJS? dot language: internal dots and bullets are gold; terminal dots inherit. */
.books-library .dot-separator,
.books-library .bullet-separator,
.books-library .dot-initial{color:var(--gold)}
.books-library .dot-terminal{color:inherit}
.books-library .dot-separator,
.books-library .bullet-separator,
.books-library .dot-initial,
.books-library .dot-terminal{display:inline}
/* Library card and action refinements. */
.books-library .btn{gap:0}
.books-library .book-spine{justify-content:flex-start}

/* =========================================================
   THE.BOOKS OF — SHARED SECTION TITLE LOCK
   Source of truth across The.Library, The.Legal Edition,
   and The.Powerblum Edition.
   ========================================================= */
:root {
  --books-section-title-size: clamp(1.85rem, 3.25vw, 2.75rem);
}
h2,
.section-title h2,
.books-intro h2,
.books-note h2,
.section-heading h2,
.record-intro h2,
.framework-heading h2,
.boundary-heading h2,
.record-map-header h2,
.cover-copy h2,
.next-movement h2 {
  font-size: var(--books-section-title-size) !important;
  line-height: 1.08 !important;
}

/* The.Jimtionary hall-door splash — mirrored from the established hallway-door system. */
body.splash-active{overflow:hidden;}

.jimtionary-room-splash{
  position:fixed;
  z-index:10000;
  inset:0;
  display:grid;
  place-items:center;
  background:#050608;
  opacity:1;
  transition:opacity .6s ease,visibility .6s ease;
}

.jimtionary-room-splash.is-finished{
  visibility:hidden;
  opacity:0;
}

.jimtionary-room-hall{
  position:relative;
  display:grid;
  width:100%;
  height:100%;
  place-items:center;
  overflow:hidden;
  perspective:1500px;
  background:
    linear-gradient(90deg,rgba(0,0,0,.62),transparent 22%,transparent 78%,rgba(0,0,0,.62)),
    repeating-linear-gradient(90deg,#16191d 0 2px,#20242a 2px 90px),
    linear-gradient(#101318 0 72%,#17120e 72% 100%);
}

.jimtionary-room-hall-layout{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:minmax(270px,390px) minmax(360px,720px);
  align-items:center;
  justify-content:center;
  gap:clamp(48px,8vw,140px);
  width:min(1320px,92vw);
  height:min(88vh,820px);
  padding:clamp(24px,4vw,54px);
}

.jimtionary-room-door-column{
  display:grid;
  justify-items:center;
  align-content:center;
  gap:clamp(22px,3vh,34px);
  height:100%;
}

.jimtionary-room-hall::after{
  content:"";
  position:absolute;
  z-index:0;
  left:-10%;
  right:-10%;
  bottom:-22%;
  height:48%;
  background:repeating-linear-gradient(100deg,#2b2118 0 3px,#110d0a 3px 52px);
  transform:perspective(600px) rotateX(58deg);
  transform-origin:bottom;
}

.jimtionary-room-hall-mark{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 10px 22px rgba(0,0,0,.9));
}

.jimtionary-room-wall-banner{
  position:relative;
  align-self:start;
  justify-self:start;
  width:min(34vw,470px);
  margin:clamp(72px,11vh,112px) 0 0 clamp(-34px,-2vw,-12px);
  padding:clamp(8px,.9vw,12px);
  border:clamp(6px,.75vw,9px) solid #17191b;
  border-radius:4px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.055),transparent 28%),
    #050607;
  box-shadow:
    0 0 0 2px #4b3b16,
    0 0 0 5px #090a0b,
    0 28px 55px rgba(0,0,0,.68),
    inset 0 0 22px rgba(201,162,39,.08);
  transform:perspective(1000px) rotateY(-2.5deg);
}

.jimtionary-room-wall-banner::before{
  content:"";
  position:absolute;
  inset:-20% -12%;
  z-index:-1;
  background:radial-gradient(ellipse at 50% 45%,rgba(201,162,39,.12),transparent 64%);
  filter:blur(7px);
}

.jimtionary-room-picture-light{
  position:absolute;
  left:50%;
  top:calc(-1 * clamp(42px,5vw,62px));
  width:clamp(110px,15vw,190px);
  height:clamp(35px,4vw,48px);
  border-radius:8px 8px 3px 3px;
  background:linear-gradient(#8e9295 0 20%,#303438 42%,#0b0d0f 75%,#f3d27a 78% 100%);
  box-shadow:
    0 5px 20px rgba(0,0,0,.75),
    0 8px 18px rgba(255,218,126,.48),
    0 11px 34px rgba(255,207,89,.35);
  transform:translateX(-50%);
}

.jimtionary-room-picture-light::before{
  content:"";
  position:absolute;
  left:12%;
  right:12%;
  bottom:-5px;
  height:8px;
  border-radius:50%;
  background:#fff0b8;
  box-shadow:0 0 12px 5px #ffe09a,0 0 28px 12px rgba(255,207,89,.62);
}

.jimtionary-room-picture-light::after{
  content:"";
  position:absolute;
  left:-70%;
  right:-70%;
  top:75%;
  height:190px;
  background:conic-gradient(from 156deg at 50% 0,transparent 0 27%,rgba(255,232,174,.36) 36% 64%,transparent 73% 100%);
  filter:blur(7px);
  pointer-events:none;
}

.jimtionary-room-door-stage{
  position:relative;
  z-index:3;
  width:min(46vw,390px);
  aspect-ratio:.58;
  margin:0;
  border:9px solid #16130d;
  border-radius:7px 7px 3px 3px;
  background:#08090a;
  box-shadow:
    0 0 0 3px #050505,
    0 0 0 7px #c9a227,
    0 0 22px 8px rgba(201,162,39,.58),
    0 30px 50px rgba(0,0,0,.72);
  animation:jimtionaryDoorFramePulse 2.3s ease-in-out infinite;
}

.jimtionary-room-door-reveal{
  position:absolute;
  inset:0;
  display:block;
  overflow:hidden;
  background:#07090b;
}

.jimtionary-room-door-reveal::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(0,0,0,.27),transparent 23%,transparent 77%,rgba(0,0,0,.24)),
    linear-gradient(transparent 72%,rgba(0,0,0,.18));
  box-shadow:inset 0 0 24px rgba(0,0,0,.72);
}

.jimtionary-room-interior-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.025);
  filter:saturate(.94) contrast(1.04) brightness(.92);
}

.jimtionary-room-door{
  position:absolute;
  z-index:4;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  color:#f2dda0;
  background:linear-gradient(100deg,#080808,#252019 12%,#0d0c0a 52%,#030303);
  box-shadow:inset 0 0 0 3px #020202,inset 0 0 28px #000;
  cursor:pointer;
  transform:rotateY(0);
  transform-origin:left center;
  transform-style:preserve-3d;
  transition:transform 1.15s cubic-bezier(.2,.75,.18,1),filter .4s ease;
}

.jimtionary-room-door:hover,
.jimtionary-room-door:focus-visible{filter:brightness(1.16);outline:none;}
.jimtionary-room-door:focus-visible{box-shadow:inset 0 0 0 3px #020202,inset 0 0 28px #000,0 0 0 3px rgba(240,201,70,.82);}
.jimtionary-room-splash.is-opening .jimtionary-room-door{transform:rotateY(-108deg);}

.jimtionary-room-door-panel{
  position:absolute;
  left:13%;
  right:13%;
  border:2px solid #020202;
  background:linear-gradient(145deg,#242019,#080706);
  box-shadow:inset 0 0 0 3px rgba(201,162,39,.035),inset 0 0 16px #000;
}

.jimtionary-room-door-panel.top{top:10%;height:23%;}
.jimtionary-room-door-panel.middle{top:39%;height:23%;}
.jimtionary-room-door-panel.bottom{bottom:9%;height:23%;}

.jimtionary-room-door-handle{
  position:absolute;
  z-index:3;
  top:51%;
  right:8%;
  width:20px;
  height:20px;
  border:3px solid #8b6b14;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff3ad,#c9a227 34%,#493500 72%);
  box-shadow:0 0 9px 4px #c9a227,0 0 24px 8px rgba(201,162,39,.65);
  animation:jimtionaryHandlePulse 1.2s ease-in-out infinite;
}

.jimtionary-room-enter-copy{
  position:relative;
  z-index:4;
  margin:0;
  color:#dce2e5;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

@keyframes jimtionaryDoorFramePulse{
  50%{box-shadow:0 0 0 3px #050505,0 0 0 7px #f0c946,0 0 35px 13px rgba(201,162,39,.78),0 30px 50px rgba(0,0,0,.72);}
}
@keyframes jimtionaryHandlePulse{
  50%{transform:scale(1.15);box-shadow:0 0 13px 7px #f0c946,0 0 34px 13px rgba(201,162,39,.8);}
}

@media(max-width:860px){
  .jimtionary-room-hall-layout{grid-template-columns:minmax(230px,320px) minmax(190px,1fr);gap:clamp(18px,4vw,42px);width:96vw;padding-inline:18px;}
  .jimtionary-room-door-stage{width:min(38vw,310px);}
  .jimtionary-room-wall-banner{width:min(38vw,350px);margin-top:clamp(76px,12vh,108px);margin-left:-18px;padding:8px;}
}

@media(max-width:640px){
  .jimtionary-room-hall-layout{grid-template-columns:minmax(180px,1fr) minmax(105px,145px);grid-template-rows:1fr;align-items:center;gap:12px;height:96vh;padding:14px;}
  .jimtionary-room-door-column{gap:14px;min-height:0;}
  .jimtionary-room-door-stage{width:min(54vw,245px);max-height:68vh;}
  .jimtionary-room-enter-copy{font-size:.56rem;text-align:center;}
  .jimtionary-room-wall-banner{align-self:start;justify-self:start;width:min(31vw,135px);margin:clamp(92px,15vh,132px) 0 0 -12px;padding:5px;border-width:4px;transform:none;}
  .jimtionary-room-picture-light{display:block;top:-28px;width:72px;height:25px;}
  .jimtionary-room-picture-light::after{height:95px;}
}

@media(prefers-reduced-motion:reduce){
  .jimtionary-room-door-stage,.jimtionary-room-door-handle{animation:none!important;}
  .jimtionary-room-door,.jimtionary-room-splash{transition-duration:.01ms;}
}


/* =========================================================
   THE.JIMTIONARY — ROOM ARRIVAL CONTINUITY
   Keeps the exact open-door image visually continuous as the
   splash expands into the first viewport of The.Library.
   ========================================================= */

/* The first room view uses the exact same asset as the doorway reveal. */
.books-of-master .books-hero{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:100svh;
  max-width:none;
  margin:0;
  padding:clamp(6.5rem,12vh,9rem) clamp(1rem,6vw,5rem) clamp(3rem,8vh,6rem);
  overflow:hidden;
  background-image:url("../assets/splash/jimtionary-private-library.png");
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
}

/* Readability layer only; the source image itself remains untouched. */
.books-of-master .books-hero::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.10) 42%,rgba(0,0,0,.74) 100%),
    linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.20) 54%,rgba(0,0,0,.08) 100%);
}

.books-of-master .books-hero > *{
  position:relative;
  z-index:1;
  max-width:780px;
}

.books-of-master .books-hero h1,
.books-of-master .books-hero .lead,
.books-of-master .books-hero .eyebrow{
  text-shadow:0 2px 18px rgba(0,0,0,.92);
}

/* Keep the actual page quiet until the doorway has become the room. */
body.splash-active .site-top,
body.splash-active main > :not(.books-hero),
body.splash-active .books-hero > *,
body.splash-active .footer{
  opacity:0;
}

.site-top,
main > :not(.books-hero),
.books-hero > *,
.footer{
  transition:opacity .72s ease;
}

/* FLIP layer created by jimtionary-splash.js. It starts exactly over
   the doorway reveal, then expands to the viewport before dissolving
   into the identical hero background beneath it. */
.jimtionary-room-arrival{
  position:fixed;
  z-index:10020;
  margin:0;
  padding:0;
  overflow:hidden;
  pointer-events:none;
  background:#050608;
  box-shadow:inset 0 0 0 1px rgba(201,162,39,.18);
  will-change:left,top,width,height,border-radius,box-shadow,opacity;
  transition:
    left .88s cubic-bezier(.2,.78,.18,1),
    top .88s cubic-bezier(.2,.78,.18,1),
    width .88s cubic-bezier(.2,.78,.18,1),
    height .88s cubic-bezier(.2,.78,.18,1),
    border-radius .88s ease,
    box-shadow .88s ease,
    opacity .42s ease;
}

.jimtionary-room-arrival img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}

.jimtionary-room-arrival.is-expanded{
  left:0!important;
  top:0!important;
  width:100vw!important;
  height:100svh!important;
  border-radius:0!important;
  box-shadow:none!important;
}

.jimtionary-room-arrival.is-dissolving{opacity:0;}

/* Let the hallway disappear underneath the expanding library image. */
.jimtionary-room-splash.is-transitioning .jimtionary-room-hall{
  opacity:0;
  transition:opacity .62s ease .12s;
}

/* Once inside, the first viewport stays photographic; scrolling naturally
   returns the visitor to the established black/gold archive interface. */
body.room-arrived .books-wrap{
  position:relative;
  background:linear-gradient(180deg,#08090b 0%,var(--bg,#08090b) 12rem);
}

@media(max-width:640px){
  .books-of-master .books-hero{
    min-height:100svh;
    padding:7rem 1rem 2.4rem;
    background-position:center center;
  }
  .books-of-master .books-hero .lead{font-size:1rem;}
}

@media(prefers-reduced-motion:reduce){
  .jimtionary-room-arrival{transition-duration:.01ms!important;}
  .jimtionary-room-splash.is-transitioning .jimtionary-room-hall{transition-duration:.01ms!important;}
  .site-top,main > :not(.books-hero),.books-hero > *,.footer{transition-duration:.01ms!important;}
}


/* =========================================================
   THE.JIMTIONARY — CLOSED DOUBLE-DOOR / JIMYBELL WALL MATCH
   Closed state now visually belongs to the same black/brass
   architectural family as the supplied open-door room view.
   ========================================================= */
.jimtionary-room-hall{
  background:
    radial-gradient(ellipse at 22% 47%,rgba(201,162,39,.10),transparent 19%),
    radial-gradient(ellipse at 78% 47%,rgba(201,162,39,.10),transparent 19%),
    linear-gradient(90deg,rgba(0,0,0,.84) 0 7%,transparent 16% 84%,rgba(0,0,0,.84) 93% 100%),
    repeating-linear-gradient(90deg,
      #060708 0 5.5%,
      #12100d 5.5% 5.8%,
      #050607 5.8% 17%,
      #34240d 17% 17.18%,
      #08090a 17.18% 32%,
      #17120c 32% 32.2%,
      #060708 32.2% 50%,
      #17120c 50% 50.2%,
      #060708 50.2% 67.8%,
      #17120c 67.8% 68%,
      #08090a 68% 82.82%,
      #34240d 82.82% 83%,
      #050607 83% 94.2%,
      #12100d 94.2% 94.5%,
      #060708 94.5% 100%);
}

/* Dark lacquered wall panels and warm brass trim, matching Jimybell's hall language. */
.jimtionary-room-hall::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0 0 27%;
  pointer-events:none;
  background:
    linear-gradient(180deg,#050607 0 7%,transparent 7% 10%,rgba(201,162,39,.18) 10% 10.25%,transparent 10.25% 87%,rgba(201,162,39,.14) 87% 87.25%,transparent 87.25%),
    linear-gradient(90deg,transparent 0 9%,rgba(201,162,39,.16) 9% 9.18%,transparent 9.18% 25%,rgba(201,162,39,.10) 25% 25.12%,transparent 25.12% 74.88%,rgba(201,162,39,.10) 74.88% 75%,transparent 75% 90.82%,rgba(201,162,39,.16) 90.82% 91%,transparent 91% 100%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.016) 0 1px,transparent 1px 82px);
  box-shadow:inset 0 0 100px #000;
}

/* Replace the old striped floor with the darker warm wood/herringbone feel. */
.jimtionary-room-hall::after{
  content:"";
  position:absolute;
  z-index:0;
  left:-14%;
  right:-14%;
  bottom:-20%;
  height:51%;
  background:
    linear-gradient(135deg,rgba(201,162,39,.10) 25%,transparent 25%) -16px 0/32px 32px,
    linear-gradient(225deg,rgba(201,162,39,.075) 25%,transparent 25%) -16px 0/32px 32px,
    linear-gradient(315deg,rgba(0,0,0,.46) 25%,transparent 25%) 0 0/32px 32px,
    linear-gradient(45deg,rgba(0,0,0,.32) 25%,#1b120c 25%) 0 0/32px 32px;
  transform:perspective(620px) rotateX(59deg);
  transform-origin:bottom;
  box-shadow:inset 0 28px 45px rgba(0,0,0,.76);
}

.jimtionary-room-door-stage{
  width:min(47vw,430px);
  aspect-ratio:.66;
  border:11px solid #070707;
  border-radius:2px;
  background:#030405;
  box-shadow:
    0 0 0 2px #241708,
    0 0 0 4px rgba(201,162,39,.75),
    0 0 0 10px #080808,
    0 0 27px 7px rgba(201,162,39,.34),
    0 34px 58px rgba(0,0,0,.82),
    inset 0 0 22px #000;
}

/* The button is now a transparent hit-area containing two independent door leaves. */
.jimtionary-room-door{
  inset:0;
  overflow:visible;
  background:transparent;
  box-shadow:none;
  transform:none!important;
  transition:filter .35s ease;
  perspective:1250px;
}
.jimtionary-room-door:hover,
.jimtionary-room-door:focus-visible{filter:brightness(1.10);}
.jimtionary-room-door:focus-visible{
  outline:3px solid rgba(240,201,70,.82);
  outline-offset:7px;
  box-shadow:none;
}

.jimtionary-room-door-leaf{
  position:absolute;
  z-index:4;
  top:0;
  bottom:0;
  width:50.2%;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(255,255,255,.025),transparent 11% 88%,rgba(0,0,0,.34)),
    linear-gradient(135deg,#17130f 0%,#090909 42%,#15100b 75%,#030303 100%);
  border:1px solid #020202;
  box-shadow:
    inset 0 0 0 2px #030303,
    inset 0 0 0 4px rgba(201,162,39,.11),
    inset 0 0 28px rgba(0,0,0,.95);
  transform:rotateY(0deg);
  transform-style:preserve-3d;
  backface-visibility:hidden;
  transition:transform 1.15s cubic-bezier(.2,.75,.18,1),filter .35s ease;
}
.jimtionary-room-door-leaf.left{left:0;transform-origin:left center;}
.jimtionary-room-door-leaf.right{right:0;transform-origin:right center;}

/* Center seam / brass edge gives the closed pair the same architecture as the open-room doors. */
.jimtionary-room-door-leaf.left::after,
.jimtionary-room-door-leaf.right::after{
  content:"";
  position:absolute;
  z-index:8;
  top:0;
  bottom:0;
  width:2px;
  background:linear-gradient(#5f4110,#d1a83a 18%,#6f4c12 50%,#d1a83a 82%,#4c330d);
  box-shadow:0 0 7px rgba(201,162,39,.22);
}
.jimtionary-room-door-leaf.left::after{right:0;}
.jimtionary-room-door-leaf.right::after{left:0;}

.jimtionary-room-door-leaf .jimtionary-room-door-panel{
  left:10%;
  right:10%;
  border:1px solid #2b1e0d;
  background:
    linear-gradient(145deg,rgba(255,255,255,.025),transparent 35%),
    linear-gradient(135deg,#15120e,#050505 72%);
  box-shadow:
    0 0 0 1px #010101,
    inset 0 0 0 2px rgba(201,162,39,.055),
    inset 0 0 18px #000;
}
.jimtionary-room-door-leaf .jimtionary-room-door-panel.top{top:6.5%;height:28%;}
.jimtionary-room-door-leaf .jimtionary-room-door-panel.middle{top:38%;height:25%;}
.jimtionary-room-door-leaf .jimtionary-room-door-panel.bottom{bottom:6.5%;height:26%;}

.jimtionary-room-door-medallion{
  position:absolute;
  z-index:9;
  top:17%;
  left:50%;
  display:grid;
  place-items:center;
  width:clamp(68px,8vw,100px);
  aspect-ratio:1;
  border:2px solid #a97d1e;
  border-radius:50%;
  background:
    radial-gradient(circle at 42% 34%,rgba(255,255,255,.04),transparent 33%),
    #080808;
  color:#cda43a;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
  line-height:1.05;
  text-align:center;
  text-shadow:0 1px 1px #000,0 0 8px rgba(201,162,39,.23);
  box-shadow:0 0 0 2px #030303,0 5px 16px rgba(0,0,0,.74),inset 0 0 13px #000;
  transform:translateX(-50%);
}
.jimtionary-room-door-leaf.left .jimtionary-room-door-medallion span{font-size:clamp(.78rem,1.3vw,1.02rem);}
.jimtionary-room-door-leaf.right .jimtionary-room-door-medallion span{font-size:clamp(.70rem,1.05vw,.90rem);}

/* Tall brass pulls echo the exact supplied open-door image. */
.jimtionary-room-door-pull{
  position:absolute;
  z-index:10;
  top:46%;
  width:clamp(10px,1.2vw,15px);
  height:clamp(70px,12vh,104px);
  border:1px solid #4e3308;
  border-radius:999px;
  background:
    radial-gradient(circle at 35% 18%,#ffe5a0 0 4%,transparent 5%),
    linear-gradient(90deg,#3e2704,#d0a23a 22%,#f5d47f 50%,#9c701d 72%,#2b1b03);
  box-shadow:
    0 0 0 2px rgba(0,0,0,.55),
    0 0 9px 2px rgba(201,162,39,.36),
    inset 0 0 4px rgba(255,238,179,.34);
  animation:jimtionaryHandlePulse 1.35s ease-in-out infinite;
}
.jimtionary-room-door-pull::before,
.jimtionary-room-door-pull::after{
  content:"";
  position:absolute;
  left:50%;
  width:clamp(18px,2vw,24px);
  height:clamp(18px,2vw,24px);
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff0a8,#c2922d 35%,#5a3a08 72%);
  box-shadow:0 0 7px rgba(201,162,39,.35);
  transform:translateX(-50%);
}
.jimtionary-room-door-pull::before{top:-8px;}
.jimtionary-room-door-pull::after{bottom:-8px;}
.jimtionary-room-door-leaf.left .jimtionary-room-door-pull{right:7%;}
.jimtionary-room-door-leaf.right .jimtionary-room-door-pull{left:7%;}

/* Hide legacy round-handle styling if an older cached index is ever paired with this CSS. */
.jimtionary-room-door-handle{display:none!important;}

.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.left{transform:rotateY(-106deg);}
.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.right{transform:rotateY(106deg);}

@keyframes jimtionaryDoorFramePulse{
  50%{
    box-shadow:
      0 0 0 2px #241708,
      0 0 0 4px #f0c946,
      0 0 0 10px #080808,
      0 0 38px 11px rgba(201,162,39,.54),
      0 34px 58px rgba(0,0,0,.82),
      inset 0 0 22px #000;
  }
}

@keyframes jimtionaryHandlePulse{
  50%{filter:brightness(1.22);box-shadow:0 0 0 2px rgba(0,0,0,.55),0 0 16px 5px rgba(240,201,70,.58),inset 0 0 4px rgba(255,238,179,.44);}
}

@media(max-width:860px){
  .jimtionary-room-door-stage{width:min(41vw,330px);}
  .jimtionary-room-door-medallion{width:clamp(58px,8vw,80px);}
}

@media(max-width:640px){
  .jimtionary-room-door-stage{width:min(56vw,250px);}
  .jimtionary-room-door-medallion{top:16%;width:54px;}
  .jimtionary-room-door-leaf.left .jimtionary-room-door-medallion span{font-size:.62rem;}
  .jimtionary-room-door-leaf.right .jimtionary-room-door-medallion span{font-size:.55rem;}
  .jimtionary-room-door-pull{height:58px;width:8px;}
  .jimtionary-room-door-pull::before,.jimtionary-room-door-pull::after{width:15px;height:15px;}
}

@media(prefers-reduced-motion:reduce){
  .jimtionary-room-door-leaf,.jimtionary-room-door-pull{animation:none!important;transition-duration:.01ms!important;}
}

/* =========================================================
   THE.JIMTIONARY — PHOTO-REAL HALLWAY SPLASH
   2026-08-19
   The closed state is a single photoreal hallway plate.
   The clickable center doors reveal the exact supplied library image.
   ========================================================= */

.jimtionary-room-splash{
  position:fixed;
  inset:0;
  z-index:9999;
  overflow:hidden;
  background:#050403;
  opacity:1;
  visibility:visible;
  transition:opacity .46s ease,visibility .46s ease;
}

.jimtionary-room-splash[hidden],
.jimtionary-room-splash.is-finished{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.jimtionary-room-hall{
  position:absolute;
  inset:0;
  overflow:hidden;
  background:#050403;
}

.jimtionary-room-hall-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  user-select:none;
  pointer-events:none;
  filter:saturate(.98) contrast(1.02) brightness(.94);
  transform:scale(1.002);
}

/* The interaction zone follows the central double doors in the photo. */
.jimtionary-room-door-stage{
  position:absolute;
  z-index:4;
  left:50%;
  top:48.5%;
  width:clamp(280px,33.5vw,515px);
  height:clamp(410px,59vh,670px);
  transform:translate(-50%,-50%);
  border:0;
  border-radius:3px;
  background:transparent;
  box-shadow:none;
  perspective:1400px;
  animation:none;
}

.jimtionary-room-door-reveal{
  position:absolute;
  inset:0;
  overflow:hidden;
  border-radius:2px;
  background:#080604;
  opacity:0;
  transform:scale(.995);
  transition:opacity .2s ease,transform .8s cubic-bezier(.2,.74,.2,1);
  box-shadow:0 0 0 1px rgba(201,162,39,.12),0 0 45px rgba(0,0,0,.65);
}

.jimtionary-room-interior-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.015);
  filter:none;
}

.jimtionary-room-door{
  position:absolute;
  inset:0;
  z-index:5;
  border:0;
  padding:0;
  background:transparent;
  cursor:pointer;
  perspective:1400px;
  transform:none;
  box-shadow:none;
}

.jimtionary-room-door:hover,
.jimtionary-room-door:focus-visible{
  outline:none;
  filter:none;
}

.jimtionary-room-door:focus-visible::after{
  content:"";
  position:absolute;
  inset:-6px;
  border:2px solid rgba(240,201,70,.82);
  border-radius:5px;
  box-shadow:0 0 24px rgba(201,162,39,.55);
}

/* Door leaves are deliberately subtle: the photoreal plate remains the visual source. */
.jimtionary-room-door-leaf{
  position:absolute;
  top:0;
  bottom:0;
  width:50.2%;
  pointer-events:none;
  background:rgba(7,5,3,.035);
  box-shadow:inset 0 0 0 1px rgba(201,162,39,.035);
  backface-visibility:hidden;
  transition:transform 1.05s cubic-bezier(.2,.75,.18,1),opacity .55s ease;
}

.jimtionary-room-door-leaf.left{
  left:0;
  transform-origin:left center;
}

.jimtionary-room-door-leaf.right{
  right:0;
  transform-origin:right center;
}

.jimtionary-room-door-pulse{
  position:absolute;
  left:50%;
  top:50%;
  width:18px;
  height:94px;
  border-radius:999px;
  transform:translate(-50%,-50%);
  box-shadow:0 0 12px 3px rgba(201,162,39,.48),0 0 30px 8px rgba(201,162,39,.22);
  opacity:.68;
  animation:jimtionaryPhotoHandlePulse 1.55s ease-in-out infinite;
  pointer-events:none;
}

.jimtionary-room-enter-copy{
  position:absolute;
  z-index:7;
  left:50%;
  bottom:clamp(18px,3.5vh,42px);
  margin:0;
  transform:translateX(-50%);
  color:#e9dfc4;
  font-size:clamp(.56rem,.72vw,.72rem);
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-shadow:0 2px 9px #000,0 0 16px #000;
  white-space:nowrap;
  transition:opacity .25s ease;
}

.jimtionary-room-splash.is-opening .jimtionary-room-door-reveal{
  opacity:1;
  transform:scale(1);
}

.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.left{
  transform:rotateY(-105deg);
  opacity:.12;
}

.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.right{
  transform:rotateY(105deg);
  opacity:.12;
}

.jimtionary-room-splash.is-opening .jimtionary-room-door-pulse,
.jimtionary-room-splash.is-opening .jimtionary-room-enter-copy{
  opacity:0;
}

@keyframes jimtionaryPhotoHandlePulse{
  50%{
    opacity:1;
    box-shadow:0 0 16px 5px rgba(240,201,70,.72),0 0 36px 12px rgba(201,162,39,.36);
  }
}

@media(max-width:860px){
  .jimtionary-room-door-stage{
    width:clamp(235px,41vw,365px);
    height:clamp(365px,57vh,575px);
    top:48%;
  }
}

@media(max-width:640px){
  .jimtionary-room-hall-photo{object-position:center center;}
  .jimtionary-room-door-stage{
    width:min(54vw,270px);
    height:min(59vh,470px);
    top:48%;
  }
  .jimtionary-room-enter-copy{
    bottom:16px;
    max-width:92vw;
    white-space:normal;
    text-align:center;
    line-height:1.45;
  }
}

@media(prefers-reduced-motion:reduce){
  .jimtionary-room-door-pulse{animation:none!important;}
  .jimtionary-room-door-leaf,
  .jimtionary-room-door-reveal,
  .jimtionary-room-splash{transition-duration:.01ms!important;}
}

/* =========================================================
   THE.JIMTIONARY — REAL DOOR OPENING FIX
   2026-08-19
   The closed hallway remains one photoreal plate. The two
   actual photographed door leaves are overlaid pixel-for-pixel
   and rotate away to reveal the supplied open-door photograph.
   ========================================================= */
.jimtionary-room-door-stage{
  /* JS maps this stage to the exact door rectangle in the hallway photo. */
  left:0;
  top:0;
  width:0;
  height:0;
  transform:none;
  perspective:1500px;
  transform-style:preserve-3d;
  overflow:visible;
}

/* The open-room photograph is already behind the photographed leaves.
   No opacity pop: it is simply uncovered as the leaves rotate. */
.jimtionary-room-door-reveal{
  opacity:1;
  transform:none;
  border-radius:0;
  transition:none;
  box-shadow:inset 0 0 24px rgba(0,0,0,.38);
}

.jimtionary-room-interior-image{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:none;
  filter:none;
}

.jimtionary-room-door{
  overflow:visible;
  perspective:1500px;
  transform-style:preserve-3d;
}

/* These are literal crops of the doors in the hallway plate. */
.jimtionary-room-door-leaf{
  top:0;
  bottom:0;
  width:50%;
  opacity:1;
  border:0;
  background-repeat:no-repeat;
  background-position:center;
  background-size:100% 100%;
  box-shadow:none;
  backface-visibility:hidden;
  transform:rotateY(0deg);
  transition:transform 1.18s cubic-bezier(.18,.76,.16,1),filter .28s ease;
  will-change:transform;
}
.jimtionary-room-door-leaf.left{
  left:0;
  right:auto;
  background-image:url("../assets/splash/jimtionary-door-left.png");
  transform-origin:left center;
}
.jimtionary-room-door-leaf.right{
  left:auto;
  right:0;
  background-image:url("../assets/splash/jimtionary-door-right.png");
  transform-origin:right center;
}

/* Realistic depth/shadow appears only while the leaves are moving open. */
.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.left{
  transform:rotateY(-104deg);
  opacity:1;
  filter:brightness(.78);
  box-shadow:18px 0 32px rgba(0,0,0,.48);
}
.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.right{
  transform:rotateY(104deg);
  opacity:1;
  filter:brightness(.78);
  box-shadow:-18px 0 32px rgba(0,0,0,.48);
}

/* Remove the startup "gold box". Keyboard users still get a focus ring
   only after actual keyboard navigation, never from script on page load. */
.jimtionary-room-door:focus{outline:none;box-shadow:none;}
.jimtionary-room-door:focus-visible::after{
  content:"";
  position:absolute;
  inset:-5px;
  border:2px solid rgba(240,201,70,.82);
  border-radius:4px;
  box-shadow:0 0 20px rgba(201,162,39,.45);
  pointer-events:none;
}

/* A small glow at the photographed center pulls acts as the handle cue,
   without drawing a rectangular frame over the artwork. */
.jimtionary-room-door-pulse{
  left:50%;
  top:51%;
  width:14px;
  height:82px;
  background:transparent;
  border:0;
  box-shadow:0 0 10px 2px rgba(201,162,39,.34),0 0 24px 6px rgba(201,162,39,.16);
}

@media(prefers-reduced-motion:reduce){
  .jimtionary-room-door-leaf{transition-duration:.01ms!important;}
}

/* =========================================================
   THE.JIMTIONARY — CLOSED-UNTIL-CLICK FIX
   2026-08-19
   On initial load the untouched photoreal hallway plate supplies
   the closed doors. The live reveal and movable door crops stay
   invisible until the visitor actually clicks the entrance.
   ========================================================= */
.jimtionary-room-door-reveal{
  opacity:0;
  visibility:hidden;
}

.jimtionary-room-door-leaf{
  opacity:0;
}

/* The click adds .is-opening. At that exact moment the literal
   photographed door crops replace the identical doors in the base
   hallway and the interior becomes available behind them. Because
   opacity is not transitioned here, there is no flash/pop before the
   leaves begin their 3-D rotation. */
.jimtionary-room-splash.is-opening .jimtionary-room-door-reveal{
  opacity:1;
  visibility:visible;
  transform:none;
}

.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.left{
  opacity:1;
  transform:rotateY(-104deg);
}

.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.right{
  opacity:1;
  transform:rotateY(104deg);
}


/* THE.JIMTIONARY — no pulsing handle cue */
.jimtionary-room-door-pulse{display:none!important;animation:none!important;box-shadow:none!important;}

/* 2026-08-19 — photoreal hallway cleanup.
   The hallway photo already contains the real wall/floor architecture.
   Disable legacy CSS-built wall/floor pseudo-layers that were rendering
   as the unwanted strip/row along the bottom of the splash. */
.jimtionary-room-hall::before,
.jimtionary-room-hall::after{
  content:none !important;
  display:none !important;
}

/* The only splash copy visible below the doors is the single instruction line. */
.jimtionary-room-enter-copy{
  display:block !important;
}


/* =========================================================
   2026-08-19 — Smooth door-motion pass
   One continuous GPU-composited door swing; no opacity fight
   between the leaves, reveal, and room-arrival handoff.
   ========================================================= */
.jimtionary-room-door-stage,
.jimtionary-room-door,
.jimtionary-room-door-leaf,
.jimtionary-room-door-reveal{
  -webkit-transform-style:preserve-3d;
  transform-style:preserve-3d;
}

.jimtionary-room-door-leaf{
  opacity:1 !important;
  will-change:transform;
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  transform:translateZ(0) rotateY(0deg);
  transition:transform 1.32s cubic-bezier(.22,.72,.16,1) !important;
}

.jimtionary-room-door-leaf.left{
  transform-origin:left center;
}
.jimtionary-room-door-leaf.right{
  transform-origin:right center;
}

.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.left{
  transform:translateZ(0) rotateY(-108deg) !important;
  opacity:1 !important;
}
.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf.right{
  transform:translateZ(0) rotateY(108deg) !important;
  opacity:1 !important;
}

.jimtionary-room-door-reveal{
  will-change:opacity,transform;
  transform:translateZ(0) scale(1);
  transition:opacity .18s linear !important;
}
.jimtionary-room-splash.is-opening .jimtionary-room-door-reveal{
  opacity:1;
  transform:translateZ(0) scale(1);
}

/* Keep the hallway stable during the door swing. It does not start
   dissolving until JS begins the separate room-arrival phase. */
.jimtionary-room-splash:not(.is-transitioning) .jimtionary-room-hall{
  opacity:1 !important;
}

@media (prefers-reduced-motion:reduce){
  .jimtionary-room-door-leaf,
  .jimtionary-room-door-reveal{
    transition-duration:.01ms !important;
  }
}

/* 2026-08-19 — Door seam glow: bind light to the meeting edges of the actual leaves. */
.jimtionary-room-door-leaf::after{
  content:"";
  position:absolute;
  top:3%;
  bottom:3%;
  width:3px;
  pointer-events:none;
  opacity:.68;
  background:linear-gradient(to bottom,transparent 0%,rgba(226,188,69,.38) 10%,rgba(255,226,126,.78) 50%,rgba(226,188,69,.38) 90%,transparent 100%);
  box-shadow:0 0 5px rgba(201,162,39,.5),0 0 11px rgba(201,162,39,.24);
  transition:opacity .24s linear,box-shadow .24s linear;
}
.jimtionary-room-door-leaf.left::after{right:-1px;}
.jimtionary-room-door-leaf.right::after{left:-1px;}
.jimtionary-room-splash.is-opening .jimtionary-room-door-leaf::after{
  opacity:0;
  box-shadow:none;
}

/* 2026-08-19 — Seam alignment correction.
   The photographed doors already contain the true center joint.
   Remove all synthetic seam/glow pseudo-elements so the visible seam
   is the exact seam baked into the source door-leaf crops. */
.jimtionary-room-door-leaf::after,
.jimtionary-room-door-leaf.left::after,
.jimtionary-room-door-leaf.right::after{
  content:none !important;
  display:none !important;
  box-shadow:none !important;
  background:none !important;
}

/* =========================================================
   THE.JIMTIONARY — DEFINE.ME.CORRECTLY MUSIC CONTROL
   2026-08-23
   Persistent bottom-left stop control for entrance music.
   ========================================================= */
.jimtionary-music-stop{
  position:fixed;
  left:max(14px, env(safe-area-inset-left));
  bottom:max(14px, env(safe-area-inset-bottom));
  z-index:10050;
  appearance:none;
  border:1px solid rgba(201,162,39,.72);
  border-radius:999px;
  background:rgba(8,8,8,.86);
  color:#f2e2ad;
  padding:10px 15px;
  font:700 12px/1.1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.34),0 0 0 1px rgba(255,255,255,.025) inset;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:border-color .18s ease,background .18s ease,opacity .18s ease,transform .18s ease;
}
.jimtionary-music-stop:hover,
.jimtionary-music-stop:focus-visible{
  border-color:#c9a227;
  background:rgba(16,14,8,.94);
  transform:translateY(-1px);
}
.jimtionary-music-stop:focus-visible{
  outline:2px solid #c9a227;
  outline-offset:3px;
}
.jimtionary-music-stop.is-stopped{
  opacity:.58;
  cursor:default;
  transform:none;
}
@media (max-width:600px){
  .jimtionary-music-stop{
    left:max(10px, env(safe-area-inset-left));
    bottom:max(10px, env(safe-area-inset-bottom));
    padding:9px 12px;
    font-size:11px;
  }
}


/* =========================================================
   2026-08-23 — Music control timing + library hero width
   - Stop control stays hidden until audio is actually playing.
   - The loaded library hero returns to the site's 1280px content width.
   ========================================================= */
.jimtionary-music-stop[hidden]{
  display:none !important;
}

.books-of-master .books-hero{
  width:min(1280px,calc(100% - 2rem));
  max-width:1280px;
  margin-inline:auto;
}

@media(max-width:640px){
  .books-of-master .books-hero{
    width:100%;
    max-width:none;
    margin-inline:0;
  }
}
