/* Navigation and image review. Loaded after the presentation and motion styles. */
[hidden]{display:none!important}
html{scrollbar-gutter:stable;scroll-snap-type:none}
html.has-dialog{overflow:hidden}
body{padding-bottom:calc(86px + env(safe-area-inset-bottom,0px))}
.topbar{padding:18px max(26px,env(safe-area-inset-right,0px)) 0 max(26px,env(safe-area-inset-left,0px))}
.topbar .index-trigger{min-height:48px}
.chapter-nav{display:none}
.topbar .project-label{display:flex;align-items:center;min-height:44px}

/* The centre button keeps the current section readable at every viewport size. */
.bottom-controls{display:grid;grid-template-columns:auto minmax(150px,260px) auto auto;gap:3px;max-width:calc(100vw - 40px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));right:max(24px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));padding:5px;border-radius:32px}
.bottom-controls>button{width:auto;height:48px;min-width:48px;border-radius:25px}
.bottom-controls>.section-step{display:flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;font-size:17px;white-space:nowrap}
.bottom-controls .step-word{font-size:11px;font-weight:600;line-height:1.2}
.bottom-controls>.section-picker{display:flex;min-width:0;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:5px 14px;line-height:1.2}
.bottom-controls .section-picker-title{display:block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;font-size:11px;font-weight:600}
.bottom-controls .page-count{display:block;min-width:0;font-size:10px;line-height:1.2;color:#d9e6dd;letter-spacing:.09em}
.bottom-controls>.fullscreen{width:48px;min-width:48px;height:48px;padding:0;margin-left:2px;border-left:1px solid #ffffff30;border-radius:0 24px 24px 0;font-size:21px}
.bottom-controls button:focus-visible{outline-color:var(--lime);outline-offset:2px}
.bottom-controls>button:hover:enabled{background:#ffffff16}

/* Only an open dialog gets a flex display; the native closed state stays intact. */
.index-dialog{width:min(600px,calc(100vw - 36px));height:min(820px,calc(100svh - 40px));max-height:calc(100svh - 40px);margin:20px auto 20px max(18px,env(safe-area-inset-left,0px));overflow:hidden}
.index-dialog[open]{display:flex;flex-direction:column}
.index-dialog>.dialog-heading{position:static;flex:none;min-height:76px;padding:16px 22px;gap:16px}
.index-dialog .dialog-heading h2{font-size:12px;line-height:1.45}
.index-dialog .dialog-close,.zoom-dialog .dialog-close{display:grid;place-items:center;flex:none;width:48px;height:48px;min-width:48px;padding:0;line-height:1;border-radius:50%}
.index-tools{display:grid;flex:none;gap:9px;padding:16px 24px 18px;border-bottom:1px solid var(--line)}
.index-tools>label{font-size:11px;font-weight:700;line-height:1.4;color:var(--green)}
.index-tools>input{display:block;width:100%;min-width:0;height:48px;border:1px solid #c6d8cb;border-radius:6px;padding:10px 12px;background:#fff;color:var(--ink);font-size:16px;line-height:1.4;-webkit-appearance:none;appearance:none}
.index-tools>input::placeholder{color:var(--muted);opacity:1}
.index-tools>input:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.index-tools>p{margin:0;font-size:11px;line-height:1.5;color:var(--muted)}
.index-dialog>nav{flex:1;min-height:0;padding:8px 14px 12px;overflow-y:auto;overscroll-behavior:contain;scroll-padding:12px;scrollbar-gutter:stable}
.index-group{border-bottom:1px solid var(--line)}
.index-group>summary{display:flex;align-items:center;gap:12px;min-height:54px;padding:13px 12px;list-style:none;cursor:pointer;color:var(--ink);font-size:12px;font-weight:700;line-height:1.45;border-radius:4px}
.index-group>summary::-webkit-details-marker{display:none}
.index-group>summary::after{content:'';display:block;flex:none;width:7px;height:7px;margin:0 3px 4px 1px;border-right:1.5px solid var(--green);border-bottom:1.5px solid var(--green);transform:rotate(45deg)}
.index-group[open]>summary::after{margin-top:5px;margin-bottom:0;transform:rotate(225deg)}
.index-group>summary .group-range{margin-left:auto;flex:none;font-size:10px;font-weight:500;letter-spacing:.04em;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.index-group[open]>summary,.index-group>summary:hover{background:#edf2e8}
.index-group>summary:focus-visible{outline:3px solid var(--green);outline-offset:-3px}
.index-dialog .index-group>ol{padding:5px 0 12px}
.index-dialog .index-group li>a{align-items:center;min-height:46px;padding:11px 14px;gap:16px;font-size:12px;line-height:1.45}
.index-dialog .index-group li>a>span{flex:none;width:19px;font-variant-numeric:tabular-nums}
.index-dialog .index-group li>a[aria-current=true],.index-dialog .index-group li>a[aria-current=location],.index-dialog .index-group li>a[aria-current=page]{background:#e5eedc;color:var(--green);box-shadow:inset 3px 0 var(--green);font-weight:700}
.index-empty{margin:0;padding:26px 14px 30px;color:var(--muted);font-size:14px;line-height:1.7}
.index-dialog>.index-source{display:flex;flex:none;align-items:center;min-height:56px;margin:0;padding:16px 26px;border-top:1px solid var(--line);font-size:10px;line-height:1.5}

/* Fast paths keep the first screen useful without lengthening its empty space. */
.hero .eyebrow{padding-bottom:clamp(42px,14svh,160px)}
.hero-shortcuts{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0;max-width:650px}
.hero-shortcuts>a{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:46px;min-width:140px;padding:11px 15px;border:1px solid #ffffff60;border-radius:5px;background:#003c2c75;color:#fff;font-size:11px;font-weight:600;line-height:1.45;text-decoration:none}
.hero-shortcuts>a>span{flex:none;font-size:17px;color:var(--lime)}
.hero-shortcuts>a:hover{background:#ffffff18;border-color:#d8ed00}
.hero-shortcuts>a:focus-visible{outline-color:var(--lime)}
.touchpoint h3>.detail-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;padding:8px 0;border-bottom:1px solid #bed2c2;color:var(--green);font-size:inherit;font-weight:800;line-height:1.45;text-decoration:none}
.detail-link>span[aria-hidden]{flex:none;width:18px;font-size:0;text-align:right}
.detail-link>span[aria-hidden]::after{content:'→';font-size:18px;font-weight:500}
.touchpoint h3>.detail-link:hover{border-color:var(--green)}

/* Two fixed control rows and one flexible image stage. */
.zoom-dialog{width:min(1800px,calc(100vw - 40px));max-width:calc(100vw - 40px);height:calc(100svh - 40px);max-height:calc(100svh - 40px);margin:auto;overflow:hidden}
.zoom-dialog[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr)}
.zoom-dialog>.zoom-toolbar{height:auto;min-height:76px;gap:18px;padding:12px 18px;align-items:center}
.zoom-heading{flex:1;min-width:0}
.zoom-dialog .zoom-context{margin:0 0 5px;color:var(--green);font-size:10px;font-weight:700;line-height:1.4;letter-spacing:.06em;text-transform:uppercase}
.zoom-dialog .zoom-title{display:-webkit-box;margin:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--ink);font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.zoom-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 18px;border-bottom:1px solid var(--line);background:#f2f6ed}
.gallery-controls,.zoom-controls{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}
.zoom-actions button{display:grid;place-items:center;flex:none;width:44px;min-width:44px;height:44px;padding:0;border:1px solid #cbdacf;border-radius:50%;background:#fff;color:var(--green);font-size:19px;line-height:1}
.zoom-actions button:hover:enabled{background:#e6eedf;border-color:var(--green)}
.zoom-actions button:disabled{opacity:.35}
.zoom-actions .zoom-fit{width:auto;min-width:64px;padding:0 12px;border-radius:24px;font-size:11px;font-weight:600}
.gallery-count{min-width:60px;color:var(--muted);font-size:12px;line-height:1.4;text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}
.zoom-dialog>.zoom-stage{position:relative;min-width:0;min-height:0;height:auto;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;background:#fff}
.zoom-dialog>.zoom-stage:focus-visible{outline:3px solid var(--green);outline-offset:-4px}
.zoom-stage[aria-busy=true]{cursor:progress}
.zoom-feedback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px;background:var(--paper);color:var(--muted);text-align:center}
.zoom-feedback>p{max-width:520px;font-size:14px;line-height:1.7}
.zoom-feedback>button{min-width:90px;min-height:46px;padding:10px 18px;border:1px solid var(--green);border-radius:24px;background:#fff;color:var(--green);font-size:12px;font-weight:600}

@media(min-width:1100px){
 .topbar{gap:18px}
 .topbar>.project-label{display:none}
 .topbar .current-chapter{max-width:220px}
 .chapter-nav{display:flex;align-items:center;gap:3px;padding:4px;border:1px solid #006b4820;border-radius:30px;background:#fffffff0;backdrop-filter:blur(12px);box-shadow:0 4px 24px #003c2c0d}
 .chapter-nav>a{display:flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border-radius:23px;color:var(--deep);font-size:11px;font-weight:600;line-height:1.3;text-decoration:none;white-space:nowrap}
 .chapter-nav>a:hover{background:#edf2e7}
 .chapter-nav>a[aria-current=true],.chapter-nav>a[aria-current=location],.chapter-nav>a[aria-current=page]{background:var(--green);color:#fff}
}
@media(max-width:1099px){
 .hero .eyebrow{padding-bottom:clamp(36px,13svh,120px)}
 .hero .brand-lockup{margin-top:28px}
}
@media(max-width:760px){
 body{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))}
 .topbar{padding:calc(10px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 0 max(14px,env(safe-area-inset-left,0px));gap:10px}
 .topbar .index-trigger{min-height:44px;padding:11px 14px}
 .topbar>.project-label{font-size:9px;line-height:1.4;letter-spacing:.04em;padding:9px 12px;min-height:44px}
 .bottom-controls{left:max(10px,env(safe-area-inset-left,0px));right:max(10px,env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));width:auto;max-width:none;grid-template-columns:64px minmax(0,1fr) 64px;gap:2px;padding:4px;border-radius:29px}
 .bottom-controls>button{height:48px;min-width:44px}
 .bottom-controls>.section-step{width:64px;flex-direction:column;gap:3px;padding:5px 4px;font-size:16px;line-height:1}
 .bottom-controls .step-word{font-size:10px;line-height:1.15}
 .bottom-controls>.section-picker{padding:5px 8px;gap:5px}
 .bottom-controls .section-picker-title{font-size:11px;line-height:1.25}
 .bottom-controls .page-count{font-size:10px;letter-spacing:.07em}
 .bottom-controls>.fullscreen{display:none}
 .index-dialog{width:calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));height:calc(100svh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(100svh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));margin:auto}
 .index-dialog>.dialog-heading{min-height:68px;padding:10px 14px;gap:10px}
 .index-tools{padding:12px 18px 14px}
 .index-dialog>nav{padding:6px 10px 10px}
 .index-group>summary{font-size:12px;padding:12px 10px;gap:8px}
 .index-dialog .index-group li>a{padding:11px 12px;gap:12px}
 .index-dialog>.index-source{padding:14px 20px;font-size:9px}
 .hero .section-inner{padding-top:calc(94px + env(safe-area-inset-top,0px));padding-bottom:104px}
 .hero .eyebrow{padding-bottom:clamp(26px,8svh,65px)}
 .hero-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:24px;max-width:420px}
 .hero-shortcuts>a{min-width:0;min-height:44px;padding:10px 12px;gap:12px;font-size:11px}
 .hero-shortcuts>a:last-child{grid-column:1/-1}
 .hero .brand-lockup{margin-top:26px}
 .scroll-cue{display:none}
 .touchpoint h3>.detail-link{min-height:46px;gap:8px}
 .zoom-dialog{width:100vw;max-width:100vw;height:100svh;max-height:100svh;margin:0;inset:0;border-radius:0;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}
 .zoom-dialog>.zoom-toolbar{min-height:70px;padding:9px 12px;gap:10px}
 .zoom-dialog .zoom-context{font-size:9px}
 .zoom-dialog .zoom-title{font-size:12px;line-height:1.4}
 .zoom-actions{padding:8px 12px;gap:10px}
 .gallery-controls,.zoom-controls{gap:5px}
 .gallery-count{min-width:42px;font-size:11px}
 .zoom-actions .zoom-fit{min-width:55px;padding:0 9px;font-size:10px}
 .zoom-feedback{padding:24px}
 .zoom-feedback>p{font-size:13px}
}
@media(max-width:480px){
 .zoom-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:8px}
 .gallery-controls,.zoom-controls{display:grid;grid-template-columns:44px minmax(44px,1fr) 44px;gap:4px}
 .zoom-actions .zoom-fit{min-width:44px;width:100%;padding:0 3px}
 .gallery-count{min-width:0}
}
@media(max-width:340px){
 .zoom-actions{grid-template-columns:1fr}
 .gallery-controls,.zoom-controls{display:flex}
 .zoom-actions .zoom-fit{width:auto;min-width:64px;padding:0 12px}
 .gallery-count{min-width:64px}
}
@media(pointer:coarse){
 .topbar .index-trigger,.chapter-nav>a,.index-group>summary,.index-dialog .index-group li>a,.hero-shortcuts>a,.touchpoint h3>.detail-link{min-height:48px}
 .zoom-actions button{min-width:44px;min-height:48px;height:48px}
 .zoom-actions .zoom-fit{min-width:44px}
 .index-dialog .dialog-close,.zoom-dialog .dialog-close{width:48px;height:48px;min-width:48px}
 .bottom-controls>button{height:48px;min-height:48px}
}
@media(pointer:coarse) and (max-height:520px){
 .index-dialog{height:calc(100svh - 20px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));max-height:calc(100svh - 20px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));margin:auto}
 .index-dialog>.dialog-heading{min-height:60px;padding:6px 16px}
 .index-tools{gap:6px;padding:8px 20px 10px}
 .index-dialog>.index-source{min-height:46px;padding:10px 20px}
 .zoom-dialog>.zoom-toolbar{min-height:64px;padding-top:6px;padding-bottom:6px}
}
@media(prefers-reduced-motion:reduce){
 .chapter-nav>a,.hero-shortcuts>a,.detail-link,.index-group>summary,.zoom-actions button{transition:none!important;animation:none!important}
}
@media print{
 body{padding-bottom:0}
 .topbar,.bottom-controls,.chapter-nav,.hero-shortcuts,.index-dialog,.zoom-dialog{display:none!important}
 .touchpoint h3>.detail-link{min-height:0;padding:0;border:0;color:inherit}
 .detail-link>span[aria-hidden]{display:none}
}
