*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--cream:#faf7f2;--sage:#8a9e8a;--dusty-rose:#c4a0a0;--warm-white:#ffffff40;--glass-border:#fff6;--dark:#3a3330}body{background:var(--cream);color:var(--dark);min-height:100vh;font-family:Georgia,Times New Roman,serif}.page{padding-top:80px;max-width:900px;min-height:100vh;margin:0 auto;padding-inline:40px}.page h1{letter-spacing:.06em;color:var(--dark);text-align:center;margin:60px 0 12px;font-size:2.5rem;font-weight:400}.home{flex-direction:column;min-height:100vh;display:flex}.hero{width:100%;height:100vh;position:relative;overflow:hidden}.hero-photo{object-fit:cover;object-position:center 60%;width:100%;height:100%;display:block}.hero-overlay{pointer-events:none;background:#00000040;position:absolute;inset:0}.nav-cards{z-index:10;gap:24px;width:90%;max-width:900px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.nav-card{color:#fff;-webkit-backdrop-filter:blur(14px);text-align:center;background:#ffffff2e;border:1px solid #fff6;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:8px;padding:28px 20px 24px;text-decoration:none;transition:background .25s,transform .2s;display:flex}.nav-card:hover{background:#ffffff4d;transform:translateY(-4px)}.nav-card h2{letter-spacing:.1em;color:#fff;margin:0;font-size:1.2rem;font-weight:400}.nav-card p{color:#fffc;letter-spacing:.04em;font-size:.82rem}.home-title{text-align:center;background:#faf7f2;padding:48px 24px 60px}.home-title h1{letter-spacing:.1em;color:#3a3330;margin-bottom:12px;font-size:2.8rem;font-weight:400}.home-subtitle{letter-spacing:.2em;text-transform:uppercase;color:#c4a0a0;font-size:1rem}@media (width<=640px){.nav-cards{flex-direction:column;gap:12px}}.inner-page{background:#faf7f2;min-height:100vh}.nav-logo{letter-spacing:.1em;color:#3a3330;font-size:1.2rem;text-decoration:none}.nav-links a{color:#3a3330;letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;text-decoration:none;transition:color .2s}.page{padding-top:100px;padding-bottom:80px;max-width:860px;margin:0 auto;padding-inline:40px}.page h1{letter-spacing:.08em;color:#3a3330;text-align:center;margin-bottom:16px;font-size:2.4rem;font-weight:400}.page-divider{background:#c4a0a0;width:60px;height:1px;margin:0 auto 48px}.page-intro{color:#5a5350;text-align:center;max-width:560px;margin:0 auto 48px;font-size:1.05rem;line-height:1.7}.registry-links{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.registry-btn{color:#3a3330;letter-spacing:.12em;text-transform:uppercase;border:1px solid #c4a0a0;border-radius:4px;padding:14px 40px;font-size:.95rem;text-decoration:none;transition:background .2s,color .2s;display:inline-block}.registry-btn:hover{color:#fff;background:#c4a0a0}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.gallery-photo{aspect-ratio:3/4;object-fit:cover;border-radius:6px;width:100%}.details-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px;display:grid}.detail-card{background:#fff;border:1px solid #8a9e8a40;border-radius:10px;flex-direction:column;gap:6px;padding:28px 24px;display:flex}.detail-card h3{letter-spacing:.2em;text-transform:uppercase;color:#8a9e8a;margin-bottom:4px;font-size:.75rem}.detail-card p{color:#3a3330;font-size:.95rem;line-height:1.6}.detail-time{font-style:italic;color:#c4a0a0!important}.rsvp-link{color:#fff;letter-spacing:.08em;background:#c4a0a0;border-radius:4px;align-self:flex-start;margin-top:8px;padding:8px 20px;font-size:.85rem;text-decoration:none;transition:background .2s;display:inline-block}.rsvp-link:hover{background:#b08888}@media (width<=600px){.nav{padding:14px 20px}.nav-links{gap:16px}.page{padding-inline:20px}.page h1{font-size:1.8rem}}.gallery-page{background:#faf7f2;flex-direction:column;min-height:100vh;display:flex}.nav{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#faf7f2e6;border-bottom:1px solid #8a9e8a40;justify-content:space-between;align-items:center;padding:16px 40px;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{letter-spacing:.1em;color:#3a3330;font-family:Georgia,serif;font-size:1.2rem;text-decoration:none}.nav-links{gap:32px;list-style:none;display:flex}.nav-links a{color:#3a3330;letter-spacing:.12em;text-transform:uppercase;font-family:Georgia,serif;font-size:.82rem;text-decoration:none;transition:color .2s}.nav-links a:hover{color:#c4a0a0}.gallery-body{flex-direction:column;flex:1;height:100vh;padding-top:64px;display:flex;overflow:hidden}.carousel-area{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:32px 40px 16px;transition:background .3s;display:flex;overflow:hidden}.carousel-prompt{color:#9a9090;letter-spacing:.12em;text-transform:uppercase;font-family:Georgia,serif;font-size:.9rem}.carousel-header{justify-content:space-between;align-items:flex-start;width:100%;max-width:860px;margin-bottom:20px;display:flex}.carousel-meta{flex-direction:column;gap:4px;display:flex}.carousel-date{letter-spacing:.2em;text-transform:uppercase;color:#8a9e8a;font-family:Georgia,serif;font-size:.75rem}.carousel-title{color:#3a3330;letter-spacing:.04em;margin:0;font-family:Georgia,serif;font-size:1.6rem;font-weight:400}.carousel-desc{color:#7a7070;margin:0;font-family:Georgia,serif;font-size:.88rem;font-style:italic}.carousel-close{color:#aaa;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:1.1rem;line-height:1;transition:color .2s}.carousel-close:hover{color:#3a3330}.carousel-stage{flex:1;align-items:center;gap:16px;width:100%;max-width:860px;min-height:0;display:flex;position:relative}.carousel-frame{border-radius:8px;flex:1;height:100%;min-height:0;position:relative;overflow:hidden}.carousel-track{height:100%;transition:transform .35s;display:flex}.carousel-img{object-fit:contain;flex-shrink:0;width:100%;height:100%;display:block}.carousel-count{color:#ffffffbf;background:#00000059;border-radius:20px;padding:2px 8px;font-family:Georgia,serif;font-size:.75rem;position:absolute;bottom:8px;right:12px}.carousel-arrow{color:#c4a0a0;cursor:pointer;background:0 0;border:1px solid #c4a0a080;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;transition:background .2s,color .2s;display:flex}.carousel-arrow:hover{color:#fff;background:#c4a0a0}.carousel-dots{gap:8px;display:flex;position:absolute;bottom:-24px;left:50%;transform:translate(-50%)}.carousel-dot{cursor:pointer;background:#c4a0a059;border:none;border-radius:50%;width:7px;height:7px;padding:0;transition:background .2s,transform .2s}.carousel-dot.active{background:#c4a0a0;transform:scale(1.3)}.carousel-empty{color:#9a9090;border:1px dashed #c4a0a066;border-radius:8px;justify-content:center;align-items:center;width:100%;max-width:860px;height:200px;font-family:Georgia,serif;font-size:.9rem;font-style:italic;display:flex}.timeline-wrap{border-top:1px solid #8a9e8a33;flex-shrink:0;padding:40px 0 32px;overflow:hidden}.timeline-scroll{scrollbar-width:thin;scrollbar-color:#c4a0a0 transparent;padding:60px;overflow:auto visible}.timeline-scroll::-webkit-scrollbar{height:4px}.timeline-scroll::-webkit-scrollbar-thumb{background:#c4a0a0;border-radius:2px}.timeline-track{align-items:center;gap:0;min-width:max-content;display:flex;position:relative}.timeline-line{pointer-events:none;background:linear-gradient(90deg,#0000,#c4a0a0 8% 92%,#0000);height:1px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.timeline-item{flex-direction:column;flex-shrink:0;align-items:center;width:130px;display:flex;position:relative}.timeline-label{pointer-events:none;flex-direction:column;align-items:center;gap:2px;width:120px;display:flex;position:absolute}.label-above{bottom:calc(50% + 22px)}.label-below{top:calc(50% + 22px)}.tl-event-name{color:#3a3330;letter-spacing:.03em;text-align:center;font-family:Georgia,serif;font-size:.78rem;line-height:1.3}.tl-event-date{color:#8a9e8a;letter-spacing:.08em;text-transform:uppercase;text-align:center;font-family:Georgia,serif;font-size:.68rem}.timeline-dot{z-index:2;cursor:pointer;background:#faf7f2;border:2px solid #c4a0a0;border-radius:50%;flex-shrink:0;width:14px;height:14px;padding:0;transition:transform .2s,background .2s,box-shadow .2s;position:relative}.timeline-dot:hover{background:#c4a0a04d;transform:scale(1.4)}.timeline-dot.dot-active{background:#c4a0a0;transform:scale(1.5);box-shadow:0 0 0 4px #c4a0a040}.timeline-dot.dot-has-photos{background:#c4a0a0}.timeline-dot.dot-has-photos.dot-active{box-shadow:0 0 0 4px #c4a0a059}@media (width<=600px){.nav{padding:14px 20px}.nav-links{gap:16px}.carousel-area{padding:24px 16px 12px}}
