/* Componentry source adaptations. MIT notice: /assets/componentry-LICENSE.txt */
.componentry-controller{display:none}
.componentry-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}
.componentry-kinetic{display:inline-flex;flex-wrap:wrap;white-space:pre-wrap;vertical-align:baseline;max-width:100%}
.componentry-kinetic-lines{flex-direction:column;align-items:flex-start}
.componentry-kinetic-mask{display:inline-block;overflow:hidden;vertical-align:baseline;padding-bottom:.06em;margin-bottom:-.06em;max-width:100%}
.componentry-kinetic-segment{display:inline-block;will-change:transform}
[data-particle-type]{position:relative}
.componentry-particle-mount{position:absolute;inset:0;overflow:hidden}
.componentry-particle-canvas{display:block;width:100%;height:100%;touch-action:pan-y;opacity:0;transition:opacity .3s ease}
.componentry-particle-canvas[data-ready="true"]{opacity:1}
[data-particle-ready="true"]>[data-particle-fallback],[data-particle-ready="true"]>.particle-fallback,[data-particle-ready="true"]>.ai-particle-fallback{visibility:hidden}
.componentry-flip-enhanced{position:relative;min-height:calc((var(--componentry-card-count) + .5)*100svh)!important;display:block!important}
.componentry-flip-stage{position:sticky;top:80px;height:calc(100svh - 104px);perspective:1000px;overflow:visible;isolation:isolate}
.componentry-flip-enhanced [data-flip-card]{position:absolute!important;inset:0!important;width:100%;margin:0!important;min-height:0!important;max-height:100%;overflow:hidden;transform-origin:50% 50%;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform;box-shadow:0 18px 36px #0002}
[data-bookshelf]{--shelf-height:clamp(480px,65vw,740px);position:relative;height:var(--shelf-height);isolation:isolate;background:#e9e9e5;color:#18181a;overflow:hidden}
.componentry-shelf-preview,[data-bookshelf-mount]{position:absolute;inset:0;width:100%;height:100%;min-height:0}
.componentry-shelf-preview{display:grid;grid-template-rows:minmax(0,1fr) 154px;overflow:hidden}
.componentry-shelf-preview-covers{display:flex;align-items:center;justify-content:center;min-height:0;padding:45px 18px 0;perspective:1400px;overflow:hidden}
.componentry-shelf-preview-covers img{display:block;flex:0 0 auto;width:24%;height:auto;aspect-ratio:1;object-fit:contain;margin:0 -1.5%;filter:drop-shadow(9px 20px 12px #17181b35);transform:translateY(20px) rotate(-9deg);z-index:1}
.componentry-shelf-preview-covers img:nth-child(2){transform:translateY(-6px) rotate(-5deg);z-index:2}
.componentry-shelf-preview-covers img:nth-child(3){transform:translateY(-30px) scale(1.09);z-index:3}
.componentry-shelf-preview-covers img:nth-child(4){transform:translateY(-6px) rotate(5deg);z-index:2}
.componentry-shelf-preview-covers img:nth-child(5){transform:translateY(20px) rotate(9deg)}
.componentry-shelf-preview-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:14px 20px 32px;text-align:center}
.componentry-shelf-preview-action button{border:0;border-radius:0;background:#18181a;color:#efefec;min-height:52px;padding:16px 27px;font:700 12px/1.4 var(--font,Manrope,sans-serif);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.componentry-shelf-preview-action button::after{content:'↗';color:#ee592e;margin-left:24px;font-size:17px}
.componentry-shelf-preview-action button:hover{background:#333438}
.componentry-shelf-preview-action button:focus-visible{outline:3px solid #b73417;outline-offset:4px}
.componentry-shelf-preview-action button:disabled{cursor:default}
.componentry-shelf-preview-action p{font-size:11px;line-height:1.5;min-height:2.8em;margin:0;max-width:34em;color:#4c4d4e}
[data-bookshelf-mode="catalogue"] [data-bookshelf-activate]{visibility:hidden}
[data-bookshelf-mount]{visibility:hidden;pointer-events:none}
[data-bookshelf-mode="interactive"] [data-bookshelf-mount]{visibility:visible;pointer-events:auto}
[data-bookshelf-mode="interactive"] .componentry-shelf-preview{visibility:hidden;pointer-events:none}
.componentry-shelf-wrap{height:100%;min-height:0;display:grid;grid-template-rows:64px minmax(0,1fr) 82px;padding:0 24px}
.componentry-shelf-wrap>.componentry-bookshelf{min-height:0}
.componentry-bookshelf{position:relative;isolation:isolate;width:100%;overflow:hidden;background:#e9e9e5;color:#18181a;--shelf-accent:#ee592e}
.componentry-bookshelf-stage{position:relative;height:100%;width:100%;touch-action:pan-y;overflow:hidden;outline:none}
.componentry-bookshelf-stage:focus-visible{outline:2px solid var(--shelf-accent);outline-offset:-3px}
.componentry-bookshelf-tooltip{pointer-events:none;position:absolute;z-index:20;max-width:300px;transform:translate(-50%,calc(-100% - 16px));white-space:nowrap;border-radius:4px;background:#171717;padding:8px 12px;font:11px/1.5 ui-monospace,monospace;color:#fff;box-shadow:0 8px 25px #0002;transition:opacity .15s}
.componentry-bookshelf-tooltip.is-visible{opacity:1}.componentry-bookshelf-tooltip.is-hidden{opacity:0}
.componentry-bookshelf-tooltip span{display:block;opacity:.6}
.componentry-shelf-instructions,.componentry-shelf-selection{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;line-height:1.5;padding:12px 0;min-width:0}
.componentry-shelf-instructions p{margin:0}.componentry-shelf-instructions button{background:transparent;border:1px solid currentColor;color:inherit;padding:8px 12px;font:inherit;cursor:pointer}
.componentry-shelf-selection a{white-space:nowrap}.componentry-shelf-fallback{padding:50px 0}
@media(max-width:600px){.componentry-shelf-wrap{padding:0 18px;grid-template-rows:78px minmax(0,1fr) 108px}.componentry-shelf-instructions,.componentry-shelf-selection{align-items:flex-start;font-size:11px;gap:8px}.componentry-shelf-selection{flex-direction:column;justify-content:center}.componentry-shelf-instructions button{flex-shrink:0}.componentry-shelf-preview-covers{padding:30px 0 0}.componentry-shelf-preview-covers img{width:37%;margin:0 -7%}.componentry-shelf-preview-covers img:first-child,.componentry-shelf-preview-covers img:last-child{opacity:.8}.componentry-shelf-preview{grid-template-rows:minmax(0,1fr) 166px}}
@media(prefers-reduced-motion:reduce){.componentry-particle-canvas{transition:none}.componentry-kinetic-segment{will-change:auto}}

.componentry-spectral-mount,.componentry-spectral-ribbon{position:absolute;inset:0;min-height:0;overflow:hidden;pointer-events:none}
.componentry-spectral-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.componentry-spectral-content{position:relative;z-index:1;height:100%;min-height:0;width:100%}

.componentry-touch-instruction{display:none}
@media(pointer:coarse){.componentry-keyboard-instruction{display:none}.componentry-touch-instruction{display:inline}}
