@font-face{font-family:Fraunces;src:url(../font/fraunces.woff2)format("woff2");font-weight:300 800;font-style:normal;font-display:swap}@font-face{font-family:Fraunces;src:url(../font/fraunces-italic.woff2)format("woff2");font-weight:300 700;font-style:italic;font-display:swap}@font-face{font-family:General Sans;src:url(../font/GeneralSans-Variable.woff2)format("woff2");font-weight:200 700;font-style:normal;font-display:swap}:root{--font-head:"Fraunces", Georgia, serif;--font-body:"General Sans", system-ui, sans-serif;--font-head-soft:"SOFT" 100;--ui-text:#1c2338;--ui-muted:#4a5470;--ui-glass:linear-gradient(160deg, #ffffffc7, #e8eff89e);--ui-edge:#ffffffb3;--ui-shine:#ffffffe6;--ui-shadow:#24305a2e;--ui-accent:#7a5fae;--ui-on-accent:#fff;--ui-accent-glow:#7a5fae4d;--ui-accent-text:#5d4590;--ui-tag:#8e73b129;--ui-soft:#1c233812;--ui-field:#ffffffbf;--ui-dim:#141d3b33;--ui-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}:root[data-theme=night],.cave-leave,.loader{--ui-text:#f2f4fa;--ui-muted:#c3c9da;--ui-glass:linear-gradient(165deg, #38406699, #161c34bd);--ui-edge:#ffffff1f;--ui-shine:#ffffff2e;--ui-shadow:#05081473;--ui-accent:#f5bd68;--ui-on-accent:#2a2210;--ui-accent-glow:#f5bd684d;--ui-accent-text:#ffd79a;--ui-tag:#f5bd682e;--ui-soft:#ffffff1f;--ui-field:#ffffff14;--ui-dim:#0a0e1e66}.gift-modal,.fishing-card,.fishing-hint,.fishing-stop,.game-status,.cave-leave,.home-button,.home-howto,.sound-button,.device-link-button,.device-link-note{border:1px solid var(--ui-edge);background:var(--ui-glass);color:var(--ui-text);box-shadow:0 1rem 2.5rem var(--ui-shadow), inset 0 1px 0 var(--ui-shine);-webkit-backdrop-filter:blur(16px)saturate(1.25);backdrop-filter:blur(16px)saturate(1.25)}.fishing-hint,.fishing-stop,.game-status,.cave-leave,.home-button,.home-howto,.sound-button,.device-link-button,.device-link-note{box-shadow:0 .4rem 1.2rem var(--ui-shadow), inset 0 1px 0 var(--ui-shine)}.gift-modal,.fishing-card{isolation:isolate}.gift-modal:after,.fishing-card:after{content:"";z-index:-1;border-radius:inherit;background:var(--ui-grain);opacity:.07;mix-blend-mode:overlay;pointer-events:none;position:absolute;inset:0}html,body{height:100%;font-family:var(--font-body);overscroll-behavior:none;touch-action:none;-webkit-user-select:none;user-select:none;background:#1d2a44;margin:0;overflow:hidden}#app,canvas{width:100%;height:100%;display:block}.gift-modal{box-sizing:border-box;touch-action:pan-y;-webkit-user-select:text;user-select:text;border-radius:1.75rem;width:min(28rem,100% - 2rem);max-height:calc(100dvh - 2rem);padding:1.4rem}.gift-modal:focus{outline:none}.gift-modal[open]{flex-direction:column;gap:1rem;display:flex}.gift-modal::backdrop{background:var(--ui-dim,#141d3b4d)}.gift-modal-tag{background:var(--ui-tag);color:var(--ui-accent-text);border-radius:999px;margin-bottom:.6rem;padding:.28rem .7rem;font-size:.85rem;font-weight:600;display:inline-block}.gift-modal-tag[hidden]{display:none}.gift-modal-body{overscroll-behavior:contain;overflow-y:auto}.gift-modal h2{font-family:var(--font-head);font-variation-settings:var(--font-head-soft);margin:0 0 .75rem;font-size:1.6rem;font-weight:600;line-height:1.15}.gift-modal-photo{border-radius:1rem;margin-bottom:.75rem;position:relative;overflow:hidden}.gift-modal img{width:100%;display:block}.gift-modal-video{background:#141d3b;width:100%;max-height:60dvh;display:block}.gift-modal p{white-space:pre-line;color:var(--ui-muted);margin:0;font-size:1.05rem;line-height:1.5}.gift-modal .gift-modal-hint{text-align:center;color:var(--ui-accent-text);font-weight:600;display:none}.gift-modal.revealing .gift-modal-hint{display:block}.gift-modal.revealing .gift-modal-body>p:not(.gift-modal-hint),.gift-modal.revealing>button,.gift-modal .gift-modal-later{display:none}.gift-modal.revealing .gift-modal-later{background:var(--ui-soft);width:2.2rem;min-width:0;height:2.2rem;color:var(--ui-text);box-shadow:none;border-radius:50%;place-items:center;padding:0;font-size:1rem;line-height:1;display:grid;position:absolute;top:.9rem;right:.9rem}.gift-modal.revealing h2{padding-right:2.6rem}.gift-modal-question{flex-direction:column;gap:.4rem;margin-top:1rem;font-size:1.05rem;display:flex}.gift-modal-question[hidden]{display:none}.gift-modal-question input{box-sizing:border-box;border:1.5px solid var(--ui-edge);background:var(--ui-field);width:100%;color:var(--ui-text);font:inherit;border-radius:1rem;padding:.7rem 1rem;font-size:max(1rem,16px)}.gift-modal-question input:focus{border-color:var(--ui-accent);box-shadow:0 0 0 3px var(--ui-accent-glow);outline:none}.gift-modal button{background:var(--ui-accent);min-width:8rem;color:var(--ui-on-accent);box-shadow:0 .3rem .9rem var(--ui-accent-glow);font:inherit;border:none;border-radius:999px;align-self:stretch;padding:.85rem 1.4rem;font-weight:600}.gift-frost{touch-action:none;cursor:grab;width:100%;height:100%;position:absolute;inset:0}.gift-window{pointer-events:none;border:.45rem solid #8a6a4a;border-radius:.75rem;position:absolute;inset:0}.gift-window:before,.gift-window:after{content:"";background:#8a6a4a;position:absolute}.gift-window:before{width:.4rem;top:0;bottom:0;left:calc(50% - .2rem)}.gift-window:after{height:.4rem;top:calc(50% - .2rem);left:0;right:0}.gift-jigsaw{touch-action:none;position:absolute;inset:0}.gift-modal .gift-piece{cursor:pointer;transition:transform .25s,box-shadow .3s;position:absolute;top:0;left:0;box-shadow:inset 0 0 0 1px #fff9}.gift-modal .gift-piece.selected{z-index:1;box-shadow:inset 0 0 0 .25rem #f5b85c}.gift-modal .gift-piece.neighbor{box-shadow:inset 0 0 0 .15rem #f5b85c8c}.gift-modal .gift-jigsaw.solved .gift-piece{box-shadow:none}.gift-modal .gift-sliding .gift-piece.missing{opacity:0;pointer-events:none;transition:opacity .6s}.gift-modal .gift-sliding.solved .gift-piece.missing{opacity:1}.fishing{z-index:5;touch-action:none;-webkit-user-select:none;user-select:none;font-family:var(--font-body);position:fixed;inset:0}.fishing-hint{left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));box-sizing:border-box;text-align:center;border-radius:999px;width:max-content;max-width:calc(100vw - 2rem);margin:0;padding:.6rem 1.2rem;font-size:1.05rem;position:absolute;transform:translate(-50%)}.fishing-hint.alert{background:var(--ui-accent);color:var(--ui-on-accent);border-color:#0000;font-weight:700;animation:.3s ease-in-out infinite alternate fishing-pulse}@keyframes fishing-pulse{to{transform:translate(-50%)scale(1.08)}}.fishing-stop{top:calc(1rem + env(safe-area-inset-top,0px));width:2.75rem;height:2.75rem;font:600 1.1rem var(--font-body);border-radius:50%;place-items:center;padding:0;line-height:1;display:grid;position:absolute;right:1rem}.fishing-card{left:50%;top:calc(12% + env(safe-area-inset-top,0px));text-align:center;border-radius:1.4rem;flex-direction:column;align-items:center;gap:.2rem;padding:.9rem 1.5rem;display:flex;position:absolute;transform:translate(-50%)}.fishing-card[hidden]{display:none}.fishing-card strong{font-family:var(--font-head);font-variation-settings:var(--font-head-soft);font-size:1.5rem;font-weight:600}.fishing-card span{color:var(--ui-muted)}.fishing-card.new span{color:var(--ui-accent-text);font-weight:700}.fish-log-owl{font-style:italic;font-family:var(--font-head);font-variation-settings:var(--font-head-soft);margin-bottom:.75rem!important}.fish-log-count{font-weight:700;color:var(--ui-accent-text)!important;margin-bottom:.75rem!important}.fish-log-grid{grid-template-columns:repeat(2,1fr);gap:.6rem;display:grid}.fish-log-grid figure{color:#f2f4fa;background:#3a4a86;border-radius:1rem;flex-direction:column;align-items:center;margin:0;padding:.4rem .4rem .5rem;display:flex}.fish-log-grid img{aspect-ratio:2;width:100%}.fish-log-grid figcaption{font-weight:600}.fish-log-grid small{opacity:.75;min-height:1em}.fish-log-grid figure.unknown figcaption{opacity:.6}.gift-modal .fish-log-book{background:var(--ui-soft);color:var(--ui-text);box-shadow:none;margin-top:.9rem}.photo-book-pages{aspect-ratio:4/3.7;perspective:1400px;touch-action:pan-y;-webkit-user-select:none;user-select:none;position:relative}.gift-modal .photo-book-page{transform-origin:0;backface-visibility:hidden;background:#fff4e0;border-radius:.2rem .7rem .7rem .2rem;flex-direction:column;gap:.4rem;margin:0;padding:.6rem .6rem .45rem;display:flex;position:absolute;inset:0;box-shadow:inset .6rem 0 .7rem -.6rem #2b3a6759,0 .2rem .6rem #0000004d}.gift-modal .photo-book-page[hidden]{display:none}.gift-modal .photo-book-page.turning{transition:transform .5s ease-in-out}.gift-modal .photo-book-page.turned{transform:rotateY(-100deg)}.gift-modal .photo-book-page img{object-fit:cover;border-radius:.2rem;flex:1;min-height:0}.gift-modal .photo-book-page figcaption{color:#2b3a67;text-align:center;font-weight:700}.gift-modal .photo-book-cover{background:#c8524a;justify-content:center;align-items:center}.gift-modal .photo-book-cover h2{color:#fff4e0;border:2px solid #f5b85c;border-radius:.5rem;margin:0;padding:.6rem 1.2rem}.photo-book-nav{justify-content:center;align-items:center;gap:1.2rem;margin-top:.8rem;display:flex}.gift-modal .photo-book-nav button{background:var(--ui-soft);width:3rem;min-width:0;color:var(--ui-text);box-shadow:none;padding:.4rem 0;font-size:1.4rem;line-height:1}.gift-modal .photo-book-nav button:disabled{opacity:.35}.photo-book-number{text-align:center;opacity:.75;min-width:4rem}.dog-name{z-index:4;color:#fff4e0;font:600 1.3rem var(--font-head);font-variation-settings:var(--font-head-soft);text-shadow:0 0 .4rem #2b3a67e6,0 .1rem .2rem #2b3a67cc;white-space:nowrap;pointer-events:none;position:fixed;transform:translate(-50%,-100%)}.dog-name.pop{animation:.35s ease-out dog-name-pop}@keyframes dog-name-pop{0%{opacity:0;transform:translate(-50%,-60%)scale(.6)}}.cave-fade{z-index:6;opacity:0;pointer-events:none;background:#000;transition:opacity .45s;position:fixed;inset:0}.cave-fade.on{opacity:1}.cave-leave{bottom:calc(env(safe-area-inset-bottom,0px) + 1.2rem);z-index:4;font:600 1rem var(--font-body);border-radius:999px;padding:.7rem 1.5rem;position:fixed;left:50%;transform:translate(-50%)}.finale-greeting{top:calc(env(safe-area-inset-top,0px) + 12%);z-index:4;text-align:center;color:#ffe3a3;width:92%;font:italic 400 clamp(2.4rem, 11vw, 5rem) var(--font-head);font-variation-settings:var(--font-head-soft);text-shadow:0 0 .6rem #f5b85ce6,0 0 1.8rem #f5b85c99,0 .15rem .3rem #141d3b99;pointer-events:none;opacity:0;line-height:1.1;position:fixed;left:50%;transform:translate(-50%)}.finale-greeting.show{animation:2.4s cubic-bezier(.2,.7,.2,1) forwards finale-greeting}@keyframes finale-greeting{0%{opacity:0;transform:translate(-50%,.6rem)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}.game-status{left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));z-index:4;box-sizing:border-box;width:max-content;max-width:calc(100vw - 2rem);font:600 1rem var(--font-body);font-variant-numeric:tabular-nums;text-align:center;pointer-events:none;border-radius:999px;margin:0;padding:.6rem 1.2rem;position:fixed;transform:translate(-50%)}body:has(.fishing:not([hidden])) .game-status{display:none}.game-status:has(~.game-status:not([hidden])){display:none}.game-status.done{animation:3s ease-in forwards game-status-done}@keyframes game-status-done{0%{transform:translate(-50%)scale(1.15)}10%,70%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0}}.owl-hoot{z-index:4;color:#fff4e0;font:italic 600 1.4rem var(--font-head);font-variation-settings:var(--font-head-soft);text-shadow:0 0 .4rem #2b3a67e6,0 .1rem .2rem #2b3a67cc;white-space:nowrap;pointer-events:none;animation:1.8s ease-out forwards owl-hoot;position:fixed;transform:translate(-50%,-100%)}@keyframes owl-hoot{0%{opacity:0;transform:translate(-50%,-100%)scale(.6)}15%{opacity:1;transform:translate(-50%,-100%)scale(1.1)}25%{transform:translate(-50%,-100%)scale(1)}70%{opacity:1}to{opacity:0}}.dog-zzz{z-index:4;color:#3a4a86;font:italic 800 1.2rem var(--font-body);text-shadow:0 0 .25rem #fff,0 0 .5rem #fffc;pointer-events:none;animation:2s ease-out forwards dog-zzz;position:fixed;transform:translate(-50%,-50%)}@keyframes dog-zzz{0%{opacity:0;font-size:.8rem}20%{opacity:1}70%{opacity:.95}to{opacity:0;font-size:1.8rem}}.gift-modal-gallery{grid-template-columns:repeat(3,1fr);gap:.3rem;display:grid}.gift-modal-gallery[hidden]{display:none}.gift-modal-gallery img{aspect-ratio:1;object-fit:cover;border-radius:.4rem}.gift-memory{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;display:grid}.gift-card{aspect-ratio:1;perspective:30rem;cursor:pointer;touch-action:manipulation;position:relative}.gift-card-back,.gift-card-face{backface-visibility:hidden;border-radius:.5rem;transition:transform .35s;position:absolute;inset:0}.gift-card-back{background:radial-gradient(circle,#f5b85c 0 18%,#0000 19%),#c8524a;box-shadow:inset 0 0 0 .2rem #ffffff40}.gift-card-face{background-position:50%;background-size:cover;transform:rotateY(180deg)}.gift-card.turned .gift-card-back{transform:rotateY(-180deg)}.gift-card.turned .gift-card-face{transform:rotateY(0)}.gift-card.found .gift-card-face{box-shadow:0 0 0 .2rem #f5b85c}.gift-memory.solved .gift-card-face{animation:.6s ease-in-out gift-memory-done}@keyframes gift-memory-done{50%{transform:scale(1.06)}}.gift-stars{touch-action:none;cursor:pointer;width:100%;display:block}.gift-lock{flex-direction:column;align-items:center;gap:.6rem;padding:2rem 0 1rem;display:flex}.gift-lock-hint{text-align:center;color:var(--ui-accent-text)}.gift-lock-padlock{flex-direction:column;align-items:center;display:flex}.gift-lock-shackle{transform-origin:100% 100%;border:.9rem solid #8e97a8;border-bottom:none;border-radius:3rem 3rem 0 0;width:5.5rem;height:4rem;margin-bottom:-1rem;transition:transform .5s cubic-bezier(.3,1.6,.5,1)}.gift-lock.open .gift-lock-shackle{transform:translateY(-1.1rem)rotate(22deg)}.gift-lock-body{z-index:1;background:#f5b85c;border-radius:1rem;padding:.7rem .9rem;position:relative;box-shadow:inset 0 -.35rem #00000026}.gift-lock-wheels{align-items:center;gap:.3rem;display:flex}.gift-lock-wheel{flex-direction:column;align-items:center;display:flex}.gift-lock-wheel button{min-width:0;box-shadow:none;color:#2b3a67;background:0 0;border:none;padding:.15rem .5rem;font-size:.9rem;line-height:1}.gift-lock-digit{color:#e8eef5;text-align:center;touch-action:none;-webkit-user-select:none;user-select:none;cursor:ns-resize;background:#2b3a67;border-radius:.4rem;width:2rem;padding:.3rem 0;font:700 1.5rem ui-monospace,monospace;display:block}.gift-lock-digit.tick{animation:.15s ease-out gift-lock-tick}@keyframes gift-lock-tick{50%{transform:translateY(-.12rem)}}.gift-lock-dot{color:#2b3a67;font:700 1.5rem ui-monospace,monospace}.gift-lock.open .gift-lock-digit{background:#3f6b5a}.loader{z-index:20;color:var(--ui-text);isolation:isolate;background:radial-gradient(at 50% 42%,#2b3a67 0%,#18214a 55%,#10173a 100%);flex-direction:column;justify-content:center;align-items:center;gap:1.2rem;padding:1rem;transition:opacity .7s;display:flex;position:fixed;inset:0}.loader:after{content:"";z-index:-1;background:var(--ui-grain);opacity:.06;mix-blend-mode:overlay;pointer-events:none;position:absolute;inset:0}#loader.on{visibility:visible;animation:.4s ease-out fade-in}@keyframes fade-in{0%{opacity:0}}.loader.gone{opacity:0;pointer-events:none}.loader-wreath svg{width:min(80vw,22rem);height:auto;display:block}.loader-note{color:var(--ui-muted);font:1rem var(--font-body);text-align:center;margin:0}.wreath-flame{opacity:0;transition:opacity .3s}.wreath-flame.lit{opacity:1}.wreath-flame use{transform-box:fill-box;transform-origin:50% 85%}.wreath-flame.lit use{animation:flame-light .45s ease-out, flame-sway 2.2s ease-in-out var(--sway-delay,0s) infinite alternate}@keyframes flame-light{0%{transform:scale(.3,.1)}}@keyframes flame-sway{0%{transform:skew(-4deg)scaleY(.96)}35%{transform:skew(2deg)scaleY(1.05)}70%{transform:skew(-1deg)scaleY(.99)}to{transform:skew(3deg)scaleY(1.03)}}.day-title{color:#ffe3a3;font:italic 400 clamp(2rem, 9vw, 3.6rem) var(--font-head);font-variation-settings:var(--font-head-soft);text-shadow:0 0 .6rem #f5b85ce6,0 0 1.8rem #f5b85c99,0 .15rem .3rem #141d3b99;top:calc(env(safe-area-inset-top,0px) + 14%);z-index:4;white-space:nowrap;pointer-events:none;line-height:1.1;animation:4s ease-in-out forwards day-title;position:fixed;left:50%;transform:translate(-50%)}@keyframes day-title{0%{opacity:0;transform:translate(-50%,.6rem)scale(.96)}20%,75%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0}}.countdown{z-index:4;color:#ffe3a3;text-shadow:0 0 .8rem #f5b85ccc,0 0 2.4rem #f5b85c80,0 .15rem .4rem #141d3b99;pointer-events:none;flex-direction:column;align-items:center;animation:1.2s ease-out fade-in;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.countdown-number{font:500 clamp(6rem, 34vw, 11rem) / 1 var(--font-head);font-variation-settings:var(--font-head-soft);font-variant-numeric:lining-nums}.countdown-label{font:600 1rem var(--font-body);letter-spacing:.2em;text-transform:uppercase;margin-top:.2rem}.home-offer{left:50%;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));z-index:4;flex-direction:column;align-items:center;gap:.6rem;width:calc(100% - 2rem);animation:1.2s ease-out fade-in;display:flex;position:fixed;transform:translate(-50%)}.home-button{font:600 1rem var(--font-body);border-radius:999px;padding:.7rem 1.4rem}.home-button[hidden],.home-howto[hidden]{display:none}.home-howto{max-width:22rem;font:.95rem / 1.4 var(--font-body);border-radius:1rem;align-items:center;gap:.5rem;margin:0;padding:.7rem 1rem;display:flex}.home-howto svg{flex:none}.sound-button{top:calc(1rem + env(safe-area-inset-top,0px));z-index:6;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;padding:0;display:grid;position:fixed;left:1rem}.device-link-button{top:calc(4.5rem + env(safe-area-inset-top,0px));z-index:6;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;padding:0;display:grid;position:fixed;left:1rem}.device-link-note{top:calc(4.5rem + env(safe-area-inset-top,0px));z-index:6;box-sizing:border-box;max-width:min(22rem,100vw - 8.5rem);font:.95rem / 1.4 var(--font-body);border-radius:1rem;margin:0;padding:.6rem 1rem;position:fixed;left:4.5rem}.device-link-private{opacity:.8;margin-top:.3rem;font-size:.85rem;display:block}.device-link-url{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;margin-top:.3rem;display:block}
