@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;550;600;650;700&display=swap');
:root{--black:#101010;--muted:#696969;--line:#e7e7e7;--bg:#fff;--gutter:clamp(22px,3.2vw,60px);--header:78px;color-scheme:light}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--black);font:400 15px/1.65 Inter,-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}
:focus-visible{outline:2px solid #202020;outline-offset:4px}
.site-header{height:var(--header);display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);background:#fff;position:relative;z-index:20;border-bottom:1px solid var(--line)}
.logo{font-weight:700;font-size:28px;letter-spacing:-.07em;line-height:1}
.main-nav{display:flex;align-items:center;gap:clamp(20px,2.65vw,48px)}
.main-nav a{font-size:11px;font-weight:550;text-transform:uppercase;letter-spacing:.04em;transition:opacity .2s}
.main-nav a:not(.active){opacity:.66}.main-nav a:hover{opacity:1}
.main-nav a.active{border-bottom:1px solid #111;padding-bottom:4px}
.mobile-menu-button{display:none;border:0;background:transparent;width:40px;height:40px;align-items:center;justify-content:center;padding:6px}
.mobile-menu-button span{display:block;height:1.5px;width:26px;background:var(--black);margin:6px auto;transition:transform .2s}
.home-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;width:100%}
.home-card{position:relative;aspect-ratio:1/1;display:block;overflow:hidden;background:#eee;isolation:isolate}
.home-card img{height:100%;width:100%;object-fit:cover;object-position:center;transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.home-card:hover img{transform:scale(1.025)}
.home-card::after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(0deg,rgba(0,0,0,.48),transparent);pointer-events:none}
.home-card .hero-index{position:absolute;left:var(--gutter);top:34px;font-size:11px;letter-spacing:.12em;font-weight:500;color:#111;background:rgba(255,255,255,.93);padding:7px 10px;z-index:1}
.home-card-title{position:absolute;bottom:clamp(24px,3vw,50px);left:var(--gutter);right:var(--gutter);color:#fff;z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:10px}
.home-card-title h1{margin:0;font-size:clamp(29px,3vw,57px);line-height:1.02;letter-spacing:-.065em;font-weight:600;text-transform:uppercase}
.home-card-title .home-arrow{font-weight:400;font-size:34px;line-height:.8}
.site-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:19px var(--gutter) 22px;border-top:1px solid var(--line);font-size:10px;color:#777;letter-spacing:.04em}
.site-footer a{color:#111}
.page-inner{max-width:1480px;margin:0 auto;padding:0 var(--gutter)}
.eyebrow{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:650;color:var(--muted)}
.page-title{font-size:clamp(54px,7.5vw,112px);line-height:1.02;letter-spacing:-.08em;font-weight:500;margin:26px 0 0}
.section-title{font-size:clamp(36px,4.5vw,70px);letter-spacing:-.065em;line-height:1.08;font-weight:500;margin:14px 0 28px}
.page-intro{padding-top:105px;padding-bottom:90px}
.lead{font-size:clamp(19px,2.3vw,30px);line-height:1.58;letter-spacing:-.035em;max-width:790px;margin:38px 0 0}
.sublead{font-size:14px;line-height:1.9;color:var(--muted);max-width:660px;margin-top:25px}
.hairline{border-top:1px solid var(--line)}
.about-headline{padding:84px 0 65px}
.about-headline .philosophy{font-size:clamp(30px,4.2vw,64px);line-height:1.19;font-weight:500;letter-spacing:-.055em;max-width:900px;margin:20px 0}
.about-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.principle{padding:36px 26px 44px;border-right:1px solid var(--line)}.principle:first-child{padding-left:0}.principle:last-child{border-right:0}
.principle .hanja{font-family:serif;font-size:38px;line-height:1.2}.principle h3{font-size:12px;letter-spacing:.1em;font-weight:650;margin:19px 0 10px}.principle p{font-size:12px;color:var(--muted);margin:0;line-height:1.8}
.section-space{padding:115px 0}
.shared{display:grid;grid-template-columns:1fr 1.4fr;gap:10%;align-items:end}
.shared-terms{font-size:clamp(22px,3.2vw,42px);line-height:1.5;letter-spacing:-.045em;font-weight:500}
.two-business-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:40px}
.business-link{display:block;border:1px solid var(--line);padding:35px 30px;transition:background .2s}.business-link:hover{background:#f6f6f6}
.business-link .num{font-size:10px;color:var(--muted);letter-spacing:.1em}.business-link h3{font-size:clamp(26px,3vw,43px);font-weight:550;line-height:1.15;letter-spacing:-.06em;margin:25px 0}.business-link p{font-size:12px;line-height:1.8;color:var(--muted)}
.service-cover{position:relative;width:100%;height:min(58vw,690px);min-height:410px;overflow:hidden}.service-cover img{width:100%;height:100%;object-fit:cover;object-position:center 48%}.cover-caption{position:absolute;bottom:28px;right:var(--gutter);font-size:10px;background:#fff;padding:8px 12px;letter-spacing:.07em}
.service-top{padding-top:82px;padding-bottom:68px}.service-top h1{font-size:clamp(55px,7vw,105px);line-height:.98;font-weight:550;letter-spacing:-.075em;margin:22px 0 20px}.service-top .description{max-width:690px;font-size:17px;line-height:1.85;color:#424242}
.service-detail{padding-top:83px;padding-bottom:112px}
.service-rows{border-top:1px solid var(--line);margin-top:35px}.service-row{display:grid;grid-template-columns:54px .9fr 1fr;gap:24px;padding:31px 0;border-bottom:1px solid var(--line);align-items:start}.service-row .num{font-size:12px;color:var(--muted)}.service-row h3{font-size:clamp(20px,2.3vw,32px);font-weight:500;letter-spacing:-.045em;margin:0}.service-row p{margin:0;color:var(--muted);font-size:13px;line-height:1.85}
.page-cta{border-top:1px solid var(--line);padding:70px 0 100px;display:flex;justify-content:space-between;align-items:end;gap:20px}.page-cta h2{margin:13px 0 0;font-size:clamp(36px,4vw,65px);font-weight:500;letter-spacing:-.07em;line-height:1.08}.text-arrow{font-size:12px;border-bottom:1px solid #111;padding-bottom:12px;font-weight:600;white-space:nowrap}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:14%;padding-top:105px;padding-bottom:125px}
.contact-grid h1{font-size:clamp(60px,7vw,98px);letter-spacing:-.08em;font-weight:550;margin:15px 0 22px;line-height:1.04}.contact-grid .note{font-size:13px;line-height:1.8;color:var(--muted)}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:22px}.field{display:flex;flex-direction:column;gap:8px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:550;color:#363636}.field input,.field select,.field textarea{background:#fff;border:0;border-bottom:1px solid #c8c8c8;border-radius:0;color:#111;padding:10px 1px 13px;outline:none;font-size:14px;min-width:0}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-bottom-color:#111}
.contact-actions{grid-column:1/-1;display:flex;align-items:center;gap:20px;justify-content:space-between;flex-wrap:wrap}.contact-button{display:inline-flex;align-items:center;justify-content:space-between;gap:55px;background:#111;color:#fff;border:1px solid #111;padding:14px 20px;font-size:12px;font-weight:550}.contact-button:hover{background:#333}
.form-status{color:#4d4d4d;font-size:12px;min-height:20px;line-height:1.5}.hint{font-size:11px;color:#7a7a7a;line-height:1.75;grid-column:1/-1}
@media(max-width:800px){:root{--header:68px;--gutter:22px}.mobile-menu-button{display:block}.main-nav{display:none;position:absolute;top:var(--header);left:0;right:0;background:#fff;padding:22px var(--gutter) 27px;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:23px}.main-nav.open{display:flex}.site-header .logo{font-size:26px}.home-split{grid-template-columns:1fr}.home-card{aspect-ratio:1/1}.home-card-title h1{font-size:clamp(32px,7.4vw,48px)}.home-card .hero-index{top:23px}.page-intro{padding-top:75px;padding-bottom:68px}.about-headline{padding:60px 0 50px}.about-grid{grid-template-columns:1fr 1fr}.principle:nth-child(2){border-right:0}.principle:nth-child(-n+2){border-bottom:1px solid var(--line)}.principle:nth-child(3){padding-left:0}.principle{padding:24px 17px 26px}.section-space{padding:75px 0}.shared{grid-template-columns:1fr;gap:25px}.two-business-grid{gap:10px}.business-link{padding:22px 18px}.business-link h3{font-size:26px}.service-cover{height:65vw;min-height:300px}.service-top{padding-top:70px}.service-detail{padding-top:60px;padding-bottom:80px}.service-row{grid-template-columns:35px 1fr;gap:12px}.service-row p{grid-column:2}.page-cta{padding:52px 0 75px}.contact-grid{grid-template-columns:1fr;gap:45px;padding:70px 0 90px}.site-footer{font-size:10px}}
@media(max-width:500px){.about-grid{grid-template-columns:1fr 1fr}.principle .hanja{font-size:31px}.two-business-grid{grid-template-columns:1fr}.page-cta{display:block}.page-cta .text-arrow{display:inline-block;margin-top:25px}.contact-form{grid-template-columns:1fr}.field.full{grid-column:1}.contact-actions{grid-column:1}.site-footer{align-items:flex-start;flex-direction:column;gap:5px}.home-card-title .home-arrow{font-size:27px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Homepage edition — image-first split with concise service descriptions */
.home-page .site-header{height:clamp(76px,7.7vw,112px);border-bottom:1px solid #353535}
.home-page .site-header .logo{font-size:clamp(28px,2.3vw,38px);letter-spacing:.13em;font-weight:650}
.home-page .main-nav a{font-size:clamp(11px,1.02vw,15px);font-weight:550;letter-spacing:.035em;opacity:1}
.home-page .home-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-bottom:1px solid #454545;align-items:stretch;width:100%}
.home-page .home-card{aspect-ratio:auto;isolation:auto;display:flex;flex-direction:column;padding:clamp(22px,3.65vw,55px) clamp(22px,3.65vw,55px) clamp(28px,4.3vw,64px);background:#fff;overflow:visible;position:relative;min-width:0}
.home-page .home-card:first-child{border-right:1px solid #474747}
.home-page .home-card::after{display:none}
.home-page .home-card-media{aspect-ratio:1/1;width:100%;overflow:hidden;background:#ececec;flex:0 0 auto}
.home-page .home-card-media img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;display:block;transition:transform .5s ease}
.home-page .home-card:hover .home-card-media img{transform:scale(1.025)}
.home-page .home-card-info{display:flex;flex-direction:column;justify-content:flex-start;padding-top:clamp(22px,2.7vw,42px);position:relative;min-height:105px}
.home-page .home-card-info h1{margin:0 0 10px;font-size:clamp(24px,2.9vw,42px);line-height:1.12;font-weight:650;letter-spacing:-.055em;color:#111;white-space:nowrap}
.home-page .home-card-info p{margin:0;color:#202020;font-size:clamp(11px,1.02vw,15px);line-height:1.55;letter-spacing:-.015em}
.home-page .home-card-arrow{position:absolute;right:0;top:clamp(22px,2.7vw,42px);font-size:25px;font-weight:400;opacity:0;transition:opacity .2s}
.home-page .home-card:hover .home-card-arrow{opacity:1}
.home-page .home-footer{min-height:64px;display:flex;align-items:center;justify-content:space-between;padding:16px clamp(22px,4vw,60px);border-top:0;color:#111}
.home-page .footer-brand{font-size:13px;font-weight:700;letter-spacing:.22em}
.home-page .footer-about{color:#777;font-size:12px;font-style:normal}
.home-page .footer-about a{font-weight:600;border-bottom:1px solid #111;color:#111}
@media(max-width:980px){.home-page .home-card-info h1{white-space:normal}.home-page .home-card-info{min-height:115px}}
@media(max-width:800px){.home-page .site-header{height:68px}.home-page .main-nav{top:68px}.home-page .home-split{grid-template-columns:1fr}.home-page .home-card{padding:23px 22px 29px}.home-page .home-card:first-child{border-right:0;border-bottom:1px solid #d6d6d6}.home-page .home-card-info{padding-top:20px;min-height:0}.home-page .home-card-info h1{font-size:clamp(27px,6.7vw,40px);margin-bottom:8px}.home-page .home-card-info p{font-size:12px;line-height:1.7;max-width:460px}.home-page .home-card-arrow{display:none}.home-page .home-footer{padding:22px;flex-wrap:wrap;row-gap:12px}.home-page .footer-about{font-size:11px}}
@media(max-width:430px){.home-page .home-card{padding:17px 18px 27px}.home-page .home-card-info h1{font-size:29px;letter-spacing:-.055em}.home-page .home-card-info p{font-size:11px}.home-page .home-footer{padding:18px}}

/* Phone and tablet accessibility; desktop composition stays unchanged. */
img,video{max-width:100%;height:auto}
iframe,embed,object{max-width:100%}
@media(max-width:800px){
  body{font-size:16px;overflow-wrap:anywhere}
  .site-header .logo{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
  .mobile-menu-button{width:44px;height:44px;flex-shrink:0}
  .main-nav{gap:4px;max-height:calc(100dvh - var(--header));overflow-y:auto}
  .main-nav a{display:flex;align-items:center;min-width:44px;min-height:44px;width:100%;font-size:16px}
  .main-nav a.active{padding-bottom:0}
  .home-page .main-nav a{font-size:16px}
  .site-footer a,.text-arrow{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
  .site-footer,.home-page .footer-brand,.home-page .footer-about,
  .home-page .home-card-info p,.sublead,.principle p,.principle h3,
  .business-link p,.service-row p,.contact-grid .note,.field label,
  .field input,.field select,.field textarea,.contact-button,.form-status,.hint,
  .eyebrow,.business-link .num,.service-row .num,.cover-caption,.text-arrow{font-size:16px}
  .contact-button,.field input,.field select{min-width:44px;min-height:44px}
  .field textarea{min-height:130px}
  .contact-form,.field,.contact-grid>*,.service-row>*,.shared>*,.principle{min-width:0}
  .contact-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .field input,.field select,.field textarea{width:100%;max-width:100%}
  .contact-button{gap:24px;max-width:100%;white-space:normal}
  .page-title{font-size:clamp(32px,7.5vw,60px)}
  .service-top h1{font-size:clamp(36px,7vw,56px)}
  .cover-caption{left:var(--gutter);right:auto;max-width:calc(100% - 2 * var(--gutter))}
  .page-cta .text-arrow{white-space:normal}
  .home-page .home-footer>*{min-width:0;max-width:100%}
}
@media(max-width:500px){
  .contact-form{grid-template-columns:minmax(0,1fr)}
  .page-cta .text-arrow{display:inline-flex}
}
