:root{--bg:#e9f3f2;--ink:#1f3d3a;--ink-soft:#5c7572;--card:#fff;--accent:#8fb5ac;--line:#d8e5e2;--sans:"Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--sans);margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}#scene{cursor:grab;touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#labels{pointer-events:none;position:fixed;inset:0;overflow:hidden}.label{white-space:nowrap;pointer-events:auto;background:#ffffffdb;border:0;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;transition:background .15s,color .15s,opacity .2s;position:absolute;top:0;left:0;box-shadow:0 1px 4px #1f3d3a2e}.label.hover,.label.selected,.label:hover,.label:focus-visible{background:var(--ink);color:#fff;outline:none}.label:not(.balloon-label){opacity:0;pointer-events:none}.label.hover,.label.selected,.label:focus-visible{opacity:1}@media (hover:none){.label:not(.balloon-label){opacity:1;pointer-events:auto}#labels.has-selection .label:not(.selected){opacity:.35}}.label.balloon-label{color:#fff;background:#ef6f5a;padding:5px 12px;font-size:13px}.label.balloon-label.hover,.label.balloon-label:hover,.label.balloon-label:focus-visible{background:var(--ink)}#haze{pointer-events:none;opacity:0;background:radial-gradient(at 50% 40%,#fff 0%,#f1f6f6 70%,#e3eeee 100%);position:fixed;inset:0}#haze-top{pointer-events:none;opacity:0;background:linear-gradient(#fffffff2,#ffffff8c 35%,#fff0);height:26vh;transition:opacity .8s;position:fixed;inset:0 0 auto}body.under-clouds #haze-top{opacity:1}.intro{pointer-events:none;position:fixed;top:50%;left:clamp(20px,5vw,90px);transform:translateY(-55%)}.intro h1{font-family:var(--serif);letter-spacing:-.02em;margin:0;font-size:clamp(48px,7vw,104px);font-weight:500;line-height:.95}.intro .dot{color:var(--accent)}.intro .tagline{margin:22px 0 14px;font-size:15px}.intro .links{pointer-events:auto;align-items:center;gap:14px;margin:0;display:flex}.intro a,.intro .links button{color:var(--ink);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:14px;text-decoration:underline}.intro a:hover,.intro .links button:hover{color:var(--ink-soft)}.intro,.hint{transition:opacity .4s}body.has-selection .intro,body.has-selection .hint{opacity:0;pointer-events:none}body.has-selection .intro .links{pointer-events:none}.hint{color:var(--ink-soft);white-space:nowrap;pointer-events:none;background:#ffffffb3;border-radius:999px;margin:0;padding:6px 14px;font-size:12px;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}#panel{background:var(--card);border-radius:18px;width:min(400px,100vw - 48px);padding:28px 28px 24px;position:fixed;top:24px;bottom:24px;right:24px;overflow-y:auto;box-shadow:0 10px 40px #1f3d3a2e}#panel[hidden],#list[hidden]{display:none}.close{width:34px;height:34px;color:var(--ink-soft);background:0 0;border:0;border-radius:50%;font-size:24px;line-height:1;position:absolute;top:12px;right:14px}.close:hover{background:var(--bg)}.kind{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 6px;font-size:12px;font-weight:700}.place-name{font-family:var(--serif);margin:0 34px 18px 0;font-size:30px;font-weight:500;line-height:1.1}.role{border-top:1px solid var(--line);padding:16px 0}.role h3{margin:0 0 4px;font-size:17px}.role .meta{color:var(--ink-soft);margin:0;font-size:13px}.role ul{margin:10px 0 0;padding-left:18px;font-size:14px;line-height:1.5}.role li+li{margin-top:6px}.summary{font-size:15px;line-height:1.55}.placeholder-note{background:#fff3cd;border-radius:6px;margin-bottom:8px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}#list{background:var(--bg);padding:56px 20px 80px;position:fixed;inset:0;overflow-y:auto}#list .close{position:fixed;top:16px;right:20px}.list-body{max-width:680px;margin:0 auto}.list-body h1{font-family:var(--serif);margin:0 0 4px;font-size:44px;font-weight:500}.list-body h2{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:40px 0 8px;font-size:13px}.list-body article{border-top:1px solid var(--line);padding:14px 0}.list-body article h3{margin:0 0 2px;font-size:18px}.list-body article .role{border:0;padding:6px 0 0}.list-body article .role h3{font-size:15px;font-weight:500}@media (width<=900px){.intro{top:20px;transform:none}.intro h1{font-size:40px}.intro h1 br{display:none}.intro .tagline{margin:8px 0;font-size:13px}.hint{display:none}#panel{width:auto;max-height:55vh;inset:auto 12px 12px}}
