@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-soft-normal-DSA2Kggd.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-soft-normal-DKHvU-YN.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-soft-normal-C-lS_vzd.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-soft-italic-CyEZfaGz.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-ext-soft-italic-CFDsOWEG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(./fraunces-latin-soft-italic-CIOv5diB.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(./figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fff3e0;--paper-2:#f6e3c6;--card:#fffdf8;--ink:#2a1a16;--ink-2:#7a655c;--rule:#2a1a1629;--wax:#cf3b2b;--wax-deep:#a82b1f;--wax-ink:#fff3e0;--coral:#ff6a4d;--butter:#ffd966;--peach:#ffc2a1;--pink:#ffb3c7;--lilac:#d4c2ff;--sky:#aedcf5;--sage:#bde5bf;--plum:#3b2a52;--serif:"Fraunces Variable", Georgia, serif;--sans:"Figtree Variable", system-ui, sans-serif;--ease:cubic-bezier(.16, 1, .3, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--gutter:20px;--nav-h:72px;--line:2px solid var(--ink);--pop:0 4px 0 var(--ink)}*,:before,:after{box-sizing:border-box}html{background:var(--paper);-webkit-text-size-adjust:100%}body{min-height:100dvh;color:var(--ink);background-color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='28' height='28'><circle cx='7' cy='7' r='1.6' fill='%232a1a16' fill-opacity='.07'/><circle cx='21' cy='21' r='1.6' fill='%232a1a16' fill-opacity='.07'/></svg>");margin:0;font-size:16px;line-height:1.5}a{color:inherit}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}:focus-visible{outline:3px solid var(--coral);outline-offset:3px}::selection{background:var(--butter)}[data-mood=happy]{--tint:var(--butter)}[data-mood=flirty]{--tint:var(--pink)}[data-mood=cosy]{--tint:var(--peach)}[data-mood=tired]{--tint:var(--lilac)}[data-mood=moody]{--tint:var(--sky)}[data-mood=anxious]{--tint:var(--sage)}[data-mood=angry]{--tint:#ff9d8a}.app{max-width:480px;padding:calc(env(safe-area-inset-top) + 14px) var(--gutter) calc(var(--nav-h) + env(safe-area-inset-bottom) + 40px);margin:0 auto}.top{justify-content:space-between;align-items:center;display:flex}.brand-wrap{align-items:center;gap:8px;display:flex}.top .brand{font-family:var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.02em;font-size:24px;font-weight:700}.me{border:var(--line);background:var(--card);border-radius:999px;align-items:center;gap:8px;padding:4px 12px 4px 4px;font-size:14px;font-weight:600;display:flex}.me i{background:var(--coral);border:2px solid var(--ink);border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-style:normal;display:grid}.nav{left:0;right:0;bottom:calc(env(safe-area-inset-bottom) + 12px);z-index:5;padding:0 var(--gutter);pointer-events:none;position:fixed}.nav ul{background:var(--card);border:var(--line);max-width:440px;box-shadow:var(--pop);pointer-events:auto;border-radius:28px;grid-template-columns:repeat(5,1fr);gap:2px;margin:0 auto;padding:6px;list-style:none;display:grid}.nav button{letter-spacing:.02em;width:100%;height:56px;color:var(--ink-2);transition:background .25s, color .25s, transform .3s var(--spring);border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:700;display:flex}.nav button:active{transform:scale(.92)}.nav button[aria-current=page]{background:var(--butter);color:var(--ink)}.nav button svg{width:24px;height:24px;transition:transform .35s var(--spring)}.nav button[aria-current=page] svg{transform:translateY(-1px)scale(1.1)}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin:0;font-size:12px;font-weight:700}h1,h2,h3{font-family:var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.02em;margin:0;font-weight:700;line-height:1.04}h1{font-size:clamp(36px,11vw,46px)}h2{font-size:28px}.serif{font-family:var(--serif);font-variation-settings:"SOFT" 100}.muted{color:var(--ink-2)}.small{font-size:14px}.lede{font-family:var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.01em;margin:0;font-size:20px;font-weight:500;line-height:1.25}.page-title{padding:22px 0 6px}.page-title p{margin:8px 0 0}.section{padding:18px 0}.section>.eyebrow{margin-bottom:12px}.stack{gap:14px;padding-top:14px;display:grid}.card{background:var(--tint,var(--card));border:var(--line);border-radius:26px;padding:18px;position:relative}.card>.eyebrow{color:var(--ink);opacity:.7;margin-bottom:12px}.card .muted{color:#2a1a16b3}.pill{border:1.5px solid var(--ink);background:var(--card);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-block}.link{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--coral);text-decoration-color:var(--coral);font-size:15px;font-weight:700}.link.muted{color:var(--ink-2);-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);font-weight:600}.btn{border:var(--line);background:var(--coral);color:var(--ink);box-shadow:var(--pop);transition:transform .15s var(--spring), box-shadow .15s;border-radius:999px;padding:12px 22px;font-size:15px;font-weight:700;display:inline-block}.btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.btn.ghost{background:var(--card)}.btn:disabled{opacity:.4;box-shadow:none;cursor:default;transform:translateY(3px)}.field{background:var(--card);border:var(--line);border-radius:16px;width:100%;padding:12px 16px;font-size:17px}.field::placeholder{color:var(--ink-2);opacity:.75}textarea.field{font-family:var(--serif);resize:vertical;min-height:140px}.chips{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.chips button,.chip-toggle{border:var(--line);background:var(--card);transition:background .2s, transform .25s var(--spring);border-radius:999px;flex:none;padding:8px 16px;font-size:15px;font-weight:700}.chips button:active,.chip-toggle:active{transform:scale(.94)}.chips button[aria-pressed=true],.chip-toggle[aria-pressed=true]{background:var(--butter)}.tabs{gap:2px;margin:16px -6px 6px;display:flex}.tabs button{white-space:nowrap;color:var(--ink-2);border:2px solid #0000;border-radius:999px;padding:7px 11px;font-size:14px;font-weight:700;transition:background .2s,color .2s}.tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.rows{gap:10px;margin:0;padding:0;list-style:none;display:grid}.rows>li{background:var(--card);border:var(--line);border-radius:20px;padding:14px 16px}.card .rows{gap:0}.card .rows>li{background:0 0;border:0;border-top:1.5px dashed #2a1a1640;border-radius:0;padding:10px 0}.card .rows>li:first-child{border-top:0;padding-top:0}.row{align-items:center;gap:14px;display:flex}.row .grow{flex:1;min-width:0}.hello h1{margin-top:4px}.tiles{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tile{border:var(--line);background:var(--butter);border-radius:26px;padding:14px 16px 16px;position:relative;overflow:hidden}.tile.morning{background:var(--butter)}.tile.afternoon{background:var(--sky)}.tile.evening{background:var(--peach)}.tile.night{background:var(--plum);color:var(--paper)}.tile.night .muted,.tile.night .city{color:#fff3e0bf}.tile .glyph{width:30px;height:30px;position:absolute;top:12px;right:12px}.tile .city{letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:700}.tile .time{font-family:var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.03em;font-variant-numeric:lining-nums tabular-nums;margin:10px 0 4px;font-size:clamp(34px,10.5vw,44px);font-weight:700;line-height:1;display:block}.tile .part{opacity:.8;font-size:14px;font-weight:600}.weather{text-align:left;align-items:center;gap:16px;width:100%;display:flex}.weather .badge{background:var(--card);border:var(--line);width:76px;height:76px;color:var(--ink);border-radius:50%;flex:none;place-items:center;animation:4s ease-in-out infinite float;display:grid}@keyframes float{50%{transform:translateY(-4px)rotate(-3deg)}}.weather .forecast{font-family:var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.015em;font-size:23px;font-weight:700;line-height:1.1}.ping{align-items:center;gap:18px;display:flex}.ping-btn{background:var(--coral);border:var(--line);width:96px;height:96px;box-shadow:0 6px 0 var(--ink);font-family:var(--serif);font-variation-settings:"SOFT" 100;transition:transform .15s var(--spring), box-shadow .15s;border-radius:50%;flex:none;font-size:22px;font-weight:700;position:relative}.ping-btn:active{box-shadow:0 1px 0 var(--ink);transform:translateY(5px)}.ping-btn[data-sent=true]{background:var(--butter)}.week{gap:7px;margin-top:14px;display:flex}.week i{border:1.5px solid var(--ink);background:0 0;border-radius:999px;flex:1;height:14px}.week i.on{background:var(--ink)}.week i.today{outline:2px solid var(--ink);outline-offset:2px}.birthday{--tint:var(--pink);text-align:left}.birthday h2{margin-top:6px;font-size:34px}.birthday p{margin:10px 0 0}.birthday .confetti{width:54px;height:54px;position:absolute;top:14px;right:14px}.raceday{--tint:var(--ink);color:var(--paper);overflow:hidden}.raceday .eyebrow,.raceday .muted{color:var(--butter);opacity:1}.raceday:after{content:"";background-image:conic-gradient(var(--paper) 25%, var(--ink) 0 50%, var(--paper) 0 75%, var(--ink) 0);opacity:.9;background-size:14px 14px;width:28px;position:absolute;top:0;bottom:0;right:0}.raceday .lede{padding-right:34px}.mood-row{text-align:left;background:var(--card);border:var(--line);width:100%;transition:background .25s, transform .25s var(--spring);border-radius:22px;align-items:center;gap:14px;margin-bottom:10px;padding:12px 16px;display:flex}.mood-row:active{transform:scale(.97)}.mood-row[aria-pressed=true]{background:var(--tint);box-shadow:var(--pop)}.mood-row .face{background:var(--tint);border:var(--line);border-radius:50%;flex:none;place-items:center;width:52px;height:52px;display:grid}.mood-row[aria-pressed=true] .face{background:var(--card)}.mood-row .name{font-family:var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.015em;font-size:22px;font-weight:700;line-height:1.1}.poster{border:var(--line);background:var(--paper-2);object-fit:cover;width:48px;height:72px;font-family:var(--serif);color:var(--ink-2);border-radius:10px;flex:none;place-items:center;font-size:22px;font-weight:700;display:grid}.film-title{font-family:var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.01em;font-size:20px;font-weight:700;line-height:1.12}.stars button{width:30px;height:30px;color:var(--ink-2);border:1.5px solid var(--rule);border-radius:50%;font-size:14px;font-weight:700}.stars button[aria-pressed=true]{background:var(--butter);color:var(--ink);border-color:var(--ink)}.film-card{align-items:flex-start;gap:14px;display:flex}.film-card .film-poster{aspect-ratio:2/3;border:var(--line);background:var(--paper-2);object-fit:cover;width:88px;font-family:var(--serif);color:var(--ink-2);border-radius:14px;flex:none;place-items:center;font-size:30px;display:grid}.film-card.large{background:var(--card);border:var(--line);border-radius:28px;flex-direction:column;gap:18px;padding:16px}.film-card.large .film-poster{border-radius:20px;width:74%;margin:0 auto}.film-card.large .film-title{font-size:30px}.film-body{min-width:0}.film-overview{-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:10px 0 14px;font-size:15px;line-height:1.45;display:-webkit-box;overflow:hidden}.film-card.large .film-overview{-webkit-line-clamp:8;font-size:16px}.more-card{text-align:left;border:var(--line);background:var(--tint);width:100%;box-shadow:var(--pop);transition:transform .15s var(--spring), box-shadow .15s;border-radius:24px;padding:16px 18px;display:block}.more-card:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.back{border:var(--line);background:var(--card);border-radius:999px;margin-top:14px;padding:5px 14px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.tick{border:var(--line);background:var(--card);width:26px;height:26px;transition:background .2s, transform .3s var(--spring);border-radius:9px;flex:none}.tick:active{transform:scale(.85)}.tick[aria-pressed=true]{background:var(--sage);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a1a16' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>");background-size:100%}.player{border:var(--line);border-radius:18px;width:100%;height:175px;display:block}.player.video{aspect-ratio:16/9;height:auto}.countdown{font-family:var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.04em;font-variant-numeric:lining-nums tabular-nums;margin:14px 0 0;font-size:120px;font-weight:700;line-height:1;animation:1s ease-out infinite tick}@keyframes tick{0%{transform:scale(1.12)}to{transform:scale(1)}}.craving{font-size:clamp(34px,10vw,44px);line-height:1.04}.stage{max-width:480px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 28px) var(--gutter) calc(env(safe-area-inset-bottom) + 28px);flex-direction:column;margin:0 auto;display:flex}.who{gap:14px;display:grid}.who button{text-align:left;border:var(--line);width:100%;box-shadow:var(--pop);font-family:var(--serif);font-variation-settings:"SOFT" 100;letter-spacing:-.025em;transition:transform .15s var(--spring), box-shadow .15s;border-radius:28px;justify-content:space-between;align-items:center;padding:22px 24px;font-size:38px;font-weight:700;line-height:1;display:flex}.who button:first-child{background:var(--pink)}.who button:nth-child(2){background:var(--sky)}.who button:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.seal-stage{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:40px;display:flex}.seal-btn{aspect-ratio:1;width:min(64vw,260px);transition:transform .4s var(--spring), opacity .6s;animation:3.2s ease-in-out infinite wobble;position:relative}@keyframes wobble{0%,to{transform:rotate(-2deg)scale(1)}50%{transform:rotate(2deg)scale(1.03)}}.seal-btn:active{animation:none;transform:scale(.94)}.seal-btn.broken{animation:none}.seal-btn svg{width:100%;height:100%;overflow:visible}.seal-half{transform-box:fill-box;transition:transform 1s var(--ease), opacity .5s .8s}.broken .seal-half.left{opacity:0;transform:translate(-46px,30px)rotate(-14deg)}.broken .seal-half.right{opacity:0;transform:translate(46px,40px)rotate(12deg)}.letter-page .greeting{font-style:italic}.letter-page p{font-family:var(--serif);margin:0 0 1.1em;font-size:21px;line-height:1.6}.fade-up{animation:fade-up .6s var(--ease) both}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.stack>*,.rows>li{animation:pop-in .5s var(--spring) both}.stack>:nth-child(2){animation-delay:60ms}.stack>:nth-child(3){animation-delay:.12s}.stack>:nth-child(4){animation-delay:.18s}.stack>:nth-child(5){animation-delay:.24s}.stack>:nth-child(n+6){animation-delay:.3s}@keyframes pop-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
