@font-face{font-family:Ribeye Marrow;font-weight:400;font-display:swap;src:url(/fonts/ribeye-marrow-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/fraunces-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Fraunces;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/fraunces-latin-400-italic.woff2)format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Caveat;font-weight:600;font-display:swap;src:url(/fonts/caveat-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Tangerine;font-weight:700;font-display:swap;src:url(/fonts/tangerine-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Mountains of Christmas;font-weight:700;font-display:swap;src:url(/fonts/mountains-of-christmas-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Emilys Candy;font-weight:400;font-display:swap;src:url(/fonts/emilys-candy-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Cinzel Decorative;font-weight:700;font-display:swap;src:url(/fonts/cinzel-decorative-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Elsie Swash Caps;font-weight:400;font-display:swap;src:url(/fonts/elsie-swash-caps-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Almendra Display;font-weight:400;font-display:swap;src:url(/fonts/almendra-display-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Kranky;font-weight:400;font-display:swap;src:url(/fonts/kranky-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Great Vibes;font-weight:400;font-display:swap;src:url(/fonts/great-vibes-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Dancing Script;font-weight:600;font-display:swap;src:url(/fonts/dancing-script-latin-600-normal.woff2)format("woff2")}@font-face{font-family:Lobster;font-weight:400;font-display:swap;src:url(/fonts/lobster-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Pacifico;font-weight:400;font-display:swap;src:url(/fonts/pacifico-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Sacramento;font-weight:400;font-display:swap;src:url(/fonts/sacramento-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Parisienne;font-weight:400;font-display:swap;src:url(/fonts/parisienne-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Berkshire Swash;font-weight:400;font-display:swap;src:url(/fonts/berkshire-swash-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Playfair Display;font-weight:500;font-display:swap;src:url(/fonts/playfair-display-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Cormorant Garamond;font-weight:500;font-display:swap;src:url(/fonts/cormorant-garamond-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Libre Caslon;font-weight:400;font-display:swap;src:url(/fonts/libre-caslon-text-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Fredoka;font-weight:500;font-display:swap;src:url(/fonts/fredoka-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Baloo;font-weight:500;font-display:swap;src:url(/fonts/baloo-2-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Amatic SC;font-weight:700;font-display:swap;src:url(/fonts/amatic-sc-latin-700-normal.woff2)format("woff2")}@font-face{font-family:Cookie;font-weight:400;font-display:swap;src:url(/fonts/cookie-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Satisfy;font-weight:400;font-display:swap;src:url(/fonts/satisfy-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Merienda;font-weight:500;font-display:swap;src:url(/fonts/merienda-latin-500-normal.woff2)format("woff2")}@font-face{font-family:Abril Fatface;font-weight:400;font-display:swap;src:url(/fonts/abril-fatface-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Old Standard;font-weight:400;font-display:swap;src:url(/fonts/old-standard-tt-latin-400-normal.woff2)format("woff2")}@keyframes fx-ink{0%{opacity:0;filter:blur(3px)}}@keyframes fx-fade{0%{opacity:0}}@keyframes fx-rise{0%{opacity:0;transform:translateY(1.2em)}}@keyframes fx-pop{0%{opacity:0;transform:scale(.7)}70%{opacity:1;transform:scale(1.05)}to{transform:scale(1)}}@keyframes fx-drop{0%{opacity:0;transform:translateY(-1.2em)}}@keyframes fx-left{0%{opacity:0;transform:translate(-40cqw)}}@keyframes fx-right{0%{opacity:0;transform:translate(40cqw)}}@keyframes fx-zoom{0%{opacity:0;transform:scale(1.7)}}@keyframes fx-type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes fx-letter{0%{opacity:0}to{opacity:1}}.fx-letter{opacity:0;animation-name:fx-letter;animation-duration:10ms;animation-timing-function:step-end;animation-fill-mode:both}:root{--paper:#faf8f6;--red:#cc1415;--green:#0b5f50}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;background:var(--paper);height:100%;margin:0;overflow:hidden}body{color:var(--green);font-variant-numeric:lining-nums;font-family:Fraunces,Georgia,serif;position:fixed;inset:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}.sr{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}#frame{width:min(100vw,62dvh);height:100dvh;margin:0 auto;position:relative;overflow:hidden;container-type:inline-size}#stage{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;position:absolute;inset:0;overflow:hidden auto}#stage::-webkit-scrollbar{display:none}#world{background:var(--paper);-webkit-user-select:none;user-select:none;width:100%;position:relative;overflow:hidden}#scene{pointer-events:none;width:100%;height:auto;display:block;position:absolute;top:0;left:0}#fx{touch-action:pan-y;width:100%;height:100%;display:block;position:absolute;top:0;left:0}#opening{z-index:5;text-align:center;cursor:pointer;background:linear-gradient(#ccdcf0 0,#e6edf6 34%,#faf8f6 66%);flex-direction:column;justify-content:center;align-items:center;gap:3cqw;padding:0 8cqw 8dvh;transition:opacity .9s;display:flex;position:absolute;inset:0}#opening[hidden]{display:none}#opening.gone{opacity:0;pointer-events:none}#opening-name{min-height:1.2em;color:var(--green);overflow-wrap:anywhere;margin:0;font-size:max(20px,6cqw);font-style:italic}#opening-hint{color:var(--green);margin:0;animation:2.6s ease-in-out infinite breathe}#opening.opened #opening-hint,#opening.opened #opening-name{opacity:0;transition:opacity .4s;animation:none}@keyframes breathe{50%{opacity:.55}}#seal{aspect-ratio:325/272;width:min(76cqw,340px);animation:3.2s ease-in-out infinite float;display:block;position:relative}#seal img{width:100%;height:auto;transition:opacity .35s,transform .9s cubic-bezier(.25,.8,.35,1);position:absolute;bottom:0;left:0}#env-open{opacity:0}@keyframes float{50%{transform:translateY(-1.4cqw)}}#opening.opened #seal{animation:none}#opening.opened #env-sealed{opacity:0}#opening.opened #env-open{opacity:1;transform:scale(1.1)translateY(-4%)}#opening.gone #env-open{transform:scale(1.35)translateY(-8%)}#controls{z-index:6;top:calc(8px + env(safe-area-inset-top));gap:6px;display:flex;position:absolute;left:8px}#controls button,#deck-buttons button{place-items:center;width:44px;height:44px;display:grid}#controls img,#deck-buttons img{object-fit:contain;width:40px;height:40px;display:block}#deck{z-index:6;top:calc(8px + env(safe-area-inset-top));grid-template-columns:auto 1fr;align-items:center;column-gap:4px;animation:.35s both ink;display:grid;position:absolute;left:104px;right:8px}#deck[hidden]{display:none}#deck-buttons{grid-area:1/1;display:flex}#deck-volume{width:100%;height:22px;accent-color:var(--green);grid-area:2/1;margin:0;display:block}#deck-volume[hidden]{display:none}#deck-song{min-width:0;color:var(--green);overflow-wrap:anywhere;grid-area:1/2/span 2;margin:0;font-size:14px;font-style:italic;line-height:1.15}#burst{z-index:3;pointer-events:none;animation:burst var(--burst-time,1.5s) cubic-bezier(.2, 1.2, .4, 1) both;position:absolute;transform:translate(-50%,-100%)}#burst[hidden]{display:none}@keyframes burst{0%{opacity:0;transform:translate(-50%,-80%)scale(.4)}18%{opacity:1;transform:translate(-50%,-100%)scale(1.06)}28%{transform:translate(-50%,-100%)scale(1)}78%{opacity:1}to{opacity:0;transform:translate(-50%,-112%)scale(1)}}#sheet{left:0;right:0;top:var(--sheet-top,60%);padding:0 6cqw calc(20px + env(safe-area-inset-bottom));text-align:center;pointer-events:none;transition:top 1.5s cubic-bezier(.3,.1,.2,1);position:absolute}#sheet button,#sheet a,#sheet input{pointer-events:auto}#greeting{overflow-wrap:anywhere;min-height:1.2em;margin:0 0 .2em;font-size:max(17px,4.6cqw);font-style:italic}#title{font-family:Ribeye Marrow,Georgia,serif;font-weight:400;font-size:var(--title-size,9.6cqw);text-transform:uppercase;text-wrap:balance;color:var(--red);margin:0;line-height:1.12}#tagline{margin:.55em 0 0;font-size:max(16.5px,4.5cqw);line-height:1.25}#tagline:empty{display:none}#lines{margin-top:.9em;font-size:max(18px,5cqw);line-height:1.32}#lines p{overflow-wrap:anywhere;text-wrap:balance;margin:0}#lines p.ask{margin-top:.5em;line-height:0}#lines p.ask img{width:min(40cqw,170px);height:auto}#lines p.ask.worded{color:var(--red);font-family:Ribeye Marrow,Georgia,serif;font-size:1.3em;line-height:1.2}@keyframes ink{0%{opacity:0;filter:blur(3px)}}#goal{text-wrap:balance;max-width:21em;margin:.85em auto 0;font-size:max(17px,4.5cqw);font-style:italic;line-height:1.3;transition:opacity .35s}#goal:empty,#goal[hidden],#tagline[hidden],#greeting[hidden],#thanks[hidden],#party-label[hidden],#replay-text[hidden],#home-text[hidden],#send-text[hidden],#change[hidden]{display:none}#skip{min-height:44px;color:var(--green);opacity:.78;text-underline-offset:4px;margin-top:.25em;font-size:max(16px,4cqw);text-decoration:underline;text-decoration-thickness:1px;display:inline-block}#again{justify-content:center;gap:1.4em;margin:.3em 0 0;display:flex}#again[hidden]{display:none}#again button{min-height:44px;color:var(--green);align-items:center;gap:.4em;font-size:max(15px,3.9cqw);display:inline-flex}#again img{width:38px;height:38px}#skip[hidden],#reply[hidden],#more[hidden],#after[hidden],#calendar[hidden],#party[hidden]{display:none}#reply{animation:1.4s both ink}#choices{justify-content:center;align-items:center;gap:2cqw;margin-top:.4em;display:flex}#choices button{flex:1 1 0;min-width:0;min-height:48px;transition:opacity .25s,transform .25s}#choices img{width:100%;height:auto;display:block}#choices.chosen button{opacity:.45}#choices.chosen button[aria-pressed=true]{opacity:1;transform:scale(1.06)}#more{margin-top:.3em;font-size:max(18px,4.8cqw);animation:.8s both ink}#party{justify-content:center;align-items:center;gap:.7em;display:flex}.stepper{align-items:center;display:inline-flex}.stepper button{place-items:center;width:46px;height:46px;display:grid}.stepper img{width:27px;height:27px;display:block}.stepper output{min-width:1.5em}.note{max-width:19em;margin:.15em auto 0;display:block}#note{width:100%;min-height:44px;color:var(--green);font:inherit;text-align:center;background:0 0;border:0;border-bottom:1px solid #0b5f5073;border-radius:0;padding:6px 2px;font-size:max(17px,4.6cqw);font-style:italic;display:block}#note::placeholder{color:var(--green);opacity:.62}#note:focus{border-bottom-color:var(--green);outline:none}#send{min-height:48px;color:var(--green);align-items:center;gap:.3em;margin-top:.3em;display:inline-flex}#send img{width:44px;height:44px}#send:disabled{opacity:.5}#the-end{width:min(70cqw,300px);height:auto;margin:.5em auto 0;animation:.8s both ink;display:block}#the-end[hidden]{display:none}#thanks{text-wrap:balance;max-width:20em;margin:.4em auto 0;font-size:max(18px,5cqw);font-style:italic;line-height:1.3}#thanks:empty{display:none}#after{flex-wrap:wrap;justify-content:center;gap:0 1.2em;margin:.1em 0 0;font-size:max(16px,4cqw);display:flex}#after a,#after button{min-height:44px;color:var(--green);text-underline-offset:4px;align-items:center;text-decoration:underline;text-decoration-thickness:1px;display:inline-flex}.refused #goal{font-style:normal}@media (prefers-reduced-motion:reduce){#reply,#more,#burst,#deck,#the-end,#seal,#opening-hint{animation:none}#opening,#sheet{transition:none}}.directing [data-direct]{pointer-events:auto;cursor:pointer}.directing [data-direct]:hover{outline:1px dashed var(--green);outline-offset:3px}
