@font-face{font-family:Almendra;src:url('assets/fonts/almendra-bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
/* Scene typography and atmospheric layers. */
.hero{min-height:900px;height:100svh;max-height:1100px}
.room{transform:none!important;transition:none;background-image:url(assets/cottage-animation-base.webp);background-position:right center}
#rain{inset:0;width:100%;height:100%;opacity:1;mask-image:none;pointer-events:none;z-index:1}
.candlelight{display:none}
.moonlight{z-index:1}.vignette{z-index:2}
.hero-copy{top:23%;width:44%}
h1>span{font-size:clamp(78px,7.2vw,112px)}
.hero-line.norse-line{font-family:Almendra,Georgia,serif;font-weight:700;font-size:clamp(27px,2.45vw,39px);line-height:1.18;letter-spacing:.012em;color:#dfd5bd;margin:31px 0 30px;max-width:560px;text-shadow:0 2px 3px #000,0 0 20px #000}
.norse-line em{font-style:normal;color:#c9ac79}
.tabletop{left:68%;top:53%;transform:translate(-50%,-50%) scale(.91);pointer-events:none}
.stack{transform:rotateX(52deg) rotateZ(-23deg);transition:none}
.novel,.novel:hover,.novel:focus-visible{transform:translate3d(var(--x),var(--y),var(--z)) rotateZ(var(--rz));transition:none;cursor:default;padding:0;pointer-events:none}
.novel.featured-novel{pointer-events:auto;cursor:pointer}
.novel *{pointer-events:none}
.novel.featured-novel:focus-visible{outline:3px solid var(--gold);outline-offset:14px}
.novel .front{transition:filter .2s}
.novel.featured-novel:hover .front{filter:brightness(1.1)}
.book-chooser{position:absolute;z-index:5;left:52%;right:7%;bottom:103px}
.book-chooser>.eyebrow{font-size:8px;letter-spacing:.2em;margin-bottom:12px;color:#d0c1a5;text-shadow:0 2px 5px #000}
.book-choices{display:grid;grid-template-columns:1fr 1fr;border:1px solid #baa78044;background:#091013e8;box-shadow:0 8px 30px #0005;backdrop-filter:blur(10px)}
.book-choice{padding:14px 12px;min-height:72px;display:flex;align-items:center;gap:11px;text-align:left;border:1px solid transparent;transition:background .2s,border-color .2s}
.book-choice:nth-child(odd){border-right-color:#baa78022}.book-choice:nth-child(-n+2){border-bottom-color:#baa78022}
.book-choice:hover,.book-choice:focus-visible{background:#baa7801f;border-color:#baa78088}
.book-choice.selected{background:#c6a67513}
.choice-number{font-family:var(--serif);color:#a89778;font-size:15px;align-self:flex-start;padding-top:2px}
.choice-copy{flex:1}.choice-copy strong{display:block;font-family:var(--serif);font-size:20px;font-weight:500;color:#e6e1d3;line-height:1.02}
.choice-copy small{display:block;font-size:7px;letter-spacing:.08em;color:#a6b1b2;margin-top:7px;text-transform:uppercase}
.choice-arrow{color:var(--gold);font-size:15px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.open-book-area .reading-book{will-change:transform}.turn-cover{will-change:transform}
@media(min-width:1600px){.tabletop{left:68%;transform:translate(-50%,-50%) scale(1.02)}.book-chooser{left:53%;right:10%;bottom:110px}}
@media(max-width:1100px){.hero-copy{left:6%;width:43%;top:22%}.hero-line.norse-line{font-size:29px}.tabletop{left:70%;top:51%;transform:translate(-50%,-50%) scale(.78)}.book-chooser{left:50%;right:5%;bottom:105px}.choice-copy strong{font-size:18px}.book-choice{padding:13px 10px;gap:8px}.book-chooser>.eyebrow{font-size:7px}}
@media(max-width:760px){.hero{height:1180px;min-height:1180px;max-height:none}.hero-copy{left:8%;top:135px;width:84%}.hero-copy h1>span{font-size:76px}.hero-line.norse-line{font-size:29px;line-height:1.2;margin:26px 0;max-width:350px}.tabletop{left:48%;top:62%;transform:translate(-50%,-50%) scale(.73)}.book-chooser{left:7%;right:7%;bottom:105px}.book-chooser>.eyebrow{font-size:7px}.book-choice{min-height:78px;padding:13px 10px;gap:8px}.choice-copy strong{font-size:18px}.choice-copy small{font-size:6px}.choice-number{font-size:13px}.hero-bottom{bottom:27px}.hero-copy .button{padding:14px 20px}.room{background-position:right center}.reading-book.is-open{transform:translateX(52px) rotateY(-6deg)}}
@media(max-width:360px){.hero{height:1150px;min-height:1150px}.hero-copy h1>span{font-size:69px}.hero-line.norse-line{font-size:25px}.tabletop{top:60%;transform:translate(-50%,-50%) scale(.61)}.book-chooser{left:6%;right:6%}.choice-copy strong{font-size:17px}.choice-number{display:none}.book-choice{padding:13px 10px}.choice-arrow{font-size:12px}.book-chooser>.eyebrow{letter-spacing:.1em}}

.reading-book.switching,.reading-book.switching .turn-cover{transition:none!important}

@media(max-width:760px){.hero-line.norse-line{font-size:clamp(22px,6.4vw,29px);text-wrap:balance}}

/* Each physical book is a stable target. The order never changes. */
.tabletop{left:var(--stack-left)!important;top:var(--stack-top)!important;transform:translate(-50%,-50%) scale(var(--stack-scale))!important;perspective:1800px}
.stack{transform:rotateX(68deg) rotateZ(-18deg);transform-style:preserve-3d}
.stack:before{content:'';position:absolute;inset:0;background:#000a;transform:translate3d(-18px,72px,-2px) rotateZ(-3deg);box-shadow:12px 18px 26px 12px #0009;border-radius:6px;pointer-events:none}
.novel,.novel:hover,.novel:focus-visible{pointer-events:none;cursor:pointer;outline:none!important}
.novel .front,.novel .spine,.novel .edge{pointer-events:auto;cursor:pointer}
.novel .front *,.novel .spine *{pointer-events:none}
.novel .back{box-shadow:2px 3px 6px #0008}
.novel:hover .front,.novel:focus-visible .front{filter:brightness(1.18);box-shadow:inset 0 0 0 3px #d8bd82}
.novel:focus-visible .front{outline:3px solid var(--gold);outline-offset:2px}
.stack-title{position:absolute;bottom:7px;left:8px;right:8px;min-height:36px;padding:5px 6px;background:var(--book-color);border:1px solid #dac99b65;color:#f2e6c8;font-family:var(--serif);font-size:18px;line-height:1.05;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0008;text-shadow:0 1px 2px #000}
.novel:last-child .stack-title{display:none}
.stack-caption{position:absolute;left:7%;bottom:120px;z-index:4;color:#d2c6ad;text-shadow:0 2px 6px #000;pointer-events:none}
.stack-caption>span:not(.sr-only){font-family:var(--serif);font-size:25px}.stack-caption small{display:block;font-size:7px;letter-spacing:.2em;margin-top:9px;color:#a6b3b4}
@media(max-width:760px){.stack-caption{left:8%;bottom:56px}.stack-caption>span:not(.sr-only){font-size:21px}.hero-bottom{bottom:15px;padding-top:10px}.stack-title{font-size:19px}}
