:root{--color-header: oklch(33% .06 248);--color-header-ink: oklch(97% .008 240);--color-ink: oklch(30% .045 250);--color-ink-soft: oklch(44% .03 250);--color-ink-faint: oklch(56% .025 250);--color-paper: oklch(99% .003 250 / .96);--color-accent: oklch(63% .17 45);--color-notice-bg: oklch(88% .13 92);--color-notice-ink: oklch(34% .08 75);--color-ok: oklch(48% .11 155);--color-hairline: oklch(91% .012 240);--color-header-hairline: oklch(97% .008 240 / .25);--color-shadow: oklch(30% .045 250 / .25);--font-display: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--space-2xs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--dur-quick: .12s;--ease-out: cubic-bezier(.2, 0, 0, 1);--radius-sm: 4px;--radius-md: 8px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}html,body{overflow-x:clip}body{font-family:var(--font-body);color:var(--color-ink)}#app{display:flex;flex-direction:column}#topbar{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:var(--color-header);color:var(--color-header-ink)}#brand{display:flex;align-items:center;gap:var(--space-xs);margin:0;font-family:var(--font-display);font-size:1.15rem;font-weight:700;letter-spacing:.01em}#logo{flex:none;display:block}.tagline{font-size:.8rem;opacity:.72;padding-left:var(--space-sm);border-left:1px solid var(--color-header-hairline)}#notice{margin-left:auto;font-size:.8rem;font-weight:600;background:var(--color-notice-bg);color:var(--color-notice-ink);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-sm);white-space:nowrap}@media(max-width:560px){.tagline{display:none}}#map-wrap{position:relative;flex:1;min-height:0}#map{position:absolute;top:0;right:0;bottom:0;left:0}#panel{position:absolute;top:var(--space-sm);left:var(--space-sm);bottom:var(--space-sm);width:min(340px,calc(100% - 1.5rem));background:var(--color-paper);border-radius:var(--radius-md);box-shadow:0 2px 14px var(--color-shadow);overflow-y:auto;padding:var(--space-md) 1.1rem;z-index:5}#panel-close{position:absolute;top:var(--space-2xs);right:var(--space-xs);border:none;background:none;font-size:1.4rem;line-height:1;padding:var(--space-2xs);cursor:pointer;color:var(--color-ink-faint);border-radius:var(--radius-sm);transition:color var(--dur-quick) var(--ease-out)}#panel-close:hover{color:var(--color-ink)}#panel-close:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}#panel-close:active{color:var(--color-accent)}#panel h2{margin:0 1.2rem .15rem 0;font-family:var(--font-display);font-size:1.25rem;font-weight:700}#panel h3{margin:var(--space-md) 0 .3rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--color-ink-faint)}.alt-name{margin:0;font-size:.85rem;color:var(--color-ink-faint);font-style:italic}.location{margin:.15rem 0 var(--space-sm);font-size:.9rem;color:var(--color-ink-soft)}.kind-badge{display:inline-block;margin:.2rem 0 .1rem;padding:.1rem .5rem;border:1px solid var(--color-hairline);border-radius:999px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--color-ink-soft)}.fact dd a{color:inherit}.photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.photo{margin:0}.photo img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:4px;display:block}.photo figcaption{margin-top:.15rem;font-size:.68rem;line-height:1.3;overflow-wrap:anywhere}.facts{margin:0}.fact{display:flex;justify-content:space-between;gap:var(--space-md);padding:.2rem 0;font-size:.88rem}.fact dt{color:var(--color-ink-faint)}.fact dd{margin:0;text-align:right;font-family:var(--font-mono);font-size:.82rem;font-variant-numeric:tabular-nums}ul.facilities{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.15rem var(--space-sm);font-size:.85rem}ul.facilities .yes{color:var(--color-ok)}ul.facilities .no{color:var(--color-ink-faint)}.provenance{margin-top:1.1rem;padding-top:.6rem;border-top:1px solid var(--color-hairline);font-size:.8rem}.provenance p{margin:var(--space-2xs) 0}.muted{color:var(--color-ink-faint)}.depth-note{margin:.3rem 0 0;font-size:.75rem}.coverage-note{margin:var(--space-sm) 0 0;padding:var(--space-xs) var(--space-sm);background:var(--color-notice-bg);color:var(--color-notice-ink);border-radius:var(--radius-sm);font-size:.82rem}.coverage-note p{margin:.1rem 0}.coverage-note .muted{color:inherit;opacity:.75}.rose-row{display:flex;align-items:center;gap:var(--space-md)}.rose{width:128px;flex:none;color:var(--color-ink)}.rose-side{min-width:0}.rose-score{margin:0;font-family:var(--font-mono);font-size:1.6rem;font-variant-numeric:tabular-nums}.rose-score span{font-size:.9rem;color:var(--color-ink-faint)}.rose-side .muted{margin:0 0 .35rem;font-size:.75rem}.rose-open{margin:0;font-size:.85rem;font-weight:600}.family{margin:.2rem 0 0;font-size:.85rem}.family a,ul.children a{color:inherit}ul.children{list-style:none;margin:0;padding:0;font-size:.88rem}ul.children li{display:flex;justify-content:space-between;gap:var(--space-md);padding:.2rem 0}.contrib-area{margin-top:var(--space-md);padding-top:var(--space-xs);border-top:1px solid var(--color-hairline)}.contrib{padding:var(--space-xs) 0;border-bottom:1px solid var(--color-hairline);font-size:.88rem}.contrib:last-of-type{border-bottom:none}.contrib-owner{border-left:3px solid var(--color-ok);padding-left:var(--space-sm);background:#156f410d;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.owner-badge{display:inline-block;padding:0 .4rem;border-radius:999px;background:var(--color-ok);color:#fff;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.contrib-meta{margin:0 0 .2rem;font-size:.8rem}.contrib-name{font-weight:600}.contrib-stars{margin:0;color:var(--color-accent);letter-spacing:.1em}.contrib-kind{margin:0;font-size:.75rem}.contrib-text{margin:.2rem 0;line-height:1.45;white-space:pre-wrap}.contrib-photo{margin:.3rem 0 0}.contrib-area .btn-secondary,.contrib-area .btn-primary{font:inherit;font-size:.85rem;font-weight:600;padding:.4rem .8rem;border-radius:var(--radius-sm);cursor:pointer;margin-top:var(--space-xs)}.contrib-area .btn-secondary{background:none;border:1px solid var(--color-header);color:var(--color-header);width:100%}.contrib-area .btn-primary{background:var(--color-header);color:var(--color-header-ink);border:none}.contrib-area .btn-primary:disabled{opacity:.5}.contrib-form-wrap{margin-top:var(--space-sm)}.contrib-form{display:flex;flex-direction:column;gap:var(--space-xs)}.contrib-form label{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem;color:var(--color-ink-soft)}.contrib-form input:not([type=checkbox]),.contrib-form textarea,.contrib-form select{font:inherit;font-size:.85rem;padding:.4rem .5rem;border:1px solid var(--color-hairline);border-radius:var(--radius-sm)}.contrib-form [data-for]{display:flex;flex-direction:column;gap:var(--space-xs)}.contrib-form [data-for][hidden]{display:none}.contrib-type-row{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:var(--space-xs)}.contrib-type{font:inherit;font-size:.75rem;font-weight:600;padding:.25rem .6rem;border:1px solid var(--color-hairline);border-radius:999px;background:none;color:var(--color-ink-soft);cursor:pointer}.contrib-type.active{background:var(--color-header);border-color:var(--color-header);color:var(--color-header-ink)}.contrib-terms{font-size:.75rem;color:var(--color-ink-soft)}.contrib-terms summary{cursor:pointer;font-weight:600}.contrib-terms p{margin:.3rem 0 0;line-height:1.45}.contrib-accept{flex-direction:row!important;align-items:center;gap:var(--space-xs)!important}.contrib-error{margin:0;font-size:.8rem;font-weight:600;color:var(--color-accent)}.contrib-note{margin:0;font-size:.75rem}.contrib-thanks{font-weight:600;color:var(--color-ok)}.topbar-link{font-size:.8rem;color:inherit;opacity:.85;text-decoration:none;border-bottom:1px solid var(--color-header-hairline)}.topbar-link:hover{opacity:1}@media(prefers-reduced-motion:reduce){#panel-close{transition:none}}
