/* Stable paper under every animated surface. Paper lighting is a physical material. */
:root{--muted:#586e68}.py,.pager-info span,.context-label,.practice-status,.poem-meta,.ticket-author{color:#5d7364}
.passport-object{transition:transform 500ms var(--motion)}.passport-object.opening,.opening .passport-cover{animation-timing-function:var(--motion)}
.book-stage{perspective:none}.paper-sheet{background-image:none}.paper-right{background-color:var(--paper)}
.turn-safety,.dom-turn,.turn-shadow{position:absolute;pointer-events:none;border-radius:inherit}
.turn-safety{z-index:8;overflow:hidden;background:var(--paper)}
.turn-safety>.paper-sheet,.turn-front>.paper-sheet{position:absolute;inset:0;width:100%;height:100%;margin:0;min-height:0;box-sizing:border-box}
.dom-turn{z-index:10;transform-style:flat}.dom-leaf{position:absolute;inset:0;transform-style:preserve-3d;transform-origin:0 50%;will-change:transform}
.turn-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:inherit;background:var(--paper);overflow:hidden}
.turn-front{transform:translateZ(.5px)}.turn-back{transform:rotateY(180deg);background:#f0f3e6;box-shadow:inset -12px 0 24px #344d3514}
.turn-back::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#9ea88b30,transparent 12%,#ffffff28 70%,#56634e1a)}
.turn-shadow{z-index:9;background:#29483d;opacity:0;transform-origin:0 50%}
.page-lift{position:absolute;top:0;bottom:0;right:0;width:var(--spacing-400);pointer-events:none;transform-origin:100% 50%;opacity:0;z-index:4;background:linear-gradient(90deg,transparent,#9aa58b24 42%,#fffef4 75%,#78836c4d);border-radius:0 8px 8px 0;will-change:transform,opacity}
.page-lift.lift-left{right:auto;left:0;transform-origin:0 50%;background:linear-gradient(90deg,#78836c4d,#fffef4 25%,#9aa58b24 58%,transparent)}
.passport-cover{overflow:hidden}.cover-foil{position:absolute;inset:-25% -20%;pointer-events:none;opacity:0;background:linear-gradient(100deg,transparent 30%,#f6e3a724 44%,#ffefc975 50%,#f6e3a724 56%,transparent 70%);mix-blend-mode:screen}
.stamp{position:relative}.stamp.is-new{animation:stamp-land 600ms var(--motion) both}
@keyframes stamp-land{0%{opacity:0;transform:translateY(-24px) scale(1.4) rotate(-16deg)}55%{opacity:1;transform:translateY(2px) scale(.97) rotate(-9deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(-9deg)}}
.stamp-burst{position:absolute;inset:0;pointer-events:none;overflow:visible}.ink-ring{position:absolute;inset:-8px;border:2px solid #ad9860;border-radius:9999px;opacity:0}.gold-spark{position:absolute;top:50%;left:50%;width:4px;height:8px;background:#b49a55;border-radius:2px;opacity:0}.gold-spark:nth-child(3n){background:#5a8277;width:4px;height:4px}
.stamp.large .stamp-sub,.stamp.large .stamp-date{font:400 12px/16px var(--sans)}.stamp.large .stamp-title{font-size:24px;line-height:32px}.stamp-celebration::after{display:none}
.collection-progress{display:inline-flex;align-items:center;gap:var(--spacing-50);color:var(--muted);white-space:nowrap}.collection-progress svg{width:20px;height:20px;transform:rotate(-90deg)}.collection-progress .track{stroke:#dce5d5}.collection-progress .value{stroke:var(--teal);stroke-linecap:round}
@media(prefers-reduced-motion:reduce){.cover-foil,.page-lift,.stamp-burst{display:none}.stamp.is-new{animation:none}}
.reduce-motion .cover-foil,.reduce-motion .page-lift,.reduce-motion .stamp-burst{display:none}.reduce-motion .stamp.is-new{animation:none}
