/* Public project documents only. Resume typography stays in the original style.css. */
/* One project page; home cards and in-page anchors go directly to the evidence. */
.index-nav,.card-actions,.direct-actions{display:flex;flex-wrap:wrap;gap:10px 18px}
.index-nav{margin:22px 0}.index-nav a,.card-actions a,.direct-actions a{text-underline-offset:4px}
.case-card h3 a{color:inherit;text-decoration:none}.case-card h3 a:hover{text-decoration:underline}
.case-card .card-actions{margin-top:auto;font-size:13px;padding-top:8px}
.project-switcher{margin-bottom:18px}.project-switcher label{display:block;font-size:11px;color:#52645b;padding:8px 0}
.project-switcher select{display:block;width:100%;min-width:0;margin-top:6px;padding:8px 4px;border:1px solid #bccdc5;border-radius:4px;background:white;color:#27332f;font:inherit;font-size:12px}
.project-switcher select:focus-visible{outline:3px solid #007c80;outline-offset:2px}
/* Reading hierarchy: short result first, figures next, optional detail last. */
.case-document.web .case-takeaway{margin:26px 0;padding:22px 24px;border:1px solid #c9dfd8;border-left:4px solid #007c80;border-radius:8px;background:#f0f7f4}
.case-document.web .case-takeaway>span{font-size:12px;font-weight:700;color:#326354;letter-spacing:.06em}
.case-document.web .case-takeaway p{font-size:18px;line-height:1.65;font-weight:600;margin:8px 0 10px;color:#203c34}
.case-takeaway>strong{font-size:14px;line-height:1.8;color:#315b50;font-weight:500;display:block}
.case-document.web .summary-details{border:1px solid #dce5e0;border-radius:8px;margin:24px 0;padding:15px 18px;background:#fafcfb}
.case-document.web .summary-details summary{font-size:14px;font-weight:600;cursor:pointer;color:#2d5145}
.case-document.web .result-gallery details.technical-appendix{padding:16px 0;border-bottom:1px solid #e3eae5}
.case-document.web .result-gallery details summary{font-size:15px;line-height:1.65;padding:5px 0;color:#264e40}
.case-document.web .result-gallery details[open]>summary{margin-bottom:18px}
.case-document.web .result-gallery figure{padding:14px;border:1px solid #e1e8e3;border-radius:8px;background:#fff}
.case-document.web .result-gallery figcaption{font-size:13px!important;color:#52645b;margin-top:14px;line-height:1.8}
.case-document.web .result-gallery .visual-explanation{font-size:14px!important;border-radius:0 6px 6px 0;color:#354f43}
.case-document.web .verification-list{list-style:none;padding:0;margin:18px 0 26px}
.case-document.web .verification-list li{padding:16px 18px;border:1px solid #dae5de;border-radius:6px;margin:10px 0;background:#fafcfb}
.verification-list b{display:block;color:#006c70;font-size:14px;margin-bottom:5px}
.verification-list span{display:block;font-size:14px;line-height:1.8}
.case-document.web .record-boundary{padding:24px;border:1px solid #c8dcd3;border-radius:8px;background:#f6faf7}
.record-boundary .record-badge{display:inline-block;padding:4px 9px;border-radius:4px;color:#165c46;background:#e1efe7;font-size:12px;font-weight:700}
.case-document.web .record-boundary h3{font-size:20px;margin:14px 0}
.case-document.web .record-boundary p{font-size:14px;margin:8px 0}
.case-document.web .record-boundary ul{padding-left:20px;font-size:14px;line-height:2}
@media screen{
 .case-document.web section p,.case-document.web .story-row dd{font-size:15px;line-height:1.9}
 .case-document.web .note{font-size:12px!important;color:#5e6c64;line-height:1.85}
 .case-document.web section h2{letter-spacing:-.5px;color:#213e33;padding-bottom:9px}
 .case-document.web .event-body h3{font-size:19px;color:#253e32}
 .case-document.web .event-date{font-size:12px!important;font-weight:500;color:#597366}
 .case-document.web .event-result{padding:16px 18px;border-radius:0 6px 6px 0}
 .document-nav a{line-height:1.7;border-radius:0 5px 5px 0}
 .document-nav a[aria-current="location"]{font-weight:700}
 .case-document.web .document-meta p{font-size:13px!important;line-height:1.9}
 .case-index .case-card{border-radius:9px;padding:28px;border-color:#d7e1d9;box-shadow:0 3px 12px #223c2c05}
 .case-index .case-card h3{font-size:21px;color:#203d32}
 .case-index .case-card p{font-size:15px;line-height:1.8}
 .case-index .card-result{font-size:13px;line-height:1.8;padding:12px 14px;border-radius:5px;background:#f0f6f2;color:#365949}
 .case-index .card-link{font-size:13px;font-weight:600;padding-top:8px}
 .case-document a:focus-visible,.case-document summary:focus-visible,.case-index a:focus-visible{outline:3px solid #007c80;outline-offset:4px}
}
@media(max-width:650px){.case-document.web .case-takeaway{padding:18px}.case-document.web .case-takeaway p{font-size:17px}.case-document.web .result-gallery figure{padding:8px}.case-document.web .verification-list li{padding:14px}.case-document.web .result-gallery details summary{font-size:14px}.case-document.web .document-meta b{display:block;width:auto}.case-document.web .document-meta p{margin:10px 0!important}}
@media print{.case-takeaway,.verification-list li,.record-boundary{break-inside:avoid}.case-document.web .case-takeaway p{font-size:12px}.case-document.web .result-gallery figcaption{font-size:10px!important}.case-document.web .result-gallery figure{border:0;padding:0}.case-document.web .summary-details{border:0;padding:0}}
.case-document.web .result-gallery .source-road-map .map-crop{width:100%;height:500px!important;max-height:500px}.case-document.web .result-gallery .source-road-map>span{position:static;background:transparent;padding:0}.case-document.web .result-gallery .candidate-focus-grid>div>.map-crop{width:100%;height:440px!important;max-height:440px}
.case-document .result-gallery .route-focus-grid,.case-document .result-gallery .candidate-focus-grid,.case-document .result-gallery .speed-map{display:block;width:100%;height:auto;min-width:0}.case-document .result-gallery .route-key>div{min-width:0}.case-document .result-gallery .demand-key{display:block;grid-column:auto}.case-document .result-gallery .source-road-map{height:auto;width:100%}
.case-document .result-gallery{border-top:1px solid #dce5de!important;padding-top:26px!important}.result-gallery svg{display:block;width:100%;height:auto}.result-gallery .map-crop{max-height:540px}.result-gallery .visual-explanation{padding:14px 16px;background:#f2f6f3;border-left:3px solid #007c80;font-size:13px!important}.result-gallery .route-key{display:flex;gap:12px;margin:14px 0;align-items:flex-start}.result-gallery .route-key>b{color:white;padding:3px 8px;border-radius:4px}.result-gallery .route-key strong{font-size:14px}.result-gallery .route-key p{font-size:12px!important;margin:3px 0}.result-gallery .route-legend{margin:18px 0}.result-gallery .speed-row{display:flex;align-items:center;gap:10px;font-size:13px;margin:12px 0}.result-gallery .speed-row span{display:block;height:18px;background:#007c80;flex-shrink:0}.result-gallery .source-road-map{margin:18px 0}.result-gallery .source-road-map svg{max-height:500px}.result-gallery .source-road-map span{display:block;font-size:12px;margin-top:8px}.result-gallery .speed-map>svg{max-height:360px}.result-gallery .demand-key{padding:16px;background:#f4f6f4;margin-top:16px}.result-gallery .demand-scale{width:140px;height:214px}.result-gallery .candidate-focus-grid>div>p,.result-gallery .demand-key p{font-size:12px!important}.map-original{font-size:12px!important}.recovery-visual{list-style:none;padding:0;margin:20px 0}.recovery-visual li{display:flex;gap:16px;align-items:center;padding:14px;margin:10px 0;background:#edf4ee;border-left:3px solid #007c80}.recovery-visual b{color:#007c80}.case-document.web .result-gallery h3{font-size:16px}.case-document .result-gallery figure{overflow:visible}
.case-document.web .impact-summary{padding:20px;border-left:3px solid #007c80;background:#edf4ee}.case-document .code-design pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f5f7f5;border:1px solid #dae2d9;padding:16px;font-size:12px;line-height:1.8;max-width:100%}.case-document .code-design code{font-family:monospace}.case-document .code-design h3{font-size:16px;margin-top:20px}.case-document .code-design li{font-size:13px;margin:10px 0}.case-document .code-design a:focus-visible,.dashboard-card a:focus-visible{outline:2px solid #007c80;outline-offset:3px}
body:has(.case-layout),body:has(.case-index){background:#f5f5f3;color:#27332f;font-family:'Noto Sans CJK KR',sans-serif;line-height:1.85}
.case-index{max-width:1080px;padding:68px 36px;margin:auto}.case-index header{margin-bottom:45px}.case-index h1{font-size:42px;line-height:1.4}.case-index .lead{font-size:19px}.reading-route{font-size:14px;border-left:3px solid #007c80;padding:12px 18px;background:white}.index-note{font-size:13px;color:#64736c;margin-top:12px}.case-group{margin:42px 0}.case-group h2{font-size:23px;margin-bottom:18px}.case-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px}.case-card{display:flex;flex-direction:column;background:white;border:1px solid #dde3dd;padding:26px;border-radius:5px;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}.case-card:hover{border-color:#007c80;transform:translateY(-2px)}.card-type{font-size:11px;color:#007c80;margin-bottom:10px}.case-card h3{font-size:20px;line-height:1.5;margin-bottom:13px}.case-card p{font-size:14px}.card-result{font-size:13px;margin:16px 0;color:#5a6b62}.card-link{font-size:12px;color:#007c80;margin-top:auto}.dashboard-card{padding:26px;background:#eaf1ec;margin-top:30px}.dashboard-card h2{font-size:22px}.dashboard-card p{font-size:14px;margin:12px 0}.case-index footer{font-size:12px;color:#6e7770;margin-top:40px}
.case-layout{max-width:1130px;display:grid;grid-template-columns:215px minmax(0,794px);gap:26px;margin:28px auto;padding:0 22px;align-items:start}.document-nav{position:sticky;top:24px;font-size:12px;max-height:calc(100vh - 48px);overflow:auto;padding-top:15px}.document-nav a{display:block;text-decoration:none;color:#56645d;padding:7px 12px;border-left:2px solid transparent}.document-nav a:hover,.document-nav a[aria-current="location"]{background:#e4ece6;border-color:#007c80;color:#00696a}.document-nav a[href^="#step-"]{font-size:11px;padding-left:24px}.case-document.web{width:100%;max-width:794px;background:white;border:1px solid #e0e4df;border-radius:3px;padding:48px 52px 36px;margin:0;overflow-wrap:anywhere}.case-document.web header{padding:0 0 30px}.case-document h1{font-size:31px;line-height:1.5;letter-spacing:-.8px}.case-document .lead{font-size:17px;margin-top:12px}.back-link{font-size:12px;display:inline-block;margin-bottom:24px}.case-document .document-meta{padding:14px 0;border-top:1px solid #e5e9e3;border-bottom:1px solid #e5e9e3;margin:20px 0}.document-meta p{font-size:12px!important;margin:4px 0!important}.document-meta b{display:inline-block;width:48px;color:#68786f;font-weight:500}.case-document .actions{gap:9px;align-items:center}.case-document .button,.case-document button{font-size:12px;padding:8px 12px}.text-link{font-size:12px}.case-document .story-summary{margin:25px 0 10px}.case-document .story-row{display:block;border:0;margin:0;padding:10px 0}.case-document .story-row dt{font-size:12px;margin-bottom:6px}.case-document .story-row dt span{display:none}.case-document .story-row dd{font-size:14px;line-height:1.9}.case-document .story-row[data-star=R]{margin:10px 0 0;padding:15px;background:#edf4ee;border-left:3px solid #007c80}
.case-document.web section{padding:0;margin:34px 0;background:transparent;border:0;border-radius:0}.case-document.web section h2{font-size:23px;margin-bottom:14px;line-height:1.5}.case-document.web section p{font-size:14px;line-height:1.95}.chapter-label{color:#007c80;font-size:11px;letter-spacing:1.5px;margin-bottom:8px}.timeline-basis{color:#65756b;font-size:12px!important;margin-bottom:28px!important}.timeline-event{display:grid;grid-template-columns:32px minmax(0,1fr);gap:14px;position:relative;padding-bottom:36px;scroll-margin-top:24px}.timeline-event:before{content:'';position:absolute;top:30px;left:14px;bottom:0;border-left:1px solid #cddbd1}.timeline-event:last-child:before{display:none}.event-position{background:#e9f2eb;border:1px solid #cddbd1;border-radius:50%;font-size:11px;width:29px;height:29px;text-align:center;line-height:27px;color:#007c80}.event-date{color:#718078;font-size:11px!important;margin:0 0 4px!important}.event-body h3{font-size:18px;line-height:1.55;margin-bottom:12px}.event-result{border-left:3px solid #bfd5c5;background:#f3f7f2;padding:12px 15px;margin-top:18px!important}.event-result b{display:block;font-size:11px;color:#61746a;margin-bottom:5px}.case-document .flow{flex-wrap:wrap;gap:8px;margin:18px 0}.case-document .flow span{font-size:12px;padding:12px;min-width:100px}.case-document table{font-size:12px}.case-document td,.case-document th{padding:9px 10px}.case-document figure{margin:22px 0!important;max-width:100%;overflow:auto}.case-document figure svg{width:100%;max-height:none;height:auto;display:block}.case-document figcaption{font-size:11px!important;line-height:1.8}.case-document figure img{max-height:none;width:100%;height:auto}.case-document .conclusion{border-top:1px solid #dae2d9!important;padding-top:28px!important}.case-document #interactive{padding:24px!important;background:#f3f7f2!important}.case-document .metrics{gap:8px}.case-document .metrics div{padding:10px;background:white}.case-document .metrics strong{font-size:22px}.case-document .metrics span{font-size:11px}.case-document .steps{gap:7px}.case-document #step-detail{font-size:13px}.case-document .note{font-size:11px!important}.case-document .technical-appendix,.case-document details.glossary{border-top:1px solid #dbe1d8;padding:18px 0;margin:0;background:white}.case-document details summary{cursor:pointer;font-size:14px;font-weight:600}.case-document .technical-section h3{font-size:17px}.case-document .technical-section p{font-size:13px!important}.case-document details.glossary table{margin-top:20px}.case-document footer{border-top:1px solid #dbe1d8;padding-top:20px;font-size:11px;margin-top:24px}.case-document footer p{font-size:11px}.case-document [id]{scroll-margin-top:20px}
@media(max-width:1000px){.case-layout{display:block;max-width:838px}.document-nav{position:static;display:block;max-height:none;padding:0;margin-bottom:16px}.document-nav nav{display:flex;flex-wrap:wrap;gap:4px}.document-nav a{font-size:12px;padding:4px 8px;border-left:0}.project-switcher{display:flex;gap:16px;align-items:center;margin-bottom:6px}.project-switcher label{flex:1;min-width:0;max-width:330px}.document-nav a[href^="#step-"]{display:none}}
@media(max-width:650px){.case-index{padding:32px 20px}.case-index h1{font-size:31px}.case-cards{grid-template-columns:1fr}.case-card{padding:22px}.case-layout{padding:0;margin:0}.document-nav{padding:12px;background:#f5f5f3;margin:0}.case-document.web{padding:28px 20px;border:0;border-radius:0}.case-document h1{font-size:26px}.case-document.web section{padding:0}.case-document .story-row{grid-template-columns:1fr}.timeline-event{grid-template-columns:24px minmax(0,1fr);gap:10px}.timeline-event:before{left:11px}.event-position{width:24px;height:24px;line-height:22px}.case-document.web svg{min-width:0}.case-document .metrics{grid-template-columns:1fr}.case-document .flow{flex-direction:column}.case-document table{font-size:11px}.case-document td,.case-document th{padding:7px}.case-document .scroll{overflow-x:auto}.case-document.web section h2{font-size:22px}}
@media print{@page{size:A4;margin:15mm 16mm}body:has(.case-layout){background:white}.case-layout{display:block;max-width:none;padding:0;margin:0}.document-nav,.case-document .back-link,.case-document .actions,.case-document #interactive{display:none!important}.case-document.web{border:0;max-width:none;padding:0;margin:0}.case-document h1{font-size:24px}.case-document .lead{font-size:13px}.case-document .story-row dd,.case-document.web section p{font-size:10px;line-height:1.8}.case-document .story-row dt{font-size:10px}.case-document .story-row{padding:7px 0}.case-document .story-row[data-star=R]{padding:10px}.case-document .document-meta{margin:10px 0;padding:8px 0}.document-meta p{font-size:9px!important}.case-document.web header{padding-bottom:14px}.case-document.web section{margin:22px 0;break-inside:auto}.case-document h2{font-size:18px!important}.timeline-event{break-inside:avoid;padding-bottom:20px;gap:10px}.event-body h3{font-size:14px}.case-document figure{break-inside:avoid;margin:12px 0!important}.case-document figure svg{max-height:240px}.case-document figure img{max-height:240px;object-fit:contain}.case-document .flow span{font-size:9px;padding:8px}.case-document .technical-section p{font-size:10px!important}.case-document .technical-section{break-inside:auto}.case-document .glossary td{font-size:9px}.case-document .report-qr{display:flex;margin:12px 0}.case-document .report-qr img{width:60px;height:60px}.case-document footer{font-size:9px}.case-document details summary{font-size:15px}.case-document .event-date{font-size:9px!important}.case-document .timeline-basis{font-size:9px!important}}
