html{overscroll-behavior:none;scrollbar-gutter:stable both-edges;height:100%;overflow:hidden}:root{--page-focal-x:50%;--page-focal-y:42%;--font-ui:"Avenir Next", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display:"Palatino Linotype", "Book Antiqua", Palatino, "Times New Roman", serif;--gold-1:#f4e8c9;--gold-2:#dfc28a;--gold-3:#b58b4b;--gold-4:#7e5a2d;--gold-5:#4e371a;--gold-soft:#c69e5429;--gold-line:#c69e5447;--gold-metal:linear-gradient(125deg, #f3e8ca 0%, #d8bc86 26%, #b28243 50%, #ebd6a0 74%, #94672f 100%);--z-modal:3150;--z-modal-controls:3151;--z-tutorial-overlay:3300;--z-tutorial-highlight:3301;--z-tutorial-panel:3302}body{overscroll-behavior:none;height:100%;font-family:var(--font-ui);letter-spacing:.01em;background-color:#1a1a1c;margin:0;overflow:hidden}#root{height:100%;overflow:hidden}.app-layout{isolation:isolate;background:radial-gradient(1200px 600px at 10% 0,#c69e5414,#0000 55%),radial-gradient(700px 420px at 18% 100%,#c69e540d,#0000 62%),linear-gradient(#121216,#191a1f);grid-template-columns:auto 1fr;height:100dvh;min-height:100dvh;max-height:100dvh;display:grid;position:relative;overflow:hidden}@supports not (height:100dvh){.app-layout{height:100vh;min-height:100vh;max-height:100vh}}.person-sidebar{box-sizing:border-box;flex-direction:column;width:clamp(250px,20vw,380px);min-height:0;padding:12px 10px 12px 12px;transition:width .3s cubic-bezier(.32,0,.15,1),padding .3s;display:flex;position:relative}.person-sidebar.collapsed{width:56px;padding-right:8px}.person-sidebar-shell{isolation:isolate;-webkit-backdrop-filter:blur(24px);background:linear-gradient(160deg,#c69e540d,#c69e5400 32%),#12131ab8;border:1px solid #c69e5429;border-radius:24px;flex-direction:column;flex:1;min-height:0;transition:border-color .24s,box-shadow .3s;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 2px #ffffff0d,0 24px 48px #00000073,inset 0 0 0 1px #c69e540f}.person-sidebar-shell:before{content:"";background:var(--gold-metal);opacity:.52;z-index:2;pointer-events:none;height:1px;position:absolute;top:0;left:0;right:0}.person-sidebar-shell:after{content:"";opacity:.34;pointer-events:none;z-index:1;background:linear-gradient(#0000,#ffe8aa52,#0000);width:1px;position:absolute;top:12px;bottom:12px;right:0}.person-sidebar:hover .person-sidebar-shell{border-color:#c69e5447}.person-content{flex-direction:column;flex:1;min-height:0;transition:opacity .22s,transform .28s cubic-bezier(.32,0,.15,1);display:flex;overflow:hidden}.person-sidebar.collapsed .person-content,.person-sidebar.collapsed .person-title-wrap p,.person-sidebar.collapsed .person-title-wrap h2,.person-sidebar.collapsed .person-header-icon,.person-sidebar.collapsed .person-search,.person-sidebar.collapsed .person-filter-bar,.person-sidebar.collapsed .person-filter-hint{opacity:0;pointer-events:none;transform:translate(-10px)}.person-header{border-bottom:1px solid #c69e5424;align-items:center;gap:10px;padding:20px 18px 14px;display:flex}.person-header-icon{color:#2c1a08;background:linear-gradient(145deg,#f3e8caeb,#b08343db);border:1px solid #fff1c84d;border-radius:10px;flex-shrink:0;place-items:center;width:34px;height:34px;transition:opacity .22s,transform .28s cubic-bezier(.32,0,.15,1);display:grid;box-shadow:0 4px 12px #00000052,inset 0 0 0 1px #fff1c81f}.person-title-wrap h2{color:#e9d3a0;letter-spacing:.02em;font-size:1.06rem;font-weight:700;font-family:var(--font-display);margin:0;transition:opacity .22s,transform .28s}.person-title-wrap p{color:#eccc8c85;margin:2px 0 0;font-size:.76rem;transition:opacity .22s,transform .28s}.person-search{border-bottom:1px solid #c69e541f;flex-direction:column;align-items:stretch;gap:10px;max-height:180px;padding:12px 14px 10px;transition:opacity .22s,transform .28s cubic-bezier(.32,0,.15,1),max-height .22s,padding .22s,border-color .22s;display:flex;position:relative}.person-sidebar.collapsed .person-search{border-bottom-color:#0000;max-height:0;padding-top:0;padding-bottom:0}.person-search-icon{color:#eccc8c57;pointer-events:none;flex-shrink:0;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.person-search-input-row{position:relative}.book-goto-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.book-goto-controls button{color:#f0e2bfd6;min-height:38px;font:inherit;cursor:pointer;background:#c69e5414;border:1px solid #c69e5433;border-radius:8px;font-size:.75rem;font-weight:600}.book-goto-controls button:hover{color:#f8eccdf2;background:#c69e542e;border-color:#eccc8c61}.person-search input{box-sizing:border-box;color:#f0f0f3;background:linear-gradient(#fff1c80d,#fff1c804);border:1px solid #c69e5421;border-radius:12px;width:100%;min-height:46px;padding:11px 36px;font-size:.88rem;transition:border-color .16s,background .16s,box-shadow .16s}.person-search input::placeholder{color:#eccc8c4d}.person-search input:focus{background:linear-gradient(#fff1c814,#fff1c808);border-color:#eccc8c6b;outline:none;box-shadow:0 0 0 3px #c69e541c}.person-search-clear{color:#ffefc19e;cursor:pointer;background:#c69e541f;border:none;border-radius:50%;place-items:center;width:34px;height:34px;transition:background .14s,color .14s;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.person-search-clear:hover{color:#f7e5bc;background:#c69e5433}.person-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.person-filter-chip{color:#f0e2bfd6;letter-spacing:.01em;cursor:pointer;background:#c69e5414;border:1px solid #c69e5433;border-radius:12px;min-height:42px;font-size:.78rem;font-weight:600;transition:border-color .14s,background .14s,color .14s}.person-filter-chip:hover{color:#f8eccdf2;background:#c69e542e;border-color:#eccc8c61}.person-filter-chip.active{color:#f8f3e6;background:linear-gradient(145deg,#eccc8c57,#b0834342);border-color:#eccc8c85;box-shadow:0 4px 10px #0000003d,inset 0 1px #fff6de47}.person-filter-hint{color:#eccc8c9e;margin:0;font-size:.75rem;line-height:1.35}.person-search-reason{color:#f1e1bbdb;margin:2px 0 0;font-size:.72rem;line-height:1.3}.sidebar-fab-toggle{color:#f7f2e4;cursor:pointer;z-index:20;background:linear-gradient(145deg,#ead5a7 0%,#c79a57 48%,#a07236 100%);border:1px solid #ffebb657;border-left:none;border-radius:0 12px 12px 0;place-items:center;width:34px;height:64px;transition:color .18s,background .2s,box-shadow .2s,transform .2s;display:grid;position:absolute;top:50%;right:-16px;transform:translateY(-50%);box-shadow:4px 0 14px #0006,inset 0 1px #fff4d475,inset 0 -8px 14px #7b541e33}.sidebar-fab-toggle:hover{color:#fffaf0;background:linear-gradient(125deg,#f4e6c4 0%,#debe83 26%,#b98845 50%,#edd9a5 74%,#986a31 100%);transform:translateY(-50%)translate(2px);box-shadow:6px 0 18px #0000007a,inset 0 1px #fff4d49e,inset 0 -8px 14px #7b541e42}.sidebar-fab-icon{transition:transform .28s cubic-bezier(.2,.8,.2,1)}.sidebar-fab-icon.flipped{transform:rotate(180deg)}.person-list{scrollbar-width:thin;scrollbar-color:#ffffff1f transparent;flex-direction:column;flex:1;gap:2px;min-height:0;padding:10px 12px 16px;display:flex;overflow-y:auto}.person-list::-webkit-scrollbar{width:4px}.person-list::-webkit-scrollbar-track{background:0 0}.person-list::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.person-list::-webkit-scrollbar-thumb:hover{background:#ffffff3d}.person-group{flex-direction:column;display:flex}.person-group-title{z-index:1;color:#eccc8ca3;letter-spacing:.1em;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(90deg,#c69e541f,#12131adb);border-radius:6px;width:fit-content;margin:8px 4px 4px;padding:2px 6px;font-size:.72rem;font-weight:700;position:sticky;top:0}.person-item{color:#f0f0f3bf;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:10px;width:100%;min-height:50px;padding:11px 12px;transition:background .13s,color .13s;display:flex}.person-item:hover{color:#f5e3ba;background:#c69e5414}.person-item:disabled{cursor:wait;opacity:.48}.person-item:disabled:hover{color:#f0f0f3bf;background:0 0}.person-item.active{color:#f3dfb2;background:linear-gradient(145deg,#eccc8c42,#b0834338);box-shadow:0 6px 16px #00000047,inset 0 0 0 1px #eccc8c42}.person-item.active .person-avatar{color:#f5e1b1;background:#eccc8c42;border-color:#eccc8c57}.person-avatar{color:#f7e0b0db;letter-spacing:0;background:linear-gradient(#c69e5429,#c69e5414);border:1px solid #c69e5433;border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:.78rem;font-weight:600;display:grid}.person-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;line-height:1.3;overflow:hidden}.person-meta{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.person-hit-reason{letter-spacing:.04em;text-transform:uppercase;color:#f4e4beeb;background:#eccc8c24;border:1px solid #eccc8c5c;border-radius:999px;flex-shrink:0;padding:2px 7px;font-size:.66rem}.main-content{box-sizing:border-box;flex-direction:column;justify-content:stretch;align-items:stretch;width:100%;min-width:0;height:100%;min-height:0;padding:10px clamp(8px,1.6vw,22px) clamp(8px,1.4vw,18px);display:flex;position:relative;overflow:hidden}.app-layout.presentation-mode{grid-template-columns:1fr}.kiosk-filter-backdrop{z-index:70;opacity:1;background:#00000057;border:none;margin:0;padding:0;transition:opacity .22s;position:absolute;inset:0}.kiosk-sidebar-overlay{z-index:85;opacity:0;pointer-events:none;width:min(420px,100vw - 24px);padding:0;transition:transform .22s,opacity .22s;position:absolute;top:12px;bottom:12px;left:12px;transform:translate(-18px)}.kiosk-sidebar-overlay.open{opacity:1;pointer-events:auto;transform:translate(0)}.kiosk-sidebar-overlay .person-sidebar-shell{box-shadow:0 28px 54px #0000008c,inset 0 0 0 1px #c69e5424}.book-ui-actions,.book-filter-summary,.book-controls,.book-side-nav-arrow{transition:opacity .22s,transform .22s}.presentation-mode.kiosk-ui-hidden .book-ui-actions,.presentation-mode.kiosk-ui-hidden .book-filter-summary,.presentation-mode.kiosk-ui-hidden .book-controls,.presentation-mode.kiosk-ui-hidden .book-side-nav-arrow{opacity:0;pointer-events:none;transform:translateY(10px)}.presentation-main{padding-inline:14px}.book-ui-actions{z-index:35;-webkit-backdrop-filter:blur(8px);background:#12131aad;border:1px solid #c69e5433;border-radius:16px;gap:10px;padding:10px;display:inline-flex;position:absolute;top:clamp(10px,1.6vh,18px);right:clamp(10px,1.2vw,20px)}.book-ui-actions button{color:#f2deb3f2;letter-spacing:.01em;cursor:pointer;background:#c69e541f;border:1px solid #c69e543d;border-radius:12px;min-height:46px;padding:10px clamp(12px,1vw,16px);font-size:clamp(.8rem,.74rem + .2vw,.9rem);font-weight:600;transition:background .14s,border-color .14s}.book-ui-actions button:hover{background:#c69e5433;border-color:#eccc8c5c}.book-ui-actions .kiosk-toggle-btn{color:#fff8ea;background:linear-gradient(145deg,#f4d69161,#b17a2d52);border-color:#f4d69185;min-width:132px;min-height:50px;font-weight:800;box-shadow:0 8px 20px #00000057,inset 0 1px #fff4d680}.book-ui-actions .kiosk-toggle-btn:hover{background:linear-gradient(145deg,#fadd9c7a,#c0883761);border-color:#fce1a2a8}.presentation-mode .book-ui-actions .kiosk-toggle-btn{border-color:#ffeab8b8}.book-filter-summary{z-index:30;pointer-events:none;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:min(88vw,620px);display:flex;position:absolute;top:clamp(64px,9vh,98px);right:clamp(10px,1.2vw,20px)}.book-filter-summary span{color:#f4e4beeb;letter-spacing:.02em;pointer-events:auto;background:#12131ab8;border:1px solid #c69e5438;border-radius:999px;align-items:center;min-height:30px;padding:4px 10px;font-size:.72rem;display:inline-flex}.book-filter-summary .book-filter-active-person{color:#fcefd2;background:#1a1612d9;border-color:#eccc8c85;font-weight:600}.book-filter-clear-btn{color:#fff6def2;cursor:pointer;background:#c69e5433;border:1px solid #c69e5459;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-left:6px;padding:0;font-size:.65rem;line-height:1;transition:background .14s,border-color .14s;display:inline-flex}.book-filter-clear-btn:hover{background:#eccc8c80;border-color:#eccc8cb3}.book-help-backdrop{z-index:1500;background:#0000006b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.book-help-card{color:#f1f1f4;background:#12131af0;border:1px solid #eccc8c47;border-radius:16px;width:min(92vw,520px);padding:14px;box-shadow:0 24px 48px #00000080}.book-help-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.book-help-top h2{color:#f4e4befa;margin:0;font-size:1.05rem}.book-help-top button{color:#f4e4bef5;cursor:pointer;background:#eccc8c1f;border:1px solid #eccc8c42;border-radius:9px;padding:6px 10px}.book-help-card ul{color:#f1f1f4e6;gap:8px;margin:0;padding-left:18px;line-height:1.45;display:grid}.book-ambience-note{z-index:26;color:#f4e4befa;text-align:center;letter-spacing:.01em;-webkit-backdrop-filter:blur(10px);pointer-events:none;background:radial-gradient(140% 140% at 0 0,#c69e5424,#0000 55%),#12131acc;border:1px solid #c69e544d;border-radius:16px;width:min(92vw,760px);padding:16px 18px;font-size:1rem;line-height:1.45;animation:.36s ambience-fade-in;position:absolute;top:86px;left:50%;transform:translate(-50%);box-shadow:0 16px 34px #0000006b,inset 0 1px #fff0c82e}.book-ambience-note-kicker{text-transform:uppercase;letter-spacing:.08em;color:#f9e8c1eb;background:#c69e5424;border:1px solid #c69e5457;border-radius:999px;margin-bottom:8px;padding:4px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.book-ambience-note h3{color:#fcedc9fa;letter-spacing:.015em;text-shadow:0 1px 10px #00000059;margin:0;font-size:clamp(1.2rem,2.5vw,1.6rem)}.book-ambience-note p{color:#f4e4beeb;margin:8px 0 0;font-size:clamp(.92rem,1.8vw,1.05rem)}.book-ambience-note.intro{border-color:#d2ae6c6b}.book-ambience-note.outro{background:radial-gradient(140% 140% at 100% 0,#b491501f,#0000 55%),#12131acc;border-color:#ad915f6b}@keyframes ambience-fade-in{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.tutorial-anchor{border-radius:14px;position:relative}.tutorial-anchor.book-anchor,.book-anchor{flex:1;width:100%;height:100%;min-height:0;margin-inline:auto;display:block;position:relative}.tutorial-anchor.book-anchor>.book-outer,.book-anchor>.book-outer{width:100%;max-width:100%;height:100%}.book-filter-empty{left:50%;bottom:calc(84px + env(safe-area-inset-bottom));z-index:12;text-align:center;color:#f4e4bef0;background:radial-gradient(140% 140% at 0 0,#c69e5424,#0000 55%),#12131acc;border:1px solid #c69e544d;border-radius:16px;width:min(90vw,680px);padding:22px 20px;position:absolute;transform:translate(-50%);box-shadow:0 16px 34px #0000006b,inset 0 1px #fff0c82e}.book-filter-empty h3{margin:0;font-size:1.2rem}.book-filter-empty p{color:#f4e4bed6;margin:8px 0 0;line-height:1.4}.app-layout.tutorial-open .tutorial-anchor.tutorial-active{z-index:var(--z-tutorial-highlight)}.tutorial-anchor.tutorial-active:after{content:"";pointer-events:none;border:2px solid #eccc8cc7;border-radius:16px;animation:1.2s ease-in-out infinite tutorial-pulse;position:absolute;inset:-8px;box-shadow:0 0 0 1px #eccc8c57,0 0 22px #eccc8c59}.tutorial-target-active{z-index:40;position:relative}.tutorial-target-active:after{content:"";pointer-events:none;border:2px solid #eccc8cc2;border-radius:16px;position:absolute;inset:-6px;box-shadow:0 0 0 1px #eccc8c57}.app-layout.tutorial-open .tutorial-dimmable{opacity:.42;transition:opacity .14s}.app-layout.tutorial-open .tutorial-dimmable.tutorial-target-active{opacity:1}@keyframes tutorial-pulse{0%,to{opacity:.65;transform:scale(1)}50%{opacity:1;transform:scale(1.01)}}.tutorial-overlay{z-index:1000;pointer-events:none;justify-content:flex-end;align-items:flex-start;display:flex;position:fixed;inset:0}.tutorial-overlay:before{content:none}.tutorial-panel{z-index:1001;color:#f1f1f4;pointer-events:auto;background:#12131aeb;border:1px solid #eccc8c52;border-radius:16px;width:min(92vw,430px);max-height:calc(100dvh - 36px);margin:18px;padding:14px;position:relative;overflow:auto;box-shadow:0 24px 50px #00000085}.tutorial-panel-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.tutorial-panel-top p{text-transform:uppercase;letter-spacing:.08em;color:#eccc8cdb;margin:0;font-size:.76rem}.tutorial-panel-top button{color:#f4e4bef5;cursor:pointer;background:#eccc8c1f;border:1px solid #eccc8c42;border-radius:9px;padding:6px 10px}.tutorial-progress-track{background:#ffffff14;border-radius:999px;height:6px;margin-top:10px;overflow:hidden}.tutorial-progress-track span{background:linear-gradient(90deg,#eccc8c66,#eccc8cf2);height:100%;transition:width .22s;display:block}.tutorial-panel h2{color:#f4e4befa;margin:12px 0 6px;font-size:1.1rem}.tutorial-panel p{color:#f1f1f4e0;margin:0;line-height:1.45}.tutorial-step-state{font-size:.84rem;color:#eccc8cdb!important;margin-top:10px!important}.tutorial-step-state.complete{color:#9fe8a9f2!important}.tutorial-tasks{box-sizing:border-box;background:#ffffff08;border:1px solid #eccc8c33;border-radius:12px;gap:8px;width:100%;margin-top:14px;padding:10px;display:grid}.tutorial-tasks h3{color:#eccc8ce6;margin:0 0 2px;font-size:.9rem}.tutorial-task{box-sizing:border-box;text-align:left;color:#f1f1f4;cursor:default;background:#eccc8c14;border:1px solid #eccc8c2e;border-radius:10px;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.tutorial-task.done{color:#fff6e5;background:linear-gradient(145deg,#eccc8c42,#b0834333);border-color:#eccc8c66;font-weight:700}.tutorial-score{font-size:.86rem;color:#eccc8ce6!important;margin-top:10px!important}.tutorial-nav{justify-content:space-between;gap:8px;margin-top:12px;display:flex}.tutorial-nav button{color:#f8e8c4f5;cursor:pointer;background:#eccc8c24;border:1px solid #eccc8c47;border-radius:10px;flex:1;padding:9px 12px;font-weight:700}.tutorial-nav button:disabled{opacity:.45;cursor:not-allowed}.app-layout.tutorial-open .book-ui-actions.tutorial-active{z-index:var(--z-tutorial-highlight)}.book-ui-actions.tutorial-active:after{content:"";pointer-events:none;border:2px solid #eccc8cc7;border-radius:16px;animation:1.2s ease-in-out infinite tutorial-pulse;position:absolute;inset:-8px;box-shadow:0 0 0 1px #eccc8c57,0 0 22px #eccc8c59}.book-outer{width:100%;height:100%;min-height:0;position:relative}.book-initial-loading,.book-catalog-loading{z-index:8;color:#f4e4beeb;font-family:var(--font-display);letter-spacing:.04em;-webkit-backdrop-filter:blur(5px);background:#121216b8;place-content:center;justify-items:center;gap:18px;font-size:1.08rem;animation:.22s ease-out book-loading-fade-in;display:grid;position:absolute;inset:0}.book-catalog-loading{min-height:100%}.book-loading-mark{perspective:280px;width:100px;height:72px;display:flex}.book-loading-mark span{background:linear-gradient(135deg,#ead5a0,#9b6c2e);border:1px solid #f4dca28a;width:50%;height:100%;box-shadow:inset 0 0 18px #fff7da57,0 10px 24px #00000057}.book-loading-mark span:first-child{transform-origin:100%;animation:1.25s ease-in-out infinite book-loading-left-page}.book-loading-mark span:last-child{transform-origin:0;animation:1.25s ease-in-out infinite book-loading-right-page}@keyframes book-loading-fade-in{0%{opacity:0}to{opacity:1}}@keyframes book-loading-left-page{0%,to{transform:rotateY(0)}50%{transform:rotateY(38deg)}}@keyframes book-loading-right-page{0%,to{transform:rotateY(0)}50%{transform:rotateY(-38deg)}}@media (prefers-reduced-motion:reduce){.book-initial-loading,.book-catalog-loading,.book-loading-mark span{animation:none}}.book-controls{z-index:6;padding:10px 12px calc(14px + env(safe-area-inset-bottom));color:#f0deb7e6;letter-spacing:.02em;pointer-events:none;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:.94rem;display:flex;position:absolute;bottom:0;left:0;right:0}.book-controls span{color:#f2deb1;background:linear-gradient(145deg,#eccc8c3d,#b0834329);border:1px solid #eccc8c42;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-width:168px;padding:10px 16px;font-weight:700;display:inline-flex;position:relative;box-shadow:0 8px 22px #0000004d,inset 0 1px #fff6de38,inset 0 -10px 14px #845c2233}.book-controls button{pointer-events:auto;color:#f2deb1;letter-spacing:.01em;cursor:pointer;background:linear-gradient(145deg,#eccc8c33,#b0834324);border:1px solid #eccc8c57;border-radius:999px;min-width:110px;min-height:44px;padding:10px 14px;font-weight:700;transition:background .16s,border-color .16s,transform .16s,opacity .16s;box-shadow:0 6px 16px #00000038,inset 0 1px #fff6de2e}.book-controls button:hover:not(:disabled){background:linear-gradient(145deg,#eccc8c4d,#b0834333);border-color:#eccc8c7a;transform:translateY(-1px)}.book-controls button:disabled{cursor:default;opacity:.5}.book-controls .book-page-arrow{justify-content:center;align-items:center;width:44px;min-width:44px;padding:10px;display:inline-flex}.book-controls span:before{content:"";background:radial-gradient(circle at 30% 30%,#f9eccf,#b88a4b 70%);border-radius:50%;width:9px;height:9px;box-shadow:inset 0 0 0 1px #4d311033}.book-side-nav-arrow{z-index:25;-webkit-backdrop-filter:blur(8px);color:#f2deb1;cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(145deg,#1e1a14db,#12100cf0);border:1px solid #eccc8c6b;border-radius:50%;justify-content:center;align-items:center;width:clamp(46px,3.6vw,58px);height:clamp(46px,3.6vw,58px);transition:background .16s,border-color .16s,transform .16s,opacity .22s,box-shadow .16s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 8px 24px #00000080,inset 0 1px #fff6de4d}.book-side-nav-arrow.book-side-nav-prev{left:clamp(10px,1.8vw,28px)}.book-side-nav-arrow.book-side-nav-next{right:clamp(10px,1.8vw,28px)}.book-side-nav-arrow:hover:not(:disabled){color:#fff6e5;background:linear-gradient(145deg,#eccc8c5c,#b083434d);border-color:#eccc8cbf;transform:translateY(-50%)scale(1.08);box-shadow:0 10px 28px #0009,0 0 18px #eccc8c47,inset 0 1px #fff6de59}.book-side-nav-arrow:active:not(:disabled){transform:translateY(-50%)scale(.96)}.book-side-nav-arrow:disabled{opacity:.22;cursor:default;pointer-events:none}#book-viewport{box-sizing:border-box;width:100%;height:100%;min-height:0;padding:clamp(10px, 1.4vh, 18px) clamp(6px, 1vw, 16px) calc(clamp(64px, 8.5vh, 88px) + env(safe-area-inset-bottom));touch-action:pan-y;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}#book-container{background:linear-gradient(90deg,#0000 calc(50% - 3px),#53361047 calc(50% - 3px),#dfba7066 50%,#5336104d calc(50% + 3px),#0000 calc(50% + 3px)),radial-gradient(circle,#fff8e614,#0000 62%),#333;max-width:min(96vw,1680px);max-height:min(88dvh,1220px);margin-inline:auto;position:relative;box-shadow:0 0 120px #000000b3,0 20px 42px #00000073}.page{background-color:#fffaf0;background-repeat:no-repeat;background-size:cover;background-position:var(--page-focal-x) var(--page-focal-y);box-shadow:inset 0 0 0 1px #0000000a}.page-content{background-repeat:no-repeat;background-size:cover;background-position:var(--page-focal-x) var(--page-focal-y);backface-visibility:hidden;will-change:transform;width:100%;height:100%;image-rendering:high-quality;image-rendering:-webkit-optimize-contrast;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:inset 0 0 24px #00000014}.page-glow{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;top:0}.left-side{border-right:1px solid #0000001a}.left-side .page-glow{background:linear-gradient(90deg,#0000 80%,#00000026 95%,#0003 100%)}.right-side .page-glow{background:linear-gradient(270deg,#0000 80%,#00000026 95%,#0003 100%)}.text-layer{color:#0000;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:3;padding:50px;font-size:1.1rem;line-height:1.6;position:absolute;inset:0}@media (width<=640px){.book-filter-summary{justify-content:center;max-width:none;top:118px;left:10px;right:10px}.book-ui-actions{flex-wrap:wrap;justify-content:center;width:auto;left:10px;right:10px}.book-ui-actions button{flex:150px;min-width:0}#book-viewport{padding-top:64px;padding-bottom:calc(102px + env(safe-area-inset-bottom))}.book-controls{gap:6px}.book-controls span{order:-1;width:min(94vw,320px)}.book-controls button{flex:130px;max-width:170px}.book-side-nav-arrow{width:40px;height:40px}.book-side-nav-arrow.book-side-nav-prev{left:6px}.book-side-nav-arrow.book-side-nav-next{right:6px}}@media (width>=1500px){.main-content{padding:16px 20px 14px}.book-ui-actions{gap:10px;padding:10px}.book-ui-actions button{min-height:44px;font-size:.88rem}.book-controls{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.book-controls button{min-width:104px;min-height:40px;font-size:.9rem}.book-controls span{min-width:176px;font-size:1rem}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.page-modal-backdrop{z-index:var(--z-modal);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000e0;justify-content:center;align-items:center;animation:.18s modal-fade-in;display:flex;position:fixed;inset:0}.page-modal-frame{aspect-ratio:520/640;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:14px;justify-content:center;align-items:center;width:min(96vw,760px);max-height:min(92vh,92dvh);display:flex;position:relative;overflow:hidden;box-shadow:0 40px 80px #000000b3,0 0 0 1px #ffffff14}.page-modal-frame:active{cursor:grabbing}.page-modal-image{transform-origin:50%;will-change:transform;width:auto;max-width:100%;height:auto;max-height:100%;image-rendering:high-quality;image-rendering:-webkit-optimize-contrast;pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0;display:block}.page-modal-label{color:#f5f5f7;text-align:center;pointer-events:none;letter-spacing:.02em;background:linear-gradient(#0000 0%,#000000b8 100%);padding:28px 16px 14px;font-size:.875rem;position:absolute;bottom:0;left:0;right:0}.page-modal-close,.page-modal-reset{color:#f3dfb2;cursor:pointer;width:42px;height:42px;z-index:var(--z-modal-controls);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(145deg,#eccc8c42,#b0834338);border:1px solid #eccc8c42;border-radius:50%;place-items:center;transition:background .16s,transform .14s,box-shadow .16s,border-color .16s;display:grid;position:fixed;right:22px;box-shadow:0 6px 16px #00000047,inset 0 0 0 1px #eccc8c29}.page-modal-close{font-size:1rem;top:18px}.page-modal-reset{letter-spacing:.03em;border-radius:20px;justify-content:center;align-items:center;gap:6px;width:auto;padding:0 12px;font-size:.72rem;display:flex;top:70px}.page-modal-close:hover,.page-modal-reset:hover{background:linear-gradient(145deg,#eccc8c57,#b083434d);border-color:#eccc8c6b;transform:scale(1.06);box-shadow:0 8px 20px #00000057,inset 0 0 0 1px #eccc8c3d}.page-modal-close:focus-visible,.page-modal-reset:focus-visible{outline-offset:2px;outline:2px solid #eccc8cb8}@media (width<=980px){.tutorial-panel{max-height:min(76vh,76dvh)}.page-modal-frame{border-radius:12px;width:min(98vw,640px);max-height:min(94vh,94dvh)}.page-modal-close,.page-modal-reset{min-height:48px;right:12px}.page-modal-close{width:48px;height:48px;top:12px}.page-modal-reset{min-width:96px;top:60px}}
