:root{--roam-sp-2: 2px;--roam-sp-4: 4px;--roam-sp-6: 6px;--roam-sp-8: 8px;--roam-sp-10: 10px;--roam-sp-12: 12px;--roam-sp-16: 16px;--roam-sp-20: 20px;--roam-sp-24: 24px;--roam-surface-fill: color-mix(in srgb, var(--t-surface) calc(var(--t-surface-opacity) * 100%), transparent);--roam-surface-alt-fill: color-mix(in srgb, var(--t-surface-alt) calc(var(--t-surface-opacity) * 100%), transparent);--roam-dark-track: color-mix(in srgb, var(--t-dark-text) 30%, transparent);--roam-dark-muted: color-mix(in srgb, var(--t-dark-text) 60%, transparent);--roam-text-size: var(--t-text-size);--roam-fs-small: calc(var(--t-text-size) * .875);--roam-fs-title: 20px;--roam-fs-callout: 15px;--roam-lh-1: 1;--roam-lh-tight: 1.3;--roam-weight-regular: 400;--roam-danger: #ff6b6b;--roam-clear: transparent;--roam-mark-font: Georgia, "Times New Roman", serif;--roam-mark-size: 15px;--roam-hit: 44px;--roam-pin-ring: 2px;--roam-focus: 2px;--roam-badge-size: 26px;--roam-compact-button: 34px;--roam-short-button: 36px;--roam-joystick: 96px;--roam-knob: 40px;--roam-lift-button: 52px;--roam-lift-bottom: 56px;--roam-title-lift: -40px;--roam-badge-clear: 120px;--roam-compact-clear: 68px;--roam-chips-right: 72px;--roam-chips-right-short: 120px;--roam-callout-max: 280px;--roam-callout-min-height: 36px;--roam-stem: 2px;--roam-track: 1px;--roam-track-width: min(360px, 80vw);--roam-logo-loading-scale: 2;--roam-panel-width: 380px;--roam-panel-sheet: 60vh;--roam-panel-side: 55vw;--roam-error-width: min(640px, 90vw);--roam-bottom-inset: 12px;--roam-bottom-inset-short: 6px;--roam-edge-inset: 8px}@media(pointer:coarse){:root{--roam-text-size: max(var(--t-text-size), 16px);--roam-fs-small: var(--roam-text-size)}}html,body,#roam{margin:0;height:100%;background:var(--t-dark);color:var(--t-surface-text);font-family:var(--t-font-text);font-size:var(--roam-text-size);line-height:var(--t-line-height);overflow:hidden}#roam{position:relative;height:100dvh}.roam-display{font-family:var(--t-font-display);font-weight:var(--t-display-weight);text-transform:var(--t-display-transform);letter-spacing:var(--t-display-tracking)}.roam-eyebrow{font-family:var(--t-font-display);font-weight:var(--roam-weight-regular);font-size:var(--t-label-size);text-transform:var(--t-label-transform);letter-spacing:var(--t-label-tracking);color:var(--t-eyebrow)}.roam-screen{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--roam-sp-12);padding:var(--roam-sp-24);text-align:center;background:var(--t-dark);color:var(--t-dark-text)}.roam-screen h1{margin:0 0 var(--roam-sp-8);font-family:var(--t-font-display);font-weight:var(--t-display-weight);font-size:var(--roam-fs-title);text-transform:var(--t-display-transform);letter-spacing:var(--t-display-tracking);line-height:var(--roam-lh-tight)}.roam-screen h1[hidden]{display:none}.roam-screen-logo{height:calc(var(--t-logo-height) * var(--roam-logo-loading-scale));margin:0 0 var(--roam-sp-8)}.roam-screen-logo[hidden]{display:none}.roam-track{width:var(--roam-track-width);height:var(--roam-track);background:var(--roam-dark-track);overflow:hidden}.roam-bar{height:100%;width:0;background:var(--t-dark-text);transition:width .12s linear}.roam-bar-indeterminate{width:30%!important;animation:roam-slide 1.2s ease-in-out infinite}@keyframes roam-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.roam-label{color:var(--t-dark-text)}.roam-detail{font-size:var(--roam-fs-small);color:var(--roam-dark-muted)}.roam-error h1{color:var(--roam-danger);text-transform:none;letter-spacing:0}.roam-error pre{max-width:var(--roam-error-width);white-space:pre-wrap;text-align:left;font-size:var(--roam-fs-small);line-height:var(--t-line-height);background:var(--roam-dark-track);padding:var(--roam-sp-16);border-radius:var(--t-radius)}#roam canvas{display:block;width:100%;height:100%}.roam-logo{position:absolute;z-index:2;left:max(var(--roam-bottom-inset),env(safe-area-inset-left));top:max(var(--roam-bottom-inset),env(safe-area-inset-top));display:block;padding:var(--roam-sp-8) var(--roam-sp-10);background:var(--roam-surface-fill);border-radius:var(--t-radius);backdrop-filter:blur(var(--t-blur));line-height:0}.roam-logo img{display:block;height:var(--t-logo-height);width:auto}.roam-logo[hidden]{display:none}.roam-joystick{position:absolute;z-index:2;width:var(--roam-joystick);height:var(--roam-joystick);margin:calc(var(--roam-joystick) / -2) 0 0 calc(var(--roam-joystick) / -2);border-radius:50%;background:var(--roam-surface-fill);border:var(--t-border) solid var(--t-line);pointer-events:none}.roam-joystick-knob{position:absolute;left:calc((var(--roam-joystick) - var(--roam-knob)) / 2 - var(--t-border));top:calc((var(--roam-joystick) - var(--roam-knob)) / 2 - var(--t-border));width:var(--roam-knob);height:var(--roam-knob);border-radius:50%;background:var(--t-accent)}.roam-lift{position:absolute;z-index:2;right:max(var(--roam-edge-inset),env(safe-area-inset-right));bottom:calc(max(var(--roam-edge-inset),env(safe-area-inset-bottom)) + var(--roam-lift-bottom));display:flex;flex-direction:column;gap:var(--roam-sp-8)}.roam-lift[hidden]{display:none}.roam-lift-button{width:var(--roam-lift-button);height:var(--roam-lift-button);border-radius:50%;border:var(--t-border) solid var(--t-line);background:var(--roam-surface-fill);color:var(--t-surface-text);font:inherit;font-size:var(--roam-text-size);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:var(--roam-clear)}.roam-lift-button:active{background:var(--t-accent);border-color:var(--t-accent);color:var(--t-accent-text)}.roam-overlay{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}.roam-overlay>*{position:absolute;left:0;top:0;will-change:transform}.roam-overlay-label{transform-origin:center;padding:var(--roam-sp-2) var(--roam-sp-6);border-radius:var(--t-radius);background:var(--roam-surface-fill);color:var(--t-measure);font-family:var(--t-font-display);font-size:var(--t-label-size);letter-spacing:var(--t-label-tracking);text-transform:var(--t-label-transform);line-height:var(--t-line-height);white-space:nowrap;user-select:none;font-variant-numeric:tabular-nums}.roam-overlay-label-title{margin-top:var(--roam-title-lift)}.roam-marker{pointer-events:auto;width:var(--roam-hit);height:var(--roam-hit);padding:0;border:0;background:none;color:var(--t-surface-text);cursor:pointer;font:inherit;touch-action:manipulation}.roam-marker-dot{display:block;box-sizing:border-box;width:calc(var(--t-pin-radius) * 2);height:calc(var(--t-pin-radius) * 2);margin:calc(var(--roam-hit) / 2 - var(--t-pin-radius));border-radius:50%;background:var(--t-pin);border:var(--roam-pin-ring) solid var(--t-pin-ring);transition:transform .12s ease-out}.roam-marker-text{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:calc(var(--roam-sp-6) - (var(--roam-hit) / 2 - var(--t-pin-radius)));padding:var(--roam-sp-2) var(--roam-sp-8);border-radius:var(--t-radius);background:var(--roam-surface-fill);color:var(--t-eyebrow);font-family:var(--t-font-display);font-size:var(--t-label-size);letter-spacing:var(--t-label-tracking);text-transform:var(--t-label-transform);line-height:var(--t-line-height);white-space:nowrap}.roam-marker-text[hidden]{display:none}.roam-marker:hover .roam-marker-dot,.roam-marker:focus-visible .roam-marker-dot{transform:scale(1.1)}.roam-marker-selected .roam-marker-dot{transform:scale(1.4);background:var(--t-accent);border-color:var(--t-pin)}.roam-marker-selected .roam-marker-text{color:var(--t-surface-text)}.roam-button{min-height:var(--roam-hit);padding:var(--t-button-padding);border:var(--t-border) solid var(--t-line);border-radius:var(--t-radius);background:var(--roam-clear);color:var(--t-surface-muted);font-family:var(--t-font-display);font-weight:var(--roam-weight-regular);font-size:var(--t-label-size);letter-spacing:var(--t-label-tracking);text-transform:var(--t-label-transform);line-height:var(--t-line-height);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:var(--roam-clear)}.roam-button:hover{color:var(--t-surface-text)}.roam-button[aria-pressed=true]{color:var(--t-surface-text);border-color:var(--t-surface-text)}.roam-button-primary[aria-pressed=true]{background:var(--t-accent);border-color:var(--t-accent);color:var(--t-accent-text)}.roam-button:focus-visible{outline:var(--roam-focus) solid var(--t-accent);outline-offset:var(--roam-sp-2)}.roam-bottom{position:absolute;z-index:2;left:0;right:0;bottom:max(var(--roam-bottom-inset),env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:var(--roam-sp-8);pointer-events:none}.roam-bottom>*{pointer-events:auto}.roam-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--roam-sp-6);max-width:calc(100vw - var(--roam-badge-clear));padding:var(--roam-sp-6);border-top:var(--t-border) solid var(--t-line);border-radius:var(--t-radius);background:var(--roam-surface-fill);box-shadow:var(--t-shadow);backdrop-filter:blur(var(--t-blur))}.roam-controls[hidden]{display:none}.roam-controls-group{display:flex;border-radius:var(--t-radius);overflow:hidden}.roam-controls-group .roam-button{border-radius:0}.roam-controls-group .roam-button+.roam-button{margin-left:calc(var(--t-border) * -1)}.roam-controls-group .roam-button:first-child{border-radius:var(--t-radius) 0 0 var(--t-radius)}.roam-controls-group .roam-button:last-child{border-radius:0 var(--t-radius) var(--t-radius) 0}.roam-controls-compact{align-self:flex-start;margin-left:max(var(--roam-sp-8),env(safe-area-inset-left));flex-wrap:nowrap;gap:0;padding:0 var(--roam-sp-2);max-width:calc(100vw - var(--roam-compact-clear) - env(safe-area-inset-left) - env(safe-area-inset-right));overflow-x:auto;scrollbar-width:none}.roam-controls-compact::-webkit-scrollbar{display:none}.roam-controls-compact .roam-button{position:relative;z-index:0;flex:none;width:var(--roam-hit);min-height:var(--roam-hit);padding:0;border:0;border-radius:0;background:none;font-family:var(--t-font-text);font-size:var(--roam-text-size);letter-spacing:0;text-transform:none;line-height:var(--roam-lh-1);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.roam-controls-compact .roam-button:before{content:"";position:absolute;z-index:-1;inset:calc((var(--roam-hit) - var(--roam-compact-button)) / 2);border:var(--t-border) solid var(--t-line);border-radius:var(--t-radius)}.roam-controls-compact .roam-button[aria-pressed=true]:before{border-color:var(--t-surface-text)}.roam-controls-compact .roam-button-primary[aria-pressed=true]:before{background:var(--t-accent);border-color:var(--t-accent)}.roam-controls-compact .roam-button-primary[aria-pressed=true]{background:none}.roam-controls-compact .roam-controls-group .roam-button+.roam-button{margin-left:0}.roam-controls-tip{position:absolute;z-index:3;transform:translate(-50%,calc(-100% - var(--roam-sp-8)));padding:var(--roam-sp-6) var(--roam-sp-10);border-radius:var(--t-radius);background:var(--roam-surface-fill);border:var(--t-border) solid var(--t-line);color:var(--t-surface-text);font-family:var(--t-font-display);font-size:var(--t-label-size);letter-spacing:var(--t-label-tracking);text-transform:var(--t-label-transform);white-space:nowrap;pointer-events:none}.roam-controls-tip[hidden]{display:none}.roam-chips{align-self:stretch;display:flex;gap:var(--roam-sp-8);padding:var(--roam-sp-4) max(var(--roam-chips-right),env(safe-area-inset-right)) var(--roam-sp-4) max(var(--roam-sp-12),env(safe-area-inset-left));overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;pointer-events:none}.roam-chips::-webkit-scrollbar{display:none}.roam-chips[hidden]{display:none}.roam-chip{flex:none;display:inline-flex;align-items:center;gap:var(--roam-sp-6);min-height:var(--roam-hit);padding:0 var(--roam-sp-16);border:var(--t-border) solid var(--roam-clear);border-radius:var(--t-radius);background:var(--roam-surface-alt-fill);color:var(--t-eyebrow);font-family:var(--t-font-display);font-weight:var(--roam-weight-regular);font-size:var(--t-label-size);letter-spacing:var(--t-label-tracking);text-transform:var(--t-label-transform);line-height:var(--t-line-height);white-space:nowrap;cursor:pointer;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:var(--roam-clear)}.roam-chip:hover{color:var(--t-surface-text)}.roam-chip[aria-pressed=true]{background:var(--t-accent);border-color:var(--t-accent);color:var(--t-accent-text)}.roam-chip:focus-visible{outline:var(--roam-focus) solid var(--t-accent);outline-offset:var(--roam-sp-2)}.roam-chip-icon{font-family:var(--t-font-text);font-size:var(--roam-text-size);letter-spacing:0;line-height:var(--roam-lh-1)}.roam-callout{pointer-events:none}.roam-callout-stem{position:absolute;left:0;top:0;height:var(--roam-stem);margin-top:calc(var(--roam-stem) / -2);transform-origin:0 50%;background:var(--t-line)}.roam-callout-bubble{position:absolute;left:0;top:0;width:max-content;max-width:min(var(--roam-callout-max),calc(100vw - var(--roam-sp-24) - var(--roam-sp-8)));padding:var(--roam-sp-12) var(--roam-sp-16) var(--roam-sp-12);border-radius:var(--t-radius);background:var(--roam-surface-fill);border:var(--t-border) solid var(--t-line);box-shadow:var(--t-shadow);backdrop-filter:blur(var(--t-blur));color:var(--t-surface-text);pointer-events:auto}.roam-callout-bubble h3{margin:0;font-family:var(--t-font-display);font-weight:var(--t-display-weight);font-size:var(--roam-fs-callout);text-transform:var(--t-display-transform);letter-spacing:var(--t-display-tracking);line-height:var(--roam-lh-tight)}.roam-callout-bubble p{margin:var(--roam-sp-6) 0 0;font-family:var(--t-font-text);font-size:var(--roam-fs-small);line-height:var(--t-line-height);white-space:normal}.roam-callout-detail{color:var(--t-measure);font-variant-numeric:tabular-nums}.roam-callout-more{display:inline-block;min-height:0;margin-top:var(--roam-sp-10);padding:0 0 var(--roam-sp-2);border:0;border-bottom:var(--t-border) solid currentColor;border-radius:0;color:var(--t-eyebrow);font-family:var(--t-font-display);font-size:var(--t-label-size);letter-spacing:var(--t-label-tracking);text-transform:var(--t-label-transform);line-height:var(--t-line-height)}.roam-callout-more:hover{color:var(--t-surface-text)}.roam-panel{position:absolute;z-index:3;right:0;top:0;bottom:0;width:min(var(--roam-panel-width),100vw);display:flex;flex-direction:column;background:var(--t-surface);color:var(--t-surface-text);border-left:var(--t-border) solid var(--t-line);box-shadow:var(--t-shadow)}.roam-panel[hidden]{display:none}.roam-panel header{display:flex;align-items:center;justify-content:space-between;gap:var(--roam-sp-12);padding:var(--roam-sp-12) var(--roam-sp-12) var(--roam-sp-12) var(--roam-sp-20);border-bottom:var(--t-border) solid var(--t-line)}.roam-panel h2{margin:0;font-family:var(--t-font-display);font-weight:var(--t-display-weight);font-size:var(--roam-fs-title);text-transform:var(--t-display-transform);letter-spacing:var(--t-display-tracking);line-height:var(--roam-lh-tight)}.roam-panel-close{min-width:var(--roam-hit);padding:0;flex:none;font-family:var(--t-font-text);letter-spacing:0}.roam-panel-body{overflow-y:auto;padding:var(--roam-sp-16) var(--roam-sp-20) max(var(--roam-sp-16),env(safe-area-inset-bottom));font-family:var(--t-font-text);font-size:var(--roam-text-size);line-height:var(--t-line-height)}.roam-panel-body p:first-child,.roam-panel-body h2:first-child,.roam-panel-body h3:first-child{margin-top:0}.roam-panel-body h2,.roam-panel-body h3{font-family:var(--t-font-display);font-weight:var(--t-display-weight);font-size:var(--roam-fs-callout);text-transform:var(--t-display-transform);letter-spacing:var(--t-display-tracking)}.roam-panel-body a{color:var(--t-eyebrow)}.roam-photo{display:block;width:100%;border-radius:var(--t-radius);margin:0 0 var(--roam-sp-12);background:var(--t-surface-alt)}.roam-missing{color:var(--roam-danger);font-size:var(--roam-fs-small)}.roam-address{color:var(--t-surface-muted)}.roam-facts{display:grid;grid-template-columns:auto 1fr;margin:var(--roam-sp-16) 0 0;border-top:var(--t-border) solid var(--t-line)}.roam-facts dt,.roam-facts dd{margin:0;padding:var(--roam-sp-8) var(--roam-sp-10);background:var(--t-surface-alt);border-bottom:var(--t-border) solid var(--t-line)}.roam-facts dt{align-self:center;padding-right:var(--roam-sp-16);font-family:var(--t-font-display);font-weight:var(--roam-weight-regular);font-size:var(--t-label-size);letter-spacing:var(--t-label-tracking);text-transform:var(--t-label-transform);color:var(--t-eyebrow)}.roam-facts dd{text-align:right}@media(max-width:640px){.roam-panel{top:auto;left:0;width:auto;max-height:var(--roam-panel-sheet);border-left:0;border-top:var(--t-border) solid var(--t-line);border-radius:var(--t-radius) var(--t-radius) 0 0}.roam-panel:not([hidden])~.roam-bottom{display:none}}.roam-badge{position:absolute;z-index:2;right:max(var(--roam-edge-inset),env(safe-area-inset-right));bottom:max(var(--roam-edge-inset),env(safe-area-inset-bottom));display:flex;align-items:center;gap:var(--roam-sp-4)}.roam-badge-toggle{width:var(--roam-hit);height:var(--roam-hit);padding:0;border:0;background:none;color:var(--t-surface-text);cursor:pointer;font:inherit;font-size:0;touch-action:manipulation;-webkit-tap-highlight-color:var(--roam-clear)}.roam-badge-toggle:before{content:"i";display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--roam-badge-size);height:var(--roam-badge-size);margin:calc((var(--roam-hit) - var(--roam-badge-size)) / 2);border-radius:50%;border:var(--t-border) solid var(--t-line);background:var(--roam-surface-fill);font-family:var(--roam-mark-font);font-style:italic;font-size:var(--roam-mark-size);line-height:var(--roam-lh-1)}.roam-badge-toggle[aria-expanded=true]:before,.roam-badge-toggle:hover:before{background:var(--t-accent);border-color:var(--t-accent);color:var(--t-accent-text)}.roam-badge-toggle:focus-visible{outline:var(--roam-focus) solid var(--t-accent);outline-offset:calc(var(--roam-sp-4) * -1);border-radius:50%}.roam-badge-text{padding:var(--roam-sp-6) var(--roam-sp-10);border-radius:var(--t-radius);border:var(--t-border) solid var(--t-line);background:var(--roam-surface-fill);color:var(--t-surface-text);font-size:var(--roam-fs-small);text-decoration:none;white-space:nowrap}.roam-badge-text:hover{color:var(--t-eyebrow)}.roam-badge-text[hidden]{display:none}@media(max-height:500px){.roam-button{min-height:var(--roam-short-button)}.roam-bottom{bottom:max(var(--roam-bottom-inset-short),env(safe-area-inset-bottom));gap:var(--roam-sp-4)}.roam-panel{top:0;bottom:0;left:auto;width:min(var(--roam-panel-width),var(--roam-panel-side));max-height:none;border-top:0;border-left:var(--t-border) solid var(--t-line);border-radius:0}.roam-panel:not([hidden])~.roam-bottom{display:none}.roam-chips{padding-right:max(var(--roam-chips-right-short),env(safe-area-inset-right))}.roam-chip{min-height:var(--roam-short-button);padding:0 var(--roam-sp-10)}}
