:root{--paper:#f8f4ed;--paper-deep:#eee7da;--card:#fffdf9;--ink:#142a2d;--ink-soft:#4d5f61;--teal:#0f6e70;--teal-deep:#0b3f42;--teal-bright:#14918f;--teal-soft:#7fd1cc;--red:#cf2338;--red-soft:#ff8a94;--line:#e2dacb;--serif:"Fraunces", Georgia, "Times New Roman", serif;--sans:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--hand:"Caveat", "Bradley Hand", cursive;--radius:14px;--shadow:0 1px 2px #0834380f, 0 12px 32px -12px #0834382e}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font:400 1.0625rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;margin:0}img{max-width:100%;display:block}a{color:var(--teal);text-decoration-color:var(--teal-bright);text-underline-offset:3px}h1,h2,h3{font-family:var(--serif);letter-spacing:-.01em;color:var(--teal-deep);margin:0 0 .5em;font-weight:400;line-height:1.15}h1{font-size:clamp(2.5rem,6vw,4rem)}h2{font-size:clamp(1.75rem,3.5vw,2.4rem)}h3{font-size:1.35rem}.wrap{width:min(1120px,100% - 32px);margin-inline:auto}.wrap.narrow{width:min(760px,100% - 32px)}.center{text-align:center}.eyebrow{font:600 .8rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--teal-bright);margin:0 0 1.25rem}.site-header{z-index:10;backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line);background:#f8f4ede0;position:sticky;top:0}.site-header:before,.site-footer:before{content:"";background:linear-gradient(90deg, var(--red) 0 50%, var(--teal-bright) 50% 100%);height:5px;display:block}.site-footer:before{margin:-56px 0 56px}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.brand{font:500 1.15rem/1 var(--serif);color:var(--teal-deep);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-star{fill:none;width:20px;height:20px;stroke:var(--red);stroke-width:1.6px;stroke-linejoin:round}.site-header ul{gap:4px;margin:0;padding:0;list-style:none;display:flex}.site-header nav a{color:var(--ink-soft);border-radius:999px;padding:8px 14px;font-size:.95rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:block}.site-header nav a:hover{color:var(--teal-deep);background:var(--paper-deep)}.site-header nav a[aria-current=page]{color:var(--paper);background:var(--teal)}.button{border:1.5px solid var(--teal);background:var(--teal);color:var(--paper);font:600 .95rem/1 var(--sans);letter-spacing:.02em;border-radius:999px;justify-content:center;align-items:center;padding:13px 26px;text-decoration:none;transition:transform .15s,background .15s;display:inline-flex}.button:hover{background:var(--teal-deep);transform:translateY(-1px)}.button.ghost{color:var(--teal);background:0 0}.button.ghost:hover{background:var(--paper-deep)}.link-button{border:1px solid var(--line);color:var(--teal);background:var(--paper);border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.link-button:hover{border-color:var(--teal-bright)}.hero{background:radial-gradient(60% 50% at 85% 40%,#14918f24,#0000 70%),radial-gradient(50% 60% at 10% 90%,#ce203714,#0000 70%);padding:clamp(48px,8vw,96px) 0 clamp(56px,8vw,104px);position:relative;overflow:hidden}.hero:before{content:"";opacity:.5;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cpath d='M32 26l5.2 9H26.8zM32 38l-5.2-9h10.4z' fill='none' stroke='%23149190' stroke-opacity='.22' stroke-width='.8'/%3E%3C/svg%3E");position:absolute;inset:0;mask-image:linear-gradient(#000,#0000 90%)}.hero-grid{grid-template-columns:1.05fr 1fr;align-items:center;gap:clamp(32px,6vw,72px);display:grid;position:relative}.hero-title{margin:0;line-height:.95}.hero-name{font-family:var(--serif);color:var(--red);font-size:clamp(3rem,7vw,5.25rem);font-style:italic;font-weight:400;display:block}.hero-event{letter-spacing:-.025em;font-size:clamp(3.25rem,8vw,6.25rem);display:block}.hero-subtitle{font:italic 400 clamp(1.3rem, 2.4vw, 1.7rem) / 1.3 var(--serif);color:var(--ink-soft);margin:.75rem 0 0}.hero-when{border-block:1px solid var(--line);letter-spacing:.04em;color:var(--teal);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:1.75rem 0 0;padding:14px 0;font-weight:500;display:flex}.dot{background:var(--red);border-radius:50%;width:5px;height:5px}.countdown{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:420px;margin:1.75rem 0 2rem;display:grid}.countdown div{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 4px 10px}.countdown span{font:500 clamp(1.5rem, 3vw, 2rem) / 1 var(--serif);font-variant-numeric:tabular-nums;color:var(--teal-deep);display:block}.countdown small{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px;font-size:.7rem;font-weight:600;display:block}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-photos{aspect-ratio:1/1.02;justify-self:center;width:100%;max-width:520px;position:relative}.print{background:#fff;border-radius:4px;width:66%;margin:0;padding:10px 10px 0;position:absolute;box-shadow:0 2px 4px #08343814,0 24px 48px -16px #08343859}.print img{aspect-ratio:1;object-fit:cover;border-radius:2px;width:100%;height:auto}.print figcaption{text-align:center;font:600 1.75rem/1.2 var(--hand);color:var(--ink-soft);padding:4px 0 8px}.print-then{top:0;left:0;transform:rotate(-6deg)}.print-then figcaption{text-align:left;padding-left:18px}.print-now{bottom:0;right:0;transform:rotate(4deg)}.section{padding:clamp(56px,8vw,96px) 0}.welcome{background:var(--card);border-block:1px solid var(--line)}.ornament{background:linear-gradient(var(--teal-bright), var(--teal-bright)) left center / 44px 1px no-repeat, linear-gradient(var(--teal-bright), var(--teal-bright)) right center / 44px 1px no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 20.66 17H3.34ZM12 22 3.34 7h17.32Z' fill='none' stroke='%23cf2338' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px 18px no-repeat;width:120px;height:18px;margin:0 auto 1.5rem;display:block}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p,.prose ul,.prose ol{margin:0 0 1em}.prose h2,.prose h3{margin-top:1.6em}.prose li+li{margin-top:.35em}.prose strong{color:var(--teal-deep);font-weight:600}.prose img{border-radius:var(--radius);margin:1.5em 0}.lead{color:var(--ink-soft);font-size:1.2rem}.glance-days{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:2.5rem 0 0;padding:0;list-style:none;display:grid}.glance-day{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px 18px}.glance-day:nth-child(2){background:var(--teal);border-color:var(--teal);border-top:5px solid var(--red);color:var(--paper)}.glance-weekday{font:500 1.6rem/1.1 var(--serif);margin:0}.glance-day:nth-child(2) .glance-weekday{color:#fff}.glance-date{letter-spacing:.16em;text-transform:uppercase;color:var(--teal-bright);margin:4px 0 16px;font-size:.8rem;font-weight:600}.glance-day:nth-child(2) .glance-date{color:var(--teal-soft)}.glance-day ul{margin:0;padding:0;list-style:none}.glance-day li+li{border-top:1px solid var(--line)}.glance-day:nth-child(2) li+li{border-color:#ffffff26}.glance-day a{color:inherit;gap:2px;padding:12px 0;text-decoration:none;display:grid}.glance-day a:hover .glance-title{text-decoration:underline;text-decoration-color:var(--teal-bright)}.glance-time{color:var(--red);font-size:.85rem;font-weight:600}.glance-day:nth-child(2) .glance-time{color:var(--red-soft)}.glance-title{font-weight:500}.glance-venue{opacity:.75;font-size:.9rem}.page-head{padding:clamp(48px,7vw,88px) 0 clamp(8px,2vw,16px)}.page-head h1{margin:0}.page-intro{max-width:34em;color:var(--ink-soft);margin:1rem auto 0;font-size:1.15rem}.schedule{padding-top:clamp(32px,5vw,56px)}.day{border-top:1px solid var(--line);grid-template-columns:220px 1fr;gap:32px;padding:40px 0;display:grid}.day:first-child{border-top:0;padding-top:0}.day-label{align-self:start;position:sticky;top:96px}.day-weekday{font:400 2.25rem/1 var(--serif);color:var(--teal-deep);margin:0}.day-date{letter-spacing:.16em;text-transform:uppercase;color:var(--teal-bright);margin:8px 0 0;font-size:.8rem;font-weight:600}.day-events{gap:20px;display:grid}.event{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--teal-bright);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(22px,3vw,32px);scroll-margin-top:96px}.event:target{border-left-color:var(--red)}.event-time{color:var(--red);margin:0 0 6px;font-size:.95rem;font-weight:600}.event-title{margin-bottom:.4em;font-size:clamp(1.5rem,2.6vw,1.9rem)}.event-place{color:var(--ink-soft);margin:0 0 14px;display:grid}.event-place strong{color:var(--ink);font-weight:600}.chip{background:var(--paper-deep);border-radius:999px;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 16px;padding:6px 14px;font-size:.9rem;font-weight:500;display:inline-flex}.chip span{letter-spacing:.14em;text-transform:uppercase;color:var(--teal-bright);font-size:.7rem;font-weight:600}.event .prose{color:var(--ink-soft)}.event-actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.cards{gap:20px;margin-bottom:48px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(24px,4vw,40px)}.card-label{letter-spacing:.18em;text-transform:uppercase;color:var(--teal-bright);margin:0 0 10px;font-size:.75rem;font-weight:600}.card-title{font-size:clamp(1.5rem,3vw,2rem)}.card-contact{color:var(--ink-soft);margin:0 0 16px;display:grid}.card>p{margin:0 0 1em}.card .button{margin-top:8px}.site-footer{text-align:center;background:var(--teal-deep);color:#f8f4edbf;padding:56px 0}.footer-note{font:italic 400 1.5rem/1.3 var(--serif);color:var(--paper);margin:0}.footer-meta{letter-spacing:.16em;text-transform:uppercase;color:var(--teal-soft);margin:10px 0 0;font-size:.8rem;font-weight:600}@media (width<=860px){.hero-grid{grid-template-columns:1fr}.hero-photos{order:-1;max-width:380px}.day{grid-template-columns:1fr;gap:16px}.day-label{position:static}}@media (width<=560px){.header-inner{justify-content:center;padding:10px 0}.site-header nav a{padding:6px 12px}.countdown{gap:6px}.hero-actions .button{flex:1}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
