/* ============================================================
   DM LITE — Design System / Global Stylesheet
   (index.html에서 분리, 2026-06-15)
   토큰: :root 변수 / 컴포넌트: nav·hero·biznav·bento·eg-*·pjx/mond·vision·about 등
   ============================================================ */
:root{
    --bg:#0f1213;--bg-2:#181b1c;--bg-3:#1f2324;--ink:#eef1ef;--ink-dim:#9aa1a0;--ink-faint:#646b6a;
    --line:rgba(255,255,255,.13);--line-2:rgba(255,255,255,.07);--acc:#3dcd58;--acc-d:#2faf47;
    --maxw:1320px;--pad:clamp(20px,5vw,64px);--mono:ui-monospace,"SFMono-Regular",Menlo,monospace;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Pretendard",-apple-system,system-ui,sans-serif;background:var(--bg);color:var(--ink);
    -webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}
  a{color:inherit;text-decoration:none}
  img{display:block;width:100%;height:100%;object-fit:cover}
  .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
  .rv{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
  .rv.in{opacity:1;transform:none}.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}
  .lbl{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
  .sec{padding:clamp(72px,10vh,130px) 0}
  .sec h2{font-size:clamp(1.9rem,4vw,3rem);font-weight:800;letter-spacing:-.03em;margin-top:14px;line-height:1.18}
  .sec .lead{color:var(--ink-dim);max-width:58ch;margin-top:20px;font-size:16px;line-height:1.85}
  .arrln{display:inline-flex;align-items:center;gap:8px;color:var(--acc);font-weight:600;font-size:14px;margin-top:22px}
  .arrln .a{transition:transform .25s}.arrln:hover .a{transform:translateX(5px)}

  /* NAV — TWO-TIER CORPORATE BAR (se.com / Schneider style) */
  .nav{position:fixed;inset:0 0 auto 0;z-index:60;background:var(--nav-bg);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line-2)}
  /* tier 1 — utility strip */
  .nav-utility{border-bottom:1px solid var(--line-2);background:var(--nav-util-bg)}
  .nav-utility-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);height:34px;
    display:flex;align-items:center;justify-content:flex-end;gap:8px}
  .nav-utility .lang{display:inline-flex;align-items:center;gap:2px;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em}
  .nav-utility .lang button{font:inherit;background:none;border:0;cursor:pointer;color:var(--ink-faint);
    padding:2px 5px;border-radius:3px;transition:.2s;letter-spacing:.06em}
  .nav-utility .lang button:hover{color:var(--ink)}
  .nav-utility .lang button.on{color:var(--acc)}
  .nav-utility .lang .sep{color:var(--ink-faint);opacity:.5}
  .nav-utility .util-link{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;letter-spacing:.06em;
    color:var(--ink-dim);padding:2px 4px;transition:.2s;border-left:1px solid var(--line-2);padding-left:14px;margin-left:6px}
  .nav-utility .util-link:hover{color:var(--acc)}
  .nav-utility .util-link::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--acc)}
  /* tier 2 — main bar */
  .nav-main{max-width:var(--maxw);margin:0 auto;padding:14px var(--pad);
    display:flex;align-items:center;justify-content:space-between;gap:24px}
  .brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.06em;font-size:18px}
  .brand .sq{width:11px;height:11px;border-radius:3px;background:var(--acc)}
  .menu{display:flex;gap:28px;list-style:none}
  .menu a{font-size:12.5px;letter-spacing:.08em;color:var(--ink);opacity:.78;font-weight:700;transition:.25s}
  .menu a:hover{opacity:1;color:var(--acc)}
  .menu a.active{opacity:1;color:var(--acc)}
  /* page-switching: non-home sections hidden until selected */
  #about,#vision,#business-sec,#projects,#tech,#badges,#eng,#intel,#contact{display:none}
  .nav-cta{font-size:12.5px;font-weight:700;background:var(--acc);color:var(--acc-ink);padding:10px 18px;border-radius:4px;transition:.25s;white-space:nowrap}
  .nav-cta:hover{background:var(--acc-d)}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer}.burger span{width:24px;height:2px;background:var(--ink)}

  /* HERO (full-bleed image, se-style) */
  .hero{position:relative;min-height:92svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
  .hero img.bg{position:absolute;inset:0;z-index:0;transform:scale(1.06);animation:kb 16s ease-out forwards;filter:saturate(.95);transition:opacity .45s ease}
  /* 랜딩 하단 사업분야 인덱스 바 */
  .biznav{position:relative;z-index:5;width:100%;border-top:1px solid rgba(255,255,255,.16);background:linear-gradient(0deg,rgba(8,11,11,.62),rgba(8,11,11,.18));backdrop-filter:blur(3px)}
  .biznav-in{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr)}
  .biznav a{display:flex;flex-direction:column;gap:9px;padding:20px clamp(14px,1.8vw,26px) 22px;border-left:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.9);transition:background .25s;position:relative;cursor:pointer}
  .biznav a:first-child{border-left:0}
  .biznav a small{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.5);transition:color .25s}
  .biznav a b{font-size:15px;font-weight:600;letter-spacing:-.01em;line-height:1.3;word-break:keep-all}
  .biznav a:hover,.biznav a.current{background:rgba(var(--acc-rgb),.14)}
  .biznav a:hover small,.biznav a.current small{color:var(--acc)}
  .biznav a:hover b,.biznav a.current b{color:#fff}
  .biznav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform .3s}
  .biznav a:hover::after,.biznav a.current::after{transform:scaleX(1)}
  /* hero 텍스트 사업분야 전환 시 부드러운 전환 */
  .hero .pill,.hero-in h1,.hero-in>p{transition:opacity .28s ease}
  .hero-in.swap .pill,.hero-in.swap h1,.hero-in.swap>p{opacity:0}
  @media(max-width:880px){.biznav-in{grid-template-columns:repeat(3,1fr)}.biznav a:nth-child(n+4){border-top:1px solid rgba(255,255,255,.1)}.biznav a:nth-child(3n+1){border-left:0}}
  @media(max-width:520px){.biznav-in{grid-template-columns:repeat(2,1fr)}.biznav a:nth-child(2n+1){border-left:0}}
  .hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(10,13,13,.95),rgba(10,13,13,.45) 55%,rgba(10,13,13,.55))}
  @keyframes kb{to{transform:scale(1)}}
  .hero-in{position:relative;z-index:5;max-width:var(--maxw);margin:0 auto;width:100%;padding:0 var(--pad) clamp(56px,9vh,100px)}
  .hero .pill{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);border:1px solid rgba(var(--acc-rgb),.4);background:rgba(var(--acc-rgb),.1);border-radius:999px;padding:8px 15px;opacity:0;animation:fade .8s .2s forwards}
  .hero h1{font-size:clamp(2.6rem,6vw,5rem);line-height:1.05;letter-spacing:-.03em;font-weight:800;margin-top:22px;max-width:18ch;color:#fff}
  .hero h1 em{font-style:normal;color:var(--acc)}
  .hero h1 .l{display:block;overflow:hidden}.hero h1 .l span{display:block;transform:translateY(110%);animation:reveal 1s forwards cubic-bezier(.16,1,.3,1)}
  .hero h1 .l:nth-child(2) span{animation-delay:.12s}
  .hero p{margin-top:24px;font-size:clamp(1rem,1.4vw,1.2rem);color:rgba(255,255,255,.82);max-width:48ch;line-height:1.7;opacity:0;animation:fade 1s .9s forwards}
  .hero .cta{margin-top:34px;display:flex;gap:12px;flex-wrap:wrap;opacity:0;animation:fade 1s 1.1s forwards}
  .btn{display:inline-flex;align-items:center;gap:9px;padding:15px 26px;border-radius:4px;font-size:14px;font-weight:700;transition:.25s}
  .btn-g{background:var(--acc);color:var(--acc-ink)}.btn-g:hover{background:var(--acc-d);transform:translateY(-2px)}
  .btn-o{border:1px solid rgba(255,255,255,.4);color:#fff}.btn-o:hover{border-color:var(--acc);color:var(--acc)}
  .hero-domains{list-style:none;display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:24px;opacity:0;animation:fade 1s 1s forwards}
  .hero-domains li{font-size:12.5px;letter-spacing:.02em;color:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.04);border-radius:4px;padding:8px 13px}
  .hero-domains li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:1px;background:var(--acc);margin-right:8px;vertical-align:middle}
  @keyframes reveal{to{transform:none}}@keyframes fade{to{opacity:1}}

  /* ABOUT (front) + insight cards (se top-cards) */
  .about-top{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:end}
  .about-top h2{max-width:14ch}
  /* ABOUT 하단 — 특허·인증 / R&D (plan-a about 참고, plan-d 다크 테마) */
  .abx{margin-top:clamp(56px,8vh,96px)}
  .abx .abh2{font-size:clamp(1.6rem,3.4vw,2.6rem);font-weight:300;letter-spacing:-.02em;line-height:1.22;color:var(--ink);margin-top:14px}
  /* 항목 수(n)에 관계없이 자동 배치 — 카테고리 열/항목 모두 가변 */
  .patwrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(24px,4vw,64px);margin-top:clamp(28px,4vw,44px)}
  .patcol .path{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.01em;padding-bottom:14px;border-bottom:1px solid var(--line)}
  .patlist li{padding:18px 0;border-bottom:1px solid var(--line-2);font-size:15px;color:var(--ink);line-height:1.6}
  .patlist li span{display:block;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--ink-faint);text-transform:uppercase;margin-bottom:7px}
  .patnote{margin-top:18px;font-size:12px;color:var(--ink-faint)}
  /* R&D — gap을 구분선으로 사용해 칸 수가 바뀌거나 줄바꿈돼도 깔끔하게 분할 */
  .rndrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;margin-top:clamp(28px,4vw,44px);background:var(--line-2);border:1px solid var(--line-2)}
  .rndcell{background:var(--bg);padding:26px clamp(16px,1.6vw,24px) 30px}
  .rndcell .n{font-family:var(--mono);font-size:12px;color:var(--ink-faint);letter-spacing:.06em}
  .rndcell h4{font-size:16px;font-weight:600;color:var(--ink);margin-top:14px;letter-spacing:-.01em}
  .rndcell p{font-size:13px;color:var(--ink-dim);line-height:1.7;margin-top:11px}
  .about-top .r{color:var(--ink-dim);font-size:15.5px;line-height:1.9}
  .about-top .r .chips{margin-top:22px;display:flex;flex-wrap:wrap;gap:9px}
  .about-top .r .chips span{font-size:13px;border:1px solid var(--line);border-radius:999px;padding:7px 14px;color:var(--ink-dim)}
  .icards{margin-top:54px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  .icard{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg-2);transition:.3s}
  .icard:hover{transform:translateY(-4px);border-color:rgba(var(--acc-rgb),.4)}
  .icard .im{aspect-ratio:16/11;overflow:hidden;position:relative}
  .icard .im img{transition:transform 1s}.icard:hover .im img{transform:scale(1.06)}
  .icard .b{padding:20px}
  .icard .c{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
  .icard h4{font-size:15px;font-weight:700;margin-top:8px;line-height:1.4}

  /* VISION */
  .vgrid{margin-top:50px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .vcard{border:1px solid var(--line);border-radius:10px;padding:32px;background:var(--bg-2);transition:.3s}
  .vcard:hover{border-color:rgba(var(--acc-rgb),.4);transform:translateY(-4px)}
  .vcard .ic{width:42px;height:42px;border-radius:9px;display:grid;place-items:center;font-size:18px;color:var(--acc-ink);background:var(--acc)}
  .vcard h3{font-size:19px;font-weight:700;margin-top:20px}.vcard p{font-size:14px;color:var(--ink-dim);line-height:1.75;margin-top:12px}
  /* VISION 페이지 확장 */
  .vstate{margin-top:clamp(18px,3vh,32px)}
  .vstate h2{font-size:clamp(2rem,5.2vw,3.7rem);font-weight:800;letter-spacing:-.03em;line-height:1.08;max-width:18ch}
  .vstate h2 em{font-style:normal;color:var(--acc)}
  .vsub{margin-top:22px;font-size:clamp(15px,1.4vw,18px);color:var(--ink-dim);line-height:1.85;max-width:62ch}
  .vsub b{color:var(--ink);font-weight:500}
  .vsec{margin-top:clamp(56px,8vh,100px)}
  .vsec-lbl{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
  .vsec-h{font-size:clamp(1.4rem,2.6vw,2.1rem);font-weight:700;letter-spacing:-.02em;margin-top:12px;line-height:1.2}
  .vmission{margin-top:clamp(40px,6vh,72px);border-left:3px solid var(--acc);padding:clamp(24px,3vw,40px) clamp(24px,3.5vw,48px);background:var(--bg-2);border-radius:0 12px 12px 0}
  .vmission .m-k{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
  .vmission p{font-size:clamp(1.15rem,2.1vw,1.7rem);font-weight:300;line-height:1.5;color:var(--ink);margin-top:16px;letter-spacing:-.01em}
  .vmission p b{font-weight:700;color:var(--acc)}
  .vvals{margin-top:clamp(24px,3vw,40px);display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
  .vval{border:1px solid var(--line);border-top:3px solid var(--acc);border-radius:8px;padding:26px 24px 30px;background:var(--bg-2);transition:.3s}
  .vval:hover{background:var(--bg-3);transform:translateY(-4px)}
  .vval .vn{font-family:var(--mono);font-size:12px;color:var(--acc);letter-spacing:.06em}
  .vval h4{font-size:17px;font-weight:700;margin-top:14px}
  .vval .en{display:block;font-family:var(--mono);font-size:11px;color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;margin-top:5px}
  .vval p{font-size:13.5px;color:var(--ink-dim);line-height:1.7;margin-top:12px}
  .vroad{margin-top:clamp(28px,3.5vw,46px);display:grid;grid-template-columns:repeat(5,1fr);border-top:2px solid var(--line)}
  .vroad .vr{position:relative;padding:30px clamp(12px,1.4vw,20px) 30px;border-left:1px solid var(--line-2)}
  .vroad .vr:first-child{border-left:0}
  .vroad .vr::before{content:"";position:absolute;top:-8px;left:clamp(12px,1.4vw,20px);width:13px;height:13px;border-radius:50%;background:var(--bg);border:2px solid var(--acc)}
  .vroad .vr.now::before{background:var(--acc);box-shadow:0 0 0 4px rgba(var(--acc-rgb),.2)}
  .vroad .vr .ph{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--acc);text-transform:uppercase}
  .vroad .vr h4{font-size:16px;font-weight:700;margin-top:12px;letter-spacing:-.01em}
  .vroad .vr p{font-size:12.5px;color:var(--ink-dim);line-height:1.65;margin-top:10px}
  .vesg{margin-top:clamp(56px,8vh,100px);display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(28px,5vw,72px);align-items:center;background:linear-gradient(120deg,rgba(var(--acc-rgb),.09),transparent 70%);border:1px solid var(--line);border-radius:16px;padding:clamp(28px,4vw,52px)}
  .vesg h3{font-size:clamp(1.5rem,2.8vw,2.2rem);font-weight:700;letter-spacing:-.02em;line-height:1.25}
  .vesg h3 em{font-style:normal;color:var(--acc)}
  .vesg p{font-size:15px;color:var(--ink-dim);line-height:1.9}
  .vesg p b{color:var(--ink);font-weight:500}
  .vcta{margin-top:clamp(56px,8vh,100px);text-align:center;padding:clamp(36px,6vh,72px) 0;border-top:1px solid var(--line)}
  .vcta h3{font-size:clamp(1.8rem,4.2vw,3rem);font-weight:800;letter-spacing:-.03em;line-height:1.15}
  .vcta h3 em{font-style:normal;color:var(--acc)}
  @media(max-width:820px){.vvals{grid-template-columns:repeat(2,1fr)}.vesg{grid-template-columns:1fr;gap:20px}}
  @media(max-width:900px){.vroad{grid-template-columns:repeat(2,1fr)}.vroad .vr:nth-child(odd){border-left:0}}
  @media(max-width:480px){.vvals{grid-template-columns:1fr}.vroad{grid-template-columns:1fr}.vroad .vr{border-left:0;border-top:1px solid var(--line-2)}.vroad .vr:first-child{border-top:0}}

  /* BUSINESS (탭 전환형 솔루션 대시보드) */
  .biz{background:var(--bg-2);border-block:1px solid var(--line)}
  .biz-switch{margin-top:34px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg)}
  .biz-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line);background:var(--bg-3)}
  .biz-tab{flex:1 1 0;min-width:140px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;
    padding:18px 20px;background:transparent;border:0;border-right:1px solid var(--line-2);cursor:pointer;
    color:var(--ink-dim);text-align:left;font:inherit;transition:background .25s,color .25s;position:relative}
  .biz-tab:last-child{border-right:0}
  .biz-tab .tn{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--ink-faint);transition:color .25s}
  .biz-tab .tt{font-size:clamp(.95rem,1.5vw,1.12rem);font-weight:700;letter-spacing:-.01em;color:var(--ink-dim);transition:color .25s}
  .biz-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--acc);transform:scaleX(0);transition:transform .3s}
  .biz-tab:hover{background:rgba(255,255,255,.03)}
  .biz-tab:hover .tt,.biz-tab:hover .tn{color:var(--ink)}
  .biz-tab[aria-selected="true"]{background:var(--bg)}
  .biz-tab[aria-selected="true"] .tn{color:var(--acc)}
  .biz-tab[aria-selected="true"] .tt{color:var(--ink)}
  .biz-tab[aria-selected="true"]::after{transform:scaleX(1)}
  .biz-tab:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
  .biz-panels{position:relative}
  /* BUSINESS = plan-b 솔루션 비대칭 BENTO (형태 그대로, 색감만 plan-d 다크·그린) */
  .sec-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
  .bizcount{font-family:var(--mono);font-size:13px;color:var(--ink-dim);letter-spacing:.02em}
  .bento{margin-top:clamp(28px,4vw,46px);display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(150px,auto);gap:clamp(12px,1.4vw,20px);grid-auto-flow:dense}
  .bcell{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg);display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s cubic-bezier(.16,1,.3,1),border-color .35s;text-decoration:none}
  a.bcell:hover{transform:translateY(-6px);box-shadow:0 26px 50px -24px rgba(var(--acc-rgb),.34);border-color:var(--acc)}
  /* image feature cells */
  .bcell.img .bimg{position:absolute;inset:0;z-index:0}
  .bcell.img .bimg img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
  a.bcell.img:hover .bimg img{transform:scale(1.07)}
  .bcell.img::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(8,11,11,.92),rgba(8,11,11,.34) 52%,rgba(8,11,11,.05) 100%)}
  .bcell.img .bc{position:relative;z-index:2;margin-top:auto;padding:clamp(22px,2.4vw,34px);color:#fff}
  .bcell.img .bnum{color:var(--acclt)}
  .bcell.img .bname{color:#fff}
  .bcell.img .bbenefit{color:rgba(255,255,255,.82)}
  .bcell.img .btags b{border-color:rgba(255,255,255,.36);color:rgba(255,255,255,.92)}
  .bcell.img .barr{color:#fff}
  /* text-only cells */
  .bcell.txt{background:var(--bg-2)}
  .bcell.txt .bc{padding:clamp(22px,2.4vw,32px);display:flex;flex-direction:column;height:100%}
  /* shared inner content */
  .bcell .bnum{font-family:var(--mono);font-size:clamp(2.2rem,4vw,3.4rem);font-weight:800;line-height:.85;letter-spacing:-.04em;color:var(--acc)}
  .bcell .bname{font-size:clamp(1.25rem,2vw,1.85rem);font-weight:800;letter-spacing:-.02em;line-height:1.08;margin-top:16px;color:var(--ink)}
  .bcell .bname small{display:block;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin-top:8px}
  .bcell .bbenefit{font-size:14px;line-height:1.6;color:var(--ink-dim);margin-top:12px;max-width:34ch}
  .bcell .btags{margin-top:auto;padding-top:16px;display:flex;flex-wrap:wrap;gap:7px}
  .bcell .btags b{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.02em;border:1px solid var(--line);border-radius:999px;padding:5px 11px;color:var(--ink-dim)}
  .bcell .barr{margin-top:14px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--acc);opacity:0;transform:translateX(-6px);transition:.35s}
  a.bcell:hover .barr{opacity:1;transform:none}
  /* intentional EMPTY cells — whitespace rhythm */
  .bcell.empty{border:none;background:transparent;pointer-events:none;display:grid;place-items:center}
  .bcell.empty .blab{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);opacity:.55;writing-mode:vertical-rl;transform:rotate(180deg)}
  .bcell.empty.dotline{border:1px dashed var(--line);border-radius:14px}
  /* span placements (asymmetric) */
  .b-broadcast{grid-column:span 2;grid-row:span 3}
  .b-green{grid-column:span 2;grid-row:span 3}
  .b-vision{grid-column:span 2;grid-row:span 2}
  .b-arch{grid-column:span 1;grid-row:span 2}
  .b-home{grid-column:span 1;grid-row:span 2}
  .b-energy{grid-column:span 2;grid-row:span 1}
  .b-empty1{grid-column:span 1;grid-row:span 1}
  .b-empty2{grid-column:span 1;grid-row:span 1}
  @media(max-width:980px){
    .bento{grid-template-columns:repeat(2,1fr)}
    .b-broadcast,.b-green,.b-vision,.b-energy{grid-column:span 2}
    .b-broadcast,.b-green{grid-row:span 2}
    .b-vision{grid-row:span 2}.b-arch,.b-home{grid-row:span 2}
    .b-empty1{display:none}.b-empty2{grid-column:span 2;grid-row:span 1}
  }
  @media(max-width:560px){
    .bento{grid-template-columns:1fr}
    .bcell{grid-column:1/-1!important;grid-row:auto!important;min-height:200px}
    .b-empty2{display:none}
  }
  .biz-panel{display:none;grid-template-columns:1.05fr 1fr;gap:clamp(24px,4vw,52px);align-items:center;padding:clamp(26px,4vw,48px)}
  .biz-panel[data-active="true"]{display:grid;animation:bizfade .45s cubic-bezier(.16,1,.3,1)}
  @keyframes bizfade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
  .biz-fig{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:16/11;border:1px solid var(--line)}
  .biz-fig img{transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
  .biz-panel[data-active="true"] .biz-fig img{transform:scale(1.04)}
  .biz-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,12,11,.55),transparent 55%)}
  .biz-fig .pn{position:absolute;left:16px;bottom:14px;z-index:2;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:#fff}
  .biz-detail .pc{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
  .biz-detail h3{font-size:clamp(1.4rem,2.6vw,2rem);font-weight:800;letter-spacing:-.02em;margin-top:10px;line-height:1.2}
  .biz-detail .pd{font-size:15px;color:var(--ink-dim);line-height:1.85;margin-top:16px;max-width:48ch}
  .biz-detail .pproof{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:13px;color:var(--ink);
    border:1px solid rgba(var(--acc-rgb),.4);background:rgba(var(--acc-rgb),.08);border-radius:999px;padding:8px 15px}
  .biz-detail .pproof::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc)}
  .biz-tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
  .biz-tags li{font-size:12.5px;color:var(--ink-dim);border:1px solid var(--line);border-radius:6px;padding:7px 12px}
  .biz-tags li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:1px;background:var(--acc);margin-right:8px;vertical-align:middle}
  .biz-link{display:inline-flex;align-items:center;gap:9px;margin-top:26px;color:var(--acc);font-weight:700;font-size:14px}
  .biz-link .a{transition:transform .25s}.biz-link:hover .a{transform:translateX(5px)}

  /* PROJECTS */
  .pgrid{margin-top:50px;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
  .pcard{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:16/10;border:1px solid var(--line)}
  .pcard img{transition:transform 1s}.pcard:hover img{transform:scale(1.05)}
  .pcard::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,12,11,.9),transparent 55%)}
  .pcard .m{position:absolute;left:0;bottom:0;padding:26px;z-index:2}
  .pcard .m .c{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
  .pcard .m h4{font-size:clamp(1.1rem,1.7vw,1.45rem);font-weight:700;margin-top:8px;color:#fff}
  .pcard .m p{font-size:13px;color:rgba(255,255,255,.75);margin-top:6px}

  /* ENGINEERING — 현장 기반 분야별 (사례 중심) */
  .eg-intro{margin-top:10px;font-size:14px;color:var(--ink-dim);line-height:1.6;max-width:66ch}
  #eng .pghead h1{font-size:clamp(1.5rem,2.9vw,2.3rem);margin-top:6px;line-height:1.12}
  #eng .eg-anchor{margin-top:14px;padding:10px 0 12px}
  .eg-top{position:sticky;top:108px;z-index:30;background:var(--bg);box-shadow:0 16px 20px -18px rgba(0,0,0,.75)}
  .eg-anchor{display:flex;gap:6px;flex-wrap:wrap;margin-top:clamp(18px,3vh,30px);padding:12px 0 14px;background:var(--bg);border-bottom:1px solid var(--line)}
  .eg-anchor a{font-family:var(--mono);font-size:12px;color:var(--ink-dim);border:1px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;transition:.2s;white-space:nowrap}
  .eg-anchor a:hover,.eg-anchor a.on{color:var(--acc-ink);background:var(--acc);border-color:var(--acc)}
  .eg-sec{display:none;grid-template-columns:.92fr 1.08fr;gap:clamp(24px,4vw,60px);align-items:center;padding:clamp(40px,6vh,72px) 0}
  .eg-sec.active{display:grid;animation:egfade .4s cubic-bezier(.16,1,.3,1)}
  @keyframes egfade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  .eg-sec.alt .eg-fig{order:2}
  .eg-fig{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--line)}
  .eg-fig img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
  .eg-sec:hover .eg-fig img{transform:scale(1.05)}
  .eg-fig .eg-no{position:absolute;top:14px;left:18px;font-family:var(--mono);font-size:clamp(2rem,4vw,3.2rem);font-weight:800;color:var(--acc);text-shadow:0 2px 22px rgba(0,0,0,.55);line-height:.8}
  .eg-cat{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--acc)}
  .eg-body h3{font-size:clamp(1.5rem,2.8vw,2.3rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin-top:12px}
  .eg-lead{font-size:14.5px;color:var(--ink-dim);line-height:1.8;margin-top:14px}
  .eg-case{margin-top:20px;border-left:3px solid var(--acc);background:var(--bg-2);border-radius:0 10px 10px 0;padding:18px 20px}
  .eg-case .ck{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--acc)}
  .eg-case p{font-size:14px;color:var(--ink);line-height:1.8;margin-top:9px}
  .eg-case p b{color:var(--acc);font-weight:600}
  .eg-pss{margin-top:22px;display:grid;gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:10px;overflow:hidden}
  .eg-row{background:var(--bg);padding:15px 18px;display:grid;grid-template-columns:124px 1fr;gap:16px;align-items:start}
  .eg-row b{font-size:12.5px;font-weight:700;letter-spacing:.02em}
  .eg-row.r-prob b{color:#ff6b6b}.eg-row.r-tech b{color:var(--ink-dim)}.eg-row.r-sol b{color:var(--acc)}.eg-row.r-val b{color:#ffce3a}
  .eg-row p{font-size:13.5px;color:var(--ink-dim);line-height:1.7}
  .eg-row p .hi{color:var(--ink);font-weight:500}
  .eg-chips{margin-top:18px;display:flex;flex-wrap:wrap;gap:7px}
  .eg-chips span{font-family:var(--mono);font-size:11px;color:var(--acc);border:1px solid rgba(var(--acc-rgb),.4);border-radius:999px;padding:5px 11px}
  .eg-proof{margin-top:clamp(40px,6vh,72px);display:flex;flex-wrap:wrap;gap:12px 18px;justify-content:center;padding:26px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(120deg,rgba(var(--acc-rgb),.08),transparent 70%)}
  .eg-proof span{font-family:var(--mono);font-size:13px;color:var(--ink)}.eg-proof span em{color:var(--acc);font-style:normal}
  .eg-cta{margin-top:clamp(44px,7vh,80px);text-align:center;padding:clamp(36px,6vh,64px) 0;border-top:1px solid var(--line)}
  .eg-cta h3{font-size:clamp(1.7rem,3.6vw,2.6rem);font-weight:800;letter-spacing:-.02em;line-height:1.2}.eg-cta h3 em{font-style:normal;color:var(--acc)}
  @media(max-width:860px){.eg-sec{grid-template-columns:1fr}.eg-sec.alt .eg-fig{order:-1}.eg-fig{order:-1}.eg-row{grid-template-columns:104px 1fr;gap:12px}}
  @media(max-width:520px){.eg-row{grid-template-columns:1fr;gap:3px}}
  /* PROJECTS — 몬드리안(De Stijl) 패턴 + 랜덤 최근 프로젝트 */
  .pjx-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
  .pjx-note{font-size:13px;color:var(--ink-dim);max-width:34ch;line-height:1.6}
  .mond{margin-top:clamp(28px,4vw,46px);display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(230px,1fr);gap:12px;background:transparent;border:0;grid-template-areas:"f f r b2" "f f y b2" "bl p3 p3 p4" "p5 p5 p6 k"}
  .m-f{grid-area:f}.m-b2{grid-area:b2}.m-p3{grid-area:p3}.m-p4{grid-area:p4}.m-p5{grid-area:p5}.m-p6{grid-area:p6}
  .m-red{grid-area:r;background:#e3001b}.m-yel{grid-area:y;background:#f5c400}.m-blu{grid-area:bl;background:#0b46c2}.m-blk{grid-area:k;background:#ededed}
  .mblock{transition:filter .3s}.mblock:hover{filter:brightness(1.08)}
  .mtile{position:relative;overflow:hidden;text-decoration:none;background:var(--bg2);min-width:0;border-radius:14px}
  .mtile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}
  .mtile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,11,11,.92),rgba(8,11,11,.08) 62%)}
  .mtile:hover img{transform:scale(1.07)}
  .mtile .mt-in{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(14px,1.5vw,20px)}
  .mtile .mt-c{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#111;background:#fff;padding:3px 8px;border-radius:3px}
  .mtile h4{font-size:clamp(.95rem,1.4vw,1.35rem);font-weight:700;color:#fff;margin-top:9px;letter-spacing:-.01em;line-height:1.18}
  .mtile.m-f h4{font-size:clamp(1.3rem,2vw,1.95rem)}
  .mtile .mt-y{display:block;font-family:var(--mono);font-size:11.5px;color:rgba(255,255,255,.78);margin-top:7px}
  .mt-new{position:absolute;top:12px;right:12px;z-index:3;font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.1em;color:#fff;background:#e3001b;border-radius:3px;padding:4px 9px}
  @media(max-width:760px){.mond{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(195px,1fr);grid-template-areas:"f f" "p3 p3" "b2 p4" "p5 p6"}}
  /* TECHNOLOGY */
  .tgrid{margin-top:50px;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
  .tcell{background:var(--bg-2);padding:34px}.tcell .tn{font-family:var(--mono);font-size:12px;color:var(--acc)}
  .tcell h3{font-size:19px;font-weight:700;margin-top:12px}.tcell p{font-size:14px;color:var(--ink-dim);line-height:1.75;margin-top:12px;max-width:46ch}

  /* BADGES */
  .badges{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg)}
  .badges .row{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line-2)}
  .badge{padding:46px clamp(14px,2vw,28px);text-align:center;background:var(--bg)}
  .badge .v{font-size:clamp(1.25rem,2vw,1.7rem);font-weight:800;color:var(--acc)}
  .badge .l{font-size:13px;color:var(--ink-dim);margin-top:10px}

  /* CONTACT */
  .contact h2 em{font-style:normal;color:var(--acc)}
  .cinfo{margin-top:24px;display:flex;gap:28px;flex-wrap:wrap;font-family:var(--mono);font-size:13.5px;color:var(--ink-dim)}.cinfo b{color:var(--ink);font-weight:500}
  .qform{margin-top:40px;max-width:880px}.qform button{font:inherit;cursor:pointer}
  .qsec{border-top:1px solid var(--line);padding:26px 0}.qsec:first-child{border-top:none;padding-top:0}
  .qh{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.qh .qn{font-family:var(--mono);font-size:13px;color:var(--acc)}.qh h4{font-size:15px;font-weight:700}
  .qrow{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .qf label{display:block;font-size:12px;font-family:var(--mono);color:var(--ink-dim);margin-bottom:9px}
  .qf input,.qf textarea{width:100%;font:inherit;font-size:15px;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:13px 15px;color:var(--ink)}
  .qf textarea{min-height:120px;resize:vertical}.qf input:focus,.qf textarea:focus{outline:none;border-color:var(--acc)}
  .qfull{grid-column:1/-1}
  .qchecks{display:flex;flex-wrap:wrap;gap:10px}.qchecks label{display:inline-flex;align-items:center;gap:8px;font-size:14px;border:1px solid var(--line);border-radius:999px;padding:10px 16px;cursor:pointer;color:var(--ink)}.qchecks input{accent-color:var(--acc)}
  .qsubmit{margin-top:28px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}

  /* FOOTER */
  .site-foot{border-top:1px solid var(--line);background:var(--bg);padding:56px var(--pad) 36px}
  .ft-in{max-width:var(--maxw);margin:0 auto}.ft-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
  .ft-brand{font-weight:800;letter-spacing:.06em;display:flex;align-items:center;gap:9px;font-size:18px;flex-wrap:wrap;max-width:330px}
  .ft-brand .sq2{width:10px;height:10px;border-radius:3px;background:var(--acc)}
  .ft-brand p{flex-basis:100%;font-weight:400;font-size:13px;color:var(--ink-dim);line-height:1.8;margin-top:12px;letter-spacing:0}
  .ft-nav{display:flex;gap:12px 24px;flex-wrap:wrap;max-width:520px}.ft-nav a{font-size:13px;color:var(--ink-dim)}.ft-nav a:hover{color:var(--acc)}
  .ft-info{margin-top:34px;display:flex;gap:28px;flex-wrap:wrap;font-family:var(--mono);font-size:12.5px;color:var(--ink-dim)}.ft-info b{color:var(--ink);font-weight:500}
  .ft-bottom{margin-top:28px;padding-top:22px;border-top:1px solid var(--line-2);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--ink-faint);font-size:12px}

  /* History — CHEVRON / ZIGZAG growth timeline */
  .history{margin-top:clamp(44px,6vw,72px)}
  .history .hh{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:30px}
  .history .hh h3{font-size:clamp(1.3rem,2.4vw,1.7rem);font-weight:800}
  /* zigzag timeline — fits width, no horizontal scroll */
  /* geometry: each cell is (2*--amp) tall. Dots alternate at the top band (up) and
     bottom band (down). A diagonal segment in each cell connects its dot to the next,
     producing a continuous chevron zigzag line. */
  .ztl{position:relative;overflow:hidden}
  /* --top / --bot = vertical center of dots in the up / down bands; --gap = vertical run of the zigzag */
  .ztl-track{--top:108px;--bot:268px;--gap:84px;--row:410px;list-style:none;display:grid;grid-template-columns:repeat(8,1fr);position:relative;z-index:2}
  .ztl-node{position:relative;min-width:0;height:var(--row);padding:0 4px}
  .ztl-dot{position:absolute;left:50%;transform:translate(-50%,-50%);z-index:3;
    width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
    background:var(--bg-2);border:2px solid var(--acc);color:var(--acc);font-size:15px;line-height:1}
  /* up node: dot in top band → text ABOVE it; down node: dot in bottom band → text BELOW it */
  .ztl-node.up .ztl-dot{top:var(--top)}
  .ztl-node.down .ztl-dot{top:var(--bot)}
  .ztl-node .ztl-text{position:absolute;left:2px;right:2px;text-align:center}
  .ztl-node.up .ztl-text{bottom:calc(var(--row) - var(--top) + 26px)}
  .ztl-node.down .ztl-text{top:calc(var(--bot) + 26px)}
  .ztl-text .yr{font-family:var(--mono);font-size:13px;letter-spacing:.05em;color:var(--acc);font-weight:700;margin-bottom:7px}
  .ztl-text p{font-size:12.5px;line-height:1.55;color:var(--ink-dim)}
  /* connecting diagonal: a box spanning from this dot's center to the next dot's center
     (height = --gap), with a thin line drawn corner-to-corner via linear-gradient.
     Box starts at x=50% of this cell and is 100% wide → ends at 50% of next cell = next dot x. */
  .ztl-node::after{content:"";position:absolute;left:50%;width:100%;height:var(--gap);z-index:1}
  .ztl-node:last-child::after{display:none}
  /* up-dot (top) → next down-dot (bottom): line top-left → bottom-right */
  .ztl-node.up::after{top:var(--top);
    background:linear-gradient(to bottom right,transparent calc(50% - 1px),var(--acc) calc(50% - 1px),var(--acc) calc(50% + 1px),transparent calc(50% + 1px))}
  /* down-dot (bottom) → next up-dot (top): line bottom-left → top-right */
  .ztl-node.down::after{top:var(--top);
    background:linear-gradient(to top right,transparent calc(50% - 1px),var(--acc) calc(50% - 1px),var(--acc) calc(50% + 1px),transparent calc(50% + 1px))}
  /* 곡선 연결선: 날카로운 꺾임을 부드러운 SVG 곡선으로 교체 */
  .ztl-node.up::after,.ztl-node.down::after{background:none}
  .ztl-svg{position:absolute;left:0;top:0;width:100%;height:410px;z-index:1;pointer-events:none}
  .ztl-svg path{fill:none;stroke:var(--acc);stroke-width:2;vector-effect:non-scaling-stroke}
  .ztl-node.now .ztl-dot{background:var(--acc);color:var(--acc-ink);box-shadow:0 0 0 4px rgba(var(--acc-rgb),.2),0 0 18px rgba(var(--acc-rgb),.55)}
  .ztl-node.now .ztl-text .yr{font-size:14px}
  .ztl-node.now .ztl-text p{color:var(--ink)}
  /* mobile: collapse to clean vertical list (no scroll, no zigzag) */
  @media(max-width:860px){
    .ztl-track{grid-template-columns:1fr;gap:0;position:relative}
    .ztl-track::before{content:"";position:absolute;left:16px;top:8px;bottom:8px;width:2px;background:var(--acc);opacity:.4;z-index:0}
    .ztl-node{height:auto!important;display:flex;align-items:flex-start;gap:16px;padding:12px 0;min-width:0}
    .ztl-node::after{display:none}.ztl-svg{display:none}
    .ztl-node .ztl-dot{position:static!important;transform:none!important;top:auto!important;flex:0 0 auto;width:34px;height:34px;order:0}
    .ztl-node.up .ztl-dot,.ztl-node.down .ztl-dot{top:auto!important}
    .ztl-node .ztl-text{position:static!important;left:auto;right:auto;top:auto!important;bottom:auto!important;text-align:left!important;flex:1 1 auto;padding-top:4px;order:1}
  }

  @media(max-width:900px){
    .menu,.nav-cta{display:none}.burger{display:flex}
    /* mobile: menu becomes a dropdown panel under the main bar; utility strip stays as the top tier */
    .nav-main{position:relative}
    .nav.open .menu{display:flex;flex-direction:column;gap:0;position:absolute;left:0;right:0;top:100%;
      background:rgba(15,18,19,.99);border-bottom:1px solid var(--line);padding:6px var(--pad) 16px}
    .nav.open .menu li{border-top:1px solid var(--line-2)}
    .nav.open .menu li:first-child{border-top:0}
    .nav.open .menu a{display:block;padding:15px 2px;opacity:1;font-size:14px}
    .about-top,.icards,.vgrid,.pgrid,.tgrid{grid-template-columns:1fr}.icards{grid-template-columns:repeat(2,1fr)}
    .biz-panel[data-active="true"]{grid-template-columns:1fr}
    .biz-tab{flex:1 1 45%;min-width:0;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
    .badges .row{grid-template-columns:1fr 1fr}.qrow{grid-template-columns:1fr}.ft-top{flex-direction:column;gap:24px}
  }
  @media(min-width:901px) and (max-width:1180px){.badges .row{grid-template-columns:repeat(3,1fr)}}
  @media(max-width:560px){.badges .row{grid-template-columns:1fr}}
  html,body,h1,h2,h3,h4,p,span,a,div,li,small,button,label{word-break:keep-all;overflow-wrap:break-word}
.brandlogo{height:45px;width:auto;display:inline-block;vertical-align:middle}.ft-brand .brandlogo{height:45px;filter:var(--logo-filter);opacity:1}.ft-brand{display:flex;align-items:center;gap:14px;flex-wrap:nowrap;max-width:none}.ft-brand p{margin-top:0;flex-basis:auto;min-width:0}.ft-home{display:inline-flex;flex:0 0 auto;line-height:0;cursor:pointer}

  /* ===== ENGINEERING / INTELLIGENCE (ported from plan-a, dark+green theme) ===== */
  #eng .pghead,#intel .pghead,#tech .pghead{max-width:760px}
  #eng .pghead h1,#intel .pghead h1,#tech .pghead h1{font-size:clamp(1.9rem,4vw,3rem);font-weight:800;letter-spacing:-.03em;margin-top:14px;line-height:1.18}
  .eintro{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(24px,5vw,72px);align-items:end;margin-top:clamp(24px,4vh,46px)}
  .eintro .lead{color:var(--ink-dim);font-size:16px;line-height:1.85;max-width:60ch}
  .eintro .lead b{color:var(--ink)}
  .eintro .stat{display:flex;gap:clamp(20px,3vw,46px);flex-wrap:wrap;border-top:1px solid var(--line);padding-top:22px}
  .eintro .stat .s .v{font-size:clamp(1.4rem,2.4vw,2.1rem);font-weight:300;letter-spacing:-.01em;color:var(--acc)}
  .eintro .stat .s .k{font-size:11.5px;color:var(--ink-dim);margin-top:6px;letter-spacing:.02em}
  .edisc{margin-top:clamp(50px,7vh,90px)}
  .edisc h3,.ematrix-h,.eflow-h{font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:700;letter-spacing:-.02em;color:var(--ink)}
  .edisc .lead{color:var(--ink-dim);font-size:15px;line-height:1.85}
  .edgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:24px}
  .edcell{padding:30px 24px 34px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--bg-2);transition:.35s}
  .edcell:hover{background:var(--bg-3)}
  .edcell .ico{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--acc)}
  .edcell h4{font-size:16.5px;font-weight:600;margin-top:14px;color:var(--ink)}
  .edcell .desc{font-size:13.5px;color:var(--ink-dim);line-height:1.7;margin-top:10px}
  .edcell .spec{font-family:var(--mono);font-size:11.5px;color:var(--ink);margin-top:14px;letter-spacing:.01em;opacity:.85}
  .ematrix{margin-top:clamp(50px,7vh,90px);overflow-x:auto}
  .etable{width:100%;min-width:760px;border-collapse:collapse;margin-top:24px;font-size:13px;color:var(--ink)}
  .etable th,.etable td{border:1px solid var(--line);padding:14px 10px;text-align:center}
  .etable thead th{font-weight:500;color:var(--ink-dim);font-size:11.5px;letter-spacing:.04em;line-height:1.4;background:var(--bg-3)}
  .etable tbody th{text-align:left;font-weight:500;white-space:nowrap;padding-left:16px;color:var(--ink);background:var(--bg-2)}
  .etable .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink-dim)}
  .etable .core{width:11px;height:11px;background:var(--acc);box-shadow:0 0 0 3px rgba(var(--acc-rgb),.15)}
  .etable td.empty{color:var(--ink-faint)}
  .ematrix .legend{font-size:11.5px;color:var(--ink-faint);margin-top:14px;display:flex;gap:18px;flex-wrap:wrap;align-items:center}
  .eflow{margin-top:clamp(50px,7vh,90px)}
  .eflow .lead{color:var(--ink-dim);font-size:15px;line-height:1.85}
  .eflowgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:24px}
  .efcell{padding:30px 24px 34px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--bg-2)}
  .efcell .step{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--acc)}
  .efcell h4{font-size:16px;font-weight:600;margin-top:12px;color:var(--ink)}
  .efcell p{font-size:13px;color:var(--ink-dim);line-height:1.7;margin-top:10px}
  @media(max-width:900px){.eintro{grid-template-columns:1fr}.eflowgrid{grid-template-columns:1fr 1fr}}
  /* Flagship — elevated dark panel (NOT white) */
  .aiflag{background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--acc);color:var(--ink);padding:clamp(34px,5vw,64px);margin-top:clamp(50px,7vh,90px);border-radius:6px}
  .aiflag .tag{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--acc)}
  .aiflag h3{font-size:clamp(1.5rem,3vw,2.4rem);font-weight:700;letter-spacing:-.02em;color:var(--ink);margin-top:14px;line-height:1.25}
  .aiflag .fp{color:var(--ink-dim);font-size:15px;line-height:1.9;margin-top:18px;max-width:66ch}
  .aiflag .fp b{color:var(--ink);font-weight:500}

  /* ===== plan-f ENGINEERING/INTELLIGENCE 폼 이식 (plan-d 다크·그린 테마) ===== */
  /* 지그재그 넘버 블록 리스트 */
  .zlist{margin-top:clamp(28px,4vw,52px);counter-reset:zb}
  .zrow{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:clamp(18px,3vw,48px);padding:clamp(20px,3vw,40px) 0;border-top:2px solid var(--line)}
  .zrow:last-child{border-bottom:2px solid var(--line)}
  .zrow:nth-child(even){direction:rtl}
  .zrow:nth-child(even)>*{direction:ltr}
  .znum{counter-increment:zb;position:relative;line-height:.8}
  .znum::before{content:counter(zb,decimal-leading-zero);font-size:clamp(5rem,15vw,12rem);font-weight:800;letter-spacing:-.06em;color:var(--acc);font-variant-numeric:tabular-nums;display:block}
  .znum .ico{display:block;font-family:var(--mono);font-size:clamp(11px,1.1vw,13px);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);margin-top:-8px}
  .ztxt h4{font-size:clamp(1.5rem,3.2vw,2.4rem);font-weight:700;letter-spacing:-.03em;line-height:1.05;color:var(--ink)}
  .ztxt .desc{font-size:clamp(14px,1.35vw,16px);color:var(--ink-dim);line-height:1.8;margin-top:14px;max-width:54ch}
  .ztxt .spec{display:inline-block;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--acc);border:1px solid var(--acc);border-radius:4px;padding:6px 13px;margin-top:18px}
  /* 컴팩트 볼드 블록 */
  .bblocks{margin-top:clamp(24px,3vw,44px);display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:clamp(14px,1.6vw,22px)}
  .bblk{position:relative;background:var(--bg-2);border:1px solid var(--line);border-left:5px solid var(--acc);border-radius:6px;padding:clamp(24px,2.6vw,34px) clamp(22px,2.4vw,30px);transition:.3s}
  .bblk:hover{background:var(--bg-3);transform:translateY(-3px)}
  .bblk .bn{font-size:clamp(2.4rem,5vw,3.6rem);font-weight:800;letter-spacing:-.05em;color:var(--acc);line-height:.85;font-variant-numeric:tabular-nums}
  .bblk .ico{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--acc);margin-top:12px}
  .bblk h4{font-size:clamp(18px,1.8vw,21px);font-weight:700;letter-spacing:-.01em;margin-top:8px;color:var(--ink)}
  .bblk .desc{font-size:13.5px;color:var(--ink-dim);line-height:1.75;margin-top:11px}
  .bblk .spec{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--ink-dim);margin-top:16px}
  /* 매트릭스 테이블 */
  .bmatrix{margin-top:clamp(50px,7vh,90px);overflow-x:auto}
  .btable{width:100%;min-width:760px;border-collapse:collapse;margin-top:24px;font-size:13.5px;border:1px solid var(--line)}
  .btable th,.btable td{border:1px solid var(--line);padding:14px 10px;text-align:center}
  .btable thead th{font-weight:700;color:var(--ink);background:var(--bg-3);font-size:12px;letter-spacing:.02em;line-height:1.4}
  .btable thead th:first-child{background:var(--acc-d);color:var(--acc-ink)}
  .btable tbody th{text-align:left;font-weight:700;white-space:nowrap;padding-left:16px;background:var(--bg-2);color:var(--ink)}
  .btable .dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ink-faint)}
  .btable .core{width:14px;height:14px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 3px rgba(var(--acc-rgb),.15)}
  .btable td.empty{color:var(--ink-faint);font-weight:700}
  .bmatrix .legend{font-size:12px;color:var(--ink-dim);margin-top:14px;display:flex;gap:18px;flex-wrap:wrap;align-items:center}
  /* 볼드 지그재그 플로우 */
  .bflow{margin-top:clamp(50px,7vh,90px)}
  .bflowlist{margin-top:clamp(24px,3vw,40px);display:flex;flex-direction:column}
  .bfstep{display:flex;align-items:baseline;gap:clamp(16px,2.5vw,40px);padding:clamp(18px,2.4vw,30px) 0;border-bottom:1px solid var(--line)}
  .bfstep:first-child{border-top:2px solid var(--line)}
  .bfstep:nth-child(even){flex-direction:row-reverse;text-align:right}
  .bfstep .bfn{font-size:clamp(2.4rem,5vw,3.6rem);font-weight:800;color:var(--acc);letter-spacing:-.05em;line-height:.85;flex:0 0 auto;font-variant-numeric:tabular-nums}
  .bfstep .bfb{flex:1 1 auto;min-width:0}
  .bfstep .step{font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.1em;color:var(--acc)}
  .bfstep h4{font-size:clamp(19px,2.2vw,26px);font-weight:700;letter-spacing:-.02em;margin-top:6px;color:var(--ink)}
  .bfstep p{font-size:14px;color:var(--ink-dim);line-height:1.7;margin-top:8px;max-width:60ch;margin-left:auto;margin-right:auto}
  .bfstep:nth-child(odd) p{margin-left:0}
  .bfstep:nth-child(even) p{margin-right:0}
  /* FLAGSHIP 클로즈드루프 (aiflag 내부) */
  .bloop{display:flex;flex-wrap:wrap;align-items:stretch;margin-top:36px;gap:0}
  .bloop .ls{flex:1 1 170px;padding:22px 16px 24px;border:1px solid var(--line);margin:-1px}
  .bloop .ls .ln{font-size:clamp(2rem,3.4vw,2.8rem);font-weight:800;color:var(--acc);letter-spacing:-.04em;line-height:.85;font-variant-numeric:tabular-nums}
  .bloop .ls .lk{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.12em;color:var(--ink-dim);text-transform:uppercase;margin-top:8px}
  .bloop .ls h5{font-size:14.5px;font-weight:700;color:var(--ink);margin-top:12px}
  .bloop .ls p{font-size:12.5px;color:var(--ink-dim);margin-top:9px;line-height:1.6}
  .bloop .ls .arrow{display:block;font-size:18px;font-weight:800;color:var(--acc);margin-top:14px}
  .bloop .ls:last-child .arrow{color:var(--ink-faint)}
  @media(max-width:820px){
    .zrow{grid-template-columns:1fr;gap:6px;direction:ltr;text-align:left}
    .zrow:nth-child(even){direction:ltr}
    .zrow:nth-child(even)>*{direction:ltr}
    .znum::before{font-size:clamp(4.5rem,22vw,7rem)}
    .bfstep,.bfstep:nth-child(even){flex-direction:column;align-items:flex-start;text-align:left;gap:6px}
    .bfstep p,.bfstep:nth-child(even) p{margin-left:0;margin-right:0}
    .bloop .ls{flex:1 1 100%}
  }
  .loop{display:grid;grid-template-columns:repeat(5,1fr);margin-top:34px;border-top:1px solid var(--line)}
  .loop .ls{padding:22px 16px 24px;border-right:1px solid var(--line-2)}
  .loop .ls:last-child{border-right:none}
  .loop .ls .ln{font-family:var(--mono);font-size:11px;color:var(--acc);letter-spacing:.08em}
  .loop .ls h5{font-size:14px;font-weight:600;color:var(--ink);margin-top:11px}
  .loop .ls p{font-size:12px;color:var(--ink-dim);margin-top:8px;line-height:1.6}
  .loopnote{font-size:12px;color:var(--ink-faint);margin-top:18px;letter-spacing:.02em}
  @media(max-width:760px){.loop{grid-template-columns:1fr 1fr}}

  /* ===== PLAN-D DISTINCT: CORPORATE DASHBOARD / TAB SWITCHER (eng/intel) ===== */
  *{word-break:keep-all}
  /* discipline tab switcher */
  .pd-disc{margin-top:28px;border:1px solid var(--line);border-radius:6px;background:var(--bg-2);overflow:hidden}
  .pd-tabbar{display:flex;flex-wrap:wrap;background:var(--bg-3);border-bottom:1px solid var(--line)}
  .pd-tab{flex:1 1 0;min-width:140px;display:flex;flex-direction:column;gap:5px;align-items:flex-start;
    padding:16px 18px;background:none;border:0;border-right:1px solid var(--line-2);cursor:pointer;
    position:relative;text-align:left;transition:background .25s}
  .pd-tab:last-child{border-right:0}
  .pd-tab .pn{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--ink-faint);transition:color .25s}
  .pd-tab .pt{font-size:14.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink-dim);transition:color .25s}
  .pd-tab::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--acc);transform:scaleX(0);transition:transform .3s}
  .pd-tab:hover{background:rgba(255,255,255,.03)}
  .pd-tab:hover .pt,.pd-tab:hover .pn{color:var(--ink)}
  .pd-tab[aria-selected="true"]{background:var(--bg)}
  .pd-tab[aria-selected="true"] .pn{color:var(--acc)}
  .pd-tab[aria-selected="true"] .pt{color:var(--ink)}
  .pd-tab[aria-selected="true"]::after{transform:scaleX(1)}
  .pd-tab:focus-visible{outline:2px solid var(--acc);outline-offset:-2px}
  .pd-panel{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(20px,4vw,48px);padding:clamp(28px,4vw,46px);align-items:start;background:var(--bg)}
  .pd-panel[hidden]{display:none}
  .pd-panel .pp-ico{font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--acc)}
  .pd-panel .pp-h{font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:700;letter-spacing:-.02em;color:var(--ink);margin-top:12px;line-height:1.2}
  .pd-panel .pp-desc{font-size:14.5px;color:var(--ink-dim);line-height:1.85;margin-top:16px}
  .pd-panel .pp-spec{font-family:var(--mono);font-size:12px;color:var(--ink);letter-spacing:.02em;
    border-top:1px solid var(--line);padding-top:18px;margin-top:8px}
  .pd-panel .pp-spec b{display:block;font-family:var(--mono);font-size:10.5px;font-weight:400;letter-spacing:.16em;color:var(--acc);margin-bottom:10px;text-transform:uppercase}
  @media(max-width:760px){.pd-panel{grid-template-columns:1fr}.pd-tab{flex:1 1 45%;border-bottom:1px solid var(--line-2)}}

  /* green dashboard cards row (control techs) */
  .pd-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:24px}
  .pd-card{background:var(--bg-2);border:1px solid var(--line);border-top:3px solid var(--acc);border-radius:6px;padding:26px 24px 28px;transition:.3s}
  .pd-card:hover{background:var(--bg-3);transform:translateY(-3px)}
  .pd-card .pc-ico{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;color:var(--acc)}
  .pd-card h4{font-size:16.5px;font-weight:700;color:var(--ink);margin-top:13px}
  .pd-card .pc-desc{font-size:13.5px;color:var(--ink-dim);line-height:1.75;margin-top:11px}
  .pd-card .pc-spec{font-family:var(--mono);font-size:11.5px;color:var(--ink);margin-top:16px;letter-spacing:.01em;opacity:.85}

  /* corporate data table (matrix) */
  .pd-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;margin-top:24px;font-size:13px;color:var(--ink);
    border:1px solid var(--line);border-radius:6px;overflow:hidden}
  .pd-table th,.pd-table td{padding:13px 10px;text-align:center;border-bottom:1px solid var(--line-2)}
  .pd-table thead th{font-weight:700;color:var(--acc-ink);font-size:11.5px;letter-spacing:.04em;line-height:1.4;background:var(--acc)}
  .pd-table thead th:first-child{text-align:left;padding-left:16px;background:var(--acc-d)}
  .pd-table tbody th{text-align:left;font-weight:600;white-space:nowrap;padding-left:16px;color:var(--ink);background:var(--bg-3)}
  .pd-table tbody tr:nth-child(even) td,.pd-table tbody tr:nth-child(even) th{background:var(--bg-2)}
  .pd-table tbody tr:nth-child(even) th{background:var(--bg-2)}
  .pd-table tbody tr:hover td,.pd-table tbody tr:hover th{background:rgba(var(--acc-rgb),.07)}
  .pd-table tbody tr:last-child td,.pd-table tbody tr:last-child th{border-bottom:0}
  .pd-table .dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink-dim)}
  .pd-table .core{width:11px;height:11px;background:var(--acc);box-shadow:0 0 0 3px rgba(var(--acc-rgb),.15)}
  .pd-table td.empty{color:var(--ink-faint)}
  .pd-tablewrap{margin-top:24px;overflow-x:auto}
  .pd-legend{font-size:11.5px;color:var(--ink-faint);margin-top:14px;display:flex;gap:18px;flex-wrap:wrap;align-items:center}

  /* AI metric dashboard grid (2 rows) */
  .pd-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}
  .pd-metric{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:24px 22px 26px;position:relative;transition:.3s}
  .pd-metric::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;background:var(--acc);border-radius:0 2px 2px 0;opacity:.55;transition:.3s}
  .pd-metric:hover{background:var(--bg-3)}.pd-metric:hover::before{opacity:1}
  .pd-metric .pm-ico{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--acc)}
  .pd-metric h4{font-size:16px;font-weight:700;color:var(--ink);margin-top:11px}
  .pd-metric .pm-desc{font-size:13px;color:var(--ink-dim);line-height:1.7;margin-top:10px}
  .pd-metric .pm-spec{font-family:var(--mono);font-size:11px;color:var(--ink);margin-top:14px;opacity:.85}
  @media(max-width:860px){.pd-metrics{grid-template-columns:1fr 1fr}}
  @media(max-width:520px){.pd-metrics{grid-template-columns:1fr}}

  /* horizontal stepped roadmap (LLM closed-loop) */
  .pd-roadmap{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:34px}
  .pd-roadmap::before{content:"";position:absolute;left:0;right:0;top:13px;height:2px;
    background:linear-gradient(90deg,var(--acc-d),var(--acc));opacity:.4;z-index:0}
  .pd-rnode{position:relative;z-index:1;padding:0 12px;text-align:left}
  .pd-rnode .pr-dot{width:28px;height:28px;border-radius:50%;background:var(--bg);border:2px solid var(--acc);
    display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:700;color:var(--acc);
    box-shadow:0 0 0 5px rgba(var(--acc-rgb),.12)}
  .pd-rnode .pr-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--acc);margin-top:14px}
  .pd-rnode h5{font-size:14px;font-weight:700;color:var(--ink);margin-top:9px}
  .pd-rnode p{font-size:12px;color:var(--ink-dim);margin-top:8px;line-height:1.6}
  @media(max-width:760px){
    .pd-roadmap{grid-template-columns:1fr;gap:18px}
    .pd-roadmap::before{left:13px;right:auto;top:0;bottom:0;width:2px;height:auto}
    .pd-rnode{padding:0 0 0 44px}
    .pd-rnode .pr-dot{position:absolute;left:0;top:0}
  }

  /* compact list (automation) */
  .pd-list{margin-top:24px;border:1px solid var(--line);border-radius:6px;overflow:hidden}
  .pd-litem{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:baseline;
    padding:18px 22px;border-bottom:1px solid var(--line-2);background:var(--bg-2);transition:background .25s}
  .pd-litem:last-child{border-bottom:0}
  .pd-litem:hover{background:var(--bg-3)}
  .pd-litem .pl-head{display:flex;flex-direction:column;gap:5px}
  .pd-litem .pl-ico{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;color:var(--acc)}
  .pd-litem .pl-t{font-size:15px;font-weight:700;color:var(--ink)}
  .pd-litem .pl-d{font-size:13.5px;color:var(--ink-dim);line-height:1.7}
  @media(max-width:620px){.pd-litem{grid-template-columns:1fr;gap:8px}}
