/* Release 13. Original visual identity, deliberate layout and readable typography. */
:root{--nav-height:96px;--body-size:17px;--detail-size:15px}
html{scroll-padding-top:calc(var(--nav-height) + 24px)}
body{font-size:var(--body-size);line-height:1.8}
[hidden]{display:none!important}
a,button,input,select,textarea,summary{touch-action:manipulation}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #af854a;outline-offset:4px}
:where(#serata,#organizzazione,#regalo,#rsvp,#main){scroll-margin-top:calc(var(--nav-height) + 24px)}
#experience-header{position:sticky;top:0;z-index:50;max-width:none;width:100%;min-height:88px;background:#4b2d45fa;backdrop-filter:blur(14px);box-shadow:0 5px 24px #2d172e20;border-bottom:1px solid #d9c39950}
#experience-header nav{display:flex;align-items:center;gap:22px;font-size:15px;color:#f1e7ee}
#experience-header nav a{display:flex;align-items:center;min-height:48px;padding:4px 1px;border-bottom:2px solid transparent;white-space:nowrap}
#experience-header nav a[aria-current]{color:#f1d8a7;border-color:#dfc395}
#experience-header .nav-rsvp{font-size:14px;min-height:46px}
#experience-dock{display:none!important}
#scroll-progress{z-index:60}
#preview-notice{font-size:14px;line-height:1.7;color:#fff6e8;padding:9px 5%;background:#68465f}
/* The sphere is a real grid item, never an overlay on text or later sections. */
.opening-scene{isolation:isolate;overflow:clip}
.opening-scene .hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:24px 4%;min-height:0;padding:64px 6% 0;overflow:hidden}
.opening-scene .hero-copy,.opening-scene:has(.personal-welcome:not([hidden])) .hero-copy{width:auto;max-width:100%;padding-bottom:42px;margin:0;grid-column:1;grid-row:1}
.opening-scene .hero h1{font-size:clamp(65px,7.1vw,110px);line-height:1.02;letter-spacing:-2px}
.opening-scene .hero-bottom{grid-column:1/-1;grid-row:2;margin:0;font-size:12px;color:#ecdeea;position:relative}
.disco-stage{position:relative;top:auto;height:auto;min-width:0;min-height:0;width:100%;aspect-ratio:1/1.26;max-height:740px;margin:0;z-index:0;grid-column:2;grid-row:1;overflow:clip;pointer-events:none;background:radial-gradient(ellipse,#87537125,transparent 68%)}
.disco-stage .hero-art,.opening-scene:has(.personal-welcome:not([hidden])) .hero-art{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-width:none;transform:none;transform-origin:center}
.disco-stage .disco-ball{left:3%;top:14%;width:94%;max-width:none;transform:rotate(calc(-12deg + var(--scroll-turn,0deg)));filter:drop-shadow(12px 18px 20px #301a2d55)}
.disco-stage .disco-wire{left:50%;top:0;height:18%}
.disco-stage .big-thirty{top:52%;left:1%;font-size:clamp(140px,17vw,270px);line-height:1;letter-spacing:-13px;opacity:1}
.disco-stage .art-caption{top:1%;right:5%;left:auto;font-size:11px;line-height:1.8;letter-spacing:1.4px;text-align:right;color:#ecdbbc}
.disco-stage .art-bottom{bottom:3%;left:3%;right:3%;font-size:11px;line-height:1.6;letter-spacing:.8px;color:#f1dec4}
.disco-stage .star-one{left:0;top:22%;font-size:46px}.disco-stage .star-two{right:1%;top:43%}.disco-stage .star-three{right:8%;top:72%;font-size:46px}
.opening-scene .hero-description{font-size:18px;color:#f7ecef;line-height:1.85;font-weight:500;text-shadow:none;max-width:440px}
.opening-scene .hero-date{font-size:13px;letter-spacing:.6px;max-width:none;color:#f1dbb3;gap:10px;font-weight:600;text-shadow:none}
.opening-scene .evening{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:8%;min-height:0;background:#4b2d45;padding-top:86px;padding-bottom:86px}
.opening-scene .section-intro,.opening-scene .evening-content{width:100%;max-width:none}
.opening-scene .evening-content{padding-top:8px;text-shadow:none}
.opening-scene .evening h2{font-size:clamp(44px,5vw,72px)}
.opening-scene .evening-content>p:not(.lead){font-size:18px!important;line-height:1.85;color:#f1e4ed;text-shadow:none;font-weight:400;max-width:none}
.opening-scene .lead{font-size:24px;line-height:1.5;text-shadow:none;font-weight:400}
.chapter-strip,.logistics,.rsvp-section,.gift{position:relative;z-index:1}
.chapter-strip small{font-size:12px}.chapter-strip>div{line-height:1.2}
.logistics-heading>p,.logistic-card p,.rsvp-copy>p:not(.eyebrow),.gift-heading>p,.entry-copy>p:not(.eyebrow),.entry-card>p:not(.eyebrow){font-size:17px!important;line-height:1.8}
.logistics-heading>p{color:#f0e1ec;max-width:380px}.logistic-card p{color:#eee0eb}
.card-note,.logistics-footnote{font-size:15px!important;color:#e0d1dc!important;line-height:1.8}
.logistic-card .card-note{align-self:stretch}
.personal-welcome>small{font-size:14px;color:#e6d8e3}.personal-welcome>span{font-size:12px}
.eyebrow{font-size:12px;line-height:1.8}.fact-label{font-size:12px!important;letter-spacing:1.5px}
.event-facts strong{font-size:17px!important}.event-facts small{font-size:15px!important;line-height:1.85;color:#eadbe6!important}
.event-fact .fact-action{font-size:14px!important;line-height:1.7}
.ribbon{font-size:12px!important;line-height:1.6;letter-spacing:1.3px!important}
.entry-card{max-width:510px}.entry-card h2{font-size:40px}
.entry-card label,.form-card label,.form-card legend{font-size:17px!important;line-height:1.6;color:#4b2d45}
.form-card .form-subtitle,.form-card label>small,.field-hint,.form-bottom-note,.entry-help,.required-legend{font-size:15px!important;line-height:1.8!important;color:#705d6a!important}
.entry-topline>span,.entry-date-day,.entry-date-place{font-size:15px!important}.entry-date-day>span,.entry-date-place>small{font-size:15px!important}
.form-card{padding:36px;min-width:0}.form-card .form-step h3{font-size:38px;line-height:1.2}
.form-card input:not([type=radio]):not([type=checkbox]),.form-card select,.form-card textarea,.entry-card input{font-size:17px!important;min-height:52px;line-height:1.5}
.form-card input::placeholder,.form-card textarea::placeholder,.entry-card input::placeholder{color:#7c6c76}
.form-card .choice span{font-size:16px!important;min-height:54px;line-height:1.5;white-space:normal;padding:11px 9px;text-align:center}
.form-card .check-label{font-size:16px!important;line-height:1.8!important;gap:12px}
.check-label input[type=checkbox]{width:20px;height:20px;margin-top:4px}
.form-card .optional{font-size:12px!important;letter-spacing:.6px;color:#735e6a}
.form-top,#rsvp-scope{font-size:12px!important;color:#735c3e}
#rsvp #next-button,#rsvp #companion-confirm,.entry-card button{font-size:16px!important;min-height:54px}
#rsvp .back-button{font-size:15px}.form-actions{gap:20px}
.companion-verify-notice{font-size:16px;line-height:1.7;border:0;background:none;padding:0;margin:0 0 22px;color:#614756}
#companion-message,#entry-feedback,#rsvp #form-error{font-size:16px!important;line-height:1.75}
#companion-message{margin-top:15px}#companion-confirm.is-verified{opacity:1!important}
.participant-panel{padding:24px 22px 4px}.person-heading h4{font-size:18px}
.transfer-place-selected,.transfer-place-field+.transfer-place-feedback,.transfer-place-feedback{font-size:16px!important;line-height:1.75}
.transfer-search-button{font-size:15px;min-height:48px}
.transfer-place-selected a{color:#5d3a52;text-decoration:underline;text-underline-offset:3px}
.name-suggestions>button{font-size:16px!important;line-height:1.7;min-height:52px}
.transfer-place-selected:not(:empty){margin-top:16px;background:#e5e9dc;border-color:#647b54}
.response-summary>div{grid-template-columns:125px minmax(0,1fr);font-size:16px!important;line-height:1.8}
.response-summary dt{color:#705740}.response-summary dd{color:#4b2d45}
.photo-permissions>p,.photo-terms-details p,.photo-terms-details label{font-size:16px!important;line-height:1.85}
.photo-terms-details{border:1px solid #d6c6b3;border-radius:3px;background:#fbf7f0;padding:0 18px;margin-top:18px}
.photo-terms-details summary{padding:17px 0;min-height:54px;font-size:16px;font-weight:600;cursor:pointer;line-height:1.7}
.photo-terms-details a{overflow-wrap:anywhere;text-decoration:underline}.photo-terms-details small{font-size:14px;display:block}
.gift-idea-option span{font-size:16px}.gift-idea-option{min-height:54px!important}
.wish-content p,.wish-status,.wish-category,.gift-legend{font-size:14px!important;line-height:1.7}
.wish-number{font-size:12px}.wish-content h3{font-size:30px;line-height:1.18;min-height:0}
.wish-content p{color:#705e69;min-height:0}.wish-content{padding:23px}
.gift-privacy{font-size:15px!important;line-height:1.8!important}.gift-feedback{font-size:16px}
.brand-legal p,.brand-legal button,.brand-byline p{font-size:14px!important;line-height:1.8}.brand-legal small,.brand-byline>div{font-size:13px!important}
.legal-dialog p{font-size:16px}.legal-dialog h3{font-size:18px}
.success-state>p:not(.eyebrow){font-size:17px;line-height:1.8;color:#705469}
#gift-matches p{font-size:16px;line-height:1.8}#gift-matches h4{font:32px/1.2 var(--serif)}
#photo-album{font-size:17px}#photo-album p,#photo-album label{font-size:16px;line-height:1.8}
@media(max-width:1000px){#experience-header{padding:14px 4%;gap:14px}#experience-header nav{gap:15px;font-size:14px}.opening-scene .hero{padding-top:42px;column-gap:3%}.opening-scene .hero h1{font-size:72px}.opening-scene .evening{gap:6%}.rsvp-section{gap:5%}.form-card{padding:29px 23px}.form-card .choice span{font-size:15px!important}.logistic-card{padding:28px 22px}.logistics-grid{grid-template-columns:1fr;grid-template-rows:none}.logistic-card{display:flex;flex-direction:column;grid-row:auto}.logistic-card+.logistic-card{border-left:0;border-top:1px solid var(--line)}.card-note{width:100%}}
@media(max-width:700px){
 :root{--nav-height:134px;--body-size:17px}body{padding-bottom:0}
 #experience-header{padding:10px 5% 0;display:grid;grid-template-columns:1fr auto;gap:4px 12px;min-height:0}
 #experience-header .wordmark{font-size:26px}#experience-header .nav-rsvp{min-height:44px;padding:8px 12px;font-size:13px;white-space:nowrap}
 #experience-header nav{grid-column:1/-1;grid-row:2;gap:19px;display:flex;overflow-x:auto;max-width:100%;font-size:14px;padding:0 0 3px;scrollbar-width:thin;overscroll-behavior-inline:contain}
 #experience-header nav a{flex:none;min-height:48px}
 #preview-notice{font-size:13px;padding:8px 5%}
 .opening-scene .hero,.opening-scene:has(.personal-welcome:not([hidden])) .hero{display:flex;flex-direction:column;gap:0;min-height:0;padding:32px 6% 0}
 .opening-scene .hero-copy,.opening-scene:has(.personal-welcome:not([hidden])) .hero-copy{width:100%;padding:0;margin:0}
 .opening-scene .hero h1{font-size:clamp(58px,14.5vw,85px);line-height:1.02;letter-spacing:-1.8px;margin-bottom:26px}
 .opening-scene .hero-description{font-size:18px;max-width:100%;line-height:1.85}
 .hero-caption-mobile{display:block;font-size:16px!important;line-height:1.8;max-width:none;text-shadow:none;font-weight:400}
 .birthdate-mobile{font-size:15px;font-weight:500;text-shadow:none;margin:16px 0 24px}
 .opening-scene .hero-date{font-size:13px;max-width:100%;gap:10px;line-height:1.9}
 .disco-stage{width:min(100%,400px);height:auto;aspect-ratio:1/1.05;max-height:none;margin:24px auto 12px;flex:none;overflow:clip}
 .disco-stage .hero-art,.opening-scene:has(.personal-welcome:not([hidden])) .hero-art{inset:0;width:100%;height:100%;min-height:0;transform:none}
 .disco-stage .disco-ball{top:6%;left:5%;width:90%}.disco-stage .disco-wire{top:0;height:11%}
 .disco-stage .big-thirty{font-size:clamp(145px,43vw,190px);top:49%;left:3%;opacity:1;letter-spacing:-10px}
 .disco-stage .art-caption,.disco-stage .art-bottom{display:none}.disco-stage .star-one{left:0;top:23%;font-size:36px}.disco-stage .star-three{right:4%;top:75%;font-size:34px}
 .opening-scene .hero-bottom{width:100%;font-size:11px;padding:22px 0;gap:15px}.opening-scene .hero-bottom>span{max-width:45%}
 .opening-scene .evening{display:block;min-height:0;padding:58px 6%;background:#4b2d45}
 .opening-scene .section-intro{width:100%}.opening-scene .evening h2{font-size:48px}.opening-scene .evening-content{width:100%;padding-top:30px;max-width:none}
 .opening-scene .evening-content>p:not(.lead){font-size:17px!important}.opening-scene .lead{font-size:23px}
 .opening-scene .event-facts{grid-template-columns:1fr;gap:24px;padding:22px}.event-fact .fact-action{margin-top:14px}
 .chapter-strip{padding:36px 6%;gap:22px}.chapter-strip>span:first-child{font-size:90px}.chapter-strip>div{font-size:23px}.chapter-strip small{font-size:11px;letter-spacing:1px}
 .logistics-heading>p,.logistic-card p,.rsvp-copy>p:not(.eyebrow){font-size:17px!important}.section-pad{padding:54px 6%}
 .logistic-card{padding:26px 22px}.logistic-card h3{font-size:31px}.card-note,.logistics-footnote{font-size:15px!important}
 .form-card{padding:27px 20px}.form-card .form-step h3{font-size:34px}.two-fields{grid-template-columns:1fr;gap:0}
 .form-card .form-subtitle,.form-card label>small,.form-card .field-hint{font-size:15px!important}.form-card .check-label{font-size:16px!important}
 .form-card .choice span{font-size:15px!important;padding:10px 5px}.choice-row{gap:7px}
 .participant-panel{padding:22px 16px 0}.response-summary>div{grid-template-columns:1fr;gap:5px;padding:16px 0}.response-summary dt{font-weight:600}
 .form-actions{gap:18px}.form-actions .back-button{font-size:15px}.form-actions .button{gap:12px;padding-inline:18px}
 .gift-grid{grid-template-columns:1fr;gap:22px}.wish-content{padding:22px}.wish-content h3{font-size:31px!important;min-height:0}.wish-visual{height:210px}.wish-visual svg{width:150px;height:150px}
 .entry-card h2{font-size:36px}.entry-card{padding:28px 22px}.entry-copy h1{font-size:65px}.entry-topline>span{font-size:11px!important;max-width:140px;text-align:right}
 .entry-copy>.eyebrow{font-size:11px}.entry-date{padding:20px}.entry-card .required-legend{font-size:14px!important}
 .brand-footer{padding-bottom:34px}.brand-signature{gap:18px}.brand-byline{padding-left:18px}
}
@media(prefers-reduced-motion:reduce){.disco-stage .disco-ball{transform:rotate(-12deg)}html{scroll-behavior:auto}}
