/* Clothbound volumes, page edges and warm-lit graphite shelving. */
#library .reading-layout{display:block}
#library .section-copy{display:flex;justify-content:space-between;align-items:end;gap:28px;margin-bottom:34px}
#library .section-copy h2{font-size:clamp(28px,3.1vw,43px);margin:0;line-height:1.35}
#library .section-copy p{margin:0;max-width:330px;line-height:1.9;font-size:13px}
.personal-bookshelf{max-width:1100px;margin:auto;border:1px solid #75695355;padding:25px 28px 13px;background:linear-gradient(110deg,#242623,#171a1b 50%,#202221);box-shadow:0 22px 60px #0005,inset 0 0 30px #0005;border-radius:3px}
.shelf-label{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#cec9b9;font-size:15px;min-height:44px}
.shelf-label>span{display:flex;align-items:center;gap:13px}
.shelf-label i{font:10px Georgia,serif;font-style:normal;color:#b89b67}
.shelf-label small{font-size:8px;letter-spacing:2px;color:#888d85}
.shelf-label>a{font-size:11px;color:#c8ad78;min-height:44px;display:flex;align-items:center}
.shelf-bay{position:relative;background:radial-gradient(ellipse at 50% 0,#b0893a18,transparent 55%),linear-gradient(180deg,#111514,#1a1c1b);box-shadow:inset 0 15px 22px #0008;margin:0 0 20px;border-top:1px solid #d3b87466}
.shelf-bay:before{content:"";position:absolute;top:0;left:8%;right:8%;height:2px;background:#d4b16b;box-shadow:0 0 16px 4px #be965135;opacity:.65}
.shelf-bay:after{content:"";position:absolute;bottom:-13px;left:-6px;right:-6px;height:15px;border-top:1px solid #bfab8277;background:linear-gradient(#55574e,#323630 45%,#202521);box-shadow:0 8px 12px #0009;pointer-events:none}
.article-shelf{display:grid;grid-template-columns:260px 1fr;gap:7%;align-items:center;padding:32px 6% 10px;min-height:330px}
.featured-volume{padding:0 16px 0 6px;display:flex;justify-content:center;perspective:1200px}
.shelf-book{position:relative;display:block;flex:0 0 135px;width:135px;height:211px;isolation:isolate;perspective:800px;transform:rotate(-2deg);transform-origin:50% 100%;transition:transform .32s,filter .32s;outline-offset:6px;box-shadow:12px 12px 13px #0006;border-radius:2px 4px 4px 2px;text-decoration:none}
.shelf-book:hover,.shelf-book:focus-visible{transform:translateY(-9px) rotate(0);filter:brightness(1.12);z-index:2}
.shelf-book:focus-visible{outline:2px solid #dab064}
.shelf-book:nth-child(3n+2){transform:rotate(1deg)}
.shelf-book:nth-child(3n+2):hover,.shelf-book:nth-child(3n+2):focus-visible{transform:translateY(-9px) rotate(0)}
.book-front{position:absolute;inset:0;display:flex;flex-direction:column;padding:16px 15px 11px 19px;background:linear-gradient(90deg,#0005 0,#ffffff0a 4%,transparent 8%,#ffffff06 98%,#0005),url('./assets/paper-fibers.svg'),var(--book-color,#20282b);background-size:100% 100%,160px 160px,100%;border:1px solid #aaa78b55;border-radius:2px 4px 4px 2px;box-shadow:inset 4px 0 4px #0007,inset -1px 0 1px #fff3;color:var(--book-ink,#e9e3d4);transform:rotateY(-9deg);transform-origin:0 50%;overflow:hidden}
.book-front:before{content:"";position:absolute;top:0;bottom:0;left:10px;width:1px;background:#0004;box-shadow:1px 0 1px #fff1}
.book-pages{position:absolute;top:3px;bottom:3px;right:-8px;width:10px;background:repeating-linear-gradient(90deg,#aaab9d 0 1px,#e6e0d0 1px 2px);transform:skewY(-7deg);border-radius:0 3px 3px 0;box-shadow:2px 0 2px #0007}
.book-imprint{display:flex;justify-content:space-between;gap:5px;font:6px Georgia,serif;letter-spacing:1px;opacity:.65;line-height:1.5}
.book-imprint>span{letter-spacing:.6px}
.book-symbol{font-family:Georgia,'Songti SC',serif;font-size:43px;line-height:1.2;color:var(--book-accent,#bea472);margin:18px 0 14px;align-self:center}
.book-title{font-size:16px;line-height:1.5;letter-spacing:.3px;font-weight:600;display:block}
.book-category{font-size:8px;line-height:1.6;opacity:.6;margin-top:6px}
.book-author{font-size:8px;letter-spacing:1px;display:flex;justify-content:space-between;margin-top:auto;padding-top:12px;border-top:1px solid #a69b7544}
.book-author>span{font-size:14px}
.tone-gold{--book-color:#655331;--book-ink:#f7edd4;--book-accent:#e6c37f}
.tone-stone{--book-color:#b9b5a7;--book-ink:#303630;--book-accent:#565b4d}
.tone-olive{--book-color:#3e4942;--book-accent:#cfbb85}
.tone-slate{--book-color:#344249;--book-accent:#b3c6c6}
.tone-sand{--book-color:#958773;--book-ink:#272d2a;--book-accent:#383d36}
.tone-burgundy{--book-color:#533b36;--book-accent:#dcc19b}
.tone-charcoal{--book-color:#262b2c;--book-accent:#c4aa73}
.tone-cream{--book-color:#d4cebb;--book-ink:#343c36;--book-accent:#716950}
.featured-book{width:225px;height:298px;flex-basis:225px;transform:rotate(-3deg)}
.featured-book .book-front{padding:17px 17px 14px 23px}
.featured-book .book-imprint{font-size:8px}
.book-cover-image{display:block;width:100%;height:auto;aspect-ratio:2.5;object-fit:contain;margin:17px 0 16px;box-shadow:0 2px 8px #0006}
.featured-book .book-title{font-size:19px;line-height:1.5}
.featured-book .book-category{font-size:9px;margin-top:12px}
.featured-book .book-author{font-size:9px}
.featured-note{padding:10px 0 28px;max-width:500px}
.featured-note .eyebrow{font-size:9px;letter-spacing:1.6px}
.featured-note h3{font-size:clamp(22px,2.7vw,34px);line-height:1.5;margin:18px 0;color:#ebe6d9;font-weight:550;max-width:400px}
.featured-note p{font-size:13px;line-height:2;color:#a6aca4;margin:0 0 18px}
.shelf-read-link{display:inline-flex;align-items:center;gap:40px;color:#d4b06b;font-size:13px;min-height:44px;border-bottom:1px solid #9a7d5044}
.featured-note>small{display:block;font-size:9px;color:#7f877f;margin-top:18px}
.skills-shelf{padding:0 9px}
.shelf-book-rail{display:flex;align-items:end;gap:25px;padding:36px 18px 13px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#8c79534d transparent;scroll-padding-left:18px}
.shelf-footnote{display:flex;justify-content:space-between;gap:18px;margin:25px 0 0;font-size:10px;color:#969b91}
#library .listening-space{margin:40px auto 0;border:0;padding:25px 0 0;display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,480px);align-items:center;gap:28px 48px;max-width:1060px;border-top:1px solid #8c795344}
#library .listening-space .section-copy{display:block;margin:0}
#library .listening-space h2{font-size:25px;margin-bottom:12px}
#library .listening-space p{font-size:12px;max-width:none}
#library .turntable{margin:0;width:100%;grid-column:2;grid-row:1;max-width:480px}
#library .music-turntable{container-type:inline-size}
#library .music-turntable .record-brand{position:absolute;left:35.95%;top:34.16%;width:17.8%;height:13.65%;pointer-events:none;color:#49351c;mix-blend-mode:multiply;text-align:center;font-family:Arial,Helvetica,sans-serif;letter-spacing:.14em;text-shadow:0 1px 0 #fff2}
#library .music-turntable .record-brand>b,#library .music-turntable .record-brand>span{position:absolute;left:0;width:100%;line-height:1;transform:scaleY(.6);transform-origin:center;font-weight:700}
#library .music-turntable .record-brand>b{top:10%;font-size:3.05cqw}
#library .music-turntable .record-brand>span{bottom:12%;font-size:2.7cqw;letter-spacing:.32em;padding-left:.32em}
#library .music-turntable>img{width:100%;height:auto;filter:drop-shadow(0 18px 18px #0008)}
#library .music-turntable .record-sheen{position:absolute;left:18%;top:20%;width:59%;height:46%;border-radius:50%;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .3s}
#library .music-turntable .record-sheen:after{content:"";position:absolute;inset:-30%;background:conic-gradient(transparent 0 40%,#e6e4d21a 48%,transparent 56% 89%,#e6e4d214 95%,transparent);animation:spin 5s linear infinite;animation-play-state:paused}
.music-playing #library .music-turntable .record-sheen{opacity:.65}
.music-playing #library .music-turntable .record-sheen:after{animation-play-state:running}
#library .record-caption{grid-column:1/-1;margin:0}
.library-shelf-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 35px;margin-top:35px}
.library-volume{min-width:0;position:relative;padding:0 12px 20px}
.library-volume>.shelf-book{width:100%;height:240px;transform:rotate(-1deg)}
.library-volume>.shelf-book:hover,.library-volume>.shelf-book:focus-visible{transform:translateY(-8px)}
.library-volume:after{content:"";position:absolute;left:0;right:0;top:238px;height:12px;background:linear-gradient(#9a8a6c,#6e6454 50%,#504a3e);box-shadow:0 5px 9px #66553b44}
.library-volume>p{font-size:12px;line-height:1.8;color:#65685e;margin:25px 0 10px}
.library-volume>span{font-size:10px;color:#8b7c5d}
.library-shelf-grid .book-symbol{font-size:46px;margin:24px 0 20px}
.library-shelf-grid .book-title{font-size:18px}
.article-directory{grid-template-columns:minmax(160px,270px);gap:30px}
.article-directory .shelf-book{height:330px}
.article-directory .library-volume:after{top:328px}
.article-directory .book-cover-image{margin:22px 0}
.reader-author{display:flex;align-items:center;gap:12px;font-size:12px;margin:20px 0;color:#75694e}
.reader-author img{border-radius:50%;width:36px;height:36px}
.reader-author a{margin-left:auto;color:#8d713d;min-height:44px;display:flex;align-items:center}
.article-hero{display:block;width:100%;height:auto;border:1px solid #ab9c7d66;border-radius:2px;margin:0 0 35px}
.article-prose p{white-space:pre-line;margin:18px 0}
.article-prose figure{margin:32px 0}
.article-prose figure img{width:100%;height:auto;display:block;box-shadow:0 2px 14px #4d432012}
.article-prose h2{margin-top:36px}
.article-prose ul{font-size:16px;line-height:2;color:#51564f}
.reader-end{display:flex;flex-wrap:wrap;gap:15px 22px;align-items:center;line-height:1.7}
.reader-end code{word-break:break-all;color:#736140;font-size:11px}
.skill-facts{border-top:1px solid #ad9a7055;border-bottom:1px solid #ad9a7055;margin:32px 0}
.skill-facts section{margin:24px 0}
.skill-facts h2{font-size:16px;color:#6b6048}
.skill-facts p{margin:6px 0}
.skill-reader .content-note{font-size:12px!important;margin-top:20px}
@media(max-width:760px){
 #library .section-copy{display:block;margin-bottom:25px}#library .section-copy p{margin-top:15px;font-size:12px}
 .personal-bookshelf{padding:14px 13px 12px}.shelf-label{font-size:13px}.shelf-label small{font-size:6px;letter-spacing:1px}.shelf-label>a{font-size:9px}
 .article-shelf{grid-template-columns:1fr;gap:24px;padding:27px 15px 15px}.featured-volume{padding:0 6px}.featured-book{width:208px;height:280px;flex-basis:208px}.featured-book .book-title{font-size:17px}
 .featured-note{padding:8px 0 5px}.featured-note h3{font-size:23px;margin:12px 0}.featured-note p{font-size:12px;line-height:1.9}.featured-note>small{margin-top:10px}
 .shelf-book-rail{gap:20px;padding:30px 12px 14px}.skill-book{width:127px;flex-basis:127px;height:205px}.book-title{font-size:15px}.shelf-footnote{font-size:9px;gap:9px}.shelf-footnote>span:first-child{display:none}
 #library .listening-space{grid-template-columns:minmax(0,1fr);gap:18px;margin-top:30px}#library .listening-space .section-copy{margin-bottom:0}#library .listening-space h2{font-size:23px}#library .listening-space p{font-size:12px}#library .turntable{grid-column:1;grid-row:2;max-width:460px;justify-self:center}#library .record-caption{flex-wrap:wrap}
 .library-shelf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 14px}.library-volume{padding:0 5px 10px}.library-volume>.shelf-book{height:222px}.library-volume:after{top:220px}.library-shelf-grid .book-title{font-size:16px}.library-shelf-grid .book-imprint{font-size:5px;letter-spacing:.5px}.library-volume>p{font-size:11px}.library-shelf-grid .book-symbol{font-size:38px;margin:20px 0 17px}.library-shelf-grid .book-front{padding:14px 10px 10px 16px}
 .article-directory{grid-template-columns:minmax(160px,260px);justify-content:center}.article-directory .shelf-book{height:320px}.article-directory .library-volume:after{top:318px}.article-directory .book-title{font-size:19px}
 .reader-author{gap:8px;font-size:10px}.reader-author a{font-size:10px}.article-prose ul{font-size:15px}
}
@media(prefers-reduced-motion:reduce){.shelf-book{transition:none}.shelf-book:hover,.shelf-book:focus-visible{transform:none}}
/* A tidy shelf at rest; only the selected volume moves forward. */
.shelf-book,.shelf-book:nth-child(3n+2),.featured-book,.library-volume>.shelf-book{transform:none}
.shelf-book:hover,.shelf-book:focus-visible,.shelf-book:nth-child(3n+2):hover,.shelf-book:nth-child(3n+2):focus-visible,.library-volume>.shelf-book:hover,.library-volume>.shelf-book:focus-visible{transform:translateY(-5px)}
.shelf-book-rail{gap:28px}
#home-bookshelf .skill-book{height:230px}
.shelf-book.is-opening,.shelf-book.is-opening:hover,.shelf-book.is-opening:focus-visible{animation:book-pull .42s cubic-bezier(.2,.75,.3,1) both;z-index:5}
.shelf-book.is-opening .book-front{transform:rotateY(-17deg);transition:transform .42s}
.shelf-bay.is-choosing .shelf-book:not(.is-opening){filter:brightness(.75)}
@keyframes book-pull{0%{transform:translateY(0) scale(1);box-shadow:12px 12px 13px #0006}55%{transform:translateY(-17px) translateX(4px) scale(1.035);box-shadow:15px 26px 24px #0008}100%{transform:translateY(-23px) translateX(7px) scale(1.07);box-shadow:20px 34px 30px #0009}}
@media(max-width:760px){#home-bookshelf .skill-book{height:224px}#home-bookshelf .book-symbol{font-size:36px;margin:17px 0 12px}.library-shelf-grid .book-symbol{font-size:35px;margin:16px 0 12px}}
@media(prefers-reduced-motion:reduce){.shelf-book.is-opening{animation:none}.shelf-book.is-opening .book-front{transition:none}}
