/* =========================================
   DELPAI · Dark Cinematic Landing
   ========================================= */

:root{
  --bg: #000000;
  --bg-1: #06070a;
  --bg-2: #0b0e14;
  --line: rgba(255,255,255,0.08);
  --line-2: rgba(255,255,255,0.14);
  --text: #f4f5f7;
  --muted: #6b6f7a;
  --muted-2: #9297a2;
  --accent: #5C7DFF;    /* brightened logo blue */
  --accent-2: #8AA1FF;
  --accent-glow: rgba(92,125,255,0.35);
  --accent-soft: rgba(92,125,255,0.10);
  --serif: 'Instrument Serif', 'Noto Serif KR', serif;
  --mono: 'JetBrains Mono', ui-monospace, monospace;
  --sans: 'Pretendard Variable', 'Space Grotesk', -apple-system, sans-serif;
  --pad: clamp(20px, 4vw, 80px);
}

*{box-sizing:border-box;margin:0;padding:0}
html, body{background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:400;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body{cursor:none}

@media (hover: none){ body{cursor:auto} .cursor-glow{display:none!important} }

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
em{font-style:italic;font-family:var(--serif);font-weight:400;color:var(--accent-2)}
b{font-weight:600;color:#fff}

.mono{font-family:var(--mono);font-weight:400;letter-spacing:0.02em;text-transform:uppercase;font-size:11px}
.muted{color:var(--muted)}

/* ---- Cursor Glow ---- */
.cursor-glow{
  position:fixed;top:0;left:0;width:640px;height:640px;pointer-events:none;z-index:9999;
  background:
    radial-gradient(circle,
      rgba(255,255,255,0.55) 0%,
      rgba(150,180,255,0.35) 8%,
      rgba(92,125,255,0.22) 22%,
      rgba(92,125,255,0.08) 45%,
      rgba(92,125,255,0) 65%);
  transform:translate(-50%,-50%);
  mix-blend-mode:screen;
  transition:opacity 0.3s;
  filter:blur(2px);
}
.cursor-glow::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  background:radial-gradient(circle,
    rgba(255,255,255,0.9) 0%,
    rgba(180,200,255,0.5) 3%,
    rgba(92,125,255,0.2) 10%,
    rgba(92,125,255,0) 22%);
  mix-blend-mode:screen;
}

/* ---- Live dot ---- */
.dot-live{
  display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 8px var(--accent);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:0.5;transform:scale(0.7)}
}

/* ===============================
   NAV
   =============================== */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;
  background:linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,1) 22%, rgba(0,0,0,0.6) 45%, rgba(0,0,0,0.25) 70%, rgba(0,0,0,0) 100%);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px var(--pad);gap:20px}
.nav-logo img{height:22px;filter:drop-shadow(0 0 12px rgba(92,125,255,0.3))}
.nav-links{display:flex;gap:28px;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted-2)}
.nav-links a{transition:color 0.3s;position:relative}
.nav-links a:hover{color:var(--text)}
.nav-links a:hover::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}
.nav-meta{display:flex;gap:14px;align-items:center;color:var(--muted-2)}
.lang-switch{
  background:transparent;border:1px solid rgba(255,255,255,0.14);
  color:var(--muted-2);
  padding:5px 10px;
  cursor:pointer;
  font-family:var(--mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;
  transition:border-color 0.25s, color 0.25s;
  display:inline-flex;align-items:center;gap:2px;
}
.lang-switch:hover{border-color:var(--accent);color:#fff}
.lang-switch:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(92,125,255,0.25)}
.lang-switch .lang-kr,
.lang-switch .lang-en{transition:color 0.25s}
.lang-switch .is-on{color:#fff}
.lang-switch .lang-sep{color:var(--muted);margin:0 2px}

@media (max-width:900px){
  .nav-links{display:none}
}

/* ===============================
   HERO
   =============================== */
.hero{
  position:relative;height:100vh;min-height:720px;overflow:hidden;
  background:#000;
}
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:brightness(1.05) contrast(1.05) saturate(1.05);
  animation:heroZoom 30s ease-in-out infinite alternate;
}
@keyframes heroZoom{
  from{transform:scale(1)}
  to{transform:scale(1.08)}
}
.hero-scrim{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 50% 45%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.15) 55%, rgba(0,0,0,0.75) 100%),
    linear-gradient(to bottom, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0) 35%, rgba(0,0,0,0.5) 75%, rgba(0,0,0,1) 100%);
}
.hero-grid{
  position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse at center, black 20%, transparent 75%);
}

