*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-paper: #F7F5EE;--text-primary: #061A2B;--accent-slate: #34495E;--accent-sage: #607A6C;--accent-moss: #8A9A8D;--accent-light: #8A9A8D;--font-serif: "EB Garamond", "Georgia", "Times New Roman", serif;--max-width: 1020px;--page-padding: 2rem}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-serif);font-weight:400;color:var(--text-primary);background-color:var(--bg-paper);background-image:url("data:image/svg+xml,%3Csvg width='200' height='200' viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.02'/%3E%3C/svg%3E");line-height:1.75;min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:400;color:var(--text-primary)}h1{font-size:2.8rem;letter-spacing:.06em}h2{font-size:1.5rem;letter-spacing:.04em;margin-bottom:1.25rem}h3{font-size:1.15rem;margin-bottom:.4rem}p{margin-bottom:1rem;font-size:1rem;line-height:1.85}a{color:var(--text-primary);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;transition:opacity .2s}a:hover{opacity:.6}.password-gate{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);font-family:var(--font-serif);text-align:center;padding:2rem}.password-crest{width:140px;height:auto;margin-bottom:1rem}.password-title{font-family:var(--font-serif);font-size:2.2rem;font-weight:400;letter-spacing:.06em;color:var(--text);margin-bottom:.25rem}.password-date{font-family:var(--font-serif);font-size:1.1rem;font-style:italic;color:var(--text);margin-bottom:.5rem}.password-subtitle{font-size:.95rem;color:var(--accent-light);font-style:italic;margin-bottom:1.5rem}.password-form{display:flex;gap:.5rem;align-items:center}.password-input{font-family:var(--font-serif);font-size:1rem;padding:.5rem .75rem;border:1px solid var(--accent-light);background:transparent;color:var(--text);outline:none;width:180px;text-align:center}.password-input:focus{border-color:var(--accent-moss)}.password-submit{font-family:var(--font-serif);font-size:.9rem;padding:.5rem 1.25rem;border:1px solid var(--text);background:var(--text);color:var(--bg);cursor:pointer;letter-spacing:.05em;transition:opacity .2s}.password-submit:hover{opacity:.85}.password-error{color:#a05252;font-size:.85rem;font-style:italic;margin-top:.75rem}.site-wrapper{position:relative;min-height:100vh;display:flex;flex-direction:column}.header{text-align:center;padding:2.5rem var(--page-padding) 0;width:100%;max-width:var(--max-width);margin:0 auto}.crest-image{display:block;margin:0 auto 1rem;width:140px;height:auto}.header-names{font-family:var(--font-serif);font-size:2.8rem;letter-spacing:.06em;font-weight:400;margin:0;line-height:1.2}.header-date{font-family:var(--font-serif);font-size:1.1rem;font-style:italic;font-weight:400;margin-top:.4rem;letter-spacing:.03em}.nav{display:flex;align-items:center;justify-content:center;gap:0;padding:1.25rem 0 .5rem;width:100%;max-width:700px;margin:0 auto}.nav-links{display:flex;align-items:center;gap:2.25rem}.nav-link{font-family:var(--font-serif);font-size:.9rem;letter-spacing:.04em;text-decoration:none;color:var(--text-primary);font-weight:400;position:relative;padding-bottom:3px;cursor:pointer;background:none;border:none;transition:opacity .2s}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0%;height:1px;background:var(--text-primary);transition:width .3s ease}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-link.active{font-weight:500}.carousel{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--page-padding);flex:1}.carousel-card{border:none;padding:2.5rem;margin-top:1.25rem;min-height:420px;position:relative;overflow:hidden}.carousel-slide{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;animation:slideIn .35s ease}@keyframes slideIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.slide-content{padding-right:1rem}.carousel-slide>.slide-content:only-child{grid-column:1 / -1;padding-right:0}.slide-illustration{display:flex;align-items:center;justify-content:center;padding:1rem;min-height:280px}.slide-illustration svg:not(.illustration){width:100%;max-width:220px;height:auto;opacity:.4}.slide-illustration .illustration{width:auto;max-width:100px;opacity:.3}.carousel-dots{display:flex;justify-content:center;gap:.6rem;padding:1.25rem 0}.carousel-dot{width:7px;height:7px;border-radius:50%;border:1px solid var(--accent-light);background:transparent;cursor:pointer;padding:0;transition:background-color .3s}.carousel-dot.active{background:var(--accent-light)}.carousel-dot:hover{background:var(--accent-light);opacity:.7}.section-title{font-family:var(--font-serif);font-size:1.5rem;letter-spacing:.04em;font-weight:400;margin-bottom:1.25rem;color:var(--text-primary)}.detail-block{margin-bottom:1.75rem}.detail-block p{margin-bottom:.2rem}.detail-label{font-weight:500;font-size:.95rem;letter-spacing:.02em}.story-blurb{font-size:1rem;line-height:1.85;margin-bottom:1.5rem}.journey{display:flex;align-items:center;gap:0;padding:1rem 0}.journey-icon{width:68px;height:68px;object-fit:contain;opacity:.5;flex-shrink:0;animation:journey-pop .5s cubic-bezier(.2,.8,.3,1.25) var(--delay, 0s) backwards;transition:opacity .25s ease,transform .25s ease}.journey-icon:hover{opacity:.9;transform:translateY(-3px)}.journey-ring-wrap{position:relative;display:inline-flex;flex-shrink:0}.sparkle{position:absolute;top:2%;left:58%;width:11px;height:11px;background:#e2b85a;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);pointer-events:none;opacity:0;animation:sparkle 3.2s ease-in-out 2s infinite}.sparkle-small{top:22%;left:24%;width:7px;height:7px;animation-delay:2.6s}@keyframes journey-pop{0%{opacity:0;transform:translateY(8px) scale(.8)}}@keyframes journey-draw{0%{stroke-dashoffset:1}}@keyframes sparkle{0%,65%,to{opacity:0;transform:scale(0) rotate(0)}78%{opacity:1;transform:scale(1) rotate(45deg)}90%{opacity:.5;transform:scale(.4) rotate(90deg)}}.countdown{display:flex;align-items:baseline;gap:.6rem;margin-top:1.25rem;animation:journey-pop .6s ease-out 1.8s backwards}.countdown-number{font-size:2.2rem;line-height:1;color:var(--accent-slate)}.countdown-label{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-sage)}.journey-icon-chicago{width:78px;height:78px}.journey-icon-ring{width:88px;height:88px;opacity:.55}.journey-arrow{flex:1;height:20px;max-width:56px;min-width:24px;margin:0 2px}.journey-arrow path{stroke-dasharray:1;animation:journey-draw .35s ease-out var(--delay, 0s) backwards}.slide-photo{display:flex;align-items:center;justify-content:center;padding:.5rem}.story-photo-frame{position:relative;width:100%;max-width:420px;animation:photo-in .7s ease-out .15s backwards}.story-photo-frame:before{content:"";position:absolute;top:14px;right:-14px;bottom:-14px;left:14px;border:1px solid var(--accent-moss);opacity:.7;transition:transform .4s ease;animation:frame-in .7s ease-out .6s backwards}.story-photo-frame:hover:before{transform:translate(-5px,-5px)}.story-photo{position:relative;display:block;width:100%;height:auto;object-fit:cover;filter:grayscale(.15);border:1px solid var(--accent-moss);padding:5px;background:var(--bg-paper)}@keyframes photo-in{0%{opacity:0;transform:translateY(10px)}}@keyframes frame-in{0%{opacity:0;transform:translate(-14px,-14px)}}.celebration-details{grid-column:1 / -1;padding-right:0}.schedule-day{margin-bottom:.25rem}.schedule-day-heading,.subheading{font-family:var(--font-serif);font-weight:500;font-size:1.05rem;font-style:italic;letter-spacing:.03em;color:var(--accent-sage);margin-bottom:1rem}.celebration-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-bottom:1.25rem}.celebration-row:last-child{margin-bottom:0}.celebration-info{padding-right:1rem}.event-meta strong{font-weight:600;color:var(--accent-slate)}.venue-line{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.65rem}.map-link{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-sage);text-underline-offset:3px}.inline-map-link{color:inherit;text-decoration-color:var(--accent-moss);text-underline-offset:3px}.event-meta{display:grid;grid-template-columns:max-content 1fr;align-items:baseline;gap:.2rem .9rem;margin-top:.6rem;font-size:.9rem;line-height:1.55}.event-meta dt{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-sage)}.mini-schedule{display:grid;grid-template-columns:max-content 1fr;align-items:baseline;gap:.25rem 1rem;margin:.75rem 0 .25rem;padding-left:.9rem;border-left:1px solid var(--accent-moss);font-size:.9rem;line-height:1.5}.mini-schedule dt{font-weight:500;white-space:nowrap}.brunch-note{font-style:italic;margin-top:.4rem}.detail-divider{border:none;border-top:1px solid var(--accent-moss);margin:1.5rem 0;opacity:.4}.venue-photo-wrap{position:relative}.venue-photo{width:100%;max-width:320px;height:auto;object-fit:cover;object-position:center;display:block}.accommodations-list{list-style:none;padding:0}.accommodations-list li{padding:1rem 0;border-bottom:1px solid var(--accent-light);font-size:1rem}.accommodations-list li:last-child{border-bottom:none}.hotel-name{font-family:var(--font-serif);font-size:1.15rem;font-weight:500;display:block;margin-bottom:.2rem}.hotel-detail{font-size:.9rem;opacity:.6}.hotel-link{font-family:var(--font-serif);font-size:.9rem;color:var(--accent-sage);text-decoration:underline;text-underline-offset:3px}.hotel-link:hover{color:var(--text-primary)}.hotel-link-pending{text-decoration:none;font-style:italic;opacity:.5}.hotel-deadline{font-style:italic;white-space:nowrap}.accommodations-list .event-meta{margin-top:.5rem}.travel-note{font-size:.85rem;font-style:italic;color:var(--accent-slate);margin:.25rem 0 2rem}.todo-columns{display:grid;grid-template-columns:1fr 1fr;gap:3rem}.todo-list{list-style:none}.todo-list li{padding:.7rem 0;border-bottom:1px solid rgba(138,154,141,.35)}.todo-list li:last-child{border-bottom:none}.todo-name,.todo-link{display:inline-block;font-size:1.05rem;font-weight:500;margin-bottom:.1rem}.todo-link{text-decoration-color:var(--accent-moss)}.todo-detail{display:block;font-size:.9rem;line-height:1.55;color:var(--accent-slate)}.lights{position:relative;height:40px;overflow:hidden;margin:-1rem 0 1.5rem}.lights-strand{list-style:none;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%);height:100%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='14' viewBox='0 0 30 14'%3E%3Cpath d='M0 2 Q15 16 30 2' fill='none' stroke='%2334495E' stroke-opacity='0.5' stroke-width='1'/%3E%3C/svg%3E") repeat-x 0 0 / 30px 14px}.bulb{position:relative;flex:none;width:30px;height:100%;transform-origin:50% 8px;transform:rotate(-8deg)}.bulb:nth-child(2n){transform:rotate(8deg)}.bulb:before{content:"";position:absolute;top:7px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:1px;background:var(--accent-slate)}.bulb:after{content:"";position:absolute;top:11px;left:50%;width:8px;height:13px;margin-left:-4px;border-radius:50%/40% 40% 60% 60%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.55),transparent 45%),var(--bulb);animation:twinkle var(--duration) ease-in-out var(--delay) infinite}@keyframes twinkle{0%,to{opacity:1;box-shadow:0 0 6px 2px color-mix(in srgb,var(--bulb) 55%,transparent)}50%{opacity:.35;box-shadow:0 0 0 0 transparent}}.l-scene{position:relative;height:58px;overflow:hidden;margin:-1rem 0 1.5rem}.l-track{position:absolute;left:0;right:0;top:30px;height:28px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='28' viewBox='0 0 90 28'%3E%3Cg fill='none' stroke='%2334495E'%3E%3Cpath d='M0 1H90' stroke-width='1.2' stroke-opacity='0.7'/%3E%3Cpath d='M0 4H90M0 11H90' stroke-opacity='0.5'/%3E%3Cpath d='M0 11L7.5 4L15 11L22.5 4L30 11L37.5 4L45 11L52.5 4L60 11L67.5 4L75 11L82.5 4L90 11' stroke-opacity='0.3'/%3E%3Cpath d='M45 11V28' stroke-width='1.6' stroke-opacity='0.5'/%3E%3Cpath d='M36 11L45 19L54 11' stroke-opacity='0.3'/%3E%3C/g%3E%3C/svg%3E") repeat-x 0 0 / 90px 28px}.l-lane{position:absolute;top:0;right:0;bottom:0;left:0;animation:l-ride 11s linear infinite}.l-train{position:absolute;top:2px;left:0;overflow:visible;animation:l-rock .55s ease-in-out infinite alternate}.l-car-body{fill:#ece9e1;stroke:var(--accent-slate);stroke-width:.8}.l-car-window{fill:var(--accent-slate);opacity:.5}.l-car-stripe,.l-car-sign{fill:#3e5f8a}.l-car-wheel,.l-coupler{fill:var(--accent-slate)}.l-car-headlight{fill:#d9a441;filter:drop-shadow(0 0 2px #D9A441)}@keyframes l-ride{0%{transform:translate(-160px)}75%,to{transform:translate(100%)}}@keyframes l-rock{to{transform:translateY(-.8px)}}@media(prefers-reduced-motion:reduce){.bulb:after,.journey-icon,.journey-arrow path,.countdown,.story-photo-frame,.story-photo-frame:before{animation:none}.sparkle{display:none}.l-lane{animation:none;transform:translate(calc(50% - 78px))}.l-train{animation:none}}.registry-grid{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.5rem}.registry-card{border:1px solid var(--accent-light);padding:1.75rem 2rem;text-align:center;text-decoration:none;color:var(--text-primary);transition:background-color .2s,transform .2s;display:block;flex:0 1 280px}.registry-card:hover{background-color:#8a9a8d14;transform:translateY(-1px);opacity:1}.registry-card-name{font-family:var(--font-serif);font-size:1.1rem;letter-spacing:.03em}.illustration{display:block;margin:1.5rem auto;max-width:180px;opacity:.4}.penguin-icon{width:40px;min-width:40px;max-width:40px;height:auto;opacity:.4;flex-shrink:0}.rsvp-content{padding-right:1rem}.rsvp-full{grid-column:1 / -1;text-align:center}.rsvp-form{display:flex;flex-direction:column;gap:1.25rem;margin-top:.5rem}.rsvp-field{display:flex;flex-direction:column;gap:.3rem}.rsvp-label{font-family:var(--font-serif);font-size:.95rem;font-weight:500;letter-spacing:.02em}.rsvp-input{font-family:var(--font-serif);font-size:1rem;padding:.45rem 0;border:none;border-bottom:1px solid var(--accent-moss);background:transparent;color:var(--text-primary);outline:none;transition:border-color .2s}.rsvp-input:focus{border-bottom-color:var(--accent-sage)}.rsvp-input-narrow{max-width:80px}.rsvp-input::placeholder{color:var(--accent-moss);opacity:.6;font-style:italic}.rsvp-fieldset{border:none;padding:0;margin:0}.rsvp-radio-group{display:flex;gap:1.5rem;margin-top:.4rem}.rsvp-radio{font-family:var(--font-serif);font-size:.95rem;display:flex;align-items:center;gap:.4rem;cursor:pointer}.rsvp-radio input[type=radio]{accent-color:var(--accent-sage);width:14px;height:14px}.rsvp-submit-row{margin-top:.5rem}.rsvp-submit{font-family:var(--font-serif);font-size:.95rem;letter-spacing:.04em;padding:.6rem 2rem;border:1px solid var(--accent-moss);background:transparent;color:var(--text-primary);cursor:pointer;transition:background-color .2s,color .2s}.rsvp-submit:hover{background:var(--text-primary);color:var(--bg-paper)}.rsvp-aside{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:2rem 1rem}.rsvp-penguin{width:100px;height:auto;opacity:.35;color:var(--text-primary)}.rsvp-aside-note{font-family:var(--font-serif);font-size:.95rem;font-style:italic;text-align:center;line-height:1.6;opacity:.6}.footer{text-align:center;padding:1.5rem var(--page-padding) 1.25rem;font-family:var(--font-serif);font-size:.85rem;letter-spacing:.06em;opacity:.45;font-weight:400}@media(max-width:900px){:root{--page-padding: 1.25rem}.header-names{font-size:2rem}.crest-image{width:150px}.nav{gap:0}.nav-links{width:100%;gap:.75rem 1.25rem;flex-wrap:wrap;justify-content:center}.nav-link{font-size:.8rem}.carousel-card{padding:1.5rem}.carousel-slide{grid-template-columns:1fr;gap:1.5rem}.slide-content,.slide-photo,.celebration-info,.venue-photo-wrap{min-width:0}.slide-illustration{order:-1;min-height:auto}h1{font-size:2rem}h2{font-size:1.2rem}.journey{justify-content:center}.journey-arrow{min-width:12px;max-width:32px;margin:0 1px}.journey-icon{width:44px;height:44px}.journey-icon-chicago{width:36px;height:36px}.journey-icon-ring{width:40px;height:40px}.story-photo-frame{max-width:75%}.story-photo-frame:before{top:10px;right:-10px;bottom:-10px;left:10px}.countdown{justify-content:center}.celebration-row{grid-template-columns:1fr;gap:1rem}.todo-columns{grid-template-columns:1fr;gap:1.5rem}.password-title{font-size:1.6rem}}html,body{overflow-x:hidden}
