@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap');
*{box-sizing:border-box}body{margin:0;background:#faf6f4;color:#352c27;font:15px/1.6 'DM Sans',Arial,sans-serif}a{color:inherit}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #d95d16;outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-footer{font-size:13px}
/* The flipbook fills the screen below the fixed navigation; controls sit underneath. */
main{padding:112px 24px 16px}
/* Flipbook ------------------------------------------------------------------- */
.catalogue-viewer{display:flex;flex-direction:column;gap:12px;height:calc(100svh - 128px);min-height:420px}
.catalogue-stage{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-height:0;border-radius:16px;background:radial-gradient(ellipse at center,#f4ebe6,#ebded7);overflow:hidden;isolation:isolate}
.catalogue-book{width:100%;height:100%}.catalogue-stage{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.catalogue-page-sheet{background:#fff}.catalogue-page-sheet canvas{display:block;width:100%;height:100%}
.catalogue-page-sheet:not(.is-rendered){background:#fff linear-gradient(100deg,#fff 40%,#f7f1ee 50%,#fff 60%) 0 0/200% 100%;animation:sheet-wait 1.4s linear infinite}@keyframes sheet-wait{to{background-position:-200% 0}}
.catalogue-status{position:absolute;inset:auto 0 50%;margin:0;text-align:center;font-size:14px;color:#8b7061;transform:translateY(50%)}.catalogue-status a{color:#c2410c}
.catalogue-controls{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto auto auto 1fr;align-items:center;gap:12px}
.catalogue-control{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #e5d5cb;border-radius:999px;background:#fff;color:#c2410c;line-height:1;transition:border-color .15s,background .15s,color .15s}.catalogue-control:hover:not(:disabled),.catalogue-control[aria-expanded=true]{border-color:#c2410c}.catalogue-control:disabled{opacity:.4}
.catalogue-control[aria-pressed=true]{border-color:#c2410c;background:#c2410c;color:#fff}.catalogue-control[aria-pressed=true] .catalogue-zoom-plus{display:none}
.catalogue-turn{font-size:22px}
.catalogue-count{min-width:110px;text-align:center;font-size:13px;color:#8b7061;font-variant-numeric:tabular-nums}
.catalogue-viewer svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.catalogue-tools{display:flex;align-items:center;gap:8px;min-width:0}.catalogue-view-tools{display:flex;justify-content:flex-end;gap:8px}
.catalogue-sections{position:relative;flex-shrink:0}.catalogue-sections-toggle{display:flex;width:auto;gap:8px;padding:0 18px 0 14px;font-size:14px;color:#352c27}
/* Search: a circle that widens into the free space beside Sections. */
.catalogue-search{position:relative;flex:0 1 auto;display:flex;align-items:center;width:44px;min-width:44px;height:44px;border:1px solid #e5d5cb;border-radius:999px;background:#fff;transition:width .3s cubic-bezier(.22,1,.36,1),border-color .15s}.catalogue-search:hover,.catalogue-search.is-open{border-color:#c2410c}.catalogue-search.is-open{width:340px}
.catalogue-search .catalogue-search-toggle{flex-shrink:0;width:42px;height:42px;border:0;background:none}
.catalogue-search input{flex:1;width:0;min-width:0;height:100%;padding:0;border:0;background:none;color:#352c27;font-size:14px;outline:none;opacity:0;transition:opacity .2s}.catalogue-search input::placeholder{color:#ad9d93}.catalogue-search input::-webkit-search-cancel-button{display:none}
.catalogue-search-close{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;margin-right:4px;padding:0;border:0;border-radius:50%;background:none;color:#8b7061;opacity:0}.catalogue-search-close:hover{background:#f9f3f0;color:#352c27}.catalogue-search-close svg{width:16px;height:16px}
.catalogue-search.is-open input,.catalogue-search.is-open .catalogue-search-close{opacity:1}.catalogue-search:not(.is-open) input,.catalogue-search:not(.is-open) .catalogue-search-close{visibility:hidden}
.catalogue-search-results{position:absolute;left:-1px;bottom:calc(100% + 10px);width:380px;max-width:calc(100vw - 48px);max-height:min(440px,calc(100svh - 200px));overflow-y:auto;scrollbar-width:none;padding:8px;border:1px solid #ece4df;border-radius:14px;background:#fff;box-shadow:0 18px 50px #352c272e;animation:sections-in .16s ease}.catalogue-search-results::-webkit-scrollbar{display:none}
.catalogue-search-status{margin:4px 12px 6px;font-size:12px;color:#9d877b}.catalogue-search-status:empty{display:none}
.catalogue-search-results ul{margin:0;padding:0;list-style:none}.catalogue-search-results ul:empty{display:none}
.catalogue-search-results button{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:16px;width:100%;padding:9px 12px;border:0;border-radius:8px;background:none;color:#78543f;font-size:13px;line-height:1.45;text-align:left}.catalogue-search-results button:hover,.catalogue-search-results [aria-selected=true]{background:#faf6f4}.catalogue-search-results button:focus-visible{outline-offset:-2px}
.catalogue-search-results button{grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:6px 12px 6px 6px}.catalogue-result-photo{display:grid;place-items:center;width:48px;height:48px;border-radius:8px;background:#faf6f4;overflow:hidden}.catalogue-result-photo img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.catalogue-result-text{display:flex;flex-direction:column;min-width:0}.catalogue-result-text strong{font-size:14px;font-weight:600;color:#352c27}.catalogue-result-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#8b7061}.catalogue-search-results small{font-size:12px;color:#ad978a;white-space:nowrap;font-variant-numeric:tabular-nums}
/* Search matches are outlined on the pages themselves. */
.catalogue-page-sheet{position:relative}.catalogue-marks{position:absolute;inset:0;pointer-events:none}.catalogue-marks i{position:absolute;border-radius:2px;background:#ffd23f;mix-blend-mode:multiply;opacity:.6}
/* Zoom: a pannable close-up of the open pages over the book. */
.catalogue-zoom{position:absolute;inset:0;z-index:5;display:flex;overflow:auto;scrollbar-width:none;background:#efe5df;cursor:grab;touch-action:none;overscroll-behavior:contain}.catalogue-zoom::-webkit-scrollbar{display:none}.catalogue-zoom.is-dragging{cursor:grabbing}
.catalogue-zoom-content{position:relative;flex-shrink:0;margin:auto;background:#fff;box-shadow:0 10px 40px #352c2726}.catalogue-zoom-content canvas{display:block;width:100%;height:100%}
.catalogue-zoom-tools{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:2px;padding:4px;border:1px solid #ece4df;border-radius:999px;background:#ffffffeb;box-shadow:0 8px 24px #352c271f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.catalogue-zoom-tools button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:none;color:#c2410c}.catalogue-zoom-tools button:hover:not(:disabled){background:#f7efea}.catalogue-zoom-tools button:disabled{opacity:.35}
.catalogue-zoom-tools output{min-width:50px;text-align:center;font-size:13px;font-weight:500;color:#352c27;font-variant-numeric:tabular-nums}
/* Sections menu: two columns that fill top to bottom, so all sections show without scrolling. */
.catalogue-sections-menu{position:absolute;left:0;bottom:calc(100% + 10px);z-index:10;display:grid;grid-auto-flow:column;grid-template-rows:repeat(8,auto);grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;width:700px;max-width:calc(100vw - 48px);max-height:calc(100svh - 200px);overflow-y:auto;scrollbar-width:none;margin:0;padding:10px;list-style:none;border:1px solid #ece4df;border-radius:14px;background:#fff;box-shadow:0 18px 50px #352c272e;animation:sections-in .16s ease}.catalogue-sections-menu::-webkit-scrollbar{display:none}@keyframes sections-in{from{opacity:0;transform:translateY(4px)}}
.catalogue-sections-menu button{display:flex;align-items:baseline;justify-content:space-between;gap:16px;width:100%;padding:8px 12px;border:0;border-radius:8px;background:none;color:#352c27;font-size:14px;line-height:1.35;text-align:left;white-space:nowrap}.catalogue-sections-menu button:hover{background:#faf6f4}.catalogue-sections-menu button:focus-visible{outline-offset:-2px}
.catalogue-sections-menu small{font-size:12px;color:#ad978a;font-variant-numeric:tabular-nums}
.catalogue-sections-menu [aria-current=true]{background:#f7efea;color:#c2410c;font-weight:600}.catalogue-sections-menu [aria-current=true] small{color:#c2410c}
/* Full screen: the viewer fills the display with controls along the bottom. */
.catalogue-viewer:fullscreen{height:100vh!important;padding:20px;background:#2b231f;gap:16px}.catalogue-viewer:fullscreen .catalogue-stage{flex:1;height:auto;background:none}.catalogue-viewer:fullscreen .catalogue-count{color:#e5d6ce}
@media(max-width:700px){main{padding:88px 16px 12px}.catalogue-viewer{height:calc(100svh - 100px);min-height:380px}.catalogue-stage{border-radius:0;background:none;touch-action:none}.catalogue-sections-toggle{justify-content:center}.catalogue-search input{font-size:16px}
  .catalogue-controls{gap:6px}.catalogue-tools,.catalogue-view-tools{gap:6px}.catalogue-control{width:40px;height:40px}.catalogue-sections-toggle{width:40px;padding:0}.catalogue-sections-toggle span{display:none}.catalogue-count{min-width:64px;font-size:12px}
  .catalogue-sections-menu{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:1fr;width:calc(100vw - 32px)}
  /* No free space on phones, so open search covers the control bar. */
  .catalogue-search{width:40px;min-width:40px;height:40px}.catalogue-search .catalogue-search-toggle{width:38px;height:38px}.catalogue-search.is-open{position:absolute;inset:0 0 auto;z-index:3;width:auto;height:40px}
  .catalogue-search-results{width:calc(100vw - 32px);max-width:none}.catalogue-zoom-tools{bottom:10px}}
@media(prefers-reduced-motion:reduce){.catalogue-page-sheet:not(.is-rendered),.catalogue-sections-menu,.catalogue-search-results{animation:none}.catalogue-search{transition:none}}
@media(pointer:coarse){.catalogue-stage{touch-action:none}}
