/* v4.3 chapter interiors. Transition layout and section spans belong to the
   chapter controller; these rules only arrange each chapter's reading content. */
.ex-reading .v43-opening{height:100svh;box-sizing:border-box;padding:100px var(--ex-gutter) 32px}
.ex-reading .ex-music .v43-opening{padding:clamp(90px,11vh,112px) 0 28px}
.ex-reading .v43-story{color:var(--ex-ink);background:var(--ex-paper)}
.ex-reading .v43-details{min-height:55svh;box-sizing:border-box;padding:38px var(--ex-gutter) 58px;background:var(--ex-paper)}
.ex-reading .v43-detail-shell{width:100%;max-width:1440px;margin:auto}
.ex-reading .v43-detail-heading{margin-bottom:25px}
.ex-reading .v43-detail-register{display:flex;gap:28px;align-items:center;font:10px/1.4 Consolas,'Microsoft YaHei',monospace;letter-spacing:.12em}
.ex-reading .v43-detail-register>span:first-child{white-space:nowrap}
.ex-reading .v43-detail-rule{flex:1;height:6px;display:flex;justify-content:flex-end;border-top:1px solid #12121233}
.ex-reading .v43-detail-rule i{display:block;width:42px;height:6px;background:#ffff00}
.ex-reading .v43-detail-rule i:nth-child(2){width:22px;background:#00fdfd}
.ex-reading .v43-detail-rule i:nth-child(3){width:9px;background:#ff00fd}
.ex-reading .v43-detail-title{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:18px}
.ex-reading .v43-detail-title h3{font-size:clamp(26px,2.5vw,39px);font-weight:800;letter-spacing:-.045em;line-height:1.2}
.ex-reading .v43-heading-emblem{position:absolute;right:var(--ex-gutter);top:102px;display:block;width:48px;height:48px;color:var(--ex-ink);pointer-events:none}
.ex-reading .v43-heading-emblem:empty{display:none}
.ex-reading .v43-heading-emblem>svg{display:block;width:100%;height:100%}
.ex-reading .v43-detail-label{font:10px/1.5 Consolas,'Microsoft YaHei',monospace;letter-spacing:.07em;color:var(--ex-muted)}
.ex-reading .v43-work-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.ex-reading .v43-work-item{display:block;min-width:0}
.ex-reading .v43-work-image{position:relative;padding:16px 26px 14px;background:#fafafa;isolation:isolate}
.ex-reading .v43-work-image:before,.ex-reading .v43-work-image:after{content:'';position:absolute;width:32%;height:50%;pointer-events:none}
.ex-reading .v43-work-image:before{top:0;left:0;border-top:1px solid #12121233;border-left:1px solid #12121233}
.ex-reading .v43-work-image:after{bottom:0;right:0;border-bottom:1px solid #12121233;border-right:1px solid #12121233}
.ex-reading .v43-work-image img{display:block;width:100%;height:clamp(120px,21svh,235px);object-fit:contain;transition:transform .5s var(--ex-ease)}
.ex-reading .v43-work-no{position:absolute;left:12px;top:11px;font:900 22px/1 Arial,sans-serif;letter-spacing:-.075em;z-index:1}
.ex-reading .v43-work-arrow{position:absolute;right:0;bottom:0;display:grid;place-items:center;width:35px;height:35px;background:#ffff00;font-size:24px;transition:background .25s}
.ex-reading .v43-work-item:hover .v43-work-image img{transform:translateY(-5px)}
.ex-reading .v43-work-item:hover .v43-work-arrow{background:#00fdfd}
.ex-reading .v43-work-caption{padding-top:12px;display:flex;align-items:baseline;gap:15px}
.ex-reading .v43-work-caption>span{font:10px/1.6 Consolas,'Microsoft YaHei',monospace;color:var(--ex-muted);white-space:nowrap}
.ex-reading .v43-work-caption strong{font-size:14px;line-height:1.5;font-weight:650}
.ex-reading .v43-detail-footer{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-top:26px;padding-top:16px;border-top:1px solid #12121226;font-size:11px}
.ex-reading .v43-detail-footer>span{color:var(--ex-muted)}
.ex-reading .v43-detail-footer a{display:flex;gap:25px;align-items:center}
.ex-reading .v43-detail-footer a>span{font-size:22px}
.ex-reading .v43-project-index{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}
.ex-reading .v43-project-status,.ex-reading .v43-note-excerpt,.ex-reading .v43-contact-name{display:flex;align-items:flex-start;gap:27px;position:relative}
.ex-reading .v43-big-number{flex:none;display:block;font:900 clamp(70px,8vw,120px)/.8 'Arial Black',Arial,sans-serif;letter-spacing:-.1em;color:#d2d2d0}
.ex-reading .v43-project-status h4,.ex-reading .v43-note-excerpt h4,.ex-reading .v43-contact-name h4{margin:14px 0;font-size:clamp(21px,2vw,29px);line-height:1.4;font-weight:750;letter-spacing:-.035em}
.ex-reading .v43-project-status p,.ex-reading .v43-note-excerpt p{font-size:13px;line-height:1.9;color:var(--ex-muted);max-width:430px}
.ex-reading .v43-project-status a,.ex-reading .v43-detail-link{display:inline-flex;align-items:center;gap:22px;padding:9px 0;margin-top:17px;border-bottom:2px solid #121212;font-size:12px}
.ex-reading .v43-project-status a>span,.ex-reading .v43-detail-link>span{font-size:22px}
.ex-reading .v43-topic-route{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.ex-reading .v43-topic-route li{position:relative;min-height:96px;padding:16px 15px;background:#fafafa;border-top:3px solid #121212;display:flex;flex-direction:column;gap:20px}
.ex-reading .v43-topic-route li:first-child{border-color:#ffff00}
.ex-reading .v43-topic-route li:nth-child(3){border-color:#00fdfd}
.ex-reading .v43-topic-route li:nth-child(5){border-color:#ff00fd}
.ex-reading .v43-topic-route li>span{font:10px Consolas,monospace;color:var(--ex-muted)}
.ex-reading .v43-topic-route strong{font-size:14px;font-weight:600}
.ex-reading .v43-topic-route i{position:absolute;right:13px;top:10px;font:24px Arial,sans-serif}
.ex-reading .v43-series-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:30px;margin-top:22px}
.ex-reading .v43-series-links>a{display:flex;align-items:center;gap:13px;min-height:39px;border-bottom:1px solid #12121226;font-size:11px}
.ex-reading .v43-series-links small{font:10px Consolas,monospace;color:var(--ex-muted)}
.ex-reading .v43-series-links b{font:10px Consolas,monospace;margin-left:auto;color:var(--ex-muted)}
.ex-reading .v43-series-links a>span:last-child{font-size:19px}
.ex-reading .v43-note-index{display:grid;grid-template-columns:1.25fr .75fr;gap:8%;align-items:start;padding-top:10px}
.ex-reading .v43-note-register{display:flex;flex-wrap:wrap;gap:9px 18px;font:10px/1.5 Consolas,'Microsoft YaHei',monospace;color:var(--ex-muted)}
.ex-reading .v43-note-register>span:first-child{color:#121212;border-bottom:4px solid #ffff00}
.ex-reading .v43-note-contents{display:flex;flex-direction:column;padding-left:24px;border-left:1px solid #12121226}
.ex-reading .v43-note-contents>.v43-detail-label{margin-bottom:13px}
.ex-reading .v43-note-contents>a{display:grid;grid-template-columns:20px 1fr 20px;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid #12121226;font-size:12px;line-height:1.65}
.ex-reading .v43-note-contents small{font:10px Consolas,monospace;color:var(--ex-muted)}
.ex-reading .v43-note-contents a>span:last-child{font-size:21px}
.ex-reading .v43-track-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:12px 0}
.ex-reading .v43-record-item{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1fr);gap:20px;align-items:center}
.ex-reading .v43-record-cover{position:relative;aspect-ratio:1;background:#fafafa}
.ex-reading .v43-record-cover>img{display:block;width:100%;height:100%;object-fit:cover;box-shadow:5px 5px 0 #121212;transition:transform .4s var(--ex-ease)}
.ex-reading .v43-record-cover>span:last-child{position:absolute;left:-7px;top:-7px;padding:4px 6px;font:700 11px Consolas,monospace;background:#ffff00}
.ex-reading .v43-record-item:nth-child(2) .v43-record-cover>span:last-child{background:#00fdfd}
.ex-reading .v43-record-item:nth-child(3) .v43-record-cover>span:last-child{background:#ff00fd}
.ex-reading .v43-record-item:hover .v43-record-cover>img{transform:rotate(-4deg) translateY(-4px)}
.ex-reading .v43-record-copy small{display:block;font-size:10px;line-height:1.6;color:var(--ex-muted)}
.ex-reading .v43-record-copy h4{font-size:16px;font-weight:700;line-height:1.45;margin:9px 0}
.ex-reading .v43-record-copy p{font-size:10px;line-height:1.65;color:var(--ex-muted)}
.ex-reading .v43-record-copy>span{display:flex;align-items:center;gap:12px;font-size:10px;margin-top:16px}
.ex-reading .v43-record-copy>span>span{font-size:21px}
.ex-reading .v43-playlist-links{display:flex;gap:28px;margin-top:20px;font-size:12px}
.ex-reading .v43-playlist-links>a{display:flex;gap:24px;border-bottom:1px solid #12121226;padding:10px 0}
.ex-reading .v43-contact-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:9%;align-items:center;padding:17px 0 30px}
.ex-reading .v43-contact-name h4{font-size:clamp(28px,3vw,48px);margin:14px 0 19px}
.ex-reading .v43-contact-name p{font:18px/1.6 KaiTi,STKaiti,serif}
.ex-reading .v43-contact-links{display:flex;flex-direction:column}
.ex-reading .v43-contact-links a{display:flex;align-items:center;gap:20px;padding:19px 0;border-bottom:1px solid #12121233;font-size:14px}
.ex-reading .v43-contact-links small{font:11px Consolas,monospace;color:var(--ex-muted)}
.ex-reading .v43-contact-links a>span:last-child{margin-left:auto;font-size:24px}
.ex-reading :is(.v43-series-links,.v43-note-contents,.v43-contact-links) a:hover{border-bottom-color:#121212}
.ex-reading .v43-next-note{display:flex;align-items:center;justify-content:center;gap:16px;padding-top:27px;font:10px/1.5 Consolas,'Microsoft YaHei',monospace;letter-spacing:.07em;color:var(--ex-muted)}
.ex-reading .v43-next-note>span{display:block;font:20px Arial,sans-serif;color:var(--ex-ink)}
@media(max-height:800px){.ex-reading .v43-opening{padding-top:90px;padding-bottom:23px}.ex-reading .v43-details{padding-top:27px;padding-bottom:42px}.ex-reading .v43-detail-heading{margin-bottom:21px}.ex-reading .v43-detail-title{margin-top:14px}.ex-reading .v43-detail-title h3{font-size:29px}.ex-reading .v43-project-status h4,.ex-reading .v43-note-excerpt h4{font-size:24px}.ex-reading .v43-topic-route li{min-height:82px;padding:12px;gap:14px}.ex-reading .v43-note-contents>a{padding:12px 0}}
@media(max-width:1100px){.ex-reading .v43-work-strip{gap:20px}.ex-reading .v43-work-caption{display:block}.ex-reading .v43-work-caption strong{display:block;margin-top:4px}.ex-reading .v43-record-item{grid-template-columns:100px 1fr;gap:13px}.ex-reading .v43-track-strip{gap:18px}.ex-reading .v43-record-copy h4{font-size:13px}.ex-reading .v43-big-number{font-size:80px}.ex-reading .v43-project-index{gap:5%}.ex-reading .v43-project-status,.ex-reading .v43-note-excerpt,.ex-reading .v43-contact-name{gap:19px}}
@media(max-height:650px){.ex-reading .v43-opening{padding-top:84px;padding-bottom:18px}}
@media(prefers-reduced-motion:reduce){.ex-reading :is(.v43-work-image img,.v43-work-arrow,.v43-record-cover>img){transition:none}.ex-reading .v43-work-item:hover .v43-work-image img,.ex-reading .v43-record-item:hover .v43-record-cover>img{transform:none}}

/* Main exhibits and repeated controls share a clear two-color hierarchy.
   Existing multicolor ribbons and spectrum remain independent decorations. */
.ex-reading [data-story] :is(.ex-button,.ex-image-cta,.ex-heading-index>b,.v43-work-arrow){background:var(--chapter-main);color:var(--chapter-on-main)}
.ex-reading [data-story] :is(.ex-button:hover,.v43-work-item:hover .v43-work-arrow){background:var(--chapter-secondary);color:var(--chapter-on-secondary)}
.ex-reading [data-story] :is(.ex-text-link,.v43-detail-link,.v43-project-status a){border-bottom-color:var(--chapter-main)}
.ex-reading [data-story] .v43-big-number{color:var(--chapter-main)}
.ex-reading [data-story] .v43-work-image:before{border-color:var(--chapter-main)}
.ex-reading [data-story] .v43-work-image:after{border-color:var(--chapter-secondary)}
.ex-reading [data-story] .v43-topic-route li{border-top-color:var(--chapter-main)}
.ex-reading [data-story] .v43-topic-route li:nth-child(even){border-top-color:var(--chapter-secondary)}
.ex-reading [data-story] .v43-topic-route li:last-child{border-top-color:var(--ex-ink)}
.ex-reading [data-story] :is(.v43-series-links,.v43-note-contents,.v43-contact-links) a:hover{border-bottom-color:var(--chapter-main)}

/* Project mark: coral structure, yellow cut ends, white paper. */
.ex-reading [data-story=projects] .ex-pavilion-floor{background:var(--chapter-main)}
.ex-reading [data-story=projects] .ex-pavilion-floor:after{background:var(--chapter-secondary)}
.ex-reading [data-story=projects] .ex-project-ticket{box-shadow:9px 10px 0 var(--chapter-main),20px 25px 27px -15px #1112}
.ex-reading [data-story=projects] .ex-project-ticket:hover{box-shadow:9px 13px 0 var(--chapter-main),20px 32px 34px -15px #1113}
.ex-reading [data-story=projects] .ex-ticket-top>span:last-child{background:var(--chapter-secondary)}

/* Collection mark: two offset frames, cyan in front and magenta below. */
.ex-reading [data-story=artworks] .ex-gallery-stage{box-shadow:12px 12px 0 var(--chapter-main)}
.ex-reading [data-story=artworks] .ex-gallery-stage:after{background:var(--chapter-secondary)}
.ex-reading [data-story=artworks] .ex-collection-select:before{background:var(--chapter-main)}
.ex-reading [data-story=artworks] .ex-play{background:var(--chapter-main)}

/* Notebook mark: blue star and yellow paper tab. */
.ex-reading [data-story=notes] .ex-note-star{color:var(--chapter-main)}
.ex-reading [data-story=notes] .ex-note-poster{box-shadow:-12px 12px 0 var(--chapter-main)}
.ex-reading [data-story=notes] .ex-note-poster:is(:hover,:focus-visible) .ex-note-star{color:var(--chapter-secondary)}
.ex-reading [data-story=notes] .ex-note-meta>span{background:var(--chapter-secondary);color:var(--chapter-on-secondary)}
.ex-reading [data-story=notes] .v43-note-register>span:first-child{border-bottom-color:var(--chapter-secondary)}
.ex-reading [data-story=notes] .v43-note-contents{border-left-color:var(--chapter-main)}

/* Listening room: yellow leads the exhibits and controls; magenta is a
   small record-label accent. The incoming graphic keeps its own identity. */
.ex-reading [data-story=music]{--music-accent:var(--chapter-main)}
.ex-reading [data-story=music] :is(.ex-music-choose,.ex-music-register b,.music-player-actions [data-music-toggle]){background:var(--chapter-main);color:var(--chapter-on-main)}
.ex-reading [data-story=music] .music-now-label{background:var(--chapter-main);color:var(--chapter-on-main)}
.ex-reading [data-story=music] .ex-music-platform{background:var(--chapter-main)}
.ex-reading [data-story=music] .ex-music-platform:after,.ex-reading [data-story=music] :is(.ex-music-cross,.music-list-label b){background:var(--chapter-secondary);color:var(--chapter-on-secondary)}
.ex-reading [data-story=music] .ex-music-disc:before{background:var(--chapter-secondary)}
.ex-reading [data-story=music] .music-track-action{color:var(--chapter-main)}
.ex-reading [data-story=music] .music-track:is(:hover,[aria-pressed=true]){background:var(--chapter-main);color:var(--chapter-on-main)}
.ex-reading [data-story=music] .music-track:is(:hover,[aria-pressed=true]) :is(.music-track-copy small,.music-track-number,.music-track-action){color:var(--chapter-on-main)}
.ex-reading [data-story=music] .music-selection :focus-visible{outline-color:var(--chapter-secondary)}
.ex-reading [data-story=music] .music-lyrics-scroll .is-current{text-decoration-color:var(--chapter-secondary)}

/* Conversation mark: mint portrait backing and yellow address tabs. */
.ex-reading [data-story=about] .ex-avatar-stage>img{box-shadow:18px 18px 0 var(--chapter-main)}
.ex-reading [data-story=about] .ex-identity-tag{background:var(--chapter-main)}
.ex-reading [data-story=about] .ex-identity-star{color:var(--chapter-secondary)}
.ex-reading [data-story=about] .ex-about-seal{background:var(--chapter-secondary)}
.ex-reading [data-story=about] .v43-contact-links small{background:var(--chapter-secondary);color:var(--chapter-on-secondary);padding:3px 5px}

/* Light paper and one curved dot current; the majority of the surface stays
   empty. This static pattern also covers no-script and reduced-motion entry. */
.v4-site .ex-reading{--ex-paper:#fafafa}
.ex-reading [data-story] .v43-story{isolation:isolate;background:var(--ex-paper)}
.ex-reading [data-story] :is(.v43-opening,.v43-details){position:relative;z-index:1;background:transparent}
.v43-atmosphere{position:absolute;inset:0;overflow:clip;pointer-events:none;user-select:none;z-index:0}
/* The light has no radial centre or visible boundary. Fixed fractal noise
   reveals scattered traces of the chapter color; only the layer drifts. */
.v43-air-glow{position:absolute;inset:-20%;background:var(--chapter-main);mask-image:url('./chapter-light-noise.svg');mask-mode:alpha;mask-size:100% 100%;mask-repeat:no-repeat;opacity:.12;transform:translate3d(-3%,-2%,0);animation:v43-light-drift 44s ease-in-out infinite;animation-delay:var(--light-phase,0s);animation-play-state:paused}
.ex-reading [data-story=projects]{--light-phase:-9s}
.ex-reading [data-story=artworks]{--light-phase:-18s}
.ex-reading [data-story=notes]{--light-phase:-25s}
.ex-reading [data-story=music]{--light-phase:-5s}
.ex-reading [data-story=about]{--light-phase:-14s}
.v43-air-live:not(.v43-story-waiting)>.v43-atmosphere[data-motion=running]>.v43-air-glow{animation-play-state:running}
.v43-story-waiting>.v43-atmosphere>.v43-air-glow{animation-play-state:paused}
.v43-air-dots{position:absolute;inset:0;background:radial-gradient(circle,#55555555 .85px,transparent 1.15px) 0 0/14px 14px;mask-image:radial-gradient(ellipse at 50% 0%,#0000 43%,#000b 51%,#0000 59%);mask-size:140% 115svh;mask-position:50% 16svh;mask-repeat:no-repeat;opacity:.6}
.v43-air-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0}
.v43-dots-rendered>.v43-air-canvas{opacity:1}
.v43-dots-rendered>.v43-air-dots{opacity:0}
.ex-reading :is(.ex-stage-word,.ex-project-side-word,.ex-about-handle){color:#fff;text-shadow:0 1px 2px #26262620,0 6px 22px #26262613}
@keyframes v43-light-drift{0%,100%{transform:translate3d(-3%,-2%,0);opacity:.055}38%{transform:translate3d(3%,1%,0) scale(1.04);opacity:.22}72%{transform:translate3d(-1%,4%,0) scale(1.02);opacity:.10}}
@media(max-width:850px){.v43-air-dots{background-size:18px 18px}}
@media(prefers-reduced-motion:reduce){.v43-air-glow{animation:none!important}}
