:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;color:#222;background:#fff;font-synthesis:none;--brand:#9A5DF8;--action:#7E36ED;--soft:#F4EEFF;--muted:#555D6D;--line:#DCDEE3;--surface:#F3F4F5;--ease:cubic-bezier(.35,0,.35,1);--enter:cubic-bezier(0,0,.15,1);--micro:150ms;--page:300ms}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{border:0;border-radius:12px;background:var(--surface);color:#222;min-height:52px;padding:14px 20px;font-size:16px;font-weight:700;cursor:pointer;transition:background var(--micro) var(--ease),color var(--micro) var(--ease),transform var(--micro) var(--ease)}button:hover{background:#EEEFF1}button:active{transform:scale(.98)}button:focus-visible,a:focus-visible,summary:focus-visible,.place:focus-visible{outline:3px solid #5E98FE;outline-offset:3px}button.primary{background:var(--action);color:white;font-size:18px}button.primary:hover{background:#6925D4}button.selected{background:var(--soft);color:var(--action);box-shadow:inset 0 0 0 1px var(--brand)}[hidden]{display:none!important}
main{min-height:100dvh;padding-top:80px;padding-right:440px;background:#f5f5f7}header{position:absolute;inset:0 0 auto;height:80px;display:flex;align-items:center;gap:24px;padding:0 32px;background:white;border-bottom:1px solid #eee;z-index:5}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#222;font-weight:700;font-size:20px;white-space:nowrap}.brand-symbol{display:grid;place-items:center;background:var(--brand);color:white;width:32px;height:32px;border-radius:10px;font-size:25px}.header-caption{color:var(--muted);font-size:14px}.demo-label{margin-left:auto;font-size:12px;color:var(--muted);background:var(--surface);padding:6px 10px;border-radius:8px}header button{min-height:40px;background:white;padding:8px 12px;font-size:14px;font-weight:500}
#festival-map{position:absolute;top:210px;left:16px;width:calc(100% - 464px);height:calc(100dvh - 300px);overflow:visible}.map-heading{position:absolute;top:116px;left:40px;pointer-events:none}.map-heading>span{font-size:14px;font-weight:700;color:var(--action)}.map-heading>strong{display:block;font-size:32px;line-height:42px;letter-spacing:-1.2px;margin-top:12px}.map-heading p{font-size:14px;color:var(--muted);margin:12px 0}.map-legend{position:absolute;bottom:72px;left:40px;font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:center}.map-legend i{width:8px;height:8px;border-radius:50%;background:var(--action)}.map-legend>span{margin-left:16px}.source{position:absolute;bottom:44px;left:40px;font-size:10px;color:var(--muted)}.source a{color:inherit}.education{position:absolute;bottom:14px;left:40px;font-size:12px;font-weight:700;color:#555D6D}.education span{font-size:10px;font-weight:400;margin-right:8px}
.geo-water{fill:#BBB2ED}.geo-park{fill:#e9e9ed}.geo-castle{fill:#e0dce8}.geo-road-edge{fill:none;stroke:#dedee3;stroke-width:9;stroke-linejoin:round}.geo-road{fill:none;stroke:white;stroke-width:6;stroke-linejoin:round}.geo-road-edge.minor{stroke-width:3;stroke:#e5e5ea}.geo-road.minor{stroke-width:2}.geo-building{fill:#e7e7ec;stroke:#dddde3;stroke-width:.5}.area-label{fill:#8c879c;font-size:18px;font-weight:500;letter-spacing:4px}.route{fill:none;stroke:var(--brand);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:.65}.compare-route{fill:none;stroke:#818899;stroke-width:3;stroke-dasharray:8 8;opacity:.65}.compare-route.alt{stroke:#9c8877}.place{cursor:pointer;pointer-events:bounding-box}.place .hit-area{fill:transparent;stroke:none;pointer-events:all}.place .base{fill:white;stroke:#9c97ab;stroke-width:2;transition:fill 150ms var(--ease),stroke 150ms var(--ease)}.place .pulse{fill:transparent;stroke:transparent}.place.selected .base{fill:var(--action);stroke:transparent;stroke-width:0}.place-label{font-size:17px;font-weight:700;fill:#55515e;paint-order:stroke;stroke:#f5f5f7;stroke-width:5px;stroke-linejoin:round}.selected .place-label{fill:#6925D4}.pin-number{text-anchor:middle;fill:white;font-size:13px;font-weight:700;pointer-events:none}.place:hover .base{stroke:var(--action)}.place.issue-mark .base{stroke:#921708;stroke-width:4}.just-added .pulse{animation:pin-arrive 300ms var(--enter)}#traveler{transition:transform 300ms var(--enter);pointer-events:none}#traveler circle:first-child{fill:var(--brand);opacity:.2}#traveler circle:last-child{fill:var(--action);stroke:white;stroke-width:3}
section{position:absolute;top:80px;right:0;bottom:0;width:440px;background:white;padding:40px 32px 28px;overflow-y:auto;border-left:1px solid #eee;animation:panel-enter var(--page) var(--enter)}.step{display:block;color:var(--action);font-size:14px;line-height:19px;font-weight:700;margin-bottom:16px}h1{font-size:26px;line-height:35px;letter-spacing:-.8px;margin:0 0 20px;font-weight:700}p{font-size:14px;line-height:22px;color:var(--muted)}.intro-copy{font-size:16px;line-height:26px;margin-bottom:28px}.origin-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.origin-options button{text-align:left;min-height:60px;font-size:16px;background:#f7f7f9}.origin-options button:hover{background:var(--soft);color:var(--action)}.platform-note{margin-top:40px;border-top:1px solid #eee;padding-top:24px}.platform-note strong{display:block;font-size:14px;font-weight:700}.platform-note span{display:block;font-size:12px;line-height:20px;color:var(--muted);margin-top:8px}
.typing-hud{display:flex;gap:20px;order:5;padding:16px 0;border-top:1px solid #eee;margin-top:20px}.typing-hud>div{display:flex;flex-direction:column;gap:4px}.typing-hud strong{font-size:16px;font-weight:500;font-variant-numeric:tabular-nums}.typing-hud span{font-size:11px;color:var(--muted)}#typing{display:flex;flex-direction:column}.sheet-head{order:0;position:relative}.sheet-head h1{padding-right:36px}.sheet-head #count{position:absolute;right:0;bottom:23px;color:var(--action);font-size:14px}.typing-stage{order:1;margin:4px 0 24px;padding:24px 0;border-bottom:1px solid #eee}.typing-target{font-size:28px;line-height:38px;letter-spacing:-1px;font-weight:700;overflow-wrap:anywhere}.typing-target .hit{color:var(--action)}.typing-target .rest{color:#76717e}.typing-target .miss{color:#921708}#typing-target-note{display:block;margin-top:10px;font-size:12px;line-height:19px;color:var(--muted)}#typing-prev,#typing-next{display:none}.typing-row{order:2;display:flex;flex-wrap:wrap;gap:12px}.typing-row input{width:100%}.typing-row button{width:100%}input{width:100%;min-height:52px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;color:#222;background:white;font-size:16px;outline:none;transition:border-color 150ms var(--ease),box-shadow 150ms var(--ease)}input:focus{border-color:var(--action);box-shadow:0 0 0 3px var(--soft)}input::placeholder{color:#777D88}.suggestions{order:2;margin-top:8px}.suggestion{width:100%;display:flex;text-align:left;align-items:center;gap:12px;background:white;border-radius:8px;padding:12px 8px;font-weight:500}.suggestion.active{background:var(--soft)}.suggestion strong{font-size:16px;font-weight:500}.suggestion small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.candidate-icon{width:36px;height:36px;display:grid;place-items:center;background:var(--soft);color:var(--action);border-radius:12px;font-size:22px}.candidate-enter{margin-left:auto;color:#777}.route-now{display:none}.typing-feedback{order:3;font-size:12px;line-height:19px;color:var(--muted);margin-top:24px}.typing-route{order:3}.route-list{margin:16px 0;display:flex;flex-direction:column;gap:0}.route-step{display:flex;align-items:center;gap:12px;min-height:52px;border-bottom:1px solid #f0f0f3;font-size:14px}.route-step strong{font-weight:500}.step-index{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--action);font-size:12px;font-weight:700}.route-remove{margin-left:auto;min-height:44px;min-width:44px;background:white;padding:8px;font-size:20px;font-weight:400;color:var(--muted)}.route-empty{font-size:12px;color:var(--muted)}#input-status{order:4;font-size:12px;line-height:19px;margin:8px 0;min-height:19px}.side-card>button{width:100%;margin-top:12px}.issue-options{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.issue-options button{font-size:14px;padding:12px 16px;min-height:48px}.actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}#issue-note label{font-size:14px;line-height:22px}#issue-note input{margin-top:12px}#issue-note small{display:block;text-align:right;color:var(--muted);margin-top:8px}#issue-status{min-height:22px}
.result-summary{display:flex;flex-direction:column;gap:0;margin:24px 0}.result-summary>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #eee}.result-summary strong{font-size:16px;font-weight:500;order:2;text-align:right}.result-summary small{font-size:14px;color:var(--muted)}.result-summary>div:first-child strong{font-size:26px;font-weight:700;color:var(--action)}#result-text{display:none}.result-note{font-size:12px;line-height:20px;border-top:1px solid #eee;padding-top:16px;margin-top:24px;color:var(--muted)}summary{cursor:pointer;font-size:14px}.result-note p{font-size:12px}#compare-note{font-size:12px;line-height:19px}#dashboard,#next{width:100%;margin-top:8px;background:white;color:var(--muted);font-size:14px;font-weight:500}
@keyframes panel-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pin-arrive{from{fill:#9A5DF8;opacity:.4}to{fill:#9A5DF8;opacity:0}}
@media(min-width:1500px){main{padding-right:480px}section{width:480px;padding:48px 40px}#festival-map{width:calc(100% - 512px)}.map-heading{left:56px;top:128px}.map-heading>strong{font-size:40px;line-height:52px}.typing-target{font-size:32px;line-height:42px}}
@media(max-width:1000px){main{padding-right:380px}section{width:380px;padding:32px 24px}header{padding:0 20px;gap:12px}.header-caption{display:none}#festival-map{width:calc(100% - 396px)}.map-heading{left:24px}.map-heading>strong{font-size:26px;line-height:35px}.map-heading p{max-width:220px}.map-legend,.source,.education{left:24px}.map-legend>span{display:none}}
@media(max-width:700px){main{padding:64px 0 0;display:flex;flex-direction:column;min-height:100dvh}header{height:64px;padding:0 16px;gap:8px}.brand{font-size:16px;gap:8px}.brand-symbol{width:28px;height:28px;font-size:22px}.demo-label{font-size:10px;padding:4px 6px}header button{font-size:12px;padding:8px;min-width:40px}#sound{display:none}.map-heading{position:relative;top:auto;left:auto;margin:24px 24px 0}.map-heading>span{font-size:12px}.map-heading>strong{font-size:26px;line-height:35px;margin-top:8px}.map-heading>strong br{display:none}.map-heading p{font-size:12px;margin:8px 0 0;max-width:none}#festival-map{position:relative;order:0;top:auto;left:auto;width:100%;height:290px;margin-top:110px;margin-bottom:0}.map-heading{position:absolute;top:64px}.map-legend{position:static;padding:0 24px 16px;font-size:11px}.source{position:static;order:10;padding:16px 24px 8px;font-size:9px}.education{position:static;order:11;padding:0 24px 20px}section{position:relative;inset:auto;width:100%;padding:28px 24px 32px;border:0;border-radius:24px 24px 0 0;overflow:visible;min-height:380px;box-shadow:0 -1px 0 #ececf0}.step{margin-bottom:12px}h1{font-size:26px;line-height:35px}.intro-copy{font-size:14px;line-height:22px}.platform-note{margin-top:28px}.typing-stage{padding:12px 0;margin-bottom:20px}.typing-target{font-size:26px;line-height:35px}.typing-hud{justify-content:space-between}.route-list{margin:12px 0}.result-summary{margin:20px 0}.place-label{font-size:21px}.place .base{r:17px}.pin-number{font-size:15px}}
#done{order:3;margin-top:12px;flex-shrink:0}.typing-stage,.typing-row,.typing-hud{flex-shrink:0}body[data-stage="origin"] .place{cursor:default}body[data-stage="origin"] .map-heading p{visibility:hidden}
.festival-brand{display:flex;align-items:center;flex-shrink:0}.festival-brand img{width:220px;height:48px;object-fit:contain}.experience-brand{border-left:1px solid var(--line);padding-left:24px;display:flex;flex-direction:column;gap:4px}.experience-brand>span{font-size:12px;color:var(--muted)}.experience-brand .brand{font-size:18px}.festival-footer{position:absolute;bottom:0;left:0;right:0;min-height:84px;background:white;border-top:1px solid #eee;display:flex;align-items:center;gap:32px;padding:16px 32px;z-index:4}.city-brand,.education-brand{display:flex;align-items:center;gap:16px}.city-brand>span,.education-brand>span{font-size:11px;color:var(--muted)}.city-brand img{width:86px;height:48px;object-fit:contain;display:block}.education-brand{border-left:1px solid #eee;padding-left:32px}.education-brand strong{font-size:16px;color:#222;font-weight:700}.festival-footer>p{margin:0 0 0 auto;font-size:12px;line-height:20px;text-align:right}.festival-footer>p span{display:block;color:#777;font-size:11px}section{bottom:84px}#festival-map{height:calc(100dvh - 364px)}.map-legend{bottom:128px}.source{bottom:104px}
@media(max-width:1000px){.festival-brand img{width:190px}.experience-brand{padding-left:16px}.experience-brand>span{display:none}.festival-footer{padding:16px 24px;gap:20px}.education-brand{padding-left:20px}.education-brand strong{font-size:14px}.festival-footer>p{max-width:210px;font-size:11px}}
@media(max-width:700px){header{height:112px;flex-wrap:wrap;align-content:center;gap:8px 12px}.festival-brand{width:100%;height:42px}.festival-brand img{width:205px;height:42px;object-position:left}.experience-brand{border:0;padding:0}.experience-brand .brand{font-size:14px}.demo-label{margin-left:auto}.festival-footer{position:static;order:12;flex-wrap:wrap;padding:24px;gap:20px 24px}.city-brand,.education-brand{gap:8px}.city-brand{flex:1}.city-brand>span,.education-brand>span{font-size:10px}.education-brand{flex:1;border:0;padding:0;align-items:flex-start;flex-direction:column}.education-brand strong{font-size:13px;line-height:20px}.city-brand img{width:76px;height:44px}.festival-footer>p{margin:0;border-top:1px solid #eee;padding-top:16px;width:100%;max-width:none;text-align:left}main{padding-top:112px}.map-heading{top:112px}#festival-map{height:260px}section{bottom:auto}.source{padding-bottom:20px}.map-legend{position:static}}
.festival-brand{gap:12px;text-decoration:none;color:#222}.festival-brand img{width:64px;height:48px}.festival-brand>span{font-size:19px;font-weight:700;white-space:nowrap}.festival-brand small{display:block;font-size:8px;font-weight:500;letter-spacing:.5px;margin-top:5px}
@media(max-width:700px){.festival-brand{gap:10px}.festival-brand img{width:52px;height:40px}.festival-brand>span{font-size:18px}.festival-brand small{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


/* Stage 2: map maker hierarchy */
.map-heading>strong{color:#1A1C20;text-wrap:balance}.map-heading p{max-width:360px}.typing-hud{opacity:.72}.typing-hud strong#typing-speed{color:var(--action);font-weight:800}.map-place-card{width:140px;height:88px;border-radius:14px;border:1px solid #DCDEE3;background:#FFFFFF;box-shadow:0 10px 24px rgba(32,24,48,.14);overflow:hidden;opacity:.78;transform:translateY(0) scale(.96);transition:opacity .18s var(--ease),transform .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease)}.map-place-card img,.map-card-empty{display:block;width:100%;height:56px;object-fit:cover;background:linear-gradient(135deg,#F3F4F5,#F4EEFF)}.map-place-card span{display:block;padding:7px 9px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:800;color:#555D6D}.map-place-card b{position:absolute;right:8px;top:8px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--action);color:#fff;font-size:13px;font-weight:800;box-shadow:0 8px 16px rgba(126,54,237,.32)}.map-place-card.is-on{opacity:1;border-color:#FCAF17;transform:translateY(-5px) scale(1);box-shadow:0 18px 38px rgba(126,54,237,.22)}.map-place-card.has-issue{border-color:#F37021}.place-card-fo{overflow:visible;pointer-events:none}.suggestion{min-height:72px;border:1px solid transparent}.suggestion .thumb{width:68px;height:48px;flex:0 0 auto;border-radius:12px;object-fit:cover;border:1px solid #EEEFF1}.candidate-enter{font-size:12px;border:1px solid #DCDEE3;border-radius:8px;padding:4px 7px;color:#555D6D}.result-card{background:linear-gradient(180deg,#fff,#faf7ff)}.result-card h1{color:#1A1C20}.route-step{background:#fff}.route-thumb{width:56px;height:38px;border-radius:10px;object-fit:cover;border:1px solid #EEEFF1}.route-thumb.placeholder{display:grid;place-items:center;background:#F3F4F5;color:#777D88;font-size:10px}.route-step{display:grid;grid-template-columns:24px 56px minmax(0,1fr) auto}.route-step strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-remove{justify-self:end}@media(max-width:700px){.map-place-card{width:118px;height:76px}.map-place-card img,.map-card-empty{height:48px}.map-place-card span{font-size:11px;padding-top:5px}.typing-hud{display:none}.suggestion .thumb{width:58px;height:42px}.route-step{grid-template-columns:24px 48px minmax(0,1fr) auto}.route-thumb{width:48px;height:34px}}
/* Stage 3: map response, result poster, and resilient states */
.place-label{display:none}.place .base{filter:drop-shadow(0 3px 7px rgba(26,28,32,.18))}.place.selected .base{filter:drop-shadow(0 0 10px rgba(154,93,248,.9))}.place.selected .pulse{stroke:#FCAF17;stroke-width:3}.route{stroke-width:5;filter:drop-shadow(0 3px 5px rgba(126,54,237,.25));stroke-dasharray:8 6;animation:route-draw .5s var(--enter)}.map-place-card{position:relative}.map-place-card::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);pointer-events:none}.map-place-card.is-on span{color:#6925D4}.place:focus-visible{outline:none}.place:focus-visible .base{stroke:#5E98FE;stroke-width:5}.typing-row input[aria-invalid="true"]{border-color:#FA342C;box-shadow:0 0 0 2px rgba(250,52,44,.12)}#input-status.error{color:#921708;font-weight:700}.result-card{background:#F4EEFF;padding:20px 22px 24px}.result-card>.step{margin-bottom:10px}.result-poster{position:relative;overflow:hidden;border-radius:20px;padding:22px;background:radial-gradient(circle at 82% 14%,rgba(252,175,23,.34) 0 3px,transparent 4px),radial-gradient(circle at 74% 23%,rgba(255,255,255,.4) 0 2px,transparent 3px),linear-gradient(145deg,#31145F 0%,#6324A7 52%,#9A5DF8 100%);color:white;box-shadow:0 20px 40px rgba(62,27,100,.24)}.result-poster::before,.result-poster::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.17)}.result-poster::before{width:180px;height:180px;right:-74px;top:-74px}.result-poster::after{width:120px;height:120px;right:-48px;top:-44px}.poster-kicker,.poster-signature{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:1}.poster-kicker span,.poster-signature span{font-size:10px;letter-spacing:.08em;color:rgba(255,255,255,.75)}.poster-kicker i{font-style:normal;color:#FCAF17;font-size:18px}.result-poster h1{position:relative;z-index:1;margin:12px 0 8px;color:white;font-size:25px;line-height:34px;letter-spacing:-.8px}.result-poster #result-text{display:block;margin:0 0 14px;color:rgba(255,255,255,.72);font-size:11px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-poster .result-summary{position:relative;z-index:1;display:grid;grid-template-columns:.8fr 1.5fr .9fr;gap:6px;margin:0 0 12px}.result-poster .result-summary>div{min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;padding:10px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.09)}.result-poster .result-summary strong,.result-poster .result-summary>div:first-child strong{order:0;max-width:100%;font-size:14px;line-height:20px;font-weight:700;color:white;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-poster .result-summary small{font-size:9px;color:rgba(255,255,255,.66)}.result-poster .result-route{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}.result-poster .route-step{display:flex;min-height:30px;width:auto;border:0;border-radius:999px;padding:4px 9px 4px 5px;gap:6px;background:rgba(255,255,255,.14);color:white}.result-poster .step-index{width:20px;height:20px;background:#FCAF17;color:#31145F;font-size:10px}.result-poster .route-step strong{font-size:10px}.poster-signature{border-top:1px solid rgba(255,255,255,.18);padding-top:10px}.poster-signature strong{font-size:12px}.result-card .result-note{margin:12px 0 0;padding-top:10px}.result-card .result-note summary{font-size:12px}.result-card .result-note p{margin:8px 0}.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.result-actions button{min-height:44px;padding:10px;font-size:13px}.result-card>#dashboard,.result-card>#next{display:inline-flex;width:calc(50% - 5px);min-height:40px;margin-top:8px;align-items:center;justify-content:center}.result-card>#next{margin-left:6px}@keyframes route-draw{from{stroke-dashoffset:32;opacity:.2}to{stroke-dashoffset:0;opacity:.65}}
.place:not(.selected) .base{fill:transparent;stroke:transparent;filter:none}.place:not(.selected):hover .base{fill:rgba(154,93,248,.12);stroke:#9A5DF8;stroke-width:2}.place:not(.selected):focus-visible .base{fill:rgba(94,152,254,.12);stroke:#5E98FE;stroke-width:4}
@media(max-height:680px) and (min-width:701px){section{padding-top:22px;padding-bottom:18px}.result-card{padding-top:14px}.result-poster{padding:16px 18px}.result-poster h1{font-size:21px;line-height:28px;margin:7px 0}.result-poster .result-summary{margin-bottom:8px}.result-poster .result-summary>div{padding:7px}.result-poster .result-route{margin-bottom:8px}.poster-signature{padding-top:7px}.result-card .result-note{margin-top:8px}.result-actions{margin-top:6px}}
@media(max-width:700px){.place-card-fo .map-place-card{display:none}.place.selected .map-place-card{display:block;width:104px;height:67px}.place.selected .map-place-card img,.place.selected .map-card-empty{height:42px}.place.selected .map-place-card span{font-size:10px;padding:4px 6px}.result-card{padding:20px 16px 28px}.result-poster{padding:20px 16px}.result-poster h1{font-size:23px;line-height:31px}.result-poster .result-summary{grid-template-columns:1fr 1.3fr 1fr}.result-poster .result-summary>div{padding:8px}.result-actions{grid-template-columns:1fr}.result-card>#dashboard,.result-card>#next{width:100%;margin-left:0}.result-poster .result-route{max-height:70px;overflow:auto}}
.route-name{min-width:0;display:flex;flex-direction:column;gap:2px}.place-name-en{display:block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777D88;font-size:10px;line-height:14px;font-weight:500;letter-spacing:0}.result-poster .route-name{max-width:190px}.result-poster .place-name-en{color:rgba(255,255,255,.64);font-size:8px;line-height:11px}@media(max-width:700px){.place-name-en{display:none}}
.map-place-card{opacity:.62;transform:translateY(0) scale(.93);box-shadow:0 5px 14px rgba(32,24,48,.08);border-color:#D9DAE0}.map-place-card img{filter:saturate(.68) brightness(.92);transition:filter .18s var(--ease)}.map-place-card.is-on{opacity:1;transform:translateY(-6px) scale(1.03);border:2px solid var(--action);box-shadow:0 0 0 3px rgba(252,175,23,.36),0 18px 38px rgba(126,54,237,.3)}.map-place-card.is-on img{filter:saturate(1.08) brightness(1.04)}.result-value-link{margin:12px 2px 0;padding:11px 13px;border-radius:12px;background:#fff;color:#555D6D;font-size:12px;line-height:19px;font-weight:600}


/* Sharp MVP: four-screen, 60-second demonstration */
.sharp-mvp .typing-hud,.sharp-mvp #compare-note,.sharp-mvp #traveler{display:none!important}.sharp-mvp fieldset{border:0;padding:0;margin:24px 0}.sharp-mvp legend{margin-bottom:12px;font-size:13px;font-weight:700;color:#555D6D}.sharp-mvp .origin-field{margin:26px 0 18px}.sharp-mvp #start{width:100%}.sharp-mvp button.selected{background:#F4EEFF;color:#6925D4;box-shadow:inset 0 0 0 2px #9A5DF8}.sharp-mvp button:disabled{background:#E9EAED;color:#9A9DA5;cursor:not-allowed}.sharp-mvp .privacy-note{margin-top:14px;font-size:12px}.sharp-mvp .compact-guide{margin:-8px 0 12px}.sharp-mvp .typing-stage{padding:12px 0 16px;margin-bottom:14px}.sharp-mvp .typing-feedback{margin-top:16px}.sharp-mvp #done{margin-top:8px}.sharp-mvp .bottom-card fieldset{margin:18px 0}.sharp-mvp .issue-options{margin:0}.sharp-mvp .issue-options button.selected{background:#6925D4;color:white;box-shadow:none}.sharp-mvp #other-place-wrap{margin-top:10px}.sharp-mvp .issue-text-label{display:block;margin-top:18px;font-size:13px;font-weight:700;color:#555D6D}.sharp-mvp .issue-text-label input,.sharp-mvp #other-place-wrap input{margin-top:8px}.sharp-mvp .char-count{display:block;margin-top:6px;text-align:right;color:#777D88}.sharp-mvp #issue-status{font-size:12px;color:#6925D4}.sharp-mvp .result-poster .result-route{max-height:112px;overflow:auto}.sharp-mvp .result-meta{margin:8px 2px 0;font-size:11px;line-height:18px}.sharp-mvp .result-actions{grid-template-columns:1fr}.sharp-mvp .result-actions button{width:100%;margin:0}.sharp-mvp .route{display:none}.sharp-mvp .map-legend span{color:#777D88}.sharp-mvp .result-poster .place-name-en{display:none}
@media(max-height:680px) and (min-width:701px){.sharp-mvp .bottom-card{padding-top:16px}.sharp-mvp .bottom-card h1{font-size:22px;line-height:29px;margin-bottom:8px}.sharp-mvp .bottom-card>p{margin:4px 0}.sharp-mvp .bottom-card fieldset{margin:10px 0}.sharp-mvp .issue-options button{min-height:40px;padding:8px 12px}.sharp-mvp .issue-text-label{margin-top:10px}.sharp-mvp .actions{margin-top:10px;gap:6px}.sharp-mvp .actions button{min-height:40px;padding:8px}}

/* 2026-09-09 Official Jinju Namgang Yudeung Festival CI/CL theme
   Source: https://yudeung.com/sub1_4
   Orange #ec6707 · Yellow #f9b000 · Blue #0069b4 · Teal #009ba4 · Black #000000 */
:root{
  --brand:#0069b4;
  --action:#ec6707;
  --action-pressed:#c94f00;
  --lantern:#f9b000;
  --water:#009ba4;
  --ink:#000000;
  --ink-soft:#32363d;
  --muted:#646b76;
  --line:#dde3ea;
  --surface:#f4f8fb;
  --soft:#fff4e8;
  --blue-soft:#eaf5fb;
  --teal-soft:#e7f7f7;
}
body{color:var(--ink);background:#f7fafc;}
main{background:linear-gradient(180deg,#f7fafc 0%,#f2f7fa 100%);}
header{background:rgba(255,255,255,.94);border-bottom-color:#dce7ef;box-shadow:0 8px 24px rgba(0,105,180,.07);backdrop-filter:blur(10px)}
.festival-brand{color:var(--ink)}
.festival-brand img{width:72px;height:44px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.08))}
.festival-brand>span{font-size:18px;letter-spacing:-.4px}.festival-brand small{color:var(--brand);letter-spacing:.08em}
.experience-brand{border-left-color:#dce7ef}.experience-brand .brand{color:var(--brand)}
.demo-label{color:var(--brand);background:var(--blue-soft);font-weight:800}
header button{color:var(--ink-soft);border:1px solid transparent}header button:hover{background:var(--blue-soft);color:var(--brand)}
button.primary{background:var(--action);color:#fff;box-shadow:0 10px 22px rgba(236,103,7,.22)}
button.primary:hover{background:var(--action-pressed)}
button.selected{background:var(--soft);color:var(--action);box-shadow:inset 0 0 0 2px rgba(236,103,7,.45)}
.map-heading>span,.step{color:var(--action)}.map-heading>strong{color:var(--ink)}
.map-legend i{background:var(--action);box-shadow:0 0 0 5px rgba(249,176,0,.24)}
.geo-water{fill:#b8e1e3}.geo-park{fill:#e9f3ee}.geo-castle{fill:#e6edf5}.geo-road-edge{stroke:#d9e0e6}.geo-building{fill:#e9edf2;stroke:#d8dee6}.area-label{fill:#65707c}.route{stroke:var(--brand);filter:drop-shadow(0 3px 5px rgba(0,105,180,.26))}.compare-route{stroke:#697481}.compare-route.alt{stroke:var(--water)}
.place .base{stroke:#8494a3}.place:hover .base{stroke:var(--action)}.place.selected .base{fill:var(--action);stroke:#fff;stroke-width:2}.place.selected .pulse{stroke:var(--lantern);stroke-width:4}.place.selected .base{filter:drop-shadow(0 0 12px rgba(249,176,0,.88))}.place.issue-mark .base{stroke:#d5392f}.pin-number{fill:#fff}.just-added .pulse{animation:pin-arrive 360ms var(--enter)}
@keyframes pin-arrive{from{stroke:var(--lantern);opacity:.75;stroke-width:8}to{stroke:var(--lantern);opacity:0;stroke-width:1}}
section{border-left-color:#dce7ef;background:#fff}.origin-options button{background:#f7fafc}.origin-options button:hover{background:var(--blue-soft);color:var(--brand)}
.typing-target .hit{color:var(--action)}.typing-target .rest{color:#a2a8b0}.typing-target .miss{color:#d5392f}input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(0,105,180,.14)}
.suggestion.active{background:linear-gradient(90deg,var(--soft),#fff)}.candidate-icon{background:var(--soft);color:var(--action)}.candidate-enter{border-color:#dce7ef;color:var(--brand);background:#fff}.step-index{background:var(--blue-soft);color:var(--brand)}
.map-place-card{border-color:#dce7ef;box-shadow:0 8px 20px rgba(0,38,72,.12)}.map-place-card img,.map-card-empty{background:linear-gradient(135deg,var(--blue-soft),#fff7df)}.map-place-card.is-on{border:2px solid var(--action);box-shadow:0 0 0 4px rgba(249,176,0,.34),0 18px 38px rgba(0,105,180,.22)}.map-place-card.is-on span{color:var(--brand)}.map-place-card.has-issue{border-color:#d5392f}
.sharp-mvp button.selected{background:var(--soft);color:var(--action);box-shadow:inset 0 0 0 2px var(--action)}.sharp-mvp .issue-options button.selected{background:var(--brand);color:white}.sharp-mvp #issue-status{color:var(--brand)}
.result-card{background:linear-gradient(180deg,#eef8fa,#fff7df)}.result-poster{background:radial-gradient(circle at 82% 14%,rgba(249,176,0,.62) 0 4px,transparent 5px),radial-gradient(circle at 73% 24%,rgba(255,255,255,.56) 0 2px,transparent 3px),linear-gradient(145deg,#003a67 0%,#0069b4 43%,#009ba4 100%);box-shadow:0 20px 42px rgba(0,105,180,.28)}.poster-kicker i{color:var(--lantern)}.result-poster .step-index{background:var(--lantern);color:#062c4a}.result-value-link{background:#fff;color:var(--brand);border:1px solid #dce7ef}.festival-footer{border-top-color:#dce7ef;box-shadow:0 -8px 24px rgba(0,105,180,.04)}.education-brand{border-left-color:#dce7ef}.education-brand strong{color:var(--brand)}
@media(max-width:700px){.festival-brand img{width:58px;height:38px}.festival-brand>span{font-size:17px}}
