:root{--space-xs:8px;--space-sm:16px;--space-md:24px;--space-lg:32px;--space-xl:48px;--container-sm:320px;--container-md:440px;--container-lg:600px;--color-accent:#c4a3aa}*{margin:0;padding:0;box-sizing:border-box}html{height:100%}body,html{width:100%;overflow-x:hidden}body{min-height:100dvh;max-width:100vw;background:#000;display:flex;justify-content:center;align-items:center;font-family:var(--font-mono),monospace;font-size:14px;color:white;padding:var(--space-sm)}@media (min-width:600px){body{font-size:15px;padding:var(--space-md)}}@media (min-width:1024px){body{font-size:16px;padding:var(--space-lg)}}img{display:block;max-width:100%;height:auto}.font-heading{font-family:var(--font-inter),sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.font-script{font-family:var(--font-script),cursive;font-weight:400;text-transform:none}.font-body{font-family:var(--font-mono),monospace;font-weight:400}input[type=email],input[type=password],input[type=tel],input[type=text],textarea{font-size:16px;font-family:var(--font-mono),monospace;background:transparent;border:5px solid white;border-radius:0;color:white;-webkit-appearance:none}input::-moz-placeholder,textarea::-moz-placeholder{color:#666}input::placeholder,textarea::placeholder{color:#666}input:focus,textarea:focus{outline:none}.card{background:#000;color:white;text-align:center;font-family:var(--font-inter),sans-serif;font-weight:700;font-size:.85em;line-height:2em;letter-spacing:.1em;text-transform:uppercase;width:100%;max-width:var(--container-md)}@media (min-width:600px){.card{font-size:1em}}.card .details{display:grid;justify-items:center;align-items:center}.card .details *{display:block;margin:var(--space-xs)}.card .details .connector{font-family:var(--font-script),cursive;text-transform:none;font-weight:400;letter-spacing:normal;font-size:1.4em}@media (min-width:600px){.card .details .connector{font-size:1.5em}}@keyframes pulse{0%,to{opacity:.8}50%{opacity:.4}}.save-date-btn{cursor:pointer;padding:0;width:100%;max-width:var(--container-md);opacity:.8;display:block;text-decoration:none;animation:pulse 3s ease-in-out infinite}.card .details .save-date-btn{margin-top:var(--space-lg);margin-bottom:var(--space-sm)}.save-date-btn img{width:100%;height:auto;display:block}.save-date-btn:hover{opacity:1;animation:none}.card .details .flower{margin-bottom:var(--space-sm)}.splash-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);width:100%}.splash-container img{max-width:280px}@media (min-width:600px){.splash-container img{max-width:400px}}.password-gate{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);width:100%;max-width:100%}.password-gate-row{display:flex;width:100%;max-width:300px}.password-gate input{flex:1;min-width:0;text-align:center}.password-gate button,.password-gate input{padding:14px var(--space-sm);border:5px solid #666}.password-gate button{font-size:14px;font-family:var(--font-inter),sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:#666;border-left:none;border-radius:0;color:black;cursor:pointer;transition:background-color .2s,border-color .2s;-webkit-appearance:none;min-height:48px;white-space:nowrap;flex-shrink:0}.password-gate button:hover{background:#888;border-color:#888}.password-gate button:disabled{cursor:not-allowed}.password-gate .error{color:#cc6666;font-size:12px;font-family:var(--font-mono),monospace}.password-gate-hint{font-family:var(--font-mono),monospace;font-size:11px;color:#666;text-align:center;text-transform:uppercase;letter-spacing:.05em}.home-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:var(--space-lg) 0;width:100%}.home-container h1{font-family:var(--font-script),cursive;font-size:2em;font-weight:400;color:white;text-align:center}@media (min-width:600px){.home-container h1{font-size:2.5em}}.invite{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-xs);border:1px solid var(--color-accent);padding:calc(var(--space-xl) * 1.5) var(--space-xl);width:100%;max-width:var(--container-md);min-width:-moz-fit-content;min-width:fit-content;box-sizing:border-box}@media (min-width:1280px){.invite{max-width:100%;margin:0 var(--space-lg)}}.invite .names{font-family:var(--font-script),cursive;font-weight:400;font-size:2.5em;white-space:nowrap}.invite .connector{font-family:var(--font-mono),monospace;font-weight:700;font-size:1.5em}.invite .invite-text{font-size:.85em;color:var(--color-accent);margin:var(--space-sm) 0}.invite .date,.invite .invite-text{font-family:var(--font-mono),monospace;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.invite .date{font-size:1em;margin-top:var(--space-sm)}.invite .time{color:var(--color-accent)}.invite .time,.invite .venue{font-family:var(--font-mono),monospace;font-weight:700;font-size:.85em;letter-spacing:.1em;text-transform:uppercase}.invite .venue{margin-top:var(--space-sm)}.invite .city{font-family:var(--font-mono),monospace;font-weight:700;font-size:.85em;letter-spacing:.1em;color:var(--color-accent)}.home-main{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);width:100%}@media (min-width:1280px){.home-main{flex-direction:row;justify-content:space-between;align-items:center;gap:0;width:100vw;max-width:100vw;margin-left:calc(-1 * var(--space-lg));margin-right:calc(-1 * var(--space-lg));padding:0 var(--space-lg)}.home-main>*{flex:1 1 33.333%;display:flex;justify-content:center}}.home-flower{max-width:300px}@media (min-width:1280px){.home-flower{max-width:380px}}.home-nav{display:flex;flex-direction:column;gap:var(--space-md);width:100%;max-width:var(--container-md);min-width:-moz-fit-content;min-width:fit-content}.home-nav a{display:block;min-height:48px}.home-nav .nav-gif{width:100%;height:60px;-o-object-fit:contain;object-fit:contain;opacity:.7;transition:opacity .2s}.home-nav a:hover .nav-gif{opacity:1}.schedule-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:var(--space-lg) 0;width:100%;max-width:var(--container-lg)}.gif-header{width:100%;height:80px;margin-bottom:var(--space-md);background-size:contain;background-repeat:no-repeat;background-position:50%;overflow:hidden;text-indent:-9999px;white-space:nowrap;animation:saturate-pulse 4s ease-in-out infinite}@keyframes saturate-pulse{0%,to{filter:saturate(1);transform:scale(1)}50%{filter:saturate(3);transform:scale(1.05)}}.gif-header-schedule{background-image:url(/schedule.gif)}.gif-header-travel{background-image:url(/travel.gif)}.gif-header-rsvp{background-image:url(/rsvp.gif)}.gif-header-faq{background-image:url(/faq.gif)}.schedule-day{width:100%;gap:var(--space-md)}.day-header,.schedule-day{display:flex;flex-direction:column}.day-header{align-items:center;gap:var(--space-xs);padding-bottom:var(--space-sm)}.day-name{font-family:var(--font-script),cursive;font-weight:400;font-size:2.5em}.day-date{font-family:var(--font-mono),monospace;font-size:.85em;color:var(--color-accent);text-transform:uppercase}.event{gap:var(--space-xs);margin-bottom:var(--space-lg)}.event,.event-header{display:flex;flex-direction:column}.event-header{gap:4px}.event-name{font-weight:700;font-size:1.1em;letter-spacing:.1em;text-transform:uppercase}.event-name,.event-time{font-family:var(--font-mono),monospace}.event-time{display:flex;align-items:center;gap:6px;font-size:.85em;color:#888}.event-time svg{color:var(--color-accent)}.event-description{font-size:.9em;line-height:1.6;color:#ccc}.event-description,.event-location{font-family:var(--font-mono),monospace}.event-location{display:flex;align-items:center;gap:6px;font-size:.8em;color:#888}.event-location svg{color:var(--color-accent)}.event-location a{color:#888;text-decoration:underline;text-underline-offset:3px}.event-location a:hover{color:white}.event-attire{display:flex;align-items:center;gap:6px;font-family:var(--font-mono),monospace;font-size:.8em;color:#888}.event-attire svg{color:var(--color-accent)}.back-link{display:block;margin-top:var(--space-lg);min-height:48px}.back-link .back-gif{height:120px;-o-object-fit:contain;object-fit:contain;opacity:.7;filter:grayscale(.5);transition:opacity .2s,filter .2s}.back-link:hover .back-gif{opacity:1;filter:grayscale(0)}.travel-container{align-items:center;gap:var(--space-lg);padding:var(--space-lg) 0;max-width:var(--container-lg)}.travel-container,.travel-section{display:flex;flex-direction:column;width:100%}.travel-section{gap:var(--space-md)}.travel-section h2{display:flex;align-items:center;gap:10px;font-family:var(--font-mono),monospace;font-weight:700;font-size:1.25em;letter-spacing:.1em;text-transform:uppercase}.travel-section h2 svg{color:var(--color-accent)}.section-intro{font-family:var(--font-mono),monospace;font-size:.9em;line-height:1.6;color:#ccc}.hotels{gap:var(--space-md)}.hotel,.hotels{display:flex;flex-direction:column}.hotel{gap:var(--space-xs);padding:var(--space-sm) 0}.hotel-name{font-weight:700;font-size:1em;letter-spacing:.1em;text-transform:uppercase}.hotel-name,.hotel-price{font-family:var(--font-mono),monospace}.hotel-price{font-size:.9em;color:#888}.hotel-book{font-family:var(--font-mono),monospace;font-weight:700;font-size:.8em;letter-spacing:.1em;text-transform:uppercase;color:black;background:#666;text-decoration:none;padding:4px var(--space-sm);width:-moz-fit-content;width:fit-content;margin-top:var(--space-xs)}.hotel-book:hover{background:#888}.hotel-location{display:flex;align-items:center;gap:6px;font-family:var(--font-mono),monospace;font-size:.8em;color:#888}.hotel-location svg{color:var(--color-accent)}.hotel-location a{color:#888;text-decoration:underline;text-underline-offset:3px}.hotel-location a:hover{color:white}.hotel-desc{font-size:.85em;line-height:1.5;color:#ccc}.hotel-code,.hotel-desc{font-family:var(--font-mono),monospace}.hotel-code{font-size:.8em;color:#888}.hotel-code a{color:#888;text-decoration:underline;text-underline-offset:3px}.hotel-code a:hover{color:white}.faq-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:var(--space-lg) 0;width:100%;max-width:var(--container-lg)}.faq-container h1{font-family:var(--font-script),cursive;font-size:2em;font-weight:400;text-align:center}.faq-list{width:100%;gap:var(--space-lg)}.faq-item,.faq-list{display:flex;flex-direction:column}.faq-item{gap:var(--space-sm)}.faq-question{display:flex;align-items:center;gap:10px;font-family:var(--font-mono),monospace;font-weight:700;font-size:1.25em;letter-spacing:.1em;text-transform:uppercase}.faq-question svg{color:var(--color-accent)}.faq-answer{display:flex;flex-direction:column;gap:var(--space-sm)}.faq-answer p{font-family:var(--font-mono),monospace;font-size:.9em;line-height:1.6;color:#ccc}.placeholder-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-lg) 0;text-align:center;color:white;width:100%}.placeholder-container h1{font-family:var(--font-script),cursive;font-size:1.75em;font-weight:400}@media (min-width:600px){.placeholder-container h1{font-size:2em}}.placeholder-container p{font-family:var(--font-mono),monospace;font-size:14px;color:#888}.placeholder-container a{color:#888;text-decoration:none;font-family:var(--font-inter),sans-serif;font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;padding:var(--space-xs) 0;min-height:48px;display:flex;align-items:center}.placeholder-container a:hover{color:white}.rsvp-container{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg);padding:var(--space-lg) 0;width:100%;max-width:var(--container-lg)}.rsvp-coming-soon{font-family:var(--font-script),cursive;font-size:2em;font-weight:400;text-align:center}.rsvp-coming-soon-sub{font-family:var(--font-mono),monospace;font-size:.9em;color:#888;text-align:center}.code-lookup{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);width:100%;max-width:100%}.code-lookup-row{display:flex;width:100%;max-width:300px}.code-lookup input{flex:1;min-width:0;text-align:center}.code-lookup button,.code-lookup input{padding:14px var(--space-sm);border:5px solid #666}.code-lookup button{font-size:14px;font-family:var(--font-inter),sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:#666;border-left:none;border-radius:0;color:black;cursor:pointer;transition:background-color .2s,border-color .2s;-webkit-appearance:none;min-height:48px;white-space:nowrap;flex-shrink:0}.code-lookup button:hover{background:#888;border-color:#888}.code-lookup button:disabled{cursor:not-allowed;opacity:.6}.code-lookup .error{color:#cc6666;font-size:12px}.code-lookup .error,.code-lookup-hint{font-family:var(--font-mono),monospace}.code-lookup-hint{font-size:11px;color:#666;text-align:center;text-transform:uppercase;letter-spacing:.05em}.rsvp-form{display:flex;flex-direction:column;gap:var(--space-lg);width:100%;max-width:var(--container-md)}.rsvp-header{font-family:var(--font-script),cursive;font-size:1.75em;font-weight:400;text-align:center}@media (min-width:600px){.rsvp-header{font-size:2em}}.rsvp-guests{gap:var(--space-lg)}.guest-row,.rsvp-guests{display:flex;flex-direction:column}.guest-row{gap:var(--space-sm);padding:var(--space-md);border:1px solid #333}.guest-info{margin-bottom:var(--space-xs)}.guest-name{letter-spacing:.1em;text-transform:uppercase}.guest-name,.guest-name-input{font-family:var(--font-inter),sans-serif;font-weight:700;font-size:1em}.guest-name-input{width:100%;padding:10px var(--space-sm);letter-spacing:.05em;background:transparent;border:2px solid #666;color:white}.guest-name-input:focus{border-color:white}.attendance-options{display:flex;flex-direction:column;gap:var(--space-xs)}@media (min-width:600px){.attendance-options{flex-direction:row;gap:var(--space-md)}}.attendance-option{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;min-height:48px}.attendance-option input[type=radio]{width:20px;height:20px;accent-color:white;cursor:pointer}.attendance-option span{font-family:var(--font-mono),monospace;font-size:.9em}.contact-fields{display:flex;flex-direction:column;gap:var(--space-xs)}@media (min-width:600px){.contact-fields{flex-direction:row;gap:var(--space-sm)}}.contact-fields input{flex:1;padding:10px var(--space-sm);border:2px solid #666}.contact-fields input:focus{border-color:white}.dietary-field input{width:100%;padding:10px var(--space-sm);border:2px solid #666}.dietary-field input:focus{border-color:white}.rsvp-notes textarea{width:100%;padding:var(--space-sm);border:2px solid #666;resize:vertical;min-height:80px}.rsvp-notes textarea:focus{border-color:white}.rsvp-submit{width:100%;padding:var(--space-sm) var(--space-md);font-size:14px;font-family:var(--font-inter),sans-serif;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:#666;border:none;border-radius:0;color:black;cursor:pointer;transition:background-color .2s;-webkit-appearance:none;min-height:48px}.rsvp-submit:hover{background:#888}.rsvp-submit:disabled{cursor:not-allowed;opacity:.6}.rsvp-form .error{color:#cc6666;font-size:12px;font-family:var(--font-mono),monospace;text-align:center}.rsvp-confirmation{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);width:100%;max-width:var(--container-md);text-align:center}.confirmation-message{font-family:var(--font-mono),monospace;font-size:1em;color:#ccc}.confirmation-summary{display:flex;flex-direction:column;gap:var(--space-md);width:100%;text-align:left}.summary-section{padding:var(--space-sm);border:1px solid #333}.summary-section h3{font-family:var(--font-inter),sans-serif;font-weight:700;font-size:.85em;letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-xs);color:#888}.summary-section ul{list-style:none;margin:0;padding:0}.summary-section li{font-family:var(--font-mono),monospace;font-size:.9em;padding:var(--space-xs) 0}.summary-section .dietary{color:#888}.update-link{font-family:var(--font-mono),monospace;font-size:.85em;margin-top:var(--space-sm)}.update-link a{color:#888;text-decoration:underline}.update-link a:hover{color:white}.rsvp-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);min-height:200px}.rsvp-loading p{font-family:var(--font-mono),monospace;font-size:.9em;color:#888}.rsvp-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);text-align:center}.rsvp-error p{font-family:var(--font-mono),monospace;font-size:.9em;color:#cc6666}