/* Poems remain continuous text runs; no forced phrase breaks. */
.vertical-poem,.shore-poem{writing-mode:vertical-rl;direction:ltr;white-space:nowrap;word-break:normal;overflow-wrap:normal;font-family:var(--serif);font-weight:400;line-height:1.8;letter-spacing:.07em;text-align:start;text-wrap:nowrap;max-height:none;height:auto}
.vertical-poem .latin-run{position:relative;left:var(--latin-optical-offset,.08em)}
.vertical-poem .latin-run.latin-breath{margin-inline:.08em}
/* Reversible verse-4 trial: horizontal TAX and I within the vertical line.
   Do not condense three Latin letters into a single Japanese character box. */
#verse-4 .vertical-poem .latin-upright{display:inline-block;writing-mode:horizontal-tb;vertical-align:baseline;left:0;line-height:1;letter-spacing:0;text-align:center;min-width:1em;margin:.12em 0}
.icon-control{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:9px;border:0;background:transparent;color:inherit;font:inherit;font-size:23px;cursor:pointer}
.icon-control svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.icon-control:hover{background:#35594e08}.icon-control:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.book-cover{height:auto;min-height:100svh;max-height:none;padding:145px 0 115px;overflow:hidden}
.book-label{display:block;width:310px;min-height:0;margin:0;padding:28px 30px 24px;text-decoration:none}
.label-typeset{gap:52px;min-height:0}.label-typeset h1{font-size:42px}
.cover-verse.vertical-poem{display:block;font-size:16px;line-height:1.8;letter-spacing:.065em;padding:0;margin:0}
.label-kicker{margin-bottom:25px}.five-signs{margin-top:26px}
.open-book{bottom:38px;border:0;min-width:44px;min-height:44px;text-align:center;font-size:23px;padding:8px}.open-book span{margin:0}
.book-frontispiece{padding:95px 30px 70px;min-height:0}
.poem-entrance{position:relative;display:block;padding:20px 85px 35px;cursor:pointer}
.poem-entrance .vertical-poem{font-size:23px;margin:0;max-width:none}
.page-corner{position:absolute;bottom:0;left:24px;font-family:var(--sans);font-size:20px;color:#728a80;transition:transform .25s}
.poem-entrance:hover .page-corner{transform:translate(-3px,-3px)}
.book-frontispiece .verse-sign{margin:35px 0 0}
.book-history{max-width:1050px}.book-history .chapter-heading{margin-bottom:24px}
.timeline-controls{display:flex;align-items:center;gap:20px;justify-content:space-between;margin:20px 0 25px;font-family:var(--serif)}
.timeline-controls>div{display:flex;gap:25px}.timeline-controls button{padding:10px 0;min-height:44px;font-size:15px;border-bottom:1px solid transparent}
.timeline-controls button[aria-pressed=true]{border-bottom-color:currentColor}
.timeline-controls select{font:inherit;font-size:14px;background:white;border:0;border-bottom:1px solid #d9e1dc;padding:10px 18px 10px 5px;min-height:44px;color:inherit}
.annal-entry{grid-template-columns:85px 95px minmax(0,1fr) 20px;gap:30px;padding:32px 4px}
.annal-entry .cover{height:125px}.annal-entry h2{font-weight:400;font-size:21px}.annal-entry time{font-size:26px}.annal-entry[hidden]{display:none}
.annal-milestone{min-height:140px}.annal-milestone>div{grid-column:2/4;border-left:1px solid #ccd9d1;padding:15px 25px}.annal-milestone h2{margin-top:0}
.shore-leaf{padding-bottom:130px}.shore-leaf .chapter-heading{margin-bottom:30px}
.shore-poem-entrance{display:flex;flex-direction:row-reverse;justify-content:center;align-items:center;gap:60px;max-width:450px;margin:auto;padding:30px}
.shore-leaf-poem.vertical-poem{font-size:23px;line-height:1.8;margin:0;max-width:none;letter-spacing:.07em}
.shore-poem-entrance img{width:130px;height:130px;object-fit:contain;transition:transform .35s}
.shore-poem-entrance:hover img{transform:translateY(-5px) rotate(-2deg)}
.shore-endpaper{z-index:0;height:150px}.shore-leaf{z-index:1}.colophon-portrait figcaption{font-size:12px;margin-top:10px;color:#667b73}
.exhibition-index{max-width:1150px;margin:auto;padding:45px 30px 80px;font-family:var(--serif)}
.exhibition-index h1{font-size:25px;letter-spacing:.2em;margin:0 0 35px;font-weight:400}
.exhibition-spines{display:flex;flex-direction:row-reverse;align-items:stretch;border-top:1px solid #c4d2cb;border-bottom:1px solid #c4d2cb}
.exhibition-spine{position:relative;width:33.333%;display:flex;align-items:center;flex-direction:column;padding:28px 20px 65px;border-left:1px solid #dae2dd;transition:background .3s}
.exhibition-spine:last-child{border-left:0}.exhibition-spine:hover{background:#f6f8f6}.spine-number{font:15px Georgia,serif;color:#708379;margin-bottom:30px}
.exhibition-spine .vertical-poem{font-size:20px;margin:0;line-height:1.8}.spine-arrow{position:absolute;bottom:25px;left:30px;font-size:22px;color:#688375}
.ribbon-page{font-family:var(--serif);padding-bottom:70px}
.spatial-header{max-width:1200px;margin:auto;display:flex;align-items:center;padding:24px 30px;gap:28px}.spatial-header h1{font:23px Georgia,serif;letter-spacing:.08em;margin:0}
.room-numbers{display:flex;gap:13px;margin-left:auto;align-items:center}.room-numbers a{font:14px Georgia,serif;padding:13px 9px;min-height:44px}.room-numbers a[aria-current]{border-bottom:1px solid currentColor}
.reading-controls{position:sticky;top:0;z-index:4;gap:12px;justify-content:flex-end;padding:8px 30px;border-top:1px solid #dce4de;border-bottom:1px solid #dce4de;background:#fffffff5;flex-wrap:nowrap}
.reading-controls .space-range-label{width:auto;margin:0;order:0;flex-basis:auto}.reading-controls input{width:120px;accent-color:#57736a}
.reading-controls output{font-size:13px;font-family:Georgia,serif;margin-left:15px}
.reading-window{border:0;overflow-x:auto;overflow-y:hidden;cursor:grab;scroll-margin-top:70px}
.reading-window:active{cursor:grabbing}.ribbon-track{padding-top:45px;padding-bottom:65px}
.ribbon-poem{width:clamp(9rem,20vw,16rem)}.ribbon-verse.vertical-poem{font-size:21px;font-weight:400;line-height:1.8;letter-spacing:.07em}
.ribbon-verse{cursor:text}.verse-number{font-family:Georgia,serif;font-size:13px;color:#829289}.reading-sign{margin:30px 55px 20px}
.room-pagination{display:flex;align-items:center;justify-content:center;gap:40px;margin:45px auto 0;font:15px Georgia,serif}.room-pagination>span{width:44px}
.beach-after{display:flex;flex-direction:column;gap:24px;margin:80px auto}.shore-poem{font-size:20px;line-height:1.8;max-width:none}
.beach .tray-toggle{gap:7px;border:0}.tray-toggle span{margin:0;border:0;font-size:14px}
.beach #stone-dialog{position:fixed;inset:0;margin:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;border:0;box-shadow:none;padding:75px 25px 45px;background:radial-gradient(ellipse at 50% 45%,#fff 0%,#fff 19%,#fffffff2 35%,#ffffff8c 56%,#fff0 78%);overflow:auto;scrollbar-width:thin;cursor:default}
.beach #stone-dialog[open]{animation:none}.beach #stone-dialog::backdrop{background:#e6ebe526;backdrop-filter:blur(4px)}
.beach #stone-dialog .dialog-close{position:fixed;right:22px;top:20px;background:#ffffffbf;border-radius:50%;z-index:3}
.beach #stone-dialog #stone-reading{position:relative;display:flex;align-items:center;justify-content:center;gap:clamp(35px,8vw,110px);min-height:calc(100dvh - 140px);max-width:850px;margin:auto}
.beach #stone-dialog .reading-text{display:flex;flex-direction:row-reverse;align-items:flex-start;justify-content:center;padding:0;gap:24px;min-height:0;flex:none}
.beach #stone-dialog .reading-verse{font-size:20px;line-height:1.8;max-height:none;margin:0}
.beach #stone-dialog .reading-author{font-size:14px;align-self:flex-end;white-space:nowrap}
.beach #stone-dialog .reading-image{position:static;opacity:1;flex:0 0 170px}.beach #stone-dialog .reading-image img{width:170px;height:170px;object-fit:contain}
.reading-collection{position:fixed;bottom:22px;right:22px;border-radius:50%;background:#ffffffbf;z-index:3}
.beach #stone-status{max-width:30em;margin:25px auto 0;font-size:14px}
@media(max-width:700px){
 .book-cover{padding-top:115px;padding-bottom:95px}.book-label{width:280px;max-width:calc(100vw - 60px);padding:25px 25px 20px}.label-typeset{gap:45px}.label-typeset h1{font-size:36px}.cover-verse.vertical-poem{font-size:16px}
 .open-book{bottom:29px}.book-frontispiece{padding:65px 25px}.poem-entrance .vertical-poem{font-size:19px}.poem-entrance{padding:20px 65px 40px}
 .timeline-controls{gap:10px}.timeline-controls>div{gap:18px}.timeline-controls button{font-size:14px}.timeline-controls select{font-size:14px;padding-right:0}
 .annal-entry{grid-template-columns:70px minmax(0,1fr);gap:12px 20px;padding:25px 0}.annal-entry time{grid-column:1/3;font-size:23px}.annal-entry .cover{height:110px}.annal-entry h2{font-size:19px}.annal-milestone>div{grid-column:1/3;margin-left:1px;padding:5px 20px 12px}.annal-entry p{font-size:14px}.annal-arrow{display:none}
 .shore-poem-entrance{gap:35px;padding:20px 15px}.shore-leaf-poem.vertical-poem{font-size:19px}.shore-poem-entrance img{width:105px;height:105px}.shore-leaf{padding-bottom:100px}
 .exhibition-index{padding:30px 16px 65px}.exhibition-index h1{font-size:23px;margin:0 12px 30px}.exhibition-spine{padding:24px 8px 65px}.exhibition-spine .vertical-poem{font-size:16px;letter-spacing:.03em}.spine-arrow{left:15px}.spine-number{margin-bottom:26px}
 .spatial-header{padding:18px 18px;flex-wrap:nowrap;gap:12px}.room-numbers{gap:7px}.reading-controls{padding:5px 16px;justify-content:center;gap:5px}.reading-controls input{width:100px}.reading-controls output{margin-left:8px}.ribbon-track{padding-top:35px}.ribbon-verse.vertical-poem{font-size:19px}.ribbon-poem{width:9rem}.reading-sign{margin-right:35px}
 .beach #stone-dialog{padding:75px 15px 70px}.beach #stone-dialog #stone-reading{gap:28px;min-height:calc(100dvh - 145px)}.beach #stone-dialog .reading-text{padding:0;gap:20px;min-height:0}.beach #stone-dialog .reading-verse{font-size:18px}.beach #stone-dialog .reading-image{flex-basis:100px}.beach #stone-dialog .reading-image img{width:100px;height:100px}.beach #stone-dialog .dialog-close{top:12px;right:12px}.reading-collection{right:12px;bottom:12px}
}
@media(prefers-reduced-motion:reduce){.poem-entrance .page-corner,.shore-poem-entrance img,.exhibition-spine{transition:none}}
