.presentation-body{height:100svh;min-height:0;overflow:hidden;background:#f4f1e9}
.presentation-stage{position:fixed;inset:0;overflow:hidden;touch-action:pan-y pinch-zoom;outline:none!important}
.slide{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .24s ease;pointer-events:none;user-select:none}
.slide.is-current{opacity:1}
.viewer-header{position:fixed;inset:0 0 auto;z-index:10;background:rgb(248 247 243 / .94);backdrop-filter:blur(16px);transform:translateY(-105%);opacity:0;pointer-events:none;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .2s ease;gap:20px}
.header-visible .viewer-header,.viewer-header:has(:focus-visible),.touch-controls .viewer-header{transform:translateY(0);opacity:1;pointer-events:auto}
.header-sensor{position:fixed;inset:0 0 auto;height:28px;z-index:9}
.viewer-tools{display:flex;align-items:center;gap:14px;color:#6f685e;font-size:11px;font-variant-numeric:tabular-nums}
#page-count{min-width:42px;text-align:center}
.icon-control{width:32px;height:36px;padding:6px;border:0;background:none;color:inherit;display:grid;place-items:center;cursor:pointer}
.icon-control svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.page-arrow{position:fixed;z-index:5;top:50%;transform:translateY(-50%);width:clamp(66px,11vw,144px);height:min(48vh,360px);display:grid;place-items:center;border:0;padding:0;background:none;cursor:pointer;opacity:0;transition:opacity .2s ease;color:#39362f;touch-action:manipulation}
.page-arrow.previous{left:0}.page-arrow.next{right:0}
.page-arrow span{width:46px;height:46px;display:grid;place-items:center;background:rgb(248 247 243 / .88);backdrop-filter:blur(10px);border:1px solid rgb(57 54 47 / .1);border-radius:50%;box-shadow:0 2px 12px rgb(57 54 47 / .05)}
.page-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.arrows-visible .page-arrow,.page-arrow:focus-visible,.touch-controls .page-arrow{opacity:1}
.page-arrow:disabled{opacity:0;pointer-events:none}
.presentation-error{position:fixed;z-index:15;bottom:24px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 40px);padding:14px 20px;background:#f8f7f3;border:1px solid #dedbd3;border-radius:8px;font-size:13px;line-height:1.6}
.presentation-error button{font:inherit;border:0;padding:0;background:none;color:inherit;cursor:pointer;text-decoration:underline}.presentation-error a{text-decoration:underline}
@media(max-width:760px){.viewer-header{padding-left:20px;padding-right:20px;gap:12px}.viewer-header .wordmark{font-size:24px}.viewer-header nav{gap:18px}.viewer-tools{gap:4px;font-size:10px}.viewer-tools .icon-control{width:27px;height:40px;padding:5px}.viewer-tools #page-count{min-width:34px}.page-arrow{width:64px;height:38vh}.page-arrow span{width:40px;height:40px}}
@media(max-width:370px){.viewer-header nav{gap:12px;font-size:11px}.viewer-header{padding-left:16px;padding-right:16px;gap:6px}.viewer-tools .icon-control{width:24px}.viewer-header .wordmark{font-size:22px}}
@media(prefers-reduced-motion:reduce){.slide,.viewer-header,.page-arrow{transition:none}}

.icon-control[hidden]{display:none}
