:root{--ink:#173442;--accent:#007c80;--muted:#58707a;--paper:#f4f7f6;--line:#d7e2e2}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:'Noto Sans CJK KR','Noto Sans',sans-serif;word-break:keep-all;line-height:1.65}a{color:var(--accent);text-underline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:38px;line-height:1.4;letter-spacing:-1.3px}h2{font-size:27px;line-height:1.45;letter-spacing:-.7px}h3{font-size:19px;margin-bottom:12px}p+p{margin-top:14px}.eyebrow{font-size:13px;letter-spacing:1px;color:var(--accent);margin-bottom:18px}.lead{font-size:20px;margin:18px 0 25px;color:var(--muted)}.tag{display:inline-block;background:#e5f0ee;padding:4px 10px;font-size:12px;margin-right:7px}ul{padding-left:22px;margin:15px 0}li{margin:9px 0}table{width:100%;border-collapse:collapse;font-size:16px}td,th{text-align:left;padding:12px;border-bottom:1px solid var(--line)}th{background:#edf4f2}.flow{display:flex;gap:12px;margin:22px 0}.flow span{flex:1;padding:22px 10px;background:#eaf3f1;border-top:3px solid var(--accent);font-size:17px;text-align:center}.note{font-size:12px;color:var(--muted);margin-top:18px}.qr{display:flex;gap:20px;align-items:center}.qr img{width:108px;height:108px}.qr p{font-size:14px}.qr small{display:block;color:var(--muted);font-size:11px}figure{margin:15px 0}figure img{max-width:100%;max-height:310px;object-fit:contain;display:block;margin:auto}svg{width:100%;max-height:300px;font-family:'Noto Sans CJK KR',sans-serif}.slide{width:1280px;height:720px;padding:42px 60px 48px;position:relative;background:white;break-after:page;overflow:hidden;border-top:7px solid var(--accent)}.slide .content{max-height:592px}.slide footer{position:absolute;bottom:16px;left:60px;right:60px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:9px;font-size:11px;color:var(--muted)}.slide h1{font-size:43px}.divider{background:linear-gradient(120deg,#eef6f2,white 75%)}.divider h1{max-width:960px;margin-top:25px}.divider .purpose{font-size:22px;max-width:960px;margin:28px 0}.divider .role{padding:20px 24px;background:white;border-left:4px solid var(--accent);font-size:19px;margin-bottom:22px}.divider .qr{position:absolute;bottom:70px;right:60px}.divider .meta{font-size:14px;max-width:750px}.slide .lead{margin:12px 0 18px;font-size:20px}.slide li{font-size:17px;margin:6px 0}.slide figure{height:285px}.slide figure img,.slide figure svg{height:100%;max-height:285px}.slide .note{font-size:12px;margin-top:13px}.slide .toc{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:24px}.toc a{display:block;padding:15px 20px;border:1px solid var(--line);text-decoration:none}.toc b{display:block;font-size:17px}.toc span{font-size:13px;color:var(--muted)}.cover-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin:40px 0}.cover-grid div{padding:24px;background:#eaf3f1}.cover-grid strong{display:block;font-size:21px;margin-bottom:8px}.cover-grid p{font-size:15px}.resume{width:794px;height:1123px;padding:49px 53px 50px;background:white;position:relative;break-after:page;overflow:hidden}.resume h1{font-size:29px}.resume h2{font-size:19px;margin:21px 0 10px;border-bottom:2px solid var(--accent);padding-bottom:7px}.resume h3{font-size:16px;margin-bottom:4px}.resume p,.resume li{font-size:13px;line-height:1.8}.resume li{margin:4px 0}.resume .head{display:flex;gap:22px}.resume .portrait{width:90px;height:116px;object-fit:cover}.resume .job{margin:15px 0}.resume .meta{font-size:11px;color:var(--muted)}.resume footer{position:absolute;bottom:22px;left:53px;right:53px;border-top:1px solid var(--line);padding-top:8px;font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.resume .intro p{font-size:15px;line-height:2}.resume .intro h2{margin-top:30px}.resume .qr img{width:92px;height:92px}.resume .qr{margin-top:24px}.web{max-width:1100px;margin:auto;padding:38px 28px 70px}.web nav{display:flex;gap:20px;font-size:14px;margin-bottom:35px}.web header{padding:28px 0 35px;border-bottom:1px solid var(--line)}.web .cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}.web .card,.web section{padding:28px;background:white;border:1px solid var(--line);border-radius:9px;margin-top:24px}.web .card{margin:0;text-decoration:none}.web .card h2{font-size:23px;margin:13px 0}.web .card p{font-size:15px;color:var(--muted)}.web section h2{margin-bottom:18px}.web section p{font-size:16px}.web section figure{margin:26px 0}.web figure svg{max-height:380px}.web .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:23px}.button,button{background:var(--accent);color:white;border:0;padding:10px 17px;border-radius:5px;cursor:pointer;font:inherit;text-decoration:none;display:inline-block}button[aria-pressed=true]{background:#173442}input,select{font:inherit;padding:10px;border:1px solid #a2b5b7;border-radius:4px;max-width:100%;margin:8px 8px 8px 0}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.metrics div{background:#edf5f2;padding:18px}.metrics strong{display:block;font-size:27px}.metrics span{font-size:13px}.scroll{overflow-x:auto}video{width:100%;margin-top:18px;background:#173442}.steps{display:flex;gap:10px;flex-wrap:wrap}.web #step-detail{min-height:100px;margin-top:20px;padding:18px;background:#edf5f2}.web footer{margin-top:40px;font-size:12px;color:var(--muted)}.web .report-qr{display:none}@media(max-width:650px){.web{padding:20px 17px}.web h1{font-size:29px}.web h2{font-size:23px}.web .cards{grid-template-columns:1fr}.web section{padding:20px}.flow{flex-direction:column}.metrics{grid-template-columns:1fr}.web svg{min-width:640px}.web figure{overflow-x:auto}.web .card{padding:22px}.web table{font-size:13px}.web nav{flex-wrap:wrap} .web .lead{font-size:18px}}@media print{body{background:white;print-color-adjust:exact;-webkit-print-color-adjust:exact}.slide,.resume{margin:0}.web{max-width:none;padding:0;font-size:11px}.web nav,.web .actions,.web video,.web #interactive{display:none}.web header{padding:0 0 15px}.web h1{font-size:24px}.web .lead{font-size:15px}.web section{border:0;border-radius:0;padding:12px 0;margin:0;break-inside:avoid}.web section h2{font-size:18px;margin-bottom:10px}.web section p{font-size:11px;line-height:1.8}.web section figure{margin:10px 0}.web figure svg{max-height:210px}.web .note{font-size:9px}.web td,.web th{padding:7px;font-size:10px}.web .flow span{font-size:11px;padding:10px}.web .report-qr{display:flex;margin:15px 0}.web .report-qr img{width:70px;height:70px}.web footer{font-size:9px}}
.resume:nth-child(2) h2{margin-top:15px;margin-bottom:7px}.resume:nth-child(2) ul{margin:8px 0}.resume:nth-child(2) td,.resume:nth-child(2) th{font-size:12px;padding:6px 8px}.resume:nth-child(2) p+p{margin-top:8px}.resume:nth-child(2) .qr{margin-top:12px}.resume:nth-child(2) .qr img{width:74px;height:74px}
.story-summary{margin:24px 0}.story-row{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.story-row dt{font-size:14px;font-weight:700;color:var(--accent)}.story-row dt span{display:inline-block;width:24px;font-size:11px;opacity:.7}.story-row dd{margin:0;font-size:16px;line-height:1.75}.story-row[data-star=R]{background:#eaf3f1;padding:14px 16px;margin:0 -16px;border-bottom:0}.project-divider h1{font-size:35px;max-width:1120px;margin-top:12px}.project-divider .eyebrow{margin-bottom:12px}.project-divider .story-summary{margin:22px 0 0}.project-divider .story-row{grid-template-columns:140px 1fr;padding:14px 0}.project-divider .story-row dd{font-size:18px;line-height:1.6}.project-divider .story-row dt{font-size:15px;padding-top:3px}.project-divider .story-row[data-star=R]{padding:14px 16px}.project-divider .project-meta{position:absolute;bottom:92px;left:60px;max-width:770px}.project-divider .project-meta .meta{font-size:12px;margin:3px 0}.project-divider .qr{bottom:59px}.project-divider .qr img{width:86px;height:86px}.resume .job{margin:12px 0}.resume .job .context{color:var(--muted);margin-top:4px;font-size:12px}.resume .job ul{margin:6px 0 10px}.resume .intro p{font-size:14px;line-height:1.9}.resume .intro h2{margin-top:22px}@media(max-width:650px){.web .story-row{grid-template-columns:1fr;gap:5px}.web .story-row dd{font-size:15px}.web .story-row[data-star=R]{margin:0 -10px;padding:14px 10px}}@media print{.web .story-summary{margin:14px 0;break-inside:avoid}.web .story-row{grid-template-columns:90px 1fr;gap:10px;padding:9px 0}.web .story-row dt{font-size:11px}.web .story-row dd{font-size:11px;line-height:1.7}.web .story-row[data-star=R]{padding:9px 10px;margin:0 -10px}}
.resume:nth-child(2) .content .job{margin:8px 0}.resume .content .intro p{font-size:14px;line-height:1.9}.resume .content .intro h2{margin-top:22px}
.project-subtitle{font-size:19px;color:var(--accent);margin-top:8px}.project-divider .story-summary{margin-top:12px}.project-divider .story-row{padding:11px 0}.project-divider .story-row[data-star=R]{padding:11px 16px}.project-divider .project-meta{bottom:80px;max-width:770px}.project-divider .project-meta .meta{font-size:12px}.slide .outcome{font-size:16px;line-height:1.65;padding:12px 16px;background:#eaf3f1;border-left:3px solid var(--accent);margin:10px 0}.slide .content{max-height:620px}.slide .lead{font-size:19px}.slide.large-map .content figure{height:420px;margin:8px 0}.slide.large-map .content figure img{height:385px;max-height:385px;max-width:100%}.slide.large-map figcaption{font-size:13px}.slide.large-map ul{margin:6px 0}.slide.large-map .note{margin-top:7px}.model-grid,.study-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:15px}.model-grid>div,.study-pair>div{padding:17px 20px;background:#f1f6f4}.model-grid p{font-size:16px}.model-grid h3,.study-pair h3{font-size:19px}.commit-strip{display:flex;justify-content:space-between;padding:15px 20px;background:#dceee8;margin-top:15px;font-size:18px}.replay-pair{display:flex;gap:20px;margin-top:10px}.replay-pair p{flex:1;font-size:16px;margin:0;padding:10px 15px;border:1px solid var(--line)}.study-pair .flow{gap:6px}.study-pair .flow span{font-size:15px;padding:16px 5px}.study-pair p{font-size:16px}.study-pair td,.study-pair th{font-size:15px;padding:10px}.slide .screen-window{height:225px;overflow:hidden;position:relative}.slide .screen-window img{position:absolute;max-height:none!important;height:auto!important;width:100%;max-width:none;top:-310px}.slide.operation-evidence .content figure{height:265px}.slide.operation-evidence .note{font-size:12px}.slide .speed-map{display:grid;grid-template-columns:440px 1fr;gap:20px;align-items:center;height:355px}.slide .speed-map img{width:100%;height:350px!important;max-height:350px!important}.slide.speed-location .content figure{height:405px}.speed-row{display:flex;align-items:center;gap:10px;margin:22px 0;font-size:17px}.speed-row b{min-width:62px}.speed-row span{display:block;height:25px;min-width:4px;background:#c94a38}.speed-row:last-of-type span{background:#248d89}.speed-row strong{white-space:nowrap;font-size:17px}.speed-map p{font-size:16px}.slide.speed-location ul{margin:7px 0}.slide.speed-location figcaption{font-size:13px}
figure figcaption{font-size:12px;line-height:1.6;color:var(--muted);margin-top:7px}.slide .content figure{height:298px}.slide .content figure:has(figcaption) img,.slide .content figure:has(figcaption) svg{height:258px;max-height:258px}.web .glossary td:first-child{width:22%;font-weight:600}.web .glossary td{font-size:14px}.web .glossary{background:#edf5f2}.web .evaluation-score{margin-top:20px;padding:12px;background:#edf5f2}.web .glossary td{vertical-align:top}@media print{.web .glossary td{font-size:10px}.web figcaption{font-size:9px}}@media(max-width:650px){.web .glossary td{font-size:13px;word-break:normal;overflow-wrap:anywhere}}
.model-grid>div{padding:12px 20px}.model-grid p+p{margin-top:8px}.commit-strip{padding:12px 20px}.replay-pair p{padding:8px 15px}.slide .speed-map{height:315px}.slide .speed-map img{height:315px!important;max-height:315px!important}.slide.speed-location .content figure{height:365px}
.slide .screen-window{height:155px}.slide .screen-window img{top:-435px}.slide.operation-evidence .content figure{height:200px}
.slide.candidate-focus .content .demand-scale{width:140px;height:220px!important;max-height:220px;float:left;margin:5px 8px 0 0}
.slide[data-section="mobility/model-replay"] .outcome{padding:8px 16px;margin:7px 0}.slide.route-focus .content figure{height:400px}.slide.route-focus .content .map-crop{height:365px}.slide.route-focus .route-focus-grid{height:365px}
.raw-transaction{padding:12px 18px;background:#dceee8;font-size:18px}.raw-transaction p{font-size:17px;margin:5px 0 0}.dbt-boundary{font-size:15px;color:var(--accent);margin:10px 0 5px}.model-grid{margin-top:5px;gap:16px}.model-grid h3{font-size:17px}.model-grid p{font-size:14px;margin:5px 0}.model-grid>div{padding:10px 17px}.replay-pair p{font-size:15px}.route-focus-grid{display:grid;grid-template-columns:620px 1fr;gap:20px;height:390px}.route-legend{padding:5px 0}.route-key{display:flex;gap:12px;margin-bottom:14px;align-items:flex-start}.route-key>b{color:white;padding:4px 8px;border-radius:4px;font-size:18px}.route-key strong{font-size:19px}.route-key p,.route-legend>p{font-size:15px;margin:6px 0;line-height:1.5}.slide.route-focus figure{height:425px}.slide figure .map-crop{max-height:none;height:auto}.slide.route-focus .map-crop{height:390px;width:620px}.slide.speed-location figure{height:365px}.slide .speed-map{grid-template-columns:300px 345px 1fr;height:325px;gap:20px}.speed-map h3{font-size:18px}.speed-row{gap:7px;margin:19px 0;font-size:16px}.speed-row strong{font-size:16px}.speed-map p{font-size:14px}.speed-map>svg{width:100%;height:325px!important;max-height:325px!important}.source-road-map{position:relative;height:315px}.source-road-map .map-crop{width:335px;height:315px!important}.source-road-map>span{position:absolute;left:7px;bottom:8px;background:#fff;padding:6px;font-size:13px;line-height:1.5}.candidate-focus-grid{display:grid;grid-template-columns:330px 400px 1fr;gap:25px;align-items:start}.candidate-focus-grid h3{font-size:18px;margin:0 0 8px}.candidate-focus-grid p{font-size:14px;line-height:1.5;margin:6px 0}.candidate-focus-grid .map-crop{height:305px!important;max-height:none}.candidate-focus-grid .demand-key .map-crop{height:220px!important;width:110px;float:left;margin:5px 14px 0 0}.demand-key strong{font-size:18px}.slide.candidate-focus figure{height:405px}.slide.candidate-focus figcaption,.slide.route-focus figcaption{font-size:13px;line-height:1.5;margin-top:7px}