/* Tape ticker across top */
.hero-tape{
  position:absolute;top:64px;left:0;right:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:8px 0;overflow:hidden;
  background:rgba(0,0,0,0.35);backdrop-filter:blur(8px);
}
.tape-track{display:flex;gap:0;white-space:nowrap;font-family:var(--mono);font-size:11px;letter-spacing:0.15em;color:var(--muted-2);animation:tape 40s linear infinite}
.tape-track span{padding-right:40px}
@keyframes tape{to{transform:translateX(-50%)}}

.hero-content{
  position:absolute;left:var(--pad);right:var(--pad);bottom:10vh;
  display:flex;flex-direction:column;gap:32px;
  max-width:1400px;
  text-shadow:0 2px 30px rgba(0,0,0,0.6);
}
.hero-tag{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 14px;border:1px solid var(--line-2);border-radius:100px;
  align-self:flex-start;
  background:rgba(0,0,0,0.4);backdrop-filter:blur(10px);
}
.hero-title{
  font-family:var(--sans);font-weight:300;
  font-size:clamp(48px, 8.5vw, 152px);
  line-height:0.92;letter-spacing:-0.03em;
  color:#fff;
}
.hero-title .line{display:block;overflow:hidden}
.hero-title .line span{display:inline-block}
.line-1{opacity:0;transform:translateY(100%);animation:heroLineIn 1.2s cubic-bezier(0.22,1,0.36,1) 0.3s forwards}
.line-2{opacity:0;transform:translateY(100%);animation:heroLineIn 1.2s cubic-bezier(0.22,1,0.36,1) 0.5s forwards}
@keyframes heroLineIn{to{opacity:1;transform:translateY(0)}}

.hero-sub-en{
  font-family:var(--mono);text-transform:uppercase;font-size:13px;letter-spacing:0.1em;color:var(--muted-2);
  opacity:0;animation:fadeIn 1s ease 1.1s forwards;
}
@keyframes fadeIn{to{opacity:1}}

