:root{--ink:var(--brand-ink);--muted:var(--brand-muted);--line:var(--brand-line);--paper:var(--brand-paper);--surface:var(--brand-surface);--sans:var(--brand-font-ui)}
*{box-sizing:border-box}
html,body{min-height:100%;background:var(--paper);color:var(--ink);font-family:var(--sans)}
body{margin:0}
button,a,input{font:inherit}
button{color:inherit}
.brochure-reader{min-height:100vh;min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--paper);padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.reader-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:10px}
.reader-identity{display:flex;align-items:center;gap:18px;min-width:0}.brand-home{display:inline-flex;min-width:max-content}.brand-home img{display:block;width:auto;height:var(--brand-logo-height)}
.reader-identity h1{max-width:44ch;margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600}.all-brochures{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.reader-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:2px}.reader-actions button,.reader-actions a,.reader-navigation button,.zoom-controls button,.pages-overview button,.page-error button,.page-error a{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 10px;border:0;background:transparent;color:var(--ink);font-size:11px;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;cursor:pointer}.reader-actions button:hover,.reader-actions a:hover,.reader-navigation button:hover,.pages-overview button:hover,.page-error button:hover,.page-error a:hover{background:var(--brand-hover)}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.reader-main{min-height:0;display:grid;padding:12px 0}.reader-stage{position:relative;min-height:280px;height:100%;display:grid;place-items:center;overflow:hidden;background:var(--surface);touch-action:pan-y}.renderer-host{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.reader-loading{position:relative;z-index:5;max-width:38ch;padding:18px;text-align:center;color:var(--muted);font-size:13px}.brochure-reader[data-ready=true] .reader-loading{display:none}.brochure-reader[data-state=error] .reader-loading{color:var(--ink)}
.flat-renderer{width:100%;height:100%;display:grid;place-items:start center;overflow:hidden;touch-action:none}.flat-pages{width:100%;height:100%;display:grid;align-items:center;justify-content:center;gap:1px;transform-origin:top center;will-change:transform}.flat-pages.is-single{grid-template-columns:minmax(0,1fr)}.flat-pages.is-spread{grid-template-columns:repeat(2,minmax(0,1fr))}.page-frame{position:relative;justify-self:center;width:min(100%,calc((100vh - 180px) * var(--page-ratio)));width:min(100%,calc((100dvh - 180px) * var(--page-ratio)));max-height:100%;aspect-ratio:var(--page-ratio);overflow:hidden;background:var(--paper);box-shadow:0 12px 32px rgba(var(--brand-shadow),.14)}.is-spread .page-frame{width:100%;box-shadow:0 12px 32px rgba(var(--brand-shadow),.12)}.page-frame img{display:block;width:100%;height:100%;object-fit:contain;user-select:none}.page-error{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;padding:18px;text-align:center}.page-error p{max-width:24ch;margin:0;color:var(--muted);font-size:13px}
.page-flip-renderer,.page-flip-mount{width:100%;height:100%;display:grid;place-items:center}.page-flip-mount{max-width:100%}/* WATCH (confirmed): vendored StPageFlip misspells this selector as .sft__wrapper; without this correction the spread is centered from a zero-width wrapper and half renders offscreen. */.page-flip-mount .stf__wrapper{position:relative;top:50%;width:100%;box-sizing:border-box;transform:translateY(-50%)}.flip-page{overflow:hidden;background:var(--paper)}.flip-page img{display:block;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none}
.reader-navigation{display:grid;grid-template-columns:auto minmax(100px,1fr) auto auto;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:10px}.reader-navigation>button:disabled,.zoom-controls button:disabled{opacity:.28;cursor:default}.reader-position{min-width:0}.reader-position p{margin:0 0 7px;color:var(--muted);font-size:12px}.progress{height:1px;background:var(--brand-track)}.progress span{display:block;height:100%;width:0;background:var(--ink);transition:width .2s ease}.zoom-controls{display:flex;align-items:center}.zoom-controls button{padding:0 7px}.zoom-controls [data-fit]{min-width:52px}
.copy-fallback{position:fixed;z-index:20;right:18px;bottom:76px;width:min(420px,calc(100vw - 36px));padding:14px;border:1px solid var(--line);background:var(--paper);box-shadow:0 12px 36px rgba(var(--brand-shadow),.14)}.copy-fallback label{display:block;margin-bottom:8px;font-size:12px}.copy-fallback input{width:100%;min-height:42px;border:1px solid var(--line);padding:8px;color:var(--ink);background:var(--paper)}.reader-notice{min-height:18px;margin:4px 0 0;color:var(--muted);font-size:12px;text-align:center}
.pages-overview{width:min(980px,calc(100vw - 24px));height:min(760px,calc(100dvh - 24px));max-width:none;max-height:none;padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink)}.pages-overview::backdrop{background:var(--brand-scrim)}.pages-overview>header{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line);background:var(--paper)}.pages-overview h2,.pages-overview p{margin:0}.pages-overview h2{font-size:18px}.pages-overview p{margin-top:3px;color:var(--muted);font-size:12px}.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:16px;padding:18px}.page-grid>button{position:relative;display:grid;height:auto;padding:0;border:1px solid var(--line);background:var(--surface);text-transform:none;letter-spacing:0}.page-grid>button[aria-current=page]{outline:3px solid var(--ink);outline-offset:2px}.page-grid img,.thumbnail-error{display:block;width:100%;aspect-ratio:var(--thumbnail-ratio,3/2);object-fit:contain;background:var(--paper)}.thumbnail-error{display:grid;place-items:center;padding:10px;color:var(--muted);font-size:11px}.page-grid button span:last-child{position:absolute;right:5px;bottom:5px;min-width:26px;padding:3px;background:var(--brand-veil);font-size:11px}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.brochure-reader:fullscreen{padding:16px;background:var(--paper)}
@media(max-width:820px){.brochure-reader{padding-bottom:max(8px,env(safe-area-inset-bottom))}.reader-toolbar{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:5px}.reader-identity{gap:10px}.brand-home{display:none}.reader-actions{width:100%;min-width:0;max-width:100%;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.reader-actions::-webkit-scrollbar{display:none}.reader-actions button,.reader-actions a{flex:0 0 auto;min-height:40px;padding:0 7px}.reader-main{padding:8px 0}.reader-stage{min-height:220px}.reader-navigation{position:sticky;bottom:0;z-index:10;grid-template-columns:auto minmax(50px,1fr) auto auto;gap:4px;background:var(--paper);padding-top:8px}.reader-navigation>button span{display:none}.reader-position p{font-size:11px}.zoom-controls button{min-width:40px;padding:0 5px}.page-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;padding:12px}}
@media(max-height:520px) and (orientation:landscape){.reader-toolbar{padding-bottom:4px}.reader-actions button,.reader-actions a{min-height:36px}.reader-main{padding:4px 0}.reader-navigation{padding-top:4px}.reader-navigation button{min-height:38px}.reader-position p{margin-bottom:3px}}
@media(prefers-reduced-motion:reduce){.progress span{transition:none}}
