:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#294765;background:#b5dff7}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}button{-webkit-tap-highlight-color:transparent;font:inherit;cursor:pointer;color:inherit}button:focus-visible{outline:3px solid #fff;outline-offset:5px}button,svg{-webkit-user-select:none;user-select:none}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}[hidden]{display:none!important}#sky{position:fixed;inset:0;z-index:0;pointer-events:none;background:#bddff7 url('./assets/map-sky-v18.webp') center/cover no-repeat;transform:none;animation:none;transition:none}#map,#world{position:fixed;inset:0;background:transparent}#map{isolation:isolate}.sky-haze{position:absolute;inset:0;background:linear-gradient(90deg,#c5e9ff12,#e3f6ff33 45%,#d7efff00),linear-gradient(0deg,#fff2,transparent 45%)}.islands{position:relative;margin:auto;width:min(100vw,93svh);height:100svh;z-index:2}.island{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:20%;padding:0;border:0;background:none;transform:translate(-50%,-50%);transition:filter .3s;isolation:isolate}.island img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 14px 12px #4f78ab27);animation:bob 7s ease-in-out infinite;animation-delay:var(--delay);transition:filter .3s,scale .3s,translate .3s;pointer-events:none}.island:hover img,.island:focus-visible img{scale:1.05;translate:0 -8px;filter:drop-shadow(0 0 13px #fff) drop-shadow(0 16px 22px #63abed99)}.island:active img{scale:.98}.island:focus-visible{outline:none}.drift{position:absolute;pointer-events:none;z-index:3;width:37vw;height:20vh;opacity:.7;filter:blur(5px);background:radial-gradient(ellipse at 28% 60%,#fff 0 23%,transparent 24%),radial-gradient(ellipse at 51% 50%,#fff 0 35%,transparent 36%),radial-gradient(ellipse at 76% 63%,#fff 0 25%,transparent 26%)}.drift-a{top:29%;left:-26vw;animation:drift 55s linear infinite}.drift-b{top:72%;right:-26vw;animation:drift 70s linear infinite reverse;animation-delay:-30s}@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes drift{to{translate:135vw 0}}.glass{border:1px solid #fff9;background:#f6fbffe3;box-shadow:0 4px 22px #29496913;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}#world{background-position:center}#viewport{position:absolute;inset:0;touch-action:none;outline:none}#viewport canvas{display:block;width:100%;height:100%}.back{position:absolute;top:max(20px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));padding:12px 17px;border-radius:30px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:550}.back:hover,.reset:hover{background:#fff}.view-switch{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));display:flex;gap:3px;padding:4px;border-radius:28px}.view-switch button{padding:9px 16px;border:0;border-radius:22px;background:none;font-size:13px}.view-switch button[aria-pressed=true]{background:#5d91c9;color:white;box-shadow:0 2px 7px #4f87bf33}.reset{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));right:max(24px,env(safe-area-inset-right));width:44px;height:44px;border-radius:50%;display:grid;place-items:center}#walk-controls{position:absolute;left:max(28px,env(safe-area-inset-left));bottom:max(30px,env(safe-area-inset-bottom));touch-action:none}#joystick{width:112px;height:112px;border:1px solid #ffffffb0;border-radius:50%;background:#f9fdff35;box-shadow:inset 0 0 24px #fff4,0 2px 14px #4a7da01a;position:relative;touch-action:none;backdrop-filter:blur(7px)}#knob{position:absolute;left:31px;top:31px;width:48px;height:48px;border-radius:50%;border:1px solid #fff;background:#f8fcffd9;box-shadow:0 3px 14px #45779935;pointer-events:none}.joy-arrows{position:absolute;top:2px;left:49px;font-size:20px;color:#fff}#move-buttons{display:none}#move-buttons button{width:40px;height:38px;margin:2px;border-radius:11px;border:1px solid #fff9;background:#f8fcffb3;font-size:20px}#move-buttons>button{display:block;margin:0 auto 2px}#hint{position:absolute;left:50%;bottom:max(32px,env(safe-area-inset-bottom));translate:-50% 0;font-size:12px;font-weight:450;padding:10px 15px;border-radius:24px;white-space:nowrap;pointer-events:none;transition:opacity 1s;margin:0}#hint.fade{opacity:0}.reticle{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;background:#fffc;border-radius:50%;pointer-events:none;box-shadow:0 0 3px #36598166}#world.overview #walk-controls,#world.overview .reticle{display:none}#transition{position:fixed;inset:0;z-index:30;pointer-events:none;visibility:hidden}#transition.active{visibility:visible;pointer-events:all}.cloud-slab{position:absolute;left:-16vw;top:calc(var(--row)*19vh - 10vh);width:132vw;height:33vh;background:linear-gradient(#fffefa,#eff7ff);border-radius:46% 41% 43% 40%;box-shadow:0 0 40px 25px #f8fcff;transform:translateX(-145vw);transition:transform .72s cubic-bezier(.45,0,.16,1);transition-delay:calc(var(--row)*.035s)}.cloud-slab:nth-child(even){transform:translateX(145vw);background:#f7fbff}.cloud-slab:before,.cloud-slab:after{content:"";position:absolute;width:45%;height:75%;background:inherit;border-radius:50%;top:-20%;left:7%;box-shadow:35vw 4vh 0 1vw #f8fcff}.cloud-slab:after{left:28%;top:27%}#transition.covered .cloud-slab{transform:translateX(0)}#transition.depart .cloud-slab{transform:translateX(145vw)}#transition.depart .cloud-slab:nth-child(even){transform:translateX(-145vw)}#loading{position:absolute;left:50%;top:50%;translate:-50% -50%;opacity:0;transition:opacity .25s;text-align:center;font-size:13px;letter-spacing:.02em;color:#688ba9}#transition.covered #loading{opacity:1;transition-delay:.8s}#transition.depart #loading{opacity:0;transition-delay:0s}.spinner{display:inline-block;width:27px;height:27px;border:2px solid #d5e8f6;border-top-color:#79a8ca;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{rotate:360deg}}.progress-track{width:160px;height:2px;background:#d5e8f6;margin:14px auto;border-radius:3px;overflow:hidden}#progress{height:100%;width:0;background:#86a9c7;transition:width .3s}.error-card{position:fixed;z-index:40;top:50%;left:50%;translate:-50% -50%;width:min(90vw,380px);padding:26px;border-radius:24px;text-align:center;line-height:1.5}.error-card button{padding:9px 15px;border-radius:20px;margin:5px;font-size:13px}#error-back{border:0;background:none}@media(pointer:fine){#joystick{display:none}#move-buttons{display:block}}@media(max-width:600px){.islands{width:100vw}.island{height:22%}.back{top:max(14px,env(safe-area-inset-top));left:14px;padding:11px 13px;font-size:12px}.view-switch{top:max(14px,env(safe-area-inset-top));right:14px}.view-switch button{padding:8px 12px;font-size:12px}#hint{bottom:155px;max-width:86%;white-space:normal;text-align:center;line-height:1.5;width:max-content}#walk-controls{left:22px;bottom:max(22px,env(safe-area-inset-bottom))}.drift{width:60vw}}@media(orientation:landscape) and (max-height:550px){.islands{width:82svh}.island{height:20%}#hint{bottom:20px}#joystick{width:96px;height:96px}#knob{top:23px;left:23px}#walk-controls{bottom:20px}}@media(prefers-reduced-motion:reduce){.island img,.drift{animation:none}.cloud-slab{transition-duration:.15s;transition-delay:0s}.spinner{animation-duration:2s}}

