*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:#fff;color:#111;font-family:Arial,'Noto Sans KR','Apple SD Gothic Neo','Malgun Gothic',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}a,button{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid;outline-offset:5px}.skip{position:fixed;top:-100px;background:white;padding:20px;z-index:9}.skip:focus{top:0}header{height:106px;padding:21px 36px;display:flex;align-items:center;justify-content:space-between;background:white;position:sticky;top:0;z-index:5;border-bottom:1px solid #eee}.logo{font-size:28px;line-height:.84;font-weight:900;letter-spacing:-1.6px;position:relative}.logo span{font-size:11px;position:absolute;right:-13px;top:0;letter-spacing:0}header nav{display:flex;gap:32px;align-items:center;font-size:16px;font-weight:600}header nav a:hover,header nav button:hover{text-decoration:underline;text-underline-offset:7px}small{font-size:10px;vertical-align:super}.menu{display:none}.hero{position:relative;background:#151515;color:white}.hero>a{display:block;position:relative}.hero img{width:100%;height:calc(85svh - 106px);min-height:400px;max-height:800px;object-fit:cover;display:block}.heroTitle{position:absolute;bottom:30px;left:36px;background:#111;padding:14px 18px 16px;max-width:80%}.heroTitle>span{font-size:10px;letter-spacing:1.4px}.heroTitle h1{margin:11px 0 0;font-size:32px;letter-spacing:-1.6px;font-weight:500}.heroBottom{padding:19px 36px;display:flex;align-items:center;justify-content:space-between;font-size:13px}.controls{display:flex;align-items:center;gap:25px}.controls span{font-variant-numeric:tabular-nums;font-size:11px;letter-spacing:1px}.controls button{font-size:20px;min-width:24px}.progress{height:2px;background:#444}.progress i{display:block;height:100%;background:white;width:8.33%;transition:width .6s}.pad{padding:90px 36px}.eyebrow,.sectionTop>span,.quote>span{font-size:11px;letter-spacing:1px}.intro{padding-top:72px;padding-bottom:78px}.intro h2{font-size:clamp(32px,5.3vw,80px);letter-spacing:-.055em;font-weight:500;line-height:1.38;margin:34px 0 25px}.intro h2 button{font-size:inherit;letter-spacing:inherit;border-bottom:2px solid;line-height:1.1}.intro h2 button span{font-size:.48em;margin-left:16px;vertical-align:middle}.introBottom{display:flex;justify-content:space-between;align-items:flex-end}.introBottom p{font-size:17px;line-height:1.8;margin:0}.textlink{font-size:13px;border-bottom:1px solid;padding-bottom:6px}#quickFilters{padding-top:28px;display:flex;gap:10px;flex-wrap:wrap}#quickFilters[hidden]{display:none}#quickFilters button{border:1px solid #ccc;padding:12px 18px}#quickFilters button:hover{background:#111;color:white}.curation{background:#f1f1ef;padding-top:33px;padding-bottom:28px}.sectionTop{display:flex;justify-content:space-between;gap:20px;align-items:center}.sectionTop h2{font-size:29px;letter-spacing:-1px;font-weight:500;margin:0}.sectionTop h2 span{font-size:13px;vertical-align:super;margin-left:10px;letter-spacing:0}.sectionTop>a{font-size:13px}.editorial{display:grid;grid-template-columns:1fr 1fr;padding:58px 0 44px;gap:30px;align-items:start}.editorial h2{font-size:clamp(29px,4vw,57px);font-weight:500;letter-spacing:-2.5px;margin:0}.editorial p{margin:0 0 0 20%;font-size:16px;line-height:1.9}.rail{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:22px}.rail .card{flex:0 0 39%;scroll-snap-align:start}.rail .card img{height:300px}.imageWrap{overflow:hidden;background:#e8e8e6}.card img{width:100%;height:350px;object-fit:cover;display:block;transition:transform .6s}.card:hover img{transform:scale(1.025)}.cardHead{display:flex;justify-content:space-between;gap:15px;align-items:start;padding-top:14px}.card h3{margin:0;font-size:18px;font-weight:500;letter-spacing:-.6px}.cardHead>span{font-size:18px}.tags{font-size:11px;color:#666;margin-top:8px;line-height:1.5}.railCaption{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.5px;margin-top:9px}.filterbar{display:flex;align-items:center;gap:25px;border-top:1px solid;margin:30px 0 38px;padding-top:19px;font-size:12px}.filterbar label{display:flex;gap:16px;align-items:center;color:#666}.filterbar select{border:0;background:none;color:#111;font-size:13px;max-width:155px}.filterbar input{margin-left:auto;border:0;border-bottom:1px solid #ccc;padding:8px 0;width:180px;background:none}.filterbar button{font-size:11px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:48px 24px}.grid .card{grid-column:span 6}.grid .card:nth-child(6n+1){grid-column:span 8}.grid .card:nth-child(6n+2){grid-column:span 4;align-self:end}.grid .card:nth-child(6n+1) img{height:500px}.grid .card:nth-child(6n+2) img{height:320px}.grid .card:nth-child(6n+5){grid-column:span 4}.grid .card:nth-child(6n+6){grid-column:span 8}.grid .card:nth-child(6n+6) img{height:470px}.archiveNote{font-size:11px;line-height:1.8;color:#777;max-width:720px;margin:35px 0 0}.empty{padding:70px 0;font-size:18px;grid-column:1/-1}.quote{background:#111;color:white}.quote blockquote{font-size:clamp(36px,6.4vw,92px);font-weight:500;letter-spacing:-.06em;line-height:1.3;margin:48px 0 42px}.quoteBottom{display:flex;justify-content:space-between;align-items:end;gap:25px}.quoteBottom p{font-size:16px;line-height:1.8;margin:0;color:#bbb}.quoteBottom span{font-size:12px}.credentials{display:flex;flex-wrap:wrap;gap:28px;font-size:11px;color:#aaa;border-top:1px solid #444;padding-top:25px;margin-top:54px}.archive .sectionTop{padding-bottom:28px}.disciplineRow{border-top:1px solid #aaa;padding:32px 0 42px;display:grid;grid-template-columns:1fr 3fr;gap:35px}.disciplineLabel span{font-size:11px;color:#777}.disciplineLabel h3{font-weight:500;font-size:27px;letter-spacing:-1px;margin:15px 0}.disciplineLabel button{font-size:12px;text-decoration:underline;text-underline-offset:5px}.miniGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.miniGrid .card img{height:190px}.miniGrid .card h3{font-size:14px}.miniGrid .tags{font-size:10px}.journal{background:#f1f1ef;padding-top:45px}.journalGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:45px}.journalGrid article{border-top:1px solid #111;padding-top:18px}.journalGrid article>span{font-size:10px;letter-spacing:1px}.journal h3{font-size:24px;line-height:1.5;font-weight:500;letter-spacing:-1px;margin:28px 0}.journal p{font-size:12px;color:#555}footer{background:#111;color:white}.footerTop{display:flex;justify-content:space-between;align-items:end;padding-bottom:65px;border-bottom:1px solid #444;gap:20px}.footerTop h2{font-size:clamp(35px,5vw,70px);font-weight:500;line-height:1.3;letter-spacing:-2px;margin:0}.footerTop>a{font-size:clamp(16px,2vw,28px);border-bottom:1px solid;padding-bottom:8px}.footerGrid{display:grid;grid-template-columns:1.3fr 1fr 1.4fr 1fr;gap:30px;padding:50px 0 65px}.footerLogo{font-size:35px;font-weight:900;letter-spacing:-2px;line-height:.88}.footerGrid p,.footerGrid div{font-size:12px;line-height:1.9;margin-top:0;color:#bbb}.footerBottom{display:flex;justify-content:space-between;font-size:10px;color:#aaa;border-top:1px solid #444;padding-top:23px}dialog{border:0;padding:0;width:min(1100px,95vw);max-height:94svh;background:#fff;color:#111}dialog::backdrop{background:#000b}#closeDetail{position:sticky;top:0;background:white;width:100%;text-align:right;padding:18px 25px;z-index:2;border-bottom:1px solid #ddd}#detailBody h2{font-size:40px;font-weight:500;letter-spacing:-1.5px;margin:35px}#detailBody>img{width:100%;max-height:70svh;object-fit:contain;background:#eee;display:block}#detailBody>p{margin:25px 35px;line-height:1.8}#detailBody .detailMeta{font-size:12px;color:#666}#detailBody>a{display:block;margin:30px 35px;text-decoration:underline}body:has(dialog[open]){overflow:hidden}@media(min-width:1700px){.pad{padding-left:6vw;padding-right:6vw}.heroTitle{left:6vw}header{padding-left:6vw;padding-right:6vw}}@media(max-width:760px){html{scroll-padding-top:80px}header{height:80px;padding:19px 20px}.logo{font-size:23px}.menu{display:block;font-size:13px}header nav{display:none;position:absolute;top:80px;left:0;background:white;width:100%;padding:25px;flex-direction:column;align-items:start;gap:24px;border-bottom:1px solid}header nav.open{display:flex}.pad{padding:54px 20px}.hero img{height:60svh;min-height:350px;max-height:650px}.heroTitle{left:20px;bottom:20px;padding:13px;max-width:90%}.heroTitle h1{font-size:25px}.heroTitle>span{font-size:9px}.heroBottom{padding:16px 20px;align-items:center;gap:20px}.heroBottom>span{font-size:11px;max-width:51%;line-height:1.6}.controls{gap:12px}.controls button{font-size:18px}.controls span{font-size:9px}.intro h2{font-size:clamp(28px,6.9vw,48px);margin-top:28px}.introBottom{display:block}.introBottom p{font-size:14px;margin-bottom:25px}.editorial{grid-template-columns:1fr;padding:33px 0 28px;gap:20px}.editorial h2{font-size:34px;letter-spacing:-1.5px}.editorial p{margin:0;font-size:14px}.sectionTop>span{font-size:9px;letter-spacing:.3px}.sectionTop h2{font-size:25px}.sectionTop>a{font-size:10px}.curation{padding-top:25px;padding-bottom:25px}.rail{gap:15px;margin-right:-20px;padding-right:20px}.rail .card{flex-basis:83%}.rail .card img{height:230px}.railCaption{font-size:9px}.card h3{font-size:17px}.filterbar{gap:14px;flex-wrap:wrap;margin:24px 0}.filterbar label{gap:7px;font-size:11px}.filterbar select{font-size:12px;max-width:116px}.filterbar input{margin-left:0;width:calc(100% - 75px)}.grid{display:block}.grid .card{display:block;margin-bottom:32px}.grid .card img,.grid .card:nth-child(n) img{height:auto;aspect-ratio:1.4;object-fit:cover}.archiveNote{font-size:10px}.quote blockquote{font-size:39px;margin:35px 0}.quoteBottom{display:block}.quoteBottom p{font-size:14px;margin-bottom:25px}.quoteBottom span{font-size:10px}.credentials{gap:15px;font-size:10px;margin-top:35px}.disciplineRow{grid-template-columns:1fr;gap:20px}.disciplineLabel{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.disciplineLabel h3{font-size:22px;margin:0}.disciplineLabel button{margin-left:auto}.miniGrid{display:flex;overflow:auto;margin-right:-20px;padding-right:20px}.miniGrid .card{flex:0 0 75%}.miniGrid .card img{height:190px}.journalGrid{grid-template-columns:1fr 1fr;gap:30px 20px;margin-top:30px}.journal h3{font-size:19px;margin:20px 0}.journal p{font-size:11px}.journal .sectionTop{display:block}.journal .sectionTop>span{display:block;margin-top:12px}.footerTop{display:block;padding-bottom:35px}.footerTop h2{margin-bottom:30px}.footerTop>a{font-size:17px}.footerGrid{grid-template-columns:1fr 1fr;gap:30px 20px;padding:35px 0}.footerLogo{font-size:29px}.footerGrid p,.footerGrid div{font-size:11px}.footerBottom{gap:20px;font-size:9px;flex-wrap:wrap}.footerBottom>span:nth-child(2){display:none}#detailBody h2{font-size:28px;margin:22px}#detailBody>p{margin:22px;font-size:14px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
/* A centered wordmark, then an upward curtain reveal. */
.brandIntro{display:none}.intro-active{overflow:hidden}.intro-active .brandIntro{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#fff;color:#111;will-change:transform;animation:introFailsafe 0s 5s forwards}.introBrand{animation:brandAppear .85s cubic-bezier(.22,1,.36,1) both;text-align:left}.introWordmark{font-size:clamp(58px,9vw,130px);font-weight:900;line-height:.84;letter-spacing:-.065em}.introBrandCaption{font-size:11px;letter-spacing:.15em;margin-top:28px;color:#666}.introCorner{position:absolute;bottom:32px;left:36px;font-size:10px;letter-spacing:1.3px}#skipIntro{position:absolute;bottom:32px;right:36px;font-size:11px;padding:12px 0}.intro-active header,.intro-active main{transform:translateY(80px);will-change:transform}.intro-active.intro-exiting .brandIntro{transform:translateY(-100%);transition:transform .95s cubic-bezier(.76,0,.24,1)}.intro-active.intro-exiting header,.intro-active.intro-exiting main{transform:translateY(0);transition:transform .95s cubic-bezier(.22,1,.36,1)}.intro-exiting .introBrand{opacity:.25;transition:opacity .65s}.intro-exiting #skipIntro{pointer-events:none}@keyframes brandAppear{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes introFailsafe{to{visibility:hidden;pointer-events:none}}@media(max-width:760px){.introWordmark{font-size:76px}.introBrandCaption{font-size:10px;margin-top:23px}.introCorner{left:20px;bottom:24px}#skipIntro{right:20px;bottom:14px}}@media(prefers-reduced-motion:reduce){.brandIntro{display:none!important}.intro-active header,.intro-active main{transform:none}.intro-active{overflow:auto}}
/* Full-screen photography, with navigation overlaid on the image. */
header{position:fixed;top:0;left:0;width:100%;background:transparent;color:white;border-bottom:0;mix-blend-mode:difference;transition:background-color .25s,color .25s}header.scrolled{background:#fff;color:#111;mix-blend-mode:normal;border-bottom:1px solid #eee}.hero img{height:100svh;min-height:540px;max-height:none}.heroTitle{bottom:104px}.heroBottom{position:absolute;bottom:2px;left:0;right:0;min-height:66px;background:transparent}.heroBottom>span{background:#111;padding:7px 10px}.controls{background:#111;padding:7px 12px}.hero .progress{position:absolute;bottom:0;left:0;right:0}header.menu-open{mix-blend-mode:normal}header.menu-open nav{color:#111}@media(max-width:760px){.hero img{height:100svh;min-height:560px;max-height:none}.heroTitle{bottom:115px}.heroBottom{min-height:82px;padding:14px 20px}.heroBottom>span{padding:6px 8px}.controls{gap:9px;padding:6px 8px}header nav{color:#111}}
header{mix-blend-mode:normal}header.hero-light:not(.scrolled){color:#111}header:not(.hero-light):not(.scrolled){color:#fff}header.hero-light.menu-open{color:#111}
.rail.auto-flow{scroll-snap-type:none;scroll-behavior:auto;scrollbar-width:none}.rail.auto-flow::-webkit-scrollbar{display:none}.railCaption button{font-size:10px;letter-spacing:.4px;min-height:28px}.railCaption button:hover{text-decoration:underline;text-underline-offset:4px}

/* Services lead; editorial project captions support them. */
.heroTitle h1{font-size:clamp(32px,3.4vw,52px);font-weight:600;letter-spacing:-.055em;line-height:1.22}.heroTitle h1>span{white-space:pre-wrap}#heroSubtitle{font-size:17px;font-weight:400;letter-spacing:-.4px;margin:14px 0 0;color:#ddd;line-height:1.5}.workSubtitle{font-size:13px;line-height:1.6;font-weight:400;color:#555;margin:7px 0 0}.miniGrid .workSubtitle{font-size:11px;margin-top:5px}.disciplineLabel h3{font-size:25px}#detailBody .detailEditorial{font-size:22px;margin-top:-15px;color:#555}@media(max-width:760px){.heroTitle h1{font-size:30px}.heroTitle{max-width:calc(100% - 40px)}#heroSubtitle{font-size:14px;margin-top:11px}.workSubtitle{font-size:12px}.disciplineLabel h3{font-size:21px}}
/* Correct the archive photograph's display orientation without altering it. */
.uprightPhoto{position:relative;overflow:hidden;container-type:size;background:#eee;width:100%;height:350px}.uprightPhoto>img{position:absolute!important;top:50%;left:50%;width:100cqh!important;height:100cqw!important;max-height:none!important;object-fit:contain!important;transform:translate(-50%,-50%) rotate(90deg)!important}.hero .uprightPhoto{height:100svh;min-height:540px;background:#111}.rail .uprightPhoto{height:300px}.miniGrid .uprightPhoto{height:190px}.grid .card:nth-child(6n+1) .uprightPhoto{height:500px}.grid .card:nth-child(6n+2) .uprightPhoto{height:320px}.grid .card:nth-child(6n+6) .uprightPhoto{height:470px}#detailBody>.uprightPhoto{height:80svh;max-height:1100px}
:root{--hero-inset:36px;--hero-label-pad:18px}.heroTitle{left:var(--hero-inset);padding-left:var(--hero-label-pad);padding-right:var(--hero-label-pad)}.heroBottom{left:var(--hero-inset);right:var(--hero-inset);padding-left:0;padding-right:0}.heroBottom>span{padding-left:var(--hero-label-pad);padding-right:var(--hero-label-pad)}@media(min-width:1700px){:root{--hero-inset:6vw}}@media(max-width:760px){:root{--hero-inset:20px;--hero-label-pad:13px}.hero .uprightPhoto{min-height:560px}.rail .uprightPhoto{height:230px}.grid .card:nth-child(n) .uprightPhoto{height:auto;aspect-ratio:1.4}.miniGrid .uprightPhoto{height:190px}.heroBottom{padding-left:0;padding-right:0}.heroBottom>span{padding-left:var(--hero-label-pad);padding-right:var(--hero-label-pad)}}

/* Hero: a slow photographic drift, followed by an overlapping dissolve. */
.heroStage{position:relative;height:100svh;min-height:540px;overflow:hidden;background:#151515;isolation:isolate}
.heroFrame{position:absolute;inset:0;opacity:0;transition:opacity 1.6s cubic-bezier(.22,.61,.36,1);overflow:hidden;container-type:size;pointer-events:none}
.heroFrame.is-visible{opacity:1}
.heroStage .heroFrame>img{display:block;width:100%;height:100%;min-height:0;max-height:none;object-fit:cover;animation:heroDrift 9s cubic-bezier(.2,.4,.6,1) both;transform-origin:50% 50%}
.heroStage .heroFrame.is-upright>img{position:absolute;top:50%;left:50%;width:100cqh;height:100cqw;object-fit:contain;animation:heroDriftUpright 9s cubic-bezier(.2,.4,.6,1) both}
.heroTitle{z-index:2;transition:opacity .65s ease,transform .85s cubic-bezier(.22,1,.36,1)}
.heroTitle.is-changing{opacity:0;transform:translateY(12px);transition:opacity .25s ease,transform .3s ease}
.heroStage.is-paused img,.intro-active .heroStage img{animation-play-state:paused}
@keyframes heroDrift{from{transform:scale(1)}to{transform:scale(1.055)}}
@keyframes heroDriftUpright{from{transform:translate(-50%,-50%) rotate(90deg) scale(1)}to{transform:translate(-50%,-50%) rotate(90deg) scale(1.045)}}
@media(max-width:760px){.heroStage{min-height:560px}.heroFrame{transition-duration:1.35s}}
@media(prefers-reduced-motion:reduce){.heroStage .heroFrame>img{animation:none}.heroStage .heroFrame.is-upright>img{transform:translate(-50%,-50%) rotate(90deg)}.heroTitle.is-changing{opacity:1;transform:none}}

/* Two editorial accents for the interactive service statement. */
.intro h2 #disciplineToggle{color:#2456e8;--statement-color:#2456e8;--statement-tint:#edf1ff}
.intro h2 #sectorToggle{color:#df4c2e;--statement-color:#df4c2e;--statement-tint:#fff0e9}
.intro h2 button{font-weight:600;border-bottom:2px solid var(--statement-color,currentColor);padding-bottom:.065em;transition:color .2s,background-color .2s}
.intro h2 button:hover,.intro h2 button[aria-expanded="true"]{background:var(--statement-tint);color:var(--statement-color)}
.intro h2 button span{color:var(--statement-color)}
.intro h2 button:focus-visible{outline:2px solid var(--statement-color);outline-offset:6px}
