:root{--paper:#fbf8f3;--card:#fffdf9;--ink:#22201c;--muted:#726c63;--gold:#c69a6a;--gold-deep:#b98f56;--gold-soft:#e3be8f;--line:#ded5c9;--r-sm:.625rem;--r-md:1rem;--r-lg:1.5rem;--shadow:0 12px 48px #0003;--font-display:'Paralucent','Proxima Nova',sans-serif;--font-ui:'Proxima Nova',sans-serif;--danger:#9f3a32}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--ink);color:var(--ink);font-family:var(--font-ui)}body{overflow:hidden}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold-deep);outline-offset:3px}button{min-height:44px}a{color:inherit}[hidden]{display:none!important}.skip{position:fixed;top:-80px;z-index:100;background:var(--paper);padding:16px}.skip:focus{top:8px}
#visit-root,#visit-map{position:absolute;inset:0}#visit-map{background:var(--ink)}.visit-header{position:absolute;z-index:3;top:0;left:0;right:0;display:flex;align-items:center;gap:20px;padding:20px 32px;color:var(--paper);background:linear-gradient(#000b,transparent);pointer-events:none}.visit-header>*{pointer-events:auto}.brand img{width:144px;max-height:44px;object-fit:contain}.visit-header>span{font-size:10px;letter-spacing:.2em;border-left:1px solid var(--gold);padding-left:20px}.visit-header button{margin-left:auto;background:var(--ink);border:1px solid var(--gold);color:var(--paper);padding:0 20px;border-radius:100px;font-size:12px}
.visit-panel{position:absolute;z-index:3;left:32px;top:104px;bottom:100px;width:384px;max-width:calc(100% - 64px);padding:28px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;animation:arrive .4s ease both}.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--gold-deep);font-weight:700;margin:0 0 12px}h1,h2,h3{font-family:var(--font-display);font-weight:300;letter-spacing:-.04em;margin:0 0 16px;line-height:1.04}h1{font-size:44px}h2{font-size:36px}h3{font-size:26px}p{font-size:14px;line-height:1.5;color:var(--muted)}.cover{height:176px;width:calc(100% + 56px);margin:-28px -28px 24px;object-fit:cover}.address{font-size:25px;margin:8px 0}.location{font-size:13px;margin-top:0}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.choice{display:flex;flex-direction:column;gap:12px;text-align:left;border:1px solid var(--line);border-radius:var(--r-md);padding:20px 16px;background:var(--card);color:var(--ink)}.choice svg{color:var(--gold-deep);width:28px;height:28px}.choice[aria-pressed=true]{border-color:var(--gold-deep);background:var(--gold-soft)}.choice small{font-size:11px;color:var(--muted);line-height:1.4}.primary{width:100%;border:0;border-radius:100px;background:var(--gold-soft);padding:16px 24px;color:var(--ink);font-weight:600}.secondary{border:1px solid var(--line);border-radius:100px;padding:12px 20px;background:var(--card);color:var(--ink)}.link{border:0;background:none;padding:12px 0;text-decoration:underline;text-underline-offset:4px;color:var(--muted)}.subtle{font-size:12px;line-height:1.5}.steps{display:flex;gap:4px;margin-bottom:24px}.steps i{height:4px;flex:1;background:var(--line);border-radius:4px}.steps i.active{background:var(--gold)}label.field{display:block;margin:16px 0;font-size:12px;font-weight:600}input,select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);padding:12px;margin-top:8px;font-size:16px}input[type=checkbox]{width:20px;min-height:20px;margin:0;flex-shrink:0;accent-color:var(--gold-deep)}.consent{display:flex;gap:12px;align-items:flex-start;font-size:12px;line-height:1.5;color:var(--muted);margin:24px 0}.error{color:var(--danger)}.result{margin:16px 0;white-space:pre-wrap}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.facts div{padding:12px 8px;border-top:1px solid var(--line)}.facts b{font-size:19px;font-weight:400}.facts small{display:block;margin-top:6px;color:var(--muted);font-size:11px}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.listing-description{font-size:14px;line-height:1.65}.listing-description summary{cursor:pointer;padding:16px 0}.listing-description p{white-space:pre-line}.photo-button{border:0;padding:0;background:none;width:100%;border-radius:var(--r-md);overflow:hidden}.photo-button img{display:block;width:100%;height:160px;object-fit:cover}.photo-count{display:block;text-align:left;padding:8px 0;font-size:12px;color:var(--muted)}
#categories{position:absolute;z-index:3;top:104px;left:440px;right:24px;display:flex;gap:8px;overflow-x:auto;padding:4px;scrollbar-width:none}#categories button{border:1px solid var(--line);background:var(--paper);border-radius:100px;padding:12px 16px;display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap;box-shadow:0 4px 16px #0001}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}#categories button.active{background:var(--gold-soft);border-color:var(--gold-deep)}#tools{position:absolute;z-index:4;left:32px;bottom:24px;display:flex;gap:4px;padding:8px;background:var(--ink);color:var(--paper);border:1px solid var(--gold);border-radius:100px;box-shadow:var(--shadow)}#tools button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:inherit;border-radius:100px;padding:12px 20px;font-size:12px}#tools button.active{background:var(--gold-soft);color:var(--ink)}#next-guest{position:absolute;z-index:4;bottom:32px;right:32px;border:1px solid var(--gold);border-radius:100px;background:var(--ink);color:var(--paper);padding:12px 20px;font-size:12px}#map-message{position:absolute;right:24px;top:176px;z-index:2;max-width:300px;background:var(--paper);border-radius:var(--r-sm);font-size:12px;line-height:1.4;padding:12px 16px}#map-message:empty{display:none}.place{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:var(--r-md);padding:16px;margin:12px 0}.place b,.place small{display:block}.place small{font-size:12px;line-height:1.5;color:var(--muted);margin-top:4px}.place .rating{color:var(--gold-deep);font-weight:600}.empty{padding:24px 0}.place-marker,.home-marker{padding:8px 12px;border-radius:100px;background:var(--paper);border:2px solid var(--ink);font:12px var(--font-ui);max-width:200px}.home-marker{background:var(--ink);color:var(--gold-soft);border-color:var(--gold);font-weight:bold}
dialog{max-height:85dvh;width:min(600px,calc(100vw - 24px));padding:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:#0008}dialog header{position:sticky;top:0;z-index:1;background:var(--paper);padding:20px 24px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:16px}dialog h2{font-size:28px;margin:8px 0 0;flex:1}#dialog-close{border:1px solid var(--line);border-radius:50%;width:44px;background:transparent;font-size:26px}#dialog-handle{position:absolute;top:0;left:30%;width:40%;height:20px;min-height:20px;border:0;background:none;touch-action:none}#dialog-handle span{display:block;margin:4px auto;width:48px;height:4px;border-radius:4px;background:var(--gold)}#dialog-body{padding:24px}#dialog-body>svg{display:block;width:240px;max-width:100%;margin:0 auto 24px}.gallery-image{width:100%;height:min(50dvh,480px);object-fit:contain;background:var(--ink);border-radius:var(--r-sm)}.gallery-nav{display:flex;justify-content:space-between;align-items:center;margin:16px 0}.chat-log{display:flex;flex-direction:column;gap:16px;margin:24px 0}.chat-line{border:1px solid var(--line);border-radius:var(--r-md);padding:16px;font-size:14px;line-height:1.6;white-space:pre-wrap}.chat-line.user{background:var(--gold-soft);margin-left:24px}.chat-line.assistant{background:var(--card);margin-right:12px}.chat-form{display:flex;gap:8px;align-items:end}.chat-form input{margin:0}.chat-form button{width:48px;height:48px;border:0;background:var(--gold-soft);border-radius:50%;flex-shrink:0}.thinking{display:flex;align-items:center;gap:12px;color:var(--gold-deep)}.thinking svg{animation:think 1.5s ease-in-out infinite}.address-suggestions button{display:block;width:100%;padding:12px;border:1px solid var(--line);background:var(--card);text-align:left}.hint{font-size:12px}.welcome-note{border-top:1px solid var(--line);padding-top:16px}.pill{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--gold-deep)}.return-prompt{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.return-prompt a{display:block}.tools-footnote{font-size:11px;margin-top:24px}.host-list button{margin-bottom:12px;text-align:left}.screen-reader{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.panel-grip{display:none}
@keyframes arrive{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes think{50%{transform:translateY(-4px) rotate(6deg)}}
@media(max-width:1000px){.visit-panel{left:20px;width:340px;max-width:calc(100% - 40px)}#categories{left:380px;flex-wrap:wrap;max-width:400px}.visit-header{padding:20px}#tools{left:20px}#tools button{padding:12px 16px}}
@media(max-width:640px){.visit-header{padding:16px;gap:12px}.brand img{width:120px}.visit-header>span{display:none}.visit-header button{padding:0 16px}.visit-panel{left:12px;right:12px;top:auto;bottom:100px;width:auto;max-width:none;max-height:66dvh;padding:24px;border-radius:24px}.visit-panel.exploring{max-height:42dvh}.cover{height:120px;width:calc(100% + 48px);margin:-24px -24px 20px}h1{font-size:34px}h2{font-size:30px}.address{font-size:24px}.choices{margin:16px 0}.choice{padding:16px}#categories{top:80px;left:8px;right:8px;max-width:none;flex-wrap:nowrap}#categories button{padding:10px 14px}#tools{left:12px;right:12px;bottom:max(16px,env(safe-area-inset-bottom));justify-content:space-evenly;gap:0;padding:4px}#tools button{flex-direction:column;padding:8px 12px;gap:4px;font-size:10px;min-width:64px}#next-guest{bottom:88px;right:16px;padding:8px 16px;min-height:36px;font-size:11px}body.kiosk .visit-panel{bottom:140px}body.kiosk .visit-panel.exploring{max-height:36dvh}#map-message{top:136px;left:16px;right:16px;max-width:none}.facts{margin:12px 0}.photo-button img{height:128px}dialog{max-height:88dvh;margin:auto auto 12px}#dialog-body{padding:20px}label.field{margin:12px 0}.consent{margin:16px 0}}
@media(max-width:640px){.panel-grip{display:block;position:sticky;top:-24px;z-index:1;margin:-24px -24px 8px;width:calc(100% + 48px);min-height:36px;background:var(--paper);border:0;touch-action:none}.panel-grip span{display:block;margin:auto;width:44px;height:4px;background:var(--gold);border-radius:4px}.visit-panel.exploring.panel-expanded{max-height:70dvh}.visit-panel.exploring.panel-collapsed{max-height:68px;overflow:hidden}.visit-panel.exploring.panel-collapsed .panel-grip{margin-bottom:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{body{background:white;height:auto;overflow:visible}#visit-root>*:not(dialog){display:none!important}dialog{display:block;position:static;max-height:none;max-width:none;width:100%;border:0}dialog header button,.no-print{display:none!important}#dialog-body>svg{width:300px}dialog:not([open]){display:none!important}}
/* Listing details use the same typography and icon language as the public site. */
.location,.photo-count,.listing-description summary{display:flex;align-items:center;gap:7px}.location .icon,.photo-count .icon,.listing-description summary .icon{width:16px;height:16px;flex:none;color:var(--gold-deep)}.listing-price{font-family:var(--font-display);font-weight:400}.facts div{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.facts .icon{width:18px;height:18px;color:var(--gold-deep)}.facts small{margin-top:0}.listing-description summary{font-family:var(--font-ui);font-weight:600}.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px}.secondary .icon{width:17px;height:17px;color:var(--gold-deep)}.map-results{width:100%;margin:20px 0 8px}
.visit-journey-footer{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}
.visit-journey-footer .primary{min-height:52px}
.visit-panel.choosing{width:480px;bottom:24px}
.visit-panel.choosing .host-list{padding-bottom:8px}
@media(max-width:640px){.visit-panel.choosing,body.kiosk .visit-panel.choosing{left:12px;right:12px;width:auto;bottom:max(16px,env(safe-area-inset-bottom));max-height:calc(100dvh - 96px)}}
