:root{--water:#0b2f52;--water-deep:#071526;--horizon:#f2a65a;--paper:#f3f0e8;--paper-dim:#c5d3df;--gold:#e9b949;--lilac:#cdb0e6;--ink:#05101f;--surface:color-mix(in oklab, var(--paper) 5%, transparent);--surface-strong:color-mix(in oklab, var(--paper) 9%, transparent);--line:color-mix(in oklab, var(--gold) 26%, transparent);--line-soft:color-mix(in oklab, var(--paper) 12%, transparent);--gold-soft:color-mix(in oklab, var(--gold) 55%, var(--paper));--glow:color-mix(in oklab, var(--gold) 30%, transparent);--font-display:"Fraunces", "Iowan Old Style", Georgia, serif;--font-body:"Newsreader", "Iowan Old Style", Georgia, serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--ease-out:cubic-bezier(.2, .7, .2, 1);--ease-soft:cubic-bezier(.4, 0, .2, 1);--measure:40rem;--gutter:clamp(1rem, 4vw, 2rem);--route-x:1.25rem;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--water-deep);min-height:100vh;color:var(--paper);font-family:var(--font-body);font-variation-settings:"opsz" 18;-webkit-font-smoothing:antialiased;margin:0;font-size:clamp(1.0625rem,1rem + .3vw,1.1875rem);line-height:1.6;overflow-x:hidden}::selection{background:color-mix(in oklab, var(--gold) 70%, transparent);color:var(--ink)}a{color:var(--gold-soft);-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);text-underline-offset:.18em}a:hover{color:var(--gold)}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.grain{pointer-events:none;z-index:6;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:240px 240px;position:fixed;inset:0}#leaves{pointer-events:none;z-index:2;position:fixed;inset:0;overflow:hidden}#leaves svg{opacity:.75;filter:drop-shadow(0 2px 6px #00000040);will-change:transform;position:absolute;top:-30px}body{--sky-top:color-mix(in oklab, var(--water) 82%, var(--horizon));--sky-mid:color-mix(in oklab, var(--water) 55%, var(--horizon));--sky-horizon:color-mix(in oklab, var(--horizon) 78%, var(--water));--sun:var(--horizon);--sun-y:62%;--sun-opacity:.9;--star-opacity:0}body[data-sky=dawn]{--sky-top:color-mix(in oklab, var(--water) 60%, var(--lilac));--sky-mid:color-mix(in oklab, var(--lilac) 55%, var(--horizon));--sky-horizon:color-mix(in oklab, var(--horizon) 70%, var(--paper));--sun:color-mix(in oklab, var(--horizon) 60%, var(--paper));--sun-y:66%;--sun-opacity:.85}body[data-sky=day]{--sky-top:color-mix(in oklab, var(--water) 58%, #9ccbe8);--sky-mid:color-mix(in oklab, var(--water) 40%, #b9dcf0);--sky-horizon:color-mix(in oklab, var(--paper) 55%, #b9dcf0);--sun:color-mix(in oklab, var(--gold) 40%, var(--paper));--sun-y:22%;--sun-opacity:.9}body[data-sky=dusk]{--sky-top:color-mix(in oklab, var(--water) 82%, var(--horizon));--sky-mid:color-mix(in oklab, var(--water) 50%, var(--horizon));--sky-horizon:color-mix(in oklab, var(--horizon) 82%, var(--water));--sun-y:64%}body[data-sky=night]{--sky-top:color-mix(in oklab, var(--water-deep) 85%, black);--sky-mid:color-mix(in oklab, var(--water-deep) 70%, var(--water));--sky-horizon:var(--water);--sun:var(--paper);--sun-y:28%;--sun-opacity:.8;--star-opacity:1}.gate{z-index:1000;padding:var(--gutter);background:radial-gradient(120% 60% at 50% 110%, color-mix(in oklab, var(--horizon) 35%, transparent), transparent 60%), linear-gradient(180deg, color-mix(in oklab, var(--water-deep) 90%, black) 0%, var(--water) 60%, color-mix(in oklab, var(--water) 70%, var(--horizon)) 100%);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.gate:before,.gate:after{content:"";background:radial-gradient(60% 100% at 50% 100%, color-mix(in oklab, var(--paper) 10%, transparent), transparent 70%);opacity:.5;pointer-events:none;height:40vh;animation:28s linear infinite gate-wave;position:absolute;bottom:-8vh;left:-20%;right:-20%;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 100' preserveAspectRatio='none'%3E%3Cpath d='M0 40 Q50 20 100 40 T200 40 T300 40 T400 40 V100 H0Z' fill='%23000'/%3E%3C/svg%3E") 0 0/600px 100% repeat-x;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 100' preserveAspectRatio='none'%3E%3Cpath d='M0 40 Q50 20 100 40 T200 40 T300 40 T400 40 V100 H0Z' fill='%23000'/%3E%3C/svg%3E") 0 0/600px 100% repeat-x}.gate:after{opacity:.3;animation-duration:41s;animation-direction:reverse;bottom:-18vh;-webkit-mask-size:900px 100%;mask-size:900px 100%}@keyframes gate-wave{to{transform:translate(600px)}}.gate.is-torn{animation:gate-tear .9s var(--ease-soft) forwards}@keyframes gate-tear{0%{clip-path:inset(0);opacity:1}60%{clip-path:inset(0);opacity:1}to{clip-path:inset(50% 0);opacity:0}}.ticket{z-index:1;width:min(100%,26rem);color:var(--ink);filter:drop-shadow(0 30px 60px #00000073);animation:ticket-in 1.1s var(--ease-out) both;margin:0;position:relative}@keyframes ticket-in{0%{opacity:0;transform:translateY(28px)rotate(-1.5deg)}to{opacity:1;transform:none}}.ticket.is-shaking{animation:ticket-shake .5s var(--ease-soft)}@keyframes ticket-shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)rotate(-.6deg)}40%{transform:translate(9px)rotate(.5deg)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}.ticket-stub,.ticket-body{background:var(--paper);background-image:radial-gradient(circle at 10% 20%,#ffffff80,#0000 40%),linear-gradient(#fbf8f1,#efe9dc);padding:1.5rem 1.75rem}.ticket-stub{border-radius:18px 18px 0 0;padding-bottom:1.25rem}.ticket-body{text-align:center;border-radius:0 0 18px 18px;padding-top:1.25rem}.ticket-perf{border-top:2px dashed color-mix(in oklab, var(--ink) 20%, transparent);background:var(--paper);height:0;position:relative}.ticket-perf:before,.ticket-perf:after{content:"";background:var(--water);border-radius:50%;width:22px;height:22px;position:absolute;top:-12px}.ticket-perf:before{left:-11px}.ticket-perf:after{right:-11px}.ticket-eyebrow,.ticket-label,.pin-hint,.ticket-meta{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in oklab, var(--ink) 55%, var(--paper));margin:0;font-size:.72rem}.ticket-eyebrow{justify-content:space-between;gap:1rem;display:flex}.ticket-title{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 60, "WONK" 1;letter-spacing:-.01em;color:var(--ink);margin:.6rem 0 .4rem;font-size:clamp(1.9rem,1.4rem + 2vw,2.4rem);font-weight:500;line-height:1.02}.ticket-title em{color:color-mix(in oklab, var(--water) 75%, var(--ink));font-style:italic;font-weight:400}.ticket-meta{border-top:1px solid color-mix(in oklab, var(--ink) 12%, transparent);text-transform:none;letter-spacing:.02em;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:1rem;padding-top:.9rem;font-size:.8rem;display:grid}.ticket-meta b{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in oklab, var(--ink) 45%, var(--paper));margin-bottom:.1rem;font-size:.62rem;font-weight:500;display:block}.pin-field{margin:1rem auto .5rem;display:inline-block;position:relative}.pin-slots{justify-content:center;gap:.75rem;display:flex}.pin-slots span{border:1.5px solid color-mix(in oklab, var(--ink) 22%, transparent);width:3rem;height:3.6rem;transition:border-color .2s, transform .2s var(--ease-out), background .2s;background:#ffffff8c;border-radius:10px;place-items:center;display:grid}.pin-slots span:after{content:"";background:var(--ink);width:.7rem;height:.7rem;transition:transform .22s var(--ease-out);border-radius:50%;transform:scale(0)}.pin-slots span.is-filled{border-color:var(--water);background:#fff}.pin-slots span.is-filled:after{transform:scale(1)}.pin-slots span.is-active{border-color:var(--water);transform:translateY(-2px)}.pin-input{opacity:0;letter-spacing:1.2em;text-align:center;color:#0000;caret-color:#0000;cursor:pointer;background:0 0;border:0;width:100%;height:100%;font-size:1.5rem;position:absolute;inset:0}.pin-input:focus{outline:none}.pin-field:focus-within .pin-slots{outline:2px solid var(--water);outline-offset:6px;border-radius:12px}.ticket-button{background:var(--water);color:var(--paper);font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:transform .2s var(--ease-out), background .2s, box-shadow .2s;box-shadow:0 8px 20px color-mix(in oklab, var(--water) 40%, transparent);border:0;border-radius:999px;margin-top:.5rem;padding:.8rem 2.2rem;font-size:.8rem;display:inline-block}.ticket-button:hover{background:color-mix(in oklab, var(--water) 85%, var(--ink));transform:translateY(-2px)}.ticket-button:active{transform:translateY(0)}.pin-error{color:#a6361f;min-height:1.4em;margin:.8rem 0 0;font-size:.92rem}.pin-hint{text-transform:none;letter-spacing:.02em;margin-top:.6rem;font-size:.78rem}.hero{isolation:isolate;background:linear-gradient(180deg, var(--sky-top) 0%, var(--sky-mid) 48%, var(--sky-horizon) 68%, var(--water) 72%, var(--water-deep) 100%);min-height:min(100svh,60rem);transition:background 2.5s var(--ease-soft);align-content:end;display:grid;position:relative;overflow:hidden}.hero:before{content:"";z-index:0;opacity:var(--star-opacity);transition:opacity 2.5s var(--ease-soft);background-image:radial-gradient(1px 1px at 12% 18%, var(--paper) 50%, transparent 51%), radial-gradient(1.2px 1.2px at 28% 42%, var(--paper) 50%, transparent 51%), radial-gradient(1px 1px at 41% 12%, var(--paper) 50%, transparent 51%), radial-gradient(1.4px 1.4px at 57% 33%, var(--paper) 50%, transparent 51%), radial-gradient(1px 1px at 66% 8%, var(--paper) 50%, transparent 51%), radial-gradient(1px 1px at 74% 48%, var(--paper) 50%, transparent 51%), radial-gradient(1.3px 1.3px at 83% 22%, var(--paper) 50%, transparent 51%), radial-gradient(1px 1px at 91% 39%, var(--paper) 50%, transparent 51%), radial-gradient(1px 1px at 8% 55%, var(--paper) 50%, transparent 51%), radial-gradient(1.1px 1.1px at 35% 62%, var(--paper) 50%, transparent 51%), radial-gradient(1px 1px at 49% 52%, var(--paper) 50%, transparent 51%), radial-gradient(1px 1px at 95% 60%, var(--paper) 50%, transparent 51%), radial-gradient(1px 1px at 20% 30%, var(--paper) 50%, transparent 51%), radial-gradient(1px 1px at 61% 70%, var(--paper) 50%, transparent 51%);animation:6s ease-in-out infinite alternate twinkle;position:absolute;inset:0 0 35%}@keyframes twinkle{0%{filter:brightness(.7)}to{filter:brightness(1.2)}}.hero-scene{z-index:0;pointer-events:none;position:absolute;inset:0}.hero-scene svg{width:100%;height:100%;position:absolute;inset:0}.scene-sun{fill:var(--sun);opacity:var(--sun-opacity);transform:translateY(calc(var(--sun-y) - 60%));transform-box:view-box;transition:transform 2.5s var(--ease-soft), fill 2.5s, opacity 2.5s;filter:blur(.4px)}.scene-sun-halo{fill:var(--sun);opacity:calc(var(--sun-opacity) * .25);transform:translateY(calc(var(--sun-y) - 60%));transform-box:view-box;transition:transform 2.5s var(--ease-soft), fill 2.5s, opacity 2.5s;filter:blur(28px)}.scene-land{fill:color-mix(in oklab, var(--ink) 80%, var(--water))}.scene-bridge{fill:none;stroke:color-mix(in oklab, var(--ink) 88%, var(--water))}.scene-bridge-fill{fill:color-mix(in oklab, var(--ink) 88%, var(--water))}.scene-light{fill:var(--gold);animation:3.4s ease-in-out infinite light-flicker}.scene-light:nth-child(3n){animation-delay:-1.1s}.scene-light:nth-child(3n+1){animation-delay:-2.3s}@keyframes light-flicker{0%,to{opacity:.55}50%{opacity:1}}.scene-shimmer{fill:url(#shimmer-grad);opacity:calc(var(--sun-opacity) * .5);transition:opacity 2.5s;animation:7s ease-in-out infinite shimmer-breathe}@keyframes shimmer-breathe{0%,to{transform:scaleX(1)}50%{transform:scaleX(1.06)}}.scene-shimmer{transform-origin:50%;transform-box:fill-box}.scene-wave{will-change:transform}.scene-wave-1{fill:color-mix(in oklab, var(--water) 88%, var(--sky-horizon));animation:26s linear infinite wave-drift}.scene-wave-2{fill:color-mix(in oklab, var(--water) 92%, var(--water-deep));animation:19s linear infinite reverse wave-drift}.scene-wave-3{fill:var(--water-deep);animation:33s linear infinite wave-drift}@keyframes wave-drift{0%{transform:translate(0)}to{transform:translate(-720px)}}.hero-copy{z-index:3;width:min(100%,68rem);padding:clamp(6rem, 18vh, 10rem) var(--gutter) clamp(3rem, 8vh, 5rem);text-align:center;text-shadow:0 2px 30px color-mix(in oklab, var(--water-deep) 70%, transparent);margin:0 auto;position:relative}.hero-copy:before{content:"";z-index:-1;background:radial-gradient(60% 65% at 50% 55%, color-mix(in oklab, var(--water-deep) 72%, transparent), transparent 78%);pointer-events:none;position:absolute;inset:10% -20% -10%}.eyebrow{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft);margin:0 0 1.25rem;font-size:.74rem}.eyebrow:before,.eyebrow:after{content:"";background:var(--line);vertical-align:middle;width:2rem;height:1px;margin:0 .9rem;display:inline-block}.hero-title{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;margin:0;font-weight:400;line-height:.92}.hero-name{font-variation-settings:"opsz" 144, "SOFT" 30, "WONK" 1;font-size:clamp(4.2rem,3rem + 11vw,11rem);font-weight:300;display:block}.hero-age{font-variation-settings:"opsz" 144, "SOFT" 100, "WONK" 1;color:var(--gold-soft);letter-spacing:0;margin-top:.1em;font-size:clamp(2rem,1.4rem + 4.2vw,4.4rem);font-style:italic;font-weight:300;display:block}.hero-age:before{content:"is ";color:var(--paper-dim)}body.is-birthday .hero-age:before{content:""}.hero-line{max-width:34rem;color:var(--paper);text-wrap:balance;margin:1.75rem auto 0;font-size:clamp(1.1rem,1rem + .6vw,1.45rem);font-style:italic;line-height:1.45}.countdown{margin-top:2.25rem}.countdown-label{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--paper-dim);margin:0 0 1rem;font-size:.72rem}.countdown-digits{justify-content:center;gap:clamp(.75rem,3vw,2rem);display:flex}.unit{gap:.25rem;min-width:3.2ch;display:grid}.unit .num{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 0, "WONK" 0;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.02em;font-size:clamp(2.6rem,2rem + 4vw,5rem);font-weight:300;line-height:1}.unit .lbl{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft);font-size:.66rem}.unit+.unit{position:relative}.unit+.unit:before{content:"·";color:var(--line);font-family:var(--font-display);font-size:clamp(2rem,1.6rem + 2vw,3rem);line-height:1;position:absolute;top:.55em;left:calc(clamp(.75rem,3vw,2rem)/-2);transform:translate(-50%)}.card-link{border:1px solid var(--line);color:var(--gold-soft);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;background:color-mix(in oklab, var(--water-deep) 40%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color .25s, background .25s, transform .25s var(--ease-out);border-radius:999px;align-items:center;gap:.6rem;margin-top:2rem;padding:.7rem 1.4rem;font-size:.74rem;text-decoration:none;display:inline-flex}.card-link:hover{border-color:var(--gold);background:color-mix(in oklab, var(--gold) 12%, transparent);transform:translateY(-2px)}.card-link[hidden]{display:none}.hero-scroll{z-index:3;font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--paper-dim);opacity:.8;justify-items:center;gap:.5rem;padding-bottom:2rem;font-size:.62rem;display:grid;position:relative}.hero-scroll span{background:linear-gradient(180deg, var(--gold), transparent);width:1px;height:2.6rem;animation:scroll-cue 2.4s var(--ease-soft) infinite;display:block}@keyframes scroll-cue{0%{transform-origin:top;opacity:0;transform:scaleY(0)}35%{transform-origin:top;opacity:1;transform:scaleY(1)}70%{transform-origin:bottom;opacity:1;transform:scaleY(1)}to{transform-origin:bottom;opacity:0;transform:scaleY(0)}}.hero-copy>*{animation:rise 1.2s var(--ease-out) both}.hero-copy>:first-child{animation-delay:.15s}.hero-copy>:nth-child(2){animation-delay:.3s}.hero-copy>:nth-child(3){animation-delay:.55s}.hero-copy>:nth-child(4){animation-delay:.75s}.hero-copy>:nth-child(5){animation-delay:.9s}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.now-strip{z-index:20;padding:.7rem var(--gutter);background:color-mix(in oklab, var(--water-deep) 78%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.3);border-bottom:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.04em;align-items:center;gap:.9rem;font-size:.78rem;display:flex;position:sticky;top:0}.now-strip[hidden]{display:none}.strip-tag{background:var(--gold);color:var(--ink);letter-spacing:.18em;text-transform:uppercase;border-radius:999px;flex:none;padding:.18rem .6rem;font-size:.62rem;font-weight:500}.strip-tag.is-next{color:var(--gold-soft);border:1px solid var(--line);background:0 0}.strip-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-display);font-variation-settings:"opsz" 18, "SOFT" 50;letter-spacing:0;flex:1;font-size:1rem;overflow:hidden}.strip-time{color:var(--paper-dim);font-variant-numeric:tabular-nums;flex:none}.container{z-index:3;width:min(100%,46rem);padding:clamp(2.5rem, 6vw, 4.5rem) var(--gutter) 3rem;margin:0 auto;position:relative}.years{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:0 0 clamp(2.5rem,6vw,4rem);display:flex}.tag{border:1px solid var(--line);background:var(--surface);color:var(--paper-dim);text-align:left;cursor:pointer;clip-path:polygon(0 50%,.9rem 0,100% 0,100% 100%,.9rem 100%);transition:background .25s, color .25s, border-color .25s, transform .25s var(--ease-out);border-radius:6px 14px 14px 6px;gap:.1rem;padding:.65rem 1.1rem .65rem 2rem;display:grid;position:relative}.tag:before{content:"";background:var(--water-deep);width:.45rem;height:.45rem;box-shadow:inset 0 0 0 1px var(--line);border-radius:50%;position:absolute;top:50%;left:1rem;transform:translate(-50%,-50%)}.tag-year{font-family:var(--font-mono);letter-spacing:.18em;font-size:.7rem}.tag-place{font-family:var(--font-display);font-variation-settings:"opsz" 18, "SOFT" 50;color:var(--paper);font-size:1.05rem;line-height:1.1}.tag:hover{border-color:var(--gold);transform:translateY(-2px)rotate(-1deg)}.tag.is-active{background:var(--gold);border-color:var(--gold);color:color-mix(in oklab, var(--ink) 70%, var(--water))}.tag.is-active .tag-place{color:var(--ink)}.tag.is-active:before{background:var(--water-deep);box-shadow:none}.past-year-note{text-align:center;color:var(--paper-dim);margin:-1.5rem 0 3rem;font-style:italic}.past-year-note[hidden]{display:none}.day{position:relative}.day+.day{margin-top:clamp(3rem,8vw,5rem)}.day-header{padding:0 0 1.25rem calc(var(--route-x) * 2 + .5rem);grid-template-columns:auto 1fr;align-items:end;column-gap:1.25rem;margin-bottom:1.75rem;display:grid;position:relative}.day-header:after{content:"";left:calc(var(--route-x) * 2 + .5rem);background:linear-gradient(90deg, var(--gold) 0, var(--line) 30%, transparent);height:1px;position:absolute;bottom:0;right:0}.day-numeral{font-family:var(--font-display);font-variation-settings:"opsz" 144, "SOFT" 0, "WONK" 0;color:#0000;-webkit-text-stroke:1px var(--gold-soft);letter-spacing:.04em;opacity:.9;font-size:clamp(4rem,3rem + 6vw,6.5rem);font-weight:200;line-height:.8}.day-numeral:empty{display:none}.day-meta{align-content:end;gap:.35rem;display:grid}.day-kicker{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);font-size:.7rem}.day-title{font-family:var(--font-display);font-variation-settings:"opsz" 96, "SOFT" 60, "WONK" 1;letter-spacing:-.015em;text-wrap:balance;margin:0;font-size:clamp(1.9rem,1.5rem + 2.2vw,3rem);font-weight:400;line-height:1}.day-title em{color:var(--gold-soft);font-style:italic;font-weight:300}.route{padding:0 0 0 calc(var(--route-x) * 2 + .5rem);margin:0;list-style:none;position:relative}.route:before{content:"";left:var(--route-x);background:repeating-linear-gradient(180deg, var(--gold-soft) 0 5px, transparent 5px 11px);opacity:.55;width:1px;position:absolute;top:.5rem;bottom:.5rem}.stop{margin:0 0 1.5rem;position:relative}.stop-marker{left:calc(-1 * (var(--route-x) + .5rem));border:1.5px solid var(--gold-soft);background:var(--water-deep);border-radius:50%;width:.8rem;height:.8rem;transition:background .4s,box-shadow .4s,border-color .4s;position:absolute;top:1.65rem;transform:translate(-50%)}.stop.is-done .stop-marker{background:var(--gold-soft);border-color:var(--gold-soft)}.stop.is-live .stop-marker{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 0 color-mix(in oklab, var(--gold) 60%, transparent);animation:marker-pulse 2.2s var(--ease-soft) infinite}@keyframes marker-pulse{0%{box-shadow:0 0 0 0 color-mix(in oklab, var(--gold) 55%, transparent)}70%{box-shadow:0 0 0 14px #0000}to{box-shadow:0 0 #0000}}.stop.is-sealed .stop-marker{border-style:dashed;border-color:var(--lilac)}.card{background:linear-gradient(180deg, var(--surface-strong), var(--surface)), var(--water-deep);border:1px solid var(--line-soft);box-shadow:0 1px 0 color-mix(in oklab, var(--paper) 6%, transparent) inset, 0 20px 50px -30px #000c;transition:border-color .4s, transform .5s var(--ease-out), opacity .6s, box-shadow .5s;border-radius:16px;padding:clamp(1.25rem,4vw,1.9rem) clamp(1.25rem,4vw,2rem);position:relative;overflow:hidden}.stop:hover .card{border-color:var(--line);transform:translateY(-2px)}.stop.is-live .card{border-color:var(--line);box-shadow:0 1px 0 color-mix(in oklab, var(--gold) 20%, transparent) inset, 0 0 0 1px color-mix(in oklab, var(--gold) 18%, transparent), 0 30px 70px -40px color-mix(in oklab, var(--gold) 40%, black)}.stop.is-done .card{opacity:.72}.stop.is-done:hover .card{opacity:1}.stop.is-archive .card{opacity:.92}.card-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.stop-time{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);font-variant-numeric:tabular-nums;font-size:.76rem}.stop-time .sep{color:var(--line);margin:0 .35em}.stop-badge{background:var(--gold);color:var(--ink);font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;border-radius:999px;padding:.2rem .65rem;font-size:.6rem;font-weight:500;display:none}.stop.is-live .stop-badge{animation:badge-in .6s var(--ease-out) both;display:inline-block}@keyframes badge-in{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:none}}.progress-container{background:var(--line-soft);height:1px;margin:0 0 1.1rem;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--gold-soft), var(--gold));width:0;height:100%;transition:width 1s var(--ease-soft)}.stop-title{font-family:var(--font-display);font-variation-settings:"opsz" 48, "SOFT" 40, "WONK" 1;letter-spacing:-.012em;text-wrap:balance;margin:0 0 .7rem;font-size:clamp(1.5rem,1.25rem + 1.2vw,2rem);font-weight:400;line-height:1.1}.stop-desc{color:var(--paper-dim);margin:0;font-size:1em;line-height:1.62}.stop-desc+.stop-desc{margin-top:.75rem}.note{border-left:1px solid var(--gold);margin:1.1rem 0 0;padding:.9rem 0 .9rem 1.25rem;font-style:italic;line-height:1.55;position:relative}.note p{color:var(--paper);margin:0}.note-kicker{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:.3rem;font-size:.64rem;font-style:normal;display:block}.note-free{border-left-color:var(--lilac)}.note-free .note-kicker{color:var(--lilac)}.directions{cursor:pointer;font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--paper-dim);background:0 0;border:0;align-items:center;gap:.5rem;margin-top:1.25rem;padding:0;font-size:.72rem;transition:color .25s;display:inline-flex}.directions:hover{color:var(--gold)}.directions .venue-info-icon{transition:transform .3s var(--ease-out);font-size:.9em;display:inline-block}.directions[aria-expanded=true] .venue-info-icon{transform:rotate(180deg)}.directions[aria-expanded=true]{color:var(--gold-soft)}.venue-info-container{transition:grid-template-rows .55s var(--ease-soft);grid-template-rows:0fr;display:grid}.venue-info-container>div{min-height:0;overflow:hidden}.venue-info-container.show{grid-template-rows:1fr}.venue-info{background:color-mix(in oklab, var(--paper) 4%, transparent);border:1px solid var(--line-soft);border-radius:12px;margin-top:1rem;padding:1rem}.venue-details h4{font-family:var(--font-display);font-variation-settings:"opsz" 18, "SOFT" 50;margin:0 0 .25rem;font-size:1.05rem;font-weight:500}.venue-details p{font-family:var(--font-mono);color:var(--paper-dim);letter-spacing:.02em;margin:0;font-size:.78rem}.venue-details a{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-top:.6rem;font-size:.74rem;display:inline-block}.map-container{background:var(--paper);border-radius:10px;margin-top:.9rem;padding:.5rem;transform:rotate(-.6deg);box-shadow:0 10px 30px -15px #000000b3}.map-container iframe{filter:saturate(.85)contrast(1.02);border:0;border-radius:6px;width:100%;height:220px;display:block}.timer{font-family:var(--font-mono);letter-spacing:.08em;color:var(--paper-dim);font-variant-numeric:tabular-nums;margin:1.1rem 0 0;font-size:.74rem}.timer:empty{display:none}.stop.is-live .timer{color:var(--gold-soft)}.stamp{width:7rem;height:7rem;color:var(--gold-soft);opacity:0;pointer-events:none;mix-blend-mode:screen;position:absolute;bottom:.2rem;right:.4rem;transform:rotate(-24deg)scale(1.25)}.stamp svg{width:100%;height:100%;overflow:visible}.stamp text{font-family:var(--font-mono);letter-spacing:.22em;text-transform:uppercase;fill:currentColor;font-size:8.4px}.stamp circle{fill:none;stroke:currentColor}.stamp .stamp-mark{font-family:var(--font-display);letter-spacing:0;font-size:22px;font-style:italic}body.is-ready .stamp{transition:opacity .7s var(--ease-out) .1s, transform .7s var(--ease-out) .1s}.stop.is-done .stamp{opacity:.8;transform:rotate(-12deg)scale(1)}.card-sealed{background:linear-gradient(135deg, color-mix(in oklab, var(--lilac) 10%, transparent), transparent 55%), linear-gradient(180deg, var(--surface-strong), var(--surface)), var(--water-deep);border-color:color-mix(in oklab, var(--lilac) 30%, transparent);text-align:center;padding-top:2.25rem}.card-sealed:before{content:"";border-radius:inherit;background:linear-gradient(120deg, transparent 20%, color-mix(in oklab, var(--lilac) 70%, var(--paper)) 45%, var(--gold) 50%, color-mix(in oklab, var(--lilac) 70%, var(--paper)) 55%, transparent 80%);-webkit-mask-composite:xor;opacity:.8;pointer-events:none;background-size:300% 100%;padding:1px;animation:6s linear infinite foil;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@keyframes foil{0%{background-position:150% 0}to{background-position:-150% 0}}.envelope{background:linear-gradient(#f6f0e4,#e6dcc9);border-radius:6px;width:5.2rem;height:3.6rem;margin:0 auto 1.25rem;position:relative;box-shadow:0 14px 30px -14px #000c}.envelope:before{content:"";clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(#efe6d5,#e0d4bd);border-radius:6px 6px 0 0;height:55%;position:absolute;inset:0 0 auto}.envelope:after{content:"";background:linear-gradient(45deg,#0000 49.5%,#0000000f 50%,#0000 50.5%),linear-gradient(-45deg,#0000 49.5%,#0000000f 50%,#0000 50.5%);position:absolute;inset:0}.seal{color:#f9e7ec;width:1.9rem;height:1.9rem;font-family:var(--font-display);z-index:1;background:radial-gradient(circle at 35% 30%,#c9788a,#8f3a56 60%,#6c2740);border-radius:50%;place-items:center;font-size:1.05rem;font-style:italic;display:grid;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px 8px #00000059,inset 0 0 0 2px #ffffff1f}.sealed-kicker{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--lilac);margin:0 0 .5rem;font-size:.68rem}.card-sealed .stop-title{font-style:italic;font-weight:300}.card-sealed .stop-desc{max-width:28rem;margin:0 auto}.stop.just-revealed .card{animation:unfold .9s var(--ease-out) both;transform-origin:top}@keyframes unfold{0%{opacity:0;filter:brightness(1.6);transform:perspective(900px)rotateX(-18deg)translateY(-8px)}to{opacity:1;filter:none;transform:none}}.reveal{opacity:0;transform:translateY(18px)}.reveal.in-view{opacity:1;transition:opacity .9s var(--ease-out) var(--delay,0s), transform .9s var(--ease-out) var(--delay,0s);transform:none}.letter-wrap{z-index:3;width:min(100%,46rem);padding:1rem var(--gutter) clamp(4rem, 10vw, 7rem);margin:0 auto;position:relative}.letter{color:#2a2418;background:radial-gradient(circle at 12% 8%,#ffffff8c,#0000 40%),linear-gradient(#f8f3e8,#ede5d3);border-radius:6px;padding:clamp(2rem,6vw,3.25rem) clamp(1.5rem,6vw,3.25rem);position:relative;transform:rotate(-.4deg);box-shadow:inset 0 1px #fff9,0 30px 70px -30px #000000e6}.letter:before{content:"";pointer-events:none;border:1px solid #2a24182e;border-radius:3px;position:absolute;inset:.55rem}.letter-kicker{font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:#7a6a4d;margin:0 0 1.25rem;font-size:.66rem}.letter p.letter-body{font-family:var(--font-body);letter-spacing:-.005em;text-wrap:pretty;margin:0;font-size:clamp(1.25rem,1.05rem + 1vw,1.7rem);font-style:italic;line-height:1.5}.letter p.letter-body:first-letter{font-family:var(--font-display);float:left;color:#8f3a56;margin:.1em .12em 0 0;font-size:2.6em;font-style:normal;font-weight:300;line-height:.78}.letter-foot{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:#7a6a4d;align-items:center;gap:1rem;margin-top:1.75rem;font-size:.68rem;display:flex}.letter-foot:before{content:"";background:linear-gradient(90deg,#c9a24a,#c9a24a1a);flex:1;height:1px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}#leaves{display:none}}@media (width<=640px){:root{--route-x:.9rem}.eyebrow:before,.eyebrow:after{width:1.2rem;margin:0 .6rem}.hero-copy{padding-top:5rem}.countdown-digits{gap:1.1rem}.unit+.unit:before{display:none}.day-header{grid-template-columns:1fr;row-gap:.5rem}.day-numeral{font-size:3.4rem}.card-head{flex-wrap:wrap}.stamp{width:5.6rem;height:5.6rem;bottom:.1rem;right:.2rem}.map-container iframe{height:190px}.now-strip{gap:.6rem;font-size:.72rem}.strip-title{font-size:.95rem}.letter{transform:none}.tag{padding:.55rem .9rem .55rem 1.8rem}}@media (width<=380px){.pin-slots span{width:2.6rem;height:3.2rem}.pin-slots{gap:.55rem}.ticket-stub,.ticket-body{padding-left:1.25rem;padding-right:1.25rem}}
