@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./fraunces-vietnamese-opsz-normal-Czevyj-6.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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-opsz-normal-CJcjJNj7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-opsz-normal-DihXLNYH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,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-opsz-italic-DxWqP7Ku.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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-opsz-italic-CGbN9UgK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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-opsz-italic-lSdLDfvT.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(./instrument-sans-latin-wght-normal-BbzFLZTg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--serif: "Fraunces Variable", Georgia, "Times New Roman", serif;--sans: "Instrument Sans Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:root,:root[data-theme=night]{--ink: #e9ecfa;--ink-soft: #9aa4c9;--panel: rgba(20, 27, 56, .5);--panel-border: rgba(188, 208, 255, .18);--glow: #bcd0ff;--accent: #ecdca6;--hero: #f4f1e4;--cell: rgba(188, 208, 255, .07);--cell-border: rgba(188, 208, 255, .14);--petal-mid: #eaf3ff;--petal-inner: #ffffff;--canopy-glow-1: rgba(190, 208, 255, .55);--canopy-glow-2: rgba(150, 175, 255, .3);--sky-a: #0a0f24;--sky-b: #070a18;--sky-c: #05070f;--sky-glow-1: rgba(188, 208, 255, .2);--sky-glow-2: rgba(120, 140, 220, .1);--hill-far: #1e2c54;--hill-mid: #121f42;--hill-near: #080f24;--ridge-hi: rgba(130, 160, 225, .22);--river-top: #5878b0;--river-bot: #17284c;--tree-far: #182c46;--tree-near: #0c1a2c;--trunk-s: #463a34;--spark: rgba(255, 236, 170, .95);--spark-glow: rgba(255, 220, 130, .9);--treeline: #0b1730;--bank-1: #cfd9ff;--bank-2: #ecd9a0;--bank-3: #d6c8ff;--lily: #bcd6ff;--lily-heart: #fff3c4;--cloud: rgba(30, 42, 74, .5);--frog: #2f5f45;--scrim: rgba(6, 9, 22, .55)}:root[data-theme=day]{--ink: #364a2c;--ink-soft: #5f7450;--panel: rgba(255, 255, 255, .5);--panel-border: rgba(110, 150, 90, .32);--glow: #4f9a52;--accent: #7466bf;--hero: #4f6bc0;--cell: rgba(120, 165, 95, .16);--cell-border: rgba(110, 150, 90, .28);--petal-mid: #dbe8ff;--petal-inner: #f4f8ff;--canopy-glow-1: rgba(150, 178, 232, .6);--canopy-glow-2: rgba(125, 155, 215, .35);--sky-a: #b9e0ef;--sky-b: #d6edea;--sky-c: #e7f2d9;--sky-glow-1: rgba(255, 244, 210, .55);--sky-glow-2: rgba(150, 205, 150, .28);--hill-far: #a8d488;--hill-mid: #7cb35c;--hill-near: #578d3c;--ridge-hi: rgba(255, 255, 255, .34);--river-top: #d3f0f3;--river-bot: #79bece;--tree-far: #6fa955;--tree-near: #4f8639;--trunk-s: #7c5732;--spark: rgba(255, 250, 246, .95);--spark-glow: rgba(255, 200, 220, .75);--treeline: #5c8f45;--bank-1: #ff9ec4;--bank-2: #fff29a;--bank-3: #ffffff;--lily: #ff9ec4;--lily-heart: #fff0a0;--cloud: rgba(255, 255, 255, .85);--frog: #57923f;--scrim: rgba(247, 251, 242, .5)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden}body{color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:radial-gradient(90% 70% at 82% 12%,var(--sky-glow-1),transparent 55%),radial-gradient(80% 60% at 20% 95%,var(--sky-glow-2),transparent 60%),linear-gradient(180deg,var(--sky-a) 0%,var(--sky-b) 55%,var(--sky-c) 100%);transition:background .6s ease,color .6s ease}.sky{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.stars{position:absolute;top:0;right:0;bottom:0;left:0}.star{position:absolute;border-radius:50%;background:#fff;opacity:var(--b, .6);box-shadow:0 0 4px #ffffffb3;animation:twinkle linear infinite}.orb{position:absolute;top:clamp(6px,3vw,34px);right:clamp(2px,5vw,70px);width:clamp(150px,22vw,280px);height:auto}.meteor-sky{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.moon{filter:drop-shadow(0 0 40px rgba(210,222,255,.35))}.sun{filter:drop-shadow(0 0 44px rgba(255,238,208,.4))}.orb__body{animation:moonpulse 8s ease-in-out infinite;transform-origin:100px 100px}.sun__rays{transform-origin:100px 100px;animation:spin 60s linear infinite}.scenery{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.hill{transition:fill .6s ease}.hill--far{fill:var(--hill-far)}.hill--mid{fill:var(--hill-mid)}.hill--near{fill:var(--hill-near)}.tree__trunk{stroke:var(--trunk-s);stroke-width:3}.tree--far{fill:var(--tree-far);transition:fill .6s ease}.tree--near{fill:var(--tree-near);transition:fill .6s ease}.river__top{stop-color:var(--river-top)}.river__bot{stop-color:var(--river-bot)}.river__fade{stop-color:var(--river-top);stop-opacity:0}.river__shine{opacity:.5;animation:shimmer 5s ease-in-out infinite}.ripple{fill:var(--river-top);opacity:0;offset-path:path("M731,496 C700,560 700,612 735,662 C760,702 748,732 754,760");offset-rotate:0deg;animation:flow 6s linear infinite}.spark{fill:var(--spark);filter:drop-shadow(0 0 4px var(--spark-glow));animation:sparkfloat 7s ease-in-out infinite}.treeline{fill:var(--treeline);opacity:.7;transition:fill .6s ease}.ridge{fill:none;stroke:var(--ridge-hi);stroke-width:2.5;stroke-linecap:round;transition:stroke .6s ease}.frog__body,.frog__eye{fill:var(--frog)}.frog__belly{fill:#fff;opacity:.16}.frog__shine{fill:#fff;opacity:.85}.frog__pupil{fill:#10231a}.frog__mouth{fill:none;stroke:#10231a;stroke-width:1.4;stroke-linecap:round;opacity:.55}.frog{transform-box:fill-box;transform-origin:bottom center;animation:frogbob 4.5s ease-in-out infinite}.grass path{fill:none;stroke:var(--tree-near);stroke-width:2.4;stroke-linecap:round}.bank{transition:fill .6s ease}.bank--1{fill:var(--bank-1)}.bank--2{fill:var(--bank-2)}.bank--3{fill:var(--bank-3)}.lily-pad{fill:var(--tree-near);opacity:.85}.lily-flower ellipse{fill:var(--lily)}.lily-heart{fill:var(--lily-heart)}.ambience{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}.cloud{fill:var(--cloud);animation-name:clouddrift;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}.butterfly{animation-timing-function:ease-in-out;animation-iteration-count:infinite}.bfly--a{animation-name:wanderA}.bfly--b{animation-name:wanderB}.bfly--c{animation-name:wanderC}.bfly--a .wing{fill:#f4a6d0}.bfly--b .wing{fill:#b8a6e8}.bfly--c .wing{fill:#ffe07a}.wing{opacity:.92}.butterfly__wings{transform-box:fill-box;transform-origin:center;animation:flap .28s ease-in-out infinite alternate}.butterfly__body{stroke:#4a3f52;stroke-width:2;stroke-linecap:round}.flock{animation:glide 34s linear infinite}.bird{fill:none;stroke:#404a428c;stroke-width:2.4;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:wingbeat .5s ease-in-out infinite alternate}.shooting-star{opacity:0;animation-name:shoot;animation-timing-function:ease-in;animation-iteration-count:infinite}.shooting-star line{stroke:#fff;stroke-width:2;stroke-linecap:round}.shooting-star circle{fill:#fff;filter:drop-shadow(0 0 5px rgba(255,255,255,.9))}@keyframes clouddrift{0%{transform:translate(-40px)}to{transform:translate(70px)}}@keyframes flap{0%{transform:scaleX(1)}to{transform:scaleX(.42)}}@keyframes wingbeat{0%{transform:scaleY(1)}to{transform:scaleY(.5)}}@keyframes glide{0%{transform:translate(-240px)}to{transform:translate(1700px)}}@keyframes wanderA{0%,to{transform:translate(0)}25%{transform:translate(70px,-46px)}50%{transform:translate(150px,8px)}75%{transform:translate(66px,52px)}}@keyframes wanderB{0%,to{transform:translate(0)}25%{transform:translate(-80px,40px)}50%{transform:translate(-150px,-12px)}75%{transform:translate(-64px,-50px)}}@keyframes wanderC{0%,to{transform:translate(0)}30%{transform:translate(90px,34px)}60%{transform:translate(30px,-54px)}85%{transform:translate(-40px,-18px)}}@keyframes shoot{0%{opacity:0;transform:translate(var(--sx),var(--sy))}6%{opacity:.9}16%{opacity:.9}24%,to{opacity:0;transform:translate(var(--ex),var(--ey))}}@keyframes frogbob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.page{position:relative;height:100vh;overflow:hidden}.stage{position:relative;z-index:2;max-width:1160px;margin:0 auto;padding:clamp(1.5rem,5vh,4rem) clamp(1.4rem,5vw,4rem);height:100vh;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:clamp(1.5rem,4vw,3.5rem)}.letter{max-width:33rem;position:relative;z-index:0}.letter:before{content:"";position:absolute;top:-9%;right:-12%;bottom:-7%;left:-14%;z-index:-1;background:radial-gradient(115% 100% at 34% 42%,var(--scrim),transparent 78%);border-radius:44px;transition:background .6s ease}@media (max-width: 880px){.letter:before{top:-6%;right:-6%;bottom:-5%;left:-6%;background:radial-gradient(120% 100% at 50% 42%,var(--scrim),transparent 82%)}}.letter__eyebrow{margin:0 0 1.5rem;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:var(--glow);font-weight:500}.message{position:relative;margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,3.1vw,2rem);line-height:1.4;letter-spacing:-.01em;color:var(--ink);text-shadow:0 2px 30px rgba(120,150,255,.18)}.message__ghost{visibility:hidden}.message__typed{position:absolute;top:0;right:0;bottom:0;left:0}.message__caret{display:inline-block;width:3px;height:1.05em;margin-left:2px;vertical-align:-.14em;background:var(--glow);box-shadow:0 0 8px var(--glow);animation:blink 1s steps(1) infinite}.letter__sign{margin:1.6rem 0 0;font-family:var(--serif);font-size:1.3rem;color:var(--accent)}.letter__sign em{font-style:italic;font-weight:600}.counter{margin-top:clamp(1.8rem,4vw,2.6rem);padding:1.2rem 1.4rem;border-radius:20px;background:var(--panel);border:1px solid var(--panel-border);box-shadow:0 20px 50px -24px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:30rem}.counter__lead{margin:0 0 .5rem;font-size:.82rem;color:var(--ink-soft);font-style:italic}.counter__days{margin:0;display:flex;align-items:baseline;gap:.5rem}.counter__days-num{display:inline-block;transform-origin:left bottom;font-family:var(--serif);font-weight:600;font-size:clamp(2.8rem,8vw,4.2rem);line-height:.95;color:var(--hero);font-variant-numeric:tabular-nums;text-shadow:0 0 30px var(--canopy-glow-1)}.counter__days-label{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--accent)}.counter__row{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;gap:.55rem}.counter__cell{flex:1;padding:.55rem .4rem;text-align:center;border-radius:12px;background:var(--cell);border:1px solid var(--cell-border)}.counter__cell-num{display:inline-block;font-size:1.35rem;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}.counter-tilt{max-width:30rem;transform-style:preserve-3d}.counter__cell-label{display:block;margin-top:.1rem;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.tree{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem}.tree__press{width:100%;display:flex;justify-content:center}.heart{width:100%;max-width:460px;height:auto;cursor:pointer;transform-origin:200px 460px;animation:sway 7s ease-in-out infinite;-webkit-tap-highlight-color:transparent;outline:none;overflow:visible}.heart:focus,.heart:focus-visible{outline:none}.heart:focus-visible{filter:drop-shadow(0 0 14px rgba(188,208,255,.85))}.trunk-fill{fill:#6e5238;stroke:none}.trunk-branch{fill:none;stroke:#6e5238;stroke-linecap:round}.heart__canopy{filter:drop-shadow(0 0 4px var(--canopy-glow-1)) drop-shadow(0 0 14px var(--canopy-glow-2))}.lotus__mid{fill:var(--petal-mid)}.lotus__inner{fill:var(--petal-inner)}.tree__hint{margin:0;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);animation:hintpulse 2.6s ease-in-out infinite}.petals{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;overflow:hidden}.petals__item{position:absolute;top:-6vh;animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite;filter:drop-shadow(0 0 6px rgba(190,208,255,.6))}@keyframes sway{0%,to{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}}@keyframes fall{0%{transform:translateY(-6vh) rotate(0)}to{transform:translate(var(--drift, 0),112vh) rotate(var(--spin, 360deg))}}@keyframes twinkle{0%,to{opacity:calc(var(--b, .6) * .3)}50%{opacity:var(--b, .6)}}@keyframes moonpulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.08)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes hintpulse{0%,to{opacity:.35}50%{opacity:.85}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sparkfloat{0%,to{opacity:.15;transform:translateY(2px)}50%{opacity:1;transform:translateY(-14px)}}@keyframes shimmer{0%,to{opacity:.35}50%{opacity:.65}}@keyframes flow{0%{offset-distance:0%;opacity:0}20%{opacity:.7}80%{opacity:.7}to{offset-distance:100%;opacity:0}}.debug{position:fixed;z-index:20;left:50%;bottom:clamp(12px,3vw,24px);transform:translate(-50%);display:flex;align-items:center;gap:.4rem;padding:.5rem .6rem;border-radius:999px;background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 12px 34px -14px #00000080}.debug__title{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);padding:0 .4rem}.debug__btn{font-family:var(--sans);font-size:.78rem;color:var(--ink);padding:.35rem .7rem;border-radius:999px;border:1px solid var(--cell-border);background:var(--cell);cursor:pointer;transition:background .2s ease,border-color .2s ease}.debug__btn:hover{border-color:var(--glow)}.debug__btn.is-active{background:var(--glow);border-color:var(--glow);color:#12162b;font-weight:600}@media (max-width: 880px){.stage{grid-template-columns:1fr;grid-template-rows:auto auto;text-align:center;gap:clamp(.4rem,1.5vh,1rem);padding:clamp(.8rem,2.5vh,1.6rem) 1.3rem;align-content:center}.orb{width:clamp(96px,26vw,150px);top:clamp(6px,2vh,20px);right:50%;transform:translate(50%)}.tree{order:-1;gap:.2rem}.heart{max-width:clamp(150px,40vw,210px)}.tree__hint{font-size:.66rem}.letter{margin:0 auto}.letter__eyebrow{margin-bottom:.7rem;font-size:.68rem}.message{font-size:clamp(1.1rem,4.6vw,1.42rem);line-height:1.32}.letter__sign{margin-top:.9rem;font-size:1.1rem}.counter{margin-top:clamp(.8rem,2vh,1.4rem);padding:.9rem 1rem}.counter-tilt{margin-left:auto;margin-right:auto}.counter__days{justify-content:center}.counter__days-num{font-size:clamp(2.2rem,10vw,3rem)}.counter__row{margin-top:.7rem}.counter__cell{padding:.45rem .3rem}}:focus-visible{outline:2px solid var(--glow);outline-offset:4px;border-radius:8px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important}.message__caret{display:none}}
