:root{--ink:#03070f;--paper:#f3ead8;--paper-ink:#2b2118;--glow:#ffe9c4;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;overflow:hidden;overscroll-behavior:none;background:var(--ink);color:#e8ecf3;font-family:Georgia,Iowan Old Style,Palatino Linotype,serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:none}button{font:inherit;color:inherit}.app{position:fixed;inset:0;overflow:hidden;background:var(--ink)}.enter{position:absolute;inset:0;z-index:40;display:grid;place-items:center;transition:opacity .45s ease}.enter--tapped .underwater__surface{opacity:0;pointer-events:none;transition:opacity .3s ease}.enter--leaving{opacity:0;pointer-events:none}.enter__backdrop{object-fit:cover;filter:blur(28px) brightness(.55);transform:scale(1.1)}.enter__backdrop,.enter__still{position:absolute;inset:0;width:100%;height:100%}.enter__still{object-fit:contain;filter:saturate(.9)}.enter__caustics{position:absolute;inset:-20%;pointer-events:none;mix-blend-mode:screen;opacity:.16;background-image:radial-gradient(ellipse 30% 12% at 30% 30%,rgba(120,200,220,.9),transparent 70%),radial-gradient(ellipse 22% 10% at 70% 55%,rgba(120,200,220,.8),transparent 70%),radial-gradient(ellipse 35% 14% at 50% 80%,rgba(120,200,220,.7),transparent 70%);animation:caustics 14s ease-in-out infinite alternate}.enter__caustics--b{opacity:.1;animation-duration:19s;animation-direction:alternate-reverse;transform:scale(1.3) rotate(15deg)}@keyframes caustics{0%{transform:translate(-3%,-2%) scale(1.05)}to{transform:translate(3%,2%) scale(1.15)}}.enter__form{position:relative;z-index:1;width:min(72vw,320px)}.enter__input{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(200,230,240,.35);color:#dbeef5;font:inherit;font-size:20px;letter-spacing:.15em;text-align:center;padding:12px 36px;outline:none;caret-color:rgba(200,230,240,.7);transition:border-color .6s ease,opacity .6s ease}.enter__input:focus{border-bottom-color:rgba(200,230,240,.7)}.enter__input::placeholder{color:rgba(200,230,240,.4);letter-spacing:.25em;font-size:15px}.enter__submit{position:absolute;right:-6px;bottom:8px;width:36px;height:36px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#dbeef5;cursor:pointer;opacity:.75;transition:opacity .4s ease,transform .3s ease}.enter__submit:focus-visible,.enter__submit:hover:not(:disabled){opacity:1;transform:translateX(2px);outline:none}.enter__submit:disabled{opacity:.25;cursor:default}.enter__input--busy{opacity:.6}.enter__frame{position:absolute;z-index:1}.enter__dive{position:relative;z-index:1;background:transparent;border:0;color:#dbeef5;font-size:22px;letter-spacing:.3em;opacity:.8;padding:18px 32px;cursor:pointer;animation:breathe 4s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.55}50%{opacity:.95}}.stage{overflow:hidden;touch-action:none;cursor:crosshair}.stage,.video-layer{position:absolute;inset:0}.video-layer{z-index:0}.video-layer,.video-layer video{pointer-events:none}.video-backdrop{position:absolute;inset:-10%;width:120%;height:120%;object-fit:cover;filter:blur(28px) brightness(.55) saturate(1.1);transition:opacity .6s ease}.video-vignette{position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 50% 50%,transparent 40%,rgba(3,7,15,.85) 100%)}.lily-field,.sky-canvas{position:absolute;inset:0;pointer-events:none;transition:opacity 1.4s ease}.lily-field{z-index:2}.lily{position:absolute;transform-origin:50% 100%;will-change:transform}.lily svg{display:block;overflow:visible}.lily__centre,.lily__petals path{transition:transform .7s cubic-bezier(.2,.9,.3,1.2),opacity .5s ease}.lily--bud .lily__centre,.lily--bud .lily__petals path{transform:scale(.1)!important;opacity:0}.lily--bud .lily__petals--outer path{transform:rotate(var(--a,0deg)) scale(.1)}.lily__bud{transition:transform .5s ease,opacity .4s ease;transform-origin:30px 44px}.lily--open .lily__bud{transform:scaleY(.2) scaleX(1.4);opacity:0}.lily--sprite img{position:absolute;inset:0;width:100%;height:100%;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flower__head{transition:transform 1.1s cubic-bezier(.2,.9,.3,1.12),filter .9s ease}.lily--bud .flower__head{transform:scale(.28,.5) rotate(-4deg);filter:saturate(.75) brightness(.88)}.lily--open .lily__flower{filter:drop-shadow(0 0 6px rgba(255,170,205,.55))}.shore-follow{position:absolute;inset:0;pointer-events:none;will-change:transform,opacity;transition:opacity .3s ease}.bottle{position:absolute;background:transparent;border:0;padding:0;cursor:pointer;pointer-events:auto;transition:opacity 1.4s ease}.bottle svg{display:block;overflow:visible}.bottle--floating{animation:bob 3.6s ease-in-out infinite;filter:drop-shadow(0 6px 6px rgba(0,0,0,.35))}.bottle--pulled{transition:left .6s ease-in-out,top .6s ease-in-out,opacity .4s ease .6s;opacity:0!important}@keyframes bob{0%,to{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-5px) rotate(5deg)}}.bottle__photo{width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:opacity .45s ease;rotate:3deg}.bottle__photo,.bottle__shadow{position:absolute;inset:0;pointer-events:none}.bottle__shadow{background:#000;mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat;transform-origin:50% 80%;transform:rotate(11deg) scaleY(-.45) skewX(6deg);filter:blur(2.5px);opacity:.8}.bottle__contact{position:absolute;left:8%;right:4%;bottom:6%;height:22%;rotate:3deg;background:radial-gradient(ellipse at 50% 40%,rgba(0,0,0,.85),rgba(0,0,0,.35) 45%,transparent 72%);filter:blur(1.5px);pointer-events:none}.bottle--ashore{filter:blur(.5px) contrast(.9) saturate(.9) brightness(.82)}.bottle--beckon{animation:beckon 5s ease-in-out 2s infinite}@keyframes beckon{0%,72%,to{filter:blur(.5px) contrast(.9) saturate(.9) brightness(.82);translate:0 0}76%,84%{translate:-2px 0;rotate:-1.5deg}80%,88%{translate:2px 0;rotate:1.5deg;filter:blur(.5px) contrast(.9) saturate(.9) brightness(1) drop-shadow(0 0 12px rgba(255,236,200,.8))}}.tower-light{position:absolute;z-index:3;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(255,214,140,.95) 0,rgba(255,190,110,.45) 18%,rgba(255,170,90,.12) 42%,transparent 70%);mix-blend-mode:screen;transition:width 1.8s ease,height 1.8s ease,left 1.8s ease,top 1.8s ease,opacity 1.4s ease}.tower-light--hint{animation:towerFlicker 7s linear infinite}@keyframes towerFlicker{0%,80%,to{opacity:0}82%{opacity:.9}83%{opacity:.2}85%{opacity:1}88%{opacity:.35}91%{opacity:0}}.tower-light--on{animation:towerGlow 4.2s ease-in-out infinite}@keyframes towerGlow{0%,to{opacity:.75}50%{opacity:1}}.underwater{position:absolute;z-index:14;opacity:0;pointer-events:none;transition:opacity .25s ease}.underwater--open{opacity:1;transition:opacity .7s ease}.underwater--open .underwater__surface{pointer-events:auto}.mussel-frame{position:absolute;z-index:13;pointer-events:none}.mussel{position:absolute;border:0;padding:0;background:none;cursor:pointer;will-change:transform;filter:blur(var(--mussel-blur,.5px)) contrast(.92) saturate(.9) brightness(var(--mussel-brightness,1))}.mussel--live{pointer-events:auto}.mussel__grain{mask-size:100% 100%;-webkit-mask-size:100% 100%;mix-blend-mode:overlay;opacity:.1}.mussel__grain,.mussel__img{position:absolute;inset:0;pointer-events:none}.mussel__img{width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:opacity .6s ease}.underwater__surface{position:absolute;left:50%;top:7%;translate:-50% 0;background:transparent;border:0;color:#dbeef5;font:inherit;font-size:22px;letter-spacing:.3em;opacity:.8;padding:18px 32px;cursor:pointer;animation:breathe 4s ease-in-out infinite}.sheet{position:absolute;z-index:20;pointer-events:none;color:var(--paper-ink);transition:transform .52s cubic-bezier(.2,.8,.2,1),opacity .4s ease;opacity:0}.sheet--bottom{transform:translateY(105%)}.sheet--side{transform:translateX(40px)}.sheet--open{opacity:1;pointer-events:auto;transform:none}.sheet__inner{background:linear-gradient(180deg,#f7efdf,#eadfc8);border-radius:18px 18px 0 0;padding:22px 22px 28px;box-shadow:0 -10px 40px rgba(0,0,0,.45);max-height:inherit;overflow:auto;touch-action:pan-y}.sheet--side .sheet__inner{border-radius:14px;box-shadow:0 10px 40px rgba(0,0,0,.5)}.sheet__close{position:absolute;top:8px;right:12px;width:36px;height:36px;border:0;background:transparent;color:inherit;font-size:26px;line-height:1;cursor:pointer;opacity:.6}.sheet__title{margin:0 32px 6px 0;font-size:22px;font-weight:400;letter-spacing:.02em}.sheet__meta{margin:0 0 10px;font-size:13px;opacity:.65;font-style:italic}.sheet__image{display:block;width:100%;border-radius:8px;margin:8px 0 12px}.sheet__body{font-size:16px;line-height:1.55;-moz-user-select:text;user-select:text;-webkit-user-select:text}.sheet__body p{margin:0 0 .8em}.controls{position:absolute;z-index:15;transition:opacity 1.4s ease;display:grid;grid-gap:8px;gap:8px}.volume{position:relative;display:flex;justify-content:flex-end}.volume__slider{position:absolute;right:44px;top:50%;width:0;margin:0;translate:0 -50%;opacity:0;pointer-events:none;accent-color:rgba(230,236,248,.85);transition:width .26s ease,opacity .2s ease}.volume--open .volume__slider,.volume:focus-within .volume__slider,.volume:hover .volume__slider{width:110px;opacity:1;pointer-events:auto}.volume:before{content:"";position:absolute;right:38px;top:0;bottom:0;width:0}.volume:hover:before{width:124px}.controls__dive,.controls__mute{width:38px;height:38px;border-radius:50%;border:0;background:rgba(3,7,15,.35);color:rgba(230,236,248,.75);display:grid;place-items:center;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.completion{position:absolute;inset:0;z-index:5;pointer-events:none;background:radial-gradient(ellipse 70% 50% at 50% 30%,rgba(255,236,200,.28),transparent 70%);opacity:0;transition:opacity 3s ease}.completion--on{animation:completion 8s ease-out forwards}@keyframes completion{0%{opacity:0}25%{opacity:1}to{opacity:0}}.plain{position:fixed;inset:0;overflow:auto;touch-action:auto;-moz-user-select:text;user-select:text;-webkit-user-select:text;background:#111418;color:#e6e9ee;font:14px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;padding:20px}.plain h1{font-size:20px;margin:0 0 16px}.plain h2{font-size:16px;margin:24px 0 8px}.plain table{border-collapse:collapse;width:100%}.plain td,.plain th{border-bottom:1px solid #2a2f36;padding:6px 8px;text-align:left;vertical-align:top}.plain button,.plain input,.plain select,.plain textarea{font:inherit;color:inherit;background:#1b2027;border:1px solid #333a44;border-radius:4px;padding:6px 8px}.plain button{cursor:pointer;background:#263041}.plain button.danger{background:#4a2426}.plain label{display:block;margin:8px 0 2px;opacity:.8}.plain .row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.plain .tabs button[aria-selected=true]{background:#3b5a86}.plain .map{position:relative;width:100%;max-width:360px;aspect-ratio:9/16;background-size:cover;border:1px solid #333a44;cursor:crosshair}.plain .map .dot{position:absolute;width:12px;height:12px;margin:-6px;border-radius:50%;background:#ffd98a;box-shadow:0 0 6px #ffd98a;font-size:10px;line-height:12px;text-align:center;color:#000}.plain .map .dot.sel{background:#ff6f91;box-shadow:0 0 8px #ff6f91}.plain .map .lily-dot{position:absolute;width:6px;height:6px;margin:-3px;border-radius:50%;background:#f1a3c1}.plain .map .outline{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.plain .map .outline *{fill:none;stroke:rgba(255,255,255,.45);stroke-width:1px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.plain pre{background:#0c0f13;padding:10px;overflow:auto;border-radius:4px}.plain .muted{opacity:.6}.ending{position:absolute;z-index:25;display:grid;align-content:center;justify-items:center;grid-gap:28px;gap:28px;padding:0 9%;background:rgba(2,5,12,.55);color:rgba(236,240,250,.92);text-align:center;opacity:0;pointer-events:none;transition:opacity 1.8s ease}.ending--question{opacity:1;pointer-events:auto}.ending__line{opacity:0;margin:0;font-size:20px;line-height:1.5;letter-spacing:.02em;font-style:italic}.ending--shown .ending__line{animation:endingFadeIn 1.6s ease .6s forwards}.ending__replies{display:grid;grid-gap:10px;gap:10px;width:100%;justify-items:start;text-align:left;opacity:0}.ending--shown .ending__replies{animation:endingFadeIn 1.2s ease 3s forwards}@keyframes endingFadeIn{to{opacity:1}}.ending__reply{display:grid;grid-template-columns:1.3em 1fr;align-items:baseline;border:0;background:none;padding:2px 0;color:rgba(214,220,232,.55);font:inherit;font-size:16px;line-height:1.45;text-align:left;cursor:pointer;transition:color .16s ease}.ending__arrow{visibility:hidden}.ending__reply--selected{color:rgba(255,240,205,1);text-shadow:0 0 10px rgba(255,210,140,.35)}.ending__reply--selected .ending__arrow{visibility:visible}.ending__reply:focus-visible{outline:none}.ending-flash{position:fixed;inset:0;z-index:100;pointer-events:none;background:#fff;opacity:0}.ending-flash--white{opacity:1;pointer-events:auto;transition:opacity 3s ease-in}.ending-flash--black{opacity:1;pointer-events:auto;background:#000;transition:background 2s ease}.stage--supernova .bottle,.stage--supernova .lily-field,.stage--supernova .tower-light{animation:supernovaDissolve 14.5s linear forwards}.stage--supernova .bottle{filter:blur(.5px) contrast(.9) saturate(.9) brightness(.82)}.stage--supernova .bottle__contact,.stage--supernova .bottle__shadow{opacity:0;transition:opacity 5s ease}@keyframes supernovaDissolve{0%,45%{opacity:1}75%{opacity:.65}to{opacity:.2}}.return-from-black{position:fixed;inset:0;z-index:100;background:#000;pointer-events:none;animation:returnFromBlack 3s ease .4s forwards}@keyframes returnFromBlack{to{opacity:0}}.bouquet{position:absolute;z-index:21;overflow:hidden;background:radial-gradient(ellipse 70% 60% at 50% 55%,rgba(8,12,26,.55),rgba(4,6,14,.85));-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .7s ease;cursor:pointer}.bouquet--open{opacity:1;pointer-events:auto}.bouquet__bunch{position:absolute;inset:0}.bouquet__flower{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;transform:translateY(18%) rotate(0deg) scale(.9);opacity:0;transition:transform 1.3s cubic-bezier(.2,.85,.25,1.08),opacity .7s ease}.bouquet--open .bouquet__flower{transform:translateY(0) rotate(var(--lean)) scale(1);opacity:1}.bouquet--open .bouquet__flower:nth-child(2){transition-delay:.12s}.bouquet--open .bouquet__flower:nth-child(3){transition-delay:.24s}.bouquet__ribbon{position:absolute;z-index:5;opacity:0;transition:opacity .6s ease .7s;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.bouquet--open .bouquet__ribbon{opacity:1}.bouquet__scroll{position:absolute;z-index:6;padding:0;border:0;background:none;cursor:pointer;transform:rotate(-16deg);opacity:0;transition:opacity .6s ease .9s,transform .5s ease;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}.bouquet--open .bouquet__scroll{opacity:1}.bouquet__scroll:focus-visible,.bouquet__scroll:hover{transform:rotate(-16deg) translateY(-3px);outline:none}.scroll__roll{position:absolute;inset:0;border-radius:999px/50%;background:radial-gradient(ellipse 9% 46% at 6% 50%,#b9a27c 0 30%,#e7dabd 32% 45%,#c8b38e 47% 60%,transparent 62%),linear-gradient(180deg,#d9c9a6,#f6eedc 32%,#efe4cb 55%,#c7b28c)}.scroll__tie{position:absolute;left:50%;top:-35%;height:170%;transform:translateX(-50%);transition:transform .38s cubic-bezier(.5,0,.8,.4),opacity .3s ease}.bouquet:has(.note--open) .scroll__tie{transform:translateX(-50%) translateY(-40%) rotate(35deg) scale(.4);opacity:0}.bouquet:has(.note--open) .bouquet__scroll{opacity:0;transform:rotate(-16deg) translateY(-30px) scale(1.15);transition:opacity .35s ease .28s,transform .6s ease .2s}.bouquet__bunch{transition:opacity .6s ease,filter .6s ease}.bouquet:has(.note--open) .bouquet__bunch{opacity:.3;filter:blur(3px)}.note{position:absolute;inset:0;z-index:10;display:grid;place-items:center;pointer-events:none}.note--open{pointer-events:auto}.note__page{position:relative;color:var(--paper-ink);cursor:default}.note__paper{position:absolute;inset:0;background:linear-gradient(180deg,#f2e8d3,#f7efdf 12%,#f4ead6 88%,#e8dcc1);box-shadow:0 12px 40px rgba(0,0,0,.5);-webkit-clip-path:inset(50% 0 50% 0);clip-path:inset(50% 0 50% 0);transition:-webkit-clip-path .6s cubic-bezier(.6,0,.4,1);transition:clip-path .6s cubic-bezier(.6,0,.4,1);transition:clip-path .6s cubic-bezier(.6,0,.4,1),-webkit-clip-path .6s cubic-bezier(.6,0,.4,1);overflow:auto;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:rgba(110,85,50,.35) transparent}.note--open .note__paper{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);transition:-webkit-clip-path 1.1s cubic-bezier(.45,0,.2,1) .65s;transition:clip-path 1.1s cubic-bezier(.45,0,.2,1) .65s;transition:clip-path 1.1s cubic-bezier(.45,0,.2,1) .65s,-webkit-clip-path 1.1s cubic-bezier(.45,0,.2,1) .65s}.note__text{padding:34px 30px 30px;font-size:17px;line-height:1.6;-moz-user-select:text;user-select:text;-webkit-user-select:text;opacity:0;transition:opacity .3s ease}.note--open .note__text{opacity:1;transition:opacity .9s ease 1.5s}.note__text p{margin:0 0 .9em}.note__roller{position:absolute;left:-3%;width:106%;height:20px;margin-top:-10px;border-radius:10px;background:linear-gradient(180deg,#c9b48e,#f4ebd7 40%,#e2d3b2 70%,#a99270);box-shadow:0 3px 6px rgba(0,0,0,.35);opacity:0;transition:transform .6s cubic-bezier(.6,0,.4,1),opacity .3s ease .45s}.note__roller--top{top:0;transform:translateY(var(--half))}.note__roller--bottom{top:100%;transform:translateY(calc(-1 * var(--half)))}.note--open .note__roller{opacity:1;transform:translateY(0);transition:opacity .25s ease .45s,transform 1.1s cubic-bezier(.45,0,.2,1) .65s}.secrets{position:absolute;z-index:22;display:grid;place-items:center;padding:0 7%;background:rgba(2,5,12,.55);opacity:0;pointer-events:none;transition:opacity .4s ease}.secrets--open{opacity:1;pointer-events:auto}.secrets__panel{position:relative;width:100%;max-height:82%;overflow:auto;padding:22px 20px 16px;border-radius:6px;background:rgba(8,14,28,.82);border:1px solid rgba(220,230,255,.14);color:rgba(226,232,244,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:pan-y}.secrets__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.secrets__title{margin:0;font-size:19px;font-weight:400;letter-spacing:.08em}.secrets__count{font-size:14px;opacity:.6}.secrets__list{list-style:none;margin:0;padding:0;display:grid;grid-gap:13px;gap:13px}.secret{display:grid;grid-template-columns:1.4em 1fr;align-items:baseline;opacity:.62}.secret--found{opacity:1}.secret__mark{color:rgba(214,220,232,.6)}.secret--found .secret__mark{color:rgba(255,228,170,.95);text-shadow:0 0 8px rgba(255,210,140,.45)}.secret__name{margin:0 0 2px;font-size:15.5px}.secret--found .secret__name{color:rgba(255,240,205,1)}.secret__progress{font-size:13px;opacity:.65}.secret__hint{margin:0;font-size:13.5px;line-height:1.45;font-style:italic;opacity:.75}.secret__glow{color:rgba(205,222,248,1);text-shadow:0 0 5px rgba(140,180,255,.35)}.secrets__close{display:block;margin:16px auto 0;border:0;background:none;color:inherit;font:inherit;font-size:14px;letter-spacing:.2em;opacity:.6;cursor:pointer}