.tpl-foto{background:var(--tpl-background,#1a1a1a);color:var(--tpl-text,#f5f5f5);font-family:var(--font-inter,system-ui, sans-serif);width:100%;min-height:100svh;overflow-x:hidden}.tpl-foto-container{box-sizing:border-box;max-width:680px;margin:0 auto;padding:0 1.5rem}.tpl-foto-section{padding:4rem 0}.tpl-foto-section+.tpl-foto-section{border-top:1px solid color-mix(in srgb, var(--tpl-ornament) 25%, transparent)}.tpl-foto-heading{font-family:var(--font-inter,system-ui, sans-serif);color:var(--tpl-text);letter-spacing:-.01em;margin:0 0 .5rem;font-size:clamp(1.4rem,5vw,2rem);font-weight:600;line-height:1.2}.tpl-foto-caption{font-family:var(--font-inter,system-ui, sans-serif);letter-spacing:.18em;text-transform:uppercase;color:var(--tpl-accent);margin:0 0 1.25rem;font-size:.7rem;font-weight:500;display:block}.tpl-foto-body{font-family:var(--font-inter,system-ui, sans-serif);color:var(--tpl-text);opacity:.85;max-width:60ch;margin:0;font-size:clamp(.92rem,2.5vw,1rem);line-height:1.75}.tpl-foto-rule{border:none;border-top:1px solid color-mix(in srgb, var(--tpl-ornament) 30%, transparent);max-width:120px;margin:2rem 0}.tpl-foto-upload-hint{letter-spacing:.06em;color:#ffffffe6;pointer-events:none;-webkit-user-select:none;user-select:none;background:#ffffff1f;border:1px solid #ffffff40;border-radius:4px;align-items:center;gap:.5rem;margin-top:2rem;padding:.6rem 1rem;font-size:.78rem;display:inline-flex}.tpl-foto-hero-placeholder{background:linear-gradient(160deg, color-mix(in srgb, var(--tpl-accent) 20%, var(--tpl-background)) 0%, var(--tpl-background) 60%)!important}.tpl-foto-program-list{flex-direction:column;gap:1.25rem;margin:0;padding:0;list-style:none;display:flex}.tpl-foto-program-item{grid-template-columns:3.5rem 1px 1fr;align-items:start;gap:0 1rem;display:grid}.tpl-foto-program-time{letter-spacing:.08em;color:var(--tpl-accent);text-align:right;padding-top:.1rem;font-size:.78rem;font-weight:500}.tpl-foto-program-line{background:color-mix(in srgb, var(--tpl-ornament) 30%, transparent);align-self:stretch;width:1px;min-height:1.5rem}.tpl-foto-program-title{color:var(--tpl-text);margin:0 0 .2rem;font-size:.95rem;font-weight:500}.tpl-foto-program-desc{color:var(--tpl-text);opacity:.65;margin:0;font-size:.85rem;line-height:1.5}.tpl-foto-locations{flex-direction:column;gap:1.25rem;display:flex}.tpl-foto-location-card{background:color-mix(in srgb, var(--tpl-surface) 60%, transparent);border:1px solid color-mix(in srgb, var(--tpl-ornament) 20%, transparent);border-radius:6px;padding:1.25rem;font-style:normal}.tpl-foto-location-label{letter-spacing:.15em;text-transform:uppercase;color:var(--tpl-accent);margin-bottom:.4rem;font-size:.7rem;display:block}.tpl-foto-location-name{color:var(--tpl-text);margin:0 0 .2rem;font-size:1rem;font-weight:600}.tpl-foto-location-address{color:var(--tpl-text);opacity:.7;margin:0 0 .75rem;font-size:.88rem;line-height:1.5}.tpl-foto-location-btn{letter-spacing:.08em;color:var(--tpl-accent);border:1px solid color-mix(in srgb, var(--tpl-accent) 50%, transparent);border-radius:4px;padding:.45rem .9rem;font-size:.78rem;font-weight:500;text-decoration:none;transition:opacity .15s;display:inline-block}.tpl-foto-location-btn:hover{opacity:.75}.tpl-foto-rsvp{text-align:center;background:color-mix(in srgb, var(--tpl-surface) 40%, transparent);padding:4rem 1.5rem}.tpl-foto-rsvp-btn{background:var(--tpl-accent);color:var(--tpl-background);font-family:var(--font-inter,system-ui, sans-serif);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:none;border-radius:4px;min-width:44px;min-height:44px;margin-top:1.5rem;padding:.9rem 2.5rem;font-size:.82rem;font-weight:500;transition:opacity .15s;display:inline-block}.tpl-foto-rsvp-btn:hover:not(:disabled){opacity:.82}.tpl-foto-rsvp-btn:disabled,.tpl-foto-rsvp-btn[aria-disabled=true]{opacity:.38;cursor:not-allowed}.tpl-foto-rsvp-btn:focus-visible{outline:2px solid var(--tpl-accent);outline-offset:3px}.tpl-foto-dresscode-code{color:var(--tpl-text);letter-spacing:.02em;margin:.5rem 0 0;font-size:clamp(1.1rem,3.5vw,1.4rem);font-weight:600}.tpl-foto-gift-surface{background:color-mix(in srgb, var(--tpl-surface) 60%, transparent);border:1px solid color-mix(in srgb, var(--tpl-ornament) 20%, transparent);border-radius:6px;padding:1.25rem}.tpl-foto-gift-toggle{cursor:pointer;width:100%;font-family:var(--font-inter,system-ui, sans-serif);color:var(--tpl-text);text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;min-height:44px;padding:0;font-size:.95rem;font-weight:500;display:flex}.tpl-foto-gift-chevron{transition:transform .2s}.tpl-foto-gift-chevron.is-open{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.tpl-foto-gift-chevron{transition:none}}.tpl-foto-gift-body{padding-top:1rem}.tpl-foto-faq-list{margin:0;padding:0}.tpl-foto-faq-list>div{border-bottom:1px solid color-mix(in srgb, var(--tpl-ornament) 20%, transparent);padding:1rem 0}.tpl-foto-faq-list>div:first-child{border-top:1px solid color-mix(in srgb, var(--tpl-ornament) 20%, transparent)}.tpl-foto-faq-q{color:var(--tpl-text);margin-bottom:.4rem;font-size:.95rem;font-weight:600}.tpl-foto-faq-a{color:var(--tpl-text);opacity:.75;margin:0;font-size:.9rem;line-height:1.6}.tpl-foto-mc{background:color-mix(in srgb, var(--tpl-surface) 50%, transparent);border-left:3px solid var(--tpl-accent);border-radius:0 6px 6px 0;padding:1.25rem}.tpl-foto-footer{text-align:center;border-top:1px solid color-mix(in srgb, var(--tpl-ornament) 20%, transparent);padding:2.5rem 1.5rem}.tpl-foto-footer-names{letter-spacing:.2em;text-transform:uppercase;color:var(--tpl-text);opacity:.55;margin:0;font-size:.72rem}.tpl-foto-countdown-wrap{text-align:center}.is-reveal-js .template-section{opacity:0;transition:opacity .4s}.is-reveal-js .template-section.is-visible{opacity:1}@media (prefers-reduced-motion:reduce){.is-reveal-js .template-section{transition:opacity .1s}}@media print{.tpl-foto{color:#000!important;background:#fff!important}.tpl-foto-rsvp,.tpl-foto-location-btn{display:none}}@media (min-width:600px){.tpl-foto-section{padding:5rem 0}.tpl-foto-locations{flex-flow:wrap}.tpl-foto-location-card{flex:280px}}
