:root{
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#152019;background:#dfe5dd;
  --ink:#141b16;
  --muted:#6e796f;
  --cream:#f5f1e8;
  --acid:#d9ff67;
  --line:rgba(20,27,22,.12);
  --glass:rgba(250,248,242,.82);
  --shadow:0 20px 60px rgba(27,39,31,.16);
}
*{box-sizing:border-box}
html,body,.app-shell,#map{width:100%;height:100%;margin:0}
body{overflow:hidden;background:#dfe5dd}
button,input,textarea{font:inherit}
button{color:inherit}
.app-shell{position:relative;isolation:isolate}
#map{position:absolute;inset:0;background:#dfe5dd}
#map .maplibregl-canvas{filter:saturate(.82) contrast(.96) brightness(1.03)}
.map-vignette{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(18,25,20,.12),transparent 22%,transparent 68%,rgba(18,25,20,.08))}
.glass{background:var(--glass);backdrop-filter:blur(22px) saturate(1.15);-webkit-backdrop-filter:blur(22px) saturate(1.15);border:1px solid rgba(255,255,255,.72);box-shadow:var(--shadow)}
.topbar{position:absolute;z-index:12;left:18px;right:18px;top:max(16px,env(safe-area-inset-top));height:70px;border-radius:24px;padding:10px;display:grid;grid-template-columns:auto minmax(280px,640px) auto;gap:16px;align-items:center}
.brand-wrap{appearance:none;border:0;background:transparent;padding:0 8px 0 2px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}
.brand-mark{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:var(--ink);color:var(--acid);font-size:21px;font-weight:900;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.brand-copy{min-width:0}.brand{display:block;font-size:19px;line-height:1;font-weight:900;letter-spacing:.16em}.tagline{display:block;margin-top:6px;font-size:9px;letter-spacing:.16em;font-weight:800;color:#79837b;white-space:nowrap}
.searchbox{height:49px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid rgba(20,27,22,.09);border-radius:16px;background:rgba(255,255,255,.86);box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.search-icon{font-size:24px;line-height:1;color:#404b43}.searchbox input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font-size:14px;font-weight:650}.searchbox input::placeholder{color:#8b958d}.search-hint{font-size:9px;letter-spacing:.16em;font-weight:900;color:#9aa39c}
.top-actions{display:flex;gap:8px;align-items:center}
.live-badge{display:flex;align-items:center;gap:7px;min-height:40px;padding:0 11px;border-radius:999px;background:rgba(230,236,229,.9);font-size:10px;letter-spacing:.06em;font-weight:850;color:#4f5b52}
.live-badge .pulse{width:8px;height:8px;border-radius:999px;background:#d0a94f}
.live-badge.connected .pulse{background:#38b875;box-shadow:0 0 0 7px rgba(56,184,117,.13)}
.live-badge.error .pulse{background:#df5a55}
.auth-button{border:0;border-radius:14px;background:var(--ink);color:#fff;padding:12px 15px;font-size:10px;font-weight:900;letter-spacing:.1em;cursor:pointer}
.mobile-search-wrap{display:none}
.filters{position:absolute;z-index:11;top:102px;left:50%;transform:translateX(-50%);display:flex;gap:5px;max-width:calc(100vw - 36px);padding:6px;border-radius:999px;overflow-x:auto;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.filter{border:0;border-radius:999px;background:transparent;padding:9px 12px;white-space:nowrap;font-size:11px;font-weight:850;color:#657067;cursor:pointer;transition:.18s ease}
.filter span{display:inline-block;margin-right:4px;font-weight:900}
.filter:hover{background:rgba(255,255,255,.6);color:#26332a}
.filter.active{background:var(--ink);color:var(--acid);box-shadow:0 9px 24px rgba(20,27,22,.17)}
.map-hint{position:absolute;z-index:10;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:9px 13px;border-radius:999px;font-size:10px;letter-spacing:.08em;font-weight:850;color:#637067;white-space:nowrap}
.map-hint strong{font-size:16px;letter-spacing:-.02em;color:var(--ink)}
.map-hint-label{color:#909a92}
.locate-button{position:absolute;z-index:10;right:20px;bottom:20px;width:48px;height:48px;border:0;border-radius:17px;display:grid;place-items:center;cursor:pointer}
.locate-dot{width:16px;height:16px;border-radius:999px;border:4px solid var(--ink);box-shadow:0 0 0 2px rgba(20,27,22,.12)}
.maplibregl-ctrl-bottom-right{right:12px!important;bottom:76px!important}.maplibregl-ctrl-group{border-radius:14px!important;overflow:hidden;box-shadow:0 14px 36px rgba(20,27,22,.16)!important}.maplibregl-ctrl-group button{width:38px!important;height:38px!important}
.maplibregl-ctrl-attrib{font-size:9px!important;background:rgba(255,255,255,.74)!important}
.place-photo-marker{width:94px;height:76px;border:3px solid rgba(255,255,255,.98);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 14px 32px rgba(12,27,17,.25);cursor:pointer;position:relative;transform-origin:center;transition:transform .18s ease,box-shadow .18s ease}
.place-photo-marker:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 20px 42px rgba(12,27,17,.3)}
.place-photo-marker img{width:100%;height:100%;object-fit:cover}
.marker-placeholder{height:100%;display:grid;place-items:center;text-align:center;padding:9px;background:linear-gradient(135deg,#d9eadb 0%,#f5ebd8 58%,#e3e8dc 100%);font-size:10px;font-weight:900;line-height:1.2;color:#304137}
.marker-live{position:absolute;right:6px;top:6px;width:11px;height:11px;border-radius:999px;background:#a7afa8;border:2px solid white}.marker-live.fresh{background:#38b875}
.place-sheet{position:absolute;z-index:30;right:14px;top:14px;bottom:14px;width:min(470px,calc(100vw - 28px));background:rgba(248,246,239,.98);border:1px solid rgba(255,255,255,.8);border-radius:30px;box-shadow:-20px 28px 80px rgba(21,32,24,.24);overflow-y:auto;transform:translateX(calc(100% + 34px));transition:transform .32s cubic-bezier(.2,.78,.2,1)}
.place-sheet.open{transform:translateX(0)}
.sheet-grip{display:none}.sheet-close{position:absolute;z-index:4;top:15px;right:15px;width:42px;height:42px;border:0;border-radius:999px;background:rgba(19,26,21,.82);color:#fff;font-size:24px;line-height:1;cursor:pointer;backdrop-filter:blur(12px)}
.gallery{height:300px;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;background:radial-gradient(circle at 25% 20%,#e8f0d9,transparent 25%),linear-gradient(135deg,#cddfd1,#efe3ce 55%,#d9ded2);border-radius:29px 29px 0 0}
.gallery .place-photo-frame,.gallery .gallery-empty{min-width:100%;width:100%;height:100%;scroll-snap-align:start}
.place-photo-frame{position:relative;flex:0 0 100%;margin:0;overflow:hidden}
.place-photo-frame img{display:block;width:100%;height:100%;object-fit:cover}
.place-photo-frame.no-crop{background:#101512}
.place-photo-frame.no-crop img{object-fit:contain}
.place-photo-credit{position:absolute;z-index:2;left:12px;right:12px;bottom:12px;padding:7px 9px;border-radius:10px;background:rgba(12,43,59,.82);color:#F8F6EF;font-size:9px;font-weight:800;line-height:1.35;letter-spacing:-.01em;backdrop-filter:blur(8px);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.gallery-empty{display:grid;place-items:center;text-align:center;padding:40px;color:#435248;font-weight:900}
/* SCOPRI branded no-photo state */
.scopri-photo-placeholder{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  width:100%;
  min-width:100%;
  height:100%;
  padding:24px;
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 18%,rgba(93,228,208,.30),transparent 25%),
    radial-gradient(circle at 16% 82%,rgba(217,255,103,.20),transparent 26%),
    linear-gradient(145deg,#0C2B3B,#15594f 58%,#167d6e);
  color:#F8F6EF;
  text-align:left;
}
.scopri-photo-placeholder:after{
  content:"SCOPRI";
  position:absolute;
  right:12px;
  bottom:8px;
  font-size:9px;
  font-weight:950;
  letter-spacing:.13em;
  opacity:.35;
}
.scopri-photo-placeholder-mark{
  width:54px;
  height:64px;
  flex:0 0 54px;
  background:url('/scopri-kakao/scopri-pin.svg') center/contain no-repeat;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.18));
}
.scopri-photo-placeholder-copy{
  position:relative;
  z-index:1;
  min-width:0;
}
.scopri-photo-placeholder-copy strong{
  display:block;
  font-size:14px;
  line-height:1.3;
  letter-spacing:-.02em;
}
.scopri-photo-placeholder-copy small{
  display:block;
  margin-top:6px;
  color:rgba(248,246,239,.78);
  font-size:10px;
  line-height:1.45;
}
.scopri-photo-placeholder.compact{
  position:absolute;
  inset:0;
  z-index:0;
  min-width:0;
  padding:10px;
  gap:7px;
  justify-content:center;
  flex-direction:column;
  text-align:center;
}
.scopri-photo-placeholder.compact .scopri-photo-placeholder-mark{
  width:26px;
  height:31px;
  flex-basis:31px;
}
.scopri-photo-placeholder.compact .scopri-photo-placeholder-copy strong{
  font-size:9px;
}
.scopri-photo-placeholder.compact .scopri-photo-placeholder-copy small{
  display:none;
}
.scopri-photo-placeholder.compact:after{
  right:7px;
  bottom:5px;
  font-size:6px;
}
.scopri-photo-placeholder.theme-event{background:radial-gradient(circle at 80% 18%,rgba(255,214,102,.30),transparent 27%),linear-gradient(145deg,#0C2B3B,#7a4c6a 58%,#b06f72)}
.scopri-photo-placeholder.theme-nature{background:radial-gradient(circle at 78% 18%,rgba(217,255,103,.24),transparent 25%),linear-gradient(145deg,#18372f,#3f7653 58%,#7aa66c)}
.scopri-photo-placeholder.theme-history{background:radial-gradient(circle at 78% 18%,rgba(239,214,169,.24),transparent 25%),linear-gradient(145deg,#3a3027,#705844 58%,#9a7658)}
.scopri-photo-placeholder.theme-culture{background:radial-gradient(circle at 78% 18%,rgba(93,228,208,.30),transparent 25%),linear-gradient(145deg,#0C2B3B,#15594f 58%,#167d6e)}
.nearby-card .scopri-photo-placeholder{
  position:relative;
  inset:auto;
  width:52px;
  min-width:52px;
  height:52px;
  flex:0 0 52px;
  padding:5px;
  border-radius:11px;
}
.nearby-card .scopri-photo-placeholder .scopri-photo-placeholder-mark{
  width:20px;
  height:24px;
  flex-basis:24px;
}
.nearby-card .scopri-photo-placeholder .scopri-photo-placeholder-copy{
  display:none;
}
.gallery>.scopri-photo-placeholder{
  scroll-snap-align:start;
}

.sheet-content{padding:25px 25px 36px}.sheet-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#7a857d;font-size:10px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}
.status-pill{border-radius:999px;padding:7px 9px;background:#e8efe9;color:#31533f;letter-spacing:0}
#sheetTitle{margin:12px 0 8px;font-size:34px;line-height:1.06;letter-spacing:-.04em}
.summary{margin:0 0 20px;color:#617067;font-size:14px;line-height:1.7}
.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.meta-card{min-height:76px;padding:13px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.72)}.meta-card b{display:block;margin-bottom:7px;color:#8a958d;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.meta-card span{font-size:13px;font-weight:850}
.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.action-button{display:block;border-radius:16px;padding:13px 10px;background:#e9eee9;color:#29352d;text-decoration:none;text-align:center;font-size:11px;font-weight:900}.action-button.primary{background:var(--ink);color:var(--acid)}
.section{margin-top:30px;padding-top:2px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:11px}.section-head h2{margin:2px 0 0;font-size:19px;letter-spacing:-.02em}.section-head>span{font-size:9px;color:#8a958d;font-weight:800;letter-spacing:.08em}.eyebrow{font-size:8px!important;letter-spacing:.16em!important;color:#9aa49c!important;font-weight:900!important}
.offers{display:grid;gap:9px}.offer-card{padding:14px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.78)}.offer-card small{color:#7c887f;font-size:10px}.offer-title{margin:6px 0 12px;font-size:14px;font-weight:900}.offer-button{display:block;padding:12px;border-radius:13px;background:#1f6249;color:white;text-align:center;text-decoration:none;font-size:12px;font-weight:900}.offer-disclosure{display:block;margin-top:8px;color:#909991!important;font-size:9px!important;line-height:1.45}.disclosure{font-size:10px;line-height:1.5;color:#909991}
.operator-section{padding:18px;border-radius:21px;background:linear-gradient(145deg,#eaf1e9,#f4eee4)}.operator-section p{margin:7px 0 13px;color:#647168;font-size:12px;line-height:1.6}.secondary-button{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;padding:12px;font-size:11px;font-weight:900;cursor:pointer}
.review-composer{margin-bottom:12px;padding:13px;border:1px solid var(--line);border-radius:18px;background:#fff}.stars button{border:0;background:transparent;color:#ccd1cc;font-size:22px;cursor:pointer}.stars button.on{color:#dfad38}.review-composer textarea{width:100%;min-height:84px;margin:8px 0;padding:11px;border:1px solid var(--line);border-radius:13px;outline:0;resize:vertical;background:#fafbf8}.primary-button{border:0;border-radius:13px;background:var(--ink);color:#fff;padding:11px 15px;font-weight:900;cursor:pointer}.review{padding:14px 0;border-top:1px solid var(--line)}.review-top{display:flex;justify-content:space-between;color:#88938a;font-size:10px}.review p{margin:7px 0 0;font-size:13px;line-height:1.55}
.auth-popover{position:absolute;z-index:40;top:96px;right:18px;width:292px;padding:17px;border-radius:21px}.auth-popover strong{display:block;margin:6px 0 12px;font-size:14px;line-height:1.5}.oauth-button{width:100%;margin-top:7px;padding:12px;border:0;border-radius:13px;font-weight:900;cursor:pointer}.google{background:#fff;border:1px solid var(--line)}.kakao{background:#fee500;color:#191919}.subtle{background:#e9ede9}
.hidden{display:none!important}
.toast{position:absolute;z-index:60;left:50%;bottom:82px;transform:translate(-50%,18px);opacity:0;pointer-events:none;padding:11px 15px;border-radius:999px;background:#151d17;color:#fff;font-size:11px;font-weight:800;box-shadow:0 14px 36px rgba(20,27,22,.24);transition:.18s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:840px){
  .topbar{left:10px;right:10px;top:max(10px,env(safe-area-inset-top));height:60px;padding:8px;border-radius:20px;grid-template-columns:1fr auto}
  .desktop-search{display:none}.brand-mark{width:38px;height:38px;border-radius:12px}.brand{font-size:16px}.tagline{font-size:7px;margin-top:5px}
  .auth-button{padding:10px 11px}.live-badge{padding:0 9px}.live-badge span:last-child{display:none}
  .mobile-search-wrap{display:block;position:absolute;z-index:11;top:80px;left:10px;right:10px;padding:6px;border-radius:18px}
  .mobile-search-wrap .searchbox{height:44px;border-radius:13px}
  .filters{top:140px;left:10px;right:10px;transform:none;max-width:none;border-radius:18px;padding:5px;justify-content:flex-start}
  .filter{padding:8px 10px}
  .map-hint{bottom:max(16px,env(safe-area-inset-bottom));padding:8px 11px}.map-hint-label{display:none}
  .locate-button{right:10px;bottom:max(14px,env(safe-area-inset-bottom));width:46px;height:46px;border-radius:15px}
  .maplibregl-ctrl-bottom-right{right:8px!important;bottom:70px!important}
  .place-sheet{top:auto;right:0;left:0;bottom:0;width:100%;height:min(82vh,760px);border-radius:30px 30px 0 0;transform:translateY(105%);transition:transform .3s cubic-bezier(.2,.78,.2,1)}
  .place-sheet.open{transform:translateY(0)}.sheet-grip{display:block;position:sticky;top:8px;z-index:5;width:42px;height:5px;border-radius:999px;background:rgba(20,27,22,.24);margin:8px auto -13px}
  .gallery{height:245px;border-radius:29px 29px 0 0}.sheet-content{padding:21px 19px 30px}#sheetTitle{font-size:29px}.summary{font-size:13px}.meta-card{min-height:72px}
  .auth-popover{top:78px;right:10px}
}
@media(max-width:430px){
  .brand-copy .tagline{display:none}.brand-mark{width:36px;height:36px}.topbar{grid-template-columns:1fr auto}.live-badge{min-height:36px}.auth-button{font-size:9px}
  .filters{overflow-x:auto}.filter{font-size:10px}.action-grid{grid-template-columns:1fr}.map-hint{left:12px;transform:none}.map-hint span:last-child{display:none}
}

/* Always-visible map safety layer: local JS + raster tiles. */
.fallback-map{position:absolute;inset:0;z-index:0;overflow:hidden;background:#dfe9e4;touch-action:none;cursor:grab;opacity:1;transition:opacity .3s ease}
.fallback-map:active{cursor:grabbing}.fallback-map.is-hidden{opacity:0;pointer-events:none}
.fallback-tiles,.fallback-markers{position:absolute;inset:0}.fallback-tile{position:absolute;width:256px;height:256px;max-width:none;user-select:none;-webkit-user-drag:none}
.fallback-markers{z-index:3;pointer-events:none}
.fallback-cluster,.fallback-place{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:0;cursor:pointer}
.fallback-cluster{min-width:38px;height:38px;padding:0 10px;border-radius:999px;background:rgba(20,27,22,.94);color:#d9ff67;border:3px solid rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(20,27,22,.25);font-size:10px;font-weight:950;letter-spacing:-.02em}
.fallback-place{display:flex;align-items:center;gap:6px;max-width:150px;padding:6px 9px 6px 6px;border-radius:999px;background:rgba(250,248,242,.94);border:2px solid #fff;box-shadow:0 8px 24px rgba(20,27,22,.2);color:#1b2720;font-size:10px;font-weight:900;white-space:nowrap}
.fallback-place-dot{width:12px;height:12px;border-radius:999px;background:#2c7555;box-shadow:inset 0 0 0 3px #d9ff67}
.fallback-place-name{overflow:hidden;text-overflow:ellipsis}
.fallback-map-badge{position:absolute;z-index:5;left:18px;bottom:20px;border-radius:999px;padding:8px 11px;font-size:9px;font-weight:900;letter-spacing:.08em;color:#68746b}.fallback-map-badge .ok{color:#28583f}
.fallback-attribution{position:absolute;z-index:5;right:4px;bottom:2px;padding:2px 5px;border-radius:4px;background:rgba(255,255,255,.76);color:#4d5750;font-size:8px}
#map{z-index:1;background:transparent}
.filter{display:flex;align-items:center;gap:7px;padding:6px 11px 6px 7px}
.filter img{width:28px;height:28px;display:block;border-radius:10px;box-shadow:0 5px 12px rgba(29,42,33,.13);flex:0 0 auto;transition:transform .18s ease,box-shadow .18s ease}
.filter:hover img{transform:translateY(-1px) scale(1.04);box-shadow:0 8px 18px rgba(29,42,33,.18)}
.filter.active img{box-shadow:0 7px 18px rgba(217,255,103,.15)}
@media(max-width:840px){
  .fallback-map-badge{left:10px;bottom:62px}
  .filter{padding:5px 9px 5px 5px;gap:5px}
  .filter img{width:26px;height:26px;border-radius:9px}
}

.legacy-map-disabled{display:none!important}
#mapFallback{z-index:1!important;opacity:1!important;pointer-events:auto!important}
.map-vignette{z-index:2}

/* UX pass: larger type, no artificial silhouette flashes, Korea-only viewport. */
.brand{font-size:22px}
.tagline{font-size:11px}
.searchbox input{font-size:16px}
.search-hint{font-size:10px}
.live-badge{font-size:12px}
.auth-button{font-size:12px}
.filter{font-size:14px;font-weight:900}
.map-hint{font-size:12px}
.map-hint strong{font-size:18px}
.fallback-map-badge{font-size:11px}
.fallback-tile-layer{position:absolute;inset:0}
.korea-boundary-mask{position:absolute;z-index:2;pointer-events:none;background:linear-gradient(135deg,rgba(222,234,228,.96),rgba(208,223,216,.96));backdrop-filter:blur(5px)}
.korea-boundary-mask-left{left:0;top:0;bottom:0}
.korea-boundary-mask-right{right:0;top:0;bottom:0}
.korea-boundary-mask-top{top:0;left:0;right:0}
.korea-boundary-mask-bottom{bottom:0;left:0;right:0}
.fallback-markers{z-index:4}
.fallback-cluster{font-size:12px;min-width:42px;height:42px}
.fallback-place{font-size:12px;max-width:180px}
.fallback-photo-place{position:absolute;transform:translate(-50%,-88%);pointer-events:auto;width:118px;height:88px;padding:0;border:3px solid #fff;border-radius:18px;overflow:hidden;background:#dfe8df;box-shadow:0 14px 34px rgba(20,27,22,.26);cursor:pointer}
.fallback-photo-place img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fallback-photo-shade{position:absolute;inset:38% 0 0;background:linear-gradient(transparent,rgba(9,16,12,.78))}
.fallback-photo-name{position:absolute;left:9px;right:9px;bottom:8px;color:#fff;font-size:11px;line-height:1.15;font-weight:950;text-align:left;text-shadow:0 1px 5px rgba(0,0,0,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#sheetTitle{font-size:38px}
.summary{font-size:16px}
.meta-card b{font-size:11px}
.meta-card span{font-size:15px}
.action-button{font-size:13px}
.section-head h2{font-size:22px}
.section-head>span{font-size:11px}
.operator-section p{font-size:14px}
.secondary-button,.primary-button,.offer-button{font-size:13px}
.review p{font-size:15px}
@media(max-width:840px){
  .brand{font-size:18px}
  .tagline{font-size:8px}
  .searchbox input{font-size:15px}
  .filter{font-size:12px}
  .fallback-photo-place{width:106px;height:80px}
  #sheetTitle{font-size:32px}
  .summary{font-size:15px}
}

/* Discovery-first map: intentional desktop edge rails instead of blank gutters. */
.korea-boundary-mask{background:
  radial-gradient(circle at 50% 22%,rgba(255,255,255,.44),transparent 26%),
  linear-gradient(160deg,rgba(218,233,226,.96),rgba(196,216,208,.96));
}
.korea-boundary-mask-left:after,.korea-boundary-mask-right:after{
  content:"";position:absolute;inset:0;opacity:.28;pointer-events:none;
  background-image:repeating-radial-gradient(circle at 50% 20%,transparent 0 18px,rgba(67,112,91,.18) 19px 20px,transparent 21px 38px);
}
.discovery-rail{position:absolute;z-index:7;top:150px;bottom:86px;width:min(230px,17vw);display:none;flex-direction:column;gap:9px;padding:9px;overflow:hidden;pointer-events:auto}
.discovery-rail.show{display:flex}
.discovery-rail-left{left:16px}.discovery-rail-right{right:16px}
.rail-title{padding:4px 4px 7px}.rail-title span{display:block;font-size:9px;letter-spacing:.18em;font-weight:900;color:#76827a}.rail-title strong{display:block;margin-top:3px;font-size:18px;letter-spacing:-.03em}
.rail-card{position:relative;height:110px;overflow:hidden;border:0;border-radius:19px;padding:0;background:#cad8cf;box-shadow:0 12px 32px rgba(20,27,22,.16);cursor:pointer;text-align:left}
.rail-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .24s ease}.rail-card:hover img{transform:scale(1.04)}
.rail-card:after{content:"";position:absolute;inset:34% 0 0;background:linear-gradient(transparent,rgba(10,17,13,.82))}
.rail-card-info{position:absolute;z-index:2;left:11px;right:11px;bottom:9px;color:#fff}.rail-card-info strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-card-info small{display:block;margin-top:3px;font-size:9px;opacity:.8}
.zoom-controls{position:absolute;z-index:11;right:20px;bottom:78px;display:grid;overflow:hidden;border-radius:16px;padding:3px}
.zoom-controls button{width:42px;height:38px;border:0;background:transparent;font-size:21px;font-weight:700;cursor:pointer}.zoom-controls button+button{border-top:1px solid rgba(20,27,22,.08)}.zoom-controls button:hover{background:rgba(255,255,255,.7)}
.nearby-cards{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.nearby-card{display:flex;align-items:center;gap:9px;min-width:0;padding:7px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.8);cursor:pointer;text-align:left}
.nearby-card img,.nearby-placeholder{width:52px;height:52px;flex:0 0 52px;border-radius:11px;object-fit:cover}
.nearby-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#e1ebe3,#f0e8d8);font-size:9px;font-weight:950;color:#55645a}
.nearby-body{min-width:0}.nearby-body strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nearby-body small{display:block;margin-top:4px;color:#7d8980;font-size:10px}
@media(max-width:1119px){.discovery-rail{display:none!important}}
@media(max-width:840px){
  .zoom-controls{right:10px;bottom:68px}.zoom-controls button{width:38px;height:34px}
  .nearby-cards{grid-template-columns:1fr}
}

/* Smart density clustering and spider expansion */
.smart-cluster{background:#152019;color:#d9ff67;box-shadow:0 12px 32px rgba(13,25,18,.28),0 0 0 5px rgba(217,255,103,.09)}
.smart-cluster:hover{transform:translate(-50%,-50%) scale(1.08)}
.spider-hub{position:absolute;transform:translate(-50%,-50%);z-index:12;width:38px;height:38px;border:3px solid #fff;border-radius:999px;background:#152019;color:#d9ff67;font-size:11px;font-weight:950;box-shadow:0 10px 28px rgba(18,31,22,.26);cursor:pointer;pointer-events:auto}
.spider-place{z-index:11!important;animation:scopriSpiderIn .2s cubic-bezier(.2,.8,.2,1) both}
.fallback-place.spider-place{transform:translate(-50%,-50%)}
.fallback-photo-place.spider-place{transform:translate(-50%,-50%)}
@keyframes scopriSpiderIn{from{opacity:0;scale:.72}to{opacity:1;scale:1}}
@media(max-width:840px){
  .spider-hub{width:34px;height:34px}
  .fallback-photo-place.spider-place{width:92px;height:68px}
  .fallback-place.spider-place{max-width:130px;font-size:10px}
}

/* Rendering performance v11 */
.fallback-tiles,.fallback-markers{
  will-change:transform;
  transform:translateZ(0);
  backface-visibility:hidden;
}
.fallback-tile-layer{
  position:absolute;
  inset:0;
  opacity:1;
  will-change:opacity,transform;
  transform:translateZ(0);
}
.fallback-tile-layer.tile-buffer{opacity:0;transition:opacity .14s linear}
.fallback-tile-layer.tile-buffer.is-ready{opacity:1}
.fallback-tile-layer.is-retiring{opacity:0;pointer-events:none}
.fallback-tile{
  backface-visibility:hidden;
  transform-origin:0 0;
}
.fallback-map.is-dragging{cursor:grabbing}
.fallback-map.is-dragging .fallback-tile-layer,
.fallback-map.is-dragging .fallback-markers,
.fallback-map.is-zooming .fallback-tile-layer,
.fallback-map.is-zooming .fallback-markers{
  transition:none!important;
}

/* Zero-flicker swap v12 */
.fallback-tile-layer.tile-staging{
  opacity:0;
  pointer-events:none;
  transform:none!important;
}

/* Calm-density Korean UX v13 */
.fallback-cluster.quiet-cluster{
  min-width:0!important;
  width:auto!important;
  height:34px!important;
  padding:0 12px!important;
  border-radius:11px!important;
  border:1px solid rgba(255,255,255,.88)!important;
  background:rgba(22,31,25,.88)!important;
  color:#f4f6ef!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:-.01em!important;
  box-shadow:0 7px 18px rgba(18,29,22,.18)!important;
  backdrop-filter:blur(10px);
}
.fallback-cluster.quiet-cluster:hover{
  transform:translate(-50%,-50%) scale(1.035)!important;
  background:#18241c!important;
}
.smart-cluster{
  box-shadow:0 7px 18px rgba(18,29,22,.18)!important;
}
.spider-hub{
  width:auto!important;
  min-width:42px!important;
  height:32px!important;
  padding:0 10px!important;
  border-radius:10px!important;
  border:1px solid rgba(255,255,255,.9)!important;
  background:#18231c!important;
  color:#f4f7ee!important;
  font-size:10px!important;
  box-shadow:0 7px 18px rgba(18,29,22,.18)!important;
}
.fallback-place{
  border-radius:12px!important;
  box-shadow:0 5px 15px rgba(20,27,22,.13)!important;
}
.fallback-photo-place{
  border-radius:14px!important;
  box-shadow:0 7px 18px rgba(20,27,22,.16)!important;
}
.rail-title span,.eyebrow,.search-hint{
  letter-spacing:.08em!important;
}
@media(max-width:840px){
  .fallback-cluster.quiet-cluster{
    height:32px!important;
    padding:0 10px!important;
    border-radius:10px!important;
    font-size:10px!important;
  }
}

#map{display:block!important;position:absolute!important;inset:0!important;z-index:1!important;background:#dfe9e4!important}
.fallback-map,.legacy-map-disabled{display:none!important}
.kakao-key-wait{position:absolute;inset:0;display:grid;place-content:center;gap:8px;text-align:center;background:#e4eee8;color:#25332a}
.kakao-key-wait strong{font-size:22px}.kakao-key-wait span{font-size:13px;color:#657168}
.kakao-place-marker,.kakao-count-marker,.kakao-photo-marker{cursor:pointer}
.kakao-count-marker{height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.88);border-radius:11px;background:rgba(22,31,25,.9);color:#fff;font-size:11px;font-weight:900;box-shadow:0 7px 18px rgba(18,29,22,.18)}
.kakao-place-marker{max-width:150px;padding:7px 9px;border:1px solid rgba(255,255,255,.9);border-radius:11px;background:rgba(248,248,242,.96);font-size:10px;font-weight:900;box-shadow:0 7px 18px rgba(18,29,22,.18);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kakao-photo-marker{position:relative;width:104px;height:76px;padding:0;border:2px solid #fff;border-radius:13px;overflow:hidden;background:#dfe8e2;box-shadow:0 8px 20px rgba(20,27,22,.18)}
.kakao-photo-marker img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.kakao-photo-marker span{position:absolute;left:7px;right:7px;bottom:6px;color:#fff;font-size:10px;font-weight:900;text-align:left;z-index:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 5px rgba(0,0,0,.6)}.kakao-photo-marker:after{content:"";position:absolute;inset:38% 0 0;background:linear-gradient(transparent,rgba(8,15,11,.8));z-index:1}

/* SCOPRI branded Kakao pins v4 */
.kakao-count-marker{
  background:#0C2B3B!important;
  color:#F8F6EF!important;
  border:2px solid #5DE4D0!important;
  box-shadow:0 8px 22px rgba(12,43,59,.28)!important;
  font-weight:900!important;
}
.kakao-count-marker:hover{
  transform:translateY(-1px) scale(1.035);
}
.kakao-photo-marker{
  border:3px solid #F8F6EF!important;
  box-shadow:0 0 0 2px #19B7A2,0 10px 26px rgba(12,43,59,.3)!important;
}
.kakao-photo-marker span{
  font-size:11px!important;
  font-weight:900!important;
}

/* SCOPRI revenue layer v1 */
.scopri-revenue-offer{
  border:1px solid rgba(26,183,162,.22)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(246,251,248,.98))!important;
}
.scopri-revenue-offer .offer-button{
  background:#0C2B3B!important;
  color:#F8F6EF!important;
}
.scopri-revenue-offer .offer-button:hover{transform:translateY(-1px)}

/* SCOPRI desktop ad / affiliate rails v1 */
.side-ad-rail{
  display:none;
}
@media (min-width:1600px){
  .side-ad-rail{
    display:flex;
    position:fixed;
    z-index:12;
    top:168px;
    width:176px;
    max-height:calc(100vh - 210px);
    flex-direction:column;
    gap:12px;
    pointer-events:auto;
  }
  .side-ad-left{left:18px}
  .side-ad-right{right:18px}
  .side-ad-label{
    padding:0 4px;
    font-size:9px;
    font-weight:900;
    letter-spacing:.12em;
    color:rgba(28,45,35,.58);
  }
  .side-offer-card{
    display:block;
    overflow:hidden;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.92);
    background:rgba(250,250,246,.94);
    box-shadow:0 12px 30px rgba(17,33,24,.15);
    backdrop-filter:blur(12px);
    text-decoration:none;
    color:#183027;
    transition:transform .16s ease,box-shadow .16s ease;
  }
  .side-offer-card:hover{
    transform:translateY(-2px);
    box-shadow:0 15px 36px rgba(17,33,24,.2);
  }
  .side-offer-media{
    position:relative;
    width:100%;
    aspect-ratio:1.28/1;
    display:grid;
    place-items:center;
    background:#dce9e3;
    color:#0C2B3B;
    font-size:11px;
    font-weight:950;
    overflow:hidden;
  }
  .side-offer-media img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .side-offer-body{
    display:flex;
    flex-direction:column;
    gap:5px;
    padding:10px 11px 11px;
  }
  .side-offer-badge{
    width:max-content;
    padding:3px 6px;
    border-radius:999px;
    background:rgba(25,183,162,.11);
    color:#167d6e;
    font-size:8px;
    font-weight:900;
  }
  .side-offer-body strong{
    font-size:12px;
    line-height:1.28;
  }
  .side-offer-body small{
    display:-webkit-box;
    overflow:hidden;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    min-height:30px;
    color:#627168;
    font-size:9px;
    line-height:1.45;
  }
  .side-offer-cta{
    margin-top:2px;
    color:#0C2B3B;
    font-size:9px;
    font-weight:900;
  }
}
@media (min-width:1600px) and (max-height:760px){
  .side-ad-rail .side-offer-card:nth-of-type(n+3){display:none}
}

/* SCOPRI real display ad v1 */
@media (min-width:1600px){
  .side-ad-right{
    width:300px!important;
  }
  .side-display-ad{
    width:300px;
    overflow:hidden;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.9);
    background:rgba(255,255,255,.92);
    box-shadow:0 12px 30px rgba(17,33,24,.14);
  }
  .side-display-ad-label{
    height:22px;
    padding:0 8px;
    display:flex;
    align-items:center;
    font-size:8px;
    font-weight:800;
    letter-spacing:.08em;
    color:#7a857e;
  }
  .side-display-ad-frame{
    display:block;
    width:300px;
    height:250px;
    border:0;
    background:transparent;
  }
}

/* SCOPRI hidden-gem discovery rails v1 */
.side-hidden-gem{
  width:100%;
  padding:0;
  text-align:left;
  appearance:none;
  border:0;
}
.side-hidden-gem .side-offer-badge{
  background:rgba(12,43,59,.08);
  color:#0C2B3B;
}
.side-hidden-gem .side-offer-cta{
  color:#167d6e;
}
.side-discovery-label{
  margin-top:4px;
}

/* SCOPRI rail recovery + navigation v13 */
.side-rail-loading{
  padding:12px 10px;
  border-radius:14px;
  background:rgba(250,250,246,.88);
  color:#66736b;
  font-size:10px;
  line-height:1.5;
  box-shadow:0 8px 22px rgba(17,33,24,.08);
}
.nav-provider-button{
  appearance:none;
  border:0;
  font:inherit;
  text-align:center;
  cursor:pointer;
}
@media (min-width:1600px) and (max-width:1535px){
  .side-ad-left{
    width:156px!important;
    left:10px!important;
  }
  .side-ad-right{
    right:10px!important;
  }
  .side-offer-body{padding:8px 9px 9px!important}
}


/* SCOPRI location-first discovery v16 */
.nearby-dock{
  position:absolute;
  z-index:10;
  left:50%;
  bottom:74px;
  transform:translateX(-50%);
  width:min(860px,calc(100vw - 180px));
  padding:10px;
  border-radius:22px;
  pointer-events:auto;
}
.nearby-dock-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:2px 4px 9px;
}
.nearby-dock-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.nearby-dock-copy strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:15px;
  line-height:1.2;
  letter-spacing:-.02em;
}
.nearby-dock-locate{
  flex:0 0 auto;
  border:0;
  border-radius:999px;
  padding:8px 11px;
  background:#0C2B3B;
  color:#F8F6EF;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.nearby-dock-locate:disabled{opacity:.55;cursor:wait}
.now-controls{
  display:flex;
  align-items:center;
  gap:6px;
  padding:0 4px 9px;
  overflow-x:auto;
  scrollbar-width:none;
}
.now-controls::-webkit-scrollbar{display:none}
.now-controls-label{
  flex:0 0 auto;
  margin-right:2px;
  color:#66736b;
  font-size:9px;
  font-weight:950;
  letter-spacing:.08em;
}
.now-chip{
  flex:0 0 auto;
  border:1px solid rgba(12,43,59,.12);
  border-radius:999px;
  padding:7px 11px;
  background:rgba(255,255,255,.76);
  color:#31423a;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.now-chip.active{
  border-color:#0C2B3B;
  background:#0C2B3B;
  color:#D9FF67;
  box-shadow:0 5px 14px rgba(12,43,59,.18);
}
.now-share{
  flex:0 0 auto;
  margin-left:auto;
  border:0;
  border-radius:999px;
  padding:7px 11px;
  background:#167d6e;
  color:#fff;
  font-size:10px;
  font-weight:950;
  cursor:pointer;
}
.now-share:disabled{
  opacity:.38;
  cursor:default;
}
.now-result-card{outline:2px solid rgba(217,255,103,.45)}
.nearby-dock-cards{
  display:flex;
  gap:8px;
  min-height:92px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
}
.nearby-dock-cards::-webkit-scrollbar{display:none}
.nearby-dock-message{
  width:100%;
  min-height:92px;
  display:flex;
  align-items:center;
  padding:13px 15px;
  border-radius:16px;
  background:rgba(255,255,255,.72);
  color:#66736b;
  font-size:11px;
  line-height:1.55;
}
.nearby-dock-card{
  position:relative;
  flex:0 0 154px;
  height:102px;
  overflow:hidden;
  padding:0;
  border:0;
  border-radius:16px;
  background:#d9e5df;
  box-shadow:0 8px 22px rgba(17,33,24,.14);
  cursor:pointer;
  scroll-snap-align:start;
  text-align:left;
}
.nearby-dock-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.001);
  transition:transform .2s ease;
}
.nearby-dock-card:hover img{transform:scale(1.04)}
.nearby-dock-card.image-failed img{display:none}
.nearby-dock-card.image-failed{
  background:linear-gradient(145deg,#dfeae4,#efe9db);
}
.nearby-dock-shade{
  position:absolute;
  inset:28% 0 0;
  background:linear-gradient(transparent,rgba(8,19,14,.82));
}
.nearby-dock-body{
  position:absolute;
  z-index:2;
  left:10px;
  right:10px;
  bottom:9px;
  color:#fff;
  text-shadow:0 1px 4px rgba(0,0,0,.45);
}
.nearby-dock-body strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  line-height:1.25;
}
.nearby-dock-body small{
  display:block;
  margin-top:4px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:9px;
  opacity:.86;
}
.scopri-user-location{
  position:relative;
  width:22px;
  height:22px;
  border:4px solid #fff;
  border-radius:999px;
  background:#19B7A2;
  box-shadow:0 3px 14px rgba(12,43,59,.34);
}
.scopri-user-location:after{
  content:"";
  position:absolute;
  inset:-10px;
  border:2px solid rgba(25,183,162,.32);
  border-radius:999px;
  animation:scopriUserPulse 1.8s ease-out infinite;
}
@keyframes scopriUserPulse{
  0%{transform:scale(.72);opacity:.9}
  100%{transform:scale(1.28);opacity:0}
}
.locate-button.active .locate-dot{
  border-color:#19B7A2;
  box-shadow:0 0 0 3px rgba(25,183,162,.15);
}

@media(max-width:840px){
  .nearby-dock{
    left:10px;
    right:10px;
    bottom:max(70px,calc(env(safe-area-inset-bottom) + 62px));
    transform:none;
    width:auto;
    padding:8px;
    border-radius:18px;
  }
  .nearby-dock-head{padding:1px 3px 7px}
  .nearby-dock-copy strong{font-size:13px}
  .nearby-dock-locate{padding:7px 10px;font-size:9px}
  .nearby-dock-cards{min-height:84px;gap:7px}
  .nearby-dock-message{min-height:84px;padding:11px 12px;font-size:10px}
  .nearby-dock-card{flex-basis:132px;height:88px;border-radius:14px}
  .nearby-dock-body{left:8px;right:8px;bottom:7px}
  .nearby-dock-body strong{font-size:11px}
  .nearby-dock:not(.hidden) ~ .zoom-controls{bottom:198px}
}
@media(max-width:430px){
  .nearby-dock-card{flex-basis:124px}
  .nearby-dock-copy strong{font-size:12px}
}


/* SCOPRI event lifecycle v18 */
.nearby-event-card{
  background:linear-gradient(145deg,#0C2B3B,#167d6e);
}
.nearby-event-card.image-failed{
  background:
    radial-gradient(circle at 82% 18%,rgba(93,228,208,.32),transparent 27%),
    linear-gradient(145deg,#0C2B3B,#15594f);
}
.nearby-event-badge{
  position:absolute;
  z-index:3;
  left:9px;
  top:8px;
  max-width:54%;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(248,246,239,.94);
  color:#0C2B3B;
  font-size:8px;
  font-weight:950;
  letter-spacing:.02em;
  box-shadow:0 4px 12px rgba(8,20,15,.18);
}
.event-photo-credit{
  position:absolute;
  z-index:4;
  right:7px;
  top:8px;
  max-width:41%;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  padding:3px 5px;
  border-radius:999px;
  background:rgba(7,17,14,.72);
  color:#f8f6ef;
  font-size:7px;
  font-weight:800;
  line-height:1.15;
  text-decoration:none;
  box-shadow:0 3px 10px rgba(0,0,0,.18);
}
.event-photo-credit:hover{text-decoration:underline}
.nearby-event-card:focus-visible{
  outline:3px solid rgba(93,228,208,.95);
  outline-offset:2px;
}


/* SCOPRI PULSE sponsored campaign v1 */
.pulse-overlay{
  position:fixed;
  z-index:90;
  inset:0;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(9,17,13,.42);
  backdrop-filter:blur(8px);
}
.pulse-card{
  position:relative;
  width:min(430px,calc(100vw - 28px));
  overflow:hidden;
  border:1px solid rgba(255,255,255,.8);
  border-radius:26px;
  background:#F8F6EF;
  box-shadow:0 28px 90px rgba(12,43,59,.34);
}
.pulse-close{
  position:absolute;
  z-index:3;
  top:11px;
  right:11px;
  width:38px;
  height:38px;
  border:0;
  border-radius:999px;
  background:rgba(12,43,59,.84);
  color:#fff;
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.pulse-media{
  height:210px;
  overflow:hidden;
  background:#dce5df;
}
.pulse-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.pulse-content{padding:18px 18px 16px}
.pulse-badge{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:5px 8px;
  border-radius:999px;
  background:#0C2B3B;
  color:#D9FF67;
  font-size:9px;
  font-weight:950;
  letter-spacing:.03em;
}
.pulse-content h2{
  margin:11px 0 7px;
  color:#17251d;
  font-size:24px;
  line-height:1.08;
  letter-spacing:-.035em;
}
.pulse-content p{
  margin:0;
  color:#5d6b62;
  font-size:13px;
  line-height:1.6;
}
.pulse-meta{
  margin-top:10px;
  color:#7a857d;
  font-size:10px;
  font-weight:800;
}
.pulse-actions{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:8px;
  margin-top:15px;
}
.pulse-secondary,.pulse-primary{
  min-height:44px;
  border-radius:14px;
  padding:12px 10px;
  font-size:11px;
  font-weight:950;
  text-align:center;
  cursor:pointer;
}
.pulse-secondary{
  border:1px solid rgba(12,43,59,.14);
  background:#fff;
  color:#26362d;
}
.pulse-primary{
  display:grid;
  place-items:center;
  border:0;
  background:#167d6e;
  color:#fff;
  text-decoration:none;
}
.pulse-disclosure{
  display:block;
  margin-top:9px;
  color:#909991;
  font-size:9px;
  line-height:1.4;
}
@media(max-width:560px){
  .pulse-overlay{padding:12px}
  .pulse-card{border-radius:22px}
  .pulse-media{height:190px}
  .pulse-content h2{font-size:21px}
  .pulse-actions{grid-template-columns:1fr}
}


/* SCOPRI mobile map-first compact v77 */
.locate-label{display:none}
@media(max-width:840px){
  .nearby-dock{
    bottom:max(58px,calc(env(safe-area-inset-bottom) + 52px));
    padding:6px;
    border-radius:16px;
  }
  .nearby-dock-head{
    min-height:28px;
    padding:0 3px 4px;
    gap:8px;
  }
  .nearby-dock-copy{gap:1px}
  .nearby-dock-copy strong{
    font-size:12px;
    line-height:1.15;
  }
  .nearby-dock-locate{display:none}
  .now-controls{
    gap:4px;
    padding:0 3px 5px;
  }
  .now-controls-label{
    margin-right:1px;
    font-size:8px;
  }
  .now-chip,.now-share{
    padding:5px 9px;
    font-size:9px;
  }
  .nearby-dock-cards{
    min-height:48px;
    max-height:68px;
    gap:6px;
  }
  .nearby-dock-message{
    min-height:48px;
    padding:8px 10px;
    border-radius:12px;
    font-size:9px;
    line-height:1.35;
  }
  .nearby-dock-card{
    flex-basis:112px;
    height:64px;
    border-radius:12px;
  }
  .nearby-dock-body{
    left:7px;
    right:7px;
    bottom:6px;
  }
  .nearby-dock-body strong{font-size:10px}
  .nearby-dock-body small{
    margin-top:2px;
    font-size:8px;
  }
  .nearby-dock:not(.hidden) ~ .zoom-controls{
    bottom:248px;
  }
  .nearby-dock:not(.hidden) ~ .locate-button{
    bottom:196px;
  }
  .locate-button{
    width:auto;
    min-width:76px;
    height:42px;
    padding:0 11px;
    border-radius:21px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
  }
  .locate-dot{
    width:13px;
    height:13px;
    border-width:3px;
  }
  .locate-label{
    display:block;
    font-size:10px;
    font-weight:900;
    letter-spacing:-.02em;
    white-space:nowrap;
  }
}
@media(max-width:430px){
  .nearby-dock .eyebrow{display:none!important}
  .nearby-dock-head{min-height:24px}
  .nearby-dock-copy strong{font-size:11px}
  .nearby-dock-card{flex-basis:106px;height:62px}
}


/* SCOPRI place reason v79 */
.place-reason{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:1;
  margin-top:3px;
  color:rgba(255,255,255,.92);
  font-size:8px;
  font-weight:750;
  line-height:1.25;
  text-shadow:0 1px 4px rgba(0,0,0,.5);
}
@media(max-width:840px){
  .nearby-dock-cards{min-height:60px;max-height:82px}
  .nearby-dock-card{height:76px}
  .nearby-dock-body{bottom:6px}
  .nearby-dock-body strong{font-size:10px}
  .nearby-dock-body small{margin-top:2px;font-size:7.5px}
  .place-reason{margin-top:2px;font-size:7.5px}
}
@media(max-width:430px){
  .nearby-dock-card{height:74px}
}


/* SCOPRI mobile product polish v81 */
@media(max-width:840px){
  .glass{
    background:rgba(250,248,242,.78);
    backdrop-filter:blur(16px) saturate(1.08);
    -webkit-backdrop-filter:blur(16px) saturate(1.08);
    box-shadow:0 8px 26px rgba(21,32,24,.11);
  }
  .topbar{
    left:8px;right:8px;
    top:max(8px,env(safe-area-inset-top));
    height:50px;
    padding:6px 7px;
    border-radius:16px;
    gap:8px;
  }
  .brand-wrap{gap:8px;padding:0 4px 0 0}
  .brand-mark{
    width:34px;height:34px;
    border-radius:10px;
    font-size:17px;
  }
  .brand{font-size:15px;letter-spacing:.14em}
  .tagline{font-size:7px;margin-top:3px}
  .live-badge{
    min-width:30px;
    min-height:30px;
    padding:0 8px;
    background:rgba(228,236,229,.76);
  }
  .live-badge .pulse{width:7px;height:7px}
  .mobile-search-wrap{
    top:66px;
    left:8px;right:8px;
    padding:4px;
    border-radius:14px;
  }
  .mobile-search-wrap .searchbox{
    height:38px;
    padding:0 10px;
    border-radius:11px;
  }
  .search-icon{font-size:20px}
  .searchbox input{font-size:13px}
  .filters{
    top:112px;
    left:8px;right:8px;
    padding:4px;
    gap:2px;
    border-radius:14px;
    max-width:none;
  }
  .filter{
    padding:4px 8px 4px 4px;
    gap:4px;
    font-size:10px;
  }
  .filter img{
    width:22px;
    height:22px;
    border-radius:7px;
    box-shadow:none;
  }
  .nearby-dock{
    left:8px;right:8px;
    bottom:max(50px,calc(env(safe-area-inset-bottom) + 44px));
    width:auto;
    padding:6px;
    border-radius:15px;
    background:rgba(250,248,242,.84);
    box-shadow:0 10px 30px rgba(21,32,24,.13);
  }
  .nearby-dock-head{
    min-height:22px;
    padding:0 3px 4px;
    gap:6px;
  }
  .nearby-dock-copy{gap:0}
  .nearby-dock-copy strong{
    font-size:11px;
    line-height:1.15;
  }
  .nearby-dock .eyebrow{display:none!important}
  .nearby-dock-locate{display:none}
  .now-controls{
    gap:4px;
    padding:0 2px 4px;
  }
  .now-controls-label{
    margin-right:1px;
    font-size:7.5px;
    letter-spacing:.07em;
  }
  .now-chip,.now-share{
    padding:5px 8px;
    font-size:8.5px;
  }
  .nearby-dock-cards{
    min-height:0;
    max-height:none;
    gap:6px;
  }
  .nearby-dock-message{
    min-height:34px;
    padding:6px 8px;
    border-radius:0;
    border-top:1px solid rgba(20,27,22,.08);
    background:transparent;
    font-size:9px;
    line-height:1.35;
  }
  .nearby-dock-card{
    flex-basis:122px;
    height:78px;
    border-radius:12px;
    box-shadow:0 6px 16px rgba(17,33,24,.12);
  }
  .nearby-dock-body{
    left:7px;right:7px;bottom:6px;
  }
  .nearby-dock-body strong{
    font-size:10px;
    line-height:1.15;
  }
  .place-reason{
    margin-top:2px;
    font-size:7.5px;
    line-height:1.2;
    -webkit-line-clamp:1;
  }
  .nearby-dock-body small{
    margin-top:2px;
    font-size:7.5px;
  }
  .zoom-controls{
    right:8px;
    bottom:168px;
    padding:2px;
    border-radius:12px;
  }
  .zoom-controls button{
    width:34px;
    height:32px;
    font-size:18px;
  }
  .nearby-dock:not(.hidden) ~ .zoom-controls{bottom:168px}
  .nearby-dock:not(.hidden) ~ .locate-button{bottom:122px}
  .locate-button{
    right:8px;
    width:auto;
    min-width:68px;
    height:38px;
    padding:0 10px;
    border-radius:19px;
    gap:6px;
  }
  .locate-dot{
    width:12px;height:12px;
    border-width:3px;
  }
  .locate-label{font-size:9px}
  .map-hint{
    left:10px;
    bottom:max(10px,env(safe-area-inset-bottom));
    transform:none;
    padding:6px 9px;
    font-size:9px;
    box-shadow:0 6px 18px rgba(21,32,24,.1);
  }
  .map-hint strong{font-size:14px}
  .place-sheet{
    height:min(76vh,680px);
    border-radius:24px 24px 0 0;
  }
  .gallery{
    height:210px;
    border-radius:23px 23px 0 0;
  }
  .sheet-content{padding:18px 16px 26px}
  #sheetTitle{font-size:25px;margin:10px 0 7px}
  .summary{font-size:12px;line-height:1.55;margin-bottom:14px}
  .meta-card{min-height:62px;padding:10px;border-radius:14px}
  .action-button{border-radius:13px;padding:11px 8px}
}
@media(max-width:430px){
  .topbar{height:48px}
  .brand-copy .tagline{display:none}
  .brand-mark{width:32px;height:32px}
  .brand{font-size:14px}
  .mobile-search-wrap{top:64px}
  .filters{top:108px}
  .nearby-dock-card{flex-basis:116px;height:76px}
}


/* SCOPRI curated mobile map v82 */
.nearby-dock-toggle{display:none}
@media(max-width:840px){
  .nearby-dock{
    min-height:42px;
    padding:6px 7px;
  }
  .nearby-dock-head{
    min-height:30px;
    padding:0;
  }
  .nearby-dock-copy strong{font-size:10.5px}
  .nearby-dock-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    min-height:28px;
    padding:5px 9px;
    border:1px solid rgba(12,43,59,.12);
    border-radius:999px;
    background:rgba(255,255,255,.8);
    color:#24352d;
    font-size:8.5px;
    font-weight:900;
    cursor:pointer;
  }
  .nearby-dock:not(.dock-expanded) .now-controls,
  .nearby-dock:not(.dock-expanded) .nearby-dock-cards{
    display:none;
  }
  .nearby-dock.dock-expanded .now-controls,
  .nearby-dock.dock-expanded .nearby-dock-cards{
    display:flex;
  }
  .nearby-dock:not(.dock-expanded) ~ .zoom-controls{bottom:104px}
  .nearby-dock:not(.dock-expanded) ~ .locate-button{bottom:58px}
  .nearby-dock.dock-expanded ~ .zoom-controls{bottom:168px}
  .nearby-dock.dock-expanded ~ .locate-button{bottom:122px}
  .map-hint{display:none}
}


/* SCOPRI mobile product v83 */
.mobile-search-toggle{display:none}
.nearby-reason{display:none}
@media(max-width:840px){
  .topbar{
    right:auto;
    width:max-content;
    max-width:calc(100vw - 16px);
    min-width:0;
    padding-right:6px;
  }
  .brand-wrap{padding-right:2px}
  .top-actions{gap:4px}
  .live-badge{display:none}
  .mobile-search-toggle{
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    border:0;
    border-radius:10px;
    background:rgba(255,255,255,.76);
    color:#17231c;
    font-size:20px;
    line-height:1;
    font-weight:900;
    cursor:pointer;
  }
  .mobile-search-wrap{
    display:none;
    top:64px;
    left:8px;
    right:8px;
  }
  .mobile-search-wrap.open{display:block}
  .mobile-search-wrap:not(.open)+.filters{top:64px}
  .mobile-search-wrap.open+.filters{top:108px}
  .filters{
    width:max-content;
    max-width:calc(100vw - 16px);
    right:auto;
    padding:3px;
    gap:1px;
  }
  .filter{
    min-height:30px;
    padding:3px 7px 3px 3px;
    font-size:9.5px;
  }
  .filter img{
    width:21px;
    height:21px;
  }
  .nearby-dock{
    left:8px;
    right:8px;
    border:1px solid rgba(255,255,255,.8);
  }
  .nearby-dock:not(.dock-expanded){
    width:max-content;
    max-width:calc(100vw - 16px);
    right:auto;
    min-height:38px;
    border-radius:19px;
    padding:4px 5px 4px 9px;
  }
  .nearby-dock:not(.dock-expanded) .nearby-dock-copy strong{
    max-width:54vw;
    font-size:9.5px;
  }
  .nearby-dock:not(.dock-expanded) .nearby-dock-toggle{
    min-height:26px;
    padding:4px 8px;
  }
  .nearby-dock.dock-expanded{
    padding:6px;
  }
  .nearby-reason{
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:1;
    color:#66736b;
    font-size:8px;
    line-height:1.25;
    margin:2px 0;
  }
  .nearby-card{
    min-height:62px;
  }
  .nearby-body strong{font-size:10px}
  .nearby-body small{font-size:8px}
}
@media(max-width:430px){
  .brand{font-size:13px}
  .brand-mark{width:30px;height:30px}
  .mobile-search-toggle{width:30px;height:30px}
}


/* SCOPRI selection detail v84 */
.summary:before{
  content:"추천 이유";
  display:block;
  margin-bottom:6px;
  color:#167d6e;
  font-size:9px;
  line-height:1;
  font-weight:950;
  letter-spacing:.08em;
}
@media(max-width:840px){
  .place-sheet{
    height:min(72vh,640px);
  }
  .gallery{
    height:190px;
  }
  .sheet-content{padding:16px 15px 24px}
  #sheetTitle{font-size:23px}
  .summary{
    margin-bottom:12px;
    padding:10px 11px;
    border-radius:12px;
    background:rgba(22,125,110,.07);
    color:#46564d;
    font-size:12px;
    line-height:1.5;
  }
  .summary:before{margin-bottom:5px;font-size:8px}
  .meta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:6px;
  }
  .meta-card{
    min-height:54px;
    padding:9px 10px;
    border-radius:12px;
  }
  .meta-card b{margin-bottom:5px;font-size:8px}
  .meta-card span{font-size:11px;line-height:1.35}
}

/* SCOPRI v104 licensed no-crop preview media */
.nearby-dock-card.no-crop-media{
  background:#101512;
}
.nearby-dock-card.no-crop-media>img{
  object-fit:contain!important;
  background:#101512;
}
