:root{
  --font-brand:'Sora', sans-serif; /* TEMP: 실제 업로드 폰트로 교체 예정 */
  --font-brand-kr:'Pretendard', 'Noto Sans KR', sans-serif;
  --navy-950:#10131a;
  --navy-900:#181c26;
  --navy-800:#232838;
  --navy-700:#333a4f;
  --gold-500:#b6905c;
  --gold-300:#dcc196;
  --gold-100:#f0e4d0;
  --taupe-600:#6f5f54;
  --taupe-300:#b6a99b;
  --cream-50:#f7f3ec;
  --cream-100:#efe7d8;
  --ink-900:#211c17;
  --ink-700:#463d34;
  --line-soft:rgba(182,144,92,0.28);
  --maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Pretendard', 'Noto Sans KR', sans-serif;
  background:var(--cream-50);
  color:var(--ink-900);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  word-break:keep-all;
}
h1,h2,h3,h4{
  font-family:'Noto Serif KR', serif;
  margin:0;
  font-weight:600;
  letter-spacing:-0.01em;
}
p{margin:0;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
@media (max-width:720px){ .wrap{padding:0 20px;} }

/* ---------- NAV ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:300;
  padding:22px 0;
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
.nav.scrolled{
  background:rgba(16,19,26,0.92);
  padding:14px 0;
  box-shadow:0 8px 24px rgba(0,0,0,0.18);
  backdrop-filter:blur(6px);
}
.nav .wrap{display:flex; align-items:center; justify-content:flex-end;}

/* menu trigger — replaces the horizontal link row */
.menu-trigger{
  display:flex; align-items:center; gap:12px;
  background:none; border:none; cursor:pointer; padding:6px 2px;
  font-family:var(--font-brand-kr); color:#f1ece2; font-size:13px; letter-spacing:0.06em;
}
.menu-trigger-icon{display:inline-flex; flex-direction:column; justify-content:center; gap:6px; width:24px; height:14px;}
.menu-trigger-icon span{display:block; height:1px; width:100%; background:#f1ece2; transition:transform .4s cubic-bezier(.4,0,.2,1), opacity .3s ease;}
.menu-trigger[aria-expanded="true"] .menu-trigger-icon span:first-child{transform:translateY(3.5px) rotate(45deg);}
.menu-trigger[aria-expanded="true"] .menu-trigger-icon span:last-child{transform:translateY(-3.5px) rotate(-45deg);}

/* dropdown panel menu — anchored to top, not full-screen */
.fullnav-backdrop{
  position:fixed; inset:0; z-index:190;
  background:rgba(6,7,10,0.55);
  opacity:0; visibility:hidden;
  transition:opacity .4s ease, visibility 0s linear .4s;
}
.fullnav-backdrop.open{
  opacity:1; visibility:visible;
  transition:opacity .4s ease, visibility 0s linear 0s;
}
.fullnav{
  position:fixed; top:0; left:0; right:0; z-index:200;
  background:var(--navy-950);
  padding:104px 32px 44px;
  transform:translateY(-100%);
  transition:transform .5s cubic-bezier(.4,0,.2,1);
  box-shadow:0 24px 48px rgba(0,0,0,0.28);
}
.fullnav.open{transform:translateY(0);}
.fullnav-inner{max-width:var(--maxw); margin:0 auto; width:100%; display:flex; flex-direction:column;}
.fullnav-link{
  font-family:var(--font-brand-kr); color:#e7ded0; font-weight:500;
  font-size:clamp(18px,2vw,22px); letter-spacing:-0.005em;
  padding:15px 0; border-bottom:1px solid rgba(255,255,255,0.08);
  opacity:0; transform:translateY(12px);
  transition:opacity .45s ease, transform .45s ease, color .3s ease;
}
.fullnav.open .fullnav-link{opacity:1; transform:translateY(0);}
.fullnav-link:hover{color:var(--gold-300);}
.fullnav-link.is-current{color:var(--gold-300);}
.fullnav-link:nth-child(1){transition-delay:.05s;}
.fullnav-link:nth-child(2){transition-delay:.09s;}
.fullnav-link:nth-child(3){transition-delay:.13s;}
.fullnav-link:nth-child(4){transition-delay:.17s;}
.fullnav-link:nth-child(5){transition-delay:.21s;}
.fullnav-link:nth-child(6){transition-delay:.25s;}
@media (max-width:600px){
  .menu-trigger-label{display:none;}
  .fullnav{padding:96px 20px 32px;}
  .fullnav-link{font-size:18px; padding:13px 0;}
}

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  background:#0c0e13;
}
.hero-canvas{
  position:absolute; inset:0; width:100%; height:100%; display:block; background:#0c0e13;
}
.hero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,12,17,0.08) 0%, rgba(10,12,17,0.12) 38%, rgba(9,11,16,0.86) 94%),
             linear-gradient(90deg, rgba(9,11,16,0.32) 0%, rgba(9,11,16,0.02) 48%);
}
.hero-content{position:relative; z-index:2; width:100%; padding-bottom:104px;}
.hero-mark{width:40px; height:1px; background:var(--gold-300); margin-bottom:28px;}
.hero h1{
  color:#fdfbf7; font-size:clamp(24px,2.6vw,34px); line-height:1.55; max-width:560px;
  font-weight:400; letter-spacing:-0.005em; word-break:keep-all;
}
.hero h1 .br-mobile{display:none;}
@media (max-width:600px){
  .hero h1{max-width:none; font-size:23px;}
  .hero h1 .br-desktop{display:none;}
  .hero h1 .br-mobile{display:inline;}
}
.hero-sub{
  font-family:var(--font-brand-kr);
  color:#d6cfc0; font-size:clamp(14px,1.3vw,16px); margin-top:22px; max-width:520px; line-height:1.8; font-weight:500;
  letter-spacing:0.002em;
  word-break:keep-all;
}
.hero-sub-mobile{display:none;}
@media (max-width:600px){
  .hero-sub-desktop{display:none;}
  .hero-sub-mobile{display:inline;}
}
.hero-scroll{
  position:absolute; right:32px; bottom:40px; z-index:2; color:#cfc6b5; font-size:12px;
  writing-mode:vertical-rl; letter-spacing:0.2em; display:flex; align-items:center; gap:10px;
}
.hero-scroll::after{content:''; width:1px; height:46px; background:linear-gradient(180deg, var(--gold-300), transparent);}
@media (max-width:600px){ .hero-scroll{display:none;} }

