:root{
    --ink:#172E4D;
    --ink-2:#1E4270;
    --ink-3:#24507F;
    --navy:#24507F;
    --navy-2:#2F65A7;
    --steel:#8CA2BA;
    --steel-text:#5C7699;
    --panel:#EDF2F8;
    --orange:#C86F12;
    --paper:#F7FAFD;
    --card:#FFFFFF;
    --text:#33404F;
    --head:#172E4D;
    --muted:#6C7A8C;
    --faint:#8CA2BA;
    --line:#E1E8F1;
    --line-dark:rgba(255,255,255,.14);
    --c1:#2F65A7; --c2:#C86F12; --c3:#7FB2F0; --c4:#9C7422;
    --disp:'Archivo','IBM Plex Sans KR',system-ui,sans-serif;
    --serif-en:'Marcellus','Cinzel','IBM Plex Sans KR',serif;
    --serif-cap:'Cinzel','Archivo','IBM Plex Sans KR',serif;
    --disp-ko:'경기천년제목 Medium','경기천년제목','Gyeonggi Cheonnyeon Jemok','Gothic A1','IBM Plex Sans KR',sans-serif;
    --body:'IBM Plex Sans KR','Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;
  }
  *,*::before,*::after{box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    margin:0; background:var(--paper); color:var(--text);
    font-family:var(--body); font-size:18.4px; line-height:1.75;
    word-break:keep-all; -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%; display:block}
  p,li,dd{text-wrap:pretty}
  a{color:inherit; text-decoration:none}
  a:focus-visible,button:focus-visible{outline:2px solid var(--navy-2); outline-offset:3px; border-radius:2px}
  .wrap{max-width:1280px; margin:0 auto; padding:0 24px}
  .eyebrow{
    font-family:var(--serif-cap); font-size:13.8px; font-weight:600;
    letter-spacing:.24em; text-transform:uppercase; color:var(--steel-text);
    margin:0 0 18px;
  }
  .dark .eyebrow,.contact .eyebrow{color:var(--steel)}
  h1,h2,h3{text-wrap:balance; margin:0}
  h2{font-family:var(--disp-ko); color:var(--head)}
  .sec{padding:clamp(72px,9vw,120px) 0}
  .sec-head{display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:24px 64px; align-items:end; margin-bottom:clamp(36px,5vw,56px)}
  .sec-head h2{font-size:clamp(29.9px,3.9vw,43.7px); font-weight:700; line-height:1.35; letter-spacing:-.01em}
  .sec-head p{margin:0; color:var(--muted); font-size:17.8px; text-align:right; align-self:end}
  .sec-head.sh-wide{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)}
  .sec-head p.oneline{white-space:nowrap; font-size:16.5px}
  @media(max-width:820px){.sec-head{grid-template-columns:1fr}.sec-head p{text-align:left}.sec-head p.oneline{white-space:normal}}

  /* ───────── header ───────── */
  header{
    position:fixed; inset:0 0 auto 0; z-index:60;
    transition:background .3s,border-color .3s,box-shadow .3s;
    border-bottom:1px solid transparent;
  }
  header .bar{max-width:1380px; margin:0 auto; padding:0 24px; height:76px; display:flex; align-items:center; justify-content:space-between; gap:32px}
  .logo{display:flex; align-items:center; flex:none}
  .logo img{height:30px; width:auto}
  @media(max-width:960px){.logo img{height:24px}}
  .logo .lb{display:none}
  header.solid{background:#fff; border-bottom-color:var(--line)}
  header.scrolled{background:rgba(255,255,255,.94); backdrop-filter:blur(12px); border-bottom-color:var(--line); box-shadow:0 2px 20px rgba(11,19,34,.06)}
  header.scrolled .lw,header.solid .lw{display:none}
  header.scrolled .lb,header.solid .lb{display:block}
  nav.gnb{display:flex; gap:6px; align-items:center}
  .gnb .grp{position:relative}
  .gnb .grp>a{
    display:block; padding:26px 16px; font-family:var(--disp);
    font-size:14.9px; font-weight:600; letter-spacing:.1em; color:#fff;
  }
  header.scrolled .gnb .grp>a,header.solid .gnb .grp>a{color:var(--text)}
  .gnb .grp>a::after{content:""; display:block; height:2px; background:#fff; transform:scaleX(0); transition:transform .25s; transform-origin:left}
  header.scrolled .gnb .grp>a::after,header.solid .gnb .grp>a::after{background:var(--navy)}
  .gnb .grp:hover>a::after,.gnb .grp:focus-within>a::after{transform:scaleX(1)}
  .drop{
    display:none; position:absolute; top:100%; left:8px; min-width:210px;
    background:var(--card); border:1px solid var(--line); border-radius:10px;
    box-shadow:0 18px 40px rgba(11,19,34,.14); padding:8px;
  }
  .grp:hover .drop,.grp:focus-within .drop{display:block; animation:dropIn .18s ease}
  @keyframes dropIn{from{opacity:0; transform:translateY(6px)}to{opacity:1; transform:none}}
  .drop a{display:flex; justify-content:space-between; align-items:center; gap:16px; padding:10px 14px; border-radius:7px; font-size:16.1px; color:var(--text)}
  .drop a small{font-family:var(--disp); font-size:12.1px; letter-spacing:.08em; color:var(--faint); text-transform:uppercase}
  .drop a:hover{background:var(--panel); color:var(--navy-2)}
  .menu-btn{
    display:none; appearance:none; background:none; border:0; cursor:pointer;
    width:44px; height:44px; padding:10px; flex-direction:column; justify-content:center; gap:6px;
  }
  .menu-btn span{display:block; height:2px; background:#fff; transition:.3s}
  header.scrolled .menu-btn span,header.solid .menu-btn span{background:var(--text)}
  @media(max-width:1024px){.gnb .grp>a{padding:26px 10px; font-size:13.5px}}
  @media(max-width:720px){nav.gnb{display:none}.menu-btn{display:flex}header .bar{height:64px}}

  /* mobile drawer */
  .drawer{
    position:fixed; inset:0; z-index:70; background:var(--ink);
    color:#fff; padding:32px 28px; overflow-y:auto;
    display:none; flex-direction:column;
  }
  .drawer.open{display:flex}
  .drawer .top{display:flex; justify-content:space-between; align-items:center; margin-bottom:40px}
  .drawer .top img{height:18px}
  .drawer .close{appearance:none; background:none; border:0; color:#fff; font-size:34.5px; line-height:1; cursor:pointer; padding:6px 10px}
  .drawer .grps{display:grid; gap:36px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); max-width:760px}
  .drawer h3{font-family:var(--disp); font-size:13.8px; font-weight:700; letter-spacing:.22em; color:var(--steel); margin-bottom:14px}
  .drawer ul{list-style:none; margin:0; padding:0}
  .drawer li a{display:block; padding:9px 0; font-size:19.5px; color:rgba(255,255,255,.88)}
  .drawer li a:hover{color:var(--steel)}
  .drawer .slogan{margin-top:auto; padding-top:48px; font-family:var(--disp); font-size:14.9px; letter-spacing:.14em; color:rgba(255,255,255,.5)}

  /* ───────── hero (full-bleed, scroll-reactive) ───────── */
  .hero{position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; background:var(--ink); color:#fff}
  .hero-bg{position:absolute; inset:0; z-index:0; overflow:hidden}
  .hero-bg img{width:100%; height:120%; object-fit:cover; object-position:center 32%; will-change:transform; animation:kenburns 24s ease-out forwards}
  @keyframes kenburns{from{transform:scale(1.05)}to{transform:scale(1.17)}}
  .hero-scrim{position:absolute; inset:0; z-index:1; background:
    linear-gradient(95deg,rgba(15,30,52,.92) 0%,rgba(18,35,60,.62) 44%,rgba(23,46,77,.22) 100%),
    linear-gradient(180deg,rgba(15,30,52,.55) 0%,transparent 34%,rgba(15,30,52,.55) 100%)}
  .hero::after{content:""; position:absolute; left:0; right:0; bottom:0; height:220px; z-index:2; pointer-events:none;
    background:linear-gradient(180deg,rgba(15,30,52,0) 0%,rgba(15,30,52,.5) 100%)}
  .hero .wrap{position:relative; z-index:3; width:100%; padding-top:90px; padding-bottom:90px}
  .hero-copy{max-width:660px; will-change:transform,opacity}
  .chip{
    display:inline-block; font-family:var(--serif-cap); font-size:13.8px; font-weight:600;
    letter-spacing:.24em; text-transform:uppercase; color:#fff;
    background:rgba(36,80,127,.5); border:1px solid rgba(255,255,255,.28); backdrop-filter:blur(4px);
    padding:10px 18px; border-radius:4px; margin-bottom:30px;
  }
  .hero h1{
    font-family:var(--disp-ko); font-weight:700; letter-spacing:-.015em;
    font-size:clamp(38px,6vw,72px); line-height:1.16; margin-bottom:24px; color:#fff;
    text-shadow:0 2px 30px rgba(0,0,0,.25);
  }
  .hero .ko{font-size:clamp(17px,2vw,22px); font-weight:400; color:rgba(255,255,255,.9); margin:0 0 44px; line-height:1.75; max-width:560px}
  .scroll-ind{position:absolute; left:0; right:0; bottom:34px; z-index:3; display:flex; flex-direction:column; align-items:center; gap:9px; color:rgba(255,255,255,.7)}
  .scroll-ind span{font-family:var(--disp); font-size:11px; font-weight:700; letter-spacing:.28em; text-transform:uppercase}
  .scroll-ind .mouse{width:24px; height:38px; border:2px solid rgba(255,255,255,.55); border-radius:13px; position:relative}
  .scroll-ind .mouse::before{content:""; position:absolute; left:50%; top:8px; width:3px; height:7px; border-radius:2px; background:rgba(255,255,255,.85); transform:translateX(-50%); animation:scrolldot 1.7s ease-in-out infinite}
  @keyframes scrolldot{0%{opacity:0; transform:translate(-50%,0)}30%{opacity:1}70%{opacity:1}100%{opacity:0; transform:translate(-50%,12px)}}
  @media(max-width:960px){.hero .wrap{padding-top:110px}.hero-copy{max-width:none}.scroll-ind{display:none}}

  /* scroll progress bar */
  .scrollbar{position:fixed; top:0; left:0; height:3px; width:0; z-index:100; background:linear-gradient(90deg,var(--navy),var(--navy-2)); transition:width .1s linear}

  .btns{display:flex; gap:14px; flex-wrap:wrap}
  .btns{display:flex; gap:14px; flex-wrap:wrap}
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    font-family:var(--disp); font-size:14.9px; font-weight:700; letter-spacing:.12em;
    padding:15px 30px; border-radius:8px; transition:.25s;
  }
  .btn svg{transition:translate .25s}
  .btn:hover svg{translate:4px 0}
  .btn-main{background:#fff; color:var(--ink)}
  .btn-main:hover{background:#DCE9F7}
  .btn-line{border:1px solid rgba(255,255,255,.45); color:#fff}
  .btn-line:hover{border-color:var(--steel); color:#fff; background:rgba(140,162,186,.15)}
  .btn-line2{border:1px solid #B8CCE4; color:var(--navy); background:var(--card)}
  .btn-line2:hover{border-color:var(--navy); background:var(--panel)}
  .btn-ink{background:var(--navy); color:#fff}
  .btn-ink:hover{background:var(--navy-2)}

  /* ───────── stats ───────── */
  .stats{margin-top:clamp(56px,7vw,88px); position:relative}
  .stats .card{
    background:var(--card); border:1px solid var(--line); border-radius:14px;
    box-shadow:0 24px 60px rgba(11,19,34,.10);
    padding:clamp(28px,4vw,48px) clamp(24px,4vw,52px);
  }
  .tiles{display:grid; grid-template-columns:repeat(4,1fr); gap:32px}
  @media(max-width:960px){.tiles{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:520px){.tiles{grid-template-columns:1fr 1fr; gap:22px}.tile .num{font-size:26px}.tile{min-width:0}}
  .tile{border-top:2px solid var(--navy); padding-top:16px}
  .tile .lab{font-family:var(--disp); font-size:12.6px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--steel-text); margin-bottom:8px}
  .tile .num{
    font-family:var(--disp); font-variant-numeric:tabular-nums; color:var(--head);
    font-size:clamp(32.2px,4.1vw,48.3px); font-weight:800; letter-spacing:-.02em; line-height:1.1;
  }
  .tile .num small{font-family:var(--body); font-size:.45em; font-weight:700; color:var(--muted); letter-spacing:0; margin-left:2px}
  .tile .sub{font-size:14.4px; color:var(--faint); margin-top:6px}
  .comp{margin-top:clamp(28px,4vw,40px); padding-top:clamp(24px,3vw,32px); border-top:1px solid var(--line)}
  .comp .t{display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-bottom:14px; flex-wrap:wrap}
  .comp .t b{font-size:16.7px; font-weight:700}
  .comp .t span{font-size:13.8px; color:var(--faint)}
  .comp .bar{display:flex; gap:2px; height:14px; border-radius:4px; overflow:hidden}
  .comp .bar i{transition:filter .2s; cursor:default}
  .comp .bar i:hover{filter:brightness(1.12)}
  .comp .bar .s1{background:var(--c1)} .comp .bar .s2{background:var(--c2)} .comp .bar .s3{background:var(--c3)} .comp .bar .s4{background:var(--c4)}
  .legend{display:flex; gap:10px 28px; flex-wrap:wrap; margin-top:14px}
  .legend span{display:inline-flex; align-items:center; gap:8px; font-size:15.5px; color:var(--muted)}
  .legend i{width:10px; height:10px; border-radius:3px; flex:none}
  .legend b{font-family:var(--disp); font-variant-numeric:tabular-nums; font-weight:700; color:var(--head)}
  .legend u{text-decoration:none; font-family:var(--disp); font-variant-numeric:tabular-nums; font-size:13.8px; color:var(--faint)}
  .goal{margin-top:18px; font-size:15.5px; color:var(--muted); display:flex; align-items:center; gap:12px; flex-wrap:wrap}
  .goal span{
    font-family:var(--disp); font-size:12.6px; font-weight:700; letter-spacing:.14em;
    color:var(--orange); border:1px solid var(--orange); border-radius:3px; padding:4px 10px; flex:none;
  }
  .goal b{color:var(--orange); font-weight:700}
  .tip{
    position:fixed; z-index:80; pointer-events:none; opacity:0; transition:opacity .15s;
    background:var(--ink); color:#fff; font-size:14.4px; padding:7px 11px; border-radius:7px;
    box-shadow:0 8px 24px rgba(11,19,34,.3); white-space:nowrap; translate:-50% -130%;
  }
  .tip b{font-family:var(--disp); font-variant-numeric:tabular-nums}

  /* ───────── business ───────── */
  .biz{display:grid; grid-template-columns:repeat(2,1fr); gap:24px}
  @media(max-width:960px){.biz{grid-template-columns:1fr 1fr}}
  @media(max-width:560px){.biz{grid-template-columns:1fr}}
  .biz a{
    background:var(--card); border:1px solid var(--line); border-radius:14px;
    padding:30px 26px 28px; transition:.3s; display:flex; flex-direction:column;
  }
  .biz a:hover{translate:0 -6px; box-shadow:0 20px 44px rgba(23,46,77,.10); border-color:#B8CCE4}
  .biz .no{
    display:inline-grid; place-items:center; width:38px; height:38px; border-radius:4px;
    background:var(--navy); color:#fff; font-family:var(--disp); font-size:16.1px; font-weight:800;
    margin-bottom:20px;
  }
  .biz h3{font-size:20.1px; font-weight:700; color:var(--head); margin-bottom:10px; line-height:1.45}
  .biz .tag2{
    display:inline-block; font-style:normal; font-size:13.8px; font-weight:500; color:var(--navy);
    background:var(--panel); border-radius:3px; padding:3px 10px; margin-bottom:12px;
  }
  .biz p{margin:0; font-size:16.1px; color:var(--muted); line-height:1.65}
  .biz .more{display:inline-flex; align-items:center; gap:6px; margin-top:auto; padding-top:16px; font-family:var(--disp); font-size:13.2px; font-weight:700; letter-spacing:.14em; color:var(--navy-2)}

  /* ───────── portfolio ───────── */
  .folio{display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
  @media(max-width:960px){.folio{grid-template-columns:1fr 1fr}}
  @media(max-width:560px){.folio{grid-template-columns:1fr}}
  .folio a{background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; display:block; transition:.3s}
  .folio a:hover{translate:0 -6px; box-shadow:0 20px 44px rgba(23,46,77,.12)}
  .folio figure{margin:0; aspect-ratio:5/4; overflow:hidden}
  .folio img{width:100%; height:100%; object-fit:cover; transition:transform .5s}
  .folio a:hover img{transform:scale(1.05)}
  .folio figcaption{padding:18px 20px 20px}
  .folio .tag{font-family:var(--serif-cap); font-size:12.1px; font-weight:700; letter-spacing:.16em; color:var(--steel-text); text-transform:uppercase; display:block; margin-bottom:5px}
  .folio b{font-size:17.8px; font-weight:700; line-height:1.5; display:block}
  .sec-foot{margin-top:36px; text-align:center}

  /* ───────── vision 2030 (growth + roadmap) ───────── */
  .vision-sec{background:linear-gradient(180deg,var(--paper) 0%,var(--panel) 100%)}
  .growth{background:var(--card); border:1px solid var(--line); border-radius:12px; padding:clamp(26px,4vw,44px); box-shadow:0 20px 50px rgba(23,46,77,.06)}
  .growth .gh{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:26px}
  .growth .gh h3{font-family:var(--disp-ko); font-size:clamp(19px,2.3vw,25px); font-weight:700; color:var(--head)}
  .growth .gh p{margin:6px 0 0; font-size:15px; color:var(--muted)}
  .growth .gleg{display:flex; gap:18px; font-size:13.2px; color:var(--muted)}
  .growth .gleg span{display:inline-flex; align-items:center; gap:7px}
  .growth .gleg i{width:22px; height:0; border-top:3px solid var(--navy); border-radius:2px}
  .growth .gleg i.t{border-top:3px dashed var(--orange)}
  .gchart{width:100%; height:auto; display:block; overflow:visible}
  .gchart .grid{stroke:var(--line); stroke-width:1}
  .gchart .axis{stroke:#C9D5E3; stroke-width:1.5}
  .gchart .area{fill:url(#gfill)}
  .gchart .lact{fill:none; stroke:var(--navy); stroke-width:3; stroke-linecap:round; stroke-linejoin:round}
  .gchart .ltgt{fill:none; stroke:var(--orange); stroke-width:3; stroke-dasharray:2 7; stroke-linecap:round}
  .gchart .dot{fill:#fff; stroke:var(--navy); stroke-width:3}
  .gchart .dot.t{stroke:var(--orange)}
  .gchart .vlab{font-family:'Archivo',sans-serif; font-weight:800; fill:var(--head); font-size:20px}
  .gchart .vlab.t{fill:var(--orange)}
  .gchart .ylab{font-family:'Archivo',sans-serif; fill:var(--faint); font-size:13px}
  .gchart .xlab{font-family:'IBM Plex Sans KR',sans-serif; fill:var(--muted); font-size:14px; font-weight:500}
  .gchart .xsub{font-family:'IBM Plex Sans KR',sans-serif; fill:var(--faint); font-size:12px}
  .gchart .now{fill:var(--navy); font-family:'Archivo',sans-serif; font-weight:700; font-size:11px; letter-spacing:.08em}
  .gnote{margin-top:16px; font-size:12.5px; color:var(--faint)}

  .road{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:clamp(40px,5vw,56px); counter-reset:ph}
  @media(max-width:860px){.road{grid-template-columns:1fr}}
  .road article{position:relative; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:30px 28px; overflow:hidden}
  .road article.now{background:var(--ink); border-color:var(--ink)}
  .road .per{font-family:var(--disp); font-size:13.2px; font-weight:800; letter-spacing:.1em; color:var(--steel-text)}
  .road article.now .per{color:var(--steel)}
  .road h4{font-family:var(--disp-ko); font-size:21px; font-weight:700; color:var(--head); margin:6px 0 2px; display:flex; align-items:center; gap:10px}
  .road article.now h4{color:#fff}
  .road .badge{font-family:var(--body); font-size:11.5px; font-weight:700; color:#fff; background:var(--orange); border-radius:3px; padding:3px 9px; letter-spacing:0}
  .road ul{list-style:none; margin:20px 0 0; padding:0; display:grid; gap:11px}
  .road li{position:relative; padding-left:20px; font-size:14.5px; line-height:1.6; color:var(--text)}
  .road article.now li{color:rgba(255,255,255,.82)}
  .road li::before{content:""; position:absolute; left:2px; top:9px; width:7px; height:7px; border-radius:50%; background:var(--steel)}
  .road article.now li::before{background:var(--orange)}
  .road .goal{position:absolute; right:-30px; bottom:-30px; font-family:var(--disp); font-size:96px; font-weight:800; color:rgba(196,164,78,.14); line-height:1; pointer-events:none}
  .road .arrow{position:absolute; top:50%; right:-13px; z-index:2; width:26px; height:26px; border-radius:50%; background:var(--card); border:1px solid var(--line); display:grid; place-items:center; color:var(--steel-text); transform:translateY(-50%)}
  @media(max-width:860px){.road .arrow{display:none}}

  /* ───────── dark band ───────── */
  .dark{background:var(--ink); color:#fff; position:relative; overflow:hidden}
  .dark h2{color:#fff}
  .dark .sec-head p{color:rgba(255,255,255,.6)}
  .trust{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; position:relative}
  @media(max-width:820px){.trust{grid-template-columns:1fr}}
  .trust a{
    border:1px solid var(--line-dark); border-radius:14px; padding:32px 28px;
    background:rgba(255,255,255,.03); transition:.3s; display:block;
  }
  .trust a:hover{border-color:var(--steel); background:rgba(140,162,186,.08)}
  .trust small{font-family:var(--disp); font-size:12.6px; font-weight:700; letter-spacing:.18em; color:var(--steel); display:block; margin-bottom:12px}
  .trust h3{font-size:21.8px; font-weight:700; margin-bottom:10px}
  .trust p{margin:0; font-size:16.1px; color:rgba(255,255,255,.62); line-height:1.7}

  /* ───────── disclosure ───────── */
  .news{border:1px solid var(--line); border-radius:14px; background:var(--card); overflow:hidden}
  .news a{display:grid; grid-template-columns:118px 1fr auto; gap:24px; align-items:center; padding:20px 28px; border-top:1px solid var(--line); transition:background .2s}
  .news a:first-child{border-top:0}
  .news a:hover{background:var(--panel)}
  .news time{font-family:var(--disp); font-variant-numeric:tabular-nums; font-size:15.5px; font-weight:600; color:var(--faint)}
  .news b{font-size:17.8px; font-weight:500; line-height:1.55}
  .news svg{color:var(--faint); transition:.2s}
  .news a:hover svg{color:var(--navy-2); translate:3px 0}
  @media(max-width:560px){.news a{grid-template-columns:1fr auto; padding:16px 20px}.news time{grid-column:1/-1; margin-bottom:-12px}}

  /* ───────── contact / footer ───────── */
  .contact{background:var(--ink-2); color:#fff}
  .contact .in{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:32px 64px; align-items:center}
  @media(max-width:820px){.contact .in{grid-template-columns:1fr}}
  .contact h2{font-size:clamp(27.6px,3.4vw,39.1px); font-weight:700; line-height:1.4; margin-bottom:14px; color:#fff}
  .contact .info{display:flex; flex-direction:column; gap:6px; font-size:17.2px; color:rgba(255,255,255,.72)}
  .contact .info b{color:#fff; font-weight:500; margin-right:10px; font-family:var(--disp); font-size:13.8px; letter-spacing:.14em}
  footer{background:var(--ink); color:rgba(255,255,255,.6); font-size:15.5px}
  footer .cols{display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1fr; gap:32px; padding:clamp(48px,6vw,72px) 0}
  @media(max-width:960px){footer .cols{grid-template-columns:1fr 1fr; row-gap:40px}}
  @media(max-width:520px){footer .cols{grid-template-columns:1fr 1fr}}
  footer .brand img{height:24px; margin-bottom:18px}
  footer .brand p{margin:0; line-height:1.8; font-size:14.9px; color:rgba(255,255,255,.45)}
  footer h4{font-family:var(--disp); font-size:12.6px; font-weight:700; letter-spacing:.2em; color:#fff; margin:0 0 16px}
  footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px}
  footer ul a:hover{color:var(--steel)}
  footer .base{border-top:1px solid var(--line-dark); padding:22px 0; font-size:14.4px; color:rgba(255,255,255,.38); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap}

  /* ───────── sub pages ───────── */
  
  .subhero{position:relative; background:linear-gradient(118deg,var(--ink) 0%,var(--ink-2) 58%,var(--navy) 100%); overflow:hidden}
  .subhero::after{content:""; position:absolute; inset:0; pointer-events:none; background:
    linear-gradient(75deg,transparent 0 72%,rgba(140,162,186,.22) 72% 72.35%,rgba(127,178,240,.16) 72.35% 86%,transparent 86%)}
  .subhero .wrap{position:relative; z-index:1; padding-top:clamp(84px,7.5vw,100px); padding-bottom:clamp(14px,1.8vw,24px)}
  .subhero .eyebrow{color:var(--steel)}
  .subhero h1{font-family:var(--serif-en); font-weight:400; color:#fff; font-size:clamp(32.2px,4.4vw,50.6px); letter-spacing:.05em; margin-bottom:12px}
  .subhero .lead{margin:0; max-width:640px; color:rgba(255,255,255,.82); font-size:17.8px}
  .note{font-size:14.4px; color:var(--faint); margin-top:14px}

  /* about */
  .msg{background:var(--card); border:1px solid var(--line); border-left:3px solid var(--navy); border-radius:14px; padding:clamp(28px,4vw,44px)}
  .msg .q{font-family:var(--disp-ko); font-size:clamp(21.8px,2.5vw,27.6px); font-weight:700; color:var(--head); line-height:1.55; margin-bottom:20px}
  .msg p{margin:0 0 14px; color:var(--text); font-size:17.8px}
  .msg .sign{margin-top:22px; font-weight:700; color:var(--head); font-size:16.7px}
  .info-grid{display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--card)}
  .info-grid>div{display:grid; grid-template-columns:130px 1fr; border-top:1px solid var(--line)}
  .info-grid>div:nth-child(-n+2){border-top:0}
  .info-grid dt{font-family:var(--disp); font-size:12.6px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--steel-text); background:var(--panel); padding:15px 18px; display:flex; align-items:center; margin:0}
  .info-grid dd{margin:0; padding:15px 18px; font-size:16.7px; color:var(--text); display:flex; align-items:center}
  @media(max-width:820px){.info-grid{grid-template-columns:1fr}.info-grid>div:nth-child(2){border-top:1px solid var(--line)}}
  /* history — year-grouped timeline */
  .tl2{position:relative}
  .tl2 .yr{display:grid; grid-template-columns:130px 1fr; gap:36px; padding:26px 0; border-top:1px solid var(--line); position:relative}
  .tl2 .yr:first-child{border-top:0; padding-top:4px}
  .tl2 .y{font-family:var(--disp); font-variant-numeric:tabular-nums; font-size:clamp(30px,3.4vw,40px); font-weight:800; color:var(--head); line-height:1; letter-spacing:-.02em; position:sticky; top:96px; align-self:start}
  .tl2 .evs{display:grid; gap:16px; padding-left:26px; position:relative}
  .tl2 .evs::before{content:""; position:absolute; left:5px; top:6px; bottom:6px; width:2px; background:var(--line)}
  .tl2 .ev{position:relative; display:grid; grid-template-columns:38px 1fr auto; gap:16px; align-items:baseline}
  .tl2 .ev::before{content:""; position:absolute; left:-26px; top:9px; width:12px; height:12px; border-radius:50%; background:var(--card); border:3px solid var(--steel)}
  .tl2 .ev.key::before{border-color:var(--orange); background:var(--orange)}
  .tl2 .ev time{font-family:var(--disp); font-variant-numeric:tabular-nums; font-size:14.4px; font-weight:700; color:var(--faint)}
  .tl2 .ev p{margin:0; font-size:16.1px; color:var(--text); line-height:1.55}
  .tl2 .ev.key p{font-weight:700; color:var(--head)}
  .tl2 .cat{align-self:center; font-size:12px; font-weight:600; color:var(--steel-text); background:var(--panel); border-radius:5px; padding:4px 11px; white-space:nowrap}
  .tl2 .cat.c-lic{color:#fff; background:var(--navy)}
  .tl2 .cat.c-reit{color:var(--navy-2); background:#DCE9F7}
  .tl2 .cat.c-fin{color:var(--gold-text,#8A6E1F); background:#F2E9D6}
  .tl2 .cat.c-cap{color:var(--steel-text); background:var(--panel)}
  @media(max-width:640px){
    .tl2 .yr{grid-template-columns:1fr; gap:14px; padding:22px 0}
    .tl2 .y{position:static; font-size:28px}
    .tl2 .ev{grid-template-columns:32px 1fr; gap:12px}
    .tl2 .cat{grid-column:2; justify-self:start; margin-top:2px}
  }

  /* organization chart */
  .org{max-width:1180px; margin:0 auto}
  .org-top{position:relative; display:flex; flex-direction:column; align-items:center}
  .obox{border-radius:6px; padding:13px 44px; font-weight:700; font-size:16.5px; text-align:center; position:relative; z-index:1}
  .b-board{background:var(--orange); color:#fff}
  .b-ceo{background:var(--ink); color:#fff}
  .org-top .vline{width:2px; height:30px; background:#C9D5E3}
  .org-top .vline.trunk{height:104px}
  .side{position:absolute; top:152px; background:var(--card); border:1.5px dashed #B8CCE4; border-radius:10px; padding:16px 28px; font-weight:700; font-size:15.5px; color:var(--navy); white-space:nowrap}
  .side::after{content:""; position:absolute; top:50%; width:118px; height:2px; background:#C9D5E3}
  .side-l{right:calc(50% + 118px)} .side-l::after{right:-118px}
  .side-r{left:calc(50% + 118px)} .side-r::after{left:-118px}
  .oc{position:absolute; left:calc(50% + 116px); display:flex; flex-direction:row; gap:8px; align-items:center}
  .oc::before{content:""; position:absolute; left:-26px; top:50%; width:26px; height:2px; background:#C9D5E3}
  .oc span{font-size:13.2px; color:var(--steel-text); border:1px solid var(--line); background:var(--card); border-radius:5px; padding:6px 14px; white-space:nowrap}
  .oc-board{top:8px}
  .oc-ceo{top:86px}
  .org-row{position:relative; display:grid; gap:14px; padding-top:28px}
  .org-row::before{content:""; position:absolute; top:0; height:2px; background:#C9D5E3; left:var(--hl); right:var(--hl)}
  .org-row>*{position:relative}
  .org-row>*::before{content:""; position:absolute; top:-28px; left:50%; width:2px; height:28px; background:#C9D5E3; transform:translateX(-50%)}
  .org-row.r5{grid-template-columns:repeat(5,1fr); --hl:10%}
  .org-mid{width:2px; height:30px; background:#C9D5E3; margin:0 auto}
  .org-col{background:var(--card); border:1px solid #EDF1F7; border-radius:10px; box-shadow:0 4px 18px rgba(23,46,77,.05)}
  .org-col h4{margin:0; background:var(--navy); color:#fff; font-size:14.9px; font-weight:700; text-align:center; padding:12px 8px; border-radius:9px 9px 0 0}
  .org-col.hdr h4{border-radius:9px}
  .org-col.alt h4{background:var(--navy-2)}
  .org-col.direct{border:1.5px dashed #B8CCE4; box-shadow:none}
  .org-col.direct h4{background:var(--panel); color:var(--navy)}
  .org-col ul{list-style:none; margin:0; padding:10px}
  .org-col li{font-size:14.9px; color:var(--text); background:var(--paper); border-radius:5px; text-align:center; padding:9px 6px; margin-top:8px}
  .org-col li:first-child{margin-top:0}
  .org-col.hdr{align-self:start}
  .org-col.slim{display:flex; align-items:center; justify-content:center}
  .org-col.slim h4{background:none; color:var(--navy); padding:16px 8px; width:100%}
  .org-note{margin-top:20px; font-size:13.5px; color:var(--faint); text-align:center}
  @media(max-width:960px){
    .oc{position:static; flex-direction:row; flex-wrap:wrap; justify-content:center; margin:10px 0}
    .oc::before{display:none}
    .org-row.r5{grid-template-columns:repeat(2,1fr); padding-top:14px}
    .side{position:static; margin:8px auto; display:block; width:fit-content}
    .side::after{display:none}
    .org-top .vline.trunk{height:30px}
    .org-row::before,.org-row>*::before{display:none}
    .org-mid{display:none}
  }
  @media(max-width:560px){.org-row.r5{grid-template-columns:1fr}}

  /* strategy */
  .strat{display:grid; grid-template-columns:1fr 1fr; gap:24px}
  @media(max-width:820px){.strat{grid-template-columns:1fr}}
  .strat article{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:30px 28px}
  .strat .no{display:inline-grid; place-items:center; width:38px; height:38px; border-radius:4px; background:var(--navy); color:#fff; font-family:var(--disp); font-size:16.1px; font-weight:800; margin-bottom:18px}
  .strat h3{font-size:20.7px; font-weight:700; color:var(--head); margin-bottom:14px}
  .blist{list-style:none; margin:0; padding:0}
  .blist li{position:relative; padding:5px 0 5px 18px; font-size:16.7px; color:var(--text); line-height:1.7}
  .blist li::before{content:""; position:absolute; left:2px; top:15px; width:6px; height:6px; border-radius:2px; background:var(--steel)}
  .stock{display:grid; grid-template-columns:repeat(5,1fr); gap:14px}
  @media(max-width:960px){.stock{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:560px){.stock{grid-template-columns:1fr}}
  .stock div{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:22px 18px}
  .stock b{display:block; font-family:var(--disp); font-size:14.9px; font-weight:700; letter-spacing:.04em; color:var(--navy); margin-bottom:8px}
  .stock p{margin:0; font-size:14.9px; color:var(--muted); line-height:1.65}
  .vision{background:var(--ink); border-radius:10px; color:#fff; padding:clamp(32px,5vw,52px); display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; position:relative; overflow:hidden}
  .vision::before{content:""; position:absolute; inset:0; background:linear-gradient(75deg,transparent 0 70%,rgba(140,162,186,.16) 70% 70.4%,rgba(47,101,167,.18) 70.4% 85%,transparent 85%)}
  .vision h3{font-family:var(--disp-ko); font-size:clamp(23px,3vw,32.2px); font-weight:700; position:relative}
  .vision h3 small{display:block; font-family:var(--disp); font-size:12.6px; font-weight:700; letter-spacing:.24em; color:var(--steel); margin-bottom:10px}
  .vision .tgt{position:relative; font-family:var(--disp); font-variant-numeric:tabular-nums; text-align:right}
  .vision .tgt b{display:block; font-size:clamp(34.5px,4.6vw,50.6px); font-weight:800; color:#fff}
  .vision .tgt b i{font-style:normal; color:var(--orange); filter:brightness(1.5)}
  .vision .tgt span{font-size:14.4px; color:var(--steel)}

  /* portfolio */
  .pf-summary{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:clamp(40px,5vw,60px)}
  @media(max-width:640px){.pf-summary{grid-template-columns:1fr}}
  .pf-summary>div{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:26px 28px; display:flex; align-items:center; gap:18px}
  .pf-summary .num{white-space:nowrap}
  .pf-summary .pi{flex:none; display:grid; place-items:center; width:48px; height:48px; border-radius:10px; background:var(--panel); color:var(--navy-2)}
  .pf-summary .pi svg{width:24px; height:24px}
  .pf-summary .num{font-family:var(--disp); font-variant-numeric:tabular-nums; font-size:27px; font-weight:800; color:var(--head); line-height:1.1}
  .pf-summary .num small{font-family:var(--body); font-size:.5em; font-weight:700; color:var(--muted); margin-left:3px}
  .pf-summary .lab{font-size:13.8px; color:var(--muted); margin-top:3px}
  .track figure{position:relative}
  .track figure::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(23,46,77,.45) 100%); pointer-events:none}
  .track .loc{position:absolute; left:14px; bottom:14px; z-index:1; display:inline-flex; align-items:center; gap:6px; background:rgba(23,46,77,.72); backdrop-filter:blur(4px); color:#fff; font-size:13px; font-weight:500; padding:7px 13px; border-radius:5px}
  .track .loc svg{width:14px; height:14px; flex:none}
  .track{display:grid; grid-template-columns:1fr 1fr; gap:24px}
  @media(max-width:820px){.track{grid-template-columns:1fr}}
  .track article{background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; display:flex; flex-direction:column}
  .track figure{margin:0; aspect-ratio:16/9; overflow:hidden; background:var(--panel)}
  .track figure img{width:100%; height:100%; object-fit:cover}
  .track .body{padding:22px 24px 24px; display:flex; flex-direction:column; gap:12px; flex:1}
  .track .tt{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap}
  .track h3{font-size:19.5px; font-weight:700; color:var(--head)}
  .track .tt .tag{font-family:var(--serif-cap); font-size:12.1px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--steel-text); background:var(--panel); border-radius:3px; padding:4px 10px; flex:none}
  .track .desc{margin:0; font-size:15.5px; color:var(--muted); line-height:1.7}
  .spec{display:grid; grid-template-columns:1fr 1fr; gap:2px; border-radius:6px; overflow:hidden; border:1px solid var(--line); margin-top:auto}
  .spec span{background:var(--paper); padding:8px 12px; font-size:14.4px; color:var(--muted)}
  .spec span b{display:block; font-size:15.5px; color:var(--head); font-weight:700; font-variant-numeric:tabular-nums}

  /* compliance / risk */
  .regs{display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:14px}
  .regs div{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:20px 22px; display:flex; align-items:center; gap:14px; font-size:16.5px; font-weight:500; color:var(--text)}
  .regs i{flex:none; display:grid; place-items:center; width:40px; height:40px; border-radius:14px; background:var(--panel); color:var(--navy-2)}
  .ring{position:relative; width:min(720px,86vw); height:min(720px,86vw); margin:20px auto 8px}
  .ring::before{content:""; position:absolute; inset:11%; border:2px dashed #C9D5E3; border-radius:50%}
  .ring-core{
    position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
    width:clamp(150px,26%,190px); height:clamp(150px,26%,190px); border-radius:50%;
    background:var(--navy); color:#fff; display:grid; place-items:center; text-align:center;
    font-family:var(--disp-ko); font-size:clamp(16px,2vw,20px); font-weight:700; padding:14px;
    box-shadow:0 16px 40px rgba(23,46,77,.25);
  }
  .ri{
    position:absolute; left:var(--x); top:var(--y); transform:translate(-50%,-50%);
    background:var(--card); border:1px solid #EDF1F7; box-shadow:0 4px 18px rgba(23,46,77,.08);
    border-radius:999px; padding:10px 16px; font-size:13.8px; font-weight:500; color:var(--text);
    text-align:center; max-width:200px; line-height:1.45; white-space:normal;
  }
  @media(max-width:760px){
    .ring{width:auto; height:auto; display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:0}
    .ring::before{display:none}
    .ring-core{position:static; transform:none; width:auto; height:auto; border-radius:10px; grid-column:1/-1; padding:16px; font-size:16.5px}
    .ri{position:static; transform:none; max-width:none; border-radius:10px; padding:13px 14px}
  }
  .chips{display:flex; flex-wrap:wrap; gap:10px}
  .chips span{border:1px solid var(--line); background:var(--card); border-radius:5px; padding:11px 18px; font-size:16.1px; color:var(--text)}
  .chips span.hl{background:var(--navy); border-color:var(--navy); color:#fff; font-weight:700}
  .proc{display:grid; grid-template-columns:repeat(2,1fr); gap:14px; counter-reset:step}
  @media(max-width:960px){.proc{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:560px){.proc{grid-template-columns:1fr}}
  .proc div{position:relative; background:var(--card); border:1px solid var(--line); border-top:3px solid var(--navy); border-radius:14px; padding:24px 20px}
  .proc div::before{counter-increment:step; content:"0" counter(step); font-family:var(--disp); font-size:14.9px; font-weight:800; color:var(--steel); display:block; margin-bottom:10px}
  .proc h4{margin:0 0 12px; font-size:17.8px; font-weight:700; color:var(--head)}
  .proc .blist li{font-size:14.9px}
  .flow{display:grid; grid-template-columns:auto 1fr; gap:20px; background:var(--card); border:1px solid var(--line); border-radius:14px; padding:clamp(24px,3.5vw,36px)}
  @media(max-width:820px){.flow{grid-template-columns:1fr}}
  .flow .lead-box{background:var(--ink); color:#fff; border-radius:6px; padding:18px 22px; font-weight:700; font-size:17.2px; display:flex; align-items:center; text-align:center}
  .flow .cols{display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
  @media(max-width:820px){.flow .cols{grid-template-columns:1fr}}
  .flow .cols div{background:var(--panel); border-radius:6px; padding:16px}
  .flow .cols b{display:block; font-size:16.1px; color:var(--head); margin-bottom:6px}
  .flow .cols p{margin:0; font-size:14.4px; color:var(--muted); line-height:1.65}
  .flow-note{grid-column:1/-1; border-top:1px solid var(--line); padding-top:16px; font-size:15.5px; color:var(--muted)}
  .risk6{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; counter-reset:rk}
  @media(max-width:960px){.risk6{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:560px){.risk6{grid-template-columns:1fr}}
  .risk6 div{background:var(--card); border:1px solid var(--line); border-top:3px solid var(--navy); border-radius:14px; padding:24px 20px}
  .risk6 div::before{counter-increment:rk; content:"0" counter(rk); font-family:var(--disp); font-size:14.9px; font-weight:800; color:var(--steel); display:block; margin-bottom:10px}
  .risk6 h4{margin:0 0 12px; font-size:18.4px; font-weight:700; color:var(--head)}
  .risk6 .blist li{font-size:14.9px}

  /* partners */
  .pgrp{margin-bottom:34px}
  .pgrp h3{font-family:var(--disp); font-size:13.8px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--steel-text); margin-bottom:14px}
  .logos{display:grid; grid-template-columns:repeat(4,1fr); gap:12px}
  @media(max-width:820px){.logos{grid-template-columns:repeat(2,1fr)}}
  .logos span{background:var(--card); border:1px solid var(--line); border-radius:6px; padding:16px 12px; text-align:center; font-size:16.7px; font-weight:500; color:var(--text)}
  .logos.imgs span{display:grid; place-items:center; padding:12px}
  .logos.imgs img{max-height:44px; width:auto; max-width:80%}
  .worldmap{background:var(--card); border:1px solid #EDF1F7; border-radius:14px; box-shadow:0 4px 22px rgba(23,46,77,.055); padding:clamp(16px,3vw,36px)}
  .worldmap img{width:100%; display:block}

  /* contact page */
  .cgrid{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:24px; align-items:start}
  @media(max-width:820px){.cgrid{grid-template-columns:1fr}}
  .cbox{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:30px 28px}
  .cbox dl{margin:0; display:grid; gap:14px}
  .cbox dt{font-family:var(--disp); font-size:12.6px; font-weight:700; letter-spacing:.16em; color:var(--steel-text); margin-bottom:2px}
  .cbox dd{margin:0; font-size:17.2px; color:var(--text)}
  .cbox .qr{display:flex; gap:16px; align-items:center; margin-top:24px; padding-top:20px; border-top:1px solid var(--line)}
  .cbox .qr img{width:84px; height:84px; border:1px solid var(--line); border-radius:6px}
  .cbox .qr p{margin:0; font-size:14.9px; color:var(--muted)}
  .mapbox{border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--card)}
  .mapbox img{width:100%; display:block}
  .office-p{border-radius:14px; overflow:hidden; box-shadow:0 4px 22px rgba(23,46,77,.08)}
  .office-p img{width:100%; height:100%; object-fit:cover; display:block}

  /* login */
  .loginbox{max-width:440px; margin:0 auto; background:var(--card); border:1px solid var(--line); border-radius:10px; padding:clamp(32px,5vw,48px)}
  .loginbox img{height:26px; margin:0 auto 30px}
  .loginbox label{display:block; font-family:var(--disp); font-size:12.7px; font-weight:700; letter-spacing:.14em; color:var(--steel-text); margin:18px 0 8px}
  .loginbox input{width:100%; border:1px solid var(--line); border-radius:6px; background:var(--paper); padding:14px 16px; font-size:16px; font-family:var(--body); color:var(--text)}
  .loginbox input:focus{outline:none; border-color:var(--navy-2); background:#fff}
  .loginbox button{width:100%; margin-top:28px; appearance:none; border:0; cursor:pointer; background:var(--navy); color:#fff; border-radius:6px; padding:16px; font-family:var(--disp); font-size:15px; font-weight:700; letter-spacing:.1em; transition:.25s}
  .loginbox button:hover{background:var(--navy-2)}
  .loginbox .hint{text-align:center; margin-top:20px; font-size:13.8px; color:var(--faint)}
  .loginbox .demo-note{margin-top:8px; font-size:12.5px; color:var(--orange)}

  /* post view */
  .bview{background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden}
  .bview .bv-head{padding:clamp(26px,4vw,40px) clamp(24px,4vw,44px) 24px; border-bottom:1px solid var(--line)}
  .bview .bv-head h2{font-size:clamp(21px,2.6vw,29px); line-height:1.45; margin-bottom:14px}
  .bview .bv-meta{display:flex; gap:20px; flex-wrap:wrap; color:var(--faint); font-size:15px}
  .bview .bv-meta b{font-weight:500; color:var(--muted)}
  .bview .bv-body{padding:clamp(28px,4vw,40px) clamp(24px,4vw,44px); min-height:110px; font-size:17.5px}
  .bview .bv-body{white-space:pre-line}
  #bv-files{display:grid; gap:10px; margin:0 clamp(24px,4vw,44px) clamp(28px,4vw,40px)}
  .bview .bv-file{ border:1px solid var(--line); background:var(--paper); border-radius:6px; padding:16px 20px; display:flex; align-items:center; gap:14px}
  .bview .bv-file svg{flex:none; color:var(--navy-2)}
  .bview .bv-file a{font-weight:500; color:var(--navy); font-size:16px; word-break:break-all}
  .bview .bv-file a:hover{color:var(--navy-2)}
  .bview .bv-file small{color:var(--faint); font-size:13px; flex:none; margin-left:auto}
  .bv-nav{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px}
  .bv-nav a{background:var(--card); border:1px solid var(--line); border-radius:6px; padding:15px 20px; font-size:15px; color:var(--muted); display:flex; gap:12px; align-items:center; min-width:0}
  .bv-nav a b{font-weight:500; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
  .bv-nav a small{flex:none; font-family:var(--disp); font-size:12.5px; font-weight:700; letter-spacing:.1em; color:var(--steel-text)}
  .bv-nav a.next{justify-content:flex-end; text-align:right}
  .bv-nav a:hover{border-color:#B8CCE4; background:var(--panel)}
  .bv-nav a.off{visibility:hidden}
  .bv-foot{text-align:center; margin-top:28px}
  @media(max-width:560px){.bv-nav{grid-template-columns:1fr}.bv-nav a.off{display:none}}

  /* board pages */
  .pager{display:flex; justify-content:center; gap:6px; margin-top:28px; flex-wrap:wrap}
  /* 그누보드 get_paging 마크업(nav.pg_wrap > span.pg > a/strong) 대응 */
  .pager .pg_wrap{display:block}
  .pager .pg{display:flex; flex-wrap:wrap; justify-content:center; gap:6px}
  .pager a,.pager strong{display:grid; place-items:center; min-width:38px; height:38px; border-radius:5px; border:1px solid var(--line); background:var(--card); font-family:var(--disp); font-size:14.9px; color:var(--muted); padding:0 8px}
  .pager strong{background:var(--navy); border-color:var(--navy); color:#fff; font-weight:700}
  .pager a.on{background:var(--navy); border-color:var(--navy); color:#fff; font-weight:700}
  .pager .sound_only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); border:0; padding:0; margin:0}
  .empty{border:1px dashed var(--line-2,#C9D5E3); border-radius:14px; background:var(--card); text-align:center; padding:clamp(48px,8vw,80px) 24px; color:var(--faint); font-size:17.2px}
  .empty b{display:block; color:var(--muted); font-size:19px; margin-bottom:6px}

  /* ───────── softening pass (borders → soft shadow) ───────── */
  .biz a,.folio a,.track article,.strat article,.regs>div,.proc>div,.risk6>div,
  .trust-strip>div,.pf-summary>div,.growth,.msg,.cbox,.mapbox,.bview,.loginbox,
  .org-col,.info-grid,.news{
    border-color:#EDF1F7;
    box-shadow:0 4px 22px rgba(23,46,77,.055);
  }
  .stats .card{box-shadow:0 24px 60px rgba(23,46,77,.09)}
  .biz a:hover,.folio a:hover,.track article:hover{box-shadow:0 22px 46px rgba(23,46,77,.12)}

  /* ───────── motion ───────── */
  .reveal{opacity:0; translate:0 18px; transition:opacity .7s ease,translate .7s ease}
  .reveal.in{opacity:1; translate:0 0}
  .d1{transition-delay:.08s}.d2{transition-delay:.16s}.d3{transition-delay:.24s}
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .reveal{opacity:1; translate:0 0; transition:none}
    .folio img,.biz a,.btn svg{transition:none}
  }

  /* trust-strip — 아이콘 작게(칩)·배지 정돈 (2026-08-19) */
  .trust-strip{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:30px 0}
  .trust-strip>div{display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px}
  .trust-strip .ti{display:grid; place-items:center; width:46px; height:46px; border-radius:50%; background:var(--panel); color:var(--navy-2); margin-bottom:8px}
  .trust-strip .ti svg{width:23px; height:23px}
  .trust-strip b{font-family:var(--disp); font-size:16px; font-weight:800; color:var(--navy); letter-spacing:-.01em}
  .trust-strip span{font-size:13px; color:var(--muted)}
  @media(max-width:720px){.trust-strip{grid-template-columns:1fr 1fr; gap:22px}}
  /* .sic 전략 소제목 아이콘 칩 */
  .sic{display:inline-grid; place-items:center; width:30px; height:30px; border-radius:7px; background:var(--panel); color:var(--navy-2); vertical-align:middle; margin-right:9px}
  .sic svg{width:17px; height:17px}

  /* .ic 카드 아이콘 칩 — v31 원본 스타일 복원 (2026-08-19) */
  .biz .ic,.strat .ic{display:grid; place-items:center; width:42px; height:42px; border-radius:9px; background:var(--panel); color:var(--navy-2); margin-bottom:16px}
  .biz .ic svg,.strat .ic svg{width:21px; height:21px}
