@font-face{font-family:Montserrat;src:url('./fonts/montserrat-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Montserrat;src:url('./fonts/montserrat-semibold.ttf') format('truetype');font-style:normal;font-weight:500 700;font-display:swap}
:root{color-scheme:dark;--navy:#00172e;--deep:#001124;--surface:#062139;--line:#1b374c;--cyan:#15b5ee;--ice:#9ddcf9;--text:#f3f8fc;--muted:#a5bed0;--ease:cubic-bezier(.16,1,.3,1);font-family:Montserrat,Arial,sans-serif;font-synthesis:none;background:var(--navy);color:var(--text)}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}a{color:inherit;text-underline-offset:5px}button:disabled{cursor:default;opacity:.3}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ice);outline-offset:5px}::selection{background:#1689bd;color:white}input{caret-color:var(--cyan)}[hidden]{display:none!important}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:12px;left:12px;z-index:100;background:var(--ice);color:var(--navy);padding:12px 20px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}
.app-shell{min-height:100svh}.site-header{height:100px;padding:16px 4.4%;display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line);position:relative;z-index:10;background:var(--navy)}.brand{display:block;line-height:0;flex-shrink:0}.brand img{width:116px;height:auto}.header-caption{font-size:12px;line-height:1.6;min-width:0;color:var(--muted);border-left:1px solid var(--line);padding:8px 0 8px 28px}.download-link{display:flex;align-items:center;gap:12px;margin-left:auto;text-decoration:none;font-size:12px;font-weight:600;min-height:44px;padding:10px 0 10px 15px}.download-link:hover{color:var(--ice)}.file-type{font-size:12px;letter-spacing:.04em;font-weight:400;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:5px 7px;margin-left:4px}
.welcome{position:relative;isolation:auto;min-height:calc(100svh - 100px);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:64px 24px 100px}.welcome-content{text-align:center;position:relative;z-index:auto}.logo-reveal{position:relative;z-index:51;margin:0 auto 38px;width:250px;animation:logo-reveal .84s .25s var(--ease) both}.welcome-logo{width:100%;height:auto;display:block}.welcome-invitation{position:relative;z-index:1;animation:invitation-in .84s 1.39s var(--ease) both}h1{font-size:clamp(34px,4.7vw,64px);line-height:1.12;letter-spacing:-.035em;font-weight:600;margin:0 0 32px;text-wrap:balance}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:32px;border:0;background:var(--cyan);color:var(--deep);font-weight:600;font-size:13px;min-height:56px;padding:16px 24px;border-radius:7px;transition:background .2s,transform .2s}.primary-button:hover{background:var(--ice);transform:translateY(-2px)}.primary-button:active{transform:translateY(0)}.butterfly-watermark{position:absolute;inset:-10% -8% -20% 47%;z-index:0;background:var(--ice);opacity:.035;mask:url('./assets/butterfly.svg') center/contain no-repeat;transform:rotate(14deg);pointer-events:none}.welcome::before{content:'';position:absolute;width:90px;height:2px;left:4.4%;top:48%;background:var(--cyan)}.welcome-footer{position:absolute;bottom:28px;left:4.4%;right:4.4%;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);gap:20px}.welcome-footer a{display:flex;align-items:center;gap:12px;text-decoration:none}.welcome-footer .icon{width:16px;height:16px;transform:rotate(-45deg)}
@keyframes logo-reveal{from{clip-path:inset(0 100% 0 -15%)}to{clip-path:inset(0 -5% 0 -15%)}}@keyframes invitation-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
body.is-viewing{overflow:hidden}.is-viewing .site-header{height:82px;padding-top:10px;padding-bottom:10px}.is-viewing .brand img{width:98px}.viewer{height:calc(100vh - 82px);height:calc(100dvh - 82px);display:flex;flex-direction:column;background:var(--deep);position:relative}.viewer-body{display:flex;flex:1;min-height:0}.stage-wrap{flex:1;min-width:0;position:relative;overflow:hidden}.document-stage{position:absolute;inset:0;overflow:auto;overscroll-behavior:contain;scrollbar-color:#345970 var(--deep);scrollbar-width:thin;touch-action:none;outline-offset:-5px!important}.page-centering{min-width:100%;min-height:100%;width:max-content;display:flex;padding:26px 32px;align-items:center;justify-content:center}.page-surface{position:relative;flex-shrink:0;background:var(--navy);box-shadow:0 12px 40px #0005;overflow:hidden;line-height:0}.page-surface canvas{display:block}.page-text{position:absolute;inset:0;color:transparent;overflow:hidden;line-height:1;pointer-events:none}.page-text span{position:absolute;white-space:pre;transform-origin:0 0}.page-links{position:absolute;inset:0;pointer-events:none}.page-links a{position:absolute;pointer-events:auto;border-radius:2px}.page-links a:hover{background:#15b5ee20;outline:1px solid #15b5ee70}.page-links a:focus-visible{outline-offset:0;outline-width:3px}.viewer-toolbar{flex:none;min-height:78px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px max(24px,4.4%);gap:20px;border-top:1px solid var(--line);background:var(--navy);z-index:5;padding-bottom:max(14px,env(safe-area-inset-bottom))}.toolbar-start,.page-navigation,.zoom-controls{display:flex;align-items:center;gap:6px}.zoom-controls{justify-content:flex-end}.icon-button{width:44px;height:44px;min-width:44px;border:0;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:transparent;transition:background .15s,color .15s}.icon-button:hover:not(:disabled),.icon-button[aria-expanded=true]{background:#14334a;color:var(--ice)}.page-form{display:flex;align-items:center;gap:10px;font-size:13px;font-variant-numeric:tabular-nums;min-width:92px;justify-content:center}.page-form input{width:44px;height:44px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--text);text-align:center;appearance:textfield;padding:0 3px;font-size:16px}.page-form input::-webkit-inner-spin-button,.page-form input::-webkit-outer-spin-button{appearance:none;margin:0}.page-divider{color:#7896ac}#page-count{color:var(--muted)}#zoom-value{font-size:12px;min-width:52px;text-align:center;font-variant-numeric:tabular-nums;color:var(--muted)}.toolbar-rule{height:22px;width:1px;background:var(--line);margin:0 8px}.reading-progress{height:2px;background:var(--line);flex-shrink:0}.reading-progress span{display:block;background:var(--cyan);height:100%;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.loading-status,.error-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:var(--deep);z-index:2}.loading-status{background:#001124f5}.loading-status p{font-size:13px;line-height:1.6;color:var(--muted);margin:20px 0}.loading-mark{width:32px;height:32px;border:2px solid var(--line);border-top-color:var(--cyan);border-radius:50%;animation:spin .9s linear infinite}.loading-track{height:2px;background:var(--line);width:160px;overflow:hidden}.loading-track span{display:block;height:100%;width:100%;transform:scaleX(.15);transform-origin:left;background:var(--cyan);transition:transform .3s}.loading-fallback{margin-top:24px;font-size:12px;color:var(--ice);padding:8px}.error-state h2{font-size:21px;line-height:1.4;font-weight:600;margin:24px 0 12px}.error-state p{font-size:13px;line-height:1.8;color:var(--muted);max-width:48ch;margin:0 0 24px}.error-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:center}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:12px}.text-link .icon{width:16px}.text-button{border:0;background:none;color:var(--ice);padding:10px 0;font-size:12px;text-decoration:underline;text-underline-offset:4px}@keyframes spin{to{transform:rotate(360deg)}}
.thumbnails{width:216px;flex-shrink:0;border-right:1px solid var(--line);background:var(--navy);overflow:auto;scrollbar-width:thin;scrollbar-color:#345970 var(--navy);z-index:4}.drawer-heading{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 4px 22px;position:sticky;top:0;background:var(--navy);z-index:1}.drawer-heading h2{font-size:13px;font-weight:600;margin:0}.thumbnail-list{padding:12px 20px 24px;display:flex;flex-direction:column;gap:18px}.thumbnail-button{padding:0;border:0;background:none;border-radius:3px;position:relative;color:var(--muted);text-align:center}.thumbnail-preview{aspect-ratio:842/595;display:flex;align-items:center;justify-content:center;background:var(--surface);overflow:hidden;outline:1px solid var(--line);outline-offset:3px;border-radius:1px}.thumbnail-button[aria-current=page] .thumbnail-preview{outline:2px solid var(--cyan)}.thumbnail-button:hover{color:var(--ice)}.thumbnail-button canvas{width:100%;height:auto}.thumbnail-number{font-size:12px;line-height:1.5;display:block;margin-top:9px}.help{position:absolute;bottom:95px;left:4.4%;width:min(370px,91.2%);padding:24px;background:#0c2b43;box-shadow:0 12px 32px #0005;border-radius:10px;z-index:8;font-size:12px;line-height:1.8}.help strong{font-size:13px}.help p{color:var(--muted);margin:12px 0}.noscript-message{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--ice);color:var(--navy);padding:18px;text-align:center;font-size:13px;line-height:1.7}.app-shell:fullscreen{height:100dvh;width:100%;background:var(--navy)}.app-shell:fullscreen .viewer{height:calc(100dvh - 82px)}.pseudo-fullscreen{position:fixed;inset:0;z-index:1000;background:var(--navy)}
@media(min-width:1600px){.page-centering{padding:36px 48px}.welcome{padding-top:80px;padding-bottom:120px}.logo-reveal{width:292px;margin-bottom:44px}}
@media(max-width:900px){.site-header{padding-left:24px;padding-right:24px}.header-caption{max-width:280px;padding-left:20px}.viewer-toolbar{padding-left:14px;padding-right:14px;gap:8px}.toolbar-start{gap:0}.zoom-controls{gap:0}.toolbar-rule{margin:0 4px}.welcome::before{width:48px}.thumbnails{width:180px}.thumbnail-list{padding:12px 16px}}
@media(max-width:600px){.site-header{height:110px;padding:12px 20px;display:grid;grid-template-columns:1fr auto;gap:4px 15px}.header-caption{grid-row:2;grid-column:1/-1;border:0;padding:0;max-width:none}.download-link{grid-row:1;grid-column:2}.brand img{width:98px}.download-link{font-size:12px;gap:9px;padding-left:0}.download-extra,.file-type{display:none}.download-link .icon{width:19px;height:19px}.welcome{min-height:calc(100svh - 110px);padding:52px 24px 100px}.logo-reveal{width:208px;margin-bottom:36px}.welcome h1{font-size:42px}.welcome::before{left:20px;width:26px;top:42%}.welcome-footer{left:20px;right:20px;bottom:23px;font-size:12px}.butterfly-watermark{inset:0 -55% -3% 24%;opacity:.045}.is-viewing .site-header{height:100px;padding:8px 16px}.is-viewing .brand img{width:89px}.viewer,.app-shell:fullscreen .viewer{height:calc(100dvh - 100px)}.page-centering{padding:18px 12px}.viewer-toolbar{grid-template-columns:1fr 1fr;gap:4px 8px;min-height:114px;padding:5px 12px max(7px,env(safe-area-inset-bottom))}.toolbar-start{grid-column:1;grid-row:1;gap:2px}.page-navigation{grid-column:2;grid-row:1;justify-content:flex-end}.zoom-controls{grid-column:1/-1;grid-row:2;justify-content:center;gap:6px;border-top:1px solid var(--line);padding-top:4px}.zoom-controls .toolbar-rule{margin:0 14px}.page-form{min-width:78px;gap:8px}.page-form input{height:44px;width:44px}.help{bottom:132px;font-size:12px}.thumbnails{position:absolute;inset:0 auto 0 0;width:190px;box-shadow:16px 0 32px #0004}.stage-wrap{width:100%}.error-state h2{font-size:18px}.error-state p{font-size:12px}#zoom-value{min-width:58px}.loading-status p{font-size:12px}}
@media(max-height:550px) and (orientation:landscape){.header-caption{grid-row:auto;grid-column:auto;border:0;max-width:260px;padding:0}.site-header,.is-viewing .site-header{display:flex;height:60px;padding:5px 20px}.brand img,.is-viewing .brand img{width:80px}.viewer,.app-shell:fullscreen .viewer{height:calc(100dvh - 60px)}.welcome{min-height:calc(100svh - 60px);padding:25px 24px 60px}.welcome-content{display:flex;align-items:center;gap:50px;text-align:left}.logo-reveal{width:180px;margin:0}.welcome h1{font-size:32px;margin-bottom:10px}.primary-button{min-height:46px}.viewer-toolbar{min-height:60px;padding-top:6px;padding-bottom:6px}.page-centering{padding:12px 24px}.welcome::before{display:none}}

/* The real welcome logo stays above the curtain, so its position and size never change.
   The 1.8s entrance follows a 250ms quiet lead-in; CSS still clears it without JavaScript. */
.intro-screen{position:fixed;inset:0;z-index:50;background:var(--navy);pointer-events:none;animation:intro-unveil .78s 1.27s var(--ease) both}
.intro-complete .logo-reveal,.intro-complete .welcome-invitation{animation:none}
.intro-complete .logo-reveal{z-index:1}
/* Less than 2% of size, with no positional movement or effect on layout. */
.intro-complete #open-presentation.is-pulse-visible{animation:invitation-pulse 3.2s ease-in-out infinite}
.intro-complete #open-presentation:is(:hover,:focus-visible,:active){animation-play-state:paused}
@keyframes invitation-pulse{0%,100%{scale:1}50%{scale:1.018}}
@keyframes intro-unveil{0%{opacity:1;visibility:visible}99%{visibility:visible}100%{opacity:0;visibility:hidden}}
.page-transition-ghost{position:absolute;z-index:1;pointer-events:none;overflow:hidden;line-height:0;background:var(--navy);box-shadow:0 12px 40px #0005}
.page-transition-ghost canvas{display:block}
.document-stage.is-transitioning{overflow:hidden;pointer-events:none}
@media(prefers-reduced-motion:reduce){.intro-screen{display:none}}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.welcome-invitation{opacity:1;transform:none}.logo-reveal{clip-path:none}}
@media(forced-colors:active){.primary-button{border:1px solid ButtonText}.reading-progress span{background:Highlight}.icon-button{border:1px solid ButtonText}}
