:root{font-family:Inter,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',sans-serif;color:#303746;background:#f8f9fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.4}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #e78461;outline-offset:3px}a{color:#557a72;text-decoration:none}header{height:65px;padding:0 28px;border-bottom:1px solid #e6e8ec;background:white;display:flex;align-items:center;gap:50px}.brand{font-size:27px;font-weight:850;letter-spacing:-1.7px;color:#2f514a}.brand span{color:#eb7658}.brand small{font-size:9px;letter-spacing:1.8px;margin-left:12px;color:#83938c}nav{display:flex;gap:27px;font-size:12px}nav b{color:#d96b50}nav span{color:#969ea7}.local{margin-left:auto;font-size:9px;letter-spacing:1.6px;color:#9b9f9e}.trip-heading{padding:26px 28px 17px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:white}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.5px;color:#9b9eaa}h1{font-size:29px;letter-spacing:-1.1px;margin:8px 0 7px}h1 span{color:#eaa059;margin-left:12px;font-size:24px}p{font-size:12px;line-height:1.6;color:#88909d;margin:0}.trip-actions{display:flex;align-items:flex-end;gap:8px}.trip-actions label{font-size:9px;color:#8b92a0}.trip-actions input{display:block;margin-top:5px;padding:9px;border:1px solid #e0e4ea;border-radius:8px;background:#fbfcfd;font-size:12px}.trip-actions button{padding:11px 12px;border:1px solid #dedfe5;background:white;border-radius:8px;font-size:11px;white-space:nowrap}#example{background:#ed7960;border-color:#ed7960;color:white}#notice{background:#fff7ed;color:#9c704d;padding:8px 28px;font-size:11px;min-height:31px}.workspace{display:grid;grid-template-columns:minmax(270px,310px) minmax(290px,340px) minmax(360px,1fr);max-width:1920px;margin:auto;min-height:calc(100vh - 245px)}.places-pane,.itinerary-pane{padding:23px 20px;background:white;border-right:1px solid #e7e9ef}.pane-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:17px}h2{font-size:17px;letter-spacing:-.4px;margin:6px 0 0}h2 small{font-size:12px;color:#98a2ae;font-weight:400;margin-left:5px}.verified,.draft{font-size:9px;background:#f0f6f2;color:#7a9a88;padding:5px 7px;border-radius:5px}.draft{background:#fdf1e6;color:#b88c62}.search{display:flex;align-items:center;gap:9px;padding:9px 12px;background:#f5f7f9;border:1px solid #edf0f3;border-radius:9px}.search span{font-size:22px;color:#919ba6}.search input{border:0;background:transparent;width:100%;min-width:0;outline:0;font-size:11px;color:#4f5b64}.filters{display:flex;gap:5px;margin:13px 0 9px;flex-wrap:wrap}.filters button{border:1px solid #e6e8ee;background:white;border-radius:18px;padding:6px 10px;font-size:10px}.filters button[aria-pressed=true]{background:#3b6056;color:white;border-color:#3b6056}.candidate{display:grid;grid-template-columns:39px minmax(0,1fr) 28px;gap:10px;padding:15px 0;border-bottom:1px solid #eef0f4;align-items:start}.candidate.selected{background:linear-gradient(90deg,#f6faf7,transparent)}.glyph{height:40px;width:39px;border-radius:10px;display:grid;place-items:center;font-size:21px;color:var(--c);background:color-mix(in srgb,var(--c),white 89%)}.info strong{display:block;font-size:12px;line-height:1.6}.info small{display:block;font-size:9px;color:#929ba4;line-height:1.6;margin-top:3px}.info p{font-size:10px;line-height:1.55;color:#969da7;margin-top:4px}.info a{display:inline-block;font-size:9px;margin-top:5px}.candidate button.toggle{height:27px;width:27px;border:1px solid #e0e4ea;border-radius:50%;background:white;font-size:18px}.candidate.selected button.toggle{background:#3b6056;color:white;border-color:#3b6056}.source-foot{font-size:9px;color:#a4abb3;line-height:1.8;margin-top:20px}.day-tab{display:flex;align-items:center;gap:10px;border-radius:9px;background:#f7f8fb;padding:12px}.day-tab span{font-size:9px;font-weight:800;letter-spacing:1px;color:#d27a5c}.day-tab b{font-size:12px}.day-tab small{font-size:9px;color:#a0a8b3;margin-left:auto}.edit-hint{font-size:9px;margin:12px 0 17px}.stop{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;position:relative}.number{height:25px;width:25px;border-radius:50%;display:grid;place-items:center;background:var(--c);color:white;font-weight:700;font-size:10px;margin-top:11px}.stop-body{border:1px solid #e2e7eb;border-radius:11px;padding:12px;min-width:0;background:#fff;box-shadow:0 3px 8px #34415004}.stop-title{display:flex;align-items:flex-start;gap:8px}.stop-title strong{font-size:12px;flex:1;line-height:1.5}.stop-title button{border:0;background:transparent;color:#9da6b2;font-size:16px;padding:0 2px}.stop small{font-size:9px;color:#9ba3ac;line-height:1.6;display:block;margin-top:5px}.stop-tools{display:flex;align-items:center;gap:5px;margin-top:9px}.stop-tools button{border:1px solid #e5e9ed;border-radius:5px;background:#fff;padding:4px 7px;font-size:10px}.stop-tools a{font-size:9px;margin-left:auto}.leg{margin-left:12px;padding:12px 0 12px 27px;border-left:1px dashed #cdd7d6;font-size:9px;color:#9ba6aa}.empty{padding:35px 18px;border:1px dashed #d8e0e3;border-radius:12px;text-align:center;color:#9da7b0;font-size:12px;line-height:1.9}.empty b{display:block;font-size:25px;font-weight:400;color:#bac8c6;margin-bottom:10px}#course-summary{font-size:10px;color:#84938b;padding:17px 0 10px;line-height:1.7}.copy{width:100%;padding:10px;background:#eff5f2;border:1px solid #dce9e2;border-radius:8px;font-size:11px;color:#52776a}.feasibility{font-size:9px;margin-top:12px;color:#a0a6af;line-height:1.8}.explorer{min-width:0;padding:23px 22px;background:#f7f9fa}.scene-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.view-switch{display:flex;background:#e8eeec;border-radius:8px;padding:3px}.view-switch button{border:0;border-radius:6px;padding:8px 13px;background:transparent;font-size:11px;font-weight:700}.view-switch button[aria-pressed=true]{background:white;box-shadow:0 1px 4px #23482c10}.scene-wrap{height:clamp(340px,48vh,560px);position:relative;overflow:hidden;border-radius:14px;border:1px solid #dce5dd;background:#edf1e8}#scene,#labels{position:absolute;inset:0}#scene{touch-action:none}#scene canvas{display:block;width:100%;height:100%}#labels{pointer-events:none}.map-label{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;white-space:nowrap;background:#ffffffed;border:1px solid #dce3da;border-radius:7px;padding:6px 8px;font-size:10px;display:flex;align-items:center;gap:5px;box-shadow:0 2px 6px #314d3020}.map-label b{background:var(--c);width:19px;height:19px;border-radius:50%;color:white;display:grid;place-items:center;font-size:9px}.map-label.selected{border:2px solid var(--c);z-index:2}.map-label.faded{opacity:.3}.scene-badge{position:absolute;left:12px;top:13px;font-size:9px;background:#fffffff0;border-radius:5px;padding:7px;color:#879886}#reset-camera{position:absolute;right:12px;top:13px;padding:7px 8px;border:1px solid #d9e1d4;border-radius:6px;background:#fff;font-size:9px}.north{position:absolute;bottom:55px;left:17px;font-size:13px;color:#82917a}.north small{display:block;font-size:8px}#legend{position:absolute;bottom:28px;left:17px;display:flex;gap:12px;font-size:9px;color:#879783}#legend i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}#scene-note{position:absolute;bottom:10px;left:17px;font-size:8px;color:#8e9e87}.view-description{padding:16px 2px}.view-description strong{font-size:11px}.view-description p{font-size:10px;margin-top:6px}.event-reference{display:flex;gap:14px;background:white;border:1px solid #e4e8e9;border-radius:12px;padding:17px}.event-symbol{display:grid;place-items:center;height:47px;width:47px;border-radius:12px;background:#fff0e8;color:#dd835b;font-size:27px}.event-reference small{display:block;font-size:9px;color:#a0a6ad;margin-bottom:5px}.event-reference strong{font-size:13px}.event-reference p{font-size:10px;margin:5px 0}.event-reference a{font-size:10px}#detail{position:absolute;right:12px;bottom:53px;max-width:260px;padding:16px;border-radius:10px;background:white;box-shadow:0 4px 25px #1b342b22;z-index:8}#detail h3{font-size:13px;margin:0 0 7px}#detail p{font-size:10px;margin:5px 0}#detail a{font-size:10px}#detail .close{float:right;border:0;background:none;color:#99a69c}.primary{display:block;width:100%;padding:9px;background:#3b6056;color:white;border:0;border-radius:6px;font-size:11px;margin-top:10px}footer{padding:12px 28px;border-top:1px solid #e4e8ea;display:flex;gap:20px;font-size:9px;color:#a2a9b0;background:white}footer>span:first-child{letter-spacing:1px}
@media(min-width:1600px){.workspace{grid-template-columns:340px 375px minmax(0,1fr)}.places-pane,.itinerary-pane{padding:25px}.scene-wrap{height:55vh}}@media(max-width:1100px){.workspace{grid-template-columns:1fr 1fr}.explorer{grid-column:1/-1;order:-1}.scene-wrap{height:430px}.trip-heading{align-items:flex-start;flex-direction:column;gap:14px}.places-pane,.itinerary-pane{padding:20px}.event-reference{max-width:550px}}@media(max-width:600px){header{padding:0 16px;gap:16px}.brand small,nav span,.local{display:none}.trip-heading{padding:20px 16px}h1{font-size:25px}.trip-actions{flex-wrap:wrap;gap:6px}.trip-actions button{padding:10px;font-size:10px}.workspace{display:flex;flex-direction:column}.places-pane{border-bottom:1px solid #e7e9ef}.places-pane,.itinerary-pane{padding:20px 16px}.candidate{padding:12px 0}.explorer{padding:20px 12px}.scene-wrap{height:380px}.map-label{font-size:9px;padding:5px}.scene-badge{max-width:60%;font-size:8px}footer{flex-direction:column;padding:12px 16px;gap:6px}#notice{padding:9px 16px;line-height:1.6}}
/* Isolated real basemap; Leaflet attribution stays visible. */
#map2d{position:absolute;inset:0;z-index:0;background:#e9eee0}
.scene-wrap [hidden]{display:none!important}
#map2d .leaflet-control-attribution{font-size:10px;background:#fffffff2}
.scene-badge,#reset-camera,.north,#legend,#scene-note{z-index:800}
#detail{z-index:1000}
#scene-note{bottom:26px;pointer-events:none}
#legend{bottom:54px;pointer-events:none}
#map2d .leaflet-bottom.leaflet-left{bottom:86px}
.geo-pin{background:none;border:0}
.geo-pin span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:white;color:var(--c);border:2px solid var(--c);box-shadow:0 2px 8px #23382a40;font:700 15px system-ui}
.geo-pin .chosen{color:white;background:var(--c);border:3px solid white;width:36px;height:36px}
#map2d .leaflet-tooltip{font:600 12px system-ui;border-radius:8px;padding:6px 9px}
.north{top:55px;bottom:auto;left:auto;right:21px;background:#fffffff0;border-radius:5px;padding:5px}
#legend,#scene-note{background:#fffffff0;border-radius:5px;padding:4px 6px;color:#536b58}
.location-bar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:16px 28px;background:#f0f5f2;border-top:1px solid #e4e8ea}.location-bar .primary{width:auto;margin:0;padding:12px 18px}.location-bar label{font-size:11px;display:flex;gap:8px;align-items:center}.location-bar select{padding:10px;border:1px solid #d3ddd7;border-radius:8px;background:white;max-width:230px}.location-bar span{font-size:12px;color:#536c60}.origin-pin{background:#fff;color:#2877b0;padding:7px;border-radius:8px;white-space:nowrap;font-size:12px}.geo-pin{padding:0;cursor:pointer}.scene-wrap:has(#map2d:not([hidden])) #legend{bottom:70px}.scene-wrap:has(#map2d:not([hidden])) #scene-note{bottom:43px}
/* NAVER sets its container position; keep an explicit size in the scene. */
#map2d{width:100%;height:100%}
#choose-map{padding:11px 16px;border:1px solid #cad7d0;border-radius:8px;background:white;font-size:12px}
#legend{flex-wrap:wrap;max-width:calc(100% - 32px);gap:6px}
/* Map-first photo itinerary: one shared layout on desktop and mobile. */
.workspace{display:flex;flex-direction:column;max-width:1120px;margin:auto;min-height:0}
.explorer{order:0;padding:20px 24px 8px;background:transparent}
.itinerary-pane{order:1}.places-pane{order:2}
.places-pane,.itinerary-pane{border:0;padding:24px;background:transparent}
.scene-wrap{height:clamp(300px,44vh,480px)}
.event-reference{max-width:none;margin-top:8px;padding:10px 12px}
#stops,#candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
#candidates>.empty{grid-column:1/-1}
.candidate,.stop{display:block;position:relative;padding:0;border:1px solid #e4e8e5;border-radius:12px;overflow:hidden;background:white;min-width:0}
.tile-open{display:block;position:relative;width:100%;aspect-ratio:1;border:0;padding:0;background:#edf1eb;color:#6d8176;text-align:left;overflow:hidden}
.tile-open img{display:block;width:100%;height:100%;object-fit:cover}
.tile-number{position:absolute;top:9px;left:9px;display:grid;place-items:center;width:28px;height:28px;background:#234d40;color:white;border-radius:50%;font-size:13px;font-weight:700}
.no-photo{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:11px}.no-photo>span{font-size:26px;opacity:.6}
.photo-caption{position:absolute;bottom:6px;left:6px;padding:3px 5px;border-radius:4px;background:#0009;color:#fff;font-size:9px}
.candidate .info{padding:12px 42px 12px 12px}.candidate .toggle{position:absolute;top:auto;right:8px;margin-top:-38px}
.candidate .info strong,.stop-title strong{font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.stop-body{padding:12px;border:0;border-radius:0;box-shadow:none}.stop-tools button{min-width:36px;min-height:30px}
.empty-slot{aspect-ratio:1;display:grid;place-items:center;border:1px dashed #ccd8cf;color:#86968c;background:#f1f5f0;font-size:11px}
.photo-credit{padding:0 10px 10px;font-size:10px;color:#758078;overflow-wrap:anywhere}.photo-credit summary{cursor:pointer}.photo-credit span{display:block;font-size:9px;margin-top:4px}
#detail{position:static;max-width:none;margin:0 0 16px;padding:18px;border:1px solid #dce5df;box-shadow:none;z-index:auto}
#detail[hidden]{display:none}#detail .primary{max-width:220px}
#more-tiles{margin-top:16px}.feasibility{font-size:11px}
@media(max-width:600px){.explorer{padding:12px 10px 4px}.places-pane,.itinerary-pane{padding:18px 10px}.scene-wrap{height:300px}#stops,#candidates{gap:6px}.candidate,.stop{border-radius:8px}.candidate .info{padding:8px 5px 36px}.candidate .info strong,.stop-title strong{font-size:11px}.candidate .info small,.stop small{font-size:9px}.candidate .toggle{margin-top:-32px}.stop-body{padding:7px}.tile-number{top:5px;left:5px;width:23px;height:23px;font-size:11px}.photo-caption{font-size:8px}.photo-credit{padding:0 5px 7px;font-size:9px}.stop-tools{gap:3px}.stop-tools button{min-width:28px;padding:3px}.empty-slot{font-size:9px}.view-description p{font-size:9px}}

/* Keep map annotations outside the SDK zoom controls. */
.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;min-height:36px}
.map-toolbar .scene-badge{position:static;max-width:none;z-index:auto;background:transparent;padding:0;pointer-events:none}
.map-toolbar #reset-camera{position:static;z-index:auto;min-height:36px;flex-shrink:0}

.information-pane,.information-scroll{min-width:0}
.information-scroll{display:flex;flex-direction:column}
.information-pane>#detail{margin:16px 24px}
@media(min-width:901px){
 body{height:100dvh;display:flex;flex-direction:column;overflow:hidden}
 body>header,body>.trip-heading,body>.location-bar,body>#notice,body>footer{flex-shrink:0}
 .trip-heading{padding:14px 24px}.trip-heading h1{font-size:26px}
 .workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);flex:1;min-height:0;max-width:none;width:100%;overflow:hidden}
 .workspace>.explorer{grid-column:1;order:0;display:flex;flex-direction:column;min-height:0;padding:12px 16px}
 .scene-heading{margin-bottom:8px}.scene-wrap{flex:1;min-height:150px;height:auto}
 .view-description{padding:8px 0}.event-reference{padding:6px 10px}.event-reference p{margin:0}
 .information-pane{display:flex;flex-direction:column;min-height:0;border-left:1px solid #dce5df;overflow:hidden}
 .information-pane>#detail{flex-shrink:0;max-height:42%;overflow:auto;margin:12px 16px;padding:12px}
 .information-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 16px}
 .information-scroll>.places-pane{order:0;padding:16px 0}.information-scroll>.itinerary-pane{order:1;padding:16px 0}
 #legend{flex-wrap:wrap;gap:6px;right:12px}
}
@media(max-width:900px){.information-pane{order:1}.information-pane>#detail{margin:12px 10px}}

#detail h3{font-size:16px;line-height:1.45;padding-right:24px}
#detail .detail-place{font-size:12px;color:#526c60;margin:6px 0}
#detail .detail-summary{font-size:12px;color:#65716b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:6px 0 10px}
.detail-evidence{font-size:10px;color:#84918a;margin-top:8px}.detail-evidence>summary{cursor:pointer}

.explorer>#legend{position:static;flex-shrink:0;max-width:none;margin:6px 0 0;padding:4px 0;background:transparent;z-index:auto;pointer-events:none}
#scene-note[hidden]{display:none}

/* A lightweight virtual scene works without WebGL or map authentication. */
#virtual-space{position:absolute;inset:0;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 20% 10%,#f6e9d9 0,transparent 50%),radial-gradient(ellipse at 85% 90%,#c8e3da 0,transparent 55%),#eaf1eb}
#virtual-space[hidden]{display:none}
.space-halo{position:absolute;width:75%;aspect-ratio:1;border:1px solid #ffffffa0;border-radius:50%;left:12.5%;top:15%;box-shadow:0 0 0 35px #ffffff18,0 0 0 70px #ffffff12;transform:rotateX(55deg)}
.space-origin{position:absolute;left:50%;top:53%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;text-align:center;width:190px;pointer-events:none;color:#395e51}
.space-origin>span{font-size:38px;line-height:1.4;text-shadow:0 4px 18px #91c7af}.space-origin strong{font-size:13px}.space-origin small{font-size:10px;margin-top:5px;max-width:170px}
.space-place{position:absolute;display:flex;flex-direction:column;align-items:center;gap:6px;width:30%;max-width:180px;border:0;background:transparent;text-align:center;animation:space-float 5s ease-in-out infinite;animation-delay:var(--delay);padding:6px;cursor:pointer}
.space-slot-0{left:4%;top:7%}.space-slot-1{right:4%;top:9%}.space-slot-2{left:35%;bottom:3%}
.space-orb{display:grid;place-items:center;width:70px;height:70px;border-radius:50%;background:radial-gradient(circle at 30% 20%,white,color-mix(in srgb,var(--c),white 65%));box-shadow:0 14px 24px #496d5826,inset 0 0 0 1px #ffffffb0;overflow:hidden;font-size:25px;color:var(--c);transition:transform .2s,box-shadow .2s}
.space-orb img{width:100%;height:100%;object-fit:cover}.space-place strong{font-size:12px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#263f35}.space-place small{font-size:10px;color:#536e61}
.space-place:hover,.space-place:focus-visible,.space-place[aria-pressed=true]{animation-play-state:paused}.space-place:hover .space-orb,.space-place[aria-pressed=true] .space-orb{transform:scale(1.08);box-shadow:0 14px 26px #496d5840,0 0 0 3px #fff}
.space-empty{position:absolute;bottom:12%;width:100%;text-align:center;font-size:12px;color:#617b6d;line-height:1.8}
#next-space{width:auto;align-self:flex-end;margin:0 0 8px;padding:7px 12px;flex-shrink:0}
.space-mode .scene-wrap{min-height:360px}.space-mode #legend{display:none}.space-mode .scene-heading h2{font-size:16px}
@keyframes space-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(prefers-reduced-motion:reduce){.space-place{animation:none}}
@media(max-width:600px){.space-mode .scene-wrap{height:390px}.space-orb{width:58px;height:58px}.space-place strong{font-size:11px}.space-place small{font-size:9px}.space-origin{width:140px}.space-origin small{max-width:120px}}
@media(min-width:901px) and (max-height:820px){.space-mode .scene-wrap{min-height:230px}.space-mode .view-description{padding:3px 0}.space-mode .event-reference{padding:4px 6px}.space-mode .event-reference p{font-size:9px}.space-orb{width:50px;height:50px}.space-slot-2{left:35%;bottom:1%}.space-origin{top:48%}}

.space-origin>span{animation:space-float 6s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.space-origin>span{animation:none}}

.space-halo{aspect-ratio:auto;height:65%;top:20%}
.space-origin{top:42%}
.space-place{animation:none}
.space-orb{animation:space-float 5s ease-in-out infinite;animation-delay:var(--delay)}
.space-place:hover .space-orb,.space-place:focus-visible .space-orb,.space-place[aria-pressed=true] .space-orb{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.space-orb{animation:none}}

.map-toolbar #next-space{margin:0 0 0 auto;align-self:center;font-size:11px}
.event-reference details{font-size:10px}.event-reference summary{cursor:pointer}
@media(min-width:901px){.space-mode .scene-wrap{min-height:220px}.space-mode .explorer{overflow-y:auto}.space-mode .map-toolbar{gap:6px}.space-mode .view-description{padding:5px 0}}

.space-origin.has-origin{top:32%;width:135px}.space-origin.has-origin>span{font-size:26px}.space-origin.has-origin>small{display:none}
