.preview-banner{margin-top:20px;padding:14px 20px;background:#eef2e7;border:1px dashed #b9c9ad;border-radius:13px;font-size:12px;line-height:1.6;text-align:center}.preview-banner a{display:inline-block;margin-left:12px}.booking-link{font-size:11px;font-weight:700;color:var(--green);text-decoration:none}.theme-anniversary{--paper:#fff5f3;--green:#78485d;--coral:#d68193;--mint:#f5e6eb;--line:#ead8de}.theme-anniversary .portrait-stage{background:#f2e2e4;border-color:#e5cbd3}.theme-anniversary .portrait-halo{background:#e5c0cc}.theme-tribute{--paper:#f5f6f2;--green:#536252;--coral:#8c9783;--mint:#e9eee7;--line:#dce2d7}.theme-tribute .portrait-stage{background:#e7ebe2;border-color:#d7decd;cursor:pointer;touch-action:pan-y}.theme-tribute .portrait-halo{background:#d5decf}.theme-tribute .deco{font-size:42px;color:#74816c}.theme-tribute .party-actions{grid-template-columns:repeat(3,1fr)}.theme-tribute .title-verb{font-size:.5em;font-weight:400;letter-spacing:0}.theme-tribute .hello-chip{transform:none}.submit-wish{justify-content:center!important;color:#fff!important}.submit-wish>span{font-size:14px!important}.theme-tribute .portrait-copy,.theme-tribute #portrait{max-width:100%;width:100%;object-fit:contain}.footer{align-items:center;text-align:center;justify-content:center;flex-wrap:wrap}.footer a{text-decoration:none}.wish-privacy-actions button{width:100%}.auth-dialog .button{background:var(--green);color:#fff;border:0;border-radius:12px;padding:13px 18px;font-weight:700}.auth-dialog .text-button{background:none;border:0;display:block;margin:12px auto;color:var(--muted)}.auth-dialog a{font-weight:700}.theme-tribute #confetti{display:block}
@media(max-width:740px){.header-right{gap:10px}.booking-link{font-size:10px;max-width:65px;line-height:1.4;text-align:right}.date-chip{padding:7px 10px;font-size:10px}.theme-tribute .party-action{font-size:10px;gap:4px;padding:13px 4px}.theme-tribute .party-action>span{font-size:16px}.header .brand{font-size:17px;gap:7px}.header .brand-icon{font-size:21px}.wall-bottom{display:flex!important;flex-wrap:nowrap!important;justify-content:space-between;gap:6px}.wall-bottom button{white-space:nowrap;flex-shrink:0}.wall-bottom #wall-page-status{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.footer{flex-direction:column}}
.auth-dialog{max-width:430px}.auth-dialog h2{font-size:25px}
h1{overflow-wrap:anywhere}
.counter-origin-note{font-size:10px;line-height:1.6;color:var(--muted);margin:11px 0 0;text-align:center}.counter-origin-note[hidden]{display:none}.wish-source{display:block;font-size:9px;letter-spacing:.02em;color:var(--muted);text-align:right;margin-top:7px}

/* Original Birthday scene geometry and artwork. */
.theme-birthday .portrait-stage{background:#f5ead9;border-color:#ecdfcc}
.theme-birthday .portrait-halo{background:#efd5ad}
.theme-birthday .portrait-halo:before{border-color:#dcbf94}
.theme-birthday .deco-two{color:#c58142}
.theme-tribute .hello-chip>span{font-size:inherit}
.party-action[data-prop]{touch-action:none;user-select:none}
.profile-sync-status{font-size:10px!important;line-height:1.5!important;margin:10px 0 0!important}

/* Stable-height number wheels, loaded portraits and a private bottom sheet. */
.rolling-count{display:inline-flex;align-items:center;vertical-align:baseline;font-variant-numeric:tabular-nums;white-space:nowrap}
.count-digit{display:inline-block;position:relative;height:1em;width:.62em;overflow:hidden;line-height:1}
.count-wheel{display:block;line-height:1;will-change:transform}
.count-wheel>span{display:block;height:1em;line-height:1;text-align:center}
.count-separator{display:inline-block;width:.32em}
.portrait-loader{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:var(--paper);padding:35px;text-align:center}
.theme-birthday .portrait-loader{background:#f5ead9}.theme-anniversary .portrait-loader{background:#f2e2e4}.theme-tribute .portrait-loader{background:#e7ebe2}
.portrait-loader[hidden]{display:none}.portrait-loader strong{max-width:280px;font-size:14px;line-height:1.7;color:var(--green)}
.loader-art{display:grid;place-items:center;width:108px;height:108px;border-radius:50%;background:#fffdf788;font-size:55px;animation:loader-breathe 1.9s ease-in-out infinite}
.loader-art svg{width:94px;height:94px}.cake-flames{animation:flame-glow 1.1s ease-in-out infinite alternate}
.loader-dots{display:flex;gap:7px}.loader-dots i{width:5px;height:5px;border-radius:50%;background:var(--green);animation:loader-dot 1.2s ease-in-out infinite}.loader-dots i:nth-child(2){animation-delay:.16s}.loader-dots i:nth-child(3){animation-delay:.32s}
.portrait-images{transition:opacity .25s ease}.is-loading .portrait-images{opacity:0}.is-loading{cursor:wait!important}
#reaction-byline{display:block;margin-top:5px;font-size:10px;font-weight:500;color:var(--green);overflow-wrap:anywhere}#reaction-byline[hidden]{display:none}
.event-booking{display:flex;align-items:center;gap:16px;padding:20px 24px;margin-top:28px;border:1px solid var(--line);border-radius:20px;background:var(--mint)}
.event-booking>span{font-size:32px}.event-booking>div{flex:1}.event-booking strong{font-size:15px}.event-booking p{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.5}
.event-booking>a,.profile-booking{display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;color:#fff;background:var(--green);border-radius:12px;font-size:12px;font-weight:700;padding:14px 18px;white-space:nowrap}
dialog.visitor-profile-panel{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:none;height:56dvh;min-height:390px;max-height:85dvh;padding:12px 24px max(24px,env(safe-area-inset-bottom));border:1px solid var(--line);border-bottom:0;border-radius:28px 28px 0 0;background:var(--paper);box-shadow:0 -12px 60px #30261d22;overflow-y:auto;overscroll-behavior:contain;color:var(--ink)}
.visitor-profile-panel::backdrop{background:#30261d55;backdrop-filter:blur(3px)}
.sheet-handle{height:4px;width:44px;background:#cfc7bb;border-radius:20px;margin:0 auto 22px}.profile-sheet-content{max-width:520px;margin:0 auto}
.profile-panel-heading h2{font-size:22px;line-height:1.4}.profile-destination{font-size:14px;line-height:1.8;margin:14px 0 8px}.profile-destination strong{color:var(--green)}
.profile-private-note{color:var(--muted);font-size:11px;line-height:1.8;margin:0 0 18px}.profile-sheet-content label{display:block;font-size:12px;font-weight:700;margin-bottom:8px}
.profile-name-row{display:flex;align-items:stretch;gap:10px}.profile-name-row input{min-width:0;font-size:16px}.profile-name-row button{flex:0 0 auto;padding:12px 18px;white-space:nowrap}.profile-sheet-content .form-error{margin-top:9px}
.profile-booking{display:flex;justify-content:space-between;margin-top:20px;padding:16px 18px;font-size:15px}.profile-sheet-content .visitor-summary{margin-top:16px}
@keyframes loader-breathe{50%{transform:scale(1.04)}}@keyframes flame-glow{to{opacity:.55}}@keyframes loader-dot{50%{opacity:.3;transform:translateY(-3px)}}
@media(max-width:740px){.event-booking{flex-wrap:wrap;gap:12px;padding:18px}.event-booking>a{width:100%;min-height:44px}.event-booking strong{font-size:14px}.event-booking p{font-size:11px}.profile-panel-heading h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){.loader-art,.cake-flames,.loader-dots i{animation:none}.portrait-images{transition:none}}
.pulse-card{border-bottom:1px solid var(--line);margin:0 0 24px;padding:0 0 20px}.pulse-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.pulse-card h3{font:400 22px/1.3 Georgia,serif;color:var(--green);margin:9px 0 0;letter-spacing:-.4px}.pulse-mark{color:var(--coral);font-size:27px}.pulse-periods{display:inline-flex;gap:4px;border:1px solid var(--line);border-radius:20px;padding:3px;margin:14px 0 17px;background:var(--paper)}.pulse-periods button{border:0;background:none;color:var(--muted);font-size:10px;font-weight:700;padding:6px 12px;border-radius:15px}.pulse-periods button[aria-pressed=true]{background:var(--green);color:#fff}.pulse-bars{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));align-items:end;gap:4px;height:82px;border-bottom:1px solid var(--line);padding:0 1px 4px}.pulse-bar{height:var(--bar-height,4%);width:100%;min-height:3px;border:0;padding:0;border-radius:4px 4px 1px 1px;background:#b3c7b6;transition:height .5s ease,background .2s}.pulse-bar[data-level="0"]{background:var(--line)}.pulse-bar[data-level=high]{background:var(--green)}.pulse-bar[data-level=peak]{background:var(--coral)}.pulse-bar:focus-visible{outline-offset:2px}.pulse-axis{display:flex;justify-content:space-between;gap:7px;font-size:8px;color:var(--muted);margin:8px 0 12px}.pulse-summary{font-size:11px;color:var(--green);line-height:1.6;margin:0;min-height:18px}.pulse-footnote{font-size:9px;color:var(--muted);margin:5px 0 0}.public-socials{border-top:1px solid var(--line);margin-top:30px;padding-top:28px;text-align:center}.public-socials h2{font:400 29px/1.2 Georgia,serif;color:var(--green);margin:10px 0 20px}.social-links{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.social-links a{display:flex;align-items:center;gap:12px;min-height:62px;max-width:100%;padding:12px 16px;border:1px solid var(--line);background:#fffdf7;border-radius:15px;color:var(--green);text-decoration:none;text-align:left;transition:background .15s}.social-links a:hover{background:var(--mint)}.social-links svg{width:22px;height:22px;flex:none}.social-links a>span:first-of-type{font-size:11px;font-weight:700;min-width:0}.social-links small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:5px;overflow-wrap:anywhere}.social-links a>span:last-child{font-size:13px;margin-left:auto}.theme-anniversary .pulse-bar[data-level=low]{background:#d5b1c1}.theme-tribute .pulse-bar[data-level=low]{background:#b2bfab}
@media(max-width:740px){.social-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.social-links a{padding:11px 12px;gap:8px}.social-links svg{width:19px;height:19px}.social-links a>span:last-child{display:none}.pulse-card h3{font-size:23px}}

.theme-marriage{--paper:#fff8ef;--green:#765039;--coral:#c77b69;--mint:#f7ebdc;--line:#e8d7c5}.theme-marriage .portrait-stage,.theme-marriage .portrait-loader{background:#f5e6d2;border-color:#e7ceb4}.theme-marriage .portrait-halo{background:#e8cdab}.theme-marriage .portrait-halo:before{border-color:#cba77b}.theme-marriage .deco-two{color:#b88750}.theme-marriage .pulse-bar[data-level=low]{background:#d4b796}
/* Custom portrait buttons should not flash the browser touch overlay. */
.portrait-stage,.portrait-stage *{-webkit-tap-highlight-color:transparent}
