/* Catalogue: reuse the original artwork without changing its geometry. */
:root{--head-height:79px;--catalog-height:72px}
html{scroll-padding-top:calc(var(--head-height) + var(--catalog-height) + 20px)}
body{overflow-wrap:break-word}
header{background:#fffdf9f2;backdrop-filter:blur(18px)}
.head{height:auto;min-height:78px;flex-wrap:wrap;padding-block:12px}.head nav{flex-wrap:wrap}.head .brand-title{white-space:normal}
.skip-link{position:fixed;left:16px;top:-100px;z-index:100;background:var(--ink);color:white;padding:12px 20px}.skip-link:focus{top:10px}
.hero .hero-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.hero .hero-actions .btn{margin:0}.hero-actions a:not(.btn){text-underline-offset:5px;font-size:15px}
.hero .hero-note{margin:18px 0 0!important;font-size:14px!important;color:var(--muted)!important}
.catalog{padding:0;background:var(--white);position:relative}
.catalog-intro{padding-top:95px;padding-bottom:55px;display:grid;grid-template-columns:1.4fr 1fr;align-items:end;gap:70px}
.catalog-intro h2{max-width:750px;margin-bottom:0;font-size:clamp(38px,5.1vw,72px)}
.catalog-intro .catalog-intro-note{max-width:370px;color:var(--muted);margin:0 0 6px}
.catalog-intro-note span{display:block;margin-top:15px;font-size:14px;color:var(--accent)}
.catalog-bar{position:sticky;top:var(--head-height);z-index:4;background:#fffdf9f5;backdrop-filter:blur(16px);border-block:1px solid var(--line);transition:box-shadow .25s}
.catalog-bar.is-stuck{box-shadow:0 7px 22px #1421380c}
.catalog-nav{min-height:70px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.catalog-location{display:flex;gap:18px;align-items:center;font-size:14px;color:var(--muted)}
.catalog-location strong{color:var(--ink);font-weight:600}.catalog-progress{font-variant-numeric:tabular-nums;color:var(--accent)}
.catalog-menu{padding:0;border:0;position:relative;z-index:2;margin-left:auto}
.catalog-menu summary{list-style:none;display:flex;align-items:center;gap:14px;font-size:14px;padding:11px 15px;border:1px solid var(--line);border-radius:26px;white-space:nowrap;min-height:44px}
.catalog-menu summary::-webkit-details-marker{display:none}.chevron{width:8px;height:8px;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.catalog-menu[open] .chevron{transform:rotate(225deg) translate(-2px,-1px)}
.catalog-dropdown{position:absolute;right:0;top:calc(100% + 12px);width:300px;max-width:calc(100vw - 40px);padding:9px;background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 50px #14213824}
.catalog-dropdown{max-height:calc(100dvh - var(--head-height) - var(--catalog-height) - 32px);overflow-y:auto;overscroll-behavior:contain}
.catalog-dropdown a{display:flex;justify-content:space-between;padding:13px 14px;border-radius:7px;gap:12px;font-size:15px;text-decoration:none}
.catalog-dropdown a span{color:var(--muted);font-size:13px}.catalog-dropdown a:hover,.catalog-dropdown a[aria-current=true]{background:var(--sand);color:var(--accent)}
.catalog-project{font-size:14px;text-decoration:none;border-bottom:1px solid var(--ink);padding-block:6px;white-space:nowrap}
.catalog-chapter{padding:80px 0;scroll-margin-top:calc(var(--head-height) + var(--catalog-height) + 10px)}
.chapter-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:35px}
.chapter-heading h3{font-family:Georgia,serif;font-weight:500;font-size:clamp(33px,3.7vw,52px);line-height:1.1;letter-spacing:-.035em;margin-bottom:0}
.chapter-heading>p{max-width:370px;color:var(--muted);margin-bottom:4px}
.chapter-number{font-size:13px;letter-spacing:.1em;color:var(--accent);text-transform:uppercase;font-weight:650;margin-bottom:12px}
.koi-chapter{padding-bottom:75px;background:#eee8df}
.koi-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr);gap:clamp(30px,6vw,80px);align-items:start}
.koi-stage{position:sticky;top:calc(var(--head-height) + var(--catalog-height) + 28px);margin:0;min-width:0}
.art-window{position:relative;aspect-ratio:var(--frame-ratio);overflow:hidden;background:#e5ddd0;isolation:isolate;width:100%;display:block}
.art-zoom{position:absolute;inset:0;transform:scale(var(--zoom,1));transform-origin:var(--origin,50% 50%);transition:transform 1.2s cubic-bezier(.2,.7,.2,1),transform-origin 1.2s ease;will-change:auto}
.art-image{position:absolute;width:var(--photo-width);left:var(--photo-left);top:var(--photo-top);height:auto;max-width:none;display:block}
.koi-stage[data-step='1'] .art-zoom{--zoom:1.2;--origin:62% 35%}.koi-stage[data-step='2'] .art-zoom{--zoom:1.09;--origin:48% 75%}
.art-view{padding:0;border:0;background:transparent;width:100%;display:block;position:relative;color:var(--ink);text-align:left}
.view-label{position:absolute;right:14px;bottom:14px;background:#fffdf9ee;backdrop-filter:blur(6px);border:1px solid #fff7;border-radius:25px;padding:8px 13px;font-size:13px;line-height:1.3;white-space:nowrap;box-shadow:0 3px 14px #0001;z-index:1;transition:background .2s}
.art-view:hover .view-label{background:#fff}.art-view:focus-visible{outline-offset:5px}
.koi-caption{display:flex;justify-content:space-between;gap:15px;margin-top:15px;font-size:14px;color:var(--muted)}
.koi-caption strong{font-weight:600;color:var(--ink)}
.story-steps{padding-block:10px}.story-step{padding:28px 0 48px;min-height:260px;border-bottom:1px solid #cdc5b9;transition:opacity .5s;scroll-margin-top:calc(var(--head-height) + var(--catalog-height) + 25px)}
.story-step:last-child{border:0;padding-bottom:10px;min-height:0}.story-step .step-label{font-size:13px;letter-spacing:.11em;color:var(--accent);margin-bottom:13px;text-transform:uppercase}
.story-step h4{font:500 clamp(27px,2.5vw,38px)/1.16 Georgia,serif;letter-spacing:-.025em;margin:0 0 15px}.story-step p{color:#535960;font-size:17px;margin-bottom:20px}
.story-enhanced .story-step{opacity:.5}.story-enhanced .story-step.is-active{opacity:1}.story-step:focus-within{opacity:1}
.swatches{display:flex;gap:9px;margin-bottom:22px}.swatch{width:20px;height:20px;display:block;background:var(--color);border-radius:50%;border:1px solid #14213830}
.button-reference{border:1px solid var(--ink);background:var(--ink);color:var(--white);min-height:44px;border-radius:4px;padding:11px 18px;font-size:14px;font-weight:600;line-height:1.4}
.button-reference:hover{background:var(--blue)}
.button-reference{display:none}.catalog-enhanced .button-reference{display:inline-block}
.design-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.design-card{min-width:0;display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.design-card .art-view:focus-visible{outline-offset:-4px}.design-card .art-window{border-radius:0}
.design-content{padding:25px;display:flex;flex:1;flex-direction:column}
.design-meta{font-size:13px;display:flex;gap:12px;align-items:center;justify-content:space-between;color:var(--muted);margin-bottom:14px}.design-meta span:first-child{color:var(--accent);font-variant-numeric:tabular-nums}
.design-content h4{font:500 29px/1.13 Georgia,serif;letter-spacing:-.02em;margin:0 0 12px}.design-description{color:var(--muted);font-size:16px;margin-bottom:20px}
.design-detail{padding:13px 0;border-bottom:1px solid var(--line);border-top:1px solid var(--line);margin-top:auto}
.design-detail summary{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:14px;font-weight:600;list-style:none;min-height:24px}
.design-detail summary::-webkit-details-marker{display:none}.design-detail summary:after{content:'+';font-size:22px;font-weight:400;flex:none}.design-detail[open] summary:after{content:'−'}
.design-detail p{font-size:15px;color:var(--muted);margin:12px 0 3px}
.design-content .button-reference{align-self:flex-start;margin-top:20px}
.botanical-chapter{background:#f3f0e9}.gallery-rail{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 0 22px;scrollbar-width:thin;scrollbar-color:#b3a58e transparent;-webkit-overflow-scrolling:touch;scroll-padding-inline:0}
.gallery-rail .design-card{flex:0 0 calc((100% - 22px)/2);scroll-snap-align:start}
.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:12px;font-size:14px;color:var(--muted)}
.gallery-buttons{display:none;gap:10px}.catalog-enhanced .gallery-buttons{display:flex}
.rail-control{min-height:44px;padding:10px 15px;border:1px solid #b6b3aa;background:transparent;border-radius:24px;color:var(--ink);font-size:14px}.rail-control:hover:not(:disabled){background:#fff}.rail-control:disabled{opacity:.35;cursor:default}
.gaming-chapter{background:var(--ink);color:var(--white)}.gaming-chapter .chapter-number{color:#edaa83}.gaming-chapter .chapter-heading>p{color:#c6ccd5}.gaming-chapter .design-card{color:var(--ink)}
.gaming-chapter .gallery-controls{color:#c6ccd5}.gaming-chapter .rail-control{color:white;border-color:#8391a7}.gaming-chapter .rail-control:hover:not(:disabled){background:#293d5c}
.collection-note{font-size:14px;color:var(--muted);margin:24px 0 0;max-width:800px}.gaming-chapter .collection-note{color:#c6ccd5}
.catalog-end{padding:60px 28px;text-align:center;border-bottom:1px solid var(--line)}.catalog-end h3{font:500 32px/1.15 Georgia,serif;margin-bottom:16px}.catalog-end p{color:var(--muted);max-width:540px;margin:0 auto 24px}
.reference-choice{border:1px solid #b8c3cc;background:#f4f6f8;padding:18px;margin-bottom:26px;border-radius:5px}.reference-choice[hidden]{display:none}.reference-choice p{margin:0;font-size:14px;color:var(--muted)}.reference-choice strong{font-size:17px;color:var(--ink);display:block;margin:5px 0 8px}.reference-choice button{background:none;border:0;text-decoration:underline;text-underline-offset:3px;color:var(--muted);font-size:14px;padding:6px 0;min-height:34px}.reference-choice .hint{margin:5px 0 0}
.reference-announcement{font-size:14px;color:var(--blue);margin:0 0 16px}.reference-announcement:empty{display:none}
.design-dialog{width:min(1100px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:12px;background:var(--white);color:var(--ink);overflow:auto;box-shadow:0 30px 100px #0005}.design-dialog:not([open]){display:none}.design-dialog::backdrop{background:#061020cc;backdrop-filter:blur(5px)}
.dialog-top{position:sticky;top:0;z-index:2;background:#fffdf9f5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 22px;border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.dialog-top p{margin:0;font-size:14px;color:var(--muted)}.dialog-close{min-height:42px;border:1px solid var(--line);border-radius:22px;background:var(--white);padding:8px 14px;font-size:14px;color:var(--ink)}
.dialog-body{padding:25px}.dialog-body h3{font:500 35px/1.12 Georgia,serif;margin-bottom:12px}.dialog-body p{color:var(--muted);max-width:800px}.dialog-body .hint{font-size:14px;margin-top:14px}
.reveal-ready [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .85s cubic-bezier(.2,.65,.2,1)}.reveal-ready [data-reveal].is-revealed{opacity:1;transform:none}
@media(min-width:1500px){.koi-layout{grid-template-columns:1.7fr 1fr}.koi-stage .art-window{min-height:0}}
@media(max-width:900px){.catalog-intro{gap:35px}.koi-layout{grid-template-columns:1.15fr 1fr;gap:28px}.story-step{min-height:240px}.catalog-location{gap:8px}.design-content{padding:20px}.chapter-heading{gap:30px}.chapter-heading>p{max-width:300px}}
@media(max-width:760px){.catalog-intro{grid-template-columns:1fr;padding-top:65px;padding-bottom:35px;gap:24px}.catalog-intro-note{max-width:580px!important}.chapter-heading{display:block}.chapter-heading>p{max-width:520px;margin:18px 0 0}.catalog-chapter{padding:55px 0}.koi-layout{grid-template-columns:1fr;gap:0}.koi-stage{position:relative;top:auto}.story-steps{padding:10px 0 0;display:grid;grid-template-columns:1fr}.story-step{min-height:0;padding:26px 0}.story-enhanced .story-step{opacity:1}.design-grid{grid-template-columns:1fr;gap:25px}.gallery-rail .design-card{flex-basis:86%}.catalog-location strong{display:none}.koi-caption{font-size:13px}.view-label{font-size:12px;right:10px;bottom:10px}.gallery-controls{align-items:flex-start}.gallery-controls>span{max-width:150px}.catalog-end{padding:45px 20px}.koi-stage .art-zoom{transform:none!important}.dialog-body{padding:20px}.dialog-body h3{font-size:29px}}
@media(max-width:680px){:root{--head-height:67px;--catalog-height:66px}.head{height:auto;min-height:66px;padding-block:10px}.catalog-nav{min-height:64px;gap:12px;flex-wrap:wrap;padding-block:8px}.catalog-menu summary{padding:10px 12px;font-size:13px;gap:10px}.catalog-project{font-size:13px}.catalog-location{font-size:13px}.catalog-intro h2{font-size:39px}.hero .hero-actions{gap:16px}.hero-copy .hero-note{font-size:13px!important}.gallery-rail{gap:16px}.gallery-buttons{gap:6px}.rail-control{padding:9px 12px;font-size:13px}.dialog-top{padding:10px 15px}.catalog-dropdown{right:-65px;width:280px}.story-step p{font-size:16px}.design-content h4{font-size:27px}}
/* Short windows: keep the story below its image instead of leaving an empty column. */
@media(min-width:761px) and (max-height:650px){.koi-layout{grid-template-columns:minmax(0,1fr);gap:24px}.koi-stage{position:relative;top:auto}.koi-stage .art-zoom{transform:none!important}.story-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:0}.story-steps .story-step{padding:24px 0 0;min-height:0;border:0;border-top:1px solid #cdc5b9;opacity:1}.story-step h4{font-size:clamp(24px,2.2vw,30px)}}
@media(min-width:761px) and (max-width:900px) and (max-height:650px){.story-steps{grid-template-columns:1fr;gap:0}}
@media(max-width:360px){.catalog-location{display:none}.catalog-menu{margin-left:0}.catalog-dropdown{left:0;right:auto}.gallery-controls{flex-wrap:wrap}.gallery-controls>span{max-width:none}.gallery-rail .design-card{flex-basis:94%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal-ready [data-reveal]{opacity:1!important;transform:none!important}.art-zoom{transform:none!important}.story-enhanced .story-step{opacity:1}}