.hero-meta{
  display:flex;gap:48px;margin-top:24px;
  opacity:0;animation:fadeIn 1s ease 1.4s forwards;
}
.hero-meta-item{display:flex;flex-direction:column;gap:6px;padding-left:16px;border-left:1px solid var(--line-2)}
.hero-meta-label{font-size:15px;color:#fff;font-weight:500}

@media (max-width:700px){
  .hero-meta{gap:20px;flex-wrap:wrap}
  .hero-meta-item{flex:1 1 40%}
}

.hero-scroll{
  position:absolute;right:var(--pad);bottom:32px;
  display:flex;align-items:center;gap:14px;color:var(--muted-2);
}
.scroll-line{display:inline-block;width:60px;height:1px;background:linear-gradient(to right, transparent, var(--accent));position:relative;overflow:hidden}
.scroll-line::after{content:'';position:absolute;inset:0;background:var(--accent);animation:scrollLine 2s ease-in-out infinite;box-shadow:0 0 6px var(--accent-glow)}
@keyframes scrollLine{
  0%{transform:translateX(-100%)}
  100%{transform:translateX(100%)}
}

/* HUD corner markers */
.hud{position:absolute;color:var(--muted-2);font-size:10px;letter-spacing:0.1em}
.hud-tl{top:96px;left:var(--pad)}
.hud-tr{top:96px;right:var(--pad);text-align:right}
.hud-bl{bottom:32px;left:var(--pad)}
.hud-br{bottom:32px;right:var(--pad);text-align:right;display:none}
.hud div:first-child{color:#fff}
.hud-tr div:first-child{color:#ff4444;animation:pulse 1.5s ease infinite}
@media (max-width:900px){ .hud-tl,.hud-tr,.hud-bl,.hud-br{display:none} }

/* ===============================
   Shared Section Head
   =============================== */
section{position:relative;padding:120px var(--pad)}
.section-head{max-width:1400px;margin:0 auto 80px;position:relative;z-index:2}
.section-head-left{display:flex;gap:16px;align-items:center;margin-bottom:20px}
.section-num{color:var(--accent)}
.section-title{
  font-family:var(--sans);font-weight:300;
  font-size:clamp(38px,5.5vw,88px);line-height:1;letter-spacing:-0.02em;
  max-width:1100px;
  color:#ffffff;
  opacity:1 !important;
  text-shadow:0 2px 30px rgba(0,0,0,0.85), 0 0 12px rgba(0,0,0,0.7);
}
.section-lead{
  margin-top:24px;max-width:640px;font-size:17px;line-height:1.6;color:#e6e9ef;
  opacity:1 !important;
  text-shadow:0 1px 20px rgba(0,0,0,0.85), 0 0 8px rgba(0,0,0,0.7);
}

/* ===============================
   INTRO manifesto
   =============================== */
.intro{padding:180px var(--pad);background:linear-gradient(to bottom, #000 0%, #04050a 100%)}
.intro-inner{max-width:1200px;margin:0 auto}
.intro-label{display:flex;align-items:center;gap:12px;color:var(--accent);margin-bottom:48px}
.dash{display:inline-block;width:40px;height:1px;background:var(--accent)}
.intro-text{
  font-family:var(--sans);font-weight:300;
  font-size:clamp(28px,3.8vw,52px);line-height:1.25;letter-spacing:-0.02em;
  color:#e8eaef;margin-bottom:48px;
}
.intro-text-2{color:#bfc5d0}
.hl{color:#fff;position:relative;background:linear-gradient(180deg, transparent 70%, rgba(92,125,255,0.25) 70%);padding:0 4px}
.hl-2{color:#fff;border-bottom:1px solid var(--accent);padding-bottom:2px}

/* ===============================
   PHILOSOPHY / DLP
   =============================== */
.philosophy{overflow:hidden}
.dlp-bg{position:absolute;inset:0;z-index:0}
.dlp-bg img{width:100%;height:100%;object-fit:cover;opacity:0.35;filter:blur(2px)}
.dlp-bg-scrim{position:absolute;inset:0;background:linear-gradient(to bottom, #000 0%, rgba(0,0,0,0.6) 30%, rgba(0,0,0,0.6) 70%, #000 100%)}

.dlp-grid{position:relative;z-index:1;max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.dlp-card{
  padding:36px 32px;border:1px solid var(--line);border-radius:12px;
  background:rgba(6,8,14,0.7);backdrop-filter:blur(24px);
  transition:all 0.4s cubic-bezier(0.22,1,0.36,1);
  position:relative;overflow:hidden;
}
.dlp-card::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 50% 0%, var(--accent-soft) 0%, transparent 60%);
  opacity:0;transition:opacity 0.4s;
}
.dlp-card:hover{border-color:var(--accent);transform:translateY(-4px)}
.dlp-card:hover::before{opacity:1}
.dlp-card:hover .dlp-svg circle.dot-primary{fill:var(--accent);animation:dotSpin 3s linear infinite}

.dlp-visual{height:180px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;position:relative}
.dlp-svg{width:180px;height:180px}
.dlp-svg circle{fill:#fff;transition:all 0.4s}
.dlp-svg circle.dot-primary{fill:var(--accent);r:5;filter:drop-shadow(0 0 6px var(--accent))}
.dlp-svg line, .dlp-svg path{stroke:var(--accent-2);stroke-width:0.5;fill:none;opacity:0.6}
.plane-fill{fill:rgba(92,125,255,0.08)!important;stroke:var(--accent)!important;stroke-width:0.6!important;opacity:1!important}

/* stage-specific animations */
[data-stage="dot"] .dots-scatter circle{animation:dotFloat 4s ease-in-out infinite}
[data-stage="dot"] .dots-scatter circle:nth-child(2){animation-delay:0.3s}
[data-stage="dot"] .dots-scatter circle:nth-child(3){animation-delay:0.6s}
[data-stage="dot"] .dots-scatter circle:nth-child(4){animation-delay:0.9s}
[data-stage="dot"] .dots-scatter circle:nth-child(5){animation-delay:1.2s}
[data-stage="dot"] .dots-scatter circle:nth-child(6){animation-delay:1.5s}
[data-stage="dot"] .dots-scatter circle:nth-child(7){animation-delay:1.8s}
[data-stage="dot"] .dots-scatter circle:nth-child(8){animation-delay:2.1s}
[data-stage="dot"] .dots-scatter circle:nth-child(9){animation-delay:2.4s}
@keyframes dotFloat{
  0%,100%{opacity:0.4;transform:translate(0,0)}
  50%{opacity:1;transform:translate(2px,-2px)}
}

[data-stage="line"] .dots-connected line{stroke-dasharray:200;stroke-dashoffset:200;animation:drawLine 3s ease-in-out infinite}
[data-stage="line"] .dots-connected line:nth-child(1){animation-delay:0s}
[data-stage="line"] .dots-connected line:nth-child(2){animation-delay:0.3s}
[data-stage="line"] .dots-connected line:nth-child(3){animation-delay:0.6s}
[data-stage="line"] .dots-connected line:nth-child(4){animation-delay:0.9s}
[data-stage="line"] .dots-connected line:nth-child(5){animation-delay:1.2s}
[data-stage="line"] .dots-connected line:nth-child(6){animation-delay:1.5s}
@keyframes drawLine{
  0%{stroke-dashoffset:200;opacity:0.9}
  50%{stroke-dashoffset:0;opacity:0.9}
  100%{stroke-dashoffset:-200;opacity:0.3}
}

[data-stage="plane"] .plane-mesh{animation:planeRotate 8s ease-in-out infinite}
@keyframes planeRotate{
  0%,100%{transform:perspective(400px) rotateX(0deg)}
  50%{transform:perspective(400px) rotateX(-10deg)}
}

@keyframes dotSpin{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}

.dlp-meta{display:flex;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:16px}
.dlp-title{font-family:var(--serif);font-size:36px;font-weight:400;color:#fff;margin-bottom:12px;letter-spacing:-0.01em}
.dlp-body{font-size:15px;color:var(--muted-2);line-height:1.6}

@media (max-width:900px){ .dlp-grid{grid-template-columns:1fr} }

/* ===============================
   PROBLEM / STATS
   =============================== */
.problem{background:linear-gradient(to bottom, #000 0%, #050710 50%, #000 100%)}
.stats-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.stat{
  border:1px solid var(--line);padding:32px;position:relative;overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,0.02) 0%, rgba(255,255,255,0) 100%);
  transition:border-color 0.4s;
}
.stat::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform 0.6s;
}
.stat.in-view::before{transform:scaleX(1)}
.stat:hover{border-color:var(--line-2)}
.stat-head{display:flex;justify-content:space-between;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.stat-idx{color:var(--muted)}
.stat-number{
  font-family:var(--sans);font-weight:200;
  font-size:clamp(80px,10vw,140px);line-height:0.9;color:#fff;letter-spacing:-0.04em;
  display:flex;align-items:baseline;gap:4px;
}
.stat-unit{font-size:0.5em;color:var(--accent);font-weight:300}
.stat-title{font-family:var(--sans);font-weight:500;font-size:20px;color:#fff;margin:24px 0 12px}
.stat-body{font-size:14px;color:var(--muted-2);line-height:1.65}
.stat-bar{margin-top:24px;height:2px;background:var(--line);position:relative;overflow:hidden}
.stat-bar span{position:absolute;inset:0;background:linear-gradient(to right, var(--accent), var(--accent-2));width:0;transition:width 1.6s cubic-bezier(0.22,1,0.36,1)}
.stat.in-view .stat-bar span{width:var(--fill,0%)}

.problem-quote{
  max-width:1400px;margin:80px auto 0;padding:48px 0;
  border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:16px;
}
.problem-quote p{
  font-family:var(--sans);font-weight:300;
  font-size:clamp(28px,4vw,52px);line-height:1.2;letter-spacing:-0.02em;color:#fff;
}

@media (max-width:900px){ .stats-grid{grid-template-columns:1fr} }

/* ===============================
   SERVICES / 3 BUSINESS LINES
   =============================== */
.services{background:#000}
.biz-list{max-width:1400px;margin:0 auto;border-top:1px solid var(--line-2)}
.biz-row{
  display:grid;grid-template-columns:180px 1fr;gap:32px;align-items:center;
  padding:44px 0;border-bottom:1px solid var(--line-2);
  transition:padding 0.4s;position:relative;overflow:hidden;
}
.biz-row::before{
  content:'';position:absolute;inset:0;background:linear-gradient(90deg, transparent 0%, var(--accent-soft) 100%);
  opacity:0;transition:opacity 0.4s;pointer-events:none;
}
.biz-row:hover{padding-left:24px;padding-right:24px}
.biz-row:hover::before{opacity:1}
.biz-row:hover .biz-arrow{transform:translateX(8px);color:var(--accent)}
.biz-index{color:var(--accent);font-size:14px}
.biz-title{font-family:var(--sans);font-weight:400;font-size:32px;letter-spacing:-0.02em;color:#fff;margin-bottom:8px}
.biz-desc{font-size:15px;color:var(--muted-2);max-width:520px}
.biz-metrics{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#fff;text-align:right}
.biz-arrow{font-size:28px;color:var(--muted-2);transition:all 0.4s;text-align:right}

@media (max-width:900px){
  .biz-row{grid-template-columns:1fr;gap:12px;padding:32px 0}
  .biz-metrics{align-items:flex-start;text-align:left;flex-direction:row;gap:24px}
  .biz-arrow{display:none}
}

/* ===============================
   VERTICALS
   =============================== */
.verticals{background:linear-gradient(to bottom, #000, #04050a)}
.verticals-head::after{
  content:'';display:block;margin-top:40px;height:1px;
  background:linear-gradient(to right, var(--accent) 0%, transparent 100%);
}
.vert-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.vert-card{
  border:1px solid var(--line);overflow:hidden;
  background:#06070a;
  transition:all 0.5s cubic-bezier(0.22,1,0.36,1);
  position:relative;
}
.vert-card:hover{border-color:var(--accent);transform:translateY(-6px)}
.vert-card:hover .vert-media img{transform:scale(1.06)}
.vert-card:hover .vert-corner{color:var(--accent);border-color:var(--accent)}
.vert-media{position:relative;aspect-ratio:4/3;overflow:hidden}
.vert-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.vert-media-scrim{position:absolute;inset:0;background:linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.85) 100%)}
.vert-corner{
  position:absolute;top:16px;left:16px;
  padding:6px 10px;border:1px solid var(--line-2);
  background:rgba(0,0,0,0.5);backdrop-filter:blur(8px);
  color:#fff;transition:all 0.4s;
}
.vert-info{padding:32px}
.vert-info-head{display:flex;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:20px}
.vert-title{font-family:var(--sans);font-weight:500;font-size:32px;color:#fff;letter-spacing:-0.02em;margin-bottom:4px}
.vert-en{color:var(--accent-2);margin-bottom:20px;font-size:12px}
.vert-list{list-style:none;display:flex;flex-direction:column;gap:10px}
.vert-list li{
  font-size:14px;color:var(--muted-2);padding-left:18px;position:relative;
}
.vert-list li::before{
  content:'';position:absolute;left:0;top:0.65em;width:8px;height:1px;background:var(--accent);
}

@media (max-width:900px){ .vert-grid{grid-template-columns:1fr} }

/* ===============================
   PROCESS
   =============================== */
.process{background:#000}
.proc-track{
  max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;
  position:relative;
}
.proc-line{position:absolute;top:28px;left:0;right:0;height:1px;background:var(--line);z-index:0}
.proc-line::before{
  content:'';position:absolute;inset:0;background:linear-gradient(to right, var(--accent) 0%, var(--accent) 100%);
  width:0;animation:procLine 3s ease-out forwards;animation-play-state:paused;
  box-shadow:0 0 8px var(--accent-glow);
}
.process.in-view .proc-line::before{animation-play-state:running}
@keyframes procLine{to{width:100%}}

.proc-step{position:relative;z-index:1;padding-top:70px}
.proc-marker{
  position:absolute;top:16px;left:0;width:24px;height:24px;
  border:1px solid var(--accent);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:#000;
}
.proc-marker-inner{width:8px;height:8px;background:var(--accent);border-radius:50%;box-shadow:0 0 8px var(--accent)}
.proc-index{color:var(--accent);margin-bottom:12px;font-size:14px}
.proc-title{font-family:var(--sans);font-weight:500;font-size:22px;color:#fff;margin-bottom:12px;letter-spacing:-0.01em}
.proc-body{font-size:14px;color:var(--muted-2);line-height:1.6;margin-bottom:16px}
.proc-meta{display:flex;flex-direction:column;gap:4px;color:var(--muted)}

@media (max-width:900px){
  .proc-track{grid-template-columns:1fr;gap:48px}
  .proc-line{width:1px;height:100%;left:11px;top:0;right:auto}
  .proc-line::before{background:linear-gradient(to bottom, var(--accent) 0%, var(--accent) 100%);width:100%;height:0}
  .process.in-view .proc-line::before{animation:procLineV 3s ease-out forwards}
  @keyframes procLineV{to{height:100%}}
  .proc-step{padding-top:0;padding-left:52px}
  .proc-marker{top:0;left:0}
}

/* ===============================
   SCALE
   =============================== */
.scale{background:#000;overflow:hidden}
.scale-visual{
  max-width:1400px;margin:0 auto 60px;position:relative;aspect-ratio:21/9;overflow:hidden;
  border:1px solid var(--line);
}
.scale-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 0.6s ease;pointer-events:none}
.scale-media.is-active{opacity:1}
.scale-media-poster{image-rendering:-webkit-optimize-contrast;filter:contrast(1.05) saturate(1.08)}
.scale-media-poster.is-active{animation:heroZoom 20s ease-in-out infinite alternate}
.scale-scrim{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.5) 100%);pointer-events:none}

.scale-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.scale-card{
  padding:36px 32px;border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,0.02) 0%, transparent 100%);
  transition:all 0.4s;cursor:pointer;
}
.scale-card:hover,
.scale-card:focus-visible{border-color:var(--accent);background:linear-gradient(180deg, var(--accent-soft) 0%, transparent 100%);outline:none}
.scale-card.is-active{border-color:var(--accent);background:linear-gradient(180deg, var(--accent-soft) 0%, transparent 100%);box-shadow:0 0 0 1px var(--accent), 0 0 30px rgba(92,125,255,0.15)}
.scale-card.is-active .scale-card-num{color:var(--accent-2)}
.scale-card-num{color:var(--accent);margin-bottom:24px}
.scale-card-title{font-family:var(--sans);font-weight:500;font-size:28px;color:#fff;letter-spacing:-0.02em;margin-bottom:4px}
.scale-card-en{color:var(--muted);margin-bottom:16px}
.scale-card-body{font-size:14px;color:var(--muted-2);line-height:1.6}

@media (max-width:900px){ .scale-grid{grid-template-columns:1fr} }

/* ===============================
   EDUCATION
   =============================== */
.education{
  padding:0;min-height:80vh;display:grid;grid-template-columns:1fr 1fr;
  background:#000;
}
.edu-media{position:relative;height:100%;min-height:600px;overflow:hidden}
.edu-media img{width:100%;height:100%;object-fit:cover}
.edu-scrim{position:absolute;inset:0;background:linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 60%, #000 100%)}
.edu-content{padding:120px 80px;display:flex;flex-direction:column;justify-content:center;gap:24px}
.edu-title{
  font-family:var(--sans);font-weight:300;
  font-size:clamp(38px,4.5vw,72px);line-height:1;letter-spacing:-0.02em;color:#fff;
}
.edu-body{font-size:17px;line-height:1.6;color:var(--muted-2);max-width:520px}
.edu-tags{display:grid;grid-template-columns:repeat(2,auto);gap:12px;margin-top:16px;justify-content:start}
.edu-tag{
  padding:10px 16px;border:1px solid var(--line-2);border-radius:100px;
  display:flex;gap:8px;align-items:center;color:#fff;font-size:12px;
  background:rgba(255,255,255,0.02);
}

@media (max-width:900px){
  .education{grid-template-columns:1fr}
  .edu-content{padding:80px var(--pad)}
  .edu-tags{grid-template-columns:1fr 1fr}
}

/* ===============================
   PARTNERS
   =============================== */
.partners{background:linear-gradient(to bottom, #000, #04050a)}
.part-grid{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.part-card{
  padding:28px;border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(255,255,255,0.02) 0%, transparent 100%);
  transition:all 0.4s;position:relative;overflow:hidden;
}
.part-card:hover{border-color:var(--accent);transform:translateY(-4px)}
.part-card:hover .part-badge{background:var(--accent);color:#000}
.part-card-wide{grid-column:span 4;padding:36px}
.part-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.part-badge{
  width:44px;height:44px;border:1px solid var(--accent);color:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:14px;font-weight:500;
  transition:all 0.4s;
}
.part-meta{display:flex;flex-direction:column;gap:4px;text-align:right}
.part-name{font-family:var(--sans);font-weight:500;font-size:22px;color:#fff;margin-bottom:8px;letter-spacing:-0.01em}
.part-role{margin-bottom:12px;font-size:11px}
.part-body{font-size:14px;color:var(--muted-2);line-height:1.5}

@media (max-width:1100px){ .part-grid{grid-template-columns:repeat(2,1fr)} .part-card-wide{grid-column:span 2} }
@media (max-width:600px){ .part-grid{grid-template-columns:1fr} .part-card-wide{grid-column:span 1} }

/* ===============================
   CLOSING
   =============================== */
.closing{background:#000;padding:200px var(--pad) 0;overflow:hidden}
.closing-inner{max-width:1400px;margin:0 auto;text-align:center}
.closing-tag{color:var(--accent);margin-bottom:32px}
.closing-title{
  font-family:var(--sans);font-weight:200;
  font-size:clamp(56px,10vw,180px);line-height:0.92;letter-spacing:-0.03em;color:#fff;
  margin-bottom:32px;
}
.closing-sub{font-size:17px;color:var(--muted-2);margin-bottom:120px}

/* --- Closing quote block (left copy, right video) --- */
.closing-quote-block{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:64px;
  align-items:stretch;
  text-align:left;
  margin-bottom:120px;
}
.closing-quote-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:24px 0;
  position:relative;
}
.closing-quote-mark{
  font-family:var(--sans);
  font-weight:200;
  font-size:clamp(120px,16vw,240px);
  line-height:0.7;
  color:var(--accent);
  opacity:0.5;
  margin-bottom:8px;
  letter-spacing:-0.05em;
}
.closing-quote{
  font-family:var(--sans);
  font-weight:200;
  font-size:clamp(36px,4.6vw,72px);
  line-height:1.08;
  letter-spacing:-0.025em;
  color:#fff;
  margin:0 0 48px;
  text-wrap:pretty;
  max-width:22ch;
}
.closing-quote-attr{
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}
.closing-quote-line{
  display:inline-block;
  width:48px;
  height:1px;
  background:var(--line);
}
.closing-quote-name{
  font-family:var(--sans);
  font-weight:400;
  font-size:18px;
  color:#fff;
  letter-spacing:-0.005em;
}
.closing-quote-role{
  font-size:12px;
  color:var(--muted-2);
  letter-spacing:0.08em;
}
.closing-quote-media{
  position:relative;
  aspect-ratio:1280/764;
  width:100%;
  overflow:hidden;
  background:#000;
  align-self:center;
}
.closing-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#000;
}
.closing-video-scrim{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 70%, rgba(0,0,0,0.35) 100%);
  pointer-events:none;
}
.closing-video-corner{
  position:absolute;
  left:16px;
  bottom:14px;
  font-size:11px;
  letter-spacing:0.14em;
  color:#fff;
  opacity:0.72;
  z-index:2;
}
@media (max-width:900px){
  .closing-quote-block{
    grid-template-columns:1fr;
    gap:40px;
    margin-bottom:80px;
  }
  .closing-quote-media{
    min-height:0;
  }
  .closing-quote{max-width:none;}
}

.closing-marquee{margin:0 calc(-1 * var(--pad));border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;padding:32px 0}
.marquee-track{display:flex;white-space:nowrap;font-family:var(--sans);font-weight:200;font-size:clamp(48px,7vw,120px);color:#fff;animation:tape 30s linear infinite;letter-spacing:-0.02em}
.marquee-track span{padding-right:80px}

/* ===============================
   FOOTER
   =============================== */
.foot{background:#000;padding:80px var(--pad) 48px;border-top:1px solid var(--line)}
.foot-inner{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:1fr 3fr;gap:80px;align-items:start}
.foot-logo img{height:28px}
.foot-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.foot-col{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted-2)}
.foot-col > div:first-child{margin-bottom:8px}
.foot-col > div:not(:first-child){color:#fff}
.foot-col a{color:inherit;text-decoration:none;transition:opacity .2s}
.foot-col a:hover{opacity:.65}

@media (max-width:900px){
  .foot-inner{grid-template-columns:1fr;gap:48px}
  .foot-cols{grid-template-columns:repeat(2,1fr)}
}

/* ===============================
   Reveal animations (in-view)
   =============================== */
.reveal{opacity:0;transform:translateY(40px);transition:all 1s cubic-bezier(0.22,1,0.36,1)}
.reveal.in-view{opacity:1;transform:translateY(0)}



/* ── added by build-t4.js ──────────────────────────────────────────────────
   At 320px in English the education section pushed 24px past the viewport,
   dragging its photograph out with it. Measured cause: .edu-tags is a two
   column grid below 900px, and a 1fr track cannot shrink under its item's
   min-content. The two widest pills — "FOCUS Creation + Operations" at 154px
   and "CURR. Silicon Valley partners" at 139px, plus the 12px gap — need
   305px, against 280px of content box at that width. Korean never hit it
   because its tag copy is short.

   One column below 400px, matching the collapse breakpoint tracks 1 and 3
   already use. Widest single pill is 154px, so it clears 280px comfortably.  */
@media (max-width:400px){
  .edu-tags{grid-template-columns:1fr}
}
