/* V3.1 editorial pass: warm paper, Doraemon blue, quiet motion.
   Keep page styles and RSVP business rules independent. */
:root { --ink:#254f62; --muted:#597581; --cream:#fffaf0; }
.scene.is-active:not(.scene-p10) { animation:chapterEnter .55s ease-out both; }
@keyframes chapterEnter { from{opacity:0} to{opacity:1} }
.game-button { background:linear-gradient(#fff0b4,#ffda7b); box-shadow:0 4px 0 #cda355,0 8px 18px #62431c12; font-size:15px; font-weight:800; }
.game-button:disabled { cursor:wait; }
button:focus-visible,a:focus-visible { outline:3px solid #075e9a;outline-offset:4px; }
.hud-chapter { display:flex;align-items:center;background:#116b9cdd;box-shadow:none; }
.hud-progress { opacity:.8; }
.paper-note small,.section-heading p,.gesture-hint { font-size:11px;line-height:1.6; }
.toast { max-width:calc(100% - 32px);text-align:center;bottom:calc(var(--safe-bottom) + 86px);font-size:12px; }
.section-heading h2 { font-size:21px;line-height:1.35; }

/* One coordinate system for the television and its screen, at every height. */
.p1-tv-wrap { width:min(100%,392px,calc(48svh * .8));max-height:none;aspect-ratio:4/5; }
.p1-tv-frame { object-fit:fill; }
.p1-note { padding:16px 18px; }
.p1-caption { font-size:12px;line-height:1.6; }
.p1-layout { gap:12px; }

/* Pocket-shaped tray, with optional exploration after the first gadget. */
.p2-layout { overflow-y:auto;gap:14px;grid-template-rows:auto minmax(min-content,1fr) auto auto auto; }
.gadget-grid { position:relative;gap:10px;padding:16px 13px 24px;background:#fffdf6dc;border:3px solid #fff;border-radius:24px 24px 46% 46% / 24px 24px 14% 14%;box-shadow:0 8px 24px #22567514; }
.gadget-card { min-height:112px;background:#f5eddc;border:1px solid #dfd0b0;box-shadow:0 3px 0 #d5c5a766;border-radius:15px; }
.gadget-card.wide { min-height:82px; }
.gadget-card span { font-size:11px;line-height:1.5; }
.gadget-card b { font-size:14px; }
.gadget-card.is-tested i { background:#4d9da7;box-shadow:none; }
.gadget-card.is-tested i:after { content:'✓'; }
.p2-result { min-height:100px;padding:12px;grid-template-columns:48px 1fr; }
.p2-result[hidden] { display:none; }
.p2-result p { font-size:12px;line-height:1.65; }
.p2-result small { font-size:11px; }
.p2-summary { display:grid;gap:3px;padding:10px 12px;border-radius:14px;background:#fffaf0e8;border:1.5px solid #e1bd71;box-shadow:0 5px 14px #6b4d1d12; }
.p2-summary[hidden] { display:none; }
.p2-summary small { color:#8f7651;font-size:9px;font-weight:900;letter-spacing:.12em; }
.p2-summary p { margin:0;color:#5f7480;font-size:11px;line-height:1.55; }
.p2-summary b { color:#075b9c; }
.p2-next { width:88%; }

/* Use the painted drawer itself; do not place a flat duplicate on top. */
.drawer-closed { display:none; }
.drawer-interaction { right:auto;top:auto;width:var(--drawer-w,30%);height:var(--drawer-h,10%);left:var(--drawer-x,66%);top:var(--drawer-y,59%);border-radius:10px; }
.drawer-glow { inset:0 4% auto;height:20%;opacity:.65; }
.drawer-interaction em,body.is-compact .drawer-interaction em { right:calc(100% + 25px);left:auto;top:42%;width:auto;font-size:11px;line-height:1.5;padding:3px 6px;white-space:nowrap;background:rgba(255,249,232,.78);border:0;border-radius:3px;box-shadow:none;color:#66533b;font-weight:500;pointer-events:none; }
.drawer-interaction em:after { content:'';position:absolute;left:calc(100% + 5px);top:50%;width:17px;height:5px;border-top:1px solid #fff0d0;border-right:1px solid #fff0d0;transform:skewX(35deg);opacity:.8; }
.drawer-interaction.is-open em { opacity:0;transition:opacity .15s; }
.p3-note,body.is-compact .p3-note { width:90%;padding:14px 16px; }
.p3-note p { font-size:12px; }
.p3-note h2 { font-size:20px; }
.scene-p3.is-departing:after { content:'';position:absolute;z-index:20;inset:0;pointer-events:none;background:radial-gradient(ellipse at 80% 64%,#f6fdff,#a4e7fa);animation:drawerDeparture .8s ease-in both; }
@keyframes drawerDeparture { from{opacity:0;clip-path:circle(0% at 80% 64%)} to{opacity:1;clip-path:circle(130% at 80% 64%)} }

/* Blue-and-cream time travel, with the same paper language as the invitation. */
.startup-bg { background:radial-gradient(ellipse at 50% 55%,#b9e7ef,#5aa7c0 45%,#225476 100%); }
.startup-bg .ring { border:2px dashed #ffefc675;border-left-color:#fff8df; }
.startup-panel { background:#fff7e8f5;border:1px solid #d9bd81;border-radius:80px 80px 24px 24px;color:#254f62;box-shadow:0 16px 45px #123d5526; }
.startup-panel small,.coordinate { color:#547785;font-size:12px; }
.startup-panel p,.startup-panel strong { color:#254f62; }
.startup-panel>img { filter:drop-shadow(0 4px 0 #c69a4933); }
.time-tunnel { background-image:var(--journey-art,none),radial-gradient(ellipse at 50% 57%,#fff8d5 0 3%,#b9e9ee 9%,#529eba 30%,#285f82 62%,#123b5a 100%);background-size:cover;background-position:center; }
.tunnel-ring { border-width:3px;border-color:#bfeefb66;border-right-color:#ffe9bb99; }
.tunnel-core { background:#fff9dd;box-shadow:0 0 40px 18px #fff7d477; }
.p5-heading { background:#143e58bb;border-left-color:#ffdf92;width:91%; }
.p5-heading p { font-size:12px; }
.p5-heading small { font-size:10px;color:#ffdfa5; }
.loading-dots {
  display: inline-block;
  width: 1.5em;
  text-align: left;
  vertical-align: bottom;
  overflow: hidden;
}
.loading-dots::after {
  content: '·';
  animation: loadingDots 1.6s infinite steps(1);
}
@keyframes loadingDots {
  0% { content: '·'; }
  33% { content: '··'; }
  66% { content: '···'; }
}
.memory-item { width:21%;max-width:84px;animation-name:memoryJourney; }
.memory-item figcaption { font-size:10px; }
.memory-item.m3 { left:69%;top:31%; }
.memory-item.m5 { left:48%;top:48%; }
.memory-item.m7 { left:38%;top:74%; }
.memory-item.m8 { left:69%;top:72%; }
.p5-destination-card { background:#123e59e8;border-color:#d8e9d0; }
.p5-destination-card span { font-size:10px; }
@keyframes memoryJourney { 0%,100%{transform:translate3d(0,0,0) rotate(var(--r)) scale(.93);opacity:.8} 50%{transform:translate3d(3px,-12px,0) rotate(calc(var(--r) + 3deg)) scale(1.04);opacity:1} }

/* The door stands on the garden path; photo and door are independent layers. */
.p6-layout { gap:12px; }
.scene-p6 { background:#e8eedc; }
.p6-garden-bg { height:calc(100% - 130px);object-position:center bottom;mask-image:linear-gradient(#000 85%,transparent); }
.door-stage { isolation:isolate; }
.pink-door,body.is-compact .pink-door { top:auto;bottom:20px;width:min(64%,242px,calc((100svh - 310px) * .68));padding:0;border:0;background:none;cursor:pointer;perspective:900px;overflow:visible; }
.pink-door:after { content:'';position:absolute;z-index:-1;bottom:-12px;left:-20%;width:140%;height:28px;border-radius:50%;background:radial-gradient(ellipse,#334c3970,transparent 70%);transform:skewX(-22deg); }
.pink-door:before { content:none; }
.door-frame-art { position:absolute;inset:0;z-index:4;width:100%;height:100%;pointer-events:none; }
.door-portal-photo { inset:12.6% 20.6% 11.3%;border-radius:0;transition:inset 1.25s cubic-bezier(.2,.65,.25,1) .18s,border-radius 1.25s cubic-bezier(.2,.65,.25,1) .18s,opacity .45s ease .18s,box-shadow 1.25s ease .18s; }
.door-light { inset:12.6% 20.6% 11.3%;border-radius:0;z-index:8; }
.door-panel { inset:12.4% 20.3% 11.1%;border:0;border-radius:0;background:none;box-shadow:none;transform-origin:left center; }
.door-panel:before,.door-panel:after { content:none; }
.door-panel img { display:block;width:100%;height:100%;pointer-events:none; }
.door-portal-photo img { object-position:center 62%;transform:scale(1.10);transform-origin:center 65%;filter:none;transition:transform 1.25s cubic-bezier(.2,.65,.25,1) .7s; }
.door-stage.is-open .door-portal-photo img { transform:scale(1.32); }
.door-stage.is-open .door-portal-photo { z-index:7;inset:0;border-radius:12px;box-shadow:inset 0 0 0 1px #fff6d855,0 8px 18px #274e3733; }
.door-portal-photo:after { background:linear-gradient(transparent 75%,#fff0ce14);box-shadow:inset 0 0 14px #fff8e626; }
.arrival-card { padding:14px 12px;background:#fffaf0f5; }
.arrival-card small { font-size:10px;letter-spacing:.04em;color:#617e84; }
.arrival-card p,body.is-compact .arrival-card p { font-size:12px;line-height:1.65; }
.arrival-card h2,body.is-compact .arrival-card h2 { font-size:21px;margin:6px 0; }
.p6-cta { width:86%; }

/* A real paper layout instead of text placed over a raster frame. */
.p7-stage { overflow-y:auto;justify-content:flex-start;gap:16px;padding:calc(var(--safe-top) + var(--hud-h) + 26px) 18px calc(var(--safe-bottom) + 20px); }
.invite-card,body.is-compact .invite-card { width:100%;aspect-ratio:auto;max-height:none;flex:0 0 auto;background:#fff9ec;border:1px solid #cdb775;border-radius:85px 85px 18px 18px;box-shadow:0 14px 36px #234e6422,inset 0 0 0 7px #fff9ec,inset 0 0 0 8px #a9ced4; }
.invite-content { position:relative;padding:42px 20px 26px; }
.invite-seal { position:absolute;z-index:7;left:50%;top:-22px;transform:translateX(-50%);width:56px;height:56px;object-fit:contain; }
.invite-title,.invite-copy,.invite-footer { position:static; }
.invite-title small { font-size:10px;color:#67848c;letter-spacing:.15em; }
.invite-title h1,body.is-compact .invite-title h1 { font-size:23px;line-height:1.45;margin-top:5px; }
.invite-title h2,body.is-compact .invite-title h2 { font-size:18px;line-height:1.5;font-weight:500; }
.couple-photo-frame { position:relative;left:auto;right:auto;top:auto;height:clamp(170px,27svh,255px);margin:18px 0;border-radius:70px 70px 8px 8px; }
.couple-photo-frame img { object-position:center 37%; }
.couple-photo-frame:after { display:none; }
.invite-copy,body.is-compact .invite-copy { font-size:14px;line-height:1.9;color:#526d75; }
.invite-copy p { margin:12px 0; }
.invite-copy strong { color:#2c5668;font-weight:600; }
.invite-footer { margin-top:18px;padding-top:15px;border-top:1px solid #deccab;gap:6px; }
.invite-footer b { font-size:22px;font-weight:600;letter-spacing:.1em; }
.invite-footer span { font-size:13px;color:#657f85; }
.invite-chibi { display:none; }
.p7-cta { width:88%; }

/* Tickets and travel notes use the same warm paper, with readable type. */
.info-sky { background:radial-gradient(ellipse at 20% 5%,#edf9f7,transparent 60%),linear-gradient(#b5dfe9,#e5efdc); }
.info-scroll { padding-top:calc(var(--safe-top) + var(--hud-h) + 22px); }
.info-heading { margin-bottom:24px; }
.info-heading small { font-size:10px;letter-spacing:.12em; }
.info-heading p { font-size:13px;line-height:1.6; }
.timeline-cards,.destination-cards { gap:16px; }
.timeline-card,body.is-compact .timeline-card { padding:16px 12px;grid-template-columns:80px 1fr;gap:14px;border:1px solid #d8c7a4;border-radius:7px;background:#fffaf0; }
.timeline-card .date { border-radius:40px 40px 8px 8px; }
.timeline-card .date b { font-size:17px; }
.timeline-card .date span { font-size:11px; }
.timeline-card .copy { border-left:1px dashed #ceba96;padding-left:12px; }
.timeline-card .copy small { font-size:11px; }
.timeline-card .copy h3 { font-size:17px;line-height:1.4;margin:6px 0; }
.timeline-card .copy strong { font-size:15px; }
.timeline-card .copy p,body.is-compact .timeline-card .copy p { font-size:13px;line-height:1.7;margin-top:6px; }
.destination-card,body.is-compact .destination-card { padding:16px;border:1px solid #d8c7a4;background:#fffaf0;border-radius:10px; }
.destination-card header h3 { font-size:18px; }
.destination-card header span { font-size:11px; }
.destination-card .place { padding:14px 0;background:none;border-top:1px dashed #d8c7a4;border-radius:0; }
.destination-card .place b { font-size:13px;line-height:1.7; }
.destination-card .place strong { font-size:16px;line-height:1.6; }
.destination-actions a,.destination-actions button,body.is-compact .destination-actions a,body.is-compact .destination-actions button { min-height:60px;font-size:12px; }
.destination-contact { font-size:12px;line-height:1.7;color:#597581; }
.info-next { margin-top:22px;width:90%; }
.modal-card p,.modal-card li { font-size:14px; }

/* P8 should read as one compact itinerary rather than a tall scroll. */
.scene-p8 .info-scroll { padding-top:calc(var(--safe-top) + var(--hud-h) + 14px);padding-bottom:calc(var(--safe-bottom) + 10px); }
.scene-p8 .info-heading { margin-bottom:14px; }
.scene-p8 .info-heading h2 { font-size:21px;line-height:1.25;margin:2px 0; }
.scene-p8 .info-heading p { font-size:11px;line-height:1.45; }
.scene-p8 .timeline-cards { gap:10px; }
.scene-p8 .timeline-card { padding:10px;grid-template-columns:74px 1fr;gap:10px; }
.scene-p8 .timeline-card .date { border-radius:34px 34px 8px 8px;padding:6px 4px; }
.scene-p8 .timeline-card .date b { font-size:15px; }
.scene-p8 .timeline-card .date span { font-size:10px; }
.scene-p8 .timeline-card .copy { padding-left:10px; }
.scene-p8 .timeline-card .copy small { font-size:9px; }
.scene-p8 .timeline-card .copy h3 { font-size:15px;line-height:1.3;margin:3px 0; }
.scene-p8 .timeline-card .copy strong { font-size:13px; }
.scene-p8 .timeline-card .copy p { font-size:11px;line-height:1.45;margin-top:3px; }
.scene-p8 .info-next { margin-top:14px;width:86%;min-height:48px;font-size:14px; }

/* RSVP presentation only: the form, field names and business JS are unchanged. */
.scene-p10 .rsvp-bg { background:linear-gradient(#bddfe6,#e6ecd9); }
.scene-p10 .rsvp-shell { padding-left:12px;padding-right:12px; }
.scene-p10 .rsvp-heading h2,body.is-compact .scene-p10 .rsvp-heading h2 { font-size:23px; }
.scene-p10 .rsvp-heading p,body.is-compact .scene-p10 .rsvp-heading p { font-size:12px;line-height:1.5; }
.scene-p10 .rsvp-form { background:#fffaf0;border:1px solid #cbbd9e;border-radius:20px;scroll-padding-top:66px; }
.scene-p10 .rsvp-intro { padding:14px;background:#e9f2ef; }
.scene-p10 .rsvp-intro b,.scene-p10 .rsvp-intro p { font-size:13px;line-height:1.7; }
.scene-p10 .rsvp-intro span { font-size:11px; }
.scene-p10 .rsvp-steps { display:flex;gap:5px;padding:9px 8px;background:#fffaf0f5; }
.scene-p10 .rsvp-steps button,body.is-compact .scene-p10 .rsvp-steps button { flex:1;min-height:38px;font-size:11px; }
.scene-p10 .rsvp-part { margin:14px 8px;background:none; }
.scene-p10 .rsvp-part>h3 { font-size:17px;background:#287b98; }
.scene-p10 .field,body.is-compact .scene-p10 .field { margin:10px 8px;padding:12px;background:#fffdf8; }
.scene-p10 .field>b { font-size:13px;line-height:1.6;margin-bottom:8px; }
.scene-p10 .field input,.scene-p10 .field select,.scene-p10 .field textarea { font-size:16px;min-height:46px; }
.scene-p10 .choice-row span,.scene-p10 .choice-list span { min-height:50px;font-size:13px;line-height:1.6;padding:10px; }
.scene-p10 .choice-list span small { font-size:12px; }
.scene-p10 .choice-row input:focus-visible+span,.scene-p10 .choice-list input:focus-visible+span { outline:3px solid #287b98;outline-offset:2px; }
.scene-p10 .subhead { font-size:14px;margin:16px 12px 8px; }
.scene-p10 .info-box { font-size:13px;line-height:1.7;padding:12px; }
.scene-p10 .room-counters>label { font-size:13px;line-height:1.6; }
.scene-p10 .night-hint,.scene-p10 .room-total,.scene-p10 .date-warning,.scene-p10 .invalid-note { font-size:12px;line-height:1.6; }
.scene-p10 .submit-row { grid-template-columns:1fr;gap:12px; }
.scene-p10 .submit-row button { min-height:48px;font-size:15px; }
.scene-p10 .later-button { font-size:13px;min-height:44px; }
.confirm-block h3 { font-size:15px; }
.confirm-block p { font-size:13px; }

/* A quiet ending: people above the signature, actions below it. */
.p11-copy,body.is-compact .p11-copy { max-width:94%;margin-top:12px; }
.p11-copy p,body.is-compact .p11-copy p { font-size:14px;line-height:1.9;margin-bottom:14px; }
.p11-copy strong,body.is-compact .p11-copy strong { display:block;font-size:24px;line-height:1.65;font-weight:600;letter-spacing:.02em; }
.p11-friends,body.is-compact .p11-friends { width:min(74%,300px);bottom:220px; }
.p11-shade { background:linear-gradient(#211a2538,transparent 40%,#21192344 65%,#211923f0 88%); }
.p11-footer { display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;padding:0;text-align:center; }
.p11-footer small,.p11-footer h2,.p11-footer p { grid-column:1/-1; }
.p11-footer small { font-size:11px;letter-spacing:.05em; }
.p11-footer h2 { font-size:30px;font-weight:500;margin:0; }
.p11-footer p { font-size:13px;line-height:1.7;margin:0 0 6px; }
.p11-footer .game-button,.p11-footer .secondary-button { width:100%;min-height:46px;font-size:13px;padding:8px;background:#fff6dd12;color:#fff1d4;border:1px solid #ffe6b366;box-shadow:none;margin:0; }
.p11-footer .game-button b { display:none; }

@media(max-height:720px) {
 .p1-layout{gap:8px}.p1-note{padding:10px 16px}.p1-tv-wrap{width:min(100%,calc(45svh * .8))}
 .p2-layout{gap:10px}.gadget-card,body.is-compact .gadget-card{min-height:92px}.gadget-card img{width:40px;height:40px}.gadget-card.wide{min-height:76px}.p2-result{min-height:90px}
 .p3-note h2,body.is-compact .p3-note h2{font-size:17px}.p3-note,body.is-compact .p3-note{padding:10px 12px}
 .arrival-card{padding:10px}.arrival-card h2,body.is-compact .arrival-card h2{font-size:18px}.pink-door,body.is-compact .pink-door{bottom:8px}
 html body .scene-p8 .info-scroll{padding-top:calc(var(--safe-top) + var(--hud-h) + 8px);padding-bottom:calc(var(--safe-bottom) + 8px)}html body .scene-p8 .info-heading{margin-bottom:9px}html body .scene-p8 .info-heading h2{font-size:20px}html body .scene-p8 .info-heading p{font-size:10.5px;line-height:1.4}html body .scene-p8 .timeline-cards{gap:7px}html body .scene-p8 .timeline-card{padding:9px;grid-template-columns:70px 1fr;gap:9px}html body .scene-p8 .timeline-card .date{border-radius:32px 32px 7px 7px;padding:5px 3px}html body .scene-p8 .timeline-card .date b{font-size:14px}html body .scene-p8 .timeline-card .date span{font-size:9.5px}html body .scene-p8 .timeline-card .copy{padding-left:9px}html body .scene-p8 .timeline-card .copy small{font-size:8.5px}html body .scene-p8 .timeline-card .copy h3{font-size:14px;line-height:1.25;margin:2px 0}html body .scene-p8 .timeline-card .copy strong{font-size:12.5px}html body .scene-p8 .timeline-card .copy p{font-size:10.5px;line-height:1.4;margin-top:2px}html body .scene-p8 .info-next{margin-top:9px;min-height:46px;font-size:14px}
 .p11-copy,body.is-compact .p11-copy{margin-top:4px}.p11-copy p,body.is-compact .p11-copy p{font-size:13px;margin-bottom:8px}.p11-copy strong,body.is-compact .p11-copy strong{font-size:21px}
 .p11-friends,body.is-compact .p11-friends{width:min(65%,240px);bottom:198px}.p11-footer p{font-size:12px}.p11-footer h2{font-size:26px}
}
@media(max-width:370px) { .scene-p10 .field-grid,.scene-p10 .choice-row{grid-template-columns:1fr}.invite-content{padding-left:16px;padding-right:16px}.invite-title h1,body.is-compact .invite-title h1{font-size:21px}.p5-destination-card span{max-width:105px;line-height:1.6}.p5-destination-card div{grid-template-columns:1fr}.p5-destination-card span{grid-column:1;grid-row:auto;max-width:none}.p5-destination-card small{display:none} }
@media(prefers-reduced-motion:reduce) {
 *,*:before,*:after { animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important; }
}

/* Delivered hand-painted assets, September 2026. */
.gadget-card img,body.is-compact .gadget-card img{width:76px;height:76px;filter:drop-shadow(0 3px 3px #775e3414)}
.gadget-card.wide{grid-template-columns:82px 1fr}
.gadget-card{padding:10px 8px}
.scene-p5{--journey-art:url('../assets/backgrounds/p5-journey.webp')}
.time-tunnel .tunnel-ring,.time-tunnel .warp-line{display:none}
.time-tunnel .tunnel-core{opacity:.12;animation:journeyBreath 5s ease-in-out infinite}
.memory-item figcaption{display:inline-block;padding:2px 6px;border-radius:8px;background:#17446bc9;color:#fff8e5;text-shadow:none}
@keyframes journeyBreath{50%{opacity:.3;transform:translate(-50%,-50%) scale(1.15)}}
.drawer-front-art{position:absolute;z-index:4;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;transform-origin:center;transition:transform .5s ease-out,opacity .5s ease-out;filter:drop-shadow(0 2px 2px #382a2455)}
.drawer-interaction.is-open .drawer-front-art{transform:translate(-8px,24px) scale(1.06);opacity:.2}
.scene-p3.is-departing:after{animation-delay:.22s;animation-duration:.58s}
@media(max-height:720px){.gadget-card img,body.is-compact .gadget-card img{width:64px;height:64px}}

/* Keep the invitation's portrait proportions on tablets. */
@media(min-width:600px) and (orientation:portrait){
 .app-shell,.hud{max-width:430px;margin-inline:auto}
}

/* Mobile browser chrome can cover the last part of a scrollable chapter.
   Keep P2's result and CTA inside a generous scroll-safe tail. */
@media(max-width:430px){
 .scene-p2 .p2-layout {
  padding-top:calc(var(--safe-top) + var(--hud-h) + 16px);
  padding-bottom:max(96px,calc(var(--safe-bottom) + 96px));
  gap:10px;
  scroll-padding-top:calc(var(--safe-top) + var(--hud-h) + 12px);
  scroll-padding-bottom:max(96px,calc(var(--safe-bottom) + 96px));
  scrollbar-width:none;
 }
 .scene-p2 .p2-layout::-webkit-scrollbar { display:none; }
 .scene-p2 .section-heading { padding:10px 14px 11px; }
 .scene-p2 .section-heading small { font-size:10px;line-height:1.35; }
 .scene-p2 .section-heading p { font-size:10px;line-height:1.35; }
 .scene-p2 .section-heading h2 { font-size:19px;line-height:1.2;margin:3px 0 0; }
 .scene-p2 .gadget-grid { gap:7px;padding:11px 10px 17px; }
 .scene-p2 .gadget-card { min-height:108px;padding:7px 7px; }
 .scene-p2 .gadget-card img { width:60px;height:60px; }
 .scene-p2 .gadget-card b { font-size:13px;line-height:1.35; }
 .scene-p2 .gadget-card span { font-size:9px;line-height:1.35; }
 .scene-p2 .gadget-card.wide { min-height:82px;grid-template-columns:66px 1fr;padding:8px 13px 8px 10px; }
 .scene-p2 .gadget-card.wide img { width:60px;height:60px; }
 .scene-p2 .p2-result { min-height:84px;padding:9px 10px;grid-template-columns:44px 1fr; }
 .scene-p2 .p2-result img { width:40px;height:40px; }
 .scene-p2 .p2-result p { font-size:11px;line-height:1.5; }
 .scene-p2 .p2-result small { font-size:10px; }
 .scene-p2 .p2-summary { padding:8px 10px; }
 .scene-p2 .p2-summary small { font-size:9px; }
 .scene-p2 .p2-summary p { font-size:10.5px;line-height:1.45; }
 .scene-p2 .p2-next { width:88%;min-height:47px;font-size:14px;padding:9px 15px; }
}

/* The photo is a cinematic landscape window inside the tall invitation. */
.scene-p7 .p7-stage {
 padding-bottom:max(96px,calc(var(--safe-bottom) + 20px));
 scroll-padding-bottom:max(96px,calc(var(--safe-bottom) + 20px));
}
.scene-p7 .couple-photo-frame {
 height:auto;
 aspect-ratio:5 / 3;
}

@media(max-width:430px) and (max-height:900px){
 .scene-p7 .p7-stage {
  padding-top:calc(var(--safe-top) + var(--hud-h) + 20px);
  gap:12px;
 }
 .scene-p7 .invite-content { padding:34px 17px 22px; }
 .scene-p7 .invite-seal { width:52px;height:52px;top:-20px; }
 .scene-p7 .invite-title small { font-size:9px; }
 .scene-p7 .invite-title h1 { font-size:21px;line-height:1.35; }
 .scene-p7 .invite-title h2 { font-size:16px;line-height:1.4; }
 .scene-p7 .couple-photo-frame { margin:13px 0;border-radius:56px 56px 8px 8px; }
 .scene-p7 .invite-copy { font-size:12px;line-height:1.75; }
 .scene-p7 .invite-copy p { margin:8px 0; }
 .scene-p7 .invite-footer { margin-top:13px;padding-top:12px;gap:4px; }
 .scene-p7 .invite-footer b { font-size:20px; }
 .scene-p7 .invite-footer span { font-size:12px; }
 .scene-p7 .p7-cta { width:86%;min-height:45px;font-size:13px; }
}
