:root{--cream:#f6f3ed;--cream-dark:#ebe6dc;--paper:#fffcf7;--ink:#1a2420;--ink-soft:#4a5651;--ink-muted:#7a8680;--brand-deep:#0b3d4a;--brand-deep-light:#145366;--brand-sun:#e6a23c;--forest:var(--brand-deep);--forest-light:var(--brand-deep-light);--forest-muted:rgba(11,61,74,0.12);--amber:var(--brand-sun);--amber-soft:rgba(230,162,60,0.14);--line:rgba(26,36,32,0.08);--line-strong:rgba(26,36,32,0.14);--shadow-sm:0 2px 8px rgba(26,36,32,0.06);--shadow-md:0 12px 40px rgba(26,36,32,0.12);--shadow-lg:0 24px 64px rgba(26,36,32,0.16);--radius-sm:12px;--radius:16px;--radius-lg:24px;--radius-xl:36px;--radius-control:14px;--map-fab-size:46px;--map-fab-bottom:calc(1rem + env(safe-area-inset-bottom, 0));--map-fab-opacity:1;--explorer-sheet-inset:1rem;--explorer-sheet-bottom:1rem;--detail-sheet-inset:1rem;--font:var(--font-dm),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--ease:cubic-bezier(0.33,1,0.38,1);--header-h:56px;--shell-pad:1rem;--panel-gap:0.75rem;--explorer-w:380px;--drawer-w:min(440px,92vw);--explorer-end:calc(var(--shell-pad) + var(--explorer-w) + var(--panel-gap));--sai-bottom-effective:env(safe-area-inset-bottom,0px)}@property --detail-mobile-h{syntax:"<length>";inherits:true;initial-value:0}@property --explorer-mobile-h{syntax:"<length>";inherits:true;initial-value:0}*,:after,:before{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;height:100%;height:-webkit-fill-available}body,html{margin:0;min-height:100%;min-height:100dvh;min-height:-webkit-fill-available;font-family:var(--font);color:var(--ink);background:var(--cream)}button{font-family:inherit;cursor:pointer}a{color:inherit}.app{position:relative;width:100%;min-height:100dvh;min-height:-webkit-fill-available;height:100%;overflow:hidden}.map-root{position:absolute;inset:0;z-index:0}.leaflet-container{width:100%;height:100%;background:#d4ddd8;font-family:inherit}.place-marker{background:transparent!important;border:0!important;overflow:visible!important;line-height:0}.place-marker svg{display:block;transform:translateZ(0);-webkit-transform:translateZ(0)}.leaflet-marker-icon.place-marker{overflow:visible!important}.place-marker.is-selected{z-index:1000!important}.leaflet-bottom.leaflet-right{display:none}.map-controls-stack{position:absolute;right:1rem;bottom:var(--map-fab-bottom);z-index:401;display:flex;flex-direction:column;align-items:stretch;gap:.4rem}@media (max-width:959px){html{touch-action:manipulation}body,html{width:100%;height:100%;overflow:visible;overscroll-behavior:none;background:#d4ddd8}body{position:fixed;inset:0;margin:0;padding:0}.app,.app-root{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.app{min-height:0;--mobile-sheet-edge-gap:1rem;--mobile-sheet-shell-bottom:var(--mobile-sheet-edge-gap);--mobile-sheet-edge-gap-collapsed:1.75rem;--device-corner-radius:62px;--mobile-sheet-radius:calc(1.25rem + var(--mobile-sheet-edge-gap));--explorer-content-pad:1rem;--mobile-sheet-top-gap:calc(env(safe-area-inset-top, 0px) + 0.5rem);--mobile-sheet-max-h:calc(var(--layout-vh, 100vh) - var(--mobile-sheet-top-gap));--active-mobile-sheet-h:var(--explorer-mobile-h,min(48vh,520px));--map-fab-bottom:calc(var(--explorer-sheet-bottom, var(--mobile-sheet-shell-bottom)) + var(--active-mobile-sheet-h) + 0.85rem)}html.is-standalone{--sai-top-effective:max(env(safe-area-inset-top,0px),47px);--sai-bottom-effective:max(env(safe-area-inset-bottom,0px),34px)}html.is-standalone,html.is-standalone body{height:100vh;min-height:100vh;max-height:100vh}html.is-standalone body{position:relative;inset:auto;width:100%;overflow:visible;background:#d4ddd8}html.is-standalone .app-root{height:100%}html.is-standalone .app,html.is-standalone .app-root{position:absolute;inset:0;width:100%;overflow:visible}html.is-standalone .app{height:100vh;min-height:100vh;max-height:100vh;--mobile-sheet-top-gap:calc(var(--sai-top-effective) + 0.5rem);--mobile-sheet-max-h:calc(var(--layout-vh, 100vh) - var(--mobile-sheet-top-gap))}.app.detail-open{--active-mobile-sheet-h:var(--detail-mobile-h,min(48vh,520px))}.map-root{position:fixed;top:calc(-1 * env(safe-area-inset-top, 0px));right:0;bottom:0;left:0;width:100%;height:calc(100vh + env(safe-area-inset-top, 0px));z-index:0;overflow:hidden}html.is-standalone .map-root{top:calc(-1 * var(--sai-top-effective, env(safe-area-inset-top, 0px)));height:calc(100vh + var(--sai-top-effective, 0px))}.map-root .leaflet-container{position:absolute;inset:0;background:#d4ddd8}.sheet-overlay{position:fixed;inset:0;z-index:200;overflow:hidden;pointer-events:none}.sheet-overlay>*{pointer-events:auto}.map-controls-stack{position:fixed;z-index:500;touch-action:none;bottom:var(--map-fab-bottom);transition:bottom .35s var(--ease)}html.detail-sheet-dragging .map-controls-stack,html.explorer-sheet-dragging .map-controls-stack,html.sheet-animating .map-controls-stack{transition:none}}.map-control-btn,.map-provider-menu{position:relative}.map-control-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;background:var(--paper);color:var(--forest);font-size:18px;font-weight:600;line-height:1;transition:background .15s var(--ease),color .15s var(--ease)}.map-provider-menu>.map-control-btn,.map-zoom-group{border:1px solid var(--line);border-radius:var(--radius-control);box-shadow:var(--shadow-md)}.map-provider-menu>.map-control-btn{width:40px}.map-zoom-group{display:flex;flex-direction:column;overflow:hidden}@media (pointer:coarse) and (max-width:767px){.map-zoom-group{display:none}}.map-zoom-btn+.map-zoom-btn{border-top:1px solid var(--line)}.map-locate-btn{width:var(--map-fab-size);height:var(--map-fab-size);border:1px solid var(--line);border-radius:50%;box-shadow:var(--shadow-md);color:var(--forest);opacity:var(--map-fab-opacity,1);transition:opacity .2s var(--ease),background .15s var(--ease),color .15s var(--ease)}html.map-fabs-hidden .map-locate-btn{pointer-events:none;visibility:hidden}.map-control-btn.active,.map-control-btn:hover{background:var(--cream);color:var(--forest-light)}.leaflet-div-icon.user-location-marker,.user-location-marker{background:transparent!important;border:0!important;overflow:visible!important}.user-location-dot{position:relative;display:block;width:72px;height:72px;overflow:visible}.user-location-dot__heading{position:absolute;inset:0;transform-origin:center center;pointer-events:none;opacity:0;transition:opacity .2s ease}.user-location-dot.has-heading .user-location-dot__heading{opacity:1}.user-location-dot__cone{display:block;width:100%;height:100%;overflow:visible}.user-location-dot__core{position:absolute;inset:24px;border-radius:50%;background:#007aff;border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.35);z-index:2}.user-location-dot__pulse{position:absolute;inset:18px;border-radius:50%;background:rgba(0,122,255,.28);animation:user-location-pulse 2.2s ease-out infinite;z-index:1}@keyframes user-location-pulse{0%{transform:scale(.55);opacity:.7}70%{transform:scale(1);opacity:0}to{transform:scale(1);opacity:0}}@media (prefers-reduced-motion:reduce){.user-location-dot__pulse{animation:none;opacity:.35}}.map-provider-trigger.filtered .map-provider-trigger-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:999px;background:var(--amber);border:1.5px solid var(--paper)}.map-provider-panel{position:absolute;right:0;bottom:calc(100% + .45rem);min-width:196px;padding:.7rem;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-lg)}.map-provider-panel-title{margin:0 0 .45rem;padding:0 .15rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.map-provider-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.map-provider-option{--provider-color:var(--forest);width:100%;display:grid;grid-template-columns:1.1rem 1.65rem 1fr;align-items:center;grid-gap:.45rem;gap:.45rem;padding:.5rem .45rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--ink);font-size:.82rem;font-weight:600;text-align:left;transition:all .15s var(--ease)}.map-provider-option:hover{background:var(--cream)}.map-provider-option.active{background:color-mix(in srgb,var(--provider-color) 10%,var(--paper));border-color:color-mix(in srgb,var(--provider-color) 24%,var(--line))}.map-provider-option-check{font-size:.72rem;font-weight:800;color:var(--provider-color);text-align:center}.map-provider-option-marker{display:flex;align-items:flex-end;justify-content:center;width:1.65rem;height:1.85rem;overflow:visible;pointer-events:none}.map-provider-option-marker svg{display:block;width:1.55rem;height:auto}.map-provider-option-label{min-width:0}.explorer{transition:transform .4s var(--ease)}.explorer-sheet-head{position:relative;flex-shrink:0;background:var(--paper);z-index:1}.explorer-sheet-head:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2rem;transform:translateY(100%);pointer-events:none;background:linear-gradient(to bottom,var(--paper),rgb(255 252 247/0));opacity:0;transition:opacity .15s var(--ease);z-index:2}.explorer-sheet-head.is-scroll-fade:after{opacity:1}@media (max-width:959px){.bottom-sheet.explorer .bottom-sheet__drag{min-height:0;padding:.55rem 0 .35rem}.explorer-header{padding:0 var(--explorer-content-pad,1rem)}.explorer-search-row{padding-top:0;padding-bottom:var(--explorer-content-pad,1rem)}.explorer-filters-wrap,.explorer-rating{padding-left:var(--explorer-content-pad,1rem);padding-right:var(--explorer-content-pad,1rem)}.explorer-filters-wrap:before{left:var(--explorer-content-pad,1rem)}.explorer-filters-wrap:after{right:var(--explorer-content-pad,1rem)}.explorer-list,.explorer-meta{padding-left:var(--explorer-content-pad,1rem);padding-right:var(--explorer-content-pad,1rem)}html.explorer-sheet-compact .bottom-sheet.explorer .bottom-sheet__scroll,html.explorer-sheet-compact .bottom-sheet.explorer .explorer-filters-wrap,html.explorer-sheet-compact .bottom-sheet.explorer .explorer-meta,html.explorer-sheet-compact .bottom-sheet.explorer .explorer-rating,html.explorer-sheet-compact .bottom-sheet.explorer .explorer-view-tabs{display:none}html.explorer-sheet-compact .bottom-sheet.explorer{justify-content:center;padding:var(--explorer-content-pad,1rem);box-sizing:border-box}html.explorer-sheet-compact .bottom-sheet.explorer .bottom-sheet__drag{position:absolute;top:.35rem;left:0;right:0;z-index:2;min-height:0;padding:0;pointer-events:none}html.explorer-sheet-compact .bottom-sheet.explorer .bottom-sheet__header{flex:0 0 auto;width:100%;padding:0;background:transparent}html.explorer-sheet-compact .bottom-sheet.explorer .explorer-header{width:100%;padding:0;gap:0}html.explorer-sheet-compact .bottom-sheet.explorer .explorer-search-row{padding:0;gap:.55rem}html.explorer-sheet-compact .bottom-sheet.explorer .profile-avatar{width:38px;height:38px}html.explorer-sheet-compact .bottom-sheet.explorer .search-input-wrap{padding-left:.75rem;padding-right:.75rem}html.explorer-sheet-compact .bottom-sheet.explorer .search-input-wrap input{padding:.45rem 0}}.explorer-header{padding:.65rem .85rem .75rem;flex-shrink:0;display:flex;flex-direction:column;gap:.55rem}.app-brand{display:flex;align-items:center;gap:.55rem;min-width:0}.app-brand-name{font-size:1.02rem;font-weight:700;letter-spacing:-.02em;color:var(--brand-deep);white-space:nowrap}.auth-brand{justify-content:center;margin-bottom:.85rem}.explorer-search-row{display:flex;align-items:center;gap:.55rem}.explorer-search-row .search-field{flex:1 1;min-width:0}.profile-avatar-wrap{position:relative;flex-shrink:0}.profile-avatar{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--cream);color:var(--ink-muted);display:grid;place-items:center;cursor:pointer;transition:background .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}.profile-avatar:hover{background:var(--forest-muted);color:var(--forest);border-color:color-mix(in srgb,var(--forest) 25%,var(--line))}.profile-avatar.is-logged-in{background:var(--forest);color:white;border-color:var(--forest)}.profile-avatar-initials{font-size:.78rem;font-weight:800;letter-spacing:.03em;line-height:1}.profile-menu{position:absolute;top:calc(100% + .4rem);left:0;z-index:30;min-width:12rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:.55rem}.profile-menu-name{margin:0;padding:.35rem .5rem .15rem;font-size:.88rem;font-weight:700;color:var(--ink);word-break:break-word}.profile-menu-email{margin:0;padding:0 .5rem .55rem;font-size:.75rem;color:var(--ink-muted);word-break:break-all}.profile-menu-action{width:100%;border:0;border-radius:var(--radius-sm);background:transparent;text-align:left;padding:.45rem .5rem;font-size:.82rem;font-weight:600;color:var(--ink-soft);cursor:pointer}.profile-menu-action:hover{background:var(--cream);color:var(--forest)}.explorer-meta{display:flex;align-items:baseline;justify-content:space-between;padding:.65rem 1rem .5rem;flex-shrink:0}.explorer-meta h2{margin:0;font-size:.95rem;font-weight:700;letter-spacing:-.02em}.explorer-count{font-size:.8rem;font-weight:600;color:var(--forest);background:var(--forest-muted);padding:.2rem .55rem;border-radius:999px}.explorer-rating{display:flex;flex-wrap:wrap;gap:.35rem;padding:0 .85rem .65rem;flex-shrink:0}.explorer-filters-wrap{position:relative;flex-shrink:0;padding:0 .85rem .65rem;touch-action:pan-x;cursor:unset;-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.explorer-filters-wrap:after,.explorer-filters-wrap:before{content:"";position:absolute;top:0;bottom:.65rem;width:2.75rem;pointer-events:none;opacity:0;transition:opacity .15s var(--ease)}.explorer-filters-wrap:before{left:.85rem;background:linear-gradient(to left,rgb(255 252 247/0),var(--paper) 78%)}.explorer-filters-wrap:after{right:.85rem;background:linear-gradient(to right,rgb(255 252 247/0),var(--paper) 78%)}.explorer-filters-wrap.is-fade-end:after,.explorer-filters-wrap.is-fade-start:before{opacity:1}.explorer-filters{display:flex;gap:.35rem;overflow-x:auto;scrollbar-width:none}.explorer-filters::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);background:var(--cream);color:var(--ink-soft);font-size:.72rem;font-weight:600;padding:.35rem .7rem;border-radius:999px;transition:all .15s var(--ease)}.filter-chip:hover{border-color:var(--forest);color:var(--forest)}.filter-chip.active{background:var(--forest);border-color:var(--forest);color:var(--paper)}.explorer-list-wrap{position:relative;display:flex;flex-direction:column}.explorer-list-wrap:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.75rem;pointer-events:none;background:linear-gradient(to bottom,rgb(255 252 247/0),var(--paper) 78%);opacity:0;transition:opacity .15s var(--ease)}.explorer-list-wrap.is-fade-end:after{opacity:1}.explorer-list{padding:0 .5rem .75rem}@media (min-width:960px){.bottom-sheet.explorer{top:var(--shell-pad);left:var(--shell-pad);right:auto;bottom:var(--shell-pad);width:var(--explorer-w);height:auto;max-height:none;border-radius:var(--radius-lg)}.bottom-sheet.explorer .bottom-sheet__drag{display:none}.explorer-header{padding-top:.85rem}}@media (max-width:959px){.app.detail-open .explorer{transform:translateY(110%);pointer-events:none}}.search-field{position:relative}.search-input-wrap{display:flex;align-items:center;gap:.5rem;background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:0 .9rem;transition:border-color .15s,box-shadow .15s}.search-input-wrap:focus-within{border-color:var(--forest);box-shadow:0 0 0 3px var(--forest-muted)}.search-input-wrap svg{color:var(--ink-muted);flex-shrink:0}.search-input-wrap input{flex:1 1;border:0;outline:none;background:transparent;font-size:.92rem;font-weight:500;padding:.7rem 0;color:var(--ink);-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-input-wrap input[type=search]::-webkit-search-cancel-button,.search-input-wrap input[type=search]::-webkit-search-decoration,.search-input-wrap input[type=search]::-webkit-search-results-button,.search-input-wrap input[type=search]::-webkit-search-results-decoration{display:none;-webkit-appearance:none}.search-input-wrap input::placeholder{color:var(--ink-muted);font-weight:400}.search-spinner{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--forest);border-radius:50%;flex-shrink:0;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.search-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:.4rem;z-index:50;max-height:240px;overflow-y:auto}.search-option{display:block;width:100%;border:0;background:transparent;text-align:left;padding:.6rem .75rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;color:var(--ink-soft)}.search-option.is-active,.search-option:hover{background:var(--forest-muted);color:var(--forest)}.place-row{display:flex;gap:.75rem;width:100%;text-align:left;border:0;background:transparent;padding:.6rem;border-radius:var(--radius);cursor:pointer;transition:background .15s var(--ease)}.place-row:hover{background:var(--cream)}.place-row.selected{background:var(--forest-muted)}.place-row-thumb{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;background:var(--cream-dark)}.place-row-thumb.placeholder{display:grid;place-items:center;font-size:1.25rem}.place-row-body{flex:1 1;min-width:0}.place-row-title{margin:0 0 .15rem;font-size:.9rem;font-weight:650;letter-spacing:-.02em}.place-row-loc,.place-row-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.place-row-loc{margin:0;font-size:.75rem;color:var(--ink-muted)}.place-row-footer{display:flex;align-items:center;gap:.4rem;margin-top:.35rem;flex-wrap:wrap}.type-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .5rem;border-radius:8px;background:color-mix(in srgb,var(--badge-color,var(--forest)) 15%,transparent);color:var(--badge-color,var(--forest))}.meta-tag{font-size:.7rem;font-weight:600;color:var(--ink-muted)}.meta-tag.rating{color:var(--amber)}.meta-tag-price{max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:normal}.meta-tag-price-free{color:var(--ink-muted)}.meta-tag-price-paid{color:#dc2626}.list-empty{padding:2rem 1rem;text-align:center;color:var(--ink-muted);font-size:.88rem;line-height:1.5}.detail-drawer{position:absolute;z-index:500;background:var(--paper);display:flex;flex-direction:column;overflow:hidden}@media (max-width:959px){.detail-title-block{min-width:0}.detail-title-block h1{margin:0;font-size:1rem;font-weight:700;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-header-meta .detail-sub{font-size:.82rem;line-height:1.35}}@media (min-width:960px){.detail-drawer{transition:transform .4s var(--ease),opacity .3s}.bottom-sheet__drag{display:none}}.detail-drawer-inner{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.detail-header{position:relative;flex-shrink:0;padding:.35rem 1rem .75rem;background:var(--paper);z-index:1}.detail-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2rem;transform:translateY(100%);pointer-events:none;background:linear-gradient(to bottom,var(--paper),rgb(255 252 247/0));opacity:0;transition:opacity .15s var(--ease);z-index:2}.detail-header.is-scroll-fade:after{opacity:1}.detail-header-row{display:flex;align-items:center;gap:.65rem}.detail-header-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.detail-title-block{flex:1 1;min-width:0}.detail-header-meta{display:flex;align-items:center;gap:.45rem;margin-top:.45rem;min-width:0}.detail-header-meta .detail-sub{margin:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-header .type-badge{flex-shrink:0}.share-toast{position:absolute;top:calc(100% + .35rem);left:1rem;padding:.4rem .75rem;border-radius:999px;background:var(--forest);color:var(--paper);font-size:.78rem;font-weight:600;pointer-events:none;z-index:2}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--cream);color:var(--ink);transition:background .15s}.icon-btn:hover{background:var(--cream-dark)}.detail-scroll{flex:1 1;overflow-y:auto;min-height:0}.detail-content{padding:.15rem 1rem 2rem}@media (min-width:960px){.detail-scroll{padding-top:0}.detail-header{padding:.75rem 1.25rem .65rem}.detail-content{padding:.5rem 1.25rem 2rem}}.detail-title-block h1{margin:0 0 .35rem;font-size:1.35rem;font-weight:700;letter-spacing:-.03em;line-height:1.2}.detail-sub{margin:0 0 1rem;font-size:.88rem;color:var(--ink-muted)}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.5rem;gap:.5rem;margin-bottom:.85rem}.detail-links{display:grid;grid-template-columns:1fr 1fr;grid-gap:.5rem;gap:.5rem;margin-bottom:1.25rem}.detail-external-link{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.7rem .85rem;border:1px solid var(--forest);border-radius:999px;background:var(--forest-muted);color:var(--forest);font-size:.82rem;font-weight:650;text-decoration:none;transition:background .15s var(--ease),color .15s var(--ease)}.detail-external-link:hover{background:var(--forest);color:var(--paper)}.detail-stat{padding:.75rem .5rem;text-align:center;background:var(--cream);border-radius:var(--radius);border:1px solid var(--line)}.detail-stat strong{display:block;font-size:1.05rem;font-weight:700;color:var(--forest);letter-spacing:-.02em}.detail-stat span{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted)}.detail-stat strong.price{font-size:.78rem;line-height:1.3;color:var(--ink)}.detail-stat strong.price-free{color:var(--ink-muted)}.detail-stat strong.price-paid{color:#dc2626}.detail-text{margin:0 0 1.5rem;font-size:.92rem;line-height:1.65;color:var(--ink-soft)}.section-title{margin:0 0 .75rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.5rem;gap:.5rem;margin-bottom:1.5rem}.photo-grid-btn{aspect-ratio:4/3;border-radius:var(--radius-sm);overflow:hidden;display:block;padding:0;border:0;cursor:zoom-in;background:var(--cream-dark)}.photo-grid img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.photo-grid-btn:hover img{transform:scale(1.05)}.photo-gallery{position:fixed;inset:0;z-index:600;display:grid;place-items:center}.photo-gallery-backdrop{position:absolute;inset:0;border:0;background:rgba(26,36,32,.88);cursor:pointer}.photo-gallery-stage{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:min(96vw,1100px);max-height:92vh;padding:3rem 3.25rem;pointer-events:none}.photo-gallery-img{max-width:100%;max-height:calc(92vh - 6rem);object-fit:contain;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);pointer-events:none}.photo-gallery-close{position:absolute;top:0;right:0;pointer-events:auto;background:var(--paper)!important}.photo-gallery-counter{position:absolute;top:.65rem;left:50%;transform:translateX(-50%);padding:.3rem .7rem;border-radius:999px;background:rgba(255,252,247,.92);font-size:.78rem;font-weight:650;color:var(--ink-soft);pointer-events:none}.photo-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);cursor:pointer;pointer-events:auto;transition:background .15s var(--ease)}.photo-gallery-nav:hover{background:var(--cream)}.photo-gallery-nav.prev{left:0}.photo-gallery-nav.next{right:0}.review-item{padding:1rem;background:var(--cream);border-radius:var(--radius-lg);border:1px solid var(--line);margin-bottom:.5rem}.review-item:last-child{margin-bottom:0}.review-top{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.review-rating{font-size:.8rem;font-weight:700;color:var(--amber)}.review-date{margin-left:auto;font-size:.72rem;color:var(--ink-muted)}.review-text{margin:0;font-size:.88rem;line-height:1.55;color:var(--ink-soft)}.review-translated-badge{font-size:.68rem;font-weight:650;color:var(--forest);background:color-mix(in srgb,var(--forest) 12%,transparent);border-radius:999px;padding:.15rem .45rem}.review-original-toggle{margin-top:.45rem;padding:0;border:0;background:none;font-size:.74rem;font-weight:650;color:var(--forest);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.review-original-toggle:hover{color:var(--ink)}.detail-empty,.detail-loading{font-size:.88rem;color:var(--ink-muted);padding:.75rem 0}.skeleton{height:4rem;border-radius:var(--radius);background:linear-gradient(90deg,var(--cream) 0,var(--cream-dark) 50%,var(--cream) 100%);background-size:200% 100%;animation:shimmer 1.2s infinite;margin-bottom:.5rem}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (min-width:960px){.detail-drawer{top:var(--shell-pad);left:var(--explorer-end);bottom:var(--shell-pad);right:auto;width:var(--drawer-w);border-radius:var(--radius-lg);border:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translateX(calc(100vw - var(--explorer-end) - 100% - var(--shell-pad)));opacity:1;pointer-events:none}.detail-drawer.open{transform:translateX(0);pointer-events:auto}.detail-drawer-inner{display:flex;flex-direction:column}}.search-here-btn{position:absolute;top:auto;bottom:var(--map-fab-bottom);left:50%;transform:translateX(-50%);z-index:450;pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:var(--map-fab-size);padding:0 1.05rem;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--forest);font-size:.88rem;font-weight:650;box-shadow:var(--shadow-md);box-sizing:border-box;opacity:var(--map-fab-opacity,1);transition:transform .2s var(--ease),box-shadow .2s var(--ease),opacity .2s var(--ease)}html.map-fabs-hidden .search-here-btn{pointer-events:none;visibility:hidden}@media (max-width:959px){.search-here-btn{position:fixed;z-index:500;touch-action:none;bottom:var(--map-fab-bottom);transition:transform .2s var(--ease),box-shadow .2s var(--ease),opacity .2s var(--ease),bottom .35s var(--ease)}html.detail-sheet-dragging .search-here-btn,html.explorer-sheet-dragging .search-here-btn,html.sheet-animating .search-here-btn{transition:transform .2s var(--ease),box-shadow .2s var(--ease)}html.detail-sheet-dragging .map-locate-btn,html.explorer-sheet-dragging .map-locate-btn,html.sheet-animating .map-locate-btn{transition:background .15s var(--ease),color .15s var(--ease)}}.search-here-btn:hover{transform:translateX(-50%) translateY(-1px);box-shadow:var(--shadow-lg)}.search-here-btn:active{transform:translateX(-50%) scale(.98)}@media (min-width:960px){:root{--map-fab-bottom:1.25rem}.search-here-btn{left:calc(var(--shell-pad) + var(--explorer-w) + (100vw - var(--shell-pad) - var(--explorer-w) - var(--shell-pad)) / 2)}.app.detail-open .search-here-btn{left:calc(var(--explorer-end) + var(--drawer-w) + (100vw - var(--explorer-end) - var(--drawer-w) - var(--shell-pad)) / 2)}}.map-veil{position:absolute;inset:0;z-index:200;background:rgba(246,243,237,.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .25s}.map-veil.visible{opacity:1}.map-veil span{background:var(--paper);padding:.6rem 1.1rem;border-radius:999px;font-size:.85rem;font-weight:600;color:var(--forest);box-shadow:var(--shadow-md);border:1px solid var(--line)}.explorer-view-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:.2rem;gap:.2rem;padding:.2rem;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius)}.explorer-view-tab{border:0;border-radius:calc(var(--radius) - 2px);background:transparent;padding:.5rem .65rem;font-size:.82rem;font-weight:600;color:var(--ink-muted);cursor:pointer;transition:background .15s var(--ease),color .15s var(--ease),box-shadow .15s var(--ease);white-space:nowrap;text-align:center}.explorer-view-tab:hover:not(:disabled){color:var(--ink-soft)}.explorer-view-tab.active{background:var(--paper);color:var(--forest);box-shadow:0 1px 2px rgba(15,23,42,.06)}.explorer-view-tab:disabled{opacity:.45;cursor:not-allowed}.favorite-btn.is-active{color:#dc2626}.auth-backdrop{position:fixed;inset:0;z-index:700;background:rgba(15,23,42,.45);display:grid;place-items:center;padding:1rem}.auth-dialog{width:min(100%,24rem);background:var(--paper);border-radius:var(--radius-xl);border:1px solid var(--line);box-shadow:var(--shadow-md);padding:1.25rem}.auth-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.auth-dialog-header h2{margin:0;font-size:1.1rem}.auth-brand .app-brand-name{font-size:1.1rem}.auth-dialog-lead{margin:.75rem 0 1rem;font-size:.85rem;color:var(--ink-muted)}.auth-form{display:grid;grid-gap:.85rem;gap:.85rem}.auth-field{display:grid;grid-gap:.35rem;gap:.35rem;font-size:.8rem;font-weight:600;color:var(--ink-soft)}.auth-field input{border:1px solid var(--line);border-radius:var(--radius);padding:.65rem .85rem;font:inherit;background:var(--cream)}.auth-error{margin:0;font-size:.8rem;color:#dc2626}.auth-submit{border:0;border-radius:999px;padding:.7rem 1.1rem;background:var(--forest);color:white;font-weight:700;cursor:pointer}.auth-submit:disabled{opacity:.6;cursor:wait}.auth-switch{margin-top:.85rem;border:0;background:transparent;color:var(--forest);font-size:.8rem;font-weight:600;cursor:pointer;text-decoration:underline}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Sans Fallback;src:local("Arial");ascent-override:94.90%;descent-override:29.66%;line-gap-override:0.00%;size-adjust:104.53%}.__className_0eeb07{font-family:DM Sans,DM Sans Fallback;font-style:normal}.__variable_0eeb07{--font-dm:"DM Sans","DM Sans Fallback"}