:root{--ink: #14110F;--water: #1F5B6B;--sand: #E3CFA3;--flare: #E8452C;--sun: #FFC94A;--chalk: #F2EDE1;--display: "Anton", "Haettenschweiler", "Arial Narrow", sans-serif;--body: "Archivo", system-ui, -apple-system, sans-serif;--mono: "DM Mono", ui-monospace, "SF Mono", monospace;--step--1: clamp(.72rem, .68rem + .2vw, .8rem);--step-0: clamp(.88rem, .84rem + .2vw, 1rem);--step-1: clamp(1.15rem, 1rem + .7vw, 1.5rem);--step-2: clamp(1.6rem, 1.25rem + 1.7vw, 2.75rem);--gap: .75rem;--pad: 1rem;--radius: 3px;--z-canvas: 0;--z-pass: 20;--z-ctl: 25;--z-hint: 28;--z-panel: 40;--z-boot: 60}*{box-sizing:border-box}html{overscroll-behavior:none;-webkit-text-size-adjust:100%}body{margin:0;background:var(--ink);color:var(--chalk);font-family:var(--body);font-size:var(--step-0);line-height:1.45;overscroll-behavior:none}.is-hidden{display:none!important}#stage{position:fixed;inset:0;z-index:var(--z-canvas);touch-action:pan-y}#stage canvas{display:block;width:100%;height:100%;touch-action:pan-y!important}#spacer{position:relative;width:100%;pointer-events:none}#boot{position:fixed;inset:0;z-index:var(--z-boot);display:grid;place-content:center;gap:var(--gap);justify-items:center;background:var(--ink);transition:opacity .5s ease}#boot.is-done{opacity:0;pointer-events:none}.boot__mark{font-family:var(--display);font-size:clamp(1.35rem,1rem + 2.2vw,2.4rem);letter-spacing:.04em;color:var(--sun);text-align:center;max-width:min(92vw,22rem);line-height:1.05}.boot__bar{width:min(52vw,260px);height:3px;background:color-mix(in srgb,var(--chalk) 20%,transparent);overflow:hidden}.boot__bar i{display:block;height:100%;width:0%;background:var(--flare);transition:width .2s linear}.boot__note{font-family:var(--mono);font-size:var(--step--1);color:color-mix(in srgb,var(--chalk) 55%,transparent)}.scroll-cue{position:fixed;z-index:calc(var(--z-ctl) - 1);left:50%;bottom:max(3.6rem,calc(env(safe-area-inset-bottom) + 3.1rem));transform:translate(-50%);display:flex;flex-direction:column;align-items:center;margin:0;padding:.35rem;pointer-events:none;opacity:0;transition:opacity .4s ease}.scroll-cue.is-on{opacity:1}.scroll-cue.is-dim{opacity:.28}.scroll-cue__arrow{width:.75rem;height:.75rem;border-right:2px solid var(--chalk);border-bottom:2px solid var(--chalk);transform:rotate(45deg);animation:scroll-cue-bob 1.4s ease-in-out infinite;filter:drop-shadow(0 1px 2px color-mix(in srgb,var(--ink) 70%,transparent))}@keyframes scroll-cue-bob{0%,to{transform:translateY(0) rotate(45deg)}50%{transform:translateY(.35rem) rotate(45deg)}}.interact-tip{position:fixed;z-index:var(--z-hint);left:50%;bottom:max(5.4rem,calc(env(safe-area-inset-bottom) + 4.8rem));transform:translate(-50%);margin:0;padding:.5rem .85rem;max-width:min(92vw,20rem);text-align:center;font-family:var(--mono);font-size:var(--step--1);letter-spacing:.02em;color:var(--chalk);background:color-mix(in srgb,var(--ink) 82%,transparent);border:1px solid color-mix(in srgb,var(--chalk) 22%,transparent);border-radius:var(--radius);pointer-events:none;opacity:0;transition:opacity .4s ease}.interact-tip.is-on{opacity:1}@media (prefers-reduced-motion: reduce){.scroll-cue__arrow{animation:none}}#pass{position:fixed;z-index:var(--z-pass);top:max(.6rem,env(safe-area-inset-top));left:.6rem;right:.6rem;display:flex;align-items:center;gap:var(--gap);padding:.5rem .6rem;background:var(--chalk);color:var(--ink);border-radius:var(--radius);box-shadow:0 2px color-mix(in srgb,var(--ink) 55%,transparent)}.pass__punch{flex:none;width:26px;height:8px;border-radius:99px;background:var(--ink);opacity:.85}.pass__lines{min-width:0;flex:1}.pass__title{margin:0;font-family:var(--display);font-size:var(--step-0);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pass__meta{margin:.1rem 0 0;display:flex;gap:.6rem;font-family:var(--mono);font-size:var(--step--1);color:color-mix(in srgb,var(--ink) 72%,transparent);white-space:nowrap;overflow:hidden}.pass__where{overflow:hidden;text-overflow:ellipsis}.pass__where a{color:inherit;text-decoration:underline;text-underline-offset:2px}@media (max-width: 640px){.pass__where{display:none}}.pass__btn{flex:none;font-family:var(--mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.04em;padding:.45rem .6rem;border:0;border-radius:var(--radius);background:var(--flare);color:var(--chalk);cursor:pointer}#controls{position:fixed;z-index:var(--z-ctl);bottom:max(.6rem,env(safe-area-inset-bottom));left:.6rem;right:.6rem;display:flex;gap:.4rem;justify-content:flex-end;flex-wrap:wrap}.ctl{font-family:var(--mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.04em;padding:.5rem .7rem;border:1px solid color-mix(in srgb,var(--chalk) 35%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--ink) 82%,transparent);color:var(--chalk);cursor:pointer;backdrop-filter:blur(6px)}.ctl--sound[aria-pressed=true]{background:var(--sun);color:var(--ink);border-color:var(--sun)}#panel,#details{position:fixed;inset:0;z-index:var(--z-panel);overflow:hidden;background:color-mix(in srgb,var(--ink) 78%,transparent)}.panel-scroller{height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:max(var(--pad),env(safe-area-inset-top)) var(--pad) max(var(--pad),env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center}.panel__card,.details__card{position:relative;width:min(100%,34rem);flex:0 0 auto;margin-block:auto;overflow:visible;padding:1.4rem;background:var(--chalk);color:var(--ink);border-radius:var(--radius);box-shadow:0 10px color-mix(in srgb,var(--ink) 60%,transparent)}body.is-panel-open #stage,body.is-panel-open #spacer{pointer-events:none}.panel__close{position:absolute;top:.7rem;right:.7rem;font-family:var(--mono);font-size:var(--step--1);text-transform:uppercase;padding:.35rem .55rem;border:1px solid var(--ink);border-radius:var(--radius);background:transparent;color:var(--ink);cursor:pointer}.panel__kicker{margin:0 0 .2rem;font-family:var(--mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;color:var(--flare)}.panel__title,.details__title{margin:0 0 .6rem;font-family:var(--display);font-size:var(--step-2);line-height:.95;letter-spacing:.01em;text-transform:uppercase;padding-right:4.5rem}.panel__body{font-size:var(--step-0)}.panel__body p{margin:0 0 .6rem}.panel__link{display:inline-block;margin-top:.4rem;font-family:var(--mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.04em;padding:.5rem .8rem;border-radius:var(--radius);background:var(--water);color:var(--chalk);text-decoration:none}.details__dl{display:grid;grid-template-columns:auto 1fr;gap:.2rem .9rem;margin:0 0 1.1rem;font-size:var(--step-0)}.details__dl dt{font-family:var(--mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;color:color-mix(in srgb,var(--ink) 60%,transparent);padding-top:.15rem}.details__dl dd{margin:0}.details__dl a{color:inherit;text-decoration:underline;text-underline-offset:3px}.details__sub{margin:0 0 .4rem;font-family:var(--display);font-size:var(--step-1);text-transform:uppercase;letter-spacing:.02em}.details__acts{list-style:none;margin:0;padding:0}.details__acts li{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px solid color-mix(in srgb,var(--ink) 18%,transparent)}.details__acts span{font-family:var(--mono);font-size:var(--step--1);color:color-mix(in srgb,var(--ink) 60%,transparent)}.details__acts a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.details__alt{margin-top:1rem;font-size:var(--step--1)}.details__alt h3{font-family:var(--mono);font-size:var(--step--1);text-transform:uppercase;margin:0 0 .3rem}.details__alt li{margin-bottom:.35rem}:focus-visible{outline:3px solid var(--sun);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}@keyframes bottle-flap{0%{background-position:0 0}to{background-position:-3474px 0}}#bottle{image-rendering:auto}@media (prefers-reduced-motion: reduce){#bottle{animation:none!important}}#caption{position:fixed;z-index:var(--z-ctl);margin:0;padding:.3rem .6rem;max-width:min(78vw,34rem);transform:translate(-50%);text-align:center;font-family:var(--mono);font-size:var(--step--1);line-height:1.3;letter-spacing:.02em;color:var(--ink);background:var(--sun);border-radius:var(--radius);box-shadow:0 2px color-mix(in srgb,var(--ink) 55%,transparent);pointer-events:none;transition:opacity .18s ease}.details__lede{margin:0 0 1.1rem;font-family:var(--display);font-size:var(--step-1);line-height:1.15;letter-spacing:.01em;color:var(--sun)}.details__invite{margin:0 0 1.2rem;font-size:var(--step-0);line-height:1.45}.details__invite p{margin:0 0 .75rem}.details__signoff{margin-top:1rem}#topline{position:fixed;top:max(.55rem,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:var(--z-pass);display:flex;align-items:center;gap:.45rem;max-width:calc(100vw - 1.2rem);padding:.42rem .55rem .42rem .75rem;border:1px solid color-mix(in srgb,var(--sun) 55%,transparent);border-radius:999px;background:color-mix(in srgb,var(--ink) 88%,transparent);color:var(--chalk);font-family:var(--mono);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 40%,transparent)}#topline:hover,#topline:focus-visible{color:var(--chalk);border-color:var(--sun);background:color-mix(in srgb,var(--ink) 92%,var(--sun) 8%)}#topline:focus-visible{outline:2px solid var(--sun);outline-offset:2px}.topline__name{color:var(--sun)}.topline__dot{opacity:.5}.topline__cue{flex:none;margin-left:.15rem;padding:.28rem .55rem;border-radius:999px;background:var(--sun);color:var(--ink);font-size:.92em;letter-spacing:.04em;font-weight:500}@media (max-width: 24rem){#topline{letter-spacing:.03em;padding:.36rem .45rem .36rem .6rem;gap:.35rem}#topline>span:nth-child(5){display:none}#topline>.topline__dot:nth-child(4){display:none}}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
