:root{--ink:#2e2a22;--cream:#f3ead9;--white:#fffcf6;--ochre:#7a2e3a;--gold:#b8763a;--orange:#c96a2e;--sage:#5c6b47;--stone:#8c7a5b;--border-soft:rgba(0,0,0,.14);--track-bg:rgba(0,0,0,.14);--font-heading:"Playfair Display",serif;--font-subtitle:"Montserrat",sans-serif;--font-body:"Lato",sans-serif;--radius:14px;--input-border:rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){:root{--ink:#f2ece0;--cream:#1c1812;--white:#262019;--stone:#a99a7c;--border-soft:hsla(0,0%,100%,.12);--track-bg:hsla(0,0%,100%,.18);--input-border:hsla(0,0%,100%,.32)}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--cream);color:var(--ink);font-family:var(--font-body)}body{padding-bottom:96px}h1{font-family:var(--font-heading);line-height:1.12;letter-spacing:-.01em;text-wrap:balance}h1,h2,h3,h4{color:var(--ink);margin:0 0 .5em}h2,h3,h4{font-family:var(--font-subtitle)}a{color:inherit}.container{max-width:960px;margin:0 auto;padding:0 20px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;color:var(--gold);font-weight:700;font-family:var(--font-body)}.section-label{margin-bottom:6px}.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;color:var(--gold);font-weight:700}.site-nav{border-bottom:1px solid var(--border-soft);background:var(--white)}.site-nav-inner{max-width:960px;margin:0 auto;display:flex;justify-content:center;gap:32px;padding:18px 20px;flex-wrap:wrap}.site-nav-link{text-decoration:none;text-transform:none;letter-spacing:.01em;font-weight:700;color:var(--gold);font-size:.9rem;padding-bottom:4px;border-bottom:2px solid transparent}.site-nav-link.active{color:var(--ochre);border-bottom-color:var(--ochre)}@media (hover:hover){.site-nav-link:hover{color:var(--ochre);border-bottom-color:var(--ochre)}}.hero-wallpaper{width:100%;min-height:60vh;background-color:var(--stone);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.hero-wallpaper,.hero-wallpaper-img{background-size:cover;background-position:50%}.hero-wallpaper-img{position:absolute;inset:0;opacity:0;transition:opacity .5s ease-out}.hero-wallpaper-img.is-visible{opacity:1}.section-divider{border:none;border-top:1px solid var(--border-soft);max-width:960px;margin:48px auto}.btn{display:inline-block;padding:12px 28px;border-radius:999px;background:var(--ochre);color:#fff;text-decoration:none;font-weight:600;border:none;cursor:pointer;font-family:var(--font-body);transition:transform .15s ease,opacity .15s ease;-webkit-tap-highlight-color:transparent}@media (hover:hover){.btn:hover{transform:translateY(-2px);opacity:.92}}.btn:active{transform:scale(.97);transition-duration:.1s}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.secondary{background:transparent;color:var(--ochre);border:2px solid var(--ochre)}.btn.btn-lg{font-size:1.05rem;padding:14px 32px}.rsvp-progress-wrap{max-width:420px;margin:56px auto;padding:0 20px}.rsvp-progress-bar{background:var(--track-bg);border-radius:999px;overflow:hidden;height:10px}.rsvp-progress-fill{background:var(--ochre);height:100%;transition:width .6s ease;min-width:4px}.rsvp-progress-label{text-align:center;font-size:.9rem;margin-top:10px}.spotify-player{position:fixed;left:0;right:0;bottom:0;z-index:500;background:var(--white);border-top:1px solid var(--border-soft);box-shadow:0 -4px 16px rgba(0,0,0,.12);transition:box-shadow .4s ease,transform .4s ease;line-height:0}.spotify-player iframe{display:block;background:var(--white);border:none}.spotify-player-highlight{box-shadow:0 -4px 24px rgba(122,46,58,.35);transform:translateY(-2px)}.roadmap-h-wrap{overflow-x:auto;overflow-y:visible;padding:10px 0 30px;scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,transparent,#000 32px,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,transparent,#000 32px,#000 calc(100% - 32px),transparent)}.roadmap-h{display:flex;position:relative;min-width:max-content;padding:0 40px;height:260px}.roadmap-h:before{content:"";position:absolute;top:50%;left:0;right:0;height:2px;background:var(--stone);opacity:.4}.roadmap-h-item{position:relative;width:160px;height:260px;text-align:center;scroll-snap-align:center}.roadmap-h-tile{position:absolute;left:50%;transform:translateX(-50%);background:var(--white);border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px 14px;box-shadow:0 2px 10px rgba(0,0,0,.1);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;width:140px;-webkit-tap-highlight-color:transparent;font:inherit;color:inherit}@media (hover:hover){.roadmap-h-tile:hover{transform:translateX(-50%) translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.16)}}.roadmap-h-tile:active{transform:translateX(-50%) scale(.97);transition-duration:.1s}.roadmap-h-item.up .roadmap-h-tile{top:30px}.roadmap-h-item.down .roadmap-h-tile{top:calc(100% - 30px - 90px)}.roadmap-h-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:var(--ochre)}.roadmap-h-time{font-weight:700;color:var(--ochre);font-size:.85rem}.modal-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:none;background:transparent;color:var(--ink);overflow:hidden}.modal-dialog::-webkit-backdrop{background:transparent}.modal-dialog::backdrop{background:transparent}.modal-scrim{position:absolute;inset:0;background:rgba(0,0,0,.55)}.modal-scrim-dark{background:rgba(0,0,0,.85)}.modal-layer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px}.modal-box{background:var(--white);border:1px solid var(--border-soft);padding:24px;max-width:480px;width:100%;max-height:85vh;overflow-y:auto}.countdown,.modal-box{border-radius:var(--radius)}.countdown{text-align:center;padding:30px 20px;transition:background .6s ease,color .6s ease}.countdown-title{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;color:var(--gold);font-weight:700;font-family:var(--font-body);margin:0 0 16px}.countdown-numbers{display:flex;justify-content:center;gap:20px;font-family:var(--font-heading);font-size:2rem;font-weight:700;font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.countdown-numbers>span{min-width:2ch}.countdown-numbers span small{display:block;font-size:.8rem;font-weight:500;font-family:var(--font-body)}.countdown-stage-far{color:var(--ink)}.countdown-stage-mid{color:var(--gold)}.countdown-stage-close{color:var(--orange)}.countdown-stage-imminent{color:var(--ochre);animation:pulse 1.4s ease-in-out 3}.countdown-today{background:var(--ochre);color:#fff;padding:20px;border-radius:var(--radius);font-size:1.5rem;font-weight:700;animation:pulse 1.2s ease-in-out 3}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.party-mood-title{text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;color:var(--gold);font-weight:700;font-family:var(--font-body);margin:0 0 16px}.mood-image-box{display:flex;justify-content:center;max-width:90%;cursor:pointer}.mood-image-box img{display:block;max-width:100%;max-height:85vh;border-radius:var(--radius)}.confetti-overlay{position:fixed;inset:0;pointer-events:none;z-index:400;overflow:hidden}.confetti-piece{position:absolute;top:-20px;width:10px;height:16px;opacity:.9;animation:confetti-fall linear forwards}@keyframes confetti-fall{to{transform:translateY(110vh) rotate(1turn);opacity:.3}}.field-boxed{border:1px solid var(--border-soft);border-radius:var(--radius);padding:20px 22px;margin-bottom:20px;background:var(--white)}.field-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.field-title-row h3{font-family:var(--font-subtitle);font-size:1.15rem;margin:0}.field-hint-inline{font-size:.75rem;color:var(--stone);white-space:nowrap}.custom-tooltip-wrapper{position:relative;display:inline-block}.custom-tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);background:var(--ink);color:var(--cream);padding:8px 14px;border-radius:8px;font-size:.8rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:50}.custom-tooltip-wrapper:focus-within .custom-tooltip,.custom-tooltip-wrapper:hover .custom-tooltip{opacity:1}@media (hover:none){.custom-tooltip{position:static;display:block;transform:none;opacity:1;background:none;color:var(--stone);padding:8px 0 0;white-space:normal}}.blog-grid{display:flex;flex-direction:column;gap:18px}.blog-card{border:1px solid var(--border-soft);border-radius:var(--radius);padding:20px;background:var(--white)}.aggiornamenti-layout{display:grid;grid-template-columns:220px 1fr;grid-gap:32px;gap:32px;align-items:start}@media (max-width:720px){.aggiornamenti-layout{grid-template-columns:1fr}.aggiornamenti-sidebar{display:flex;overflow-x:auto;gap:8px;padding-bottom:8px}}.aggiornamenti-sidebar{display:flex;flex-direction:column;gap:8px;position:-webkit-sticky;position:sticky;top:20px}.aggiornamenti-sidebar-link{text-align:left;background:transparent;border:none;padding:10px 14px;border-radius:10px;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-weight:700;font-size:.78rem;color:var(--stone);white-space:nowrap}.aggiornamenti-sidebar-link.active{background:var(--ochre);color:#fff}@media (hover:hover){.aggiornamenti-sidebar-link:hover{background:var(--ochre);color:#fff}}.aggiornamenti-featured{border:1px solid var(--border-soft);border-radius:var(--radius);padding:28px;background:var(--white)}input[type=color],input[type=email],input[type=file],input[type=number],input[type=password],input[type=tel],input[type=text],select,textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--input-border);background:var(--cream);color:var(--ink);font-family:var(--font-body);font-size:.95rem}textarea{resize:vertical;min-height:90px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ochre);box-shadow:0 0 0 3px rgba(122,46,58,.18)}.tooltip-note{font-size:.85rem;color:var(--stone)}.form-status{font-size:.85rem;margin:8px 0 0}.form-status-ok{color:var(--sage)}.form-status-err{color:var(--ochre)}.contributo-note{font-family:var(--font-heading);font-size:.95rem;font-style:italic;color:var(--ink);opacity:.85}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table td,.admin-table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-soft);vertical-align:middle}.admin-table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--stone);font-weight:700}.admin-table td small{display:block;font-size:.75rem;color:var(--stone)}.admin-status-msg{font-size:.85rem;margin:8px 0}.admin-status-ok{color:var(--sage)}.admin-status-err{color:var(--ochre)}@media (max-width:640px){.countdown-numbers{font-size:1.4rem;gap:12px}.roadmap-h-item{width:130px}.hero-wallpaper{min-height:32vh}}@media (prefers-reduced-motion:reduce){.countdown-stage-imminent,.countdown-today{animation:none}.confetti-overlay{display:none}.btn,.roadmap-h-tile,.spotify-player{transition-property:opacity,box-shadow}.btn:active,.btn:hover{transform:none}.roadmap-h-tile:active,.roadmap-h-tile:hover{transform:translateX(-50%)}.spotify-player-highlight{transform:none}.roadmap-h-wrap{scroll-snap-type:none}}.admin-shell{--a-line:var(--border-soft);--a-surface:var(--white);--a-ok:#2f6f45;--a-ok-bg:rgba(47,111,69,.13);--a-no:#a03a34;--a-no-bg:rgba(160,58,52,.12);--a-wait:#8a6414;--a-wait-bg:rgba(184,134,30,.16);--a-info:#3b5f8a;--a-info-bg:rgba(59,95,138,.13);max-width:1400px;margin:0 auto;padding:28px 24px 60px}@media (prefers-color-scheme:dark){.admin-shell{--a-ok:#8ccb9d;--a-ok-bg:rgba(140,203,157,.15);--a-no:#ec9d96;--a-no-bg:hsla(5,69%,76%,.14);--a-wait:#e3c06f;--a-wait-bg:hsla(42,67%,66%,.15);--a-info:#9bb9e0;--a-info-bg:rgba(155,185,224,.15)}}.admin-header h1{font-size:1.8rem;margin:0 0 16px}.admin-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--a-line);margin-bottom:24px}.admin-tab{background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;padding:10px 16px;font-family:var(--font-subtitle);font-size:.92rem;font-weight:600;color:var(--stone);cursor:pointer}.admin-tab:hover{color:var(--ink)}.admin-tab.is-active{color:var(--ink);border-bottom-color:var(--ink)}.admin-shell .btn{padding:8px 14px;font-size:.85rem;border-radius:8px;background:var(--ink);color:var(--cream);border:1px solid var(--ink)}.admin-shell .btn:hover{transform:none;opacity:.88}.admin-shell .btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--input-border)}.admin-shell .btn.secondary:hover{opacity:1;background:hsla(0,0%,50%,.12)}.admin-shell .btn.btn-danger:hover{color:var(--a-no);border-color:var(--a-no);background:var(--a-no-bg)}.admin-shell input[type=email],.admin-shell input[type=number],.admin-shell input[type=password],.admin-shell input[type=search],.admin-shell input[type=tel],.admin-shell input[type=text],.admin-shell select,.admin-shell textarea{padding:9px 11px;font-size:.9rem;border-radius:8px;border:1px solid var(--input-border);background:var(--a-surface);color:var(--ink);font-family:var(--font-body);width:100%}.admin-shell select{cursor:pointer}.admin-muted{color:var(--stone);font-size:.85rem}.admin-dash{color:var(--stone);opacity:.6}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px;margin-bottom:14px}.admin-stat{background:var(--a-surface);border:1px solid var(--a-line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}.admin-stat-value{font-family:var(--font-heading);font-size:1.7rem;font-weight:700;line-height:1.1}.admin-stat-label{font-size:.78rem;color:var(--stone)}.admin-stat-ok .admin-stat-value{color:var(--a-ok)}.admin-stat-no .admin-stat-value{color:var(--a-no)}.admin-stat-wait .admin-stat-value{color:var(--a-wait)}.admin-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0 12px}.admin-toolbar select{width:auto;min-width:150px}.admin-shell .admin-search{flex:1 1 280px;min-width:220px;width:auto}.admin-toolbar-spacer{flex:1 1}.admin-table-wrap{overflow-x:auto;background:var(--a-surface);border:1px solid var(--a-line);border-radius:12px}.admin-table-guests{min-width:1120px;font-size:.86rem}.admin-table-guests th{background:hsla(0,0%,50%,.07);white-space:nowrap;padding:11px 12px}.admin-table-guests td{vertical-align:top;padding:12px;line-height:1.35}.admin-table-guests tbody tr:not(.admin-detail-row):hover{background:hsla(0,0%,50%,.06)}.admin-table-guests tbody tr:last-child td{border-bottom:none}.admin-row-open td{border-bottom-color:transparent}.admin-empty{text-align:center;color:var(--stone);padding:32px 12px!important}.admin-name{font-weight:700;font-size:.92rem}.admin-sub{font-size:.78rem;color:var(--stone)}.admin-sub-strong{font-size:.84rem}.admin-stack{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.admin-email{word-break:break-all}.admin-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.admin-link{background:none;border:none;padding:4px 6px;color:var(--stone);font-size:.82rem;text-decoration:underline;cursor:pointer}.admin-badge,.admin-link:hover{color:var(--ink)}.admin-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.76rem;font-weight:700;white-space:nowrap;background:hsla(0,0%,50%,.14)}.admin-badge-si{background:var(--a-ok-bg);color:var(--a-ok)}.admin-badge-no{background:var(--a-no-bg);color:var(--a-no)}.admin-badge-attesa{background:var(--a-wait-bg);color:var(--a-wait)}.admin-badge-company{background:var(--a-info-bg);color:var(--a-info)}.admin-badge-side-sposa,.admin-badge-side-sposo{background:hsla(0,0%,50%,.14);color:var(--ink);text-transform:capitalize}.admin-detail-row td{padding-top:0!important}.admin-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px 24px;gap:12px 24px;padding:12px 14px;border-radius:8px;background:hsla(0,0%,50%,.07)}.admin-detail>div{display:flex;flex-direction:column;gap:2px}.admin-detail-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--stone);font-weight:700}.admin-modal{max-width:640px;padding:24px 26px}.admin-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.admin-modal-head h3{margin:0;font-size:1.25rem}.admin-modal-close{background:none;border:none;font-size:1.6rem;line-height:1;color:var(--stone);cursor:pointer;padding:2px 8px}.admin-modal-close:hover{color:var(--ink)}.admin-form-section{margin:18px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--a-line);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--stone)}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px 14px;gap:12px 14px}.admin-field{display:flex;flex-direction:column;gap:5px;min-width:0}.admin-field>span{font-size:.8rem;font-weight:600}.admin-field>span em{font-weight:400;font-style:normal;color:var(--stone)}.admin-field-full{grid-column:1/-1}.admin-chips{display:flex;gap:8px;flex-wrap:wrap}.admin-chip{padding:6px 12px;border-radius:999px;border:1px solid var(--input-border);background:transparent;color:var(--ink);font-size:.82rem;cursor:pointer}.admin-chip.is-on{background:var(--ink);color:var(--cream);border-color:var(--ink)}.admin-modal-actions{display:flex;gap:10px;margin-top:22px}@media (max-width:640px){.admin-shell{padding:20px 14px 50px}.admin-form-grid{grid-template-columns:1fr}.admin-toolbar select{flex:1 1 140px}}