:root{--bg-deep: #1a1412;--bg-midnight: #251c18;--bg-charcoal: #2d221c;--bg-gradient: linear-gradient(180deg, #1a1412 0%, #251c18 35%, #2d221c 65%, #1f1815 100%);--bg-gradient-mobile: linear-gradient(180deg, #1a1412 0%, #251c18 30%, #2d221c 60%, #1f1815 100%);--glass-bg: rgba(45, 35, 30, .65);--glass-border: rgba(253, 248, 245, .08);--glass-blur: 12px;--glass-blur-strong: 24px;--accent-gold: #d4a574;--accent-gold-glow: rgba(212, 165, 116, .45);--accent-gold-soft: rgba(212, 165, 116, .2);--accent-rose: #b87d7d;--accent-rose-glow: rgba(184, 125, 125, .45);--accent-rose-soft: rgba(184, 125, 125, .2);--rgb-gold: 212, 165, 116;--rgb-rose: 184, 125, 125;--accent-cyan: var(--accent-gold);--accent-cyan-glow: var(--accent-gold-glow);--accent-cyan-soft: var(--accent-gold-soft);--accent-violet: var(--accent-rose);--accent-violet-glow: var(--accent-rose-glow);--accent-violet-soft: var(--accent-rose-soft);--accent-rose-soft: rgba(184, 125, 125, .15);--font-heading: "Playfair Display", Georgia, serif;--font-hero-title: "Cormorant Infant", "Cormorant Garamond", Georgia, serif;--font-hero-subtitle: "Lora", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--text-primary: rgba(253, 248, 245, .96);--text-secondary: rgba(253, 248, 245, .72);--text-muted: rgba(253, 248, 245, .5);--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--section-padding: 1.25rem;--timeline-gap: 2rem;--radius-sm: 8px;--radius-md: 13px;--radius-lg: 22px;--radius-xl: 26px;--frame-highlight: rgba(255, 255, 255, .28);--frame-highlight-soft: rgba(255, 255, 255, .08);--frame-shadow-outer: rgba(0, 0, 0, .5);--frame-mat: rgba(254, 251, 248, .99);--frame-border: rgba(255, 255, 255, .5);--frame-inner-shadow: rgba(0, 0, 0, .08);--ease-out: cubic-bezier(.33, 1, .68, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--duration: .4s}*,*:before,*:after{box-sizing:border-box}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}html{scroll-behavior:smooth;scroll-snap-type:y proximity;width:100%;overflow-x:clip}body{margin:0;min-height:100vh;font-family:var(--font-body);font-size:1rem;line-height:1.6;color:var(--text-primary);background:var(--bg-gradient-mobile);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;width:100%}@media(min-width:768px){body{background:var(--bg-gradient)}}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 100% 80% at 50% 0%,rgba(212,165,116,.06) 0%,transparent 50%);animation:bgPulse 12s ease-in-out infinite;pointer-events:none;z-index:-1}body:after{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 80% 60% at 80% 100%,rgba(184,125,125,.05) 0%,transparent 50%);animation:bgPulse 14s ease-in-out infinite reverse;pointer-events:none;z-index:-1}@keyframes bgPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.app-noise{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}#root{min-height:100vh;width:100%;overflow-x:clip}h1,h2,h3{font-family:var(--font-heading);font-weight:500;line-height:1.2}h1{font-size:clamp(1.75rem,5vw,2.5rem)}h2{font-size:clamp(1.25rem,3vw,1.5rem)}h3{font-size:1.125rem}p{margin:0 0 var(--space-md);color:var(--text-secondary)}p:last-child{margin-bottom:0}img{max-width:100%;height:auto;display:block;border-radius:var(--radius-md)}button:focus-visible,a:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body:before,body:after{animation:none}}.app{position:relative;min-height:100vh;padding-bottom:var(--space-2xl)}.skip-link{position:absolute;top:-100px;left:var(--section-padding);z-index:200;padding:.75rem 1.25rem;background:var(--bg-charcoal);color:var(--text-primary);font-size:.9rem;font-weight:500;border-radius:var(--radius-md);box-shadow:0 4px 20px #0000004d;transition:top .2s var(--ease-out)}.skip-link:focus{top:var(--section-padding);outline:2px solid var(--accent-cyan);outline-offset:2px}.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;background:#ffffff0f;z-index:100;transform-origin:left}.scroll-progress__bar{height:100%;width:100%;background:linear-gradient(90deg,var(--accent-cyan),var(--accent-violet));transform-origin:left;transition:transform .08s linear;border-radius:0 2px 2px 0;box-shadow:0 0 20px var(--accent-cyan-glow)}.timeline-nav{position:fixed;right:var(--section-padding);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.6rem;z-index:95}.timeline-nav__dot{position:relative;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0;border:none;border-radius:50%;background:transparent;cursor:pointer;transition:transform .25s var(--ease-out)}.timeline-nav__dot:before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid rgba(255,255,255,.25);background:transparent;transition:border-color .25s var(--ease-out),background .25s var(--ease-out),box-shadow .25s var(--ease-out)}.timeline-nav__dot--cyan:hover:before{border-color:var(--accent-cyan);box-shadow:0 0 16px var(--accent-cyan-soft)}.timeline-nav__dot--violet:hover:before{border-color:var(--accent-violet);box-shadow:0 0 16px var(--accent-violet-soft)}.timeline-nav__dot--active.timeline-nav__dot--cyan:before{background:var(--accent-cyan);border-color:var(--accent-cyan);box-shadow:0 0 20px var(--accent-cyan-glow)}.timeline-nav__dot--active.timeline-nav__dot--violet:before{background:var(--accent-violet);border-color:var(--accent-violet);box-shadow:0 0 20px var(--accent-violet-glow)}.timeline-nav__dot--active{transform:scale(1.15)}.timeline-nav__dot:focus{outline:none}.timeline-nav__dot:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:3px;box-shadow:0 0 0 4px rgba(var(--rgb-gold),.25)}.timeline-nav__dot--violet:focus-visible{outline-color:var(--accent-violet);box-shadow:0 0 0 4px rgba(var(--rgb-rose),.25)}.timeline-nav__tooltip{position:absolute;right:calc(100% + .6rem);top:50%;transform:translateY(-50%) translate(4px);padding:.35rem .6rem;font-size:.75rem;color:var(--text-primary);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s var(--ease-out),transform .2s var(--ease-out);z-index:10}.timeline-nav__dot:hover .timeline-nav__tooltip{opacity:1;transform:translateY(-50%) translate(0)}@media(max-width:767px){.timeline-nav__tooltip{display:none}.timeline-nav{flex-direction:row;top:auto;bottom:max(1.25rem,env(safe-area-inset-bottom,0px));left:50%;right:auto;transform:translate(-50%);gap:.5rem;padding:0 env(safe-area-inset-right,0)}}.hero{scroll-snap-align:start;scroll-snap-stop:normal;position:relative;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:clamp(3rem,12vw,6rem) var(--section-padding) clamp(2rem,6vw,3rem);z-index:1;overflow:visible}.hero__text-block{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;max-width:28em;margin:0 auto;flex-shrink:0}.hero__heart-and-path{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;margin-top:auto;position:relative;flex-shrink:0}.hero__icon{position:relative;z-index:1;flex-shrink:0;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 0px rgba(0,0,0,0));animation:none;transition:filter .4s var(--ease-out)}.hero__icon.is-visible{filter:drop-shadow(0 0 30px var(--accent-cyan-soft));animation:heartBeat 3.4s ease-in-out infinite}.hero__icon:hover{filter:drop-shadow(0 0 30px var(--accent-cyan-soft)) drop-shadow(0 0 24px var(--accent-rose-soft))}.hero__title{margin:0 0 .5em;font-family:var(--font-hero-title);font-size:clamp(2.4rem,7.5vw,3.6rem);font-weight:600;font-style:italic;color:#fdf8f5f0;letter-spacing:.08em;text-transform:none;text-shadow:0 2px 34px rgba(0,0,0,.42),0 0 22px rgba(253,248,245,.16),0 0 18px rgba(var(--rgb-gold),.08);opacity:1}.hero__tagline{margin:0 0 1.8em;font-family:var(--font-hero-subtitle);font-size:clamp(1.05rem,2.8vw,1.25rem);font-weight:400;color:#fdf8f5ad;letter-spacing:.01em;line-height:1.65;text-shadow:0 1px 18px rgba(0,0,0,.35);opacity:1}.hero__scroll-hint{margin:0;display:flex;flex-direction:column;align-items:center;gap:0}.hero__scroll-hint-chevron{width:20px;height:20px;border-right:2px solid rgba(253,248,245,.4);border-bottom:2px solid rgba(253,248,245,.4);transform:rotate(45deg);animation:heroScrollHintBounce 2s ease-in-out infinite}@keyframes heroScrollHintBounce{0%,to{transform:rotate(45deg) translateY(0)}50%{transform:rotate(45deg) translateY(6px)}}@keyframes heroTitleFade{to{opacity:1}}@keyframes heroTaglineFade{to{opacity:.9}}@media(prefers-reduced-motion:reduce){.hero__title{animation:none;opacity:.85}.hero__tagline{animation:none;opacity:.7}.hero__scroll-hint{animation:none;opacity:.8}.hero__scroll-hint-chevron{animation:none}}@keyframes heartBeat{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media(prefers-reduced-motion:reduce){.hero__icon{animation:none}}.timeline--path{position:relative;max-width:720px;margin:0 auto;padding:0 var(--section-padding) 22vh;min-height:480vh;z-index:1;overflow:visible}.timeline__path-wrap{position:absolute;left:50%;top:0;bottom:0;width:88px;transform:translate(-50%);pointer-events:none;color:#ffffff80;filter:drop-shadow(0 0 8px var(--accent-gold-soft));overflow:visible;z-index:0}.timeline__path-svg{width:100%;height:100%;display:block}.timeline__path-svg path[pathLength]{transition:stroke-dashoffset .5s cubic-bezier(.25,.46,.45,.94)}.timeline__entries{position:relative;display:flex;flex-direction:column;z-index:2}.timeline-card{scroll-snap-align:start;min-height:85vh;display:grid;grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);align-items:center;padding:var(--space-2xl) 0;scroll-margin-top:2rem;transition:opacity 1.1s var(--ease-out),transform 1.1s var(--ease-out),filter 1.1s var(--ease-out)}.timeline-card--focus{opacity:1}.timeline-card__row{display:flex;flex-direction:row;align-items:center;gap:0;min-width:0;max-width:100%}.timeline-card--left .timeline-card__row{grid-column:1;justify-self:end}.timeline-card--right .timeline-card__row{grid-column:3;justify-self:start;flex-direction:row-reverse}.timeline-card--has-photo .timeline-card__photo-wrap{grid-column:2;justify-self:center;align-self:center}.timeline-card--has-photo.timeline-card--left .timeline-card__row{grid-column:1;justify-self:end}.timeline-card--has-photo.timeline-card--right .timeline-card__row{grid-column:3;justify-self:start}.timeline-card__photo-wrap{position:relative;max-width:min(400px,90%);width:100%;z-index:3;contain:layout paint;transition:transform 1.2s var(--ease-out),filter 1.2s var(--ease-out),opacity 1.2s var(--ease-out)}.timeline-card__tilt-container{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .1s ease-out}.timeline-card__photo-frame{position:relative;width:100%;transform-style:preserve-3d}.timeline-card__tilt-container:after{content:"";position:absolute;inset:12px;border-radius:var(--radius-xl);background:#0006;filter:blur(20px);transform:translateZ(-20px);opacity:0;transition:opacity .3s var(--ease-out)}.timeline-card__photo-wrap:hover .timeline-card__tilt-container:after{opacity:.6}.timeline-card__photo-overlay{position:absolute;left:0;right:0;bottom:0;padding:1.25rem 1.25rem 1.1rem;background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.45) 55%,transparent 100%);pointer-events:none;border-radius:0 0 var(--radius-xl) var(--radius-xl);z-index:2}.timeline-card__photo-date{display:block;font-size:.7rem;font-weight:500;color:#fffc;letter-spacing:.14em;text-transform:uppercase;margin-bottom:.35rem;text-shadow:0 1px 3px rgba(0,0,0,.5)}.timeline-card__photo-phrase{margin:0;font-family:var(--font-hero-subtitle);font-size:clamp(.9rem,2.2vw,1.05rem);font-weight:500;line-height:1.4;color:#fffffffa;letter-spacing:.02em;text-shadow:0 1px 4px rgba(0,0,0,.5)}.timeline-card__photo-meta{display:block;font-size:.75rem;font-weight:500;color:#ffffffbf;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.25rem;text-shadow:0 1px 2px rgba(0,0,0,.4)}.timeline-card__photo-label{display:block;font-family:var(--font-hero-title);font-size:1.05rem;font-weight:600;color:#fffffffa;letter-spacing:.08em;text-shadow:0 1px 4px rgba(0,0,0,.5)}.timeline-card__photo-description{margin:.35rem 0 0;font-size:.875rem;line-height:1.4;color:#ffffffe0;text-shadow:0 1px 3px rgba(0,0,0,.4)}.timeline-card__photo-frame--collage .timeline-card__photo-overlay,.timeline-card__photo-overlay--collage{border-radius:0 0 var(--radius-xl) var(--radius-xl)}.timeline-card__photo-draw{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;border-radius:var(--radius-xl);overflow:visible;shape-rendering:geometricPrecision}.timeline-card__photo-draw rect{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;transition:stroke-dashoffset 1.4s cubic-bezier(.22,1,.36,1);-webkit-backface-visibility:hidden;backface-visibility:hidden}.timeline-card--cyan .timeline-card__photo-draw rect{stroke:var(--accent-cyan)}.timeline-card--violet .timeline-card__photo-draw rect{stroke:var(--accent-violet)}.timeline-card__photo-frame--collage{display:flex;justify-content:center;align-items:center}.timeline-card__photo-draw--collage{border-radius:0}.timeline-card__photo-wrap:before{content:"";position:absolute;inset:-14px;border-radius:calc(var(--radius-xl) + 12px);background:radial-gradient(circle at 50% 50%,rgba(var(--rgb-gold),.2),transparent 70%);opacity:0;transform:scale(.92);transition:opacity 1.2s var(--ease-out),transform 1.2s var(--ease-out);pointer-events:none;z-index:-1}.timeline-card--focus.timeline-card--cyan .timeline-card__photo-wrap:before{opacity:.85;transform:scale(1)}.timeline-card--focus.timeline-card--violet .timeline-card__photo-wrap:before{background:radial-gradient(circle at 50% 50%,rgba(var(--rgb-rose),.2),transparent 70%);opacity:.85;transform:scale(1)}.timeline-card--muted .timeline-card__photo-wrap{transform:scale(.92);filter:saturate(.68) brightness(.78);transition:transform .7s var(--ease-out),filter .7s var(--ease-out)}.timeline-card--focus .timeline-card__photo-wrap{filter:saturate(1.05) brightness(1.03);transition:transform .5s var(--ease-out),filter .5s var(--ease-out)}.timeline-card--focus .timeline-card__photo-wrap:before{animation:photoGlowPulse 3s ease-in-out infinite}@keyframes photoGlowPulse{0%,to{opacity:.75;transform:scale(1)}50%{opacity:.95;transform:scale(1.02)}}@media(prefers-reduced-motion:reduce){.timeline-card--focus .timeline-card__photo-wrap:before{animation:none}}.gallery-frame{position:relative;width:100%;border-radius:var(--radius-xl);overflow:hidden;padding:var(--frame-padding, 16px);background:linear-gradient(168deg,#fdf8f3,#f5efe8,#f0eae3);border:2px solid var(--frame-border);box-shadow:0 1px 0 var(--frame-highlight) inset,0 0 0 1px #fff6 inset,0 4px 16px #00000026,0 16px 40px #00000040,0 32px 72px var(--frame-shadow-outer),0 56px 120px #0006;transition:box-shadow .5s var(--ease-out),border-color .4s var(--ease-out),transform .4s var(--ease-out)}.gallery-frame:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 8%,var(--frame-highlight-soft) 25%,var(--frame-highlight) 50%,var(--frame-highlight-soft) 75%,transparent 92%);border-radius:var(--radius-xl) var(--radius-xl) 0 0;pointer-events:none;z-index:2}.gallery-frame:after{content:"";position:absolute;inset:var(--frame-inset, 10px);border-radius:calc(var(--radius-xl) - 6px);box-shadow:inset 0 0 0 1px var(--frame-inner-shadow),inset 0 1px #fff9,inset 0 2px 8px #0000000a;pointer-events:none}.gallery-frame__inner{position:relative;width:100%;height:100%;border-radius:calc(var(--radius-xl) - 6px);overflow:hidden;box-shadow:inset 0 0 80px #00000014}.gallery-frame__inner .image-with-placeholder{display:block;width:100%;height:100%;position:relative;border-radius:inherit}.gallery-frame__inner .image-with-placeholder:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse 85% 75% at 50% 50%,transparent 45%,rgba(0,0,0,.06) 100%);pointer-events:none}.gallery-frame__inner .image-with-placeholder__placeholder{position:absolute;inset:0;background:linear-gradient(110deg,#ffffff14,#ffffff0a,#ffffff14);background-size:200% 100%;animation:imagePlaceholderShimmer 1.2s ease-in-out infinite;border-radius:inherit}.gallery-frame__inner .image-with-placeholder__error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:#1e1916e6;color:var(--text-muted);font-size:.8rem;text-align:center;padding:1rem;border-radius:inherit}.gallery-frame__inner .image-with-placeholder__error-icon{font-size:1.5rem;opacity:.6}.gallery-frame__inner .image-with-placeholder.loaded img{animation:imageFadeIn .4s var(--ease-out)}.gallery-frame__inner .image-with-placeholder img,.gallery-frame__inner img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}.gallery-frame__inner .image-with-placeholder.loading img,.gallery-frame__inner .image-with-placeholder.error img{opacity:0}.gallery-frame--timeline{--frame-padding: 18px;--frame-inset: 12px;aspect-ratio:4 / 3}.gallery-frame--timeline.gallery-frame-btn{display:block;width:100%;cursor:pointer;font:inherit;-webkit-appearance:none;appearance:none;border:none;text-align:left}.gallery-frame--timeline:hover{transform:scale(1.02);box-shadow:0 1px 0 var(--frame-highlight) inset,0 0 0 1px var(--frame-highlight-soft) inset,0 8px 24px #0000002e,0 20px 48px #00000047,0 40px 80px var(--frame-shadow-outer),0 56px 112px #0000006b}.gallery-frame--lightbox{--frame-padding: 14px;--frame-inset: 10px;z-index:1;max-height:70vh;box-shadow:0 1px 0 var(--frame-highlight) inset,0 0 0 1px #fff6 inset,0 28px 72px #00000085,0 56px 120px #00000070}.gallery-frame--lightbox .gallery-frame__inner{border-radius:calc(var(--radius-xl) - 10px)}.gallery-frame--lightbox .gallery-frame__inner img{object-fit:contain;max-height:calc(70vh - 28px)}.gallery-frame--collage{--frame-padding: 10px;--frame-inset: 6px;aspect-ratio:1}.gallery-frame--collage.gallery-frame-btn{display:block;width:100%;cursor:pointer;font:inherit;-webkit-appearance:none;appearance:none;border:none;text-align:left}.gallery-frame--collage .gallery-frame__inner,.gallery-frame--collage .gallery-frame__inner .image-with-placeholder,.gallery-frame--collage .gallery-frame__inner .image-with-placeholder img{border-radius:calc(var(--radius-xl) - 5px)}.timeline-card__photo .gallery-frame__inner{min-height:0}@keyframes imagePlaceholderShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.gallery-frame__inner .image-with-placeholder__placeholder{animation:none;background:#ffffff0f}}@keyframes imageFadeIn{0%{opacity:0}to{opacity:1}}.timeline-card--visible.timeline-card--cyan .timeline-card__photo{border-color:rgba(var(--rgb-gold),.5);box-shadow:0 1px 0 var(--frame-highlight) inset,0 0 0 1px var(--accent-cyan-soft),0 10px 32px #00000047,0 24px 60px var(--frame-shadow-outer),0 0 40px var(--accent-cyan-soft)}.timeline-card--focus.timeline-card--visible.timeline-card--cyan .timeline-card__photo{box-shadow:0 1px 0 var(--frame-highlight) inset,0 0 0 1px var(--accent-cyan-soft),0 14px 40px #0000004d,0 32px 72px var(--frame-shadow-outer),0 0 52px var(--accent-cyan-soft),0 0 80px rgba(var(--rgb-gold),.12)}.timeline-card--visible.timeline-card--cyan .timeline-card__photo:hover{box-shadow:0 0 0 1px var(--accent-cyan-soft),0 0 48px var(--accent-cyan-soft),0 16px 40px #00000052,0 32px 72px #00000073}.timeline-card--visible.timeline-card--violet .timeline-card__photo{border-color:rgba(var(--rgb-rose),.5);box-shadow:0 1px 0 var(--frame-highlight) inset,0 0 0 1px var(--accent-violet-soft),0 10px 32px #00000047,0 24px 60px var(--frame-shadow-outer),0 0 40px var(--accent-violet-soft)}.timeline-card--focus.timeline-card--visible.timeline-card--violet .timeline-card__photo{box-shadow:0 1px 0 var(--frame-highlight) inset,0 0 0 1px var(--accent-violet-soft),0 14px 40px #0000004d,0 32px 72px var(--frame-shadow-outer),0 0 52px var(--accent-violet-soft),0 0 80px rgba(var(--rgb-rose),.12)}.timeline-card--visible.timeline-card--violet .timeline-card__photo:hover{box-shadow:0 0 0 1px var(--accent-violet-soft),0 0 48px var(--accent-violet-soft),0 16px 40px #00000052,0 32px 72px #00000073}.timeline-card__collage{position:relative;display:flex;align-items:center;justify-content:center;gap:0;min-height:160px;padding:8px 0}.timeline-card__collage-item{flex-shrink:0;width:min(150px,44vw);margin-left:-24px;position:relative;z-index:0}.timeline-card__collage-item:first-child{margin-left:0;z-index:1}.timeline-card__collage .timeline-card__photo{min-height:0}.timeline-card__collage-item:hover{z-index:2}.timeline-card__collage-item:hover .timeline-card__photo{transform:scale(1.06)}.timeline-card--visible.timeline-card--cyan .timeline-card__collage .timeline-card__photo{border-color:rgba(var(--rgb-gold),.35);box-shadow:0 0 0 1px var(--accent-cyan-soft),0 4px 16px #00000040,0 0 20px var(--accent-cyan-soft)}.timeline-card--visible.timeline-card--violet .timeline-card__collage .timeline-card__photo{border-color:rgba(var(--rgb-rose),.35);box-shadow:0 0 0 1px var(--accent-violet-soft),0 4px 16px #00000040,0 0 20px var(--accent-violet-soft)}.timeline-card__meta{display:flex;flex-direction:column;align-items:center;gap:.15rem;flex-shrink:0;min-width:2.5rem}.timeline-card__step{font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:#ffffff80;letter-spacing:.08em;line-height:1}.timeline-card--focus .timeline-card__step{color:#ffffffd9}.timeline-card--cyan.timeline-card--focus .timeline-card__step{color:var(--accent-cyan);text-shadow:0 0 20px var(--accent-cyan-soft)}.timeline-card--violet.timeline-card--focus .timeline-card__step{color:var(--accent-violet);text-shadow:0 0 20px var(--accent-violet-soft)}.timeline-card__date{font-size:.7rem;font-weight:500;color:#fff6;letter-spacing:.12em;text-transform:uppercase}.timeline-card--focus .timeline-card__date{color:#ffffffb3}.timeline-card__connector-svg{display:none}.timeline-card__connector-svg path{stroke-width:2.2;stroke-linecap:round;vector-effect:non-scaling-stroke;transition:stroke .4s var(--ease-out)}.timeline-card--cyan .timeline-card__connector-svg path{stroke:var(--accent-cyan);filter:drop-shadow(0 0 3px var(--accent-cyan-soft))}.timeline-card--violet .timeline-card__connector-svg path{stroke:var(--accent-violet);filter:drop-shadow(0 0 3px var(--accent-violet-soft))}.timeline-card--focus.timeline-card--cyan .timeline-card__connector-svg path{filter:drop-shadow(0 0 6px var(--accent-cyan-soft)) drop-shadow(0 0 2px var(--accent-cyan))}.timeline-card--focus.timeline-card--violet .timeline-card__connector-svg path{filter:drop-shadow(0 0 6px var(--accent-violet-soft)) drop-shadow(0 0 2px var(--accent-violet))}.timeline-card__inner{display:flex;flex-direction:row;align-items:center;gap:.75rem;padding:var(--space-lg) var(--space-xl);border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.12);background:linear-gradient(145deg,#ffffff0f,#0f1729b3);backdrop-filter:blur(var(--glass-blur-strong));-webkit-backdrop-filter:blur(var(--glass-blur-strong));box-shadow:0 8px 32px #00000059,0 1px #ffffff0f inset;transition:box-shadow .4s var(--ease-out),border-color .4s var(--ease-out),transform .3s var(--ease-out);min-width:0;max-width:100%;overflow:hidden}.timeline-card--muted .timeline-card__inner{transform:scale(.97);filter:saturate(.8)}.timeline-card--focus .timeline-card__inner{transform:scale(1)}.timeline-card__inner:hover{transform:translateY(-3px);box-shadow:0 12px 40px #0006,0 0 0 1px #ffffff14,inset 0 1px #ffffff14}.timeline-card--visible.timeline-card--cyan .timeline-card__inner:hover{box-shadow:0 0 0 1px var(--accent-cyan-soft),0 0 48px var(--accent-cyan-soft),0 0 72px rgba(var(--rgb-gold),.15),0 12px 40px #00000059,inset 0 1px #ffffff14}.timeline-card--visible.timeline-card--violet .timeline-card__inner:hover{box-shadow:0 0 0 1px var(--accent-violet-soft),0 0 48px var(--accent-violet-soft),0 0 72px rgba(var(--rgb-rose),.15),0 12px 40px #00000059,inset 0 1px #ffffff14}.timeline-card--visible.timeline-card--cyan .timeline-card__inner{border-color:rgba(var(--rgb-gold),.4);box-shadow:0 0 0 1px var(--accent-cyan-soft),0 0 40px var(--accent-cyan-soft),0 0 60px rgba(var(--rgb-gold),.12),0 8px 32px #0000004d,inset 0 1px #ffffff14}.timeline-card--visible.timeline-card--violet .timeline-card__inner{border-color:rgba(var(--rgb-rose),.4);box-shadow:0 0 0 1px var(--accent-violet-soft),0 0 40px var(--accent-violet-soft),0 0 60px rgba(var(--rgb-rose),.12),0 8px 32px #0000004d,inset 0 1px #ffffff14}.timeline-card__icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 8px currentColor)}.timeline-card--visible.timeline-card--cyan .timeline-card__icon{filter:drop-shadow(0 0 12px var(--accent-cyan-soft))}.timeline-card--visible.timeline-card--violet .timeline-card__icon{filter:drop-shadow(0 0 12px var(--accent-violet-soft))}.timeline-card__labels{display:flex;flex-direction:column;gap:.35rem;min-width:0}.timeline-card__label{font-family:var(--font-body);font-size:1.05rem;font-weight:600;color:var(--text-primary);letter-spacing:.02em}.timeline-card__description{margin:0;font-size:.9rem;font-weight:400;color:var(--text-secondary);line-height:1.4;letter-spacing:.01em;opacity:.6;transition:opacity .5s var(--ease-out)}.timeline-card__description--active{opacity:1}@media(max-width:767px){.timeline--path{min-height:380vh}.timeline__path-wrap{width:56px;left:50%;transform:translate(-50%)}.timeline-card{grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);padding-left:0}.timeline-card--muted{opacity:.6}.timeline-card--left .timeline-card__row{grid-column:1;justify-self:end}.timeline-card--right .timeline-card__row{grid-column:3;justify-self:start;flex-direction:row-reverse}.timeline-card--has-photo{grid-template-rows:auto auto;align-items:start;gap:var(--space-xl)}.timeline-card--has-photo .timeline-card__photo-wrap{grid-column:1 / -1;grid-row:1;justify-self:center;max-width:min(360px,90vw)}.timeline-card--collage .timeline-card__photo-wrap{max-width:min(340px,90vw)}.timeline-card__photo-overlay{padding:1rem 1rem .9rem}.timeline-card__photo-label{font-size:.98rem}.timeline-card__photo-description{font-size:.8rem}.timeline-card__collage-item{width:min(130px,38vw)}.timeline-card--has-photo .timeline-card__row{grid-column:1 / -1;grid-row:2;justify-self:stretch}.timeline-card--has-photo.timeline-card--right .timeline-card__row{flex-direction:row}.timeline-card__connector-svg{display:none}.timeline-card--has-photo .timeline-card__row{justify-content:center}.timeline-card__meta{min-width:auto}.timeline-card__step{font-size:1.1rem}.timeline-card__inner{padding:.85rem 1rem;max-width:min(44vw,180px)}.timeline-card__label{font-size:.95rem;line-height:1.3;overflow-wrap:anywhere}.timeline-card__description{font-size:.8rem;line-height:1.35}.timeline-card__icon svg{width:26px;height:26px}.timeline-card--muted .timeline-card__photo-wrap{transform:scale(.9);filter:saturate(.68) brightness(.72)}.timeline-card--focus .timeline-card__photo-wrap{transform:scale(1.01);filter:saturate(1.06) brightness(1.05);opacity:1}.timeline-card--focus .timeline-card__photo{box-shadow:0 0 0 1px #ffffff38,0 10px 26px #00000047,0 0 34px rgba(var(--rgb-gold),.2)}.timeline-card--focus.timeline-card--violet .timeline-card__photo{box-shadow:0 0 0 1px #ffffff38,0 10px 26px #00000047,0 0 34px rgba(var(--rgb-rose),.2)}}.card-particles{position:absolute;inset:-20px;pointer-events:none;z-index:2;overflow:hidden;border-radius:var(--radius-lg)}.card-particle{position:absolute;border-radius:50%;background:#fff;opacity:0;animation:cardParticleFloat ease-in-out infinite;box-shadow:0 0 6px currentColor;will-change:transform,opacity}.card-particle--cyan{color:var(--accent-cyan);background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.9),var(--accent-cyan));box-shadow:0 0 8px var(--accent-cyan-soft),0 0 4px var(--accent-cyan)}.card-particle--violet{color:var(--accent-violet);background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.9),var(--accent-violet));box-shadow:0 0 8px var(--accent-violet-soft),0 0 4px var(--accent-violet)}@media(prefers-reduced-motion:reduce){.card-particles{display:none}}@keyframes cardParticleFloat{0%{opacity:0;transform:translate(0) scale(.4)}15%{opacity:.7;transform:translate(6px,-12px) scale(.9)}85%{opacity:.6;transform:translate(-4px,-40px) scale(.6)}to{opacity:0;transform:translateY(-55px) scale(0)}}.footer{scroll-snap-align:start;position:relative;padding:clamp(1.25rem,5vw,2.25rem) var(--section-padding) clamp(4rem,12vw,6rem);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.25rem;z-index:1;background:transparent}.footer__infinity{opacity:0;transform:translateY(10px);transition:opacity .9s var(--ease-out) .55s,transform 1.1s var(--ease-out) .55s,filter 1.1s var(--ease-out) .55s;filter:drop-shadow(0 0 20px rgba(var(--rgb-rose),.18))}.footer--visible .footer__infinity{opacity:1;transform:translateY(0);filter:drop-shadow(0 0 26px rgba(var(--rgb-rose),.24))}.footer__text{margin:0;font-family:var(--font-hero-subtitle);font-size:1.1rem;font-weight:500;color:#fdf8f5d6;letter-spacing:.03em;opacity:0;transform:translateY(10px);transition:opacity 1.6s var(--ease-out) .15s,transform 1.8s var(--ease-out) .15s}.footer--visible .footer__text{opacity:.9;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.footer__text{transition:none}}.stars-bg{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.stars-bg__inner{position:relative;width:100%;will-change:transform}.star{position:absolute;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 3px #ffffff80}.star--small{background:#ffffffe6}.star--medium{background:#fffffff2;box-shadow:0 0 4px #fff9,0 0 8px var(--accent-gold-soft)}.star--large{background:#fff;box-shadow:0 0 5px #fffc,0 0 12px var(--accent-gold-soft)}.star--cyan{background:rgba(var(--rgb-gold),.9);box-shadow:0 0 4px var(--accent-cyan-soft)}.star--violet{background:rgba(var(--rgb-rose),.85);box-shadow:0 0 4px var(--accent-violet-soft)}.star--twinkle{animation:starTwinkle ease-in-out infinite}@keyframes starTwinkle{0%,to{opacity:.4;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}}@media(prefers-reduced-motion:reduce){.star--twinkle{animation:none}}.particles{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.particle{position:absolute;width:4px;height:4px;border-radius:50%;background:#ffffff80;filter:blur(1px);animation:float linear infinite}.particle--cyan{background:var(--accent-cyan);box-shadow:0 0 10px var(--accent-cyan-glow);opacity:.7}.particle--violet{background:var(--accent-violet);box-shadow:0 0 10px var(--accent-violet-glow);opacity:.6}.particle--white{background:#fffc;opacity:.4}@media(prefers-reduced-motion:reduce){.particle{animation:none;opacity:.5}}@keyframes float{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:.6}90%{opacity:.3}to{transform:translateY(-100vh) scale(1);opacity:0}}.app:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(var(--rgb-gold),.06) 0%,transparent 50%);pointer-events:none;z-index:0}.app:after{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 60% 40% at 80% 100%,rgba(var(--rgb-rose),.05) 0%,transparent 50%);pointer-events:none;z-index:0}.photo-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--section-padding);background:radial-gradient(ellipse 80% 80% at 50% 50%,#1a1412e0,#120e0cf5);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.photo-lightbox:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none}.photo-lightbox__backdrop{position:absolute;inset:0;border:none;background:transparent;cursor:pointer;padding:0}.photo-lightbox__counter{position:absolute;bottom:var(--section-padding);left:50%;transform:translate(-50%);z-index:12;font-size:.8rem;font-weight:500;color:#fff9;letter-spacing:.08em}.photo-lightbox__content{position:relative;width:100%;max-width:90vw;max-height:85vh;display:flex;flex-direction:column;align-items:center;gap:1rem;pointer-events:none}.photo-lightbox__slide{position:relative;width:100%;display:flex;flex-direction:column;align-items:center;gap:1rem}.photo-lightbox__text-block{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;max-width:28em;padding:0 1rem}.photo-lightbox__caption{margin:0;font-family:var(--font-heading);font-size:clamp(1rem,2.5vw,1.2rem);font-weight:600;color:#fffffff2;letter-spacing:.04em}.photo-lightbox__date{display:block;font-size:.8rem;font-weight:500;color:#ffffffa6;letter-spacing:.12em;text-transform:uppercase}.photo-lightbox__description{margin:.5rem 0 0;font-family:var(--font-hero-subtitle);font-size:clamp(.95rem,2.2vw,1.05rem);font-weight:400;line-height:1.55;color:#ffffffe0;letter-spacing:.02em}.photo-lightbox__backdrop+.photo-lightbox__content{pointer-events:auto}.photo-lightbox__image-wrap .photo-lightbox__image{opacity:0;transition:opacity .4s var(--ease-out)}.photo-lightbox__image-wrap .photo-lightbox__image--loaded{opacity:1}.photo-lightbox__text{text-align:center;padding:0 1rem;max-width:24em}.photo-lightbox__meta{display:block;font-size:.8rem;font-weight:500;color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.35rem}.photo-lightbox__label{display:block;font-family:var(--font-heading);font-size:1.25rem;font-weight:600;color:var(--text-primary);letter-spacing:.04em;margin-bottom:.35rem}
