:root{--paper:#fffdf9;--blue:#cfe3f1;--blue-d:#6f9fc0;--yellow:#fbe9a8;--yellow-d:#c99a2e;--ink:#4a4358;--soft:#857e92;
--serif:"Cormorant Garamond",Georgia,serif;--sans:"Jost",system-ui,sans-serif;--script:"Dancing Script","Segoe Script",cursive}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--paper);-webkit-text-size-adjust:100%}
body{margin:0 auto;max-width:30rem;background:var(--paper);color:var(--ink);font:300 1rem/1.65 var(--sans);overflow-x:hidden}
.hero{text-align:center;padding:calc(env(safe-area-inset-top) + 7dvh) 1.5rem 5rem;background:radial-gradient(120% 45% at 15% 0,var(--blue) 0,rgba(207,227,241,0) 70%),radial-gradient(120% 45% at 90% 12%,var(--yellow) 0,rgba(251,233,168,0) 70%)}
.bow{width:min(62vw,15rem);height:auto;display:block;margin:0 auto .4rem;overflow:visible}
.bow .tail{fill:none;stroke-width:14;stroke-dasharray:1;animation:draw 1.8s .5s ease-out both}
.bow .loops{transform-origin:120px 74px;animation:pop 1.1s cubic-bezier(.3,1.4,.5,1) both}
@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
h1{margin:0;font:400 clamp(2.6rem,13vw,3.6rem)/1 var(--serif);display:flex;justify-content:center;align-items:flex-start;gap:.5rem}
h1 b{font-weight:500;display:block}
.who small{display:block;font:500 1.05rem/1.4 var(--script);color:var(--blue-d);margin-top:.15rem}
.who:last-child small{color:var(--yellow-d)}
.amp{font-style:italic;color:var(--soft);font-size:.8em;padding-top:.2em}
.intro{margin:1.8rem auto 0;font:italic 400 1.2rem/1.55 var(--serif);color:var(--soft)}
.dates{display:grid;gap:1rem;margin:2.2rem 0 0}
.dates dt{font:500 1.05rem var(--script);color:var(--blue-d)}
.dates dd{margin:0;font:400 1.4rem/1.3 var(--serif)}
.timeline{position:relative;padding:1.5rem 1rem 3rem 2.7rem}
.timeline::before{content:"";position:absolute;left:.4rem;top:0;bottom:0;width:28px;opacity:.9;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='120' viewBox='0 0 28 120'%3E%3Cg fill='none' stroke-width='3.5' stroke-linecap='round'%3E%3Cpath d='M5 0C5 30 23 30 23 60C23 90 5 90 5 120' stroke='%238fb7d3'/%3E%3Cpath d='M23 0C23 30 5 30 5 60C5 90 23 90 23 120' stroke='%23e6c35a'/%3E%3C/g%3E%3C/svg%3E") repeat-y}
.status{color:var(--soft);padding:1.5rem 0}
.group{position:relative;margin:0 0 3.8rem}
.group::before{content:"";position:absolute;left:-2.25rem;top:.15rem;width:26px;height:18px;background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='18' viewBox='0 0 26 18'%3E%3Cpath d='M13 9C9 0 1 1 2 9C3 17 10 16 13 9Z' fill='%23cfe3f1' stroke='%238fb7d3'/%3E%3Cpath d='M13 9C17 0 25 1 24 9C23 17 16 16 13 9Z' fill='%23fbe9a8' stroke='%23c99a2e'/%3E%3Ccircle cx='13' cy='9' r='2.6' fill='%23c99a2e'/%3E%3C/svg%3E") center/contain no-repeat;border-radius:9px;outline:5px solid var(--paper)}
.group time{font:500 1.2rem/1.4 var(--script);color:var(--blue-d)}
.group h2{font:500 italic 2.3rem/1.1 var(--serif);margin:.1rem 0 .6rem}
.group .desc{margin:0 0 1.4rem;white-space:pre-line;font:400 1.15rem/1.55 var(--serif);color:var(--ink);padding-left:.9rem;border-left:2px solid var(--blue)}
.day-label{font:500 1.05rem var(--script);color:var(--blue-d);margin:1.5rem 0 .7rem}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.9rem .7rem}
.item{aspect-ratio:4/5;border:0;padding:6px;border-radius:4px;overflow:hidden;position:relative;touch-action:manipulation;box-shadow:0 6px 16px rgba(120,90,120,.14);background:linear-gradient(135deg,var(--blue),var(--yellow)) content-box,#fff padding-box;transform:rotate(-1.1deg)}
.item:nth-child(even){transform:rotate(1deg)}
.item:nth-child(3n){transform:rotate(.4deg)}
.item img,.item video{width:100%;height:100%;object-fit:cover;display:block;border-radius:2px;opacity:0;transition:opacity .7s}
.item.ready img,.item.ready video{opacity:1}
.item.vid::after{content:"▶";position:absolute;right:.9rem;bottom:.8rem;color:#fff;font-size:.9rem;text-shadow:0 1px 6px rgba(0,0,0,.45)}
.foot{text-align:center;padding:1rem 1rem calc(3rem + env(safe-area-inset-bottom))}
.foot::before{content:"";display:block;width:52px;height:36px;margin:0 auto .6rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='18' viewBox='0 0 26 18'%3E%3Cpath d='M13 9C9 0 1 1 2 9C3 17 10 16 13 9Z' fill='%23cfe3f1' stroke='%238fb7d3'/%3E%3Cpath d='M13 9C17 0 25 1 24 9C23 17 16 16 13 9Z' fill='%23fbe9a8' stroke='%23c99a2e'/%3E%3Ccircle cx='13' cy='9' r='2.6' fill='%23c99a2e'/%3E%3C/svg%3E") center/contain no-repeat}
.foot p{margin:0;font:500 1.25rem var(--script);color:var(--yellow-d)}
.lightbox{position:fixed;inset:0;height:100dvh;background:rgba(255,253,249,.98);display:flex;align-items:center;justify-content:center;z-index:10;overscroll-behavior:contain;touch-action:pan-y pinch-zoom}
.lightbox[hidden]{display:none}
.lb-stage{width:100%;display:flex;justify-content:center}
.lb-stage img,.lb-stage video{max-width:100vw;max-height:80dvh;border-radius:6px}
.lb-close{position:absolute;top:calc(env(safe-area-inset-top) + .3rem);right:.4rem;width:3rem;height:3rem;background:none;border:0;font:300 2.4rem/1 var(--sans);color:var(--ink)}
.lb-share{position:absolute;top:calc(env(safe-area-inset-top) + .5rem);left:.8rem;height:2.75rem;padding:0 1.2rem;border:0;border-radius:999px;background:var(--blue);color:var(--ink);font:500 1.15rem var(--script)}
.lb-count{position:absolute;bottom:calc(env(safe-area-inset-bottom) + 1.2rem);left:0;right:0;text-align:center;font:500 1.1rem var(--script);color:var(--soft)}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
