@font-face{font-family:IslandSerif;src:local("Iowan Old Style"),local("Palatino Linotype"),local("Book Antiqua"),local("Palatino");font-style:normal;font-weight:400;font-display:swap}
:root{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:#fffdf4;background:#24535b;font-synthesis:none;--cream:#fffdf4;--muted:rgba(255,253,244,.65);--panel:#f5f3e9;--ink:#253e39;--line:rgba(255,255,255,.2);color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{min-height:100svh;-webkit-font-smoothing:antialiased}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:2px solid #fff5b8;outline-offset:6px}button,input{margin:0}svg{display:block;width:21px;height:21px;flex-shrink:0}[hidden]{display:none!important}::selection{background:#e7c280;color:#203c38}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:10px;left:10px;z-index:30;padding:12px 20px;color:#203c38;background:#fff;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}
#world{position:fixed;inset:0;overflow:hidden;background:#579fbd}.world-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% center;transform:scale(1.04)}#island-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.5s;cursor:grab;touch-action:none}#island-canvas:active{cursor:grabbing}.world-ready #island-canvas{opacity:1}.world-ready .world-fallback{visibility:hidden;transition:visibility 0s 1.6s}
.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(15,38,40,.35),transparent 24%,transparent 45%,rgba(8,35,37,.3) 72%,rgba(5,28,32,.68)),linear-gradient(90deg,rgba(7,30,33,.13),transparent 65%);transition:opacity .7s}
.site-header{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:33px 4.1%;z-index:5;transition:opacity .6s,transform .6s}.wordmark{display:flex;align-items:center;gap:11px;font-family:IslandSerif,Georgia,serif;font-size:26px;letter-spacing:-.9px;text-shadow:0 1px 16px #24444c44}.island-mark{width:39px;height:39px}.wordmark-dot{color:#ead7a6}.header-nav{display:flex;gap:35px;position:absolute;left:50%;transform:translateX(-50%)}.header-nav a{font-size:12px;letter-spacing:.3px;padding:12px 0;position:relative;text-shadow:0 1px 8px #24444c88}.header-nav a:after{content:"";height:1px;background:var(--cream);position:absolute;bottom:5px;left:0;right:0;transform:scaleX(0);transform-origin:left;transition:transform .25s}.header-nav a:hover:after{transform:scaleX(1)}.glass{border:1px solid rgba(255,255,255,.3);background:rgba(23,53,53,.18);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 3px 25px #14282c08}.menu-toggle{display:flex;gap:24px;align-items:center;border-radius:100px;padding:12px 17px 12px 22px;font-size:11px;letter-spacing:.2px;transition:background .25s}.menu-toggle:hover{background:#ffffff22}.menu-toggle svg{width:18px;height:18px}
.scene-caption{position:fixed;top:145px;left:4.25%;display:flex;gap:9px;align-items:center;font-size:10px;letter-spacing:1.1px;color:rgba(255,255,248,.85);text-shadow:0 1px 5px #28494a44;transition:opacity .6s}.live-dot{width:4px;height:4px;background:#e8ebc8;border-radius:100%;box-shadow:0 0 10px #ffebca77}.welcome{position:fixed;left:7.15%;bottom:174px;z-index:2;transition:opacity .7s,transform .8s;max-width:590px}.eyebrow{display:flex;align-items:center;gap:13px;font-size:9px;letter-spacing:2.4px;font-weight:500;line-height:1.5;margin:0 0 23px}.eyebrow>span{width:25px;height:1px;background:#e0d9bf}.welcome h1{font-family:IslandSerif,Georgia,"Times New Roman",serif;font-size:clamp(58px,6.35vw,106px);font-weight:400;line-height:1.02;letter-spacing:-3.8px;margin:0 0 25px;text-shadow:0 4px 28px #183b3433}.welcome h1 em{font-weight:400;letter-spacing:-3px}.welcome-copy{font-size:12px;font-weight:300;line-height:1.9;letter-spacing:.1px;color:#fffdf4d9;margin:0 0 26px;text-shadow:0 1px 8px #173e3b66}.explore-button{display:inline-flex;align-items:center;gap:14px;padding:0;font-size:10px;letter-spacing:.3px}.explore-arrow{display:grid;place-items:center;border:1px solid #fffdf46b;border-radius:50%;width:37px;height:37px;transition:background .25s,transform .3s}.explore-arrow svg{width:17px;height:17px}.explore-button:hover .explore-arrow{background:#fffdf420;transform:translateX(3px)}
.scene-footer{position:fixed;bottom:27px;left:4.25%;right:4.25%;display:flex;align-items:center;justify-content:space-between;z-index:5;transition:opacity .6s,transform .6s}.footer-note{font-size:10px;line-height:1.7;letter-spacing:.15px;margin:0;color:#fffdf4b3}.footer-note>span{display:block;font-size:8px;letter-spacing:.6px;color:#fffdf477;margin-top:3px}.scene-controls{display:flex;align-items:center;gap:2px;position:absolute;left:50%;transform:translateX(-50%);padding:5px 8px;border-radius:100px;border-color:#ffffff2e;background:#173f3f35;white-space:nowrap}.scene-controls button{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.3px;padding:10px 11px;border-radius:100px;transition:background .2s}.scene-controls button:hover,.scene-controls button[aria-expanded=true]{background:#ffffff18}.scene-controls svg{width:16px;height:16px}.scene-controls .icon-button{padding:10px}.control-divider{height:13px;width:1px;margin:0 5px;background:#ffffff2b}.world-status{display:flex;align-items:center;gap:7px;line-height:1.4;font-size:8px;letter-spacing:.5px;color:#fffdf488;margin:0}.status-dot{width:4px;height:4px;background:#c0d9b4;border-radius:50%}.world-status.loading .status-dot{animation:pulse 1s ease-in-out infinite}.scene-hint{position:fixed;left:50%;bottom:108px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;font-size:8px;letter-spacing:.6px;color:#fffdf4b3;white-space:nowrap;transition:opacity .6s}.hint-divider{margin:0 6px;color:#fffdf466}.hint-mouse{width:10px;height:15px;border:1px solid #fffdf47a;border-radius:6px;position:relative}.hint-mouse:before{content:"";position:absolute;left:3px;top:3px;height:3px;width:2px;background:#fffdf4aa;border-radius:2px}
.exploring .welcome{opacity:0;transform:translateY(18px);pointer-events:none}.exploring .scene-caption{opacity:.65}.return-view{position:fixed;left:4.25%;bottom:109px;display:flex;gap:12px;align-items:center;font-size:10px;padding:11px 17px;border-radius:100px;z-index:3}.hotspots{position:fixed;inset:0;z-index:2;pointer-events:none}.hotspot{position:absolute;display:flex;align-items:center;gap:10px;pointer-events:auto;transform:translate(-18px,-18px);padding:5px;font-size:11px;text-align:left;opacity:0;animation:appear .7s .25s forwards}.hotspot-dot{height:33px;width:33px;display:grid;place-items:center;border-radius:50%;background:#fffdf4e8;box-shadow:0 0 0 6px #fffdf424,0 2px 18px #0c34314d;color:#2e4d41;font-size:16px;transition:transform .25s,box-shadow .25s}.hotspot:hover .hotspot-dot{transform:scale(1.1);box-shadow:0 0 0 10px #fffdf430,0 2px 18px #0c34314d}.hotspot-label{background:#153e3b99;border:1px solid #fffdf433;backdrop-filter:blur(16px);border-radius:4px;padding:9px 13px;line-height:1.5;white-space:nowrap}.hotspot-label small{display:block;font-size:6px;letter-spacing:1.4px;color:#fffdf49c;margin-bottom:2px}
.panel{background:var(--panel);color:var(--ink);box-shadow:0 20px 90px #072a3240;border:1px solid #fffdf433;border-radius:12px;color-scheme:light}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.panel .eyebrow{font-size:7px;letter-spacing:1.7px;color:#748279;margin-bottom:12px}.panel h2{font-family:IslandSerif,Georgia,serif;font-size:30px;font-weight:400;letter-spacing:-1px;line-height:1.13;margin:0}.close-button{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border:1px solid #34514126;border-radius:50%;font-size:22px;font-weight:200;line-height:1;transition:background .2s}.close-button:hover{background:#254f3a10}.settings-panel{position:fixed;bottom:95px;left:50%;width:320px;transform:translateX(-50%);z-index:12;padding:26px 25px 18px;animation:appear .25s}.light-options{border:0;margin:27px 0 24px;padding:0}.light-options legend{font-size:10px;margin-bottom:12px}.light-options>div{display:flex;padding:4px;border-radius:7px;background:#e8eade;gap:3px}.light-options button{flex:1;font-size:9px;border-radius:5px;padding:9px 4px;color:#758176}.light-options button[aria-pressed=true]{background:#fffdf4;color:#2d513c;box-shadow:0 2px 4px #203b3310}.range-label{display:flex;justify-content:space-between;font-size:10px;margin:20px 0 12px}.range-label output{color:#899485;font-size:9px}.settings-panel input[type=range]{display:block;appearance:none;width:100%;height:2px;background:#ced4c4;border-radius:2px;cursor:pointer;accent-color:#516d4e}.settings-panel input[type=range]::-webkit-slider-thumb{appearance:none;width:11px;height:11px;border-radius:50%;background:#506b4b;box-shadow:0 0 0 3px var(--panel)}.settings-panel input[type=range]::-moz-range-thumb{width:11px;height:11px;border:0;border-radius:50%;background:#506b4b}.range-ends{display:flex;justify-content:space-between;font-size:7px;color:#8c968a;margin-top:10px}.motion-row{border-top:1px solid #344d3815;margin-top:23px;padding-top:18px;display:flex;align-items:center;justify-content:space-between;font-size:10px}.switch{width:29px;height:16px;border-radius:10px;background:#a6af9e;position:relative;transition:background .2s;padding:0}.switch span{position:absolute;left:3px;top:3px;width:10px;height:10px;border-radius:50%;background:#fff;transition:transform .2s}.switch[aria-checked=true]{background:#5d7952}.switch[aria-checked=true] span{transform:translateX(13px)}.settings-footnote{font-family:IslandSerif,Georgia,serif;font-style:italic;font-size:12px;text-align:center;color:#8b9585;margin:22px 0 0}
.directory{position:fixed;left:auto;right:24px;top:24px;bottom:24px;margin:0;max-height:calc(100dvh - 48px);width:min(465px,calc(100% - 32px));max-width:none;padding:37px 34px 24px;z-index:20;overflow:auto}.directory[open]{display:flex;flex-direction:column;animation:drawer-in .4s ease-out}.directory::backdrop{background:#0e33343b;backdrop-filter:blur(6px)}.directory .panel-heading{margin-bottom:30px}.directory nav{flex:1;display:flex;flex-direction:column;justify-content:center}.directory nav a{display:flex;align-items:center;gap:18px;padding:23px 0;border-top:1px solid #274a3d1c;transition:padding .25s}.directory nav a:hover{padding-left:5px}.directory-number{font-size:8px;color:#8e9b89;align-self:flex-start;padding-top:7px}.directory nav strong{display:block;font-family:IslandSerif,Georgia,serif;font-size:25px;font-weight:400;letter-spacing:-.7px;margin-bottom:6px}.directory nav small{font-size:9px;letter-spacing:.05px;color:#80907f;line-height:1.6}.directory-arrow{font-size:22px;margin-left:auto;color:#5b7653}.directory-footer{font-family:IslandSerif,Georgia,serif;font-style:italic;color:#87917e;font-size:12px;line-height:1.8;border-top:1px solid #274a3d1c;margin:12px 0 0;padding-top:23px}.directory-footer>span{display:block;font-family:"Helvetica Neue",sans-serif;font-style:normal;font-size:7px;letter-spacing:2px;margin-top:13px;color:#9fa794}
.immersive .site-header,.immersive .welcome,.immersive .scene-footer,.immersive .scene-hint,.immersive .scene-caption,.immersive .hotspots,.immersive .return-view{opacity:0;pointer-events:none}.immersive .vignette{opacity:0}.show-interface{position:fixed;bottom:25px;right:25px;border-radius:100px;z-index:6;padding:12px 18px;display:flex;align-items:center;gap:18px;font-size:9px;opacity:.65;transition:opacity .25s}.show-interface:hover{opacity:1}.no-script{position:fixed;bottom:85px;right:30px;left:30px;text-align:center;font-size:11px;padding:14px;background:#123c3bcc;border-radius:7px;z-index:8}.no-script a{text-decoration:underline}
@keyframes pulse{50%{opacity:.3}}@keyframes appear{from{opacity:0}to{opacity:1}}@keyframes drawer-in{from{opacity:0;transform:translateX(25px)}to{opacity:1;transform:translateX(0)}}
@media(min-width:1600px){.welcome{bottom:20.5%}.scene-caption{top:18%}.site-header{padding-top:40px}.scene-footer{bottom:35px}.scene-hint{bottom:120px}.scene-controls button{font-size:10px;padding:12px 14px}.scene-controls svg{width:17px;height:17px}.scene-controls .icon-button{padding:12px}.footer-note{font-size:11px}}
@media(max-height:700px) and (min-width:701px){.welcome{bottom:134px}.welcome h1{font-size:66px}.welcome .eyebrow{margin-bottom:16px}.welcome h1{margin-bottom:18px}.welcome-copy{margin-bottom:18px}.scene-caption{top:125px}.settings-panel{bottom:85px}.scene-hint{bottom:91px}.scene-footer{bottom:20px}.settings-panel{padding:18px 22px}.settings-panel .light-options{margin:19px 0}.range-label{margin-top:15px}.settings-footnote{margin-top:13px}}
@media(max-width:700px){.site-header{padding:23px 23px}.wordmark{font-size:23px;gap:8px}.island-mark{width:32px;height:32px}.header-nav{display:none}.menu-toggle{padding:10px;border-radius:50%;gap:0}.menu-toggle>span{display:none}.menu-toggle svg{width:18px;height:18px}.scene-caption{top:101px;left:26px;font-size:8px;letter-spacing:.6px}.welcome{left:27px;bottom:183px;right:20px;max-width:420px}.welcome .eyebrow{font-size:7px;letter-spacing:1.6px;gap:9px;margin-bottom:21px}.welcome .eyebrow>span{width:17px}.welcome h1{font-size:64px;letter-spacing:-3px;margin-bottom:20px;line-height:1.01}.welcome h1 em{letter-spacing:-2.5px}.welcome-copy{font-size:11px;line-height:1.9;margin-bottom:21px}.explore-button{font-size:9px;gap:12px}.explore-arrow{width:34px;height:34px}.scene-footer{bottom:25px;left:23px;right:23px;align-items:flex-end}.scene-controls{bottom:39px;padding:4px 7px;width:max-content;max-width:calc(100vw - 32px)}.scene-controls button{padding:9px 9px;font-size:8px;gap:7px}.scene-controls .icon-button{padding:9px}.scene-controls svg{width:15px;height:15px}.control-divider{margin:0 2px}.footer-note{font-size:8px}.footer-note>span{font-size:7px;margin-top:1px}.world-status{font-size:7px;gap:5px}.scene-hint{bottom:127px;font-size:7px;letter-spacing:.3px}.hint-mouse{width:9px;height:13px}.hint-mouse:before{left:3px;width:1px}.settings-panel{bottom:123px;width:min(320px,calc(100vw - 36px))}.return-view{left:23px;bottom:164px;font-size:9px}.directory{top:12px;right:12px;bottom:12px;max-height:calc(100dvh - 24px);padding:29px 25px 20px}.directory h2{font-size:28px}.directory .panel-heading{margin-bottom:22px}.directory nav a{padding:21px 0}.directory nav strong{font-size:24px}.hotspot{gap:6px}.hotspot-dot{height:28px;width:28px}.hotspot-label{padding:7px 9px;font-size:9px}.hotspot-label small{font-size:5px;letter-spacing:.9px}.water-hotspot .hotspot-label{display:none}.vignette{background:linear-gradient(180deg,#0b2d394d,transparent 23%,transparent 34%,#092e3745 55%,#08292ed4),linear-gradient(90deg,#10323914,transparent)}.show-interface{bottom:25px;right:23px}.desktop-break{display:none}}
@media(max-width:380px){.welcome h1{font-size:56px}.welcome{bottom:177px}.welcome-copy{font-size:10px}.scene-controls button{padding:8px;font-size:7px}.scene-controls .icon-button{padding:8px}.scene-footer{left:18px;right:18px}.wordmark{font-size:21px}.settings-panel{padding:22px}.scene-caption{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}
.welcome h1 em{font-family:Georgia,"Times New Roman",serif;font-style:italic}
.world-fallback{object-position:56% 48%;transform:scale(1.055)}
@media(max-width:700px){.world-fallback{object-position:79% 48%}}
/* The overview retains the source image's proportions with a quiet backdrop. */
#world{background:radial-gradient(ellipse at 40% 30%,#2d5d64,#102f36 85%)}
#island-canvas{background:transparent}
.world-overview .world-fallback{visibility:visible;filter:blur(35px) brightness(.46) saturate(.7);transform:scale(1.18);transition:filter .3s,visibility 0s}
.view-controls{position:fixed;right:4.25%;bottom:106px;z-index:5;display:flex;align-items:center;padding:4px;border-radius:100px;gap:2px;transition:opacity .4s}
.view-controls button{min-width:31px;height:31px;border-radius:50%;display:grid;place-items:center;font-size:18px;line-height:1}
.view-controls button:hover{background:#ffffff20}
.view-controls #view-overview{font-size:9px;letter-spacing:.2px;min-width:65px;border-radius:100px;padding:0 10px}
.view-controls #view-reset{font-size:19px;margin-left:2px}
.view-controls button:disabled{opacity:.3}
.immersive .view-controls{opacity:0;pointer-events:none}
.settings-panel{max-height:calc(100dvh - 125px);overflow-y:auto}
.directory nav{justify-content:flex-start;padding-top:35px}
.directory-footer{margin-top:auto}
.world-overview .welcome{opacity:0;pointer-events:none;transform:translateY(15px)}
.world-overview .vignette{opacity:.6}
.hotspot[aria-pressed=true] .hotspot-dot{background:#ffe6a5;box-shadow:0 0 0 7px #ffe6a530,0 0 35px #ffd17555}
@media(max-width:700px){.view-controls{top:94px;bottom:auto;right:23px;padding:3px;gap:1px}.view-controls button{height:29px;min-width:29px;font-size:17px}.view-controls #view-overview{font-size:8px;min-width:57px;padding:0 7px}.settings-panel{max-height:calc(100dvh - 160px)}.scene-hint{font-size:7px}.hotspot-label{white-space:nowrap}}
@media(max-height:550px){.welcome{bottom:120px}.welcome h1{font-size:49px}.welcome-copy{display:none}.welcome .eyebrow{margin-bottom:12px}.scene-hint{display:none}.settings-panel{bottom:80px;max-height:calc(100dvh - 100px)}.view-controls{bottom:95px}.return-view{bottom:100px}}
.hotspot{width:43px;height:43px}
.hotspot-label{position:absolute;left:48px;top:0}
.hotspot.label-left .hotspot-label{left:auto;right:48px}
.welcome{pointer-events:none}.welcome .explore-button{pointer-events:auto}.exploring .welcome .explore-button,.immersive .welcome .explore-button{pointer-events:none}.scene-hint{pointer-events:none}
@media(max-width:700px){.view-controls button{min-width:36px;height:36px}.view-controls #view-overview{min-width:62px}}
.world-fallback{object-position:50% 50%}
@media(max-width:700px){.world-fallback{object-position:45% 50%}}
@media(max-height:550px){.view-controls{top:auto;bottom:95px}}
