:root{--cream:#f3e6c8;--ink:#37271c;--amber:#c29457;--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',sans-serif;--mono:'DM Mono',monospace;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font:16px/1.5 var(--sans);background:#20150f;color:var(--cream)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #ffdca0;outline-offset:7px}[hidden]{display:none!important}.room-hud{position:fixed;z-index:50;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:24px 35px;color:#f4e7cf;text-shadow:0 2px 10px #1c100b}.room-hud:before{content:'';position:absolute;inset:0 0 -60px;background:linear-gradient(#140c0acd,transparent);z-index:-1;pointer-events:none}.signature{font:400 28px/1.2 "Space Grotesk",var(--sans);letter-spacing:-.025em;white-space:nowrap}.signature span{font-size:24px;margin-left:14px;color:#efb576}.room-hud nav{display:flex;align-items:center;gap:26px;font-size:14px}.room-hud nav>*{padding:7px 0;text-shadow:0 1px 5px #000}.room-hud nav [aria-current]{border-bottom:1px solid #dcc294}.room-hud #more-toggle{font-size:26px;line-height:1}.more-menu{position:absolute;right:28px;top:75px;background:#2e2119f5;border:1px solid #c8ad7544;padding:12px;min-width:150px;font-size:14px}.more-menu a{display:block;padding:8px}.stage{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .75s,visibility .75s;overflow:hidden}.stage.active{opacity:1;visibility:visible}.stage:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse,transparent 45%,#140b0855);pointer-events:none}.photo-world{position:absolute;width:1672px;height:941px;top:50%;left:50%;transform:translate(-50%,-50%) scale(var(--scale,1));transform-origin:center;will-change:transform}.world-photo{width:100%;height:100%;display:block;user-select:none;pointer-events:none}.room-world{transition:filter 1s,transform .85s cubic-bezier(.2,.7,.3,1)}.lights-low .room-world{filter:brightness(.55) saturate(1.12)}.room-cue{position:absolute;bottom:88px;left:50%;transform:translateX(-50%);font-size:14px;color:#f3e5c9;text-shadow:0 2px 8px #000;white-space:nowrap}.room-cue>span{margin-right:8px}.object-target{position:absolute;z-index:6;background:transparent;border:1px solid transparent;border-radius:50%;transition:box-shadow .4s,border-color .4s}.object-target:after{content:'+';position:absolute;left:50%;top:50%;width:32px;height:32px;transform:translate(-50%,-50%);border:1px solid #f8ead57a;border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 15px #0004;background:#25170c33;font-size:21px;opacity:.65;transition:opacity .2s}.object-target span{position:absolute;left:50%;top:60%;transform:translate(-50%,12px);background:#24160fd9;border:1px solid #c8ae7733;border-radius:4px;padding:7px 14px;white-space:nowrap;opacity:0;font-size:14px;transition:opacity .3s}.object-target:hover span,.object-target:focus-visible span{opacity:1}.object-target:hover:after{opacity:1;background:#68482bc4}.deck-target{left:40%;top:37%;width:14%;height:12%}.crate-target{left:44%;top:50%;width:15%;height:13%}.book-target{left:54%;top:70%;width:23%;height:20%}.lamp-target{left:10%;top:24%;width:9%;height:23%}.propped-sleeve{position:absolute;left:34.5%;top:30%;width:9.1%;height:16.2%;padding:0;transform:perspective(600px) rotateY(9deg) rotate(-7deg);transform-origin:bottom;box-shadow:7px 5px 9px #1b0d0780;transition:transform .4s;z-index:4}.propped-sleeve:hover{transform:perspective(600px) rotateY(0deg) rotate(-2deg) translateY(-10px)}.propped-sleeve img{width:100%;height:100%;display:block}.distant-record{position:absolute;left:41.4%;top:40.9%;width:10.4%;height:3%;z-index:3}.distant-record>img{width:100%;height:100%}.mini-label{position:absolute;left:42%;top:37%;width:18%;height:24%;border-radius:50%;background:#d7af60}.ambient-hud{position:fixed;z-index:40;bottom:0;left:0;right:0;padding:21px 34px;display:flex;justify-content:space-between;align-items:center;gap:25px;color:#e9dac0;background:linear-gradient(transparent,#1a100ded);font-size:13px;pointer-events:none}.ambient-hud>*{pointer-events:auto}#now-playing{display:flex;align-items:center;gap:9px;text-align:left;max-width:47%;padding:0}.play-light{width:5px;height:5px;border-radius:50%;background:#93806a;flex-shrink:0}.is-playing .play-light{background:#f1ba60;box-shadow:0 0 10px #ffb93a}#now-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#room-caption{font:10px var(--mono);letter-spacing:.13em;opacity:.6}.ambient-hud button:last-child{font-size:12px}#deck-stage{background:url('assets/turntable-scene.jpg') center/cover}.deck-world{transition:transform .65s cubic-bezier(.2,.7,.3,1)}.platter{position:absolute;left:12.7%;top:15.4%;width:40%;height:71%;border-radius:50%;z-index:7;display:grid;place-items:center}.platter:focus-visible{outline-offset:-15px}.platter.drop-ready{box-shadow:inset 0 0 40px #f2ba5738,0 0 0 3px #ebc37cbb}.deck-record{position:absolute;left:12.6%;top:15.4%;width:40%;aspect-ratio:1;z-index:5;pointer-events:none;filter:drop-shadow(3px 4px 5px #0008)}.spinning-disc{width:100%;height:100%;position:relative;animation:vinyl-spin 1.8s linear infinite;animation-play-state:paused}.is-playing .spinning-disc{animation-play-state:running}.spinning-disc>img{width:100%;height:100%;display:block}.record-label{position:absolute;left:36%;top:36%;width:28%;height:28%;border-radius:50%;background:#ca9b53;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#3a2819;text-align:center;padding:8px 12px;font:10px/1.5 var(--mono);gap:8px}.record-label:after{content:'';position:absolute;left:48.8%;top:48.8%;width:3%;height:3%;background:#382818;border-radius:50%;box-shadow:1px 0 0 #e9d6a8}.record-label strong{font:22px/.95 var(--serif);max-width:90%;padding-bottom:9px}.record-label>span:first-child{font-size:11px;max-width:85%;line-height:1.1}.record-label>span:last-child{font-size:9px}.deck-sleeve{position:absolute;left:69%;top:29%;width:26%;aspect-ratio:1;z-index:8;transform:rotate(6deg);filter:drop-shadow(10px 14px 7px #1a0b08a8);transition:transform .5s}.deck-sleeve>img{width:100%;height:100%;object-fit:cover;display:block;user-select:none}.deck-sleeve:hover{transform:rotate(2deg) translateY(-8px)}.sleeve-note{position:absolute;background:#ddd0ac;color:#38251b;padding:12px 24px;left:16%;right:0;bottom:-30px;transform:rotate(-9deg);box-shadow:2px 3px 6px #0006;text-align:center;pointer-events:none}.sleeve-note>span{font:24px/1.1 var(--serif);display:block}.sleeve-note small{font:12px var(--mono);margin-top:7px;display:block}.liner-link{position:absolute;left:72%;top:84%;font:16px var(--sans);text-shadow:0 1px 6px #000;z-index:9}.needle-target{position:absolute;left:50%;top:21%;width:10%;height:59%;z-index:10;transform-origin:65% 11%;border-radius:40%;}.needle-target>span,.console-volume>span{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);white-space:nowrap;background:#20170fd9;border:1px solid #d7bf8844;padding:7px 13px;border-radius:3px;font-size:14px;opacity:0}.needle-target:hover>span,.needle-target:focus-visible>span,.console-volume:hover>span,.console-volume:focus-visible>span{opacity:1}.console-volume{position:absolute;left:55.5%;top:0;width:7%;height:10%;z-index:8}.console-volume>span{top:120%}.crate-handle{position:absolute;bottom:81px;left:50%;transform:translateX(-50%);padding:10px 20px;background:#21150ec9;border:1px solid #c19e664f;box-shadow:0 3px 15px #0002;border-radius:5px;font-size:14px;z-index:10}.count{font:11px var(--mono);margin-left:12px;opacity:.7}.deck-small-controls{position:absolute;left:30px;bottom:82px;display:flex;gap:12px;font-size:14px;align-items:center}.deck-small-controls>button{padding:8px}body[data-place=room] .deck-small-controls{display:none}.record-crate{position:fixed;z-index:60;left:0;right:0;bottom:60px;height:330px;background:linear-gradient(transparent,#1b1008e8 60%);padding:0 60px 20px}.crate-caption{text-align:center;font:italic 23px var(--serif);margin:0 0 10px;text-shadow:0 2px 7px #000}.crate-records{height:220px;display:flex;justify-content:flex-start;align-items:center;gap:0;padding:20px 30px 30px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-behavior:smooth}.crate-records::-webkit-scrollbar{display:none}.crate-record{flex:0 0 156px;width:156px;aspect-ratio:1;padding:0;position:relative;margin-right:-35px;transform:rotate(var(--tilt,-7deg)) translateY(12px);box-shadow:7px 10px 12px #070404b0;transition:transform .3s;touch-action:none}.crate-record img{width:100%;height:100%;display:block;pointer-events:none;user-select:none}.crate-record:hover,.crate-record:focus-visible{transform:translateY(-15px) rotate(0deg) scale(1.12);z-index:35!important;outline:1px solid #f8dba4}.crate-record.is-selected{transform:translateY(-19px) rotate(0) scale(1.03)}.crate-record>span{position:absolute;left:50%;bottom:0;transform:translate(-50%,115%);font:11px var(--mono);white-space:nowrap;opacity:0;max-width:260px;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 5px #000}.crate-record:hover>span{opacity:1}.crate-bottom{display:flex;align-items:center;justify-content:center;gap:25px;padding-top:5px;font:10px var(--mono);letter-spacing:.04em}.crate-bottom button{font-size:24px;padding:4px 12px}.close-crate{position:absolute;right:24px;top:0;font-size:32px;z-index:5;padding:4px 8px}.drag-ghost{position:fixed;z-index:100;pointer-events:none;box-shadow:10px 18px 25px #0008;transform:rotate(-9deg);width:160px;height:160px}.drag-ghost img{width:100%;height:100%;display:block}.message{position:fixed;z-index:110;left:50%;bottom:80px;transform:translateX(-50%);color:#f5e4c5;font-size:14px;padding:10px 18px;background:#27190ee8;border:1px solid #d0ae7355;border-radius:4px;max-width:90%;text-align:center}.volume-control{position:fixed;z-index:70;right:35px;bottom:83px;background:#e6d8b9;color:#362619;padding:18px 22px;box-shadow:0 5px 20px #0006;border-radius:3px}.volume-control label{display:block;font:italic 20px var(--serif);margin-bottom:8px}input[type=range]{accent-color:#a4542d}.books-scroller{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scrollbar-color:#8d6746 #352216}.table-surface{position:relative;min-height:100%;background:url('assets/reading-table.jpg') center/cover;background-attachment:local}.table-title{position:absolute;left:12%;top:104px;color:#f6e4bd;text-shadow:0 2px 10px #462309}.table-title h1{font:38px/1 var(--serif);font-weight:400;margin:0}.table-title p{font-size:14px;margin:10px 0}.table-book{position:absolute;padding:0;width:var(--w,140px);aspect-ratio:var(--ratio,.66);z-index:var(--z,2);transform:rotate(var(--r,0deg));transform-origin:50% 75%;box-shadow:inset 4px 0 3px #0003,3px 3px 0 #d7c8a7,5px 4px 0 #645339,8px 13px 14px #29120b99;transition:box-shadow .25s;touch-action:none;cursor:grab;background:var(--book-color,#806241);color:var(--book-ink,#eadbbe);border-radius:1px 3px 3px 1px}.table-book:before{content:'';position:absolute;z-index:2;left:3px;top:0;bottom:0;width:5px;background:linear-gradient(90deg,#0003,#fff2,transparent);pointer-events:none}.table-book>img{width:100%;height:100%;object-fit:fill;display:block;pointer-events:none;user-select:none;filter:sepia(.12) brightness(.94)}.table-book:hover,.table-book:focus-visible{box-shadow:3px 3px 0 #d7c8a7,5px 4px 0 #645339,13px 20px 18px #29120bb0;z-index:30}.table-book.dragging{cursor:grabbing;z-index:35;box-shadow:3px 4px 0 #d7c8a7,18px 26px 22px #29120ba8}.table-book.opened{opacity:.3}.book-fallback{display:flex;flex-direction:column;justify-content:space-between;height:100%;padding:15px 12px;text-align:left}.book-fallback strong{font:26px/1.1 var(--serif)}.book-fallback small{font:11px var(--mono)}.table-slip{position:absolute;right:7%;bottom:80px;transform:rotate(-4deg);padding:15px 22px;background:#decea8;color:#58402c;box-shadow:3px 6px 8px #45290d77;max-width:260px}.table-slip>span{font:10px var(--mono);letter-spacing:.1em}.table-slip p{font:italic 17px/1.4 var(--serif);margin:8px 0 0}.quiet-button{position:absolute;bottom:80px;left:32px;font-size:13px;z-index:20;text-shadow:1px 1px 6px #000}.eyebrow{font:11px/1.6 var(--mono);letter-spacing:.12em}.put-back{display:block;font-size:14px;margin-bottom:18px;color:#f1dfbd;text-shadow:1px 1px 7px #000}dialog{padding:0;border:0;background:none;color:#39291f;width:min(920px,calc(100vw - 46px));max-height:90dvh;overflow:auto}dialog::backdrop{background:#170c0877;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:13px;top:8px;z-index:5;font-size:32px;color:#412d21}.liner-paper{display:grid;grid-template-columns:.85fr 1.15fr;gap:32px;background:#e4d5b2;padding:38px;box-shadow:3px 5px 0 #a59677,10px 20px 50px #140b0999;transform:rotate(-.7deg)}.liner-art>img{width:100%;display:block;box-shadow:3px 6px 10px #43241544}.liner-art h2{font:32px/1.05 var(--serif);font-weight:400;margin:24px 0 10px}.liner-art>p{font-size:14px;margin:0}.liner-tracks>p{margin-top:0}.liner-tracks ol{list-style:none;padding:0;margin:16px 0}.liner-tracks button{width:100%;padding:10px 0;display:flex;text-align:left;gap:12px;font-size:14px;border-bottom:1px solid #5b3d2029;color:#46301f}.liner-tracks button>span:first-child{font:10px var(--mono);padding-top:4px;opacity:.65}.liner-tracks button[aria-current]{color:#973819;background:#ad723820}.time-control{display:flex;align-items:center;gap:10px;font:11px var(--mono)}.time-control input{width:100%}.open-spread{display:grid;grid-template-columns:1fr 1fr;min-height:500px;box-shadow:5px 5px 0 #beac82,8px 8px 0 #8e7553,12px 20px 45px #211108ad;perspective:1500px;margin:0 10px 20px;transform:rotate(-1deg)}.left-page,.right-page{position:relative;padding:43px 38px 52px;background:#e9dab6}.left-page{background:linear-gradient(90deg,#e1d0aa,#f2e6c9 20%,#eddfbc 85%,#bca27c);text-align:center;display:flex;align-items:center;flex-direction:column}.right-page{background:linear-gradient(90deg,#bda582,#e6d5af 5%,#eee1c2 30%,#e7d5b0)}.left-page h2{font:36px/1.05 var(--serif);font-weight:400;margin:35px 0 12px}.left-page>p{font-size:15px}.left-page>img{width:95px;height:135px;object-fit:cover;margin-top:25px;transform:rotate(4deg);box-shadow:2px 4px 5px #51311944}.page-number{position:absolute;bottom:15px;left:50%;font:11px var(--mono);color:#927652}.right-page h3{font:38px/1.1 var(--serif);font-weight:400;margin:65px 0 25px}.right-page p{font:20px/1.6 var(--serif);color:#725b3f}.right-page button{position:absolute;bottom:43px;right:35px;font-size:13px;color:#675034}.right-page.turning{animation:page-turn .65s ease-in-out;transform-origin:left}.open-spread .eyebrow{font-size:10px}.book-dialog-opening{animation:book-unfold .5s cubic-bezier(.2,.7,.3,1)}@keyframes vinyl-spin{to{transform:rotate(360deg)}}@keyframes page-turn{0%{transform:rotateY(0deg)}45%{transform:rotateY(-85deg)}100%{transform:rotateY(0deg)}}@keyframes book-unfold{from{opacity:0;transform:translateY(60px) scale(.8)}to{opacity:1;transform:none}}
@media(max-width:900px){.room-hud{padding:22px}.room-hud nav{gap:18px}.signature{font-size:25px}.ambient-hud{padding:20px 22px}#room-caption{display:none}.record-crate{padding-inline:30px;height:315px}.crate-record{flex-basis:140px;width:140px;margin-right:-30px}.crate-records{height:205px}.table-title h1{font-size:33px}.open-spread{min-height:470px}.left-page,.right-page{padding:30px 22px 52px}.left-page h2{font-size:29px}.right-page h3{font-size:32px;margin-top:50px}.right-page p{font-size:18px}}
@media(max-width:600px){.room-hud{padding:17px 18px;display:block}.signature{font-size:24px}.signature span{font-size:22px}.room-hud nav{margin-top:17px;gap:24px;font-size:13px}.room-hud nav>*{padding:4px 0}.room-hud nav #more-toggle{margin-left:auto}.more-menu{top:100px;right:16px}.room-cue{bottom:96px;font-size:12px}.ambient-hud{padding:17px 18px;font-size:11px;gap:12px}#now-playing{max-width:77%}.ambient-hud button:last-child{font-size:11px}.stage:after{background:radial-gradient(ellipse,transparent 45%,#140b083f)}.crate-handle{bottom:116px;width:max-content;font-size:13px}.deck-small-controls{bottom:69px;left:50%;transform:translateX(-50%);font-size:14px;gap:25px}.deck-sleeve,.liner-link{display:none}.record-crate{bottom:155px;height:285px;padding:0 15px 10px;background:linear-gradient(transparent,#170d07f5 60%)}.crate-record{flex-basis:126px;width:126px;margin-right:-20px}.crate-records{height:185px;padding-left:10px}.crate-caption{font-size:19px;margin-bottom:0}.crate-bottom{gap:6px;letter-spacing:0;font-size:9px}.crate-bottom button{padding-inline:8px}.close-crate{right:12px;top:-28px}.table-title{left:8%;top:135px}.table-title h1{font-size:32px}.table-title p{font-size:13px}.quiet-button{bottom:67px;left:20px;font-size:12px}.table-slip{right:9%;bottom:95px}.table-surface{background-size:auto 100%;background-position:center}.table-book{filter:sepia(.08)}dialog{width:calc(100vw - 28px);max-height:88dvh}.liner-paper{display:block;padding:30px 22px}.liner-art>img{width:145px;float:left;margin:0 20px 20px 0}.liner-art h2{font-size:27px;padding-top:15px}.liner-art{min-height:170px}.liner-tracks{clear:both;padding-top:10px}.liner-tracks button{font-size:14px}.open-spread{grid-template-columns:1fr;min-height:620px;margin:0 6px 15px;transform:none}.left-page{display:none}.right-page{min-height:550px;padding:32px;background:linear-gradient(90deg,#ccb78e,#eee0bf 5%,#eddfc0 94%,#d2bb90)}.right-page h3{font-size:40px;margin-top:75px}.right-page p{font-size:21px}.right-page:before{content:attr(data-book-title);display:block;border-bottom:1px solid #b39b7355;padding-bottom:16px;margin-bottom:20px;font:22px/1.1 var(--serif)}.put-back{font-size:13px;margin-left:8px}.message{bottom:210px;width:max-content}.volume-control{right:16px;bottom:70px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.photo-world{will-change:auto}}
.tonearm-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.deck-record{left:11.84%;top:14.9%;width:40.7%}.record-crate.is-dragging{background:transparent}.record-crate.is-dragging .crate-caption,.record-crate.is-dragging .crate-bottom,.record-crate.is-dragging .close-crate{opacity:.15}.record-crate.is-dragging .crate-records{opacity:.35}#deck-stage{background-image:url('assets/reading-table.jpg')}.deck-sleeve{cursor:pointer;padding:0}
body[data-place=deck] .room-world{transform:translate(-50%,-50%) scale(calc(var(--scale)*1.65))}body[data-place=books] .room-world{transform:translate(-56%,-61%) scale(calc(var(--scale)*1.55))}.deck-world>.world-photo{mask-image:linear-gradient(transparent,black 6%,black 95%,transparent)}

/* Album artwork is printed into the rotating label, beneath a fixed spindle. */
.signature{display:inline-flex;align-items:center}
.place-mark{width:27px;height:27px;margin-left:12px;color:#e5b675;flex:none;transform:none}
.record-label{left:33%;top:33%;width:34%;height:34%;padding:0;display:block;overflow:hidden;background:#171411;box-shadow:0 0 0 1px #170e0966,inset 0 0 12px #0002}
.record-label>img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.88) brightness(.91);mix-blend-mode:normal}
.record-label:after{inset:0;width:auto;height:auto;border-radius:50%;background:radial-gradient(circle,transparent 3%,#ffffff0a 4%,transparent 32%,#22160712 90%);box-shadow:inset 0 0 2px 2px #ddc59a44}
.record-spindle{position:absolute;left:49.35%;top:49.35%;width:1.3%;height:1.3%;border-radius:50%;background:radial-gradient(circle at 35% 25%,#eee1c6,#958a70 35%,#3a3329 75%);box-shadow:1px 2px 3px #000b;z-index:2}
/* The far disc rotates in its own plane before that plane is foreshortened. */
.distant-record{left:692px;top:391px;width:166px;height:16px;z-index:3;pointer-events:none;filter:brightness(.56) saturate(.7) sepia(.16) blur(.22px);opacity:.94}
.distant-disc-plane{position:absolute;left:0;top:50%;width:166px;height:166px;transform:translateY(-50%) scaleY(.092);transform-origin:center}
.distant-label{position:absolute;left:33%;top:33%;width:34%!important;height:34%!important;border-radius:50%;object-fit:cover}
.distant-disc-plane:after{content:'';position:absolute;left:49%;top:49%;width:2%;height:2%;border-radius:50%;background:#d3c29c}
.propped-sleeve{left:33.4%;top:34.05%;width:7.5%;height:13.33%;transform:perspective(600px) rotateY(12deg) rotate(-4deg);transform-origin:bottom;filter:brightness(.64) saturate(.78) sepia(.14) blur(.22px);box-shadow:5px 3px 6px #160c09b3,0 4px 3px #0a0608a6}
.propped-sleeve:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,#efb96312,transparent 40%,#160a0829);box-shadow:inset 1px 0 1px #f4d4a522;pointer-events:none}
.propped-sleeve:hover{transform:perspective(600px) rotateY(8deg) rotate(-3deg) translateY(-3px);filter:brightness(.77) saturate(.85) sepia(.1)}
/* A folded, printed sleeve insert, with controls that remain easy to use. */
#liner-dialog{width:min(950px,calc(100vw - 48px));max-height:92dvh;padding:38px 14px 17px;overflow:auto;color:#352e23}
#liner-dialog .dialog-close{position:absolute;top:0;right:20px;color:#f2e2c3;font:14px/1.5 var(--sans);padding:3px 0;display:flex;gap:9px;align-items:center;text-shadow:0 2px 6px #160b08}
#liner-dialog::backdrop{background:#140b08a3;backdrop-filter:blur(6px)}
.liner-paper{position:relative;display:grid;grid-template-columns:.92fr 1.08fr;gap:0;padding:0;transform:rotate(-.45deg);background:#e7dcc0;border:1px solid #ac936b;box-shadow:1px 2px 0 #baaa88,3px 4px 0 #d7c6a0,5px 6px 0 #9d8864,12px 23px 38px #080403a8;isolation:isolate;}
.liner-paper:before{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.55;background:repeating-linear-gradient(0deg,#56391705 0 1px,transparent 1px 3px),radial-gradient(ellipse at 4% 0%,#9a67351f,transparent 45%),radial-gradient(ellipse at 99% 100%,#91552826,transparent 38%);box-shadow:inset 0 0 17px #724b162e}
.liner-paper:after{content:'';position:absolute;top:0;bottom:0;left:46%;width:24px;transform:translateX(-50%);z-index:2;pointer-events:none;background:linear-gradient(90deg,transparent,#8b714422 35%,#6c54224d 49%,#f7edcf77 55%,transparent);}
.liner-art{min-width:0;padding:29px 31px 26px;background:linear-gradient(108deg,#eddfbd,#e9dfc4 65%,#dcd0ae);display:flex;flex-direction:column;align-items:stretch}
.liner-kicker{font:10px/1.5 var(--mono);letter-spacing:.14em;margin:0 0 23px;color:#7b6444}
.liner-cover-print{position:relative;transform:rotate(-1.2deg);padding:0;background:#d8c99e;box-shadow:0 0 0 1px #a18a6233,1px 2px 3px #6a522229}
.liner-cover-print img{display:block;width:100%;aspect-ratio:1;object-fit:cover;filter:sepia(.14) saturate(.82) contrast(.93);mix-blend-mode:multiply}
.liner-cover-print:after{content:'';position:absolute;inset:0;border:1px solid #e9dcbd66;box-shadow:inset 0 0 9px #6e51221a;pointer-events:none}
.liner-art h2{font:clamp(27px,3.3vw,43px)/.98 var(--serif);font-weight:400;letter-spacing:-.035em;margin:26px 0 12px;color:#373026}
.liner-art>p#liner-artist{font:15px/1.45 var(--sans);margin:0 0 24px;color:#67523c}
.liner-imprint{display:flex;justify-content:space-between;gap:8px;padding-top:13px;margin-top:auto;border-top:1px solid #87714b77;font:10px/1.4 var(--mono);letter-spacing:.07em;color:#69583c}
.liner-tracks{min-width:0;padding:28px 28px 20px 34px;background:linear-gradient(90deg,#ddd1ae,#ede3c9 18%,#e6d9b8);display:flex;flex-direction:column}
.liner-track-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:15px;border-bottom:2px solid #645136a3}
.liner-track-heading h3{font:25px/1.1 var(--serif);font-weight:400;margin:0;letter-spacing:-.02em}
#liner-track-count{font:12px var(--mono);color:#746245;white-space:nowrap}
.liner-tracks ol{margin:7px 0 24px;max-height:310px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#a38c66 transparent;flex:1;min-height:120px}
.liner-tracks button{gap:12px;align-items:center;position:relative;padding:11px 7px 11px 0;border-bottom:1px solid #69512e2b;font:14px/1.4 var(--sans);color:#413727;min-height:44px;transition:background .15s,color .15s}
.liner-tracks button:hover{background:#a7693214;color:#863c25}
.liner-tracks button:focus-visible{outline:2px solid #9a482b;outline-offset:-2px}
.liner-tracks button>.track-number{width:19px;flex-shrink:0;font:11px var(--mono);padding-top:0;opacity:.6}
.track-name{flex:1}
.liner-tracks button>.track-state{font:9px var(--mono);letter-spacing:.06em;color:#6b502e;opacity:0;transition:opacity .15s;flex:none}
.liner-tracks button[aria-current]{background:#a46a2820;color:#8b351e}
.liner-tracks button[aria-current]>.track-state,.liner-tracks button:hover>.track-state,.liner-tracks button:focus-visible>.track-state{opacity:1}
.liner-tracks button.track-playing>.track-number{color:#9a4528;opacity:1}
.liner-player{border-top:1px solid #87714b88;padding:13px 0 10px;margin-top:auto}
.liner-playing-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
#liner-current{font:12px/1.4 var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#69553c}
#liner-play{display:flex;align-items:center;justify-content:center;gap:10px;min-width:102px;width:auto;flex:none;background:#503729;color:#f4e6c7;padding:8px 12px;border:1px solid #382319;border-radius:2px;font:13px/1.5 var(--sans);min-height:38px;box-shadow:0 1px 0 #fff4 inset}
#liner-play:hover{background:#704329}
#liner-play span{font-size:10px}
.time-control{font:11px var(--mono);gap:10px;color:#69563e}
.time-control input{accent-color:#805538;cursor:pointer;min-width:0;height:17px}
.time-control input:disabled{opacity:.45;cursor:default}
.liner-footnote{font:italic 16px var(--serif);color:#8a6c46;margin:12px 0 0;text-align:center}
@media(max-width:600px){
 .place-mark{width:24px;height:24px;margin-left:10px}
 #liner-dialog{width:calc(100vw - 18px);padding:36px 6px 12px;max-height:94dvh}
 #liner-dialog .dialog-close{right:9px;font-size:13px}
 .liner-paper{grid-template-columns:1fr;transform:rotate(-.25deg)}
 .liner-paper:after{top:205px;bottom:auto;left:0;width:100%;height:12px;transform:none;background:linear-gradient(transparent,#86663322,#fff2,transparent)}
 .liner-art{display:grid;grid-template-columns:116px 1fr;column-gap:20px;padding:22px 20px 20px;min-height:0;align-items:start}
 .liner-kicker{grid-column:1/-1;margin:0 0 17px;font-size:9px;letter-spacing:.09em}
 .liner-cover-print{grid-column:1;grid-row:2/5}
 .liner-cover-print img{float:none;margin:0;width:100%}
 .liner-art h2{grid-column:2;margin:0 0 8px;font-size:27px;padding:0}
 .liner-art>p#liner-artist{grid-column:2;font-size:13px;line-height:1.4;margin:0}
 .liner-imprint{grid-column:1/-1;margin-top:18px;padding-top:10px;font-size:9px}
 .liner-tracks{padding:18px 20px 20px;clear:none}
 .liner-track-heading h3{font-size:25px}
 .liner-tracks ol{max-height:245px;min-height:80px;margin-bottom:14px}
 .liner-tracks button{font-size:14px;min-height:44px}
 .liner-playing-heading{margin-bottom:8px}
 .liner-footnote{font-size:15px}
}

/* Archival scans sit on the photographed paper; multiply preserves its warm light. */
.wall-poster{position:absolute;z-index:1;display:block;object-fit:contain;mix-blend-mode:multiply;filter:saturate(.91) sepia(.1) contrast(1.04);opacity:.96;pointer-events:none;user-select:none}
.poster-left{left:474px;top:29px;width:192px;height:273px;transform:rotate(-.35deg);clip-path:polygon(.5% 0,98% .5%,100% 98%,96% 99%,2% 100%,0 96%)}
.poster-center{left:739px;top:22px;width:254px;height:284px;transform:rotate(.15deg);clip-path:polygon(1% 0,99% .3%,100% 98%,97% 100%,0 99%)}
.poster-right{left:1090px;top:35px;width:195px;height:271px;transform:rotate(.35deg);clip-path:polygon(0 1%,99% 0,100% 97%,97% 100%,1% 99%)}
.poster-left{background:#b90917}
.poster-center{background:#3e7658}
.poster-right{background:#54adcc}

/* The art itself is the link; no badges or icons on the posters. */
.room-cue{pointer-events:none;transition:opacity .5s}
.interacted .room-cue{opacity:0}
.poster-hit{position:absolute;z-index:4;background:transparent;cursor:pointer}
.poster-hit:focus-visible{clip-path:none;outline:2px solid #efd9a8;outline-offset:4px}
.scene-paper-link{position:absolute;z-index:9;display:block;background:transparent;cursor:pointer;outline-offset:5px}
.notebook-target{left:875px;top:775px;width:205px;height:65px;transform:rotate(-4deg)}
.folder-target{left:1217px;top:778px;width:265px;height:65px;transform:rotate(3deg)}
.scene-paper-link>span{position:absolute;left:50%;bottom:105%;transform:translateX(-50%);font:14px var(--sans);color:#f4e3bf;background:#281a10e8;padding:6px 13px;border-radius:3px;opacity:0;transition:opacity .2s;white-space:nowrap;pointer-events:none}
.scene-paper-link:hover>span,.scene-paper-link:focus-visible>span{opacity:1}
.incense-object{position:absolute;left:872px;top:324px;width:80px;height:110px;z-index:7;--burn:0}
.incense-stick-plane{position:absolute;left:0;bottom:8px;width:80px;height:100px;transform:rotate(14deg);transform-origin:50% 100%;pointer-events:none}
.incense-stick-art{width:100%;height:100%;object-fit:fill;display:block;clip-path:inset(calc(4.1% + var(--burn)*75%) 0 0 0);filter:brightness(.65) sepia(.14);pointer-events:none}
.incense-ember{position:absolute;left:50%;top:calc(4.1% + var(--burn)*75%);width:4px;height:4px;border-radius:50%;transform:translate(-50%,-50%);background:#ffa555;box-shadow:0 0 3px 1px #f7732999,0 0 9px 3px #ec592d44;opacity:0;transition:opacity 2s}
.incense-object.is-lit .incense-ember{opacity:1;animation:ember-breathe 4s ease-in-out infinite}
.incense-smoke-origin{position:absolute;left:50%;top:calc(4.1% + var(--burn)*75%);transform:rotate(-14deg);transform-origin:0 0;opacity:0;transition:opacity 3s;pointer-events:none}
.incense-object.is-lit .incense-smoke-origin{opacity:1}
.smoke-wisp{position:absolute;bottom:-4px;left:-45px;width:90px;height:180px;object-fit:fill;opacity:0;pointer-events:none;transform-origin:50% 100%;animation:incense-rise 19s ease-out infinite;animation-play-state:paused;filter:blur(.35px)}
.smoke-two{animation-delay:6.3s}
.smoke-three{animation-delay:12.6s}
.incense-object.is-lit .smoke-wisp{animation-play-state:running}
.incense-control{position:absolute;inset:-8px -10px -18px;background:transparent;border:0;cursor:pointer}
.incense-control>span{position:absolute;left:50%;top:90%;transform:translateX(-50%);white-space:nowrap;font:14px var(--sans);color:#ecd7b5;text-shadow:0 2px 5px #130b06;background:#2b1c1177;border-bottom:1px solid #dfbe8538;border-radius:2px;padding:3px 9px;opacity:.8;transition:opacity .2s}
.incense-control:hover>span,.incense-control:focus-visible>span{opacity:1;background:#2b1c11dd}
@keyframes incense-rise{0%{opacity:0;transform:translate(0,6px) scale(.58,.75)}15%{opacity:.26}55%{opacity:.19;transform:translate(-8px,-24px) scale(.98,1.12)}100%{opacity:0;transform:translate(20px,-72px) scale(1.35,1.5)}}
@keyframes ember-breathe{0%,100%{opacity:.8}45%{opacity:1}}
@media(prefers-reduced-motion:reduce){.incense-object.is-lit .smoke-one{opacity:.14;transform:none}.smoke-two,.smoke-three{display:none}}

/* A single scene fills wide screens, so the tabletop behind it cannot form side seams. */
.deck-world.fills-stage>.world-photo{mask-image:none}

/* Books and music use the same quiet text cues as the notebook and folder. */
.deck-target::after,.crate-target::after,.book-target::after,.lamp-target::after{content:none}
.deck-target>span,.crate-target>span,.book-target>span,.lamp-target>span{color:#f4e3bf;background:#281a10e8;border:0;border-radius:3px;padding:6px 13px;pointer-events:none}

/* Highlight the shelf label, not its oversized invisible hit area. */
.crate-target:focus-visible{outline:none}
.crate-target:focus-visible>span{outline:2px solid #ffdca0;outline-offset:3px}

/* Long reading notes, with page controls that stay within reach. */
.open-spread .right-page{display:flex;flex-direction:column;min-height:0;height:min(660px,calc(90dvh - 75px));padding-bottom:24px}
#page-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#9f835966 transparent;padding-right:8px}
#page-content h3{font-size:32px;margin:26px 0 22px}
#page-content p{font:19px/1.65 Georgia,serif;margin:0 0 20px;color:#65513b}
#page-content h4{font:23px/1.35 var(--serif);margin:24px 0 14px}
.book-page-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #b39b7355;padding-top:10px;margin-top:15px;flex:none}
.right-page .book-page-controls button{position:static;min-height:44px;font-size:13px}
.book-page-controls button:disabled{opacity:.35;cursor:default}
#right-page-number{font:11px var(--mono);color:#927652;white-space:nowrap}
@media(max-width:600px){#book-dialog .open-spread{min-height:0}.open-spread .right-page{height:calc(90dvh - 85px);min-height:400px;padding:25px 28px 16px}#page-content h3{font-size:29px;margin:20px 0}#page-content p{font-size:18px}.right-page:before{flex:none}.paper-route-footer{flex-wrap:wrap}}

.library-notice{position:fixed;z-index:1000;bottom:16px;left:50%;transform:translateX(-50%);max-width:90vw;background:#eadbb5;color:#3d2b1b;padding:16px 22px;box-shadow:0 4px 25px #0005;}

/* A quiet page for personal notes, with the book details opposite. */
#book-dialog .open-spread{min-height:0}
#book-dialog .left-page,#book-dialog .right-page{display:flex;flex-direction:column;align-items:stretch;height:min(560px,calc(90dvh - 85px));min-height:320px;padding:52px 42px 30px;text-align:left;overflow-y:auto}
#book-dialog .left-page{justify-content:flex-start}
#book-dialog .right-page{justify-content:center}
#book-dialog .right-page:before{content:none}
#open-book-title{font:clamp(28px,3.5vw,42px)/1.12 var(--serif);margin:0 0 14px;overflow-wrap:anywhere}
#book-dialog #open-book-author{font:16px/1.5 var(--sans);color:#806749;margin:0 0 30px}
#book-dialog #open-book-description{font:18px/1.65 Georgia,serif;color:#65513b;margin:0;max-width:32ch}
#book-dialog #page-content{width:100%;text-align:left}
#book-dialog .book-page-controls button{position:static;min-height:44px;font-size:14px;color:#675034}
#book-dialog .left-page.turning{animation:page-turn .65s ease-in-out;transform-origin:right}
@media(max-width:600px){#book-dialog .right-page{grid-row:1;height:auto;min-height:360px;padding:42px 28px}#book-dialog .left-page{display:none;height:auto;min-height:260px;padding:30px 28px}#book-dialog.has-book-notes .left-page{display:flex;grid-row:2}#open-book-title{font-size:32px}#book-dialog #open-book-author{margin-bottom:24px}#book-dialog #page-content{overflow:visible}}
.table-slip p{margin:0;font-size:18px;line-height:1.4}
@media(max-width:900px){}
@media(max-width:600px){.table-slip p{font-size:17px}}
