:root{--paper:#f4efe3;--paper2:#fbf8ef;--ink:#3d2f1a;--ink2:#6f5d42;--line:#d9ccb0;--gold:#f0d24a;--accent:#7a4b2a}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--paper);color:var(--ink);font:15px/1.5 -apple-system,"Apple SD Gothic Neo","Noto Sans KR","Segoe UI",Roboto,sans-serif}
#app{display:flex;height:100vh;height:100dvh}
.hidden{display:none!important}
button{font:inherit;color:inherit;cursor:pointer}
.btn{border:1px solid var(--line);background:var(--paper2);border-radius:8px;padding:6px 11px;font-weight:600;min-height:34px}
.btn:hover{background:#fff}
.btn.gold{background:var(--gold);border-color:#c9ad2a;color:#3d2f1a}
.btn.small{padding:3px 9px;min-height:28px;font-size:13px}
#side{width:370px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--paper);min-height:0;z-index:2}
#top{display:flex;justify-content:space-between;align-items:center;padding:12px 14px 6px;gap:8px}
.brand{min-width:0;flex:1 1 auto}
.brand h1{margin:0;font-size:22px;letter-spacing:.02em;white-space:nowrap}
#t-sub{font-size:12px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-btns{display:flex;gap:6px}
.seg{display:flex;margin:4px 14px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--paper2)}
.seg button{flex:1;border:0;background:transparent;padding:8px 6px;font-weight:700}
.seg button.on{background:var(--ink);color:var(--paper2)}
.seg.small button{padding:5px 4px;font-size:13px;font-weight:600}
#time{padding:2px 0 6px;border-bottom:1px solid var(--line)}
#time-year{padding:2px 16px}
#year-range{width:100%;accent-color:var(--accent)}
.yr-line{display:flex;justify-content:space-between;font-size:13px;color:var(--ink2)}
#yr-val{font-weight:800;color:var(--ink);font-size:15px}
#rel{margin:2px 16px;font-size:13px;color:var(--ink2)}
#rel summary{cursor:pointer}
.rel-row{display:flex;gap:6px;align-items:center;margin-top:4px}
.rel-row input{width:76px;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit}
#panel{flex:1;overflow:auto;padding:10px 14px 14px;min-height:0}
#foot{padding:7px 14px;font-size:11.5px;color:var(--ink2);border-top:1px solid var(--line);line-height:1.45}
#foot a{color:var(--ink2)}
#mapwrap{position:relative;flex:1;min-width:0}
#map{position:absolute;inset:0}
#map-btns{position:absolute;left:10px;top:10px;display:flex;gap:6px;z-index:3}
#map-btns .btn[aria-pressed=true]{background:var(--ink);color:#fff}
#yr-badge{position:absolute;left:10px;bottom:30px;z-index:3;background:rgba(251,248,239,.93);border:1px solid var(--line);border-radius:8px;padding:5px 10px;font-size:13px;font-weight:700;max-width:70%}
#yr-badge small{display:block;font-weight:400;color:var(--ink2)}
#map-err{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--paper2);border:1px solid var(--line);border-radius:10px;padding:14px 18px;z-index:4;text-align:center}
.maplibregl-ctrl-attrib{font-size:11px}
/* 영화 목록 */
.fcard{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--paper2);border-radius:12px;padding:0;margin:0 0 10px;overflow:hidden}
.fcard:hover{border-color:var(--ink2)}
.fcard .tcard{border-radius:0}
.fmeta{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:13px;color:var(--ink2)}
.dot{width:12px;height:12px;border-radius:50%;flex:none;display:inline-block}
.dot.ring{background:#fffdf6;border:3px solid currentColor}
/* 제목 카드 */
.tcard{padding:8px 11px 9px;border-radius:12px;display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:baseline}
.tcard-year{font-size:11px;letter-spacing:.12em}
.tcard-title{font-size:19px;line-height:1.15;font-weight:500;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.tcard-bar{grid-column:1/-1;width:28px;height:2px;margin:4px 0 3px}
.tcard-hook{grid-column:1/-1;font-size:12px;line-height:1.35;opacity:.92;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
/* 영화 상세 */
.back{border:0;background:none;padding:2px 0 8px;color:var(--accent);font-weight:700}
.filmbar{position:sticky;top:-10px;z-index:20;display:flex;flex-direction:column;box-sizing:border-box;margin:-10px -14px 8px;padding:0 14px 6px;background:var(--paper);border-bottom:1px solid rgba(0,0,0,.08)}
.filmbar .fb1{display:flex;gap:6px;align-items:center;height:42px}
.filmbar .routeopt{margin:0;height:30px;overflow:hidden}
.filmbar .back{padding:0;white-space:nowrap}
.filmbar .cnt{flex:1;text-align:center;font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.filmbar .cs{display:none}
.filmbar .btn{white-space:nowrap}
.filmbar .btn:disabled{opacity:.35;pointer-events:none}
.nav2{display:flex;gap:6px;align-items:center;margin:8px 0}
.nav2 .cnt{flex:1;text-align:center;font-size:13px;color:var(--ink2)}
.routeopt{display:flex;gap:6px;margin:4px 0 8px;font-size:13px;align-items:center;color:var(--ink2)}
.routeopt button{border:1px solid var(--line);background:var(--paper2);border-radius:999px;padding:3px 10px}
.routeopt button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.scene{border:1px solid var(--line);border-radius:10px;margin:0 0 7px;background:var(--paper2);overflow:hidden}
.scene>.shead{display:flex;gap:9px;align-items:flex-start;width:100%;border:0;background:none;text-align:left;padding:9px 10px}
.num{flex:none;width:26px;height:26px;border-radius:50%;color:#fff;font-weight:800;font-size:13px;line-height:26px;text-align:center}
.sname{font-weight:700;line-height:1.3}
.ssub{font-size:12.5px;color:var(--ink2);line-height:1.35}
.scene.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:0 6px;border-radius:999px;background:#e9dfc6;color:var(--accent);margin-left:5px;vertical-align:1px}
/* 장소 칸 */
.pcard{padding:2px 10px 12px}
.pcard figure{margin:6px 0 8px}
.pcard img{width:100%;max-height:220px;object-fit:cover;border-radius:8px;background:#e8e0cc;display:block}
.pcard figcaption{font-size:11.5px;color:var(--ink2);line-height:1.4;margin-top:3px}
.pcard figcaption a{color:var(--accent)}
.scene3d{background:linear-gradient(135deg,#e8e0cc,#d8ccae);border-radius:8px;padding:14px 12px;font-size:13px;color:var(--ink2)}
.prow{display:flex;gap:8px;margin:6px 0;align-items:flex-start}
.prow .k{flex:none;width:92px;font-size:12px;color:var(--ink2);padding-top:2px}
.prow .v{flex:1}
.go{border:1px solid var(--line);border-radius:999px;background:#fff;padding:2px 9px;font-size:12px;margin:2px 4px 0 0}
.how{background:#fff7da;border-radius:8px;padding:7px 10px;margin:8px 0;font-size:14px}
.srcs{font-size:12.5px;margin:6px 0}
.srcs a{color:var(--accent);word-break:break-all}
.srcs q{display:block;color:var(--ink2);font-size:12px;margin:0 0 4px 0}
.note{font-size:13px;color:var(--ink2);margin:6px 0}
.hint{font-size:13.5px;color:var(--ink2);line-height:1.55}
.legend{display:flex;flex-direction:column;gap:5px;margin:8px 0;font-size:13.5px}
.legend div{display:flex;gap:8px;align-items:center}
.mc-pin{width:28px;height:28px}
/* 신고 */
#report-modal{position:fixed;inset:0;background:rgba(40,30,15,.45);z-index:50;display:flex;align-items:center;justify-content:center;padding:14px}
.rm-card{background:var(--paper2);border-radius:14px;max-width:420px;width:100%;padding:14px 16px;border:1px solid var(--line)}
.rm-head{display:flex;justify-content:space-between;font-weight:800;margin-bottom:6px}
.rm-head button{border:0;background:none;font-size:22px;line-height:1}
.rm-field{margin:8px 0;display:flex;flex-direction:column;gap:3px;font-size:13px}
.rm-field select,.rm-field textarea,.rm-field input{font:inherit;padding:7px;border:1px solid var(--line);border-radius:8px;background:#fff}
#rm-botcheck{position:absolute;left:-9999px}
#rm-ctx{font-size:12px;color:var(--ink2)}
#rm-status.ok{color:#2f7d3a}#rm-status.err{color:#b3261e}
.rm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
/* 나눈 화면 */
#split{position:absolute;inset:0;display:flex;flex-direction:row;z-index:2;background:var(--paper)}
#split.stack{flex-direction:column}
.pane{position:relative;flex:1 1 0;min-width:0;min-height:0;overflow:hidden}
.pmap{position:absolute;inset:0}
.pane::after{content:"";position:absolute;inset:0;border:4px solid var(--c);pointer-events:none;z-index:4}
.pane-a{--c:#2a6fd6}.pane-b{--c:#d6453d}
.chip{position:absolute;right:10px;top:10px;z-index:5;background:var(--c);color:#fff;border-radius:8px;padding:3px 10px 4px;font-size:12px;line-height:1.3;max-width:62%;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.chip b{display:block;font-size:12.5px;letter-spacing:.06em}
.chip span{display:block;font-size:11.5px;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ptext{position:absolute;inset:0;z-index:3;background:var(--paper2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:48px 20px 14px;font-size:15px}
.ptext .nm{font-weight:800;font-size:18px}
.ptext .btn{border-color:var(--c)}
#split-badge,#merge-badge{position:absolute;z-index:6;background:rgba(251,248,239,.96);border:1px solid var(--ink);border-radius:999px;padding:4px 13px;font-size:13px;font-weight:800;white-space:nowrap;box-shadow:0 1px 5px rgba(0,0,0,.3)}
#split-badge{left:50%;top:50%;transform:translate(-50%,-50%)}
#merge-badge{left:50%;bottom:34px;transform:translateX(-50%);z-index:3}
#merge-badge i{display:inline-block;width:10px;height:10px;border-radius:50%;margin:0 4px 0 8px;vertical-align:0}
.is-split #map{visibility:hidden}
.is-split #yr-badge,.is-split #b-3d{display:none}
/* 휴대폰 */
@media (max-width:599px){
  #app{flex-direction:column}
  #mapwrap{order:-1;flex:none;height:46vh;height:46dvh}
  #app.splitting #mapwrap{height:56dvh}
  #side{width:100%;flex:1;border-right:0;border-top:1px solid var(--line)}
  #top{padding:8px 12px 2px}
  .brand h1{font-size:19px}
  html[lang=en] .brand h1{font-size:17px;letter-spacing:0}
  html[lang=en] #t-sub{font-size:11px}
  .seg{margin:3px 12px}
  #panel{padding:8px 12px 12px}
  .filmbar{top:-8px;margin:-8px -12px 8px;padding:0 12px 6px}.filmbar .fb1{gap:4px}
  .filmbar .cl{display:none}.filmbar .cs{display:inline}
  .tcard-title{font-size:18px}
}

/* v6: 사건 목록·촬영지 넘기기·다른 촬영지 */
.more{background:#d6453d;color:#fff;border-color:#fff;font-weight:700}
#b-more{position:absolute;right:10px;bottom:10px;z-index:6}
.plus{color:var(--accent);font-weight:700}
.what{font-size:13.5px;margin:6px 0;color:var(--ink)}
.shotlist{margin:8px 0;font-size:13px}
.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.schip{border:1px solid var(--line);border-radius:999px;background:#fff;padding:2px 9px;font-size:12px;text-align:left}
.schip.on{background:#d6453d;color:#fff;border-color:#d6453d}
.extras{margin:10px 0 4px}
.xhead{width:100%;border:1px dashed var(--ink2);border-radius:10px;background:none;padding:8px;font-weight:700;color:var(--ink2)}
.extra{border:1px solid var(--line);border-radius:10px;margin:6px 0 0;background:var(--paper2);overflow:hidden}
.extra.on{border-color:var(--ink)}
.extra>.shead{display:flex;gap:9px;width:100%;border:0;background:none;text-align:left;padding:8px 10px}
.num.sm{width:14px;height:14px;margin-top:4px}

.unk{font-size:12px;color:var(--ink2);margin:6px 0}.unk a{color:inherit;text-decoration:underline;cursor:pointer}
.srcs>summary{cursor:pointer;list-style:revert}
.tagbtn{font:inherit;font-size:11px;font-weight:700;cursor:pointer;border:1px solid #bfae83;min-height:24px;padding:2px 9px;line-height:1.2}@media(pointer:coarse){.tagbtn{min-height:32px;padding:5px 12px}}

.mc-chip{background:rgba(255,255,255,.94);color:#3d2f1a;border:1px solid #c9bfa6;border-radius:10px;padding:1px 7px;font:600 11px/17px system-ui,sans-serif;white-space:nowrap;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.sleg{font-size:12px;color:var(--ink2);margin-top:1px}
.legtotal{margin:8px 2px 4px;font-weight:700;font-size:13px;color:var(--ink2)}
#unitToggle{position:fixed;right:10px;bottom:28px;z-index:30;display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper2);box-shadow:0 1px 4px rgba(0,0,0,.25)}
#unitToggle button{border:0;background:transparent;padding:3px 9px;font-size:12px;font-weight:600;min-height:26px}
#unitToggle button.on{background:var(--gold)}
/* 지역 칩 (지도 오른쪽 위) */
#loc-chip{position:absolute;right:52px;top:10px;z-index:3;background:rgba(251,248,239,.95);border:1px solid var(--ink);border-radius:8px;padding:3px 10px;font-size:12.5px;font-weight:700;line-height:1.3;max-width:55%;box-shadow:0 1px 4px rgba(0,0,0,.25);pointer-events:none}
.chip .rg{font-weight:700;opacity:1;border-top:1px solid rgba(255,255,255,.4);margin-top:1px;padding-top:1px}
/* 지도에서 찍기 */
#pick-bar{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:60;background:#ffd400;color:#222;border:2px solid #222;border-radius:999px;padding:5px 8px 5px 16px;font-size:14px;font-weight:800;display:flex;gap:10px;align-items:center;box-shadow:0 2px 8px rgba(0,0,0,.35);white-space:nowrap}
#pick-bar.hidden{display:none}
body.picking .maplibregl-canvas{cursor:crosshair!important}

.tagfixed{background:#d7ecd3;color:#2d6a3a;border-color:#8fc18a}
.tagmail{padding-left:6px;padding-right:6px}
#fx-modal{position:fixed;inset:0;z-index:2000;background:rgba(40,30,15,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.fx-box{background:var(--paper2);color:var(--ink);border-radius:12px;max-width:380px;width:100%;max-height:80vh;overflow:auto;padding:16px 18px;box-shadow:0 8px 30px rgba(0,0,0,.3)}
.fx-box h3{margin:0 0 8px;font-size:16px}.fx-box ul{list-style:none;margin:0 0 10px;padding:0}
.fx-box li{padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.fx-d{font-weight:700}.fx-by{color:var(--ink2);margin-left:6px}.fx-thx{font-size:12.5px;color:#2d6a3a;margin:0 0 10px}
body.picking .maplibregl-marker,body.picking .maplibregl-popup{pointer-events:none!important}
.fx-mail{margin-right:6px}

.mc-chip.dc-hide{visibility:hidden}
.mc-chip.cur{background:#fff;border:2px solid #1f4e9c;color:#12356e;font-size:13px;line-height:20px;padding:2px 10px;box-shadow:0 2px 6px rgba(0,0,0,.4);z-index:5}

.rm-types{display:flex;flex-wrap:wrap;gap:6px}
.rm-chip{display:inline-flex;cursor:pointer}
.rm-chip input{position:absolute;opacity:0;pointer-events:none}
.rm-chip span{padding:7px 11px;border:1.5px solid var(--line);border-radius:999px;background:#fff;font-size:13px;line-height:1.25}
.rm-chip.on span{background:var(--gold,#e0a100);border-color:#222;font-weight:700}
.rm-chip.refix span{border-style:dashed}
.rm-chip.hidden{display:none}
#rm-pick.emph{outline:3px solid #ffd400;font-weight:800}
.linkbtn{border:0;background:none;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}

/* 새 소식 */
#b-news{position:relative;white-space:nowrap;padding:6px 9px;font-size:13px}
#news-dot{position:absolute;top:3px;right:3px;width:8px;height:8px;border-radius:50%;background:#d6453d}
#news-modal{position:fixed;inset:0;z-index:2000;background:rgba(40,30,15,.45);display:flex;align-items:center;justify-content:center;padding:16px}
#news-modal .fx-box{max-width:440px}
.nw-list li{padding:0}.nw-row{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 2px;font:inherit;color:inherit}
.nw-list li.go .nw-row{cursor:pointer}.nw-list li.go .nw-row:hover{background:rgba(0,0,0,.05)}
.nw-d{font-weight:700;font-size:12.5px}.nw-t{margin-top:2px}.nw-by{color:var(--ink2)}
.nw-k{display:inline-block;font-size:11px;font-weight:700;border-radius:999px;padding:0 7px;border:1px solid var(--line);margin-left:4px}
.nw-film{background:#fde9a8}.nw-update{background:#dfeaf7}.nw-fix{background:#dff0e0}
#report-btn,#b-news,#b-lang{white-space:nowrap;padding:6px 9px;font-size:13px}
.top-btns{flex:none}

/* 123: 머리글 아이콘 버튼 */
#top{flex-wrap:nowrap}
.top-btns{display:flex;gap:6px;flex:none;margin-left:auto}
.top-btns .btn,#report-btn,#b-news,#b-lang,#b-home{width:38px;height:38px;padding:0;font-size:17px;line-height:1;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}
#b-lang{font-size:14px}
.brand{flex:1 1 0;min-width:0;overflow:hidden}
.brand h1{overflow:hidden;text-overflow:ellipsis}

/* 검색 · 도시 목록 · 즐겨찾기 (124) */
#searchbox{margin:4px 14px 2px}
#q{width:100%;box-sizing:border-box;border:1px solid var(--line);background:var(--paper2);border-radius:10px;padding:8px 12px;font:inherit;font-size:15px;color:var(--ink)}
#tabs button{white-space:nowrap;padding:8px 2px;font-size:14px}
.fwrap{position:relative}
.heart{position:absolute;top:6px;right:6px;width:36px;height:36px;border:0;background:none;color:#fff;font-size:24px;line-height:36px;padding:0;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.55),0 0 1px rgba(0,0,0,.6)}   /* 10/14 발주처: 동그란 원 빼고 하얀 하트만 */
.heart.on{color:#e0312b}
.crow{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--line);background:var(--paper2);border-radius:10px;padding:10px 12px;margin:0 0 8px}
.crow:hover{border-color:var(--ink2)}
.crow .cn{font-weight:700}.crow .cn small{display:block;font-weight:400;color:var(--ink2);font-size:12.5px}
.crow .cs2{font-size:12.5px;color:var(--ink2);text-align:right}
.sh{margin:10px 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2)}
.ch{margin:2px 0}
@media (max-width:700px){#searchbox{margin:3px 12px 2px}}

/* 10/14 하트 누를 때 톡 튀기 + 빨간 고리 퍼짐 */
@keyframes heartpop{0%{transform:scale(.55)}35%{transform:scale(1.5)}60%{transform:scale(.88)}80%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes heartring{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.7);opacity:0}}
.heart.pop{animation:heartpop .55s cubic-bezier(.2,.9,.3,1.2)}
.heart.pop::after{content:'';position:absolute;inset:4px;border-radius:50%;border:2px solid #e0312b;animation:heartring .5s ease-out forwards;pointer-events:none}
@media (prefers-reduced-motion:reduce){.heart.pop,.heart.pop::after{animation:none}}

/* 10/14 빅터하우스 홈 — 주입 버튼 대신 머리글 아이콘 줄 맨 앞(폰에서 아래로 내려가던 문제) */
#b-home{text-decoration:none}

/* 10/14 폰: 전체 지도의 구간 칩은 겹쳐서 숨김 — 장면 보기의 지금 구간 칩(.cur)만 */
@media (max-width:600px){.mc-chip:not(.cur){display:none}}


/* 125 폰 배치 (≤599px) — 영화 보기: 머리글·검색·탭 접고 고정 줄 하나(← · n/N · ‹ › · 경로 칩). 데스크톱 불변 */
@media (max-width:599px){
  .filmview #top,.filmview #searchbox,.filmview #tabs,.filmview #time{display:none}
  .filmview .filmbar{flex-direction:row;align-items:center;height:48px;margin:-8px -12px 8px;padding:0 12px;top:-8px;border-top:1px solid var(--line)}
  .filmview .filmbar .fb1{flex:1 1 auto;min-width:0;height:48px;gap:4px}
  .filmview .filmbar .back{font-size:18px;padding:0 8px 0 0;min-width:24px}
  .filmview .filmbar .back .bl,.filmview .filmbar .btn .bl{display:none}
  .filmview .filmbar .btn.small{min-width:38px;height:34px;padding:3px 10px;font-size:16px}
  .filmview .filmbar .routeopt{flex:none;height:auto;margin:0 0 0 6px;overflow:visible}
  .filmview .filmbar .routeopt>span,.filmview .filmbar .routeopt button:not(.on){display:none}
  .filmview .filmbar .routeopt button.on{font-size:12px;padding:5px 9px;min-height:30px;white-space:nowrap}
  .filmview .filmbar .routeopt button.on::after{content:' \21C4';opacity:.8}
  /* 목록 보기: 머리글 한 줄 — 제목 작게 + 아이콘 4개 */
  #top{padding:6px 12px 2px}
  #t-sub{display:none}
  .brand h1{font-size:17px}
  .top-btns{gap:5px}
  .top-btns .btn,#report-btn,#b-news,#b-lang,#b-home{width:34px;height:34px;min-height:34px;font-size:16px}
}

/* 125 다른 촬영지 버튼(b-more2): 폭 1100 이하에서 3D 줄 아래 둘째 줄 — 지역 칩과 안 겹침 (데스크톱 넓은 화면 불변) */
@media (max-width:1100px){
  #b-more2{position:absolute;left:0;top:44px;white-space:nowrap}
}

/* 127 폰 아래 시트 (≤599px): 지도 전체 화면 + 끌어올리는 시트(peek 25% / half 55% / full 92%) */
#sheet-grip{display:none}
@media (min-width:600px) and (max-width:800px){#merge-badge{bottom:70px}}   /* 폴드 673: Same place 배지가 km|mi 토글과 겹치던 것 — 배지를 토글 위로 */
@media (max-width:599px){
  #app{display:block;height:100dvh;overflow:hidden}
  #mapwrap,#app.splitting #mapwrap{position:fixed;inset:0;height:auto;order:0;flex:none}
  #split{bottom:var(--sh,25vh)}
  #side{position:fixed;left:0;right:0;bottom:0;width:100%;height:var(--sh,25dvh);z-index:20;border:0;border-radius:16px 16px 0 0;box-shadow:0 -3px 14px rgba(0,0,0,.28);overflow:hidden;transition:height .22s ease;touch-action:none}
  #app.sh-live #side{transition:none}
  #app.sh-full #side{touch-action:pan-y}
  #sheet-grip{display:flex;flex:none;height:22px;align-items:center;justify-content:center;cursor:grab;touch-action:none}
  #sheet-grip i{display:block;width:42px;height:5px;border-radius:3px;background:#b9ab8c}
  #panel{touch-action:none}
  #app:not(.sh-full) #panel{overflow:hidden}
  #app.sh-full #panel{touch-action:pan-y;overscroll-behavior:contain}
  #app.sh-peek #foot,#app.sh-half #foot{display:none}
  #app.sh-peek:not(.filmview) #top,#app.sh-peek:not(.filmview) #time{display:none}
  .filmview #sheet-grip{height:18px}
  /* 지도 위 표시는 시트 위로 */
  #unitToggle{bottom:calc(var(--sh,25dvh) + 30px)}
  #merge-badge{bottom:calc(var(--sh,25dvh) + 40px)}   /* 142 지도 출처 글자(두 줄, 시트 위 ~30px) 위로 */
  #yr-badge{bottom:calc(var(--sh,25dvh) + 76px)}
  #b-more{bottom:calc(var(--sh,25dvh) + 10px)}
  .sh-full-on #map-btns,.sh-full-on #loc-chip,.sh-full-on #yr-badge,.sh-full-on #merge-badge,.sh-full-on #unitToggle,.sh-full-on #b-more,.sh-full-on #b-more2{visibility:hidden}
  .maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right{bottom:var(--sh,25dvh)}
  #app.sh-live #unitToggle,#app.sh-live #merge-badge,#app.sh-live #yr-badge,#app.sh-live #b-more{transition:none}
}
@keyframes mmpulse{0%,100%{opacity:.35}50%{opacity:.9}}

/* 우주 지도: 무대가 우주인 영화(setting.kind=space). 왼쪽 우주판 + 오른쪽 실제 지도(폰은 위/아래) */
#space{position:absolute;left:0;top:0;bottom:0;width:56%;z-index:3;background:#04060d;overflow:hidden;border-right:2px solid var(--ink)}
#space canvas{position:absolute;inset:0;width:100%;height:100%;cursor:pointer;display:block}
#space-note{position:absolute;left:10px;bottom:8px;right:10px;font-size:11px;line-height:1.35;color:#9aa6c8;background:rgba(4,6,13,.7);padding:3px 7px;border-radius:5px;pointer-events:none;width:fit-content;max-width:calc(100% - 20px)}
#space-cap{position:absolute;left:calc(56% + 10px);top:10px;z-index:4;background:rgba(251,248,239,.96);border:1px solid var(--ink);border-radius:8px;padding:5px 10px;font-size:13px;max-width:calc(44% - 60px);line-height:1.35}
#space-cap b{color:#b3302a}
.spacemode #map{left:56%;width:44%}
@media (max-width:599px){
  #space{width:auto;right:0;bottom:auto;height:calc((100% - var(--sh,25vh)) * .6);border-right:0;border-bottom:2px solid var(--ink)}
  .spacemode #map{left:0;width:100%;top:calc((100% - var(--sh,25vh)) * .6);bottom:var(--sh,25vh);height:auto}
  #space-cap{left:8px;right:8px;max-width:none;top:calc((100% - var(--sh,25vh)) * .6 + 8px)}
}
.spacemode #yr-badge,.spacemode #b-3d{display:none}

/* 언어 메뉴 (9개 언어) */
#lang-menu{position:fixed;z-index:3000;margin:0;padding:4px;list-style:none;width:168px;background:var(--bg,#fffdf6);border:1px solid rgba(0,0,0,.18);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.2)}
#lang-menu.hidden{display:none}
#lang-menu button{display:block;width:100%;text-align:left;padding:9px 12px;border:0;background:none;font:inherit;font-size:15px;color:inherit;border-radius:7px;cursor:pointer}
#lang-menu button:hover,#lang-menu button:focus-visible{background:rgba(214,69,61,.12);outline:none}
#lang-menu button.on{font-weight:700;color:#d6453d}
