/* Personal shelves. Artwork keeps its original proportions; notes need no JS. */
.library-section{margin:64px 0 50px;padding-top:40px;border-top:1px solid var(--line)}
.library-page{max-width:1040px;margin:46px auto 70px}
.library-intro{display:flex;justify-content:space-between;align-items:center;gap:28px;padding-bottom:36px}
.library-intro h1,.library-intro h2{font:700 clamp(38px,4.5vw,56px)/1.05 var(--serif);letter-spacing:-1.7px}
.library-intro p{font:400 15px/1.7 var(--serif);color:var(--muted);margin-top:13px}
.library-hint{display:block;font:400 10px/1.6 var(--sans);color:var(--muted);margin-top:8px}
.library-intro>.text-link{color:var(--muted);font-size:11px;min-height:44px}
.library-group{display:grid;grid-template-columns:210px minmax(0,1fr);gap:48px;padding:36px 0 40px;border-top:1px solid var(--line)}
.library-group-heading{padding-top:4px}
.library-group-heading h2,.library-group-heading h3{font:500 28px/1.15 var(--serif);letter-spacing:-.65px}
.library-group-heading p{font:400 11px/1.7 var(--sans);color:var(--muted);margin-top:10px;max-width:20ch}
.library-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,180px));gap:34px 44px;align-items:start;min-width:0}
.library-item{min-width:0}
.library-note summary{position:relative;display:block;list-style:none;cursor:pointer;min-height:44px}
.library-note summary::-webkit-details-marker{display:none}
.library-note summary:focus-visible{outline:2px solid var(--accent);outline-offset:8px;border-radius:2px}
.library-cover{display:flex;align-items:flex-end;justify-content:flex-start;height:260px;margin-bottom:18px}
.library-cover img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:3px 5px 10px rgb(30 27 21 / .13);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.library-group[data-kind="Book"] .library-cover img{border-radius:1px 3px 3px 1px}
.library-group[data-kind="Film"] .library-cover img{border-radius:1px}
.library-group[data-kind="Music"] .library-cover{height:180px}
.library-note summary:hover .library-cover img,.library-note summary:focus-visible .library-cover img{transform:translateY(-4px);box-shadow:4px 9px 15px rgb(30 27 21 / .16)}
.library-title{font:600 18px/1.25 var(--serif);letter-spacing:-.25px;margin:0;padding-right:12px;text-wrap:pretty}
.library-creator{display:block;font:400 10px/1.6 var(--sans);color:var(--muted);margin-top:5px}
.library-note-cue{position:absolute;right:0;bottom:3px;display:inline-flex;color:var(--muted)}
.library-note-cue .icon{width:11px;height:11px;transition:transform .2s}
.library-note[open] .library-note-cue .icon{transform:rotate(180deg)}
.library-note-body{margin:14px 0 0;padding:14px 12px;border:1px solid transparent;background:transparent;border-radius:8px;transition:background .3s var(--ease),border-color .3s var(--ease)}
.library-note-body p{font:400 14px/1.8 var(--serif);color:var(--muted);margin:0}
.library-note-body a{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font:500 10px/1.5 var(--sans);min-height:44px;margin-top:7px}
.library-note-body a:hover{text-decoration:underline;text-underline-offset:4px}
.library-note-body a .icon{width:12px;height:12px}
/* Expanded note reads as an active card: accent title, growing underline, soft panel. */
.library-title{position:relative;padding-bottom:8px}
.library-title::after{content:'';position:absolute;left:0;bottom:0;height:2px;width:30px;border-radius:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .32s var(--ease)}
.library-note[open] .library-title{color:var(--accent)}
.library-note[open] .library-title::after{transform:scaleX(1)}
.library-note[open] .library-note-cue{color:var(--accent)}
.library-note[open] .library-cover img{box-shadow:3px 5px 15px rgb(30 27 21/.22)}
.library-note[open] .library-note-body{background:var(--soft);border-color:var(--line)}
.library-credit,.library-empty{font:400 11px/1.7 var(--sans);color:var(--muted);border-top:1px solid var(--line);padding-top:22px}
:root[data-theme=dark] .library-cover img{box-shadow:3px 5px 14px rgb(0 0 0 / .35)}
@media(max-width:1023px){.library-group{grid-template-columns:170px minmax(0,1fr);gap:32px}.library-row{column-gap:32px}}
@media(max-width:767px){.library-section{margin-top:42px;padding-top:28px}.library-page{margin:30px 0 46px}.library-intro{align-items:flex-start;flex-direction:column;gap:10px;padding-bottom:27px}.library-intro h1,.library-intro h2{font-size:40px;letter-spacing:-1.2px}.library-intro p{font-size:14px;margin-top:10px}.library-hint{font-size:10px}.library-group{grid-template-columns:1fr;gap:24px;padding:28px 0 32px}.library-group-heading{padding-top:0}.library-group-heading h2,.library-group-heading h3{font-size:26px}.library-group-heading p{margin-top:6px;max-width:none}.library-row{grid-template-columns:repeat(2,minmax(0,180px));gap:28px 26px}.library-cover{height:clamp(185px,61vw,260px);margin-bottom:15px}.library-section .library-row--strip{grid-template-columns:repeat(2,minmax(0,180px))}.library-group[data-kind="Music"] .library-cover{height:auto;aspect-ratio:1;align-items:center}.library-title{font-size:17px;line-height:1.25}.library-creator{font-size:10px;padding-right:12px}.library-note-body p{font-size:13px}.library-credit{font-size:10px}}
@media(prefers-reduced-motion:reduce){.library-note summary:hover .library-cover img,.library-note summary:focus-visible .library-cover img{transform:none}}

/* Japanese editorial accents on shelf group headings. */
.library-jp{display:flex;align-items:baseline;gap:8px;margin-top:9px}
.library-jp-char{font-family:var(--serif);font-size:20px;line-height:1;color:var(--muted);letter-spacing:0}
.library-jp-roma{font:500 9px/1.4 var(--sans);letter-spacing:.16em;text-transform:lowercase;color:var(--accent);opacity:.85}
