#book-scene{position:fixed;inset:0;width:100vw;height:100dvh;background:var(--color-gallery);overflow:hidden;touch-action:pan-x}.book-container{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;perspective:2000px}.book-pivot{position:relative;width:var(--book-w, 420px);height:var(--book-h, 560px);transform-style:preserve-3d;transform:rotateX(-8deg) rotateY(-30deg)}.book-shell{position:absolute;width:calc(var(--book-w, 420px) - 2px);height:calc(var(--book-h, 560px) - 2px);top:1px;left:1px;transform-style:preserve-3d;pointer-events:none}.book-face{position:absolute;inset:0;background:var(--color-linen);border:1px solid var(--color-bone);border-radius:2px;transform:translateZ(0)}.book-edge{position:absolute}.book-edge--bottom{left:0;bottom:0;width:100%;height:var(--book-depth, 40px);transform:rotateX(90deg);transform-origin:bottom center;background:repeating-linear-gradient(to bottom,#f5f0e8 0px 1.5px,#ede8de 1.5px 2px,#f0ede6 2px 3.5px,#e8e0d4 3.5px 4px);border-bottom:2px solid var(--color-warm-gray);box-shadow:inset 0 -3px 6px #0000000f}.book-edge--right{top:0;right:0;width:var(--book-depth, 40px);height:100%;transform:rotateY(90deg);transform-origin:right center;background:repeating-linear-gradient(to right,#f5f0e8 0px 1.5px,#ede8de 1.5px 2px,#f0ede6 2px 3.5px,#e8e0d4 3.5px 4px);border-right:2px solid var(--color-warm-gray);box-shadow:inset -3px 0 6px #0000000f}.book-edge--spine{top:0;left:0;width:var(--book-depth, 40px);height:100%;transform:rotateY(-90deg);transform-origin:left center;background:linear-gradient(to right,#b8b2a8,#c4beb4 8%,#d8d2c8 20%,#e8e0d4,#d8d2c8 80%,#c4beb4 92%,#b8b2a8);border-left:2px solid #A8A298;box-shadow:inset 3px 0 8px #00000014;border-radius:2px 0 0 2px}.book-shadow{position:absolute;width:calc(var(--book-w, 420px) + 20px);height:80px;background:radial-gradient(ellipse,rgba(0,0,0,.12) 0%,transparent 70%);transform:rotateX(90deg) translateZ(calc(var(--book-h, 560px) / -2 - 10px));pointer-events:none}.fore-edge-cap{position:absolute;top:0;right:-2px;width:var(--book-depth, 40px);height:var(--book-h, 560px);transform-style:preserve-3d;transform-origin:right center;transform:rotateY(90deg);background:repeating-linear-gradient(to right,#f5f0e8 0px 1.5px,#ede8de 1.5px 2px,#f0ede6 2px 3.5px,#e8e0d4 3.5px 4px);border-right:2px solid var(--color-warm-gray);box-shadow:inset -3px 0 6px #0000000f;pointer-events:none;z-index:9999}.book{position:absolute;width:var(--book-w, 420px);height:var(--book-h, 560px);transform-style:preserve-3d;transform:translateZ(1px)}.leaf{position:absolute;inset:0;transform-style:preserve-3d;transform-origin:left center;transform:translateZ(calc(var(--z, 0) * 1px)) rotateY(calc(var(--rot, 0) * 1rad));will-change:transform}.page{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;align-items:center;justify-content:center;border-radius:2px;overflow:hidden}.page.front{background:var(--color-parchment);box-shadow:1px 0 3px #00000014,3px 0 10px #0000000a}.page.back{background:var(--color-parchment);transform:rotateY(180deg);box-shadow:-1px 0 3px #00000014,-3px 0 10px #0000000a}.page--cover,.page--back-cover{background:var(--color-linen)!important;border:1px solid var(--color-bone)}.page--inner{border-right:1px solid var(--color-bone)}.page.back.page--inner{border-right:none;border-left:1px solid var(--color-bone)}.cover-content{text-align:center;color:var(--color-soot);display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:var(--space-2xl)}.cover-monogram{font-size:18px;opacity:.8}.cover-title{font-family:var(--font-primary);font-size:clamp(28px,5vw,48px);font-weight:700;line-height:1.05;letter-spacing:-.03em;color:var(--color-soot)}.cover-subtitle{font-family:var(--font-secondary);font-size:clamp(14px,2vw,20px);font-weight:300;font-style:italic;color:var(--color-gold);letter-spacing:.05em}.cover-instruction{font-family:var(--font-mono);font-size:10px;color:var(--color-graphite);letter-spacing:.05em;margin-top:var(--space-xl);opacity:.6}.cover-instruction--mobile{display:none}@media(pointer:coarse){.cover-instruction--desktop{display:none}.cover-instruction--mobile{display:block}}.back-cover-content{gap:var(--space-md)}.back-cover-url{font-family:var(--font-mono);font-size:13px;color:var(--color-graphite);letter-spacing:.05em}.back-cover-coming{font-family:var(--font-primary);font-size:12px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--color-gold)}.region-divider-page{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.region-image{width:100%;height:100%;object-fit:cover;display:block}.region-label{position:absolute;bottom:var(--space-2xl);left:50%;transform:translate(-50%);text-align:center}.region-name{font-family:var(--font-primary);font-size:clamp(18px,3.5vw,28px);font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--color-gold);background:#f5f0e8e0;padding:6px 20px;border-radius:1px}.specimen-image-page{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.specimen-photo{width:100%;height:100%;object-fit:cover;display:block}.specimen-info-page{max-width:100%;padding:var(--space-xl);color:var(--color-soot);display:flex;flex-direction:column;gap:var(--space-md);overflow-y:auto;max-height:100%}.specimen-header{display:flex;flex-direction:column;gap:var(--space-xs);padding-bottom:var(--space-sm);border-bottom:1px solid var(--color-bone)}.specimen-info-page .specimen-name{color:var(--color-soot);font-size:20px}.specimen-info-page .scientific-name{color:var(--color-graphite)}.specimen-description{color:var(--color-charcoal);line-height:1.7;font-size:14px}.specimen-legend{display:flex;flex-direction:column;gap:6px;padding-top:var(--space-sm);border-top:1px solid var(--color-bone)}.legend-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-md)}.specimen-legend .legend-label{color:var(--color-graphite);flex-shrink:0;min-width:80px;font-size:10px}.specimen-legend .legend-value{color:var(--color-charcoal);text-align:right;font-size:11px}#book-ui{position:fixed;inset:0;pointer-events:none;z-index:100}.controls{position:absolute;bottom:calc(40px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);display:flex;gap:20px;align-items:center;pointer-events:auto}.nav-btn{background:var(--color-white);border:1px solid var(--color-bone);color:var(--color-charcoal);width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;box-shadow:0 4px 12px #00000014;transition:all .2s ease}.nav-btn:hover{transform:scale(1.1);border-color:var(--color-gold);color:var(--color-gold)}.counter{color:var(--color-graphite);font-family:var(--font-mono);font-size:.85rem;width:60px;text-align:center;letter-spacing:.1em}#about-link{position:absolute;top:calc(40px + env(safe-area-inset-top,0px));right:calc(40px + env(safe-area-inset-right,0px));font-family:var(--font-primary);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--color-graphite);text-decoration:none;pointer-events:auto;transition:color .3s ease}#about-link:hover{color:var(--color-gold)}.mobile-mode .book-shell,.mobile-mode .book-shadow,.mobile-mode .fore-edge-cap{display:none!important}.mobile-mode .book-container{perspective:none}.mobile-mode .book-pivot{transform:none!important;transform-style:flat;width:100%;height:100%}.mobile-mode .book{transform:none;transform-style:flat;width:100%;height:100%}.mobile-mode .leaf{transform:none!important;transform-style:flat;position:absolute;inset:0;z-index:0!important}.mobile-mode .page{backface-visibility:visible;-webkit-backface-visibility:visible;position:absolute;inset:0;border-radius:0;box-shadow:none;opacity:0;pointer-events:none;transition:opacity .25s ease}.mobile-mode .page.back{transform:none}.mobile-mode .page.mobile-active{opacity:1;pointer-events:auto;z-index:10}.mobile-mode .page--cover,.mobile-mode .page--back-cover,.mobile-mode .page--inner{border:none}.mobile-mode .page:has(.region-divider-page),.mobile-mode .page:has(.specimen-image-page){padding:0}.mobile-mode .specimen-info-page{overflow-y:auto;-webkit-overflow-scrolling:touch;max-height:100%;align-self:flex-start;width:100%;box-sizing:border-box}.mobile-mode .cover-content{padding:var(--space-2xl) var(--space-xl);gap:var(--space-lg)}.mobile-mode .cover-title{font-size:clamp(36px,10vw,56px)}.mobile-mode .cover-monogram{font-size:18px}.mobile-mode .cover-subtitle{font-size:clamp(16px,4vw,22px)}.mobile-mode .cover-instruction{margin-top:var(--space-xl)}.mobile-mode .specimen-info-page{padding:var(--space-xl) var(--space-lg);gap:var(--space-md)}.mobile-mode .specimen-header{gap:var(--space-xs);padding-bottom:var(--space-sm)}.mobile-mode .specimen-info-page .specimen-name{font-size:24px}.mobile-mode .specimen-info-page .scientific-name{font-size:16px}.mobile-mode .specimen-description{font-size:16px;line-height:1.7}.mobile-mode .specimen-legend{gap:6px;padding-top:var(--space-sm)}.mobile-mode .legend-row{gap:var(--space-md)}.mobile-mode .specimen-legend .legend-label{font-size:11px;min-width:80px}.mobile-mode .specimen-legend .legend-value{font-size:13px}.mobile-mode .region-name{font-size:clamp(18px,5vw,28px);padding:8px 24px}.mobile-mode .back-cover-url{font-size:14px}.mobile-mode .back-cover-coming{font-size:12px}.mobile-mode .controls{background:#f5f0e8d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:8px 20px;border-radius:999px;border:1px solid rgba(200,190,175,.4);box-shadow:0 4px 16px #0000001a;bottom:calc(20px + env(safe-area-inset-bottom,0px));gap:16px}.mobile-mode .nav-btn{width:44px;height:44px;background:transparent;border:none;box-shadow:none}.mobile-mode #about-link{top:calc(16px + env(safe-area-inset-top,0px));right:calc(16px + env(safe-area-inset-right,0px));background:#f5f0e8d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:6px 12px;border-radius:4px}@media(max-width:768px){#book-scene:not(.mobile-mode) .book-container{perspective:1400px}.controls{bottom:calc(20px + env(safe-area-inset-bottom,0px));gap:16px}.nav-btn{width:44px;height:44px}#about-link{top:calc(16px + env(safe-area-inset-top,0px));right:calc(16px + env(safe-area-inset-right,0px))}}
