:root{
  --bg:#FAF8F4; --paper:#FFFFFF; --ink:#2E332F; --muted:#6E746C; --line:#E6E1D8;
  --sage:#5F6F52; --sage-soft:#EEF0EA; --serif:'Noto Serif KR', serif;
  --sans:'Pretendard', -apple-system, 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.75;word-break:keep-all;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
.eyebrow{font-size:13px;letter-spacing:.18em;color:var(--sage);font-weight:600}
h2{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3.2vw,36px);line-height:1.45;margin:10px 0 14px}
.lead{color:var(--muted);font-size:16.5px;max-width:680px}
section{padding:110px 0}
[id]{scroll-margin-top:20px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-size:15px;font-weight:600;transition:.2s}
.btn-solid{background:var(--sage);color:#fff}
.btn-solid:hover{background:#4E5C43}
.btn-line{border:1px solid rgba(255,255,255,.75);color:#fff}
.btn-line:hover{background:rgba(255,255,255,.12)}
.btn-ghost{border:1px solid var(--line);background:var(--paper)}
.btn-ghost:hover{border-color:var(--sage);color:var(--sage)}

/* header */
header{position:absolute;top:0;left:0;right:0;z-index:10;color:#fff}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:84px}
.logo{display:flex;flex-direction:column;line-height:1.2;flex-shrink:0}
.logo b{font-family:var(--serif);font-weight:600;font-size:21px;letter-spacing:.02em}
.logo b i{font-style:italic;font-weight:400;font-size:16px;margin-left:4px;opacity:.9}
.logo span{font-size:11.5px;letter-spacing:.2em;opacity:.85;margin-top:3px}
nav{display:flex;gap:22px;font-size:14.5px;align-items:center}
nav a{opacity:.88}
nav a:hover{opacity:1}
nav a.on{opacity:1;font-weight:600;border-bottom:1px solid #fff;padding-bottom:2px}
nav .assoc{font-size:12.5px;opacity:.75;border-left:1px solid rgba(255,255,255,.4);padding-left:20px}
nav .cta{border:1px solid rgba(255,255,255,.7);padding:8px 18px;border-radius:999px;opacity:1}

/* hero */
.hero{position:relative;min-height:92vh;display:flex;align-items:flex-end;color:#fff;padding:150px 0 96px;background:url('/assets/corp-hero.jpg') center/cover no-repeat}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom, rgba(28,32,28,.50) 0%, rgba(28,32,28,.10) 22%, rgba(28,32,28,.12) 45%, rgba(28,32,28,.74) 100%)}
.hero .wrap{position:relative;width:100%}
.hero .eyebrow{color:#E4EADF}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(32px,4.6vw,54px);line-height:1.4;margin:16px 0 20px}
.hero p{font-size:17px;max-width:580px;opacity:.93}
.hero .actions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.hero .paths{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:36px;max-width:900px}
.hero .paths a{display:flex;align-items:center;gap:12px;padding:18px 22px;border:1px solid rgba(255,255,255,.55);border-radius:16px;background:rgba(255,255,255,.08);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:.25s}
.hero .paths a:hover{background:rgba(255,255,255,.95);color:var(--ink);border-color:#fff}
.hero .paths small{font-family:var(--serif);font-size:13px;opacity:.75}
.hero .paths b{font-family:var(--serif);font-weight:500;font-size:17px;flex:1}
.hero .paths span{opacity:.8}
.hero.sub{min-height:66vh;padding-bottom:80px}
.hero.sub.programs-hero{background-image:url('/assets/corp-pb.jpg');background-position:center 72%}
.hero.sub::before{background:linear-gradient(to bottom, rgba(28,32,28,.62) 0%, rgba(28,32,28,.35) 35%, rgba(28,32,28,.45) 60%, rgba(28,32,28,.78) 100%)}

/* proof */
.proof{background:var(--paper);border-bottom:1px solid var(--line);padding:44px 0}
.proof .grid{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.proof .grid div{padding:6px 10px;border-left:1px solid var(--line)}
.proof .grid div:first-child{border-left:none}
.proof strong{display:block;font-family:var(--serif);font-weight:500;font-size:30px;color:var(--sage)}
.proof small{color:var(--muted);font-size:14px}
.proof .note{text-align:center;color:var(--muted);font-size:12.5px;margin-top:18px;letter-spacing:.04em}

/* why */
.why3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.why3 .w{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.why3 .w img{width:100%;aspect-ratio:16/10;object-fit:cover}
.why3 .w div{padding:24px 24px 28px}
.why3 h3{font-family:var(--serif);font-weight:500;font-size:20px;margin-bottom:8px}
.why3 p{color:var(--muted);font-size:15px}

/* program teaser (home) */
.pteaser{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pthead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.pt5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:40px}
.pt5 a{border:1px solid var(--line);border-radius:18px;background:var(--bg);overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.pt5 a:hover{border-color:var(--sage);transform:translateY(-3px)}
.pt5 img{width:100%;aspect-ratio:4/5;object-fit:cover}
.pt5 div{padding:16px 16px 20px}
.pt5 .l{font-family:var(--serif);color:var(--sage);font-size:15px}
.pt5 b{display:block;font-family:var(--serif);font-weight:500;font-size:17px;line-height:1.45;margin:2px 0 4px}
.pt5 small{color:var(--muted);font-size:13px}

/* references marquee */
.refs{padding:96px 0 90px;background:var(--bg);overflow:hidden}
.refs .rhead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:44px}
.refs .rhead p{color:var(--muted);font-size:15.5px}
.lane{position:relative;overflow:hidden;padding:14px 0;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 12%,#000 88%,transparent 100%)}
.lane + .lane{border-top:1px solid var(--line)}
.track{display:flex;width:max-content;animation:drift 60s linear infinite}
.lane.rev .track{animation-direction:reverse;animation-duration:70s}
.lane:hover .track{animation-play-state:paused}
.track span{font-family:var(--serif);font-size:clamp(20px,2.3vw,27px);color:var(--ink);white-space:nowrap;display:inline-flex;align-items:center;opacity:.82}
.track span::after{content:"";width:7px;height:7px;border-radius:50% 0;background:var(--sage);opacity:.55;margin:0 40px;transform:rotate(45deg)}
.lane.rev .track span{color:var(--muted);font-size:clamp(18px,2vw,23px)}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.track{animation:none}}

/* references logo wall */
.refwall{background:var(--bg)}
.refwall .rhead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
.refwall .rhead p{color:var(--muted);font-size:15.5px}
.wall{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--paper)}
.wall .cell{position:relative;height:150px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden}
.wall .it{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:18px 22px;opacity:0;transform:translateY(8px);transition:opacity 1.1s ease,transform 1.1s ease}
.wall .it.on{opacity:1;transform:none}
.wall .it img{max-width:62%;max-height:46px;object-fit:contain;filter:grayscale(1) contrast(1.05);opacity:.72;transition:.4s}
.wall .cell:hover .it img{filter:none;opacity:1}
.wall .it small{font-size:12px;color:var(--muted);letter-spacing:.02em;text-align:center;line-height:1.4}
.wall .it .wm{font-family:var(--serif);font-size:18px;color:var(--ink);opacity:.75;text-align:center;line-height:1.45}
.wall .cell::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--sage);transition:width .5s}
.wall .cell:hover::after{width:100%}
.refwall .libs{margin-top:18px;color:var(--muted);font-size:14px;text-align:right}
@media (prefers-reduced-motion:reduce){.wall .it{transition:none}}

/* season */
.season{background:var(--sage);color:#fff;padding:64px 0;text-align:center}
.season h2{color:#fff;margin:6px 0 10px}
.season p{opacity:.9}
.season .eyebrow{color:#DDE4D6}
.season .btn{margin-top:24px;background:#fff;color:var(--sage)}

/* programs detail */
.programs{background:var(--paper);border-bottom:1px solid var(--line)}
.plist{display:grid;gap:26px;margin-top:48px}
.prog{display:grid;grid-template-columns:300px 1fr;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--bg)}
.prog .ph{position:relative}
.prog .ph img{width:100%;height:100%;object-fit:cover;min-height:320px}
.prog .ph .badge{position:absolute;top:18px;left:18px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--sage);font-family:var(--serif);font-size:20px;display:flex;align-items:center;justify-content:center}
.prog .body{padding:34px 38px}
.prog .type{font-size:13px;color:var(--sage);font-weight:600;letter-spacing:.06em}
.prog h3{font-family:var(--serif);font-weight:500;font-size:25px;margin:4px 0 8px}
.prog .desc{color:var(--muted);font-size:15.5px}
.spec{display:grid;grid-template-columns:repeat(4,1fr);margin:22px 0 18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.spec div{padding:14px 12px 14px 0}
.spec dt{font-size:12.5px;color:var(--muted)}
.spec dd{font-size:15px;font-weight:600;margin-top:2px}
.flow{font-size:14.5px}
.flow b{color:var(--sage);font-weight:600;margin-right:8px}
.flow + .flow{margin-top:6px}
.prog.sig{border-color:var(--sage)}
.sigtag{display:inline-block;font-size:11.5px;letter-spacing:.14em;color:#fff;background:var(--sage);padding:3px 10px;border-radius:999px;margin-left:8px;vertical-align:middle}
.sign{margin-top:16px;font-family:var(--serif);font-style:italic;font-size:13px;color:var(--sage)}

/* where */
.where{display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:center}
.where .photo{border-radius:20px;overflow:hidden;aspect-ratio:4/3}
.where .photo img{width:100%;height:100%;object-fit:cover}
.wlist{display:grid;gap:22px;margin-top:26px}
.wlist div{border-left:2px solid var(--sage);padding-left:16px}
.wlist b{font-family:var(--serif);font-weight:500;font-size:18px}
.wlist p{color:var(--muted);font-size:15px}

/* process */
.process{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:48px;counter-reset:s}
.steps div{padding:0 26px 0 0}
.steps div::before{counter-increment:s;content:"0" counter(s);font-family:var(--serif);font-size:15px;color:var(--sage);display:block;border-top:1px solid var(--sage);padding-top:16px;margin-bottom:8px}
.steps b{font-size:17px;font-family:var(--serif);font-weight:500}
.steps p{color:var(--muted);font-size:14.5px;margin-top:6px}

/* director */
.director{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}
.director .photo{border-radius:20px;overflow:hidden;aspect-ratio:3/4}
.director .photo img{width:100%;height:100%;object-fit:cover}
.director .titles{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
.director .titles span{background:var(--sage);color:#fff;font-size:13.5px;font-weight:600;padding:6px 14px;border-radius:999px}
.director .name{font-family:var(--serif);font-size:32px;font-weight:500;line-height:1.3}
.director .name small{font-size:16px;color:var(--muted);margin-left:10px;font-family:var(--sans);font-weight:500}
.director .role{color:var(--sage);font-weight:600;margin:6px 0 20px}
.director blockquote{font-family:var(--serif);font-size:18px;border-left:2px solid var(--sage);padding-left:16px;margin:22px 0}
.creds{list-style:none;display:grid;gap:8px;margin:22px 0 28px;font-size:15px}
.creds li::before{content:"·";color:var(--sage);font-weight:700;margin-right:10px}

/* faq */
.faq{max-width:820px;margin:40px auto 0}
.faq details{border-bottom:1px solid var(--line);padding:22px 4px}
.faq summary{cursor:pointer;list-style:none;font-weight:600;font-size:16.5px;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--sage);font-weight:400;font-size:22px;line-height:1}
.faq details[open] summary::after{content:"−"}
.faq details p{color:var(--muted);margin-top:12px;font-size:15.5px}

/* contact */
.cta-band{background:linear-gradient(rgba(40,46,40,.62),rgba(40,46,40,.62)),url('/assets/corp-table.jpg') center/cover;color:#fff;text-align:center;padding:120px 0}
.cta-band h2{color:#fff}
.cta-band p{opacity:.9;margin:0 auto 34px;max-width:560px}
.cta-band .actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

footer{background:#262B27;color:#BFC5BC;font-size:13.5px;padding:56px 0}
footer .top{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;margin-bottom:26px}
footer .flogo b{font-family:var(--serif);color:#fff;font-size:19px;font-weight:500}
footer .flogo b i{font-weight:400;font-size:15px}
footer .flogo div{font-size:12px;letter-spacing:.18em;margin-top:4px}
footer .links{display:flex;gap:20px;flex-wrap:wrap}
footer .links a:hover{color:#fff}
footer .biz{border-top:1px solid #3A403B;padding-top:22px;line-height:1.9}

@media (max-width:1000px){
  nav{gap:16px;font-size:13.5px}
}
@media (max-width:900px){
  header .wrap{flex-direction:column;align-items:flex-start;height:auto;padding-top:18px;gap:12px}
  nav{width:100%;overflow-x:auto;white-space:nowrap;gap:18px;font-size:13.5px;padding-bottom:6px;scrollbar-width:none}
  nav::-webkit-scrollbar{display:none}
  nav .assoc{border-left:none;padding-left:0}
  nav .cta{padding:4px 12px}
  section{padding:80px 0}
  .proof .grid{grid-template-columns:repeat(2,1fr);row-gap:22px}
  .proof .grid div:nth-child(3){border-left:none}
  .why3,.director,.where{grid-template-columns:1fr}
  .director,.where{gap:36px}
  .pt5{grid-template-columns:1fr 1fr}
  .prog{grid-template-columns:1fr}
  .prog .ph img{min-height:0;aspect-ratio:16/10}
  .prog .body{padding:26px 22px}
  .spec{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr;row-gap:30px}
  .wall{grid-template-columns:1fr 1fr}
  .wall .cell{height:130px}
  .wall .it .wm{font-size:16px}
  .refwall .libs{text-align:left}
  .hero{min-height:88vh;padding:170px 0 64px}
  .hero.sub{min-height:62vh}
  .hero h1{font-size:28px}
  .hero .paths{grid-template-columns:1fr;gap:8px;margin-top:26px}
  .hero .paths a{padding:14px 18px}
  .hero h1 br,.hero p br{display:none}
  .hero::before{background:linear-gradient(to bottom, rgba(28,32,28,.6) 0%, rgba(28,32,28,.25) 25%, rgba(28,32,28,.55) 50%, rgba(28,32,28,.8) 100%)}
}
