.portfolio-book{position:relative;background:#0b0d10;color:#f3f5f5;scroll-margin-top:0;padding:74px var(--gutter);isolation:isolate}
.portfolio-book::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 15% 5%,#8aabbc12,transparent 48%),radial-gradient(ellipse at 90% 95%,#ff580a0c,transparent 45%);pointer-events:none}
.book-stage{max-width:1180px;margin:auto}
.book-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:34px}
.book-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:#ff773b;margin-bottom:13px}
.book-heading h2{font-size:clamp(30px,3.5vw,50px);letter-spacing:-.035em;text-transform:none;line-height:1.1}
.book-heading h2 span{color:#aebbc3}
.book-intro{flex-shrink:0;font-size:12px;line-height:1.65;color:#b3bdc3}
.book-skip{display:inline-block;margin-top:8px;border-bottom:1px solid #68747b;font-size:11px}
.book-skip:hover{color:#fff;border-color:#ff580a}
.book{position:relative;perspective:2400px;perspective-origin:50% 48%}
.book-spread{display:grid;grid-template-columns:1fr 1fr;min-height:450px;margin-bottom:36px;color:#14191d;background:#e9e9e2;box-shadow:0 5px 0 -2px #b6b7b2,0 10px 0 -4px #6a6d6c,0 25px 65px #0007;position:relative;border-radius:2px 5px 5px 2px}
.book-copy{display:flex;flex-direction:column;justify-content:space-between;padding:28px 38px;background:linear-gradient(90deg,#f1f0e9 90%,#e0dfd7 100%);min-width:0;position:relative}
.book-page-top,.book-page-bottom{display:flex;justify-content:space-between;gap:16px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;line-height:1.5;color:#5b6060}
.book-page-top span:first-child{color:var(--project-color)}
.book-story{padding-block:24px}
.book-story h3{font-size:clamp(36px,4.5vw,64px);letter-spacing:-.035em;line-height:.98;margin-bottom:20px}
.book-story p{font-size:14px;line-height:1.65;max-width:330px;color:#444d50;margin-bottom:25px}
.book-open{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 21px;background:#151a1d;color:#fff;font-size:12px;font-weight:600;transition:background .18s,color .18s;box-shadow:3px 3px 0 #ff580a}
.book-open:hover{background:#ff580a;color:#111;box-shadow:3px 3px 0 #151a1d}
.book-visual{display:flex;flex-direction:column;justify-content:center;gap:0;min-width:0;padding:32px 28px;background:linear-gradient(90deg,#0003,transparent 8%),var(--project-color);position:relative;color:#fff}
.book-browser{font-size:9px;display:flex;gap:13px;align-items:center;padding:11px 12px;background:#f1f0e9;color:#585e60;border-radius:5px 5px 0 0;overflow:hidden;white-space:nowrap}
.book-browser-dots{font-size:7px;letter-spacing:2px;color:#9a9e99}
.book-visual>a{display:block;background:#0b0d10;line-height:0;box-shadow:0 20px 30px #0002}
.book-visual img{width:100%;height:auto;aspect-ratio:1.6;object-fit:cover;display:block;transition:filter .2s}
@media(hover:hover) and (pointer:fine){.book-visual>a:hover img{filter:brightness(1.08)}}
.book-caption{font-size:9px;display:flex;justify-content:space-between;gap:12px;padding-top:18px;color:#ffffffd9}
.book-controls{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:28px auto 0;max-width:590px}
.book-controls[hidden]{display:none}
.book-controls button{color:#aebbc3;background:transparent;border:1px solid transparent;min-width:44px;min-height:44px;font-size:11px;padding:8px;transition:color .2s,border-color .2s}
.book-controls button:hover{color:#fff;border-color:#697279}
.book-controls button:disabled{opacity:.3;cursor:default;border-color:transparent}
.book-selectors{display:flex;gap:3px}
.book-selectors button[aria-current="true"]{color:#ff773b;border-bottom-color:#ff580a}
.book-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.book-enhanced .book{display:grid;touch-action:pan-y pinch-zoom;cursor:grab;user-select:none;-webkit-user-select:none;background:#e9e9e2;box-shadow:0 4px 0 -1px #c6c5bc,0 8px 0 -3px #8c8e88,0 12px 0 -5px #505752,0 28px 60px #0006;border-radius:2px 5px 5px 2px}
.book-enhanced .book:focus-visible{outline:2px solid #ff773b;outline-offset:8px}
.book-enhanced .book.is-dragging,.book-enhanced .book.is-dragging *{cursor:grabbing!important}
.book-enhanced .book img{-webkit-user-drag:none}
.book-enhanced .book-spread{grid-area:1 / 1;position:relative;min-height:490px;margin:0;opacity:0;visibility:hidden;pointer-events:none;background:transparent;box-shadow:none;z-index:1}
.book-enhanced .book-spread.is-visible{opacity:1;visibility:visible}
.book-enhanced .book-spread.is-active{pointer-events:auto}
.book-enhanced .book-visual img{max-height:350px;object-fit:contain}
.book-enhanced .book-spread.is-before{z-index:2}
.book-enhanced .book-spread.is-before>.book-visual,.book-enhanced .book-spread.is-after>.book-copy{visibility:hidden}
.book-enhanced .book::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;box-shadow:0 0 7px 2px #0002;z-index:3;pointer-events:none}
.book-turn-shadow{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent 10%,#0008 43%,#000c 50%,#0006 58%,transparent 96%);transform-origin:50% 50%}
.paper-leaf{position:absolute;left:50%;top:0;width:50%;height:100%;z-index:4;transform-style:preserve-3d;pointer-events:none}
.paper-leaf[hidden]{display:none}
.paper-strip{position:absolute;left:0;top:0;height:100%;transform-origin:0 50%;transform-style:preserve-3d;will-change:transform}
.paper-face{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.paper-front{transform:translateZ(.03px)}
.paper-back{transform:rotateY(180deg) translateZ(.03px)}
.paper-content{position:absolute;top:0;height:100%;color:#14191d}
.paper-shade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}
.paper-content>.book-visual,.paper-content>.book-copy{width:100%;height:100%}
.book-enhanced .paper-content>.book-spread{opacity:1;visibility:visible;position:absolute;inset:0;min-height:0;height:100%;width:100%;margin:0;box-shadow:none;pointer-events:none}
@media(min-width:701px) and (max-height:780px){.book-enhanced .book-heading{margin-bottom:23px}.book-enhanced .book-controls{margin-top:20px}.book-enhanced .book-story{padding-block:15px}.book-enhanced .book-story h3{font-size:48px;margin-bottom:14px}.book-enhanced .book-story p{margin-bottom:18px}}
@media(max-width:900px){.book-copy{padding:25px}.book-visual{padding:25px 20px}.book-heading{gap:20px}.book-heading h2 span{display:block}.book-story h3{font-size:44px}.book-story p{font-size:13px}.book-browser{font-size:8px;gap:6px}}
@media(max-width:700px){
 /* Keep a turning sheet inside the single-page book, not the section gutter. */
 .book-enhanced .book{overflow-x:clip}
 .portfolio-book{padding:58px 20px}.book-heading{display:block;margin-bottom:25px}.book-kicker{font-size:9px;margin-bottom:9px}.book-heading h2{font-size:29px}.book-heading h2 span{display:inline}.book-intro{margin-top:12px;font-size:11px}.book-instruction br{display:none}.book-skip{margin-top:4px;font-size:10px}
 .book-spread{display:flex;flex-direction:column;min-height:0}.book-visual{order:-1;padding:19px 20px}.book-copy{padding:22px}.book-story{padding-block:19px}.book-story h3{font-size:34px;margin-bottom:13px}.book-story h3 br{display:none}.book-story p{font-size:13px;margin-bottom:20px;max-width:none}.book-page-top{font-size:9px}.book-page-bottom{font-size:8px}.book-caption{font-size:8px;padding-top:11px}.book-browser{font-size:8px;padding:7px 10px}.book-browser-dots{font-size:6px}.book-open{min-height:44px}.book-controls{gap:3px;margin-top:19px;width:100%}.book-controls button{padding:5px;min-width:39px}.book-selectors{gap:0}
 .book-enhanced{overflow-x:clip}.book-enhanced .book{overflow:hidden}.book-enhanced .book-heading{margin-bottom:20px}.book-enhanced .book>.book-spread{min-height:470px}.book-enhanced .book-copy{flex:1;padding:18px 22px}.book-enhanced .book-story{padding:14px 0 0}.book-enhanced .book-story h3{font-size:29px;margin-bottom:10px}.book-enhanced .book-story p{font-size:12px;line-height:1.55;margin-bottom:15px}.book-enhanced .book-page-bottom,.book-enhanced .book-caption{display:none}.book-enhanced .book-visual{padding:17px 20px}.book-enhanced .book-visual img{max-height:180px;object-fit:contain}.book-enhanced .book::after{display:none}.paper-leaf{left:0;width:100%}.book-enhanced .book>.book-spread.is-before{visibility:hidden}.book-enhanced .book>.book-spread.is-after>.book-copy{visibility:visible}.book-turn-shadow{transform-origin:0 50%;background:linear-gradient(90deg,#000b,transparent 90%)}
}
@media(prefers-reduced-motion:reduce){.book-open,.book-visual img,.book-controls button{transition:none}}
