@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500;1,600&family=Inter:wght@300;400;500;600&display=swap";:root{--font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;--font-body: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--ink: #2f1120;--ink-soft: #5c2a40;--ink-mute: #8a5c70;--rose: #b0184a;--rose-bright: #d63a63;--rose-tint: #fbe6ec;--gold: #c08a3e;--gold-tint: #f6e7cd;--violet: #6d28d9;--violet-tint: #efe7ff;--amber: #a85d12;--amber-tint: #fbeedd;--paper: #fffaf5;--line: rgba(47, 17, 32, .1);--line-strong: rgba(47, 17, 32, .18);--tick: rgba(47, 17, 32, .22);--radius-sm: .5rem;--radius-md: .875rem;--radius-lg: 1.25rem;--shadow-sm: 0 1px 2px rgba(47, 17, 32, .06), 0 2px 6px rgba(47, 17, 32, .05);--shadow-md: 0 1px 2px rgba(47, 17, 32, .05), 0 10px 24px -8px rgba(47, 17, 32, .16);--shadow-lg: 0 2px 6px rgba(47, 17, 32, .05), 0 28px 56px -18px rgba(47, 17, 32, .28);--shadow-glow: 0 0 0 1px rgba(255, 255, 255, .6) inset;--ease-out: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:var(--font-body);font-size:16px;font-weight:400;letter-spacing:.005em;color:var(--ink-soft);background-color:#fdf4f2;background-image:radial-gradient(38rem 30rem at 18% 8%,#ffcddcbf,#ffcddc00 62%),radial-gradient(34rem 26rem at 88% 18%,#ffe4cd99,#ffe4cd00 60%),radial-gradient(42rem 34rem at 72% 96%,#ebcdeb8c,#ebcdeb00 65%),linear-gradient(176deg,#fffdfc,#fdf1f1 46%,#f6e4e6);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:radial-gradient(rgba(47,17,32,.14) .5px,transparent .5px);background-size:3px 3px;opacity:.35;mix-blend-mode:multiply}#root{min-height:100vh}::selection{background:#d63a632e;color:var(--ink)}button{font-family:inherit;letter-spacing:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid var(--rose-bright);outline-offset:3px}html.hide-cursor,html.hide-cursor *{cursor:none!important}.heart-cursor-el{position:fixed;z-index:9999;pointer-events:none;transform:translate(-50%,-50%)}.mode-toggle{position:fixed;top:1.1rem;left:50%;transform:translate(-50%);z-index:90;display:flex;padding:.18rem;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:#ffffff80;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-sm)}.mode-toggle-btn{padding:.35rem .85rem .4rem;border:0;border-radius:999px;background:transparent;color:var(--ink-mute);font-size:.78rem;font-weight:500;letter-spacing:.03em}.mode-toggle-btn.is-on{background:#ffffffeb;color:var(--ink);box-shadow:var(--shadow-sm)}.debug-click{position:fixed;z-index:10000;width:28px;height:28px;pointer-events:none;transform:translate(-50%,-50%);animation:debugClickFade .85s var(--ease-out) forwards}.debug-click:before,.debug-click:after{content:"";position:absolute;background:var(--rose-bright);box-shadow:0 0 0 1px #ffffffd9}.debug-click:before{left:50%;top:0;width:2px;height:100%;margin-left:-1px}.debug-click:after{top:50%;left:0;height:2px;width:100%;margin-top:-1px}@keyframes debugClickFade{0%{opacity:1;transform:translate(-50%,-50%) scale(.7)}to{opacity:0;transform:translate(-50%,-50%) scale(1.25)}}.heart-cursor-glyph{display:block;font-size:38px;line-height:1;color:var(--rose-bright);filter:drop-shadow(0 1px 1px rgba(255,255,255,.7)) drop-shadow(0 4px 10px rgba(176,24,74,.35));animation:heartCursorGrow 5s var(--ease-out) forwards}@keyframes heartCursorGrow{0%{opacity:0;transform:scale(.15)}to{opacity:1;transform:scale(1)}}.intro{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:50;background:radial-gradient(28rem 22rem at 50% 42%,#ffffffeb,#fff0 60%),radial-gradient(60rem 48rem at 50% 50%,#ffd6e300 45%,#7e264729),linear-gradient(168deg,#fff3f6,#fbd9e2 52%,#f3c2d1);animation:introFade .7s ease-in 4.2s forwards}.particle{position:absolute;--rot: 0deg;--spin: 0deg;transform:translate(-50%,-50%) scale(.2) rotate(var(--rot));opacity:0;animation-name:flyAtYou;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:forwards;will-change:transform,opacity;-webkit-user-select:none;user-select:none}.particle-heart{color:var(--rose-bright);filter:drop-shadow(0 2px 8px rgba(176,24,74,.3))}.particle-kiss{filter:drop-shadow(0 2px 8px rgba(157,23,77,.26))}@keyframes flyAtYou{0%{opacity:0;transform:translate(-50%,-50%) scale(.12) rotate(var(--rot))}15%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(3.4) rotate(var(--spin))}}@keyframes introFade{to{opacity:0}}.after-intro{position:relative;min-height:100vh;padding:clamp(1.75rem,5vh,3.25rem) 1.25rem}.poet-line{margin:0 auto;width:100%;max-width:34rem;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(1.02rem,2.4vw,1.45rem);line-height:1.55;letter-spacing:.01em;color:var(--ink);text-align:center;text-wrap:balance;animation:contentIn .8s var(--ease-out) both}.poet-line:after{content:"";display:block;width:7.5rem;height:1px;margin:1.35rem auto 0;background:linear-gradient(90deg,transparent,var(--line-strong) 20%,var(--gold) 50%,var(--line-strong) 80%,transparent);opacity:.85}.game-rules{position:absolute;top:50%;left:50%;margin:0;width:calc(100% - 2.5rem);max-width:27rem;font-family:var(--font-display);font-size:clamp(1.02rem,2.9vw,1.2rem);font-weight:500;line-height:1.6;letter-spacing:.008em;color:var(--ink-soft);text-align:center;text-wrap:pretty;animation:gameRulesIn .9s var(--ease-out) .35s both}.game-rules p{margin:0 0 1.1rem}.game-rules p:last-child{margin-bottom:0}.game-rules-secrets{line-height:2.7}.secret-chip{display:inline-block;margin:.2rem .15rem;padding:.24rem .85rem .3rem;border:1px solid currentColor;border-radius:999px;background:#fff9;font:inherit;font-style:italic;font-weight:600;letter-spacing:.03em;vertical-align:baseline;box-shadow:var(--shadow-sm);transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),background-color .25s var(--ease-out)}.secret-chip:hover,.secret-chip:focus-visible{transform:translateY(-2px);box-shadow:0 2px 4px #2f11200f,0 10px 22px -8px #2f11204d}.secret-chip:active{transform:translateY(0) scale(.98);box-shadow:var(--shadow-sm)}.secret-time{color:var(--rose);border-color:#b0184a59;background:var(--rose-tint)}.secret-day{color:var(--amber);border-color:#a85d1252;background:var(--amber-tint)}.secret-place{color:var(--violet);border-color:#6d28d947;background:var(--violet-tint)}.secret-chip.is-done{opacity:1;box-shadow:none;text-decoration:none;background:#ffffffb8;border-style:solid}.secret-chip:disabled{transform:none}.see-you{position:absolute;bottom:clamp(1rem,3vh,1.9rem);left:50%;transform:translate(-50%);width:calc(100% - 2rem);max-width:31rem;margin:0;padding:.9rem 1.35rem 1rem;border:1px solid rgba(255,255,255,.7);border-radius:var(--radius-lg);background:#ffffff8c;backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);font-family:var(--font-display);font-size:clamp(1.02rem,3vw,1.2rem);line-height:2.1;color:var(--ink);text-align:center;box-shadow:var(--shadow-md);animation:contentIn .6s var(--ease-out) both}.see-you .secret-chip{box-shadow:none}.place-note{display:inline-flex;align-items:center;justify-content:center;margin:0 .15rem;padding:.28rem .6rem .22rem;border:1px solid rgba(192,138,62,.35);border-radius:var(--radius-sm);background:linear-gradient(180deg,#fffdf8,var(--gold-tint));box-shadow:var(--shadow-sm);vertical-align:middle;line-height:1;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}.place-note:hover,.place-note:focus-visible{transform:translateY(-2px) rotate(-2deg);box-shadow:var(--shadow-md)}.place-note-seal{font-size:1.4rem;line-height:1}.place-note-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#2f112066;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:overlayIn .35s var(--ease-out)}.heart-cursor-el.is-key .heart-cursor-glyph{font-size:34px;animation:heartCursorGrow .8s var(--ease-out) forwards}.game-screen{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;padding:4.25rem 1.25rem 2rem;text-align:center;animation:contentIn .5s var(--ease-out)}.game-back{position:absolute;top:1.1rem;left:1.1rem;padding:.4rem .95rem .45rem .8rem;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:#ffffff80;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink-soft);font-size:.875rem;font-weight:500;letter-spacing:.01em;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),color .2s ease}.game-back:hover,.game-back:focus-visible{transform:translate(-2px);color:var(--rose);box-shadow:var(--shadow-md)}.game-title{margin:0;font-family:var(--font-display);font-weight:500;font-size:clamp(1.7rem,5.2vw,2.35rem);line-height:1.15;letter-spacing:.005em;color:var(--ink)}.game-clue{margin:0;max-width:25rem;color:var(--ink-mute);font-size:.95rem;line-height:1.6;text-wrap:pretty}.game-status{margin:.15rem 0 0;min-height:1.5em;color:var(--ink-mute);font-family:var(--font-display);font-style:italic;font-size:1.02rem;letter-spacing:.01em}.game-primary{margin-top:.5rem;padding:.7rem 1.6rem;border:0;border-radius:999px;background:linear-gradient(180deg,var(--rose-bright),var(--rose));color:#fff;font-size:.95rem;font-weight:600;letter-spacing:.02em;box-shadow:0 1px 2px #b0184a4d,0 12px 26px -10px #b0184a99;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),filter .2s ease}.game-primary:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 1px 2px #b0184a4d,0 18px 34px -12px #b0184aa6}.game-primary:disabled{opacity:.55;box-shadow:none}.calendar-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.4rem;width:100%;max-width:24rem}.calendar-day{aspect-ratio:1;width:100%;min-width:0;padding:0;border:1px solid rgba(168,93,18,.25);border-radius:var(--radius-md);background:linear-gradient(180deg,#fffdf9,var(--amber-tint));color:var(--amber);font-weight:600;font-size:.85rem;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out)}.calendar-day:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.calendar-day.is-wrong{animation:shake .35s ease;border-color:var(--rose-bright);color:var(--rose)}.day-game{-webkit-user-select:none;user-select:none}.day-bow{position:fixed;left:56px;bottom:56px;z-index:30;width:72px;height:72px;pointer-events:none;filter:drop-shadow(0 3px 6px rgba(47,17,32,.28));transform-origin:center}.day-bow-svg{display:block;width:100%;height:100%;overflow:visible}.day-bow-limb{fill:none;stroke:#7a4320;stroke-width:5;stroke-linecap:round}.day-bow-string{stroke:#2f1120bf;stroke-width:1.5}.day-arrow{position:fixed;top:0;left:0;z-index:28;width:72px;height:16px;pointer-events:none;transform-origin:center;filter:drop-shadow(0 2px 3px rgba(47,17,32,.22))}.day-arrow-svg{display:block;width:72px;height:16px;overflow:visible}.day-arrow-shaft,.day-arrow-fletch{fill:none;stroke:#5c2a1a;stroke-width:1.75;stroke-linecap:round}.day-arrow-tip{fill:#8b3a55;stroke:#5c2a1a;stroke-width:1}.day-heart-fall{position:fixed;top:0;left:0;z-index:18;font-size:3.5rem;line-height:1;color:var(--rose-bright);pointer-events:none;margin-left:-.5em;margin-top:-.5em;filter:drop-shadow(0 1px 1px rgba(255,255,255,.6)) drop-shadow(0 4px 8px rgba(176,24,74,.28))}.clue-heart{display:inline-block;vertical-align:-.2em;width:1.35em;height:1.1em}.clue-heart-svg{display:block;width:100%;height:100%;overflow:visible}.clue-heart-body{fill:var(--rose-bright)}.clue-heart-arrow line,.clue-heart-arrow path{fill:none;stroke:#5c2a1a;stroke-width:1.6;stroke-linecap:round}.clue-heart-arrow polygon{fill:#8b3a55;stroke:#5c2a1a;stroke-width:.8}.day-drop-key{position:fixed;top:0;left:0;z-index:32;border:0;background:transparent;font-size:2.6rem;line-height:1;padding:0;margin-left:-.5em;margin-top:-.5em;filter:drop-shadow(0 6px 10px rgba(47,17,32,.35))}.day-drop-key.is-landed{animation:dayKeyPulse 1.6s ease-in-out infinite}.day-chest{position:fixed;right:1.25rem;bottom:1.25rem;z-index:25;display:grid;place-items:center;width:6.25rem;height:5.75rem;border:1px solid rgba(192,138,62,.28);border-radius:var(--radius-md);background:linear-gradient(165deg,#fffdf8,#f7e8cd);box-shadow:var(--shadow-md),inset 0 1px #ffffffe6;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out);pointer-events:none}.day-chest.is-near{transform:translateY(-3px) scale(1.05);box-shadow:0 0 0 4px #c08a3e47,var(--shadow-lg)}.day-chest.is-near .day-chest-lock{filter:drop-shadow(0 0 9px rgba(251,191,36,.95))}.day-chest.is-unlocking .day-chest-lock{animation:dayLockTurn .85s ease-in-out forwards}.day-chest.is-unlocking .day-chest-shackle{animation:dayShackleOpen .55s .35s ease-out forwards}.day-chest.is-open{background:linear-gradient(160deg,#fff6f7,#fcd9de);border-color:#b0184a33}.day-chest-glyph{font-size:2.6rem;line-height:1;filter:drop-shadow(0 4px 8px rgba(176,24,74,.25))}.day-chest-svg{display:block;width:5.2rem;height:auto;overflow:visible}.day-chest-shadow{fill:#2f112024}.day-chest-lid{fill:#a9541f;stroke:#6f2f12;stroke-width:1.5}.day-chest-body{fill:#b9531f;stroke:#6f2f12;stroke-width:1.5}.day-chest-band,.day-chest-trim{fill:#cf9d35;stroke:#96631a;stroke-width:1}.day-chest-lock-hit{fill:transparent;pointer-events:none}.day-chest-lock{transform-box:fill-box;transform-origin:center;transition:filter .3s ease}.day-chest-shackle{fill:none;stroke:#c69112;stroke-width:5;stroke-linecap:round}.day-chest-lock-body{fill:#f6c04a;stroke:#8c4a12;stroke-width:2}.day-chest-keyhole{fill:#2b1a12;stroke:none}@keyframes dayLockTurn{0%{transform:rotate(0) scale(1)}40%{transform:rotate(-18deg) scale(1.08)}to{transform:rotate(12deg) scale(1);opacity:.35}}@keyframes dayShackleOpen{0%{transform:translateY(0)}to{transform:translateY(-10px);opacity:.2}}.day-letter{position:relative;z-index:35;width:min(86vw,19rem);margin-top:.5rem;padding:1.6rem 1.4rem 1.7rem;border:1px solid rgba(192,138,62,.22);border-radius:var(--radius-md);background:linear-gradient(180deg,#ffffffd9,#fff0),var(--paper);box-shadow:var(--shadow-lg),inset 0 1px #ffffffe6;text-align:center;animation:letterIn .7s var(--ease-out) both}.day-letter:before{content:"";position:absolute;top:.45rem;right:.45rem;bottom:.45rem;left:.45rem;border:1px solid rgba(192,138,62,.22);border-radius:calc(var(--radius-md) - .35rem);pointer-events:none}.day-letter-day{margin:0;font-family:var(--font-display);font-weight:500;font-size:clamp(1.9rem,6vw,2.5rem);line-height:1.15;letter-spacing:.01em;color:var(--rose)}.day-letter-note{margin:.7rem 0 0;color:var(--ink-mute);font-size:.9rem;line-height:1.5}.day-letter.is-poem{width:min(92vw,27rem);max-height:min(70vh,34rem);overflow-y:auto;padding:1.75rem 1.6rem 1.9rem;scrollbar-width:thin;scrollbar-color:rgba(47,17,32,.22) transparent}.day-letter.is-poem:before{display:none}.day-letter-poem{margin:0;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(1rem,2.8vw,1.15rem);line-height:1.68;letter-spacing:.008em;color:var(--ink);white-space:pre-line;text-wrap:pretty}.day-solve-test{position:fixed;right:1.25rem;bottom:7.4rem;z-index:40;padding:.4rem .9rem .45rem;border:1px solid var(--line);border-radius:999px;background:#ffffff8c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink-mute);font-size:.78rem;font-weight:500;letter-spacing:.03em;opacity:.55;transition:opacity .2s ease,transform .2s var(--ease-out)}.day-solve-test:hover,.day-solve-test:focus-visible{opacity:1;transform:translateY(-1px)}@keyframes dayKeyPulse{0%,to{filter:drop-shadow(0 6px 10px rgba(47,17,32,.35))}50%{filter:drop-shadow(0 0 18px rgba(246,192,74,.85)) drop-shadow(0 6px 10px rgba(47,17,32,.3))}}.game-screen.time-game>.game-title,.game-screen.time-game>.catch-reveal{position:relative;z-index:3}.game-screen.time-game>.game-back{z-index:6}.time-game.is-hit .clock-face{animation:catchPulse .45s var(--ease-out);border-color:var(--rose-bright);box-shadow:0 0 0 8px #d63a6329,var(--shadow-lg),inset 0 0 34px #d63a6324}.time-game.is-miss .catch-clock{animation:catchNudge .32s ease-out}.catch-progress{display:flex;gap:.45rem;margin:.15rem 0 .35rem}.catch-pip{width:.5rem;height:.5rem;border-radius:50%;background:#b0184a2e;border:0;transition:background .25s ease,transform .25s var(--ease-out)}.catch-pip.is-on{background:var(--rose);transform:scale(1.15)}.clock{margin:.5rem 0;position:relative;z-index:1}.catch-clock{--clock-scale: 1;margin:.85rem 0 1.1rem;transform:scale(var(--clock-scale))}.clock-face{position:relative;width:300px;height:300px;border-radius:50%;border:1px solid rgba(176,24,74,.22);background:radial-gradient(circle at 38% 30%,#fff,#fff8fa 42%,#fdeaf0);box-shadow:var(--shadow-lg),inset 0 1px #ffffffe6,inset 0 0 40px #b0184a12;transition:border-color .3s ease,box-shadow .3s ease}.clock-face:before{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border-radius:50%;background:repeating-conic-gradient(from -.7deg,var(--tick) 0deg 1.4deg,transparent 1.4deg 30deg);-webkit-mask:radial-gradient(circle,transparent calc(50% - 13px),#000 calc(50% - 13px));mask:radial-gradient(circle,transparent calc(50% - 13px),#000 calc(50% - 13px))}.clock-face:after{content:"";position:absolute;top:26px;right:26px;bottom:26px;left:26px;border-radius:50%;border:1px solid rgba(47,17,32,.07);pointer-events:none}.clock-num{position:absolute;font-size:.85rem;color:var(--ink-soft)}.catch-num{top:50%;left:50%;width:1.4rem;height:1.4rem;margin:-.7rem 0 0 -.7rem;display:grid;place-items:center;font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:600;color:var(--ink);pointer-events:none}.catch-num.is-need{color:var(--rose);box-shadow:0 0 0 2px #b0184a66;border-radius:50%}.catch-num.is-ping{background:var(--rose-tint);color:var(--rose);border-radius:50%}.clock-hand{position:absolute;left:50%;bottom:50%;transform-origin:bottom center;background:var(--ink);border-radius:2px}.catch-hand{width:3px;height:108px;margin-left:-1.5px;background:linear-gradient(180deg,var(--rose-bright) 0%,var(--rose) 45%,var(--ink) 100%);border-radius:3px;filter:drop-shadow(0 2px 4px rgba(47,17,32,.2));will-change:transform}.clock-center{position:absolute;top:50%;left:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0%,var(--rose) 60%);box-shadow:0 0 0 4px #b0184a24,0 2px 5px #2f112040;z-index:2}.catch-heart-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;overflow:hidden}.catch-heart{position:absolute;color:var(--rose-bright);line-height:1;animation:catchHeartFade 1s var(--ease-out) forwards;filter:drop-shadow(0 2px 6px rgba(176,24,74,.3))}.catch-eq-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;overflow:hidden}.catch-eq{position:absolute;transform:translate(-50%,-50%);font-family:var(--font-body);font-weight:500;font-size:clamp(1.2rem,4.5vw,1.75rem);font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--ink);white-space:nowrap;opacity:0;padding:.3rem .75rem;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:#fffcf8d1;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-md);animation:catchEqFade 3.4s var(--ease-out) forwards}.catch-reveal{margin:0;font-family:var(--font-body);font-weight:600;font-size:clamp(1.9rem,6vw,2.5rem);color:var(--rose);letter-spacing:.05em}@keyframes catchEqFade{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}42%{opacity:1;transform:translate(-50%,-50%) scale(1)}78%{opacity:1}to{opacity:0;transform:translate(-50%,-56%) scale(1.02)}}@keyframes catchPulse{0%{transform:scale(1)}40%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes catchNudge{0%,to{transform:translate(0) rotate(0) scale(var(--clock-scale, 1))}30%{transform:translate(-8px) rotate(-3deg) scale(var(--clock-scale, 1))}62%{transform:translate(5px) rotate(2deg) scale(var(--clock-scale, 1))}}@keyframes catchHeartFade{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}18%{opacity:1;transform:translate(-50%,-58%) scale(1)}to{opacity:0;transform:translate(-50%,-78%) scale(1.15)}}.game-screen.place-game{height:100dvh;min-height:100dvh;max-height:100dvh;justify-content:flex-start;align-items:center;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none}.place-game>.game-back{z-index:6}.place-game>.game-title,.place-game>.game-status{position:relative;z-index:6;flex:0 0 auto}.place-board{flex:1 1 0;min-height:0;width:100%;display:grid;place-items:center;overflow:hidden;container-type:size;padding:0 4.25rem}.place-game.is-bump .place-maze{animation:shake .28s ease}.maze.place-maze{--cols: 31;--rows: 31;--cell: min(100cqw / var(--cols), 100cqh / var(--rows));display:grid;gap:1px;width:calc(var(--cell) * var(--cols));height:calc(var(--cell) * var(--rows));padding:0;border:0;border-radius:var(--radius-md);overflow:hidden;background:#45203a;box-shadow:var(--shadow-lg),0 0 0 1px #2f112059}.maze-cell{display:grid;place-items:center;border-radius:0;background:transparent;font-size:calc(var(--cell) * .62);line-height:1}.maze-cell.is-wall{background:#60304d}.maze-cell.is-path{background:#fdf6f7}.maze-cell.is-bridge{background:#f3cf7a}.maze-cell.is-trace,.maze-cell.is-trace.is-bridge{background:linear-gradient(180deg,var(--rose-bright),var(--rose))}.place-game.is-won .maze-cell.is-trace{background:linear-gradient(180deg,#ef5178,var(--rose));box-shadow:inset 0 0 0 1px #ffffff40}.maze-cell.is-here{background:radial-gradient(circle at 50% 45%,#ff8da6,#e83a63);color:#fff;font-size:calc(var(--cell) * .72);box-shadow:0 0 calc(var(--cell) * .9) #e83a63b3}.maze-pad{position:fixed;left:.85rem;right:auto;bottom:.85rem;z-index:20;display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.5rem;border:1px solid rgba(255,255,255,.55);border-radius:var(--radius-lg);background:#fff6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-md)}.maze-pad-mid{display:flex;gap:1.3rem}.maze-pad button{width:2.6rem;height:2.6rem;border:1px solid rgba(109,40,217,.25);border-radius:.8rem;background:linear-gradient(180deg,#8b5cf6,#6d28d9);color:#fff;font-size:1rem;box-shadow:0 1px 2px #4c1d9559,0 8px 18px -8px #4c1d95b3;transition:transform .15s var(--ease-out),box-shadow .15s var(--ease-out),filter .15s ease}.maze-pad button:hover{filter:brightness(1.08);transform:translateY(-1px)}.maze-pad button:active{transform:translateY(1px) scale(.97);box-shadow:0 1px 2px #4c1d9559}.key-screen .key-assemble{margin:0;max-width:22rem;font-family:var(--font-display);font-size:1.08rem;line-height:1.6;color:var(--ink)}.key-pieces{display:flex;gap:1rem;font-size:1.75rem;color:var(--gold)}.key-forge{margin:.25rem 0;font-size:4rem;line-height:1;filter:drop-shadow(0 8px 16px rgba(47,17,32,.25));animation:contentIn .6s var(--ease-out)}.treasure-chest{position:relative;display:grid;place-items:center;width:160px;height:160px;border:1px solid rgba(192,138,62,.3);border-radius:var(--radius-lg);background:linear-gradient(160deg,#fffaf2,#f7e2b6);box-shadow:var(--shadow-md),inset 0 1px #ffffffe6;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}.treasure-chest.is-near{transform:translateY(-3px) scale(1.04);box-shadow:0 0 0 4px #c08a3e47,var(--shadow-lg)}.treasure-chest.is-open{background:linear-gradient(160deg,#fff6f7,#fcd9de)}.chest-box{font-size:4.5rem;line-height:1}.chest-lock{position:absolute;bottom:18px;font-size:1.5rem;transition:transform .25s var(--ease-out),filter .25s ease}.chest-lock.is-glow{transform:scale(1.2);filter:drop-shadow(0 0 9px rgba(251,191,36,.95))}.love-letter{width:min(92vw,27rem);padding:1.9rem 1.6rem;border:1px solid rgba(192,138,62,.22);border-radius:var(--radius-md);background:var(--paper);box-shadow:var(--shadow-lg),inset 0 1px #ffffffe6;text-align:left;font-family:var(--font-display);font-size:1.08rem;line-height:1.68;color:var(--ink)}.love-letter p{margin:0 0 .8rem}.love-letter hr{border:0;border-top:1px solid rgba(192,138,62,.3);margin:1.15rem 0}.letter-final{font-style:italic}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes gameRulesIn{0%{opacity:0;transform:translate(-50%,calc(-50% + 14px))}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes contentIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes letterIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:480px){.game-screen{padding:3.75rem 1rem 1.5rem}.catch-clock{--clock-scale: .82;margin:.25rem 0}.day-chest{right:.85rem;bottom:.85rem}.day-solve-test{right:.85rem;bottom:7rem}.place-board{padding:0 3.5rem 0 4rem}}html.fast-anim .intro{animation:introFade .15s ease-in .4s forwards}html.fast-anim .heart-cursor-glyph{animation-duration:.4s}html.fast-anim .after-intro{animation-duration:.2s}@media(prefers-reduced-motion:reduce){.poet-line,.game-rules,.see-you,.game-screen,.day-letter,.key-forge{animation-duration:.01ms;animation-delay:0ms}.day-drop-key.is-landed{animation:none}.secret-chip:hover,.game-back:hover,.place-note:hover,.calendar-day:hover,.maze-pad button:hover{transform:none}}
