/* 상상테크 회사 소개 + 실적 (2026-11-04 새로 디자인). 글은 i18n/company|records/<언어>.json, 만들기는 i18n/build.py
   구조: 회사 소개 = 한눈에 보는 곳(요약), 실적 = 들어가서 보는 곳(분야별 카드)
   방향: 차분하고 정확하게, 기록으로 말하는 회사. 화면의 볼거리는 인증서 실물 두 장, 나머지는 조용하게.
   표시: 날짜와 숫자는 고정폭(IBM Plex Mono), 항목마다 증빙 링크 */
:root{
  --navy:#081c28;--teal:#28e0bb;--work:#00a84f;--work-bg:#f1f8f4;
  --bg:#ffffff;--surface:#f5f7f9;--line:rgba(17,24,39,.09);
  --ink:#111827;--ink-2:#4b5565;--ink-3:#6b7487;
  --link:#0a6e5c;--mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --ease:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans KR",Pretendard,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-size:15px;line-height:1.6;word-break:keep-all}
html[lang=ja] body{font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;word-break:normal;line-break:strict}
html[lang^=zh] body{font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;word-break:normal;line-break:strict}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p,dl,dd,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num,time{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* 위 막대: 남색 (첫 부분과 이어짐) */
.hd{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;height:64px;padding:0 24px 0 32px;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.08)}
.hd-brand{display:block;margin-right:auto;padding:4px 0}
.hd-brand img{height:24px;width:auto;filter:brightness(0) invert(1)}
.hd-nav{display:flex;gap:4px}
.hd-nav a{font-size:15px;color:#b9c9d0;text-decoration:none;padding:8px 12px;border-radius:8px;transition:background-color .15s var(--ease),color .15s var(--ease)}
.hd-nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.hd-nav a[aria-current]{color:#fff;font-weight:500}
a:focus-visible,summary:focus-visible{outline:2px solid var(--teal);outline-offset:2px;border-radius:6px}
main a:focus-visible{outline-color:var(--link)}

/* 언어: 지구본 (첫 화면과 같음) */
.lang{position:relative}
.lang summary{list-style:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;color:#b9c9d0;cursor:pointer;transition:background-color .15s var(--ease),color .15s var(--ease)}
.lang summary::-webkit-details-marker{display:none}
.lang summary:hover,.lang[open] summary{color:#fff;background:rgba(255,255,255,.08)}
.lang summary svg{width:22px;height:22px}
.lang-menu{position:absolute;right:0;top:46px;margin:0;padding:6px;min-width:160px;background:#fff;border:1px solid #dfe5e8;border-radius:12px;box-shadow:0 8px 24px rgba(8,28,40,.1)}
.lang-menu a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 12px;border-radius:8px;font-size:14px;color:var(--ink);text-decoration:none;white-space:nowrap}
.lang-menu a:hover{background:var(--surface)}
.lang-menu a[aria-current]{font-weight:600}
.lang-menu .ck{width:16px;height:16px;color:var(--work)}

/* 첫 부분: 남색 띠 위에 왼쪽 글, 오른쪽 인증서 두 장, 아래 숫자 */
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
.band{background:var(--navy);color:#fff}
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:48px;min-height:calc(100svh - 64px - 160px);padding-top:64px;padding-bottom:64px}
.hero h1{font-size:clamp(36px,4.4vw,58px);line-height:1.16;font-weight:600;letter-spacing:-.025em}
.lead{margin-top:24px;max-width:36rem;font-size:19px;line-height:1.7;color:#c4d2d8}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px}
.btn{display:inline-flex;align-items:center;gap:6px;height:48px;padding:0 20px;border-radius:10px;font-size:15px;font-weight:500;text-decoration:none;transition:background-color .15s var(--ease),border-color .15s var(--ease)}
.btn-primary{background:#fff;color:var(--navy)}
.btn-primary:hover{background:#e3ecef}
.btn-quiet{border:1px solid rgba(255,255,255,.28);color:#fff}
.btn-quiet:hover{background:rgba(255,255,255,.08)}
.trust{display:flex;align-items:center;gap:24px;margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);max-width:36rem}
.trust a{text-decoration:none;opacity:.92;transition:opacity .15s var(--ease)}
.trust a:hover{opacity:1}
.trust>a>img{height:34px;width:auto}
.trust-hw{display:flex;flex-direction:column;gap:4px;padding-left:24px;border-left:1px solid rgba(255,255,255,.18)}
.trust-hw img{height:18px;width:auto}
.trust-hw span{font-size:12px;color:#c9d7dd}
/* 인증서: 어두운 바탕 위 흰 종이 두 장 */
.docs{position:relative;height:520px}
.doc{position:absolute;width:58%;border-radius:4px;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.3),0 28px 64px rgba(0,0,0,.45);transition:transform .2s var(--ease)}
.doc img{border-radius:4px}
.doc-back{right:2%;top:0}
.doc-front{left:4%;top:80px}
.doc:hover{transform:translateY(-4px)}
.docs figcaption{position:absolute;left:4%;bottom:-8px;font-size:13px;color:#9fb3bd}

/* 숫자 네 칸 (남색 띠 아래쪽) */
.facts dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.12)}
.facts dl>div{padding:28px 0 40px 28px;border-left:1px solid rgba(255,255,255,.12)}
.facts dl>div:first-child{border-left:0;padding-left:0}
.facts dt{font-size:13px;color:#9fb3bd}
.facts dd{margin-top:8px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:48px;line-height:1;font-weight:500;color:#fff}
.facts dd small{margin-left:6px;font-family:"Noto Sans KR",sans-serif;font-size:16px;font-weight:400;color:#c4d2d8}

/* 구역: 왼쪽 제목, 오른쪽 내용. 바탕을 흰색/연회색으로 번갈아 칠해 칸을 나눔 (11/04 대표님 "칸마다 구분이 안 된다") */
.sec{padding:96px 0;background:#fff}
.sec:nth-of-type(even){background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-in{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px}
.sec-h{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.sec-h h2{font-size:28px;line-height:1.3;font-weight:600;letter-spacing:-.015em}
.sec-h h2::before{content:"";display:block;width:24px;height:3px;margin-bottom:16px;border-radius:2px;background:var(--navy)}
.more,.links a{font-size:14px;color:var(--link);text-decoration:none;font-weight:500}
.more::after{content:" →"}
.more:hover,.links a:hover{text-decoration:underline;text-underline-offset:3px}
.note{font-size:13px;line-height:1.55;color:var(--ink-3)}
.links{display:flex;flex-wrap:wrap;gap:6px 16px}

/* 두 사업 */
.biz{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.biz-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:32px;border-radius:16px;text-decoration:none;transition:background-color .2s var(--ease)}
.biz-ev{background:var(--navy);color:#fff}
.biz-ev:hover{background:#0c2636}
.biz-work{background:var(--work-bg);color:var(--ink);border:1px solid rgba(0,168,79,.16)}
.biz-work:hover{background:#e6f3eb}
.biz-logo{height:32px;width:auto;margin-bottom:12px}
.biz-ev .biz-logo{filter:brightness(0) invert(1)}
.biz-desc{font-size:18px;font-weight:500}
.biz-detail{font-size:15px;line-height:1.7;color:#c4d2d8}
.biz-work .biz-detail{color:var(--ink-2)}
.biz-go{margin-top:16px;font-size:15px;font-weight:500}
.biz-ev .biz-go{color:var(--teal)}
.biz-work .biz-go{color:#007a39}
.biz-go::after,.tile-go::after{content:" →"}

/* 연혁 */
.timeline>li{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:24px;padding:24px 0;border-top:1px solid var(--line)}
/* 그해 현장 사진: 연혁 줄 오른쪽에 작게 (따로 모은 '현장에서' 구역 대신, 11/04 대표님) */
.tl-photos{display:flex;gap:8px;align-self:start}
.tl-photos figure{width:112px}
.tl-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:#e9edf0}
.tl-photos figcaption{margin-top:4px;font-size:11px;line-height:1.4;color:var(--ink-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.timeline>li:first-child{border-top:0;padding-top:0}
.timeline time{font-size:24px;line-height:1.3;font-weight:500;color:var(--ink)}
.timeline h3{font-size:18px;line-height:1.4;font-weight:500}
.timeline ul{margin-top:8px;display:grid;gap:4px}
.timeline ul li{position:relative;padding-left:16px;color:var(--ink-2)}
.timeline ul li::before{content:"";position:absolute;left:0;top:.75em;width:6px;height:1px;background:var(--ink-3)}

/* 실적 한눈에: 분야 칸 여섯 개 (누르면 실적 페이지의 그 분야로) */
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tile{display:flex;flex-direction:column;gap:12px;padding:22px 24px;background:#fff;border:1px solid var(--line);border-radius:14px;text-decoration:none;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.tile:hover{border-color:rgba(8,28,40,.28);box-shadow:0 8px 24px rgba(8,28,40,.06)}
.tile-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:15px;font-weight:500}
.tile-h b{font-size:30px;line-height:1;font-weight:500;color:var(--ink)}
.tile-h small{margin-left:3px;font-family:"Noto Sans KR",sans-serif;font-size:13px;font-weight:400;color:var(--ink-3)}
.tile ul{display:grid;gap:6px;padding-top:12px;border-top:1px solid var(--line)}
.tile li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;font-size:13px;line-height:1.5;color:var(--ink-2)}
.tile li time{font-size:12px;color:var(--ink-3);padding-top:1px}
.tile li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile-go{margin-top:auto;font-size:13px;font-weight:500;color:var(--link)}

/* 함께한 기관 */
.orgs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.orgs li{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:88px;padding:12px 10px;background:#fff;border:1px solid var(--line);border-radius:12px;text-align:center}
.orgs img{height:28px;width:auto;max-width:100%;object-fit:contain}
.orgs span{font-size:11.5px;line-height:1.4;color:var(--ink-3)}
.orgs li.logo-only{min-height:68px}

/* IR 자료: 남색 띠 하나 */
.sec.sec-ir{padding:56px 0;background:var(--navy);color:#fff;border:0}
.ir-in{display:flex;align-items:center;justify-content:space-between;gap:32px}
.ir-in h2{font-size:24px;font-weight:600;letter-spacing:-.01em}
.ir-in p{margin-top:8px;max-width:40rem;color:#c4d2d8}
.ir-in .btn{flex-shrink:0}

/* 실적 페이지: 위 띠, 분야 버튼, 카드 */
.band-sm .page-head{padding-top:56px;padding-bottom:48px}
.back{display:inline-block;margin-bottom:16px;font-size:14px;color:#9fb3bd;text-decoration:none}
.back::before{content:"← "}
.back:hover{color:#fff}
.page-head h1{font-size:clamp(32px,3.6vw,44px);line-height:1.2;font-weight:600;letter-spacing:-.02em}
.page-head .lead{margin-top:12px;font-size:17px}
.arch{padding-top:32px;padding-bottom:96px}
.tabs{position:sticky;top:64px;z-index:5;display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;background:var(--bg)}
.tab{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;font-size:14px;color:var(--ink-2);cursor:pointer;transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease)}
.tab:hover{border-color:rgba(8,28,40,.3);color:var(--ink)}
.tab[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.tab .num{font-size:12px;color:var(--ink-3)}
.tab[aria-pressed=true] .num{color:#9fb3bd}
.tab:focus-visible,.more-btn:focus-visible,.linkish:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.ipf{margin:8px 0 0;font-size:14px;color:var(--ink-2)}
.linkish{border:0;background:none;padding:0;font:inherit;color:var(--link);font-weight:500;cursor:pointer}
.arch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}
.rec{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.rec[hidden]{display:none}
.rec-vis{display:flex;align-items:center;justify-content:center;height:150px;background:var(--surface);border-bottom:1px solid var(--line)}
.rec-vis.is-doc{align-items:flex-start;overflow:hidden;padding:16px 0 0}
.rec-vis.is-doc img{position:static;width:58%;box-shadow:0 1px 2px rgba(8,28,40,.1),0 6px 16px rgba(8,28,40,.1);border-radius:2px}
/* 로고 칸: 흰 바탕이 박힌 로고(26개 중 22개)가 회색 위에서 흰 네모로 뜨지 않게 흰 바탕 + 곱하기 섞기 (11/04 대표님 "로고 일부가 배경과 안 어우러짐") */
.rec-vis.is-logo{background:#fff}
.rec-vis.is-logo img{max-height:44px;max-width:62%;width:auto;height:auto;mix-blend-mode:multiply}
.rec-body{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px;flex:1}
.rec-meta{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;color:var(--ink-3)}
.rec-meta time{font-size:12px}
.rec h2{font-size:16px;line-height:1.45;font-weight:500;color:var(--ink)}
.rec p{font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.rec .rec-host{color:var(--ink-3)}
.rec .links{margin-top:auto;padding-top:8px}
.arch-more{display:flex;justify-content:center;margin-top:32px}
.more-btn{height:44px;border:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-size:15px;cursor:pointer}
.more-btn:hover{background:var(--surface)}
.more-btn[hidden]{display:none}

.ft{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 28px;padding:20px 24px;font-size:13px;color:var(--ink-3);border-top:1px solid var(--line)}
.ft a{color:inherit;text-decoration:none}

@media (max-width:1100px){
  .sec{padding:72px 0}
  .sec-in{grid-template-columns:1fr;gap:28px}
  .sec-h{flex-direction:row;align-items:baseline;justify-content:space-between;flex-wrap:wrap}
  .orgs{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tiles,.arch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .hero{grid-template-columns:1fr;min-height:0;padding-top:48px;padding-bottom:56px;gap:40px}
  .docs{height:auto;aspect-ratio:1/1.02;max-width:440px;margin-bottom:24px}
  .docs figcaption{bottom:-28px}
  .facts dl{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts dl>div{padding:24px 0 28px 24px}
  .facts dl>div:nth-child(3){border-left:0;padding-left:0}
  .facts dl>div:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)}
  .biz{grid-template-columns:1fr}
  .ir-in{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){
  .wrap{padding:0 20px}
  .hd{height:auto;flex-wrap:wrap;padding:12px 12px 0 20px;gap:0}
  .hd-brand img{height:20px}
  .hd-nav{order:3;width:100%;margin:4px 0 0 -12px;padding-bottom:4px;overflow-x:auto}
  .hd-nav a{font-size:14px;white-space:nowrap}
  .hero h1{font-size:34px}
  .lead{font-size:17px}
  .trust{gap:16px;margin-top:40px}
  .trust>a>img{height:28px}
  .trust-hw{padding-left:16px}
  .facts dd{font-size:34px}
  .timeline>li{grid-template-columns:1fr;gap:8px}
  .tl-photos figure{width:96px}
  .tiles,.arch-grid{grid-template-columns:1fr}
  .orgs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .biz-card{padding:24px}
  .tabs{top:92px;flex-wrap:nowrap;overflow-x:auto;margin:0 -20px;padding:12px 20px}
  .tab{flex-shrink:0}
  .ft{flex-direction:column;align-items:center;text-align:center;gap:4px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}