/* ---------- PAGE BANNER (sub-pages) ---------- */
.page-banner{
  position:relative; background:var(--navy-950); color:#eee7d9;
  padding:168px 0 56px;
  overflow:hidden;
}
@media (max-width:720px){ .page-banner{padding:116px 0 44px;} }
.page-banner::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 85% 0%, rgba(220,193,150,0.12), transparent 55%);
}
.page-banner .wrap{position:relative; z-index:1;}
.page-banner .kicker{color:var(--gold-300);}
.page-banner h1{color:#fbf8f2; font-size:clamp(28px,3.6vw,42px); line-height:1.3; max-width:680px;}
.banner-title-mobile{display:none;}
@media (max-width:600px){
  .banner-title-desktop{display:none;}
  .banner-title-mobile{display:inline;}
}
.page-banner p{font-family:var(--font-brand-kr); margin-top:16px; font-size:14.5px; line-height:1.8; color:#c9c1b1; max-width:560px; font-weight:400;}
.page-banner .crumb{font-family:var(--font-brand-kr); font-size:12.5px; color:#9a927f; margin-bottom:18px; display:flex; align-items:center; gap:8px;}
.page-banner .crumb a:hover{color:var(--gold-300);}

/* ---------- STAT STRIP ---------- */
.stats{background:var(--navy-950); padding:38px 0; border-top:1px solid rgba(255,255,255,0.06);}
.stats .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; text-align:center;}
.stat-num{font-family:'Noto Serif KR',serif; color:var(--gold-300); font-size:clamp(22px,2.6vw,32px); font-weight:600;}
.stat-label{font-family:var(--font-brand-kr); color:#c3bcac; font-size:14.5px; font-weight:500; margin-top:7px; letter-spacing:0.01em;}
@media (max-width:720px){ .stats .wrap{grid-template-columns:repeat(2,1fr); row-gap:26px;} }

/* ---------- SECTION GENERIC ---------- */
section{padding:96px 0;}
@media (max-width:720px){ section{padding:64px 0;} }
.kicker{
  color:var(--gold-500); font-size:12.5px; letter-spacing:0.13em; font-weight:600; margin-bottom:12px;
  display:flex; align-items:center; gap:10px;
}
.kicker::before{content:''; width:22px; height:1px; background:var(--gold-500); display:inline-block;}
.sec-title{font-size:clamp(22px,2.8vw,33px); line-height:1.34; max-width:600px;}
.pillars .sec-title{font-size:clamp(25px,3.1vw,36px); line-height:1.4;}
@media (max-width:600px){ .pillars .sec-title{font-size:20px;} }
.records-title{max-width:none; white-space:nowrap;}
@media (max-width:760px){ .records-title{white-space:normal; max-width:520px;} }
.sec-desc{font-family:var(--font-brand-kr); margin-top:14px; font-size:14px; line-height:1.78; color:var(--ink-700); max-width:540px; font-weight:400;}

/* ---------- HOME SECTION "자세히 보기" LINK ---------- */
.btn-more{
  display:inline-flex; align-items:center; gap:9px; margin-top:28px;
  padding-bottom:7px; border-bottom:1px solid var(--gold-500);
  font-family:var(--font-brand); font-size:11.5px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--ink-900); transition:color .3s ease, gap .3s ease, border-color .3s ease;
}
.btn-more::after{content:'→'; transition:transform .25s ease;}
.btn-more:hover{color:var(--gold-500); gap:13px;}
.btn-more:hover::after{transform:translateX(2px);}
.btn-more.on-dark{color:#f1ece2; border-color:rgba(220,193,150,0.45);}
.btn-more.on-dark:hover{color:var(--gold-300); border-color:var(--gold-300);}

/* ---------- HOME COMPACT PILLAR VARIANT ---------- */
.pillar-card.is-compact{padding:46px 30px 40px;}
.pillar-card.is-compact .pillar-list{display:none;}
.pillar-card.is-compact .pillar-num{font-size:30px; color:var(--gold-300); opacity:0.9; margin-bottom:28px;}
.pillar-card.is-compact h3{font-size:18px; margin-top:0;}
.pillar-card.is-compact .pillar-tag{font-family:var(--font-brand); font-size:10.5px; letter-spacing:0.12em; color:var(--taupe-600); margin-top:6px; display:block;}

/* ---------- HOME PHILOSOPHY: FULL-BLEED BACKGROUND ---------- */
.philosophy-full{
  position:relative; min-height:620px; display:flex; align-items:center;
  overflow:hidden; color:#eee7d9; padding:0;
}
.philosophy-bg-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:62% 55%; z-index:0;
}
.philosophy-full::after{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(10,12,17,0.9) 0%, rgba(10,12,17,0.68) 42%, rgba(10,12,17,0.22) 78%, rgba(10,12,17,0.12) 100%);
}
.philosophy-full .wrap{
  position:relative; z-index:2; margin:0; max-width:none; width:100%;
  padding-left:max(32px, calc((100% - var(--maxw)) / 2 + 32px));
  padding-right:32px;
}
.phil-content{max-width:480px;}
@media (max-width:720px){ .philosophy-full{min-height:0; padding:72px 0;} }
@media (max-width:600px){ .philosophy-bg-img{object-position:35% 55%;} }
.phil-tags{display:flex; gap:28px; margin-top:28px; padding-top:26px; border-top:1px solid rgba(220,193,150,0.22);}
.phil-tag-label{color:var(--gold-300); font-size:12.5px; letter-spacing:0.16em; font-weight:600; margin-bottom:8px;}
.phil-tag-text{font-family:var(--font-brand-kr); font-size:15px; color:#d9d2c4; line-height:1.6; font-weight:400;}

/* ---------- HOME PROJECT: FULL IMAGE + CAPTION ---------- */
.brand-en-tag{font-family:var(--font-brand); font-size:12.5px; letter-spacing:0.2em; color:var(--gold-500); margin-top:10px; font-weight:500;}
.feat-media-full{position:relative; margin-top:36px;}
.feat-media-full img{width:100%; height:auto; max-height:540px; object-fit:cover; display:block; border-radius:1px;}
.feat-caption{font-family:var(--font-brand-kr); font-size:13.5px; color:var(--ink-700); margin-top:18px; line-height:1.75; max-width:600px; font-weight:400;}

/* ---------- PHILOSOPHY ---------- */
.philosophy{background:var(--cream-50); color:var(--ink-900); position:relative;}
.phil-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:70px; align-items:center;}
@media (max-width:880px){ .phil-grid{grid-template-columns:1fr;} .phil-media{order:-1; margin-bottom:8px;} }
@media (max-width:600px){ .philosophy .phil-media{display:none;} }
.phil-quote{
  font-family:'Noto Serif KR',serif; font-size:clamp(25px,3.1vw,36px); line-height:1.45; color:#fbf8f2; font-weight:600;
  padding-bottom:34px; margin-bottom:34px; border-bottom:1px solid rgba(220,193,150,0.22); word-break:keep-all;
}
@media (max-width:600px){ .phil-quote{font-size:20px;} }
.phil-item + .phil-item{margin-top:30px;}
.phil-label{color:var(--gold-300); font-size:13px; letter-spacing:0.14em; margin-bottom:10px; font-weight:600;}
.phil-text{font-family:var(--font-brand-kr); font-size:15px; line-height:1.85; color:#d9d2c4; font-weight:400;}
.phil-media{position:relative; border-radius:2px; overflow:hidden; aspect-ratio:4/5;}
.phil-media img{width:100%; height:100%; object-fit:cover; object-position:55% 40%;}
.phil-media::after{content:''; position:absolute; inset:0; box-shadow:inset 0 0 0 1px rgba(220,193,150,0.25);}

/* ---------- ABOUT PAGE PHILOSOPHY SECTION (cream bg override) ---------- */
.philosophy .phil-quote{color:var(--ink-900); border-bottom:1px solid rgba(169,140,84,0.25);}
.philosophy .phil-label{color:var(--gold-500);}
.philosophy .phil-text{color:var(--ink-700);}
.philosophy .phil-media::after{box-shadow:inset 0 0 0 1px rgba(169,140,84,0.2);}

/* ---------- CEO ---------- */
.ceo{background:var(--navy-950); color:#eee7d9;}
.ceo-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:64px; align-items:start;}
@media (max-width:880px){ .ceo-grid{grid-template-columns:1fr;} }
.ceo-media{border-radius:2px; overflow:hidden;}
.ceo-media img{width:100%; object-fit:cover;}
.ceo-quote{
  font-family:'Noto Serif KR',serif; font-size:clamp(25px,3.1vw,36px); line-height:1.45; color:#fbf8f2;
  font-weight:600; margin-bottom:30px; max-width:880px; word-break:keep-all;
}
@media (max-width:600px){ .ceo-quote{font-size:20px;} }
.ceo-body p{font-family:var(--font-brand-kr); font-size:14.5px; line-height:1.95; color:#c9c1b1; font-weight:400;}
.ceo-body p + p{margin-top:16px;}
.ceo-sign{margin-top:34px; font-family:'Noto Serif KR',serif; font-size:15px; color:#f1ece2; font-weight:600;}

/* ---------- PILLARS ---------- */
.pillars{background:var(--cream-100);}
.pillar-head{display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:40px; flex-wrap:wrap;}
.pillar-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft);}
@media (max-width:920px){ .pillar-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .pillar-grid{grid-template-columns:1fr;} }
@media (max-width:560px){ .pillar-grid:has(.is-compact){grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .pillar-grid:has(.is-compact) .pillar-card.is-compact{padding:30px 18px 26px;} }
.pillar-card{background:var(--cream-100); padding:38px 30px; transition:background .3s ease;}
.pillar-card:hover{background:#fffdf9;}
.pillar-num{font-family:'Noto Serif KR',serif; color:var(--gold-500); font-size:14px; margin-bottom:22px; font-weight:600;}
.pillar-card h3{font-size:17px; margin-top:-8px; margin-bottom:6px; color:var(--ink-900);}
.pillar-card h3 em{font-style:normal; display:block; font-family:'Pretendard',sans-serif; font-size:11.5px; color:var(--taupe-600); letter-spacing:0.08em; margin-top:4px; font-weight:500;}
.pillar-list{margin-top:16px; padding:0; list-style:none;}
.pillar-list li{
  font-family:var(--font-brand-kr); font-size:12.5px; color:var(--ink-700); line-height:1.7; font-weight:400;
  display:flex; align-items:center; gap:7px; white-space:nowrap;
}
.pillar-list li::before{
  content:''; flex:none; width:4px; height:4px; border-radius:50%; background:var(--gold-500);
}
.pillar-list li + li{margin-top:6px;}

/* ---------- ORG ---------- */
.org{background:var(--navy-950); color:#eee7d9; overflow:hidden;}
.org-head{text-align:center; max-width:600px; margin:0 auto 50px;}
.org-head .kicker{justify-content:center;}
.org-head .kicker::before{display:none;}
.org-head h2{color:#fbf8f2;}
.orbit{position:relative; width:100%; max-width:780px; aspect-ratio:1/1; margin:0 auto;}
.orbit-ring{position:absolute; inset:8%; border:2px dashed rgba(220,193,150,0.45); border-radius:50%;}
.orbit-center{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:34%; aspect-ratio:1/1; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #2a2f40, #14171f);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 0 0 3px rgba(220,193,150,0.55), 0 30px 60px rgba(0,0,0,0.5);
}
.orbit-center span{
  font-family:var(--font-brand); color:var(--gold-300); font-weight:600;
  font-size:clamp(17px,2.6vw,25px); letter-spacing:0.13em; text-align:center;
}
.orbit-dot{
  position:absolute; width:16px; height:16px; border-radius:50%; background:var(--gold-300);
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 7px rgba(220,193,150,0.16);
}
.orbit-label{
  position:absolute; width:30%; transform:translate(-50%,-50%); text-align:center;
}
.orbit-label h4{font-size:17px; color:#fbf8f2; font-weight:600; font-family:var(--font-brand-kr);}
.orbit-label p{font-family:var(--font-brand-kr); font-size:13.5px; color:#a9a08d; margin-top:7px; line-height:1.6; font-weight:400;}
.d1{left:50.0%; top:8.0%;}
.d2{left:89.9%; top:37.0%;}
.d3{left:74.7%; top:84.0%;}
.d4{left:25.3%; top:84.0%;}
.d5{left:10.1%; top:37.0%;}
.l1{left:50.0%; top:23.0%;}
.l2{left:75.7%; top:41.7%;}
.l3{left:65.9%; top:71.8%;}
.l4{left:34.1%; top:71.8%;}
.l5{left:24.3%; top:41.7%;}
@media (max-width:680px){
  .orbit{max-width:300px; aspect-ratio:1/1; margin:0 auto 36px;}
  .orbit-center{width:30%;}
  .orbit-center span{font-size:13px; letter-spacing:0.08em;}
  .orbit-dot{width:9px; height:9px; box-shadow:0 0 0 4px rgba(220,193,150,0.16);}
  .orbit-label{width:34%; font-size:10px;}
  .orbit-label h4{font-size:11px; line-height:1.3; word-break:keep-all;}
  .orbit-label p{display:none;}
  .org-list{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:0; max-width:420px; margin-left:auto; margin-right:auto;}
  .org-list .orbit-label{
    position:static; transform:none; width:100%; margin:0;
    text-align:left; background:var(--navy-900); padding:18px 20px; border:1px solid rgba(220,193,150,0.14);
  }
  .org-list .orbit-label:first-child{grid-column:1 / -1; text-align:center;}
  .org-list .orbit-label h4{font-size:15px;}
  .org-list .orbit-label p{display:block; font-size:12.5px;}
}
@media (min-width:681px){
  .org-list{display:none;}
}

/* ---------- FEATURED PROJECT ---------- */
.featured{background:var(--cream-50);}
.feat-badge{
  display:inline-flex; align-items:center; gap:8px; background:var(--navy-950); color:var(--gold-300);
  font-size:12px; letter-spacing:0.08em; padding:7px 14px; border-radius:2px; margin-bottom:22px; font-weight:500;
}
.feat-badge::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--gold-300);}
.feat-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:0; margin-top:36px; border:1px solid var(--line-soft);}
@media (max-width:920px){ .feat-grid{grid-template-columns:1fr;} }
.feat-media{position:relative; overflow:hidden; min-height:380px;}
.feat-media img{width:100%; height:100%; object-fit:cover; position:absolute; inset:0;}
.feat-panel{background:var(--navy-950); color:#eee7d9; padding:46px 42px; display:flex; flex-direction:column;}
.feat-panel h3{color:#fbf8f2; font-size:26px; margin-bottom:8px; letter-spacing:0.02em;}
.feat-panel .feat-loc{color:var(--gold-300); font-size:13px; margin-bottom:28px; font-weight:400;}
.feat-facts{display:grid; grid-template-columns:1fr 1fr; gap:18px 16px; border-top:1px solid rgba(220,193,150,0.2); padding-top:24px;}
.feat-fact dt{font-family:var(--font-brand-kr); font-size:11px; color:#948b78; letter-spacing:0.06em; margin-bottom:5px;}
.feat-fact dd{font-family:var(--font-brand-kr); margin:0; font-size:14px; color:#f1ece2; font-weight:500;}
.feat-overview{margin-top:48px;}
.feat-facts-plain{display:grid; grid-template-columns:repeat(2,1fr); gap:0 60px; margin:26px 0 0;}
.feat-fact-plain{display:flex; justify-content:space-between; align-items:baseline; gap:24px; padding:17px 0; border-bottom:1px solid var(--line-soft);}
.feat-fact-plain dt{font-family:var(--font-brand-kr); font-size:13px; color:var(--ink-700); letter-spacing:0.01em; flex:none;}
.feat-fact-plain dd{font-family:var(--font-brand-kr); margin:0; font-size:14.5px; color:var(--ink-900); font-weight:500; text-align:right;}
@media (max-width:720px){ .feat-facts-plain{grid-template-columns:1fr;} }
@media (max-width:600px){ .addr-sub-desktop{display:none;} }
@media (max-width:600px){ .hq-word-desktop{display:none;} }
.brand-en{font-family:var(--font-brand);}

/* ---------- PORTFOLIO ---------- */
.portfolio{background:var(--cream-100);}
.port-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px 24px; margin-top:40px;}
@media (max-width:980px){ .port-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){
  .port-grid{grid-template-columns:repeat(2,1fr); gap:16px 12px;}
  .port-grid .port-name{font-size:12.5px;}
  .port-grid .port-loc{font-size:10.5px;}
  .port-grid .port-year{font-size:10px;}
  .port-role{font-size:9px;}
  .port-grid .port-overlay{padding:14px 14px 16px;}
  .port-grid .port-card{cursor:pointer; transition:box-shadow .25s ease, border-color .25s ease;}
  .port-grid .port-card.is-open{border-color:var(--gold-500); box-shadow:0 6px 20px rgba(169,140,84,0.12);}
  .port-grid .port-detail{
    font-size:10px; line-height:1.7; letter-spacing:-0.003em;
    display:grid; grid-template-rows:0fr; opacity:0; margin-top:0; padding-top:0; border-top-color:transparent;
    transition:grid-template-rows .32s ease, opacity .28s ease .02s, margin-top .32s ease, padding-top .32s ease, border-color .32s ease;
  }
  .port-grid .port-detail-inner{overflow:hidden; min-height:0;}
  .port-grid .port-card.is-open .port-detail{
    grid-template-rows:1fr; opacity:1; margin-top:10px; padding-top:10px; border-top-color:var(--line-soft);
  }
  .port-toggle{
    display:inline-flex; align-items:center; justify-content:center;
    width:16px; height:16px; margin-top:8px; position:relative;
  }
  .port-toggle::before, .port-toggle::after{
    content:''; position:absolute; background:var(--gold-500); top:50%; left:50%;
  }
  .port-toggle::before{width:9px; height:1px; transform:translate(-50%,-50%);}
  .port-toggle::after{width:1px; height:9px; transform:translate(-50%,-50%); transition:transform .3s ease, opacity .3s ease;}
  .port-card.is-open .port-toggle::after{transform:translate(-50%,-50%) rotate(90deg); opacity:0;}
}
@media (min-width:561px){ .port-toggle{display:none;} }
.port-grid .port-card{aspect-ratio:auto; display:flex; flex-direction:column; background:var(--cream-50); border:1px solid var(--line-soft);}
.port-grid .port-card img{aspect-ratio:4/3; height:auto; opacity:1;}
.port-grid .port-card:hover img{transform:none;}
.port-grid .port-overlay{position:static; background:none; flex:1; padding:20px 22px 24px; justify-content:flex-start;}
.port-grid .port-year{color:var(--gold-500);}
.port-grid .port-name{color:var(--ink-900); font-size:15px;}
.port-grid .port-loc{color:var(--ink-700); font-size:12.5px; line-height:1.7; margin-top:7px;}
.port-grid .port-detail{color:var(--ink-700); border-top:1px solid var(--line-soft); font-size:12px; line-height:1.85; margin-top:14px; padding-top:14px; letter-spacing:-0.003em;}

/* ---------- HOME PORTFOLIO: AUTO-SLIDING CAROUSEL ---------- */
.port-carousel{
  position:relative; overflow:hidden; margin-top:40px;
}
.port-track{
  display:flex; gap:3px; width:max-content;
  animation:portScroll 48s linear infinite;
}
.port-carousel:hover .port-track{animation-play-state:paused;}
.port-track .port-card{width:220px; flex:none;}
@keyframes portScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .port-track{animation:none;}
}
.port-card{position:relative; aspect-ratio:3/4; overflow:hidden; background:#000;}
.port-card img{width:100%; height:100%; object-fit:cover; opacity:0.88; transition:transform .5s ease, opacity .3s ease;}
.port-card:hover img{transform:scale(1.06); opacity:1;}
.port-overlay{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:flex-end; padding:18px;
  background:linear-gradient(180deg, transparent 40%, rgba(10,11,15,0.9) 100%);
}
.port-year{color:var(--gold-300); font-size:11.5px; font-weight:600; letter-spacing:0.05em; font-family:var(--font-brand); display:flex; align-items:center; justify-content:space-between; gap:10px;}
.port-role{font-family:var(--font-brand-kr); font-size:10.5px; font-weight:500; letter-spacing:0.01em; text-transform:none;}
.port-name{color:#fbf8f2; font-size:14px; font-weight:600; margin-top:7px; line-height:1.4; font-family:var(--font-brand-kr); word-break:keep-all;}
.port-loc{font-family:var(--font-brand-kr); color:#c9c1b1; font-size:11px; margin-top:5px; font-weight:400; line-height:1.5;}
.port-detail{font-family:var(--font-brand-kr); color:#a79d8c; font-size:10.5px; margin-top:9px; padding-top:9px; border-top:1px solid rgba(255,255,255,0.14); line-height:1.65; font-weight:400;}

/* ---------- INSIGHT ---------- */
.insight{background:var(--navy-950); color:#eee7d9;}
.insight-grid{display:grid; grid-template-columns:0.95fr 1.05fr; gap:70px; align-items:center;}
@media (max-width:880px){ .insight-grid{grid-template-columns:1fr;} }
.insight h2{color:#fbf8f2;}
.insight-blurb{font-family:var(--font-brand-kr); margin-top:22px; font-size:14.5px; line-height:1.9; color:#c9c1b1; font-weight:400;}
.bars{margin-top:40px; display:flex; flex-direction:column; gap:22px;}
.bar-row{display:grid; grid-template-columns:120px 1fr 54px; align-items:center; gap:14px;}
.bar-row span:first-child{font-size:12.5px; color:#b9b2a4;}
.bar-track{height:7px; background:rgba(255,255,255,0.08); border-radius:4px; overflow:hidden;}
.bar-fill{height:100%; background:linear-gradient(90deg, var(--gold-500), var(--gold-300)); border-radius:4px;}
.bar-row span:last-child{font-size:12.5px; color:var(--gold-300); text-align:right; font-weight:600;}
.insight-cards{display:flex; flex-direction:column; gap:1px; background:rgba(255,255,255,0.08);}
.insight-card{background:var(--navy-900); padding:30px 32px;}
.insight-card h4{color:#fbf8f2; font-size:16px; margin-bottom:10px; font-family:'Noto Serif KR',serif;}
.insight-card p{font-family:var(--font-brand-kr); font-size:13.5px; color:#b9b2a4; line-height:1.75; font-weight:400;}

/* ---------- PARTNERS ---------- */
.partners{background:var(--cream-50);}
.partner-grid{margin-top:40px; display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line-soft); border-left:1px solid var(--line-soft);}
@media (max-width:880px){ .partner-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .partner-grid{grid-template-columns:repeat(2,1fr);} }
.partner-grid--preview{grid-template-columns:repeat(4,1fr);}
@media (max-width:880px){ .partner-grid--preview{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .partner-grid--preview{grid-template-columns:repeat(2,1fr);} }
.partner-cell{border-right:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); padding:28px 26px;}
.partner-cat{font-size:11.5px; color:var(--gold-500); letter-spacing:0.1em; margin-bottom:14px; font-weight:600;}
.partner-names{font-size:14px; color:var(--ink-900); line-height:2.1; font-weight:400;}

/* ---------- CONTACT ---------- */
.contact{background:var(--navy-950); color:#eee7d9;}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
@media (max-width:880px){ .contact-grid{grid-template-columns:1fr; gap:44px;} }
.contact h2{color:#fbf8f2;}
.contact-addr{font-family:var(--font-brand-kr); margin-top:26px; font-size:15px; line-height:1.9; color:#d9d2c4; font-weight:400;}
.contact-line{display:flex; gap:14px; padding:16px 0; border-bottom:1px solid rgba(255,255,255,0.08);}
.contact-line:first-child{border-top:1px solid rgba(255,255,255,0.08);}
.contact-line .k{width:88px; flex-shrink:0; color:#9a927f; font-size:12.5px; letter-spacing:0.04em; padding-top:2px;}
.contact-line .v{font-size:14.5px; color:#f1ece2; font-weight:400;}
.contact-line .v a:hover{color:var(--gold-300);}
.channel-title{font-size:12.5px; color:#9a927f; letter-spacing:0.08em; margin:34px 0 14px;}
.contact-map{border:1px solid rgba(220,193,150,0.25); padding:36px; position:relative; min-height:280px; display:flex; flex-direction:column; justify-content:space-between;}
.contact-map .pin{width:44px; height:44px; border-radius:50% 50% 50% 0; background:var(--gold-300); transform:rotate(-45deg); display:flex; align-items:center; justify-content:center; margin-bottom:26px;}
.contact-map .pin::after{content:''; width:14px; height:14px; border-radius:50%; background:var(--navy-950); transform:rotate(45deg);}
.contact-map h4{font-family:'Noto Serif KR',serif; color:#fbf8f2; font-size:17px; margin-bottom:8px;}
.contact-map p{font-family:var(--font-brand-kr); font-size:14px; color:#c9c1b1; line-height:1.9; font-weight:400; letter-spacing:-0.005em;}
.contact-map .tag{margin-top:20px; font-size:11.5px; color:var(--gold-300); letter-spacing:0.1em;}

/* ---------- FOOTER (thin, single-bar) ---------- */
footer{background:#0c0e13; padding:30px 0; color:#8b8474; border-top:1px solid rgba(255,255,255,0.06);}
.footer-flat-top{
  display:flex; flex-direction:column; align-items:flex-start; gap:12px;
  margin-bottom:14px;
}
.footer-brand-name{font-family:var(--font-brand); font-size:13px; letter-spacing:0.1em; color:#d9d2c4; font-weight:600;}
.footer-nav-inline{display:flex; flex-wrap:wrap; gap:20px;}
.footer-nav-inline a{font-family:var(--font-brand-kr); font-size:12px; color:#8b8474; font-weight:400;}
.footer-nav-inline a:hover{color:var(--gold-300);}
.footer-meta{font-family:var(--font-brand-kr); font-size:11.5px; line-height:1.9; color:#716b5f; font-weight:400;}
.footer-meta a{color:#716b5f;}
.footer-meta a:hover{color:var(--gold-300);}
.footer-copy{font-family:var(--font-brand-kr); font-size:11px; color:#524d44; margin-top:10px;}

.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
  .port-card img{transition:none;}
}
