@font-face{font-family:"Pretendard Variable";src:url("assets/PretendardVariable.woff2") format("woff2");font-style:normal;font-weight:45 920;font-display:swap}
:root{--paper:#f7f6ef;--ink:#171713;--lime:#d2fa3f;--line:2px solid var(--ink);--pad:clamp(18px,3.4vw,54px);font-family:"Pretendard Variable",Pretendard,"Malgun Gothic",sans-serif;font-weight:400;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}
body{margin:0 auto;max-width:1680px;word-break:keep-all}
a{color:inherit;text-underline-offset:.2em}
button{font:inherit;color:inherit;background:transparent;border:var(--line);cursor:pointer;padding:.55rem .85rem}
:focus-visible{outline:3px solid #2453c7;outline-offset:3px}
[hidden]{display:none!important}
.skip{position:absolute;left:12px;top:-100px;background:white;padding:12px;z-index:5}
.skip:focus{top:12px}
.pad{padding:var(--pad)}
.top,footer{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.top{border-bottom:var(--line);padding:14px var(--pad)}
.brand{font-size:clamp(21px,3vw,36px);font-weight:750;letter-spacing:-.075em;text-decoration:none}
.brand span{font-size:.5em;vertical-align:super;margin-left:.22em}
nav{display:flex;gap:clamp(12px,3vw,45px);flex-wrap:wrap}
nav a,.meta,footer span{font-size:.85rem;font-weight:700;letter-spacing:.04em}
nav a,.cta{text-decoration:none}
nav a:hover{text-decoration:underline}
.meta{margin:0 0 1.25rem}
.hero,.split{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(0,1fr)}
.hero-main,.split>div:first-child{border-right:var(--line)}
h1,h2,h3,p{margin:0}
h1,h2{font-weight:800;letter-spacing:-.06em}
h1{font-size:clamp(47px,9.55vw,155px);line-height:.98;margin:clamp(32px,5vw,76px) 0 26px}
/* V4.9.7: 섹션 헤드라인 한글 전환에 맞춘 크기·자간 */
h2{font-size:clamp(36px,6.6vw,100px);line-height:1.15;letter-spacing:-.055em;overflow-wrap:anywhere}
h3{font-weight:650;font-size:clamp(23px,3.3vw,52px);line-height:1.27;letter-spacing:-.052em}
p,dd{line-height:1.65}
.lead,.about-copy p,.contact-copy p,article p:last-child,.process p,dd,.note{font-weight:350}
.lead{font-size:clamp(16px,2vw,27px)}
main>section,footer{border-bottom:var(--line)}
.heading,.note{border-bottom:var(--line)}
.grid{display:grid}
.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.grid>*+*{border-left:var(--line)}
article p:last-child,.about-copy p,.contact-copy p,.process p{margin-top:1rem;max-width:46ch}
.accent{background:var(--lime)}
#about{grid-template-columns:repeat(3,minmax(0,1fr))}
#about>div:first-child{border-right:0}
.about-copy{grid-column:span 2;border-left:var(--line);display:grid;align-content:center}
.year{font-size:clamp(60px,8.6vw,142px);font-weight:350;overflow-wrap:normal;letter-spacing:-.06em;line-height:1.13}
.index{margin:0}
.index>div{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:1rem}
.index>div+div,.note{border-top:var(--line)}
.index dt{font-size:clamp(20px,3.2vw,48px);font-weight:750;letter-spacing:-.04em}
small{font-size:.8rem;letter-spacing:0}
dd{margin:0}
.note{border-bottom:0}
#work{background:var(--paper);color:var(--ink)}

/* V4.9.7: Process — 구분선 제거, 화살표 연결 */
.process{margin:0;padding:0;list-style:none}
.process>*+*{border-left:0}
.process h3{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.process .arrow{font-size:.55em;line-height:1;margin-right:-.15em}

.work-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1.2vw,20px);padding:var(--pad)}
.project{position:relative;display:block;width:100%;padding:0;border:0;background:#eeede6;color:var(--paper);text-align:left}
.thumbnail{display:block;aspect-ratio:16/9}
.thumbnail img{display:block;width:100%;height:100%;object-fit:contain}
.project-title{position:absolute;inset:auto 0 0;padding:12px;background:rgb(0 0 0 / 50%);font-size:clamp(11.2px,1.16vw,18.4px);font-weight:650;overflow-wrap:anywhere;opacity:0}
.project:hover .project-title,.project:focus-visible .project-title{opacity:1}
.project:focus-visible{outline-color:var(--ink)}
@media(max-width:960px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.work-grid{grid-template-columns:minmax(0,1fr)}}
.contact-copy{display:grid;align-content:center;justify-items:start;gap:.6rem}
.contact-link{display:inline-block;background:var(--ink);color:var(--paper);padding:.65rem 1rem;margin:1rem 0 .25rem;font-weight:700}
footer{flex-wrap:wrap}
footer a{margin-left:auto}
dialog{width:min(960px,calc(100% - 28px));max-height:90vh;padding:0;background:var(--paper);color:var(--ink);border:var(--line)}
dialog::backdrop{background:#171713bb}
.case-head{display:flex;gap:1rem;justify-content:space-between;align-items:flex-start;border-bottom:var(--line)}
.case-head h2{font-size:clamp(23px,5vw,55px)}
.case-head button{white-space:nowrap}
.case-images{display:grid;gap:1rem}
.case-images img{width:100%;height:auto}
@media(max-width:740px){
  body{border:0}
  .top{flex-wrap:wrap}
  nav{width:100%;padding-top:10px}
  .hero,.split,#about,.three,.four,.index>div{grid-template-columns:minmax(0,1fr)}
  .about-copy{grid-column:auto;border-left:0}
  .hero-main,.split>div:first-child{border-right:0;border-bottom:var(--line)}
  .grid>*+*{border-left:0;border-top:var(--line)}
  .process>*+*{border-top:0}
  .process .arrow{display:none}
  h1{font-size:clamp(48px,13.2vw,96px)}
  /* V4.9.7: 데스크톱 전용 문장 단위 줄바꿈은 모바일에서 해제 */
  br.d{display:none}
}

/* IR teaser */
.teaser-hero h1{font-size:clamp(52px,7.5vw,118px);line-height:1.15;letter-spacing:-.064em;margin:clamp(24px,4.5vw,68px) 0 24px}
.teaser-hero .lead{max-width:36ch}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.75rem}
.primary{display:inline-block;padding:.85rem 1rem;background:var(--lime);border:var(--line);font-weight:750}
.primary:hover{background:var(--ink);color:var(--paper)}
.text-link{font-weight:650}
.hero-visual{display:grid;align-content:center;background:#eeede6}
/* V4.9.9: 히어로 우측 — 원페이지 IR 티저 영상(무음 자동재생·무한 반복) */
.hero-visual.video{position:relative;padding:0;background:var(--ink);overflow:hidden;min-height:100%}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:var(--ink)}
@media(max-width:740px){.hero-visual.video{aspect-ratio:720/1094;max-height:78vh;min-height:0}}
@media(prefers-reduced-motion:reduce){
  .hero-video{display:none}
  .hero-visual.video{background:var(--ink) url("assets/hero-teaser-poster.jpg") center/cover no-repeat}
}
.visual-caption{color:#f7f6efb3}
.section-intro{font-weight:350;max-width:60ch;font-size:clamp(16px,2vw,23px);margin-top:1.35rem}
.format-heading{border-block:var(--line)}
.formats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:740px){
  .teaser-hero h1{font-size:clamp(44px,12vw,85px)}
  .formats{grid-template-columns:minmax(0,1fr)}
}

.record-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}
.record-grid .meta{margin-bottom:.75rem}
.record-number{font-size:clamp(54px,10vw,150px);font-weight:750;line-height:1.2;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.record-number span{font-weight:350}
/* V4.9.7: SINCE 2016–2026 범위 표기 */
.record-range{font-size:clamp(40px,7vw,104px);line-height:1.73}
.record-range span{margin:0 .04em}
.record-note{border-top:var(--line);font-weight:350}
@media(max-width:740px){.record-grid{grid-template-columns:minmax(0,1fr)}.record-range{line-height:1.2}}

/* V4.9.7: 로고월 — 외곽선·구분선 없이 로고와 여백으로 구성 */
.clients-head{border-top:var(--line);padding-block:18px 0}
.clients-head .meta{margin:0}
.clients{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:clamp(8px,1.2vw,16px) var(--pad) clamp(18px,3vw,44px)}
.clients .cell,.clients .group,.clients .fill{height:104px}
.clients .cell{display:flex;align-items:center;justify-content:center;padding:12px}
.clients .cell img{width:auto;max-width:82%;object-fit:contain;filter:grayscale(1) contrast(1.15);opacity:.85}
.clients .group{height:auto;display:flex;align-items:flex-start;padding:40px 12px 0 0;font-size:.85rem;font-weight:700;letter-spacing:.04em}
.clients .fill{background:transparent}
@media(max-width:960px){.clients{grid-template-columns:repeat(4,minmax(0,1fr))}.clients .cell{padding:8px}.clients .group{align-items:center;padding:30px 0 6px}}
@media(max-width:740px){
  .clients{grid-template-columns:repeat(2,minmax(0,1fr))}
  .clients .group{padding:22px 0 4px}
  .clients .cell,.clients .fill{height:80px}
}

/* V4.9.7: 전체 작업 목록 — 상단 '모두 보기' + 공공/민간 필터, 구분·기관·프로젝트 3열 */
.all-head{border-top:var(--line);border-bottom:var(--line);padding-block:14px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.all-head .meta{margin:0}
.ledger-more{background:var(--lime);border:var(--line);padding:.6rem .95rem;font-weight:750;font-size:.9rem;letter-spacing:.02em}
.ledger-more:hover{background:var(--ink);color:var(--paper)}
.ledger-filter{display:flex;flex-wrap:wrap;gap:.5rem;padding-block:16px;border-bottom:var(--line)}
.chip{padding:.45rem .9rem;font-size:.85rem;font-weight:700;letter-spacing:.03em}
.chip:hover{background:#eeede6}
.chip.is-on{background:var(--ink);color:var(--paper)}
.ledger{overflow-x:auto}
.ledger table{width:100%;border-collapse:collapse;font-size:.95rem}
.ledger th{text-align:left;font-size:.8rem;font-weight:700;letter-spacing:.04em;padding:12px var(--pad) 12px 0;border-bottom:var(--line)}
.ledger th:first-child,.ledger td:first-child{padding-left:var(--pad)}
.ledger td{padding:12px var(--pad) 12px 0;border-bottom:1px solid #17171326;font-weight:350;vertical-align:top}
.ledger .k{width:1%;white-space:nowrap;font-weight:400}
.ledger .o{width:1%;white-space:nowrap;font-weight:700}
.ledger tbody tr:hover td{background:#eeede6}
.ledger-empty td{text-align:center;padding-block:28px}
@media(max-width:740px){
  .ledger .o{white-space:normal;width:auto;min-width:7em}
  .ledger-more{font-size:.8rem;padding:.5rem .7rem}
}

/* V4.9: 연락처·사업자 정보 */
.contact-list{margin:.6rem 0 0;display:grid;gap:.35rem}
.contact-list div{display:grid;grid-template-columns:70px 1fr;align-items:baseline}
.contact-list dt{margin:0;font-size:.75rem}
.contact-list dd{font-weight:600}
footer .biz{font-weight:400;letter-spacing:0;font-size:.8rem}

/* V4.9.2: About 연도 앞 Since */
.year .since{display:block;font-size:.3em;font-weight:650;letter-spacing:-.01em;line-height:1;margin-bottom:.25em}

@media(prefers-reduced-motion:no-preference){
  .project-title{transition:opacity 160ms ease-out}
  .section-line-motion :is(#ir,#track-record,#work) .heading{position:relative;border-bottom-color:transparent}
  .section-line-motion :is(#ir,#track-record,#work) .heading::after{
    content:"";position:absolute;inset:auto 0 -2px;height:2px;background:currentColor;
    transform:scaleX(0);transform-origin:left;
  }
  .section-line-motion :is(#ir,#track-record,#work) .heading.section-line-drawn::after{
    transform:scaleX(1);transition:transform 300ms ease-out;
  }
}
