/* ============================================================
   ASTRAL SYNC · final site ("Constellation")
   pure black · mono system · hairlines · gold/violet/green
   ============================================================ */
body{background:#000;font-family:var(--mono);color:#f2f2f2}

/* ---------- header ---------- */
.b-head{
  position:fixed;inset:0 0 auto 0;z-index:900;height:68px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:0 clamp(16px,2.6vw,40px);
  border-bottom:1px solid rgba(255,255,255,.08);
  background:linear-gradient(to bottom,rgba(0,0,0,.78),transparent);
}
.b-brand{display:flex;align-items:baseline;gap:14px;flex-shrink:0}
.b-brand b{font-family:var(--sans);font-weight:600;letter-spacing:.4em;font-size:13px}
.b-brand span{font-size:10px;letter-spacing:.3em;color:rgba(255,255,255,.45);text-transform:uppercase}
.b-nav{display:flex;gap:clamp(12px,1.6vw,24px)}
.b-nav button,.b-nav a{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.5);transition:color .3s;padding:6px 0;white-space:nowrap;
}
.b-nav button:hover,.b-nav a:hover{color:#e8c766}
.b-right{display:flex;align-items:center;gap:12px;flex-shrink:0}
.lang{display:flex;border:1px solid rgba(255,255,255,.14)}
.lang button{font-family:var(--mono);font-size:9px;letter-spacing:.1em;padding:6px 9px;color:rgba(255,255,255,.5);transition:.3s}
.lang button.is-on{background:#f2f2f2;color:#000}
.b-read{
  display:inline-flex;align-items:center;gap:8px;
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#f2f2f2;
  padding:9px 14px;border:1px solid rgba(255,255,255,.16);transition:border-color .3s;white-space:nowrap;
}
.b-read:hover{border-color:#3ddc84}
.b-pre{
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;
  background:#c9a227;color:#000;padding:10px 18px;transition:background .3s;
}
.b-pre:hover{background:#e8c766}

/* ---------- star map ---------- */
.map{position:relative;height:100svh;overflow:hidden}
.map::before{
  content:"";position:absolute;inset:-25%;pointer-events:none;
  background:
    radial-gradient(36% 28% at 76% 16%,rgba(109,74,200,.08),transparent 70%),
    radial-gradient(30% 24% at 20% 30%,rgba(61,220,132,.04),transparent 70%),
    radial-gradient(44% 36% at 24% 88%,rgba(201,162,39,.06),transparent 70%);
  animation:nebula-drift 80s ease-in-out infinite alternate;
}
@keyframes nebula-drift{to{transform:translate3d(-3%,2.5%,0) scale(1.07)}}
@media (prefers-reduced-motion: reduce){.map::before{animation:none}}
#map-canvas{position:absolute;inset:0;width:100%;height:100%}
.map-title{
  position:absolute;top:clamp(84px,12vh,120px);left:clamp(16px,2.6vw,40px);z-index:5;max-width:520px;
  pointer-events:none;
}
.map-title .mt-kicker{color:#c9a227;font-size:10px;letter-spacing:.34em;text-transform:uppercase;display:block;margin-bottom:16px}
.map-title h1{font-family:var(--serif);font-weight:500;font-size:clamp(44px,6vw,92px);line-height:1;color:#f2f2f2}
.map-title h1 em{color:#c9a227}
.map-title p{margin-top:16px;font-size:11px;letter-spacing:.18em;line-height:2;color:rgba(255,255,255,.5);text-transform:uppercase}
.map-hint{
  position:absolute;bottom:88px;left:50%;transform:translateX(-50%);z-index:5;
  font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.4);
  display:flex;align-items:center;gap:12px;
}
.map-hint i{display:block;width:34px;height:1px;background:rgba(201,162,39,.6)}

.node-label{position:absolute;z-index:6;transform:translate(-50%,0);text-align:center;cursor:pointer;user-select:none}
.node-label .nl-name{
  display:block;font-size:clamp(10px,1vw,13px);letter-spacing:.3em;text-transform:uppercase;
  color:rgba(255,255,255,.75);transition:color .3s;white-space:nowrap;
}
.node-label .nl-status{
  display:block;margin-top:5px;font-size:8.5px;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.35);transition:color .3s;white-space:nowrap;
}
.node-label.is-hot .nl-name{color:#e8c766}
.node-label.is-hot .nl-status{color:#c9a227}
.node-label.is-dark .nl-name{color:rgba(255,255,255,.3)}
.node-label.is-dark .nl-status{color:rgba(255,255,255,.18)}

.ticker{
  position:absolute;left:0;right:0;bottom:0;z-index:5;
  border-top:1px solid rgba(255,255,255,.08);
  overflow:hidden;padding:14px 0;background:rgba(0,0,0,.4);
}
.ticker-track{display:flex;width:max-content;animation:tick 40s linear infinite}
.ticker-track span{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.4);padding:0 34px;white-space:nowrap}
.ticker-track span b{color:#c9a227;font-weight:400}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- section scaffolding ---------- */
.sec-head{padding:0 clamp(16px,2.6vw,40px);max-width:1400px;margin:0 auto clamp(34px,5vh,54px)}
.sec-kicker{
  color:#c9a227;font-size:10px;letter-spacing:.34em;text-transform:uppercase;display:block;margin-bottom:18px;
}
.sec-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(34px,4.2vw,64px);line-height:1.05}
.sec-head h2 em{color:#c9a227}
.sec-sub{margin-top:16px;font-size:11px;letter-spacing:.14em;line-height:2;color:rgba(255,255,255,.5);text-transform:uppercase;max-width:72ch}
section{position:relative}
.rewards{padding:clamp(80px,12vh,130px) 0;border-top:1px solid rgba(255,255,255,.08)}

/* ---------- rewards band ---------- */
.rw-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
  padding:0 clamp(16px,2.6vw,40px);max-width:1400px;margin:0 auto;
}
.rw-card{
  border:1px solid rgba(255,255,255,.1);padding:30px 26px;background:#020204;
  transition:border-color .4s;position:relative;overflow:hidden;
}
.rw-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,162,39,.6),transparent);
  opacity:0;transition:opacity .4s;
}
.rw-card:hover{border-color:rgba(201,162,39,.45)}
.rw-card:hover::before{opacity:1}
.rw-ico{
  width:54px;height:54px;padding:14px;color:#c9a227;margin-bottom:22px;
  border:1px solid rgba(201,162,39,.35);
  background:radial-gradient(circle at 50% 28%,rgba(201,162,39,.14),transparent 72%);
  clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);
  transition:border-color .35s,box-shadow .35s;
}
.rw-card:hover .rw-ico{border-color:#c9a227;box-shadow:0 0 24px rgba(201,162,39,.18)}
.rw-card h3{font-family:var(--serif);font-weight:500;font-size:24px;margin-bottom:12px}
.rw-card p{font-size:11px;line-height:1.9;letter-spacing:.05em;color:rgba(255,255,255,.5)}
.rw-cta{text-align:center;margin-top:clamp(40px,6vh,60px);padding:0 20px}
.rw-mile{margin-top:22px;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.35)}

/* ---------- careers ---------- */
.cr-wrap{max-width:1000px;margin:0 auto;padding:0 clamp(16px,2.6vw,40px)}
.cr-label{
  display:flex;align-items:center;gap:16px;font-size:10px;letter-spacing:.3em;
  text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:22px;
}
.cr-label i{flex:1;height:1px;background:rgba(255,255,255,.1)}
.cr-loading,.cr-empty{font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.4);padding:30px 0;text-transform:uppercase}
.job{border:1px solid rgba(255,255,255,.1);background:#020204;margin-bottom:10px;transition:border-color .35s}
.job.is-open{border-color:rgba(201,162,39,.5)}
.job-head{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:22px clamp(18px,2.4vw,30px);text-align:left;
}
.job-head h3{font-family:var(--serif);font-weight:500;font-size:clamp(20px,2vw,27px);color:#f2f2f2}
.job-meta{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:7px}
.job-x{
  flex-shrink:0;width:34px;height:34px;border:1px solid rgba(255,255,255,.18);border-radius:50%;
  position:relative;transition:.3s;
}
.job-x::before,.job-x::after{content:"";position:absolute;top:50%;left:50%;background:#f2f2f2;transition:.3s}
.job-x::before{width:12px;height:1px;transform:translate(-50%,-50%)}
.job-x::after{width:1px;height:12px;transform:translate(-50%,-50%)}
.job.is-open .job-x{transform:rotate(45deg);border-color:#c9a227}
.job-body{max-height:0;overflow:hidden;transition:max-height .6s cubic-bezier(.22,1,.36,1)}
.job-inner{
  padding:0 clamp(18px,2.4vw,30px) 30px;border-top:1px solid rgba(255,255,255,.07);
  display:grid;grid-template-columns:1fr;gap:0;
}
.job-desc{padding-top:22px;font-family:var(--serif);font-style:italic;font-size:16px;line-height:1.65;color:rgba(255,255,255,.65);max-width:64ch}
.job-sec{margin-top:24px}
.job-sec>b{display:block;font-size:9.5px;letter-spacing:.28em;text-transform:uppercase;color:#c9a227;margin-bottom:12px}
.job-sec ul{list-style:none}
.job-sec li{font-size:11px;letter-spacing:.05em;line-height:1.9;color:rgba(255,255,255,.55);padding-left:16px;position:relative}
.job-sec li::before{content:"";position:absolute;left:0;top:.85em;width:8px;height:1px;background:rgba(201,162,39,.55)}
.job-apply{margin-top:28px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.job-apply p{font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.4);text-transform:uppercase}

/* ---------- footer ---------- */
.foot{border-top:1px solid rgba(255,255,255,.08);padding:clamp(50px,8vh,80px) clamp(16px,2.6vw,40px) 30px}
.ft-top{display:flex;justify-content:space-between;gap:34px;flex-wrap:wrap;max-width:1400px;margin:0 auto}
.ft-brand b{font-family:var(--sans);font-weight:600;letter-spacing:.4em;font-size:14px}
.ft-brand p{margin-top:14px;font-size:10.5px;letter-spacing:.1em;line-height:1.9;color:rgba(255,255,255,.45);max-width:40ch;text-transform:uppercase}
.ft-social{display:flex;gap:10px;flex-wrap:wrap;align-content:flex-start;max-width:420px}
.ft-social a{
  width:38px;height:38px;border:1px solid rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.55);transition:.3s;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);
}
.ft-social a:hover{border-color:#c9a227;color:#e8c766;box-shadow:0 0 18px rgba(201,162,39,.22)}
.ft-social svg{width:15px;height:15px;fill:currentColor}
.ft-mid{max-width:1400px;margin:38px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.07)}
.ft-mid p{font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.35);line-height:2}
.ft-bot{
  max-width:1400px;margin:22px auto 0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.35);
}
.ft-bot nav{display:flex;gap:22px;flex-wrap:wrap}
.ft-bot button,.ft-bot nav a{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.35);transition:color .3s}
.ft-bot button:hover,.ft-bot nav a:hover{color:#e8c766}
.ft-mail{
  display:inline-block;margin-top:18px;font-family:var(--serif);font-size:clamp(17px,1.7vw,22px);
  color:#e8c766;border-bottom:1px solid rgba(201,162,39,.35);padding-bottom:3px;transition:border-color .3s;
}
.ft-mail:hover{border-color:#e8c766}
.ft-jobs{align-items:center}

/* ---------- surface overlays (near-fullscreen) ---------- */
.overlay{position:fixed;inset:0;z-index:1500;background:rgba(3,3,5,.97);visibility:hidden;pointer-events:none}
.overlay.is-open{visibility:visible;pointer-events:auto}
.ov-close{
  position:absolute;top:20px;right:22px;z-index:20;width:46px;height:46px;
  border:1px solid rgba(255,255,255,.22);background:rgba(6,6,8,.55);cursor:pointer;transition:.3s;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
.ov-close:hover{border-color:#c9a227;transform:rotate(90deg)}
.ov-close::before,.ov-close::after{content:"";position:absolute;top:50%;left:50%;width:18px;height:1px;background:#f2f2f2}
.ov-close::before{transform:translate(-50%,-50%) rotate(45deg)}
.ov-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.ov-article{display:none;height:100%;overflow-y:auto;padding:clamp(96px,13vh,150px) clamp(20px,4.5vw,72px) clamp(54px,7vh,84px)}
.ov-article.is-on{display:grid;grid-template-columns:minmax(320px,470px) minmax(0,1fr);gap:clamp(34px,4.5vw,90px);align-items:center}
.ov-article.is-centered.is-on{grid-template-columns:minmax(0,760px);justify-content:center;text-align:center}
.ov-text{min-width:0}
.ov-kicker{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#c9a227;display:flex;align-items:center;gap:10px;margin-bottom:22px}
.ov-kicker.green{color:#3ddc84}
.ov-kicker.dim{color:rgba(255,255,255,.3);justify-content:center}
.ov-title{font-family:var(--serif);font-weight:500;font-size:clamp(44px,5.6vw,92px);line-height:1;margin-bottom:22px}
.ov-title.dim{color:rgba(255,255,255,.35)}
.ov-logo{width:min(430px,72vw);margin:0 0 26px;filter:drop-shadow(0 0 26px rgba(232,199,102,.16))}
.ov-sub{font-family:var(--serif);font-style:italic;font-size:clamp(17px,1.6vw,22px);color:rgba(255,255,255,.78);line-height:1.6;max-width:46ch;margin-bottom:30px}
.is-centered .ov-sub{margin-left:auto;margin-right:auto}
.ov-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:30px}
.is-centered .ov-tags{justify-content:center}
.ov-tags span{font-size:9px;letter-spacing:.24em;text-transform:uppercase;border:1px solid rgba(109,74,200,.5);color:#a98ef0;padding:6px 12px}
.ov-note{
  margin-top:26px;display:inline-flex;align-items:center;gap:10px;
  font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:#e8c766;
  border:1px solid rgba(201,162,39,.45);padding:9px 16px;background:rgba(201,162,39,.07);
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
}
.ov-list{list-style:none;margin-bottom:36px;display:grid;grid-template-columns:1fr 1fr;gap:13px 26px;max-width:520px}
.ov-list li{display:flex;align-items:center;gap:12px;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.ov-list li::before{content:"";flex-shrink:0;width:7px;height:7px;background:#c9a227;transform:rotate(45deg)}
.ov-lock{margin-top:36px;display:flex;flex-direction:column;align-items:center;gap:20px;color:rgba(255,255,255,.4)}
.ov-lock span{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.35)}
.ov-visual{display:flex;align-items:center;justify-content:center;min-width:0}
.ov-frame{border:1px solid rgba(255,255,255,.14);background:#0a0a10;position:relative;display:inline-flex;line-height:0}
.ov-frame picture{display:contents}
.ov-frame img{display:block;width:auto;height:auto;max-width:100%;object-fit:contain}
.ov-frame.tall{transform:rotate(1.5deg);box-shadow:0 40px 110px rgba(0,0,0,.65),0 0 70px rgba(109,74,200,.14)}
.ov-frame.tall img{height:min(74vh,900px)}
.ov-frame.wide{box-shadow:0 40px 110px rgba(0,0,0,.65),0 0 70px rgba(201,162,39,.10)}
.ov-frame.wide img{height:min(66vh,780px)}
/* ---------- webtoon 3D carousel ---------- */
.wt-carousel{position:relative;min-width:0;width:100%}
.wt-stage{position:relative;height:min(78vh,880px);perspective:1500px;perspective-origin:50% 40%;
  cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.wt-stage.is-drag{cursor:grabbing}
.wt-slide{position:absolute;left:50%;top:50%;margin:0;line-height:0;
  border:1px solid rgba(61,220,132,.22);box-shadow:0 30px 80px rgba(0,0,0,.65);
  transition:transform .75s cubic-bezier(.22,1,.36,1),opacity .55s,border-color .4s,filter .55s;
  will-change:transform}
.wt-slide img{height:min(70vh,820px);max-width:none;pointer-events:none}
.wt-slide.is-on{border-color:rgba(61,220,132,.6);box-shadow:0 40px 110px rgba(0,0,0,.7),0 0 60px rgba(61,220,132,.08)}
.wt-arrow{position:absolute;top:50%;z-index:20;margin-top:-23px;width:46px;height:46px;display:grid;place-items:center;
  background:rgba(4,6,10,.72);border:1px solid rgba(61,220,132,.35);color:#e8c766;cursor:pointer;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
  transition:border-color .3s,background .3s,color .3s;backdrop-filter:blur(4px)}
.wt-arrow svg{width:17px;height:17px}
.wt-arrow:hover{border-color:#3ddc84;color:#3ddc84;background:rgba(4,6,10,.9)}
.wt-prev{left:clamp(8px,4vw,64px)}.wt-next{right:clamp(8px,4vw,64px)}
.wt-hud{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:14px}
.wt-count{font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:rgba(255,255,255,.45)}
.wt-count b{color:#3ddc84;font-weight:400}
.wt-dots{display:inline-flex;gap:7px}
.wt-dots i{width:20px;height:3px;background:rgba(255,255,255,.14);transition:background .35s,width .35s}
.wt-dots i.is-on{background:#3ddc84;width:32px}

.btn-gold-b{
  display:inline-flex;align-items:center;gap:10px;background:#c9a227;color:#000;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  padding:15px 26px;transition:background .3s;
  clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);
}
.btn-gold-b:hover{background:#e8c766}
.btn-ghost-b{
  display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.25);color:#f2f2f2;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  padding:15px 26px;transition:.3s;
  clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);
}
.btn-ghost-b:hover{border-color:#c9a227;color:#e8c766}
.btn-ghost-b.green-b{border-color:rgba(61,220,132,.4)}
.btn-ghost-b.green-b:hover{border-color:#3ddc84;color:#7deda8}

/* ---------- jobs page ---------- */
.jobs-main{padding:clamp(140px,20vh,190px) 0 clamp(70px,10vh,110px)}

/* ---------- modals ---------- */
.modal{position:fixed;inset:0;z-index:1800;visibility:hidden;pointer-events:none}
.modal.is-open{visibility:visible;pointer-events:auto}
.mo-back{position:absolute;inset:0;background:rgba(2,2,4,.8);backdrop-filter:blur(8px);opacity:0;transition:opacity .4s}
.modal.is-open .mo-back{opacity:1}
.mo-panel{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.96);opacity:0;
  width:min(94vw,560px);max-height:88vh;overflow-y:auto;
  background:#0a0a0b;border:1px solid rgba(255,255,255,.1);
  box-shadow:0 30px 120px rgba(0,0,0,.9);
  transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .35s;
}
.modal.is-open .mo-panel{transform:translate(-50%,-50%) scale(1);opacity:1}
.mo-panel::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,162,39,.6),transparent);
}
.mo-panel.mo-wide{width:min(94vw,680px)}
.mo-panel.mo-doc{width:min(94vw,860px)}
.mo-x{
  position:absolute;top:16px;right:16px;z-index:5;width:38px;height:38px;border:1px solid rgba(255,255,255,.18);
  transition:.3s;background:#0a0a0b;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
}
.mo-x::before,.mo-x::after{content:"";position:absolute;top:50%;left:50%;width:14px;height:1px;background:rgba(255,255,255,.8)}
.mo-x::before{transform:translate(-50%,-50%) rotate(45deg)}
.mo-x::after{transform:translate(-50%,-50%) rotate(-45deg)}
.mo-x:hover{border-color:#c9a227;transform:rotate(90deg)}
.mo-body{padding:clamp(30px,4vw,44px)}
.mo-badge{
  display:block;color:rgba(201,162,39,.8);font-size:10px;letter-spacing:.32em;text-transform:uppercase;margin-bottom:16px;
}
.mo-body h2,.mo-doc-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.4vw,38px);line-height:1.1;margin-bottom:12px}
.mo-sub{font-size:12px;line-height:1.8;letter-spacing:.04em;color:rgba(255,255,255,.55);margin-bottom:26px}
.mo-success{text-align:center}
.mo-success .mo-socials{display:flex;justify-content:center;gap:10px;margin:26px 0 18px}
.mo-success .mo-socials a{
  width:40px;height:40px;border:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.6);transition:.3s;
}
.mo-success .mo-socials a:hover{border-color:#c9a227;color:#e8c766}
.mo-success .mo-socials svg{width:16px;height:16px;fill:currentColor}
.mo-success .btn-ghost-b{margin-top:8px}

/* forms */
.f-label{display:block;font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.45);margin:18px 0 8px}
.f-input{
  width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);color:#f2f2f2;
  font-family:var(--mono);font-size:13px;padding:13px 15px;outline:none;transition:border-color .3s;
}
.f-input:focus{border-color:#c9a227}
.f-area{resize:vertical;min-height:70px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f-platforms{display:flex;gap:8px;flex-wrap:wrap}
.f-platforms button{
  display:inline-flex;align-items:center;gap:9px;
  border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.6);font-family:var(--mono);
  font-size:10px;letter-spacing:.14em;padding:10px 16px;transition:.25s;text-transform:uppercase;
  clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);
}
.f-platforms button svg{width:15px;height:15px;flex-shrink:0}
.f-platforms button:hover{border-color:rgba(201,162,39,.6)}
.f-platforms button.is-on{background:#c9a227;border-color:#c9a227;color:#000}
.f-check{display:flex;align-items:flex-start;gap:12px;margin-top:18px;cursor:pointer}
.f-check input{position:absolute;opacity:0;pointer-events:none}
.f-check i{
  flex-shrink:0;width:16px;height:16px;border:1px solid rgba(255,255,255,.25);margin-top:1px;
  position:relative;transition:.25s;
}
.f-check input:checked+i{background:#c9a227;border-color:#c9a227}
.f-check input:checked+i::after{
  content:"";position:absolute;inset:3px;
  background:#000;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);
}
.f-check span{font-size:10.5px;line-height:1.7;letter-spacing:.04em;color:rgba(255,255,255,.55)}
.f-check span button{color:rgba(232,199,102,.9);text-decoration:underline;text-underline-offset:2px;font-size:inherit;letter-spacing:inherit}
.f-check span button:hover{color:#e8c766}
.f-file{
  display:flex;align-items:center;gap:10px;border:1px dashed rgba(255,255,255,.2);padding:12px 15px;
  cursor:pointer;transition:border-color .3s;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.08em;
}
.f-file:hover{border-color:#c9a227;color:#e8c766}
.f-file input{display:none}
.f-file svg{flex-shrink:0}
.f-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.f-hint{margin-top:7px;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.28)}
.f-err{min-height:18px;margin-top:14px;font-size:10.5px;letter-spacing:.06em;color:#e5604f}
.f-err:empty{margin-top:0}
.f-submit{width:100%;justify-content:center;margin-top:10px}
.f-submit[disabled]{opacity:.55;pointer-events:none}
.f-note{margin-top:18px;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.3);text-align:center}

/* legal docs */
.mo-doc-head{padding:clamp(30px,4vw,44px) clamp(30px,4vw,44px) 22px;border-bottom:1px solid rgba(255,255,255,.07)}
.mo-date{font-size:11px;color:rgba(255,255,255,.45);letter-spacing:.06em}
.mo-enonly{font-size:10px;color:rgba(201,162,39,.7);letter-spacing:.06em;margin-top:8px}
.mo-enonly:empty{display:none}
.mo-doc-body{padding:clamp(24px,3.6vw,40px) clamp(30px,4vw,44px) clamp(36px,4vw,48px)}
.prose-policy{font-family:var(--sans);font-weight:300}
.prose-policy p{font-size:13.5px;line-height:1.85;color:rgba(255,255,255,.62);margin:.6em 0}
.prose-policy h3{font-family:var(--serif);font-weight:500;font-size:20px;color:#fff;margin:1.7em 0 .5em}
.prose-policy h4{font-size:14px;font-weight:500;color:rgba(255,255,255,.88);margin:1.3em 0 .3em}
.prose-policy ul{list-style:disc;padding-left:1.4em;margin:.5em 0 1em}
.prose-policy li{font-size:13.5px;line-height:1.8;color:rgba(255,255,255,.55);margin:.2em 0}
.prose-policy a{color:#e8c766}
.prose-policy a:hover{text-decoration:underline}
.prose-policy span{color:rgba(255,255,255,.85)}

/* ---------- cookie banner ---------- */
.cookie{
  position:fixed;left:clamp(12px,2vw,28px);bottom:clamp(12px,2vw,28px);z-index:1700;
  width:min(92vw,430px);background:#0a0a0b;border:1px solid rgba(255,255,255,.12);
  box-shadow:0 24px 90px rgba(0,0,0,.8);
}
.ck-main{padding:24px 24px 22px}
.ck-badge{display:block;color:rgba(201,162,39,.8);font-size:9px;letter-spacing:.3em;text-transform:uppercase;margin-bottom:12px}
.ck-main p{font-size:11px;line-height:1.8;color:rgba(255,255,255,.55);letter-spacing:.03em;margin-bottom:18px}
.ck-btns{display:flex;gap:8px;flex-wrap:wrap}
.ck-btns button{font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;padding:10px 14px;transition:.3s}
.ck-accept{background:#c9a227;color:#000}
.ck-accept:hover{background:#e8c766}
.ck-reject{border:1px solid rgba(255,255,255,.2);color:#f2f2f2}
.ck-reject:hover{border-color:#e8c766}
.ck-settings{color:rgba(255,255,255,.45);text-decoration:underline;text-underline-offset:3px}
.ck-detail{border-top:1px solid rgba(255,255,255,.08);padding:8px 24px 20px}
.ck-row{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.ck-row:last-of-type{border-bottom:none}
.ck-row b{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#f2f2f2;display:block;margin-bottom:5px}
.ck-row p{font-size:10px;line-height:1.7;color:rgba(255,255,255,.45)}
.ck-fixed{font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.3);white-space:nowrap}
.ck-toggle{position:relative;flex-shrink:0}
.ck-toggle input{position:absolute;opacity:0}
.ck-toggle i{display:block;width:36px;height:19px;border:1px solid rgba(255,255,255,.25);border-radius:20px;position:relative;transition:.3s}
.ck-toggle i::after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:rgba(255,255,255,.5);transition:.3s}
.ck-toggle input:checked+i{background:rgba(201,162,39,.25);border-color:#c9a227}
.ck-toggle input:checked+i::after{left:19px;background:#e8c766}
.ck-detail .ck-btns{margin-top:14px}

/* ---------- toast ---------- */
.toast{
  position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);z-index:2500;
  background:#0a0a0b;border:1px solid rgba(201,162,39,.4);color:#e8c766;
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  padding:12px 22px;opacity:0;pointer-events:none;transition:.4s;
}
.toast.is-on{opacity:1;transform:translate(-50%,0)}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .b-nav{display:none}
}
@media (max-width:1100px){
  .ov-article.is-on{grid-template-columns:1fr;align-items:start;gap:44px}
  .ov-visual{order:-1;width:100%}
  .ov-article.is-centered.is-on .ov-visual{order:0}
  .ov-frame.tall img{height:min(52vh,640px)}
  .ov-frame.tall{transform:none}
  .ov-frame.wide img{height:auto;max-height:52vh;width:100%}
  .wt-stage{height:min(48vh,540px);perspective:1100px}
  .wt-slide img{height:min(42vh,480px)}
  .wt-arrow{top:38%;width:40px;height:40px}
  .ov-list{grid-template-columns:1fr;max-width:none}
  .ov-logo{width:min(320px,70vw)}
}
@media (max-width:900px){
  .map-title h1{font-size:clamp(38px,10vw,64px)}
  .node-label .nl-status{display:none}
  .rw-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .b-read{display:none}
  .b-back{display:inline-flex;padding:8px 11px;font-size:9px}
  .f-row{grid-template-columns:1fr}
  .mo-panel{max-height:92vh}
  .ov-article{padding-top:88px}
}

/* ---------- locale fonts ---------- */
html[lang="ko"] body{font-family:'DM Mono','Noto Sans KR',monospace}
html[lang="ko"] .map-title h1,html[lang="ko"] .sec-head h2,html[lang="ko"] .ov-title,
html[lang="ko"] .rw-card h3,html[lang="ko"] .mo-body h2,html[lang="ko"] .job-head h3{font-family:'Noto Serif KR','Cormorant Garamond',serif}
html[lang="ja"] body{font-family:'DM Mono','Noto Sans JP',monospace}
html[lang="ja"] .map-title h1,html[lang="ja"] .sec-head h2,html[lang="ja"] .ov-title,
html[lang="ja"] .rw-card h3,html[lang="ja"] .mo-body h2,html[lang="ja"] .job-head h3{font-family:'Noto Serif JP','Cormorant Garamond',serif}
/* KR/JP: no synthesized italics · clean serif/sans for readability */
html[lang="ko"] .map-title h1 em,html[lang="ko"] .sec-head h2 em,
html[lang="ja"] .map-title h1 em,html[lang="ja"] .sec-head h2 em{font-style:normal}
html[lang="ko"] .ov-sub,html[lang="ko"] .job-desc{
  font-style:normal;font-family:'Noto Serif KR',serif;font-size:clamp(15px,1.4vw,19px);letter-spacing:.01em}
html[lang="ja"] .ov-sub,html[lang="ja"] .job-desc{
  font-style:normal;font-family:'Noto Serif JP',serif;font-size:clamp(15px,1.4vw,19px);letter-spacing:.01em}

/* legal modals stack above other modals */
#legal-privacy,#legal-terms,#legal-notice{z-index:1900}
