/* V31: contain the enlarged landscape and return the floating book to the hero. */
.portal-hero{overflow:hidden;overflow:clip}
.portal-copy{width:min(760px,66%);margin-right:26%;padding-bottom:100px}
.portal-copy h1{font-size:clamp(6rem,10.8vw,11.3rem)}
.portal-aura{left:37%}
.portal-cover{position:absolute;right:7%;top:50%;transform:translateY(-50%);width:clamp(220px,19vw,330px);z-index:5;--book-x:0deg;--book-y:0deg;isolation:isolate}
.portal-cover:before{content:'';position:absolute;inset:-15% -25%;z-index:-1;background:radial-gradient(ellipse,#dfbc6c35,transparent 67%);pointer-events:none}
.portal-cover-float{display:block;animation:portal-book-float 7s ease-in-out infinite!important;will-change:transform}
.portal-cover-tilt{display:block;transform:perspective(1100px) rotateX(var(--book-x)) rotateY(calc(-12deg + var(--book-y))) rotateZ(5deg);transform-origin:center;transition:transform .55s ease-out!important}
.portal-cover img{display:block;width:100%;height:auto;aspect-ratio:2/3;border-radius:2px 5px 5px 2px;box-shadow:-5px 1px 0 #6c5434,-9px 2px 0 #312824,-11px 3px 0 #1a181b,0 25px 65px #000b;border:1px solid #e4c58a55}
.portal-cover-caption{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:27px;color:#eed9b4;font-size:.58rem;letter-spacing:.17em;text-shadow:0 2px 10px #000}
.portal-cover-caption>span{color:#e9c37f}
.portal-cover:focus-visible{outline:2px solid #f3d89c;outline-offset:15px}
.portal-book-meta{justify-self:start;color:#dfcba8;font-size:.56rem;letter-spacing:.13em}
.portal-book-meta small{display:block;font:400 1.15rem var(--serif);letter-spacing:0;color:#f1e9d8;margin-top:9px}
.magic-paused .portal-cover-float{animation-play-state:paused!important}
.magic-paused .portal-cover-tilt{transition:none!important}
.story-ribbon{position:relative;z-index:6;margin-top:0}
@keyframes portal-book-float{0%,100%{transform:translate3d(0,7px,0) rotate(-1deg)}50%{transform:translate3d(0,-9px,0) rotate(1deg)}}
@media(min-width:1600px){.portal-copy{padding-bottom:100px}.portal-cover{right:9%;width:clamp(300px,18vw,350px)}}
@media(max-width:1100px){.portal-copy{width:66%;margin-right:27%}.portal-copy h1{font-size:10.5vw}.portal-cover{right:6%;width:clamp(180px,20vw,230px)}.portal-actions{gap:20px}.portal-reading{font-size:.66rem}}
@media(max-width:950px) and (min-width:641px){.portal-copy .portal-invitation{font-size:.53rem;letter-spacing:.22em}.portal-copy .portal-prologue{font-size:1.4rem}.portal-actions{flex-direction:column;gap:15px}.portal-cover{right:5%;width:21vw}.portal-book-meta{font-size:.49rem}.portal-book-meta small{font-size:1rem}.portal-copy{padding-bottom:90px}}
@media(max-width:640px){.portal-hero{height:auto;min-height:980px;max-height:none;flex-direction:column;justify-content:flex-start;padding:110px 0 165px}.portal-copy{width:92%;margin:0;padding:0 0 36px}.portal-copy h1{font-size:clamp(4rem,19vw,7rem)}.portal-aura{left:50%;top:34%}.portal-cover{position:relative;top:auto;right:auto;transform:none;align-self:flex-end;margin-right:13%;width:clamp(145px,40vw,190px)}.portal-cover-caption{font-size:.47rem;letter-spacing:.12em;gap:8px;margin-top:20px}.portal-foot{bottom:24px;left:6%;right:6%;gap:18px;grid-template-columns:minmax(0,1fr) auto}.portal-book-meta{font-size:.43rem;letter-spacing:.09em}.portal-book-meta small{font-size:.95rem;margin-top:7px}.portal-foot .motion-toggle{min-width:105px;font-size:.54rem}.scroll-invitation{grid-row:1}.story-ribbon{padding-top:22px}}
