@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Noto+Sans+KR:wght@400;600;700&display=swap');
:root{--night:#061827;--navy:#09273c;--blue:#1687ff;--cyan:#30ded4;--lime:#b6ed4d;--coral:#ff7668;--ink:#102b3e;--muted:#6b8191;--line:#dce8ef;--pale:#f3f8fb;--white:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--pale);color:var(--ink);font-family:"Manrope","Noto Sans KR",system-ui,sans-serif;overflow-x:hidden}.site-header{height:76px;padding:0 max(22px,calc((100% - 1140px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #e8f0f4}.brand{display:flex;align-items:center;gap:12px;color:var(--navy);font-size:19px;font-weight:800;letter-spacing:-.03em;text-decoration:none}.brand b{color:var(--blue)}.brand-mark{position:relative;display:block;width:39px;height:39px;overflow:hidden;background:var(--navy);border-radius:12px;box-shadow:0 7px 18px rgba(9,38,60,.2)}.brand-mark:before,.brand-mark:after,.brand-mark i{content:"";position:absolute;display:block;border-radius:20px}.brand-mark:before{width:7px;height:32px;left:10px;top:9px;transform:rotate(45deg);background:var(--cyan)}.brand-mark:after{width:7px;height:30px;right:8px;top:-2px;transform:rotate(45deg);background:var(--blue)}.brand-mark i:first-child{width:7px;height:7px;left:5px;bottom:5px;background:var(--lime)}.network-status{display:flex;align-items:center;gap:8px;color:#597184;font-size:11px;font-weight:700}.network-status i{width:7px;height:7px;border-radius:50%;background:#54c986;box-shadow:0 0 0 4px #e6f7ed}.planner-hero{position:relative;isolation:isolate;min-height:610px;padding:70px 24px 55px;overflow:hidden;background:radial-gradient(circle at 50% 0,#17516d 0,transparent 38%),linear-gradient(145deg,#071a29,#092b40 60%,#082133);color:#fff}.planner-hero:after{content:"";position:absolute;z-index:-1;inset:auto 0 0;height:100px;background:linear-gradient(transparent,rgba(0,0,0,.14))}.hero-copy{position:relative;z-index:2;text-align:center}.eyebrow{display:inline-flex;align-items:center;gap:9px;color:#8bd9ee;font-size:10px;font-weight:800;letter-spacing:.18em}.eyebrow>span{display:block;width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(182,237,77,.12)}.eyebrow.dark{color:#2582b4}.hero-copy h1{margin:16px 0 17px;font-size:clamp(43px,5.5vw,67px);line-height:1.04;letter-spacing:-.065em}.hero-copy h1 em{color:transparent;background:linear-gradient(100deg,#45dce2,#60b9ff 50%,#b7ed4f);-webkit-background-clip:text;background-clip:text;font-style:normal}.hero-copy p{margin:0;color:#aac1ce;font-size:15px;line-height:1.75}.journey-form{position:relative;z-index:3;max-width:1040px;margin:38px auto 0;padding:12px;display:grid;grid-template-columns:24px 1fr 42px 1fr auto;align-items:center;gap:12px;background:#fff;border-radius:20px;box-shadow:0 25px 65px rgba(0,0,0,.32),0 0 0 5px rgba(255,255,255,.05)}.route-rail{height:55px;display:flex;flex-direction:column;align-items:center}.route-rail span{width:2px;flex:1;background:linear-gradient(var(--blue),var(--coral))}.route-rail i{z-index:1;width:9px;height:9px;border:2px solid var(--blue);border-radius:50%;background:#fff}.route-rail i:last-child{border-color:var(--coral)}.station-field{min-width:0;padding:5px 10px}.station-field span{display:block;margin-bottom:5px;color:#7b94a5;font-size:9px;font-weight:800;letter-spacing:.14em}.station-field input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:15px;font-weight:700}.station-field input::placeholder{color:#a3b1bb;font-weight:500}.swap-button{width:36px;height:36px;border:1px solid #dce7ee;border-radius:50%;background:#f5f9fb;color:#4b7089;font-size:18px;cursor:pointer;transition:.2s}.swap-button:hover{transform:rotate(180deg);border-color:#99c9f8}.plan-button{height:58px;padding:0 24px;border:0;border-radius:13px;background:linear-gradient(135deg,#178cff,#1476ea);box-shadow:0 9px 22px rgba(22,135,255,.28);color:#fff;font:inherit;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer}.plan-button span{margin-left:8px;font-size:17px}.popular-trips{position:relative;z-index:2;margin-top:16px;display:flex;justify-content:center;align-items:center;gap:9px;color:#66889c;font-size:9px;font-weight:800;letter-spacing:.08em}.popular-trips a{padding:7px 11px;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:rgba(255,255,255,.07);color:#b7ceda;text-decoration:none;letter-spacing:0;transition:.2s}.popular-trips a:hover{background:rgba(255,255,255,.14);color:#fff}.map-lines{position:absolute;z-index:0;inset:0;opacity:.25;pointer-events:none}.map-lines i{position:absolute;width:600px;height:3px;border-radius:5px;transform:rotate(-28deg);background:linear-gradient(90deg,transparent,var(--blue),transparent)}.map-lines i:nth-child(1){left:-260px;top:170px}.map-lines i:nth-child(2){right:-230px;top:120px;transform:rotate(34deg);background:linear-gradient(90deg,transparent,var(--cyan),transparent)}.map-lines i:nth-child(3){left:-240px;bottom:70px;transform:rotate(17deg);background:linear-gradient(90deg,transparent,var(--coral),transparent)}.map-lines i:nth-child(4){right:-270px;bottom:100px;transform:rotate(-18deg);background:linear-gradient(90deg,transparent,var(--lime),transparent)}.map-lines b{position:absolute;width:12px;height:12px;border:3px solid #4daaff;border-radius:50%;background:var(--night);box-shadow:0 0 0 6px rgba(77,170,255,.09)}.map-lines b:nth-of-type(1){left:8%;top:38%}.map-lines b:nth-of-type(2){left:17%;bottom:23%;border-color:var(--coral)}.map-lines b:nth-of-type(3){right:9%;top:31%;border-color:var(--cyan)}.map-lines b:nth-of-type(4){right:18%;bottom:26%;border-color:var(--lime)}.map-lines b:nth-of-type(5){right:28%;top:12%;border-color:#fff}.benefits,.result-section{max-width:1140px;margin:auto;padding:72px 24px 90px}.result-section.compact{padding-bottom:20px}.section-intro{max-width:660px;margin-bottom:35px}.section-intro h2,.result-heading h2{margin:9px 0 10px;color:var(--navy);font-size:clamp(30px,4vw,42px);line-height:1.16;letter-spacing:-.055em}.section-intro p{margin:0;color:var(--muted);line-height:1.7}.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.benefit-grid article{position:relative;padding:30px 27px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 20px rgba(15,52,78,.05)}.benefit-number{position:absolute;right:22px;top:20px;color:#d8e4eb;font-size:12px;font-weight:800}.benefit-icon{display:grid;place-items:center;width:43px;height:43px;margin-bottom:23px;border-radius:13px;background:#eaf5ff;color:var(--blue);font-weight:800}.benefit-grid article:nth-child(2) .benefit-icon{background:#eafbf7;color:#16a991}.benefit-grid article:nth-child(3) .benefit-icon{background:#fff1ee;color:var(--coral);font-size:22px}.benefit-grid h3{margin:0 0 9px;color:var(--navy);font-size:18px}.benefit-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.planner-error{display:flex;gap:17px;align-items:center;padding:20px 23px;border:1px solid #ffc5bd;border-radius:15px;background:#fff2f0;color:#8d3b35}.planner-error>span{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border-radius:50%;background:#ffded9;color:#bf453c;font-weight:800}.planner-error strong{display:block;margin-bottom:4px}.planner-error p{margin:0;font-size:12px}.result-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:26px}.result-heading h2 span{color:#8ca0ae;font-weight:500}.result-heading>a{padding:9px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--blue);font-size:11px;font-weight:800;text-decoration:none}.journey-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:20px;overflow:hidden;background:var(--navy);border-radius:17px;color:#fff}.journey-summary div{padding:22px;text-align:center;border-right:1px solid rgba(255,255,255,.1)}.journey-summary div:last-child{border:0}.journey-summary strong,.journey-summary span{display:block}.journey-summary strong{font-size:28px}.journey-summary span{margin-top:3px;color:#8eabbc;font-size:10px}.journey-card{padding:32px 35px;background:#fff;border:1px solid var(--line);border-radius:19px;box-shadow:0 12px 35px rgba(13,53,82,.07)}.journey-start,.journey-end,.transfer-step{display:flex;align-items:center;gap:18px}.journey-start small,.journey-end small,.transfer-step small{display:block;margin-bottom:4px;color:#91a1ac;font-size:9px;font-weight:800;letter-spacing:.12em}.journey-start strong,.journey-end strong,.transfer-step strong{color:var(--navy);font-size:16px}.station-node{display:block;width:18px;height:18px;flex:0 0 auto;border:4px solid var(--blue);border-radius:50%;background:#fff;box-shadow:0 0 0 5px #e7f3ff}.station-node.end{border-color:var(--coral);box-shadow:0 0 0 5px #fff0ed}.station-node.transfer{border-color:#9c65e7;box-shadow:0 0 0 5px #f1eafa}.journey-segment{display:grid;grid-template-columns:18px 1fr;gap:18px;min-height:150px}.segment-line{display:flex;justify-content:center}.segment-line span{width:3px;background:linear-gradient(var(--blue),#6dbaff)}.segment-body{margin:18px 0;padding:20px 22px;border:1px solid #e0eaf0;border-radius:14px;background:#f8fbfd}.line-badge{display:inline-block;margin-bottom:10px;padding:5px 9px;border-radius:6px;background:#e7f3ff;color:var(--blue);font-size:9px;font-weight:800}.segment-body h3{margin:0 0 6px;color:var(--navy);font-size:17px}.segment-body p{margin:0;color:var(--muted);font-size:12px}.segment-body details{margin-top:12px}.segment-body summary{color:#407aa2;font-size:10px;font-weight:700;cursor:pointer}.station-list-inline{margin-top:9px;color:#7890a1;font-size:10px;line-height:1.6}.transfer-step{padding-bottom:3px}.transfer-step p{margin:4px 0 0;color:var(--muted);font-size:10px}.accuracy-note{margin-top:18px;padding:16px 18px;border-radius:11px;background:#eaf4fa;color:#5f788a;font-size:11px;line-height:1.6}.accuracy-note strong{margin-right:7px;color:#2b607f}footer{padding:29px max(24px,calc((100% - 1140px)/2));display:flex;justify-content:space-between;align-items:center;background:#fff;border-top:1px solid #dce7ed;color:#8999a4;font-size:10px}.footer-brand{color:var(--navy);font-size:13px;font-weight:800}
@media(max-width:850px){.journey-form{grid-template-columns:20px 1fr 38px 1fr}.plan-button{grid-column:1/-1}.benefit-grid{grid-template-columns:1fr}.map-lines{opacity:.16}}
@media(max-width:600px){.site-header{height:68px}.network-status{font-size:9px}.planner-hero{min-height:700px;padding:58px 16px 45px}.hero-copy h1{font-size:45px}.hero-copy p{font-size:13px}.journey-form{margin-top:30px;padding:17px;grid-template-columns:21px 1fr 38px;gap:8px}.route-rail{grid-row:1/3;height:118px}.station-field{padding:6px}.station-field:nth-of-type(2){grid-column:2}.swap-button{grid-column:3;grid-row:1/3}.plan-button{grid-column:1/-1;margin-top:4px}.popular-trips{flex-wrap:wrap}.popular-trips>span{width:100%;text-align:center}.benefits,.result-section{padding:52px 16px 70px}.result-heading{display:block}.result-heading>a{display:inline-block;margin-top:8px}.journey-summary div{padding:18px 8px}.journey-summary strong{font-size:23px}.journey-card{padding:25px 20px}.benefit-grid{gap:13px}footer{flex-direction:column;gap:8px}}
@media(prefers-reduced-motion:no-preference){.hero-copy,.journey-form{animation:arrive .65s ease-out both}.journey-form{animation-delay:.1s}.journey-segment{animation:arrive .45s calc(var(--segment-index)*80ms) ease-out both}@keyframes arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}}
.journey-segment .segment-line span{width:4px;border-radius:4px;background:var(--line-color,var(--blue));box-shadow:0 0 0 4px color-mix(in srgb,var(--line-color,var(--blue)) 12%,transparent)}
.journey-segment .line-badge{padding:6px 10px;border-radius:7px;background:var(--line-color,var(--blue));box-shadow:0 5px 13px color-mix(in srgb,var(--line-color,var(--blue)) 28%,transparent);color:#fff;letter-spacing:.02em}

/* Geographic journey map */
.journey-geo-card{margin:0 0 20px;overflow:hidden;border:1px solid #d8e6ec;border-radius:19px;background:#fff;box-shadow:0 12px 35px rgba(13,53,82,.08)}
.journey-geo-heading{padding:24px 27px 20px;display:flex;align-items:end;justify-content:space-between;gap:28px}
.journey-geo-heading h3{margin:9px 0 5px;color:var(--navy);font-size:22px;letter-spacing:-.04em}
.journey-geo-heading p{margin:0;color:#718693;font-size:10px}
.journey-geo-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.journey-geo-legend span{padding:7px 10px;display:inline-flex;align-items:center;gap:7px;border:1px solid #e1eaee;border-radius:8px;background:#f8fbfc;color:#365665;font-size:9px;font-weight:800}
.journey-geo-legend i{width:19px;height:5px;border-radius:5px;background:var(--map-line-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--map-line-color) 10%,transparent)}
.journey-map-shell{position:relative;border-top:1px solid #e2ebef;border-bottom:1px solid #e2ebef;background:#dce8ec}
.journey-geographic-map{position:relative;z-index:1;width:100%;height:430px;background:linear-gradient(145deg,#dce8ec,#eef4f6)}
.map-loading{position:absolute;z-index:500;left:50%;top:50%;transform:translate(-50%,-50%);padding:10px 13px;border-radius:9px;background:rgba(7,38,54,.85);color:#fff;font-size:9px;font-weight:800;letter-spacing:.04em}
.map-gesture-note{position:absolute;z-index:500;right:11px;top:11px;padding:7px 9px;border:1px solid rgba(255,255,255,.85);border-radius:8px;background:rgba(255,255,255,.9);box-shadow:0 3px 12px rgba(12,49,64,.12);color:#57717e;font-size:8px;font-weight:800;pointer-events:none}
.journey-map-source{padding:12px 27px;display:flex;justify-content:space-between;gap:20px;color:#83969f;font-size:8px;line-height:1.5}
.journey-map-source span:first-child{color:#52717f;font-weight:700}
.journey-map-coverage{margin:0 0 20px;padding:20px 23px;display:flex;align-items:center;gap:15px;border:1px solid #d9e5ea;border-radius:15px;background:#fff;color:#56707c}
.journey-map-coverage>span{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border-radius:50%;background:#eaf3f7;color:#2683ac;font-size:19px}
.journey-map-coverage strong{display:block;margin-bottom:3px;color:#173b4a;font-size:12px}.journey-map-coverage p{margin:0;font-size:9px;line-height:1.6}
.journey-geographic-map.map-failed{display:grid;place-items:center}.map-error{max-width:420px;padding:24px;text-align:center}.map-error strong,.map-error span{display:block}.map-error strong{margin-bottom:6px;color:#173b4a;font-size:14px}.map-error span{color:#6f8690;font-size:10px;line-height:1.6}
.map-basemap-warning{position:absolute;z-index:800;left:50%;bottom:12px;transform:translateX(-50%);padding:7px 9px;border-radius:7px;background:rgba(7,38,54,.88);color:#fff;font-size:8px;white-space:nowrap}
.journey-geographic-map .leaflet-tile-pane{filter:grayscale(.84) saturate(.35) brightness(1.08)}
.journey-geographic-map .leaflet-control-attribution{font-family:inherit;font-size:7px}.journey-geographic-map .leaflet-control-zoom a{color:#173b4a}.journey-geographic-map .leaflet-tooltip.journey-map-tooltip{padding:5px 7px;border:0;border-radius:6px;background:#fff;box-shadow:0 4px 14px rgba(7,38,54,.18);color:#173b4a;font-family:inherit;font-size:9px;font-weight:800}.journey-geographic-map .leaflet-tooltip.journey-map-tooltip:before{border-top-color:#fff}.journey-geographic-map .leaflet-tooltip.journey-map-tooltip.important{padding:6px 8px;font-size:10px}
@media(max-width:600px){.journey-geo-heading{padding:21px 19px 17px;display:block}.journey-geo-heading h3{font-size:19px}.journey-geo-legend{margin-top:15px;justify-content:flex-start}.journey-geographic-map{height:365px}.map-gesture-note{display:none}.journey-map-source{padding:11px 19px;display:block}.journey-map-source span{display:block}.journey-map-source span+span{margin-top:3px}.journey-map-coverage{padding:18px}.map-basemap-warning{max-width:88%;white-space:normal;text-align:center}}
.journey-map-popup strong,.journey-map-popup>span{display:block}.journey-map-popup strong{color:#15394a;font:800 12px "Manrope",sans-serif}.journey-map-popup>span{margin-top:3px;color:#718893;font:500 8px "Manrope",sans-serif}.journey-map-popup>div{margin-top:11px;display:flex;gap:6px}.journey-map-popup a{padding:7px 8px;border:1px solid #d7e4e9;border-radius:7px;background:#fff;color:#167bc3;font:800 8px "Manrope",sans-serif;text-decoration:none}

/* Always-available station-order map for journeys awaiting geographic coordinates */
.schematic-map-shell{overflow-x:auto;padding:31px 25px 25px;border-top:1px solid #e2ebef;border-bottom:1px solid #e2ebef;background:linear-gradient(145deg,#eef6f8,#f8fbfc);scrollbar-color:#a9c5d2 #e4eef2;scrollbar-width:thin}
.schematic-map-shell:focus{outline:3px solid rgba(22,135,255,.22);outline-offset:-3px}
.schematic-map-track{min-width:max-content;display:flex;align-items:flex-start;padding:0 45px}
.schematic-stop{position:relative;width:154px;flex:0 0 154px;text-align:center;color:#718794}
.schematic-stop:not(:first-child):before{content:"";position:absolute;z-index:0;width:154px;height:5px;right:77px;top:15px;background:var(--incoming-color);box-shadow:0 2px 7px color-mix(in srgb,var(--incoming-color) 28%,transparent)}
.schematic-node{position:relative;z-index:1;width:34px;height:34px;margin:0 auto 10px;display:grid;place-items:center;border:5px solid var(--outgoing-color);border-radius:50%;background:#fff;box-shadow:0 0 0 5px #edf4f6}
.schematic-node i{width:8px;height:8px;border-radius:50%;background:var(--outgoing-color)}
.schematic-stop.transfer .schematic-node{border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,conic-gradient(var(--outgoing-color) 0 50%,var(--incoming-color) 50% 100%) border-box}
.schematic-stop.start .schematic-node,.schematic-stop.arrive .schematic-node{width:38px;height:38px;margin-top:-2px;margin-bottom:8px;box-shadow:0 0 0 6px #e4eff3}
.schematic-stop small,.schematic-stop strong,.schematic-stop em{display:block}
.schematic-stop small{margin-bottom:4px;color:#8ba0aa;font-size:7px;font-weight:800;letter-spacing:.1em}
.schematic-stop strong{max-width:144px;margin:0 auto;padding:0 5px;color:#15394a;font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.schematic-stop em{margin-top:4px;color:#6e8190;font-size:7px;font-style:normal;line-height:1.35}
.schematic-stop.transfer strong{color:#6742a1}.schematic-stop.start strong{color:#0d76ce}.schematic-stop.arrive strong{color:#d85c4a}
@media(max-width:600px){.schematic-map-shell{padding:26px 12px 21px}.schematic-map-track{padding:0 32px}.schematic-stop{width:132px;flex-basis:132px}.schematic-stop:not(:first-child):before{width:132px;right:66px}.schematic-stop strong{max-width:124px}}

/* Route-to-discovery actions */
.journey-step-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.journey-explore-link{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid #bfe4cd;border-radius:20px;background:#effaf3;color:#087f4b;font-size:8px;font-weight:800;line-height:1;text-decoration:none;transition:transform .18s,background .18s,border-color .18s}
.journey-explore-link:hover{transform:translateY(-1px);border-color:#6fc493;background:#dff5e8}
.journey-explore-link span{font-size:10px}
.station-list-inline{display:flex;flex-wrap:wrap;gap:7px}
.station-list-inline>a,.station-list-inline>span{padding:7px 9px;border:1px solid #dce8ed;border-radius:8px;background:#fff;color:#5b7483;text-decoration:none}
.station-list-inline>a{display:inline-flex;align-items:center;gap:7px;border-color:#cfe6d8;color:#235e43;transition:background .18s,border-color .18s}
.station-list-inline>a:hover{border-color:#81c79c;background:#eef9f2}
.station-list-inline>a>span{font-weight:700}.station-list-inline>a>small{color:#0b8c52;font-size:7px;font-weight:800;white-space:nowrap}
.segment-body summary:focus-visible{outline:2px solid #1687ff;outline-offset:4px;border-radius:3px}
@media(max-width:600px){.journey-explore-link{padding:6px 8px}.station-list-inline{gap:5px}.station-list-inline>a,.station-list-inline>span{padding:7px 8px}}
