/* Full-window book. Paper content is paginated at its actual readable size. */
.red{background:#741c2a;color:#d9bc7d}
.red:not(.book-ready) .book-shell{height:auto;max-height:none;overflow:visible}
.red:not(.book-ready) .book-page{position:relative;visibility:visible;pointer-events:auto;height:auto;min-height:610px}
.red:not(.book-ready) .book-controls,.red:not(.book-ready) .gesture-hint{display:none}
.red:not(.book-ready) .book-footer{text-align:center;padding:48px 24px}
.red.book-ready{height:100dvh;overflow:hidden;overscroll-behavior:none}
.red.book-ready .book-main{position:fixed;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:0;min-height:0;touch-action:pinch-zoom;cursor:grab}
.red.book-ready .book-shell{position:relative;width:100%;max-width:none;height:100%;max-height:none;margin:0;border:0;background:#741c2a;box-shadow:none;perspective:none;overflow:visible;touch-action:pinch-zoom;cursor:grab;user-select:none;-webkit-user-select:none;outline-offset:-5px}
.red.book-ready .book-shell::before,.red.book-ready .book-shell::after{display:none}
.red.book-ready .book-viewport{position:absolute;inset:0;overflow:clip;isolation:isolate}
.red.book-ready .book-stage{position:relative;width:100%;height:100%;perspective:2400px;perspective-origin:50% 50%}
.red.book-ready .book-rest,.red.book-ready .book-underlay{position:absolute;top:0;width:50%;height:100%;overflow:hidden;background:#f5eedf}
.red.book-ready .book-left,.red.book-ready .on-left{left:0}
.red.book-ready .book-right,.red.book-ready .on-right{left:50%}
.red.book-ready .book-rest{z-index:1}
.red.book-ready .book-underlay{z-index:2;pointer-events:none}
.red .book-panel{position:relative;width:100%;height:100%;min-height:0;box-sizing:border-box;overflow:hidden}
.red.book-ready .book-paper,.red .book-measure .book-paper{background:#f5eedf;color:#54282c;padding:clamp(24px,4vw,64px)}
.red .sheet-content{display:flex;flex-direction:column;justify-content:center;gap:18px;width:100%;height:100%;min-height:0;max-width:560px;margin:0 auto;font-size:clamp(18px,1.5vw,22px);line-height:1.5;overflow-wrap:anywhere}
.red .sheet-content>*{flex-shrink:0;margin:0}
.red .sheet-content h2{font-family:var(--script);font-size:clamp(42px,4.5vw,66px);line-height:1.1;font-weight:400}
.red .sheet-content h3{font-size:clamp(26px,2.5vw,34px);line-height:1.2}
.red .sheet-content p{font-size:inherit;line-height:1.5}
.red .sheet-content .ceremony-label{font-size:14px;letter-spacing:1.4px}
.red .sheet-content .person-entry p{margin-top:6px}
.red .sheet-content .person-amp{display:block;font-family:var(--script);font-size:38px;line-height:1;margin-bottom:10px}
.red .sheet-content .split-text{white-space:pre-line}
.red .sheet-content article p{margin-top:7px}
.red .sheet-content .book-quote{font-size:inherit!important;font-style:italic}
.red .sheet-content .actions{gap:12px;flex-direction:column;align-items:flex-start}
.red .sheet-content .calendar-note,.red .sheet-content .form-note,.red .sheet-content .demo-note{font-size:16px;line-height:1.4;opacity:1}
.red .sheet-content .studio-credit{font-size:16px;margin-top:12px}
.red .sheet-content .closing-names{font-size:clamp(48px,5vw,76px)}
.red .book-measure{position:fixed;top:0;left:0;visibility:hidden;pointer-events:none;z-index:-1;contain:layout style}
.red .book-measure .sheet-content{justify-content:flex-start}
.red .book-storage[hidden]{display:none!important}
.red.book-ready .cover-inner{background:#741c2a;color:var(--gold);padding:40px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;isolation:isolate;text-align:center}
.red.book-ready .cover-inner>*{flex-shrink:0;margin:0}
.red.book-ready .cover-inner h1{font-size:clamp(52px,min(calc(var(--leaf-height)*.12),10vw),104px);line-height:1.1;margin:0}
.red.book-ready .cover-inner h1>span{font-size:.48em;display:inline;padding:0}
.red.book-ready .book-monogram{width:58px;height:58px;margin:0}
.red.book-ready .book-cover-date{font-size:20px;line-height:1.35;margin:0}
.red.book-ready .book-guest{font-size:17px;line-height:1.4;margin:0}
.red.book-ready .book-cover-photo,.red.book-ready .book-image-page{display:block;background:#741c2a}
.red.book-ready .book-cover-photo>img,.red.book-ready .book-image-page>img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.red.book-ready .photo-bottom{position:absolute;bottom:0;left:0;right:0;background:#741c2ae8;padding:22px;color:var(--gold)}
.red.book-ready .photo-bottom .script{font-size:clamp(32px,4vw,54px)}
.red.book-ready .photo-annotation{bottom:32px;font-size:clamp(29px,4vw,48px)}
.red.book-ready .last-photo>img{height:100%;object-position:50% 50%}
.red.book-ready .last-photo>div{position:absolute;inset:auto 0 0;display:block;padding:26px 24px;background:#741c2ae8;color:var(--gold);text-align:center}
.red.book-ready .last-photo h2{font-size:clamp(36px,4.5vw,60px)}
.red.book-ready .last-photo p{font-size:18px;margin-top:12px}
.red.book-ready .book-date-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 16px;background:#741c2a;color:var(--gold)}
.red.book-ready .book-date-page>p{font-size:18px;margin:0}
.red.book-ready .book-date-page>.script{font-size:clamp(44px,calc(var(--leaf-height)*.1),80px)}
.red.book-ready .book-date-page>strong{font-size:clamp(90px,calc(var(--leaf-height)*.27),230px);font-weight:400;line-height:.9}
.red.book-ready .book-date-page>span:last-of-type{font-size:clamp(30px,calc(var(--leaf-height)*.05),44px);margin:0}
.red.book-ready .book-date-page .countdown{gap:12px;margin:18px 0 0}
.red.book-ready .book-date-page .countdown strong{font-size:clamp(24px,3vw,36px)}
.red.book-ready .book-date-page .countdown>span{font-size:16px;min-width:45px}
/* taste-skill-ignore: Neutral physical crease shading at the turning axis. */ .red.book-ready .book-spine{position:absolute;z-index:5;left:50%;height:100%;top:0;width:15px;transform:translateX(-50%);background:linear-gradient(90deg,#28151a20,transparent 38%,#28151a25 50%,transparent);pointer-events:none}
.red.book-ready .book-leaf{position:absolute;z-index:4;top:0;left:50%;width:50%;height:100%;transform-origin:0 50%;transform-style:preserve-3d;pointer-events:none;will-change:transform}
.red.book-ready .book-face{position:absolute;inset:0;overflow:hidden;background:#f5eedf;backface-visibility:hidden;-webkit-backface-visibility:hidden;isolation:isolate}
.red.book-ready .book-face-front{transform:translateZ(.3px)}
.red.book-ready .book-face-back{transform:rotateY(180deg) translateZ(.3px)}
.red.book-ready .book-face>.book-panel{visibility:visible}
.red.book-ready .book-fold-shade{position:absolute;inset:0;background:#201016;opacity:0;pointer-events:none}
.red.book-ready .is-dragging{cursor:grabbing}
.red.book-ready .book-controls{display:grid;grid-template-columns:44px minmax(0,190px) 44px;position:relative;align-items:center;justify-content:center;column-gap:20px;row-gap:0;min-height:94px;padding:4px 12px calc(6px + env(safe-area-inset-bottom));margin:0;background:#741c2a;color:var(--gold);z-index:6}
.red.book-ready .book-controls>div{width:100%;min-width:0;text-align:center}
.red.book-ready .book-swipe-cue{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:34px;margin:0;font-size:16px;line-height:1.2;user-select:none;-webkit-user-select:none}
.swipe-cue-motion{position:relative;display:block;flex-shrink:0;width:54px;height:30px;pointer-events:none}
.swipe-cue-hand{position:absolute;right:0;top:0;width:27px;height:27px;transform:translateX(-4px)}
.swipe-cue-arrow{position:absolute;left:0;top:3px;font-size:24px;line-height:1;opacity:.7}
.book-ready:not(.has-book-swiped) .swipe-cue-hand{animation:teach-book-swipe 2400ms var(--ease-in-out) 3}
@keyframes teach-book-swipe{0%,10%{transform:translateX(7px);opacity:.4}25%{opacity:1}65%{transform:translateX(-22px);opacity:1}85%,100%{transform:translateX(-22px);opacity:.2}}
.red.book-ready .is-dragging~.book-controls .swipe-cue-hand{animation-play-state:paused}
.red.book-ready .page-label{min-height:24px;margin:0;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.red.book-ready .book-dots{height:10px;display:flex;align-items:center;background:#d9bc7d33;margin:3px 0 0}
.red.book-ready .book-dots>span{display:block;height:3px;width:100%;background:var(--gold);transform-origin:left center}
.red.book-ready .page-arrow{display:block!important;font-size:23px;width:44px;min-width:44px;min-height:44px;border:0;border-radius:0;background:transparent;color:inherit;cursor:pointer;opacity:1}
.red.book-ready .page-arrow:disabled{opacity:.35;cursor:default}
.red.book-ready .gesture-hint{display:none}
.red .sheet-content .rsvp-fields{display:flex;flex-direction:column;gap:16px;user-select:text;cursor:auto;font-size:16px}
.red .rsvp-fields label{display:flex;flex-direction:column;gap:5px;font-size:16px}
.red .rsvp-fields input,.red .rsvp-fields textarea,.red .rsvp-fields select{width:100%;background:transparent;color:#54282c;border:1px solid #a89282;border-radius:0;padding:10px 12px;font-family:var(--serif);font-size:18px;line-height:1.4}
.red .rsvp-fields textarea{height:84px;min-height:0;resize:none}
.red .rsvp-fields input,.red .rsvp-fields textarea,.red .rsvp-fields select{touch-action:auto;user-select:text;-webkit-user-select:text}
.red .rsvp-fields button{align-self:flex-start}
.red.book-ready .book-footer{display:none}
.red.book-compact .cover-inner{padding:20px;gap:10px}
.red.book-compact .cover-inner h1{font-size:clamp(36px,calc(var(--leaf-height)*.12),72px)}
.red.book-compact .book-monogram{display:none}
.red.book-compact .book-cover-date{font-size:18px}
.red.book-compact .book-guest{font-size:16px}
.red.book-compact .book-paper,.red.book-compact .book-measure .book-paper{padding:20px 28px}
.red.book-compact .sheet-content{gap:14px}
.red.book-compact .sheet-content h2{font-size:42px}
@media(max-width:760px){
 .red.book-ready .book-stage{perspective:1600px;perspective-origin:0 50%}
 .red.book-ready .book-left,.red.book-ready .book-underlay.on-left{display:none}
 .red.book-ready .book-right,.red.book-ready .book-underlay.on-right,.red.book-ready .book-leaf{left:0;width:100%}
 /* taste-skill-ignore: Same physical crease at the fixed mobile spine. */ .red.book-ready .book-spine{left:0;width:10px;transform:none;background:linear-gradient(90deg,#29101855,#29101809)}
 .red.book-ready .cover-inner{padding-left:28px;padding-right:28px}
 .red.book-ready .cover-inner h1{font-size:clamp(54px,20vw,90px)}
 .red.book-compact .cover-inner h1{font-size:clamp(36px,calc(var(--leaf-height)*.12),72px)}
 .red.book-ready .book-paper,.red .book-measure .book-paper{padding:28px}
 .red .sheet-content{font-size:19px;gap:18px}
 .red .sheet-content h2{font-size:48px}
 .red.book-ready .book-date-page .countdown{gap:18px}
 .red.book-ready .book-controls{column-gap:12px}
 .red.book-compact .book-paper,.red.book-compact .book-measure .book-paper{padding:22px 26px}
}
@media(max-height:420px){
 .red.book-ready .book-controls{min-height:84px;padding-top:0;padding-bottom:env(safe-area-inset-bottom)}
 .red.book-ready .cover-inner{padding:12px 20px;gap:6px}
 .red.book-ready .cover-inner .ceremony-label{font-size:12px}
 .red.book-ready .book-cover-date,.red.book-ready .book-guest{font-size:16px;line-height:1.2}
 .red.book-ready .book-paper,.red .book-measure .book-paper{padding:18px 24px}
 .red .sheet-content{font-size:18px;gap:12px}
 .red .sheet-content h2{font-size:36px}
 .red.book-ready .book-date-page{gap:5px;padding:12px}
 .red.book-ready .book-date-page>.script{font-size:36px}
 .red.book-ready .book-date-page>strong{font-size:90px}
 .red.book-ready .book-date-page>span:last-of-type{font-size:26px}
 .red.book-ready .book-date-page .countdown{margin-top:6px}
 .red.book-ready .last-photo h2{font-size:36px}
 .red.book-ready .last-photo>div{padding:15px}
}
@media(prefers-reduced-motion:reduce){.red.book-ready .book-leaf,.red.book-ready .book-underlay{visibility:hidden}.red.book-ready .book-rest{visibility:visible!important}.book-ready .swipe-cue-hand{animation:none!important;opacity:1}}