/* Map positions are measured from the supplied 1080x2340 and 1920x1080 artwork. */
.sky-haze{display:none}
.islands{position:absolute;left:50%;top:50%;margin:0;width:min(100vw,46.153846svh);height:min(100svh,216.666667vw);transform:translate(-50%,-50%);isolation:isolate}
.map-backdrop{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.map-backdrop>img{position:absolute;max-width:none;pointer-events:none}
.island,.map-social{position:absolute;left:var(--mx);top:var(--my);width:var(--mw);height:var(--mh);z-index:var(--mz);padding:0;border:0;background:none;transform:none;aspect-ratio:auto}
.island{pointer-events:none}
.island img,.map-social img{display:block;width:100%;height:100%;object-fit:fill;animation:none;filter:none;pointer-events:none;transition:filter .3s,scale .3s,translate .3s}
.island-hit{position:absolute;inset:0;pointer-events:auto;cursor:pointer;touch-action:manipulation}
.map-social{display:block;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.map-social:hover img,.map-social:focus-visible img{scale:1.05;translate:0 -5px;filter:drop-shadow(0 0 10px #fff)}
.map-social:focus-visible{outline:2px solid white;outline-offset:4px;border-radius:40%}
.map-bridge{display:none;position:absolute;pointer-events:none}
.map-backdrop>img{left:-115.01998752%;top:-0.79940249%;width:329.89380093%;height:101.53112569%}
@media (min-width:700px) and (min-height:600px), (min-width:700px) and (pointer:fine){
 .islands{width:min(100vw,177.777778svh);height:min(100svh,56.25vw)}
 .island,.map-social{left:var(--dx);top:var(--dy);width:var(--dw);height:var(--dh);z-index:var(--dz)}
 .map-bridge{display:block}
.map-backdrop>img{left:-0.07422609%;top:-0.15923923%;width:103.02678438%;height:122.10492374%}
}

/* Game-wide tap behavior also covers empty space between controls. */
html,body,#map,#world,#transition,#error{touch-action:manipulation;overscroll-behavior:none}
#map,#world{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
