body[data-scene="book"] { overflow:auto; }
.book-scene { height:auto; min-height:100svh; }
.book-scene .spellbook { --book-height:min(630px,calc(86vw / 1.3556)); text-align:left; }
.book-scene .spellbook:hover { transform:none; }
.book-reading-status { margin:0 0 4px; color:#507c96; font:12px/1.6 Georgia,serif; }
.spellbook[data-book-page="profile"] { cursor:pointer; }
.spellbook a,.spellbook button { cursor:pointer; }
.book-turn-sheet { position:absolute; z-index:6; top:0; left:0; width:100%; clip-path:inset(0 0 0 50%); transform-origin:50% 50%; pointer-events:none; backface-visibility:hidden; }
.book-turn-sheet::before { content:""; position:absolute; inset:0; background:#f5fbfe; clip-path:polygon(50% 14%,93% 1%,98% 90%,51% 98%); }
.book-turn-sheet.is-reverse { clip-path:inset(0 50% 0 0); }
.book-turn-sheet.is-reverse::before { clip-path:polygon(5% 6%,49% 15%,50% 98%,9% 99%); }
.book-turn-art { position:absolute !important; inset:0; width:100%; height:100%; }
.is-page-turning .book-candy-hotspot { pointer-events:none; }
.is-page-turning .book-candy-art { animation:none; }
.book-spread { position:absolute; inset:0; }
.spellbook-art-window { display:block; }
.book-scene .book-page { height:auto; }
.book-scene .page-left { top:36%; }
.book-scene .page-right { top:17%; }
.book-scene .folio { margin-bottom:12px; }
.book-scene .book-name { margin-bottom:10px; }
.book-scene .book-description { font-size:clamp(12px,1.85cqw,16px); margin-bottom:14px; }
.book-scene .profile-basics,.book-scene .profile-email { font-size:clamp(11px,1.4cqw,12px); line-height:1.7; color:#365f78; }
.profile-email { overflow-wrap:anywhere; width:fit-content; border-bottom:1px solid #b5d8e8; margin:8px 0 15px; }
.book-scene .book-bio { font-size:clamp(11px,1.4cqw,12px); }
.profile-skills { margin:0; display:grid; gap:12px; }
.profile-skills dt { color:#ad3979; font-size:clamp(11px,1.4cqw,12px); margin-bottom:4px; }
.profile-skills dd { margin:0; color:#365f78; font-size:clamp(11px,1.4cqw,12px); line-height:1.65; }
.book-scene .book-seal { position:absolute; left:55%; top:64%; margin:0; padding:6px 0; border:0; background:none; color:#ad3979; z-index:4; }
.book-scene .book-seal:disabled { cursor:default; }
.book-candy-hotspot { border:0; padding:0; background:none; }
.profile-section-title { font:clamp(16px,2.35cqw,20px)/1.5 "Songti SC",serif; color:#ad3979; margin:0 0 9px; }
.book-scene .profile-date { font:clamp(10px,1.32cqw,11px)/1.6 Georgia,serif; color:#507c96; }
.book-scene .profile-company { color:#365f78; font-size:clamp(11px,1.45cqw,13px); margin:9px 0 13px; }
.book-scene .profile-experience-copy { font-size:clamp(11px,1.4cqw,12px); color:#365f78; line-height:1.8; }
.book-scene .profile-highlight { color:#ad3979; font-size:clamp(10px,1.32cqw,11px); line-height:1.7; margin-top:12px; }
.book-scene .book-previous { align-self:flex-start; flex-shrink:0; margin-top:14px; min-height:44px; font-size:clamp(11px,1.4cqw,12px); }
.profile-project+.profile-project { margin-top:18px; }
.profile-project h3 { font:clamp(11px,1.55cqw,13px)/1.6 "Songti SC",serif; color:#ad3979; margin:5px 0 6px; }
.profile-project>p:not(.profile-date) { font-size:clamp(11px,1.35cqw,12px); line-height:1.7; color:#365f78; }
@media(max-width:820px) {
 .book-scene .spellbook { width:90vw; display:block; height:auto; }
 .book-spread { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:26px; padding-top:24px; }
 .book-scene .book-page { position:static; width:auto; transform:none; padding:0; }
 .book-scene .folio { font-size:10px; }
 .book-scene .profile-basics,.book-scene .profile-email,.book-scene .book-bio,.profile-skills dt,.profile-skills dd,.book-scene .profile-experience-copy { font-size:13px; }
 .book-scene .profile-date,.book-scene .profile-highlight { font-size:12px; }
 .book-scene .profile-company,.profile-project h3,.profile-project>p:not(.profile-date) { font-size:13px; }
 .book-scene .book-previous { font-size:13px; }
 .profile-section-title { font-size:20px; }
 .book-scene .book-seal { position:relative; top:auto; left:auto; margin:24px auto 0; font-size:14px; }
 .profile-skills { gap:16px; }
}
@media(max-width:560px) {
 .book-spread { grid-template-columns:minmax(0,1fr); gap:32px; padding-inline:12px; }
 .book-scene .book-description { font-size:16px; }
 .profile-project+.profile-project { margin-top:24px; }
}
