:root{color-scheme:light;--navy:#292f71;--deep:#171a48;--cyan:#266783;--orange:#e97c31;--paper:#fff;--ink:#1c2540;--muted:#69718a;--line:#dfe3ef}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:#f2f4f9}
button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.35}
.application{min-height:100dvh;display:flex;flex-direction:column}
.topbar{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:white;padding:10px clamp(14px,3vw,38px);box-shadow:0 1px 10px #13184411;z-index:20}
.brand{display:flex;align-items:center;gap:11px;min-width:180px}.crest{height:48px;width:48px;display:block;object-fit:contain;flex:none}.brand-copy,.document-title{display:flex;flex-direction:column;gap:2px}.brand-copy strong{font-size:15px;letter-spacing:.07em;color:var(--navy)}.brand-copy span,.document-title span{font-size:12px;color:var(--muted)}.document-title{text-align:center;min-width:0}.document-title strong{font-size:19px;color:var(--navy)}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:285px}
.tool-btn,.pdf-link,.small-button,.nav-button{border:1px solid var(--line);background:white;color:var(--navy);padding:10px 13px;border-radius:10px;text-decoration:none;white-space:nowrap;font-weight:650;font-size:13px;transition:background .2s,border-color .2s}.tool-btn:hover,.small-button:hover,.nav-button:hover{background:#edf0fa;border-color:#afb7d0}.pdf-link,.nav-button.primary{background:var(--navy);color:#fff;border-color:var(--navy)}.pdf-link:hover,.nav-button.primary:hover{background:#363d93;color:#fff}
.searchbar{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px 8px;z-index:15}.search-wrap{display:flex;position:relative;gap:6px;max-width:540px;flex:1}.search-wrap input{border-radius:11px;padding:10px 13px;border:1px solid var(--line);background:white;min-width:0;width:100%;outline-color:var(--cyan)}.small-button{padding:9px 12px}.zoom-controls{display:flex;align-items:center;gap:5px;background:white;padding:4px;border-radius:11px;border:1px solid var(--line)}.zoom-controls .small-button{min-width:35px;padding:5px 7px;border:0;font-size:16px}.zoom-controls .reset-button{font-size:12px}.zoom-controls span{font-size:12px;font-weight:700;min-width:43px;text-align:center;color:var(--navy)}
.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:240px;overflow:auto;background:white;border:1px solid var(--line);box-shadow:0 12px 34px #171a4829;border-radius:12px;z-index:100;padding:6px}.search-results[hidden]{display:none}.result-item{display:block;width:100%;text-align:left;background:white;border:0;border-radius:8px;padding:11px;color:var(--ink);line-height:1.3}.result-item:hover{background:#f1f3fc}.result-item strong{display:block;font-size:13px;color:var(--navy);margin-bottom:4px}.result-item span{font-size:12px;color:var(--muted)}.search-empty{padding:12px;font-size:13px;color:var(--muted)}
.stage{flex:1;min-height:340px;overflow:auto;position:relative;display:flex;align-items:stretch;justify-content:stretch;background:radial-gradient(ellipse at 50% 25%,#f5f6fa 0%,#e3e6f0 66%,#d5daea 100%);border-top:1px solid #e5e8f3;border-bottom:1px solid #e5e8f3}.stage-inner{display:flex;align-items:center;justify-content:center;min-width:100%;min-height:100%;padding:18px 60px;margin:auto}.book{flex:none;position:relative;perspective:2400px;transform-style:preserve-3d;background:#f7f7f7;box-shadow:1px 9px 14px #08113727,12px 27px 45px #0b164326;border-radius:3px;isolation:isolate}.page-base{position:absolute;top:0;bottom:0;width:50%;background:white;overflow:hidden}.left-page{left:0;border-radius:3px 0 0 3px}.right-page{right:0;border-radius:0 3px 3px 0}.page-base img,.sheet-face img{display:block;width:100%;height:100%;object-fit:fill;user-select:none;-webkit-user-drag:none;pointer-events:none}.page-base.blank,.sheet-face.blank{background:#fafafa}.page-base.blank::after,.sheet-face.blank::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff0,#e2e5f06b);pointer-events:none}.left-page::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 88%,#00000013);pointer-events:none}.right-page::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#00000018 0%,transparent 11%);pointer-events:none}.book-spine{position:absolute;left:calc(50% - 2px);width:4px;top:0;bottom:0;background:linear-gradient(90deg,#090c2530,#ffffff80,#070b3030);z-index:3;pointer-events:none}
.turn-sheet{display:none;position:absolute;top:0;left:50%;width:50%;height:100%;z-index:5;transform-origin:left center;transform-style:preserve-3d;transform:rotateY(0deg);transition:transform .86s cubic-bezier(.2,.52,.22,1);will-change:transform}.turn-sheet.active{display:block}.turn-sheet.forward{transform:rotateY(-180deg)}.turn-sheet.backward{transform:rotateY(0deg)}.sheet-face{position:absolute;inset:0;background:#fff;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-shadow:2px 1px 9px #1015321e}.sheet-front{transform:rotateY(0deg)}.sheet-back{transform:rotateY(180deg)}.sheet-front::after,.sheet-back::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0000 62%,#0003);opacity:.28;pointer-events:none}.sheet-back::after{background:linear-gradient(90deg,#0003,#0000 40%)}
.book.single .left-page,.book.single .book-spine{display:none}.book.single .right-page{left:0;width:100%}.book.single .turn-sheet{left:0;width:100%}
.stage-arrow{position:fixed;top:49%;width:40px;height:62px;background:#fffdf3ec;color:var(--navy);font-size:39px;border:1px solid #bfc5d6;border-radius:11px;box-shadow:0 5px 17px #17235523;z-index:7;display:grid;place-items:center;line-height:1}.stage-arrow:hover{background:#fff}.stage-arrow-left{left:clamp(7px,1.3vw,22px)}.stage-arrow-right{right:clamp(7px,1.3vw,22px)}
.bottombar{min-height:92px;background:#fff;display:flex;align-items:center;justify-content:center;gap:22px;padding:11px 16px}.nav-button{min-width:120px}.pagination{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:min(450px,50vw)}.pagination>label{font-size:13px;font-weight:750;color:var(--navy)}.pagination>input{width:100%;accent-color:var(--navy)}.jump{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.jump input{width:66px;border:1px solid var(--line);padding:4px 7px;border-radius:7px}.jump .small-button{padding:5px 9px;font-size:11px}.hint{color:var(--muted);font-size:11px;text-align:center;margin:0;padding:0 10px 9px;background:white}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:850px){.topbar{min-height:64px}.document-title{display:none}.brand{min-width:0}.top-actions{min-width:0}.desktop-label{display:none}.stage-inner{padding:15px 40px}.stage-arrow{position:sticky;align-self:center;flex:none}.stage-arrow-left{left:3px;margin-left:-100%}.stage-arrow-right{right:3px;margin-right:-100%;margin-left:auto}}
@media(max-width:640px){.topbar{flex-wrap:wrap}.crest{width:31px;height:31px;font-size:12px}.brand-copy span{display:none}.brand-copy strong{font-size:13px}.top-actions{gap:5px}.tool-btn,.pdf-link{font-size:11px;padding:8px 9px}.searchbar{flex-wrap:wrap;gap:5px;padding:7px 8px 5px}.search-wrap{flex-basis:100%;max-width:none}.search-wrap input{font-size:13px}.zoom-controls{margin-left:auto}.stage-inner{padding:14px 21px}.stage-arrow{height:48px;width:28px;font-size:30px}.bottombar{min-height:91px;gap:8px;padding:7px 8px}.nav-button{min-width:70px;padding:9px 5px;font-size:11px}.pagination{min-width:0;flex:1}.jump label{display:none}.hint{font-size:10px}}
@media(prefers-reduced-motion:reduce){.turn-sheet{transition-duration:.2s}.tool-btn,.pdf-link,.small-button,.nav-button{transition:none}}
/* Keep on-page arrows out of flex layout so the book is centered on phones. */
@media(max-width:850px){
  .stage-arrow{position:fixed;top:50%;margin:0}
  .stage-arrow-left{left:6px;margin:0}
  .stage-arrow-right{right:6px;margin:0}
}

/* Full-sized, centered covers: no filler page and no white empty leaf. */
.book.standalone{background:transparent;box-shadow:none}
.book.standalone .left-page,.book.standalone .book-spine{display:none}
.book.standalone .right-page{left:0;right:0;width:100%;border-radius:3px;box-shadow:1px 9px 14px #08113727,12px 27px 45px #0b164326}
.book.standalone .right-page::after{display:none}
