:root{color-scheme:dark;font-family:Arial,'Malgun Gothic',sans-serif;color:#f4f4f5;background:#181b20}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{height:100dvh;display:flex;flex-direction:column;font-size:clamp(18px,1.15vw,28px)}header{flex:0 0 46px;display:flex;align-items:center;gap:20px;padding:4px 14px;background:#121418;border-bottom:1px solid #34373d}.brand{font-size:26px;line-height:1;font-weight:900;letter-spacing:-1px}.brand span{display:none}.edition{font-size:12px;letter-spacing:.6px}.edition b{font-size:14px;margin-left:12px}.download{margin-left:auto;font-size:.85em;color:#fff;text-decoration:none}.download:hover{text-decoration:underline}main{flex:1 1 0;min-height:0;width:100%;padding:0 6px;display:grid;grid-template-rows:46px minmax(0,1fr) 52px}button,input{font:inherit}button{cursor:pointer;border:1px solid #42464e;background:#252930;color:#f4f4f5;border-radius:5px;min-height:36px;padding:3px 12px;line-height:1.25}button:hover{background:#3d424c}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #ffc600;outline-offset:2px}.toolbar{display:flex;align-items:center;gap:16px;min-width:0}.hint{display:none}.zoom{margin-left:auto;display:flex;align-items:center;gap:8px}.zoom output{width:3em;text-align:center}#viewport{min-height:0;overflow:auto;padding:4px;border:1px solid #34373d;background:#24272d;border-radius:4px;overscroll-behavior:contain}#book{position:relative;margin:0 auto;user-select:none;-webkit-user-select:none}#flipbook{width:100%;height:100%;touch-action:pan-y}.catalog-page{background:white;overflow:hidden}.catalog-page img{width:100%;height:100%;object-fit:fill;display:block;user-select:none;-webkit-user-drag:none}.stf__parent{cursor:grab}.stf__parent:active{cursor:grabbing}.navigation{display:flex;align-items:center;justify-content:center;gap:8px}#jump{display:flex;align-items:center;gap:8px}input{width:4em;padding:3px 5px;line-height:1.25;background:#11151a;border:1px solid #555b65;border-radius:4px;color:#fff;text-align:center;min-height:36px}#status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}footer{display:none}dialog{border:1px solid #51565f;border-radius:10px;background:#20242b;color:#eee;width:min(680px,94vw);max-height:85dvh;padding:20px}dialog::backdrop{background:#000a}.dialogHead{display:flex;justify-content:space-between;align-items:center;position:sticky;top:-20px;background:#20242b}h2{font-size:1.25em}h2 small{font-size:.6em;color:#bbc0c7;margin-left:10px}#chapters button{width:100%;display:flex;justify-content:space-between;text-align:left;margin:6px 0;padding:9px;font-size:.9em}#chapters span{color:#ffc600;margin-left:12px}@media(max-width:700px){body{font-size:16px}header{flex-basis:40px;gap:9px;padding:3px 8px}.brand{font-size:22px}.edition{font-size:10px;letter-spacing:0}.edition b{display:block;font-size:10px;margin-left:0}.download{font-size:12px}main{grid-template-rows:44px minmax(0,1fr) 48px;padding:0 3px}.toolbar{gap:4px}.zoom{gap:4px}.zoom button,button{padding:5px 8px;min-height:36px}.navigation{gap:4px}#jump{gap:4px}#jump label{display:none}input{width:45px;min-height:36px}#zoomLabel{width:2.7em}}

/* Half-height controls: one top row, compact bottom row. */
@media(min-width:701px){body{display:grid;grid-template-rows:46px minmax(0,1fr);grid-template-columns:minmax(260px,1fr) auto}header{grid-row:1;grid-column:1;height:46px;min-width:0;gap:12px;padding:3px 10px;border:0}.brand{font-size:24px}.edition{font-size:12px}.edition b{font-size:14px;margin-left:8px}.download{margin-left:16px;font-size:16px}main{display:contents}.toolbar{grid-row:1;grid-column:2;height:46px;padding:3px 8px;gap:12px;background:#121418}.zoom{gap:6px}#viewport{grid-row:2;grid-column:1 / -1;margin:0 4px 26px}.navigation{position:fixed;bottom:0;left:0;right:0;height:26px;gap:7px;font-size:16px;background:#181b20}.navigation button,.navigation input{min-height:22px;height:22px;padding:0 8px;font-size:16px;line-height:20px}.navigation input{width:54px}.navigation #jump{gap:6px}.toolbar button{min-height:32px;height:32px;padding:2px 10px;font-size:18px}.toolbar output{font-size:18px}.toolbar .zoom{gap:5px}}
@media(min-width:701px) and (max-width:1100px){header .edition{font-size:0}header .edition b{font-size:12px;margin-left:0}.download{font-size:14px;margin-left:0}.brand{font-size:22px}.toolbar{gap:6px}.toolbar button{font-size:16px;padding:2px 7px}}
@media(max-width:700px){header{display:none}main{grid-template-rows:40px minmax(0,1fr) 26px}.navigation{font-size:14px;gap:4px}.navigation button,.navigation input{min-height:22px;height:22px;padding:0 6px;font-size:14px;line-height:20px}#jump input{width:44px}#jump{gap:4px}.toolbar{position:relative}.toolbar:after{content:'2026–2027';font-size:11px;color:#c1c6cd;margin-left:3px;order:1}.zoom{order:2}.toolbar button{min-height:30px;height:30px;padding:2px 6px}}

.zoom .zoom-slider{appearance:auto;-webkit-appearance:auto;width:110px;min-width:55px;height:28px;min-height:0;padding:0;border:0;background:transparent;accent-color:#ffc600;cursor:ew-resize;margin:0 3px;touch-action:pan-y}.zoom .zoom-slider:focus-visible{outline:2px solid #ffc600;outline-offset:2px}@media(max-width:1100px){.zoom .zoom-slider{width:75px}}@media(max-width:700px){.zoom .zoom-slider{width:55px;min-width:35px}.toolbar:after{display:none}.zoom{gap:2px}.toolbar button{padding:2px 5px}}

.brand{background:#ffc600;color:#111;padding:5px 10px;letter-spacing:-1px} @media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Distributor contact strip, with the supplied IMPT logo. */
footer.distributor{display:flex;position:fixed;right:10px;bottom:1px;height:46px;align-items:center;justify-content:flex-end;gap:8px;font-size:11px;line-height:1.5;background:#181b20;color:#eee;z-index:5}
.distributor .impt-logo{display:flex;background:white;border-radius:2px;overflow:hidden;flex-shrink:0}
.distributor img{display:block;width:76px;height:35px;object-fit:contain}
.distributor strong{display:block;font-size:12px;font-weight:600}
.distributor span{display:block;white-space:nowrap}
.distributor a{color:inherit;text-decoration:none}
.distributor div a:first-child{color:#ffc600;text-decoration:underline;text-underline-offset:2px}
.distributor a:hover{text-decoration:underline}
@media(min-width:1101px){#viewport{margin-bottom:48px}.navigation{height:48px;justify-content:flex-start;padding-left:12px}}
@media(min-width:701px) and (max-width:1100px){#viewport{margin-bottom:76px}.navigation{bottom:48px}footer.distributor{height:46px}}
@media(max-width:700px){main{grid-template-rows:40px minmax(0,1fr) 26px 54px}footer.distributor{position:static;grid-row:4;height:54px;padding:3px 4px;gap:6px;font-size:10px}.distributor strong{font-size:11px}.distributor img{width:62px;height:31px}}

@media(max-width:700px){#viewport,#flipbook{touch-action:pan-x pan-y}}

@media(min-width:1300px){
 footer.distributor{font-size:15px;gap:12px}
 .distributor img{width:100px;height:40px}
 .distributor>div{display:flex;align-items:center;gap:14px}
 .distributor strong{font-size:15px;white-space:nowrap}
}
@media(min-width:701px) and (max-width:1299px){
 #viewport{margin-bottom:54px}
 .navigation{bottom:0;height:54px;justify-content:flex-start;padding-left:8px}
 footer.distributor{height:52px;font-size:14px;gap:10px}
 .distributor img{width:100px;height:44px}
 .distributor strong{font-size:14px}
}
@media(min-width:701px) and (max-width:850px){
 .navigation{gap:3px;padding-left:4px;font-size:14px}
 .navigation #jump{gap:3px}
 .navigation #jump label{display:none}
 .navigation button,.navigation input{font-size:14px;padding:0 5px}
 footer.distributor{right:5px;font-size:11px;gap:5px}
 .distributor strong{font-size:12px}
 .distributor img{width:76px;height:36px}
}


#viewport.enlarged,#viewport.enlarged .stf__parent{cursor:grab}#viewport.panning,#viewport.panning .stf__parent{cursor:grabbing}
