/* ==========================================================================
   deck.css — SAFE & CARE CITY 인천 제안 (7 slides, 1920×1080)
   Slides: 01 Cover → 02 추진 근거 → 03 전략 체계 → 04 포트폴리오
           05 추진 체계·재원 → 06 의사결정 요청 → 07 E.O.D
   ========================================================================== */
.deck-body{height:100%;overflow:hidden;background:#111}

/* ---------- stage: fixed-canvas scaled, letterboxed ---------- */
deck-stage{display:block;position:fixed;inset:0;background:#111}
deck-stage .rail{position:absolute;top:0;bottom:0;left:0;width:0;overflow:hidden;background:#0b0c0f;transition:width .18s ease}
deck-stage .viewport{position:absolute;inset:0}
deck-stage .canvas{
  position:absolute;left:50%;top:50%;width:1920px;height:1080px;
  transform-origin:center center;
}
deck-stage section{
  position:absolute;inset:0;width:1920px;height:1080px;overflow:hidden;
  background:var(--paper);color:var(--ink);
  opacity:0;visibility:hidden;
  transition:opacity .45s ease;
}
deck-stage section[data-deck-active]{opacity:1;visibility:visible}

/* deck nav hit zones */
deck-stage .nav{position:absolute;top:0;bottom:0;width:9%;z-index:40;cursor:pointer;opacity:0}
deck-stage .nav.prev{left:0}
deck-stage .nav.next{right:0}
deck-stage .pager{
  position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  display:flex;gap:8px;z-index:45;padding:8px 14px;border-radius:40px;
  background:rgba(17,17,17,.55);backdrop-filter:blur(8px);
}
deck-stage .pager button{width:9px;height:9px;border-radius:50%;border:0;padding:0;
  background:rgba(255,255,255,.35);cursor:pointer;transition:all .2s}
deck-stage .pager button.on{background:#fff;width:26px;border-radius:5px}
deck-stage .idx{
  position:absolute;right:22px;bottom:20px;z-index:45;
  font-family:var(--font-mono);font-size:13px;color:rgba(255,255,255,.6);letter-spacing:1px;
}

section p,section li{text-wrap:pretty}

/* ---------- 01 cover ---------- */
.cover{background:var(--cover-dark)!important;color:#fff}
.cover .bg{position:absolute;inset:0;
  background-image:var(--cover-img,url('/assets/cover/incheon-cover-c.webp'));
  background-size:var(--cover-size,cover);background-position:var(--cover-pos,center);
  background-repeat:no-repeat}
.cover .shade{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(10,14,22,.86) 0%,rgba(10,14,22,.55) 45%,rgba(10,14,22,.05) 80%),
  linear-gradient(0deg,rgba(10,14,22,.7) 0%,rgba(10,14,22,0) 38%)}
.cover.light{background:#eef3f8!important;color:var(--ink)}
.cover.light .shade{background:
  linear-gradient(90deg,rgba(246,248,251,.9) 0%,rgba(246,248,251,.62) 30%,rgba(246,248,251,.12) 50%,rgba(246,248,251,0) 62%),
  linear-gradient(0deg,rgba(246,248,251,.85) 0%,rgba(246,248,251,0) 18%)}
.cover .brand119{position:absolute;left:96px;top:250px;display:flex;align-items:flex-end;
  font-size:200px;font-weight:900;letter-spacing:-6px;line-height:.74;color:#fff}
.cover .brand119 .hint{position:absolute;left:4px;top:-64px;font-family:var(--font-mono);
  font-size:22px;letter-spacing:4px;color:rgba(255,255,255,.7);font-weight:500}
.cover .brand119 .pl{display:flex;gap:.1em;margin:0 .08em 0 .06em}
.cover .brand119 .pl .pil{font-size:200px}
.cover .slogan{position:absolute;left:96px;top:520px;font-size:110px;font-weight:800;letter-spacing:-3.5px;line-height:1}
.cover .slogan em{font-style:normal;color:oklch(0.80 0.12 35)}
.cover .sub2{position:absolute;left:100px;top:664px;font-size:38px;color:rgba(255,255,255,.9);font-weight:500;letter-spacing:-.6px}
.cover .sdg{position:absolute;left:96px;bottom:72px;display:flex;align-items:center;gap:22px}
.cover .sdg .lb{font-size:24px;color:rgba(255,255,255,.85);line-height:1.35}
.cover .sdg .lb b{display:block;font-family:var(--font-mono);font-size:18px;letter-spacing:3px;color:rgba(255,255,255,.6);font-weight:500}
.cover .sdg .chips{display:flex;gap:8px}
.cover .sdg .chips span{width:62px;height:62px;border-radius:4px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:26px;line-height:1}
.cover .sdg .chips span small{font-size:11px;font-weight:600;letter-spacing:.5px;margin-top:4px;opacity:.9}
.cover .org{position:absolute;right:96px;bottom:80px;font-size:26px;color:rgba(255,255,255,.85);font-weight:600}
.cover .top{color:#8d929c}
.cover .top .l{color:#c8cbd2}

/* light-cover overrides */
.cover.light .slogan,.cover.light .brand119{text-shadow:0 2px 24px rgba(255,255,255,.7)}
.cover.light .brand119{color:var(--ink)}
.cover.light .brand119 .hint{color:var(--ink3)}
.cover.light .slogan{color:var(--ink)}
.cover.light .slogan em{color:var(--care)}
.cover.light .sub2{color:var(--ink2)}
.cover.light .sdg .lb{color:var(--ink2)}
.cover.light .sdg .lb b{color:var(--ink3)}
.cover.light .org{color:var(--ink)}

/* cover motion */
.cover[data-deck-active] .bg{animation:kb 24s ease-out both}
.cover[data-deck-active] .brand119,.cover[data-deck-active] .slogan,
.cover[data-deck-active] .sub2,.cover[data-deck-active] .sdg,.cover[data-deck-active] .org{
  animation:fu .9s cubic-bezier(.2,.7,.2,1) both}
.cover[data-deck-active] .slogan{animation-delay:.15s}
.cover[data-deck-active] .sub2{animation-delay:.3s}
.cover[data-deck-active] .sdg,.cover[data-deck-active] .org{animation-delay:.5s}

/* card surfaces on bright slides */
.fxs{background:linear-gradient(135deg,#eef2f8 0%,#f6f4ef 55%,#f8ede6 100%)!important}
.fxs>*:not(.fx){z-index:1}
.fxs .card,.fxs .hook,.fxs .bx,.fxs .pcol,.fxs .slg div{background:rgba(255,255,255,.8);backdrop-filter:blur(6px)}
.fxs .fnd div{background:rgba(233,231,224,.8)}

/* entry motion (bright slides) */
.fxs[data-deck-active] .ttl{animation:fu .8s cubic-bezier(.2,.7,.2,1) both}
.fxs[data-deck-active] .s2b>div,.fxs[data-deck-active] .house,.fxs[data-deck-active] .map2,
.fxs[data-deck-active] .om,.fxs[data-deck-active] .fin,.fxs[data-deck-active] .dc,
.fxs[data-deck-active] .val,.fxs[data-deck-active] .mx .hr,
.fxs[data-deck-active] .gap,.fxs[data-deck-active] .pol,.fxs[data-deck-active] .gf,
.fxs[data-deck-active] .d100,.fxs[data-deck-active] .sdg,.fxs[data-deck-active] .org{
  animation:fu .8s cubic-bezier(.2,.7,.2,1) .2s both}
.fxs[data-deck-active] .s2b>div:nth-child(2),.fxs[data-deck-active] .map2,
.fxs[data-deck-active] .fin,.fxs[data-deck-active] .val{animation-delay:.38s}
.fxs[data-deck-active] .gap:nth-child(2){animation-delay:.35s}
.fxs[data-deck-active] .gap:nth-child(3){animation-delay:.47s}
.fxs[data-deck-active] .gap:nth-child(4){animation-delay:.59s}
.fxs[data-deck-active] .gap:nth-child(5){animation-delay:.71s}
.fxs[data-deck-active] .mx .rw{animation:fl .7s cubic-bezier(.2,.7,.2,1) both}
.fxs[data-deck-active] .mx .rw:nth-child(2){animation-delay:.3s}
.fxs[data-deck-active] .mx .rw:nth-child(3){animation-delay:.42s}
.fxs[data-deck-active] .mx .rw:nth-child(4){animation-delay:.54s}
.fxs[data-deck-active] .mx .rw:nth-child(5){animation-delay:.66s}
.fxs[data-deck-active] .mx .rw:nth-child(6){animation-delay:.78s}
.fxs[data-deck-active] .pcol{animation:fu .7s cubic-bezier(.2,.7,.2,1) both}
.fxs[data-deck-active] .pcol:nth-child(1){animation-delay:.4s}
.fxs[data-deck-active] .pcol:nth-child(2){animation-delay:.52s}
.fxs[data-deck-active] .pcol:nth-child(3){animation-delay:.64s}
.fxs[data-deck-active] .d100 .st::before{animation:pulse 2.4s ease-out 1.4s infinite}
.fxs[data-deck-active] .it.on i{animation:pulse 2.8s ease-out 1.2s infinite}

/* ---------- 02 rationale ---------- */
.s2b{position:absolute;left:96px;right:96px;top:330px;display:grid;grid-template-columns:1.5fr 1fr;gap:56px}
.gap{display:grid;grid-template-columns:250px 1fr;gap:24px;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}
.gap:last-child{border-bottom:0}
.gap .n{font-size:58px;font-weight:800;letter-spacing:-2.4px;line-height:1;color:var(--pc)}
.gap .n small{font-size:26px;letter-spacing:-.5px;margin-left:4px}
.gap .t{font-size:26px;font-weight:800;letter-spacing:-.6px}
.gap .d{font-size:20px;white-space:nowrap;color:var(--ink2);line-height:1.5;margin-top:6px}
.pol{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}
.pol:last-child{border-bottom:0}
.pol .dt{font-family:var(--font-mono);font-size:17px;color:var(--ink3);padding-top:5px;line-height:1.4}
.pol .t{font-size:23px;font-weight:800;letter-spacing:-.5px}
.pol .a{font-size:20px;color:var(--pd,var(--ink2));margin-top:4px;font-weight:600}
.gf{position:absolute;left:96px;right:96px;top:812px;height:136px;background:var(--ink);color:#fff;border-radius:8px;
  display:grid;grid-template-columns:200px 1.35fr 1fr 1fr;align-items:center;padding:0 36px;gap:36px}
.gf .lb{font-family:var(--font-mono);font-size:18px;letter-spacing:3px;color:#8d929c;line-height:1.5}
.gf .c .h{font-size:22px;font-weight:800}
.gf .c .d{font-size:19px;color:#b9bcc4;margin-top:6px;line-height:1.4}
.gf .chips{display:flex;gap:8px;margin-top:10px}
.gf .chips .sdgc{height:38px;font-size:17px}

/* ---------- 03 framework ---------- */
.house{position:absolute;left:96px;top:330px;width:1250px}
.vis{background:var(--ink);color:#fff;border-radius:8px 8px 0 0;height:92px;display:flex;align-items:center;gap:28px;
  padding:0 32px;clip-path:polygon(0 100%,3% 0,97% 0,100% 100%)}
.vis .m{font-family:var(--font-mono);font-size:17px;letter-spacing:3px;color:#8d929c;margin-left:24px}
.vis .t{font-size:28px;font-weight:800;letter-spacing:-.6px}
.vis .t em{font-style:normal;color:oklch(0.80 0.12 35)}
.slg{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.slg div{border-left:8px solid var(--pc);background:#fff;padding:12px 20px;display:flex;align-items:baseline;gap:16px;
  border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.slg b{font-size:26px;font-weight:800;color:var(--pc);letter-spacing:-.5px;white-space:nowrap}
.slg span{font-size:19px;color:var(--ink2)}
.pils{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.pcol{background:#fff;border:1px solid var(--line);border-top:6px solid var(--pc);padding:18px 22px 14px}
.pcol .h{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
.pcol .h b{font-size:22px;font-weight:900;letter-spacing:3px;color:var(--pc)}
.pcol .h span{font-size:19px;color:var(--ink2)}
.it{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px dashed var(--line);font-size:21px;color:var(--ink3)}
.it i{font-style:normal;width:30px;height:30px;border-radius:50%;border:2px solid var(--pc);color:var(--pc);
  display:grid;place-items:center;font-family:var(--font-mono);font-size:15px;font-weight:700;flex:none}
.it.on{color:var(--ink);font-weight:800}
.it.on i{background:var(--pc);color:#fff}
.it .k{margin-left:auto;font-size:15px;font-weight:700;color:var(--pc);font-family:var(--font-sys);letter-spacing:1px}
.fnd{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.fnd div{background:#e9e7e0;padding:14px 22px;border-radius:0 0 6px 6px}
.fnd b{display:block;font-size:21px;font-weight:800}
.fnd span{font-size:19px;color:var(--ink2)}
.map2{position:absolute;right:96px;top:330px;width:330px}
.map2 .r{display:grid;grid-template-columns:70px 36px 1fr;align-items:center;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.map2 .o{font-size:78px;font-weight:900;color:#c9c6bd;line-height:1;text-align:center}
.map2 .ar{font-size:24px;color:var(--ink3)}
.map2 .pil{font-size:84px}
.map2 .tx .x{font-family:var(--font-mono);font-size:15px;color:var(--ink3);letter-spacing:1px}
.map2 .tx b{display:block;font-size:24px;color:var(--pc);font-weight:800;margin-top:2px}
.map2 .tx span{font-size:18px;color:var(--ink2)}
.map2 .nine{font-size:40px;font-weight:300;letter-spacing:-1px}
.map2 .note{font-size:20px;color:var(--ink2);line-height:1.5;margin-top:18px}
.nine-chips{display:flex;gap:10px;margin-left:auto}
.nine-chips span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-mono);
  font-weight:700;font-size:20px;border:2px solid var(--pc);color:var(--pc)}
.nine-chips span.on{background:var(--pc);color:#fff}

/* ---------- 04 portfolio matrix ---------- */
.mx{position:absolute;left:96px;right:96px;top:318px}
.mx .hr,.mx .rw{display:grid;grid-template-columns:300px minmax(0,1fr) minmax(0,1.2fr) 280px 300px 118px;column-gap:26px}
.mx .hr{font-family:var(--font-mono);font-size:16px;letter-spacing:2px;color:var(--ink3);font-weight:700;
  padding-bottom:10px;border-bottom:2px solid var(--ink)}
.mx .rw{padding:14px 0;border-bottom:1px solid var(--line);align-items:start;min-height:118px}
.mx .nm{display:flex;gap:14px;align-items:flex-start}
.mx .nm i{font-style:normal;width:40px;height:40px;border-radius:50%;background:var(--pc);color:#fff;
  display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:18px;flex:none}
.mx .nm b{font-size:23px;font-weight:800;letter-spacing:-.6px;line-height:1.25;display:block}
.mx .nm small{font-family:var(--font-mono);font-size:15px;color:var(--ink3);letter-spacing:1px}
.mx .c{font-size:19.5px;line-height:1.48;color:var(--ink2)}
.mx .c b{color:var(--ink)}
.mx .kpi{font-size:19.5px;line-height:1.48;color:var(--pd);font-weight:700}
.mx .sd{display:flex;flex-wrap:wrap;gap:6px}
.mx .sd .sdgc{min-width:40px;height:36px;font-size:16px}

/* ---------- 05 operating model ---------- */
.om{position:absolute;left:96px;top:330px;width:980px}
.om .two{display:grid;grid-template-columns:1fr 150px 1fr;align-items:stretch}
.bx{background:#fff;border:1.5px solid var(--ink);border-radius:8px;padding:16px 22px}
.bx .h{font-size:24px;font-weight:800;letter-spacing:-.5px}
.bx .r{font-size:19px;color:var(--ink2);margin-top:6px;line-height:1.45}
.lnk{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:var(--ink2);gap:6px}
.lnk::before{content:"";width:100%;height:2px;background:var(--ink)}
.vline{width:2px;height:22px;background:var(--ink);margin:0 auto}
.tf{background:var(--ink);color:#fff;border-radius:8px;padding:16px 26px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.tf .h{font-size:25px;font-weight:800}
.tf .r{font-size:19px;color:#b9bcc4;margin-top:4px}
.tf .tg{font-family:var(--font-mono);font-size:16px;color:#fff;border:1px solid #555;padding:6px 10px;border-radius:4px;white-space:nowrap}
.ops{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.ops div{border-radius:6px;padding:12px;font-size:19px;font-weight:700;line-height:1.3;text-align:center;
  min-height:74px;display:flex;align-items:center;justify-content:center}
.ptn{margin-top:16px;border:1.5px dashed #bdbab0;border-radius:8px;padding:12px 20px;display:flex;gap:10px;
  align-items:center;flex-wrap:wrap;font-size:19px;color:var(--ink2)}
.ptn b{color:var(--ink);margin-right:6px}
.ptn span{background:#fff;border:1px solid var(--line);padding:4px 12px;border-radius:30px}
.fin{position:absolute;right:96px;top:330px;width:660px}
.zero{display:flex;align-items:baseline;gap:16px;margin-bottom:10px}
.zero b{font-size:54px;font-weight:800;letter-spacing:-2px;color:var(--care)}
.zero span{font-size:21px;color:var(--ink2)}
.fs,.rk{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:9px 0;border-bottom:1px solid var(--line);font-size:19.5px;align-items:baseline}
.fs b{font-weight:800}
.fs span{color:var(--ink2)}
.rk b{font-weight:800;color:var(--care-d)}
.rk span{color:var(--ink2)}

/* ---------- 06 decision ---------- */
.dc{position:absolute;left:96px;top:330px;width:760px;height:460px;background:var(--ink);color:#fff;border-radius:8px;
  padding:30px 38px;display:flex;flex-direction:column}
.dc .t{font-size:28px;font-weight:800}
.dc .z{font-size:20px;color:#aeb2ba;margin-top:4px}
.dc ol{list-style:none;counter-reset:a;margin-top:18px;display:flex;flex-direction:column;gap:14px}
.dc li{counter-increment:a;display:grid;grid-template-columns:52px 1fr;font-size:20px;color:#c8cbd2;line-height:1.4}
.dc li::before{content:counter(a,decimal-leading-zero);font-family:var(--font-mono);font-size:22px;font-weight:700;color:oklch(0.80 0.12 35)}
.dc li b{display:block;color:#fff;font-size:24px;margin-bottom:2px}
.dc .g{margin-top:auto;border-top:1px solid #3a3d45;padding-top:14px;font-size:19px;color:#aeb2ba;line-height:1.45}
.dc .g b{color:#fff}
.val{position:absolute;right:96px;top:330px;width:900px}
.val .hr,.val .rw{display:grid;grid-template-columns:250px 1fr 1fr;gap:22px}
.val .hr{font-family:var(--font-mono);font-size:16px;letter-spacing:2px;color:var(--ink3);font-weight:700;padding-bottom:10px;border-bottom:2px solid var(--ink)}
.val .rw{padding:15px 0;border-bottom:1px solid var(--line);font-size:20px;line-height:1.4;color:var(--ink2);align-items:center}
.val .rw b{color:var(--ink);font-size:21px;display:flex;align-items:center;gap:10px}
.val .rw b i{width:12px;height:12px;background:var(--pc);transform:rotate(45deg);flex:none}
.val .rw .o{color:var(--pd);font-weight:700}
.d100{position:absolute;left:96px;right:96px;top:826px;display:grid;grid-template-columns:200px repeat(3,1fr);align-items:stretch;gap:0}
.d100 .lb{font-family:var(--font-mono);font-size:18px;letter-spacing:3px;color:var(--ink3);font-weight:700;display:flex;align-items:center;line-height:1.5}
.d100 .st{border-top:4px solid var(--pc);padding:14px 24px 0 0;position:relative}
.d100 .st::before{content:"";position:absolute;top:-12px;left:0;width:20px;height:20px;border-radius:50%;background:var(--pc);border:4px solid var(--paper)}
.d100 .st .d{font-family:var(--font-mono);font-size:20px;font-weight:700;color:var(--pc)}
.d100 .st .t{font-size:23px;font-weight:800;margin-top:4px;letter-spacing:-.4px}
.d100 .st .x{font-size:19px;color:var(--ink2);margin-top:4px}

/* ---------- 07 E.O.D ---------- */
section.eod{background:var(--eod-bg)!important;color:#fff}
.eod>*:not(.fx){z-index:1}
.e-logo{position:absolute;left:50%;top:190px;transform:translateX(-50%);display:flex;align-items:flex-end;
  font-weight:900;font-size:150px;letter-spacing:-5px;line-height:.74}
.e-logo .pl{display:flex;gap:.1em;margin:0 .08em 0 .06em}
.e-logo .pl .pil{font-size:150px}
.e-mark{position:absolute;left:0;right:0;top:390px;text-align:center;font-family:var(--font-mono);font-size:200px;
  font-weight:700;letter-spacing:24px;line-height:1;
  background:linear-gradient(90deg,oklch(0.72 0.12 255),#fff 50%,oklch(0.76 0.12 35),oklch(0.72 0.12 255));
  -webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%}
.e-sub{position:absolute;left:0;right:0;top:622px;text-align:center;font-size:34px;color:#c8cbd2;letter-spacing:2px}
.e-slg{position:absolute;left:50%;top:720px;transform:translateX(-50%);display:flex;gap:40px}
.e-slg div{border-left:8px solid var(--pc);padding:6px 0 6px 22px;display:flex;flex-direction:column;gap:4px;min-width:470px}
.e-slg b{font-size:34px;font-weight:800;color:#fff}
.e-slg span{font-size:22px;color:#aeb2ba}
.e-bot{position:absolute;left:96px;right:96px;bottom:64px;border-top:1px solid #333842;padding-top:24px;display:flex;justify-content:space-between}
.e-bot div{display:flex;flex-direction:column;gap:6px}
.e-bot .r{text-align:right}
.e-bot b{font-size:26px;font-weight:800}
.e-bot span{font-size:20px;color:#8d929c}
.eod[data-deck-active] .e-logo{animation:fuC .9s cubic-bezier(.2,.7,.2,1) both}
.eod[data-deck-active] .e-mark{animation:fu 1s cubic-bezier(.2,.7,.2,1) .15s both,sh 6s linear 1.2s infinite}
.eod[data-deck-active] .e-sub{animation:fu .9s cubic-bezier(.2,.7,.2,1) .35s both}
.eod[data-deck-active] .e-slg{animation:fuC .9s cubic-bezier(.2,.7,.2,1) .5s both}

/* xl heading (lofi-deck legacy) */
.h1{font-size:68px;font-weight:800;letter-spacing:-2.4px;line-height:1.14}
.lead{font-size:28px;line-height:1.55;color:var(--ink2)}
.h-eyebrow{font-family:var(--font-mono);font-size:22px;font-weight:700;letter-spacing:3px}
