.ticket-verification{margin:24px 0 18px}.ticket-qr{max-width:220px;margin:auto;background:#fff}.ticket-qr:empty{display:none}.ticket-qr svg{display:block;width:100%;height:auto}.ticket-qr-hint{font-size:9px!important;line-height:1.6!important;margin:12px auto!important;max-width:240px}.ticket-proof-link{font-size:9px;text-decoration:underline;text-underline-offset:4px;color:var(--forest)}.ticket-verification+.ticket-ref{margin-top:10px}
.travel-section .reveal{max-width:900px}.travel-map{position:relative;max-width:850px;margin:35px auto 23px;background:var(--theme-e7e3d4,#e7e3d4);border:1px solid color-mix(in srgb,var(--theme-b99555,#b99555) 33.333%,transparent);overflow:hidden}.travel-map-placeholder{min-height:250px;padding:45px 30px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 50%,var(--theme-fdf8e8,#fdf8e8),var(--theme-e6dfca,#e6dfca));position:relative}.travel-map-placeholder:before{content:'';position:absolute;inset:12px;border:1px solid color-mix(in srgb,var(--theme-b99555,#b99555) 18.824%,transparent);pointer-events:none}.travel-map-placeholder>.icon{width:35px;height:35px;color:var(--gold);margin-bottom:20px}.travel-map-placeholder h3{font-size:40px;margin:14px 0 10px}.travel-map-placeholder p{font-size:12px;color:var(--theme-8a846b,#8a846b);max-width:500px;white-space:pre-line}.travel-photo{width:100%;max-height:330px;object-fit:cover}.travel-map-frame iframe{display:block;width:100%;height:330px;border:0}.travel-directions{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.travel-directions .button{font-size:10px}.travel-apple{color:var(--forest);border-color:color-mix(in srgb,var(--theme-b99555,#b99555) 50.196%,transparent)}.travel-copy{padding:12px!important;color:var(--theme-9a8051,#9a8051)}.is-unavailable{opacity:.45;cursor:default;pointer-events:none}.travel-facts{display:grid;grid-template-columns:repeat(3,1fr);margin:30px 0 0;border:1px solid color-mix(in srgb,var(--theme-b99555,#b99555) 25.098%,transparent)}.travel-facts article{padding:27px 15px}.travel-facts article+article{border-left:1px solid color-mix(in srgb,var(--theme-b99555,#b99555) 25.098%,transparent)}.travel-facts h3,.travel-facts a{display:block;font:25px var(--serif);margin-top:12px;overflow-wrap:anywhere}.travel-facts .eyebrow{font-size:7px;letter-spacing:1px}.travel-facts a{text-decoration:underline;text-underline-offset:5px}.travel-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:left;margin-top:25px}.travel-notes:empty{display:none}.travel-notes h4{font:italic 25px var(--serif);margin:0 0 10px}.travel-notes p{font-size:11px;color:#85816e;white-space:pre-line}.travel-pending{font-size:10px!important;color:var(--theme-9a917a,#9a917a)!important;margin-top:25px!important}.travel-section .ornament-frame{z-index:1}
.ornament-trigger{display:block;position:absolute;border:0;padding:0;background:none;color:inherit;pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent}.ornament-trigger:disabled{cursor:default;opacity:1}.ornament-trigger>.surprise-art{position:static!important;display:block;width:100%!important;height:auto!important;max-width:100%!important;animation:none!important;rotate:none!important;scale:none!important;transform:none!important;pointer-events:none}.ornament-trigger:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:10px}.ornament-frame:not(.on-stage) .ornament-trigger{animation-play-state:paused!important}.ornament-trigger.is-opening{animation:parcel-tap .65s ease!important}
.surprise-dialog{max-width:450px;padding:45px 32px 30px;overflow:hidden}.surprise-stage{height:230px;position:relative;margin:10px auto 0;display:grid;place-items:center}.surprise-title{font:italic 43px/1.05 var(--serif);margin:18px 0!important}.surprise-message{max-width:330px;font-size:13px!important;line-height:1.9!important;margin:0 auto 24px!important;white-space:pre-line}.surprise-footnote{display:block;font:20px var(--script);margin-top:21px;color:var(--theme-aa8c52,#aa8c52)}.surprise-again{min-width:210px}.gift-reveal{position:relative;width:180px;height:180px;perspective:600px;margin-top:35px}.gift-box{position:absolute;left:20px;right:20px;bottom:12px;height:112px;background:linear-gradient(110deg,var(--theme-467452,#467452),var(--theme-123e2d,#123e2d) 70%,var(--theme-0b2d22,#0b2d22));border:1px solid var(--theme-bba066,#bba066);box-shadow:0 15px 20px color-mix(in srgb,var(--theme-143328,#143328) 18.039%,transparent);z-index:3}.gift-box:after{content:'';position:absolute;left:calc(50% - 13px);width:26px;height:100%;background:linear-gradient(90deg,var(--theme-b78e4e,#b78e4e),var(--theme-efd398,#efd398),var(--theme-bd975b,#bd975b))}.gift-box i{position:absolute;inset:10px;border:1px solid color-mix(in srgb,var(--theme-d6ba75,#d6ba75) 16.471%,transparent)}.gift-lid{position:absolute;left:14px;right:14px;height:30px;bottom:115px;background:linear-gradient(110deg,var(--theme-547b54,#547b54),var(--theme-183e2d,#183e2d));border:1px solid var(--theme-bba066,#bba066);z-index:5;transform-origin:0 100%;animation:gift-lid-open 1.5s .15s cubic-bezier(.2,.7,.2,1) forwards}.gift-lid:before{content:'';position:absolute;left:calc(50% - 13px);height:100%;width:26px;background:linear-gradient(90deg,var(--theme-bd9758,#bd9758),var(--theme-f4dda6,#f4dda6),var(--theme-b68b48,#b68b48))}.gift-bow{position:absolute;width:35px;height:24px;bottom:25px;left:calc(50% - 17px);border-radius:45%;background:var(--theme-c5a263,#c5a263)}.gift-bow:before,.gift-bow:after{content:'';position:absolute;width:48px;height:28px;border:8px solid var(--theme-d6b879,#d6b879);border-radius:60% 60% 20% 60%;bottom:7px;left:-28px;rotate:25deg}.gift-bow:after{left:18px;rotate:145deg}.gift-letter{position:absolute;left:36px;right:36px;bottom:35px;height:115px;display:grid;place-content:center;background:var(--theme-fff8e6,#fff8e6);border:1px solid color-mix(in srgb,var(--theme-b99555,#b99555) 43.922%,transparent);color:var(--theme-b99555,#b99555);font-size:40px;z-index:2;animation:gift-letter-rise 1.6s .3s ease-out forwards}.gift-glow{position:absolute;inset:-70px;background:radial-gradient(color-mix(in srgb,var(--theme-e8c985,#e8c985) 33.333%,transparent),transparent 60%);animation:star-radiance 3s infinite}.gift-sparkles{position:absolute;inset:0;z-index:6;pointer-events:none}.gift-sparkles i{position:absolute;left:5%;top:30%;font-style:normal;font-size:22px;color:var(--theme-b99555,#b99555);opacity:0;animation:gift-sparkle 1.8s .55s ease-out forwards}.gift-sparkles i:nth-child(2){left:75%;top:10%;animation-delay:.7s}.gift-sparkles i:nth-child(3){left:95%;top:55%;animation-delay:.9s}.gift-sparkles i:nth-child(4){left:-10%;top:75%;animation-delay:1.1s}.gift-sparkles i:nth-child(5){left:40%;top:-5%;animation-delay:1s}.stocking-reveal{width:116px;max-height:215px;object-fit:contain;transform-origin:46% 0;animation:stocking-wiggle 1.3s ease-in-out}.stocking-wish-star{position:absolute;color:var(--theme-c39b52,#c39b52);font-size:40px;left:58%;top:52%;animation:stocking-star-out 1.5s .3s ease-out both}.stocking-surprise .surprise-stage{height:230px;margin-top:0}.reveal-message .surprise-title,.reveal-message .surprise-message{animation:surprise-text-in .9s .6s both}body.effects-paused .gift-lid{animation:none;transform:translate(-35px,-50px) rotate(-25deg)}body.effects-paused .gift-letter{animation:none;transform:translateY(-95px)}body.effects-paused .surprise-dialog *{animation-duration:.01ms!important;animation-delay:0s!important}
.soundtrack-dialog{max-width:450px;padding:45px 30px 28px}.soundtrack-dialog h2{font-size:43px;line-height:1.05;margin:20px 0 25px}.track-list{border-top:1px solid color-mix(in srgb,var(--theme-b99555,#b99555) 25.098%,transparent);text-align:left}.track-choice{width:100%;display:flex;align-items:center;justify-content:space-between;gap:15px;background:none;border:0;border-bottom:1px solid color-mix(in srgb,var(--theme-b99555,#b99555) 18.824%,transparent);padding:17px 12px;text-align:left;color:var(--forest)}.track-choice strong{display:block;font:25px var(--serif)}.track-choice small{display:block;font-size:8px;color:var(--theme-979078,#979078);margin-top:5px}.track-choice i{font-size:23px;font-style:normal;color:var(--gold)}.track-choice.selected{background:color-mix(in srgb,var(--theme-e5dcc6,#e5dcc6) 34.118%,transparent);box-shadow:inset 2px 0 var(--theme-b99555,#b99555)}.track-status{font-size:10px!important;color:var(--theme-a28650,#a28650)!important;margin:20px 0!important}.soundtrack-note{font-size:8px!important;line-height:1.8!important;color:#9b9683!important;margin:19px 0 0!important}.play-cheer{width:100%}.music-menu-button{min-height:39px;white-space:nowrap}.soundtrack-dialog .dialog-close,.surprise-dialog .dialog-close{font-size:20px}
@keyframes gift-lid-open{0%,12%{transform:none}100%{transform:translate(-35px,-65px) rotate(-32deg)}}@keyframes gift-letter-rise{0%,15%{transform:none}100%{transform:translateY(-98px) rotate(4deg)}}@keyframes gift-sparkle{0%{opacity:0;transform:translateY(25px) scale(.5)}45%{opacity:1}100%{opacity:0;transform:translateY(-55px) scale(1.15)}}@keyframes stocking-wiggle{0%,100%{transform:rotate(0)}20%{transform:rotate(-15deg)}45%{transform:rotate(14deg)}70%{transform:rotate(-8deg)}}@keyframes stocking-star-out{0%{opacity:0;transform:translate(-30px,45px) scale(.4)}45%{opacity:1}100%{opacity:.8;transform:translate(10px,-35px) rotate(30deg) scale(1.1)}}@keyframes surprise-text-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes parcel-tap{0%,100%{transform:scale(1)}45%{transform:scale(1.12) rotate(-4deg)}}
@media(max-width:760px){.travel-map-placeholder{min-height:225px;padding:35px 25px}.travel-map-placeholder h3{font-size:32px}.travel-map-frame iframe{height:270px}.travel-directions{gap:10px}.travel-directions .button{font-size:9px;min-height:45px;padding:10px 15px}.travel-facts{grid-template-columns:1fr;margin-top:23px}.travel-facts article{padding:20px}.travel-facts article+article{border-left:0;border-top:1px solid color-mix(in srgb,var(--theme-b99555,#b99555) 25.098%,transparent)}.travel-facts h3,.travel-facts a{font-size:26px;margin-top:8px}.travel-notes{grid-template-columns:1fr;gap:20px}.surprise-dialog{max-width:calc(100vw - 28px);padding:40px 24px 25px}.surprise-stage{height:215px}.surprise-title{font-size:38px!important}.surprise-message{font-size:12px!important}.soundtrack-dialog{max-width:calc(100vw - 28px);padding:40px 22px 25px}.soundtrack-dialog h2{font-size:38px}.track-choice strong{font-size:22px}.track-choice{padding:14px 10px}.ambient-controls .music-menu-button{position:fixed;right:59px;bottom:145px;min-height:32px;font-size:8px}.ticket-qr{max-width:200px}.ticket-qr-hint{font-size:8px!important}}

.surprise-dialog{overflow-x:hidden;overflow-y:auto}

/* Keep every floating control in one layout; fixed child offsets overlapped on phones. */
.ambient-controls>.motion-switch{position:static!important;inset:auto!important;flex-shrink:0}
@media(max-width:760px){
  .ambient-controls,.opened .ambient-controls{display:grid;grid-template-columns:repeat(2,minmax(40px,1fr));width:128px;gap:8px;align-items:center;justify-items:end;right:max(12px,env(safe-area-inset-right));bottom:calc(100px + env(safe-area-inset-bottom))}
  .ambient-controls>.motion-switch{grid-column:1/-1;width:100%;min-height:36px;padding:7px 9px;font-size:9px;line-height:1.4;white-space:nowrap}
  .ambient-controls>.music-menu-button{grid-row:2}
  .ambient-controls>.round-button{width:40px;height:40px;min-width:40px;margin:0}
}
