#world,.world-art{width:8200px;height:4100px}.world-art{overflow:visible}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.map-controls select{max-width:220px;border:0;background:transparent;color:var(--ink);padding:0 8px;font:500 12px 'DM Sans',sans-serif;outline-offset:4px}.map-controls button:disabled{opacity:.3;cursor:default}.minimap{width:180px;height:90px}.day-location h2{max-width:530px}.read-paper{text-align:left;color:var(--ink);cursor:pointer;transition:box-shadow .2s,transform .2s}.read-paper:hover{transform:rotate(-2deg) translateY(-3px);box-shadow:2px 12px 25px #4d5b3b20}.read-paper h3{font-family:'Playfair Display',Georgia,serif;font-size:24px;font-weight:500;line-height:1.25;margin:14px 0}.read-paper p{font-size:14px;line-height:1.75}.read-invitation{display:block;color:#a55f45;font-size:12px;margin-top:24px}.read-invitation small{float:right;color:#889276;font-size:10px}.day-story-list{position:absolute;left:0;top:485px;width:300px;display:flex;flex-direction:column;gap:11px;transform:rotate(-3deg)}.day-story-list button{text-align:left;border:0;background:#faf8edb8;border-bottom:1px solid #b7c3a566;padding:10px 14px;font:15px Georgia,serif;color:#4b6653}.day-story-list button span{color:var(--coral);margin-right:7px}.day-story-list a{font:italic 13px Georgia,serif;color:#829372;padding:12px}.side-photo{left:360px;top:440px}.unwritten-note{position:absolute;top:110px;left:105px;transform:rotate(-5deg);border:1px dashed #a9b999;border-radius:7px;padding:45px 40px;width:400px;text-align:center;background:#f5f5e67d;color:#859779}.unwritten-note>span{font-size:60px;color:#b9a179}.unwritten-note h3{font:26px 'Playfair Display',Georgia,serif}.unwritten-note p{font:16px/1.8 Georgia,serif}.unwritten-note a{display:inline-block;border-bottom:1px solid #b2bda5;margin-top:15px;padding:6px;font-size:12px}.unwritten .day-location{opacity:.75}.water-wave-layer{animation:water-breathe 14s ease-in-out infinite alternate}.palm-response{transform-box:fill-box;transform-origin:center bottom;transform:rotate(var(--wind,0deg));transition:transform .8s cubic-bezier(.2,.7,.3,1)}.palm-sway{transform-box:fill-box;transform-origin:center bottom;animation:palm-breathe 7s ease-in-out infinite alternate;animation-delay:var(--sway-delay)}.fish-event{opacity:0;animation:fish-appear 52s linear infinite;animation-delay:var(--fish-delay)}.leaping-fish{animation:fish-leap 52s ease-in-out infinite;animation-delay:var(--fish-delay)}.fish-ripple{transform-box:fill-box;transform-origin:center;animation:fish-ripple 52s linear infinite;animation-delay:var(--fish-delay)}@keyframes water-breathe{from{transform:translate(-25px,-3px);opacity:.5}to{transform:translate(35px,4px);opacity:.85}}@keyframes palm-breathe{from{transform:rotate(-2deg)}to{transform:rotate(3deg)}}@keyframes fish-appear{0%,4.5%,100%{opacity:0}1%,3.5%{opacity:.85}}@keyframes fish-leap{0%{transform:translate(-25px,5px) rotate(-30deg)}2%{transform:translate(0,-40px) rotate(5deg)}4.5%,100%{transform:translate(30px,10px) rotate(45deg)}}@keyframes fish-ripple{0%{transform:scale(.2);opacity:0}1%{opacity:.8}4.5%,100%{transform:scale(1.8);opacity:0}}.ambient-paused .water-wave-layer,.ambient-paused .palm-sway,.ambient-paused .fish-event,.ambient-paused .leaping-fish,.ambient-paused .fish-ripple,.ambient-paused .story-route,.ambient-paused .intro-star{animation-play-state:paused}.ambient-paused .palm-response{transform:none}.ambient-paused .fish-event{opacity:0!important}
#reader{padding:0;width:min(850px,94vw);height:min(92dvh,1100px);max-height:94dvh;overflow:hidden;background:#faf8f0;border-radius:10px}.reader-toolbar{height:61px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid #e1e4d6;position:relative}.reader-toolbar>span{font-size:10px;letter-spacing:1.8px;color:#839177}.reading-track{position:absolute;bottom:0;left:0;right:0;height:2px}.reading-track i{display:block;height:100%;background:#bb7654;width:0}.reader-scroll{height:calc(100% - 61px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y}.reading-column{max-width:640px;margin:0 auto;padding:52px 22px 60px}.reading-column h1{font:500 44px/1.16 'Playfair Display',Georgia,serif;letter-spacing:-1px;margin:16px 0 20px}.reader-meta{font-size:11px;color:#859078;margin-bottom:35px}#readerBody p{font:18px/1.85 Georgia,serif;color:#475e4c;margin:0 0 27px;overflow-wrap:anywhere}.reader-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:35px 0}.reader-images button{border:0;padding:0;background:none}.reader-images img{width:100%;height:180px;object-fit:cover;border-radius:3px}.reader-song{background:#eee8d6;border-radius:5px;padding:20px;margin:25px 0}.reader-song>span{display:block;font-family:Georgia,serif;margin-bottom:14px}.reader-song audio{width:100%}.reader-links{display:flex;flex-direction:column;gap:12px;margin:25px 0}.reader-links a{color:#a45e42;border-bottom:1px solid #d9d9c6;padding-bottom:10px;overflow-wrap:anywhere}.reader-footer{display:block;border-top:1px solid #d9ddcd;margin:40px 0 0;padding-top:18px}.reader-edit{display:inline-block;margin-top:20px;font-size:11px;color:#8b967c}.map-status{max-width:250px}
@media(max-width:700px){#reader{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}.reader-toolbar{padding:0 20px}.reading-column{padding:32px 24px 40px}.reading-column h1{font-size:34px}#readerBody p{font-size:18px;line-height:1.8}.reader-images img{height:135px}.map-controls select{font-size:11px;max-width:180px}.minimap{width:112px;height:56px}.read-paper p{font-size:18px;line-height:1.55}.read-paper h3{font-size:25px}.read-invitation{font-size:16px}.read-invitation small{font-size:12px}.day-story-list{top:515px}.map-status{max-width:175px}}
@media(prefers-reduced-motion:reduce){.water-wave-layer,.palm-sway,.fish-event,.leaping-fish,.fish-ripple{animation:none!important}.fish-event{display:none}.palm-response{transform:none!important}}
.map-audio-note{position:absolute;width:285px;padding:22px;background:#eddfc0;border:1px solid #d8c9a5;transform:rotate(6deg);box-shadow:3px 8px 20px #3b543b12}.map-audio-note>span{display:block;font:18px Georgia,serif;margin-bottom:15px}.map-audio-note audio{width:100%;height:32px}.map-audio-note button{margin-top:12px;border:0;background:none;font:italic 12px Georgia,serif;color:#947553}
.story-route{vector-effect:non-scaling-stroke;stroke-width:1.5}.route-shadow{vector-effect:non-scaling-stroke;stroke-width:5}
#world,.world-art{width:8200px;height:6000px}
.small-islet{position:absolute;width:210px;transform:translate(-50%,-30%);text-align:center;z-index:3}
.small-islet button{display:flex;flex-direction:column;align-items:center;gap:5px;margin:auto;background:none;border:0;color:#52614f;cursor:pointer;padding:16px 25px;font-family:inherit}
.small-islet strong{font:italic 39px 'Playfair Display',serif}.small-islet span{font-size:15px}.small-islet small{font-size:10px;letter-spacing:2px;text-transform:uppercase;opacity:.7}
.small-islet a{display:none;font-size:12px;background:#f8f5e9;padding:10px 14px;border-radius:20px;text-decoration:none;color:#93644c;white-space:nowrap}.small-islet.active a,.small-islet:focus-within a{display:inline-block}.small-islet.active strong{color:#b87554}
#flightLayer{position:absolute;inset:0;width:8200px;height:6000px;pointer-events:none;overflow:visible;z-index:8}.plane-body{fill:#fff9e9;stroke:#926e55;stroke-width:1.5;filter:drop-shadow(0 3px 2px #596b5022)}.plane-window{fill:#779c9c;stroke:none}.plane-shadow{fill:#526f64;opacity:.15}
#arrivalNotice{position:fixed;z-index:15;left:50%;top:115px;transform:translateX(-50%);display:flex;align-items:center;gap:18px;padding:12px 18px;background:#fbf8eeed;border:1px solid #dedbc8;border-radius:28px;box-shadow:0 8px 30px #52614f15;font-size:12px;white-space:nowrap}#arrivalNotice[hidden]{display:none}#arrivalNotice button{border:0;background:none;color:#a16446;font:inherit;cursor:pointer}
@media(max-width:700px){#arrivalNotice{top:105px;gap:8px;padding:10px 12px;font-size:10px}.small-islet button{padding:24px}}
.story-route{vector-effect:none;stroke-width:calc(1.5px / var(--map-zoom,1));stroke-dasharray:calc(3px / var(--map-zoom,1)) calc(10px / var(--map-zoom,1))}.route-shadow{vector-effect:none;stroke-width:calc(5px / var(--map-zoom,1))}
.story-route{vector-effect:none;stroke-width:4;stroke-dasharray:7 15;animation:none;opacity:.75}.route-shadow{vector-effect:none;stroke-width:9}

body.visitor a[href^="/edit"]{display:none!important}
.boat-traffic{pointer-events:none}.boat-wake{fill:none;stroke:#7faaa0;stroke-width:1.5;stroke-linecap:round;opacity:.48;transition:opacity 1.5s}.boat-wake path{animation:boat-wake-breathe 3s ease-in-out infinite alternate;animation-delay:var(--boat-delay)}.boat-bob{animation:boat-rock 4s ease-in-out infinite alternate;animation-delay:var(--boat-delay);transform-box:fill-box;transform-origin:center}.canoe-hull{fill:#b98259;stroke:#7e684c;stroke-width:1.4}.canoe-seat{fill:#e8cf9c;stroke:#9e7751;stroke-width:1}.canoe-outrigger{fill:none;stroke:#8b9270;stroke-width:2;stroke-linecap:round}.canoe-paddle{stroke:#876d4f;stroke-width:2;transform-origin:-4px -8px;animation:canoe-stroke 2.7s ease-in-out infinite alternate;animation-delay:var(--boat-delay)}.paddle-blade{fill:#b9865d;stroke-width:1}.boat-person{fill:#557a72}.boat-hat{fill:#e9d5a4}.sailboat-hull{fill:#668a80;stroke:#4b7068;stroke-width:1.5}.boat-deck{fill:#dac7a1}.boat-mast{stroke:#927c59;stroke-width:2}.boat-sail{fill:#fbf5dd;stroke:#ba9575;stroke-width:1.2}.boat-small-sail{fill:#d2a079;stroke:#a37f5b;stroke-width:1}.travelling-boat.docked .boat-wake{opacity:0}.travelling-boat.docked .canoe-paddle{animation-play-state:paused}.ambient-paused .boat-bob,.ambient-paused .canoe-paddle,.ambient-paused .boat-wake path{animation-play-state:paused}@keyframes boat-rock{from{transform:translateY(-1px) rotate(-2deg)}to{transform:translateY(1px) rotate(2deg)}}@keyframes canoe-stroke{from{transform:rotate(-17deg)}to{transform:rotate(17deg)}}@keyframes boat-wake-breathe{from{opacity:.5;transform:scaleX(.9)}to{opacity:1;transform:scaleX(1.05)}}@media(prefers-reduced-motion:reduce){.boat-bob,.canoe-paddle,.boat-wake path{animation:none!important}.boat-wake{display:none}}
