/* Books retain the supplied physical proportions at a shared scale. */
.ooo{--book-unit:clamp(14px,1.65vw,20px);--book-step:clamp(240px,33vw,470px);background:#11110f;color:#f6f5ef;padding:80px 0 72px;position:relative;isolation:isolate;overflow:hidden;scroll-margin-top:0}
.ooo-heading{margin:0 6% 28px;display:flex;align-items:center;gap:22px}.ooo-heading h2{font-size:clamp(75px,12vw,160px);font-weight:700;letter-spacing:-.075em;line-height:.9;margin:0}.ooo-heading p{font:italic clamp(21px,3vw,36px) Georgia,serif;margin:0;color:#f8bf10}
.ooo-stage{height:calc(var(--book-unit)*29);position:relative;width:100%;perspective:1400px;touch-action:pan-y}
.ooo-item{position:absolute;bottom:18px;left:50%;width:calc(var(--book-unit)*var(--book-width));height:calc(var(--book-unit)*var(--book-height));transform:translateX(-50%) translateX(calc(var(--position)*var(--book-step))) scale(.68);transform-origin:center bottom;transition:transform .45s cubic-bezier(.22,1,.36,1),visibility 0s;opacity:1;z-index:1;perspective:1000px}
.ooo-item[data-active=true]{transform:translateX(-50%) scale(1);opacity:1;z-index:3}.ooo-item[data-away=true]{visibility:hidden;pointer-events:none;transition:transform .45s cubic-bezier(.22,1,.36,1),visibility 0s .45s}.ooo-item.is-repositioning{transition:none!important;visibility:hidden}
.ooo-item::after{content:"";position:absolute;bottom:-20px;left:-15%;width:130%;height:23px;background:#0009;filter:blur(13px);border-radius:50%;pointer-events:none;z-index:-1}
.ooo-book{--depth:calc(var(--book-unit)*var(--book-depth));--angle:-17deg;display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;color:inherit;position:relative;transform-style:preserve-3d;transform:rotateX(0deg) rotateY(var(--angle));transition:transform .5s;cursor:pointer;touch-action:pan-y;-webkit-user-select:none;user-select:none;outline-offset:14px}
.ooo-item[data-active=true] .ooo-book{cursor:grab}.ooo-book.is-dragging{transition:none;cursor:grabbing!important}.ooo-book:focus:not(:focus-visible){outline:none}.ooo-book:focus{outline:none}.ooo[data-input=keyboard] .ooo-book:focus-visible{outline:2px solid #f8bf10}
.ooo-face{position:absolute;display:block;backface-visibility:hidden;-webkit-backface-visibility:hidden;pointer-events:none}
.ooo-face img{width:100%;height:100%;display:block;object-fit:fill;user-select:none;-webkit-user-drag:none}
.ooo-front,.ooo-back{inset:0;background:#fff;box-shadow:inset 0 0 0 1px #0002}.ooo-front{transform:translateZ(calc(var(--depth)/2))}.ooo-back{transform:rotateY(180deg) translateZ(calc(var(--depth)/2))}.ooo-front::after,.ooo-back::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0002,transparent 3%,#fff2 4%,transparent 6%);pointer-events:none}
.ooo-spine{width:var(--depth);height:100%;left:calc(var(--depth)/-2);top:0;transform:rotateY(-90deg);background:#eee}.ooo-edge{width:var(--depth);height:calc(100% - 3px);top:1.5px;right:calc(var(--depth)/-2);transform:rotateY(90deg);background:repeating-linear-gradient(90deg,#e8e5da 0px,#e8e5da 1px,#faf8ef 1px,#faf8ef 2px)}
.ooo-top,.ooo-bottom{width:100%;height:var(--depth);left:0;background:repeating-linear-gradient(0deg,#e8e5da 0px,#e8e5da 1px,#faf8ef 1px,#faf8ef 2px)}.ooo-top{top:calc(var(--depth)/-2);transform:rotateX(90deg)}.ooo-bottom{bottom:calc(var(--depth)/-2);transform:rotateX(-90deg)}
.ooo-controls{display:flex;justify-content:center;align-items:center;gap:26px;margin:25px 0 18px}.ooo-controls button{display:grid;place-items:center;border:1px solid #ffffff50;border-radius:50%;width:44px;height:44px;color:inherit;background:transparent;cursor:pointer}.ooo-controls button:hover{border-color:#f8bf10;color:#f8bf10}.ooo-controls svg{width:22px;height:22px}.ooo-counter{font-size:12px;letter-spacing:.12em;font-variant-numeric:tabular-nums}
.ooo-info{margin:0 auto;text-align:center;max-width:600px;padding:0 24px;min-height:110px}.ooo-info p{font-size:16px;color:#c6c5bc;line-height:1.5;margin:0 auto 20px;max-width:440px}.ooo-links{display:flex;justify-content:center;gap:22px;flex-wrap:wrap}.ooo-links a{font-size:14px;color:#f8bf10;border-bottom:1px solid currentColor;padding-bottom:5px;text-decoration:none}

@media(max-width:760px){.ooo{--book-unit:clamp(11px,3.7vw,17px);--book-step:55vw;padding-top:58px;padding-bottom:48px}.ooo-heading{gap:18px;margin-bottom:32px}.ooo-heading h2{font-size:80px}.ooo-heading p{font-size:23px}.ooo-info{min-height:130px}.home-page>header nav{gap:14px}.home-page>header nav a{white-space:nowrap}}
@media(max-width:380px){.home-page>header{column-gap:12px}.home-page>header nav{gap:10px}.home-page>header nav a{font-size:12px}}
@media(prefers-reduced-motion:reduce){.ooo-item,.ooo-book{transition:none}}
/* Clear purchase actions and native modal gallery. */
.ooo-links a,.ooo-gallery-buy{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 23px;border:1px solid #f8bf10;border-radius:999px;background:#f8bf10;color:#11110f;font-size:14px;font-weight:600;text-decoration:none;line-height:1.3;transition:background .2s,color .2s}
.ooo-links a:hover,.ooo-gallery-buy:hover{background:#fff2;color:#f8bf10}.ooo-links a:focus-visible,.ooo-gallery button:focus-visible,.ooo-gallery-buy:focus-visible{outline:2px solid #f8bf10;outline-offset:5px}
.ooo-gallery{width:min(1080px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:1px solid #ffffff35;border-radius:18px;background:#171714;color:#f6f5ef;overflow:auto;margin:auto;overscroll-behavior:contain}
.ooo-gallery::backdrop{background:#000c}.ooo-gallery-shell{padding:24px}.ooo-gallery-header{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:0;height:auto;padding:0 0 18px;background:transparent;color:inherit;position:static;transform:none}.ooo-gallery-header span{font-size:11px;letter-spacing:.1em;color:#bfbfb6}.ooo-gallery-header h2{font-size:25px;line-height:1.2;letter-spacing:-.03em;margin:6px 0 0}.ooo-gallery button{color:inherit;background:transparent;cursor:pointer}.ooo-gallery-header button,.ooo-gallery-controls button{border:1px solid #ffffff55;width:44px;height:44px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:24px;padding:0}.ooo-gallery-header svg{width:24px;height:24px}.ooo-gallery-view{display:grid;place-items:center;min-height:220px;background:#171714;border-radius:8px;overflow:hidden}.ooo-gallery-view>img{display:block;width:100%;height:min(58dvh,620px);object-fit:contain}.ooo-gallery-message{color:#f6f5ef;padding:24px;text-align:center;max-width:480px;font-size:16px}.ooo-gallery-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin:16px 0}.ooo-gallery-count{font-size:13px;font-variant-numeric:tabular-nums}.ooo-gallery-thumbs{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:18px}.ooo-gallery-thumbs button{padding:0;border:2px solid transparent;border-radius:5px;overflow:hidden;width:64px;height:46px;opacity:.6}.ooo-gallery-thumbs button[aria-pressed=true]{border-color:#f8bf10;opacity:1}.ooo-gallery-thumbs img{width:100%;height:100%;object-fit:cover}.ooo-gallery-buy{display:flex;width:fit-content;margin:auto}.ooo-gallery [hidden]{display:none!important}html.ooo-gallery-open{overflow:hidden}
@media(max-width:600px){.ooo-gallery{width:calc(100vw - 16px);max-height:calc(100dvh - 24px);border-radius:12px}.ooo-gallery-shell{padding:16px 12px}.ooo-gallery-view>img{height:53dvh}.ooo-gallery-header h2{font-size:22px}.ooo-gallery-thumbs{gap:6px}.ooo-gallery-thumbs button{width:48px;height:36px}}
.ooo-gallery-caption{max-width:650px;margin:16px auto 0;color:#e0e0d7;font-size:16px;line-height:1.5;text-align:center}.ooo-gallery-view{touch-action:pan-y}.ooo-gallery-view img{-webkit-user-drag:none;user-select:none}

/* Sample pages use their natural height so the text stays readable on phones. */
.ooo-gallery-view.is-reading{background:#fff;max-width:680px;margin-inline:auto}.ooo-gallery-view.is-reading>img{height:auto;width:100%;max-height:none}

.ooo-drag-zone{position:absolute;z-index:4;left:50%;bottom:0;transform:translateX(-50%);width:min(72vw,440px);height:100%;touch-action:pan-y;cursor:grab;-webkit-tap-highlight-color:transparent}.ooo-stage:has(.is-dragging) .ooo-drag-zone{cursor:grabbing}.ooo-book{-webkit-tap-highlight-color:transparent}

/* Keep the full spread, bringing the book closer and reducing the cat in frame. */
.ooo-gallery-view.is-zoomed>img{transform:scale(1.3);transform-origin:0% 45%}

.ooo-contact-transition{background:#11110f}

/* One shared photo frame; cropping never changes the layout. */
.ooo-gallery-view:not(.is-reading){position:relative;width:min(100%,87dvh,930px);aspect-ratio:3/2;min-height:0;margin-inline:auto}
.ooo-gallery-view:not(.is-reading)>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.ooo-reading-sample{max-width:60ch;margin:36px auto;color:#eeeae1;font:clamp(18px,2vw,21px)/1.75 Georgia,serif;text-align:left;overflow-wrap:break-word}
.ooo-reading-sample p{font:inherit;color:inherit;margin:0 0 1.25em}
.ooo-reading-sample blockquote{margin:1.5em 0 1.5em 1em;padding-left:1em;border-left:2px solid #f8bf10;font-style:italic}
.ooo-reading-sample .ooo-sample-end{font:600 13px/1.5 Arial,sans-serif;letter-spacing:.1em;text-align:center;margin:48px 0 32px;color:#f8bf10}
@media(max-width:600px){.ooo-gallery-view:not(.is-reading){width:100%}.ooo-reading-sample{margin-top:28px}.ooo-reading-sample blockquote{margin-left:0;padding-left:12px}}

.ooo-new-badge{position:absolute;top:8px;right:-18px;z-index:5;padding:6px 10px;border-radius:4px;background:#f8bf10;color:#11110f;font:700 11px/1 Arial,sans-serif;letter-spacing:.1em;transform:rotate(7deg);pointer-events:none}

/* Continuous track: position and size follow the same floating offset. */
.ooo-stage{cursor:grab}
.ooo-stage.is-dragging,.ooo-stage.is-dragging .ooo-book{cursor:grabbing}
.ooo .ooo-item,.ooo .ooo-item[data-active=true]{transform:translateX(-50%) translateX(calc(var(--position)*var(--book-step))) scale(var(--scale,1));transition:none}
.ooo .ooo-item[data-away=true]{visibility:hidden;transition:none}
.ooo-item[data-active=true] .ooo-book{cursor:pointer}

/* Keep the four moving book layers ready for touch compositing. */
.ooo .ooo-item{will-change:transform,opacity}
.ooo-stage{user-select:none;-webkit-user-select:none}
