/* ============================================================
   DreamAviate / 逐梦航空 — panel-specific styles
   Layered on top of styles.css (the FLY DREAM base)
   ============================================================ */

/* ---------- Hero Carousel ---------- */
.panel--hero { background: #0a0a0a; color: #f4ece0; }
.hero-c__bgs { position: absolute; inset: 0; }
.hero-c__bg { position: absolute; inset: 0; opacity: 0; transition: opacity 1100ms cubic-bezier(.7,0,.2,1); }
.hero-c__bg.is-active { opacity: 1; }
.hero-c__bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.1); transition: transform 8s cubic-bezier(.2,.7,.2,1); }
.hero-c__bg.is-active img { transform: scale(1); }

.panel--hero .hero__vignette { background: linear-gradient(to bottom, rgba(0,0,0,.42) 0%, rgba(0,0,0,.1) 20%, rgba(0,0,0,.1) 40%, rgba(0,0,0,.6) 80%, rgba(0,0,0,.9) 100%); }

.hero-c__content {
  position: absolute;
  left: 0; right: 0; bottom: 120px;
  z-index: 3;
  padding: 0 var(--pad-x);
  max-width: 1440px;
  margin: 0 auto;
  text-align: left;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 700ms cubic-bezier(.2,.7,.2,1), transform 900ms cubic-bezier(.2,.7,.2,1);
  pointer-events: none;
}
.hero-c__content.is-active { opacity: 1; transform: none; pointer-events: auto; }
.hero-c__title {
  margin: 0 0 22px;
  max-width: 760px;
  letter-spacing: .04em;
  color: #fff;
  display: flex; flex-direction: column; gap: 18px;
  font-weight: 400;
}
.hero-c__title-top {
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-size: 22px;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(255,255,255,.92);
  font-weight: 400;
}
.hero-c__title-main {
  font-style: normal;
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-weight: 400;
  font-size: 44px;
  line-height: 1.2;
  letter-spacing: .06em;
  color: #fff;
}
.hero-c__sub {
  font-family: "Noto Serif SC", serif;
  font-size: 15px; line-height: 1.7;
  letter-spacing: .06em;
  margin: 0 0 28px; max-width: 560px;
  color: rgba(255,255,255,.72);
}
.hero-c__cta {
  display: inline-flex; align-items: center; justify-content: space-between; gap: 18px;
  min-width: 180px; height: 44px;
  padding: 0 22px;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 0;
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-size: 14px; letter-spacing: .14em;
  white-space: nowrap;
  color: #fff;
  transition: background .3s, color .3s, border-color .3s, gap .3s, padding .3s;
}
.hero-c__cta > span { white-space: nowrap; }
.hero-c__cta:hover { background: var(--accent); border-color: var(--accent); color: var(--ink); padding: 0 26px; }

/* Carousel chrome — minimal bottom-left dots */
.hero-c__chrome {
  position: absolute;
  left: 0; right: 0; bottom: 60px;
  z-index: 4;
  padding: 0 var(--pad-x);
  max-width: 1440px;
  margin: 0 auto;
  display: flex; justify-content: flex-start;
}
.hero-c__dots { display: flex; align-items: center; gap: 16px; }
.hero-c__dot {
  display: inline-flex; align-items: center;
  padding: 8px 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}
.hero-c__dot-bar {
  display: inline-block;
  width: 36px; height: 2px;
  background: rgba(255,255,255,.3);
  position: relative; overflow: hidden;
  transition: width .4s;
}
.hero-c__dot.is-active .hero-c__dot-bar { width: 64px; background: rgba(255,255,255,.3); }
.hero-c__dot-bar-fill {
  position: absolute; inset: 0;
  background: #fff;
  transform-origin: left center;
  transform: scaleX(0);
}
.hero-c__dot.is-active .hero-c__dot-bar-fill { animation: heroBar 5.8s linear forwards; }
@keyframes heroBar { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ---------- Generic section head ---------- */
.da-head {
  max-width: 1440px;
  margin: 0 auto 64px;
  text-align: center;
}
.da-head--light { text-align: left; color: #f4ece0; }
.da-head--start { text-align: left; max-width: none; margin: 0 0 12px; }
.da-head .kicker { display: inline-block; margin-bottom: 28px; font-size: 12px; }
.da-head__title {
  font-family: "Noto Serif SC", "Cormorant Garamond", serif;
  font-weight: 400;
  font-size: clamp(40px, 4.2vw, 60px);
  line-height: 1.15; letter-spacing: .04em;
  margin: 0 0 28px;
  text-wrap: balance;
}
.da-head__title em {
  font-style: normal;
  color: var(--accent);
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-weight: 500;
}
.da-head__sub {
  font-family: "Noto Serif SC", serif;
  font-size: 17px; line-height: 1.75;
  color: rgba(0,0,0,.55); margin: 0 auto;
  max-width: none;
  white-space: nowrap;
  letter-spacing: .04em;
}
.da-head__sub--light { color: rgba(255,255,255,.7); margin: 0; max-width: 760px; }

/* ---------- Assets Panel (light, 4 service cards) ---------- */
.panel--assets {
  padding: 130px var(--pad-x) 80px;
  background: var(--paper);
  color: var(--ink);
  display: flex; flex-direction: column;
}
.da-grid {
  display: grid; gap: 28px;
  max-width: 1440px;
  margin: 0 auto;
  width: 100%;
  flex: 1;
  align-content: center;
}
.da-grid--4 { grid-template-columns: repeat(4, 1fr); }

.acard {
  position: relative;
  background: #fff;
  border: 1px solid rgba(26,22,18,.06);
  overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s, border-color .5s;
}
.acard:hover {
  transform: translateY(-6px);
  border-color: rgba(200,168,117,.5);
  box-shadow: 0 24px 60px -32px rgba(26,22,18,.28);
}
.acard__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  position: relative;
}
.acard__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 2.2s cubic-bezier(.2,.7,.2,1);
}
.acard:hover .acard__media img { transform: scale(1.06); }
.acard__num {
  position: absolute;
  top: 16px; left: 18px;
  font-family: "Cormorant Garamond", serif;
  font-size: 14px; letter-spacing: .3em;
  color: #fff;
  padding: 4px 10px;
  background: rgba(0,0,0,.3);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.3);
}
.acard__body { padding: 28px 26px 28px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.acard__en {
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--accent);
}
.acard__title {
  font-family: "Noto Serif SC", "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: 24px; letter-spacing: .06em;
  margin: 0;
}
.acard__desc {
  font-family: "Noto Serif SC", serif;
  font-size: 14px; line-height: 1.75;
  color: rgba(26,22,18,.6);
  margin: 0 0 8px;
  flex: 1;
}
.acard__cta {
  display: inline-flex; align-items: center; gap: 10px;
  padding-top: 14px;
  border-top: 1px solid rgba(26,22,18,.1);
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-size: 12px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--ink);
  align-self: flex-start;
  margin-top: auto;
  transition: gap .3s, color .3s;
  width: 100%;
}
.acard__cta:hover { color: var(--accent); gap: 14px; }

/* ---------- Talent Panel (dark, list + preview) ---------- */
.panel--talent { background: #0a0a0a; color: #f4ece0; }
.talent__bgs { position: absolute; inset: 0; }
.talent__bg { position: absolute; inset: 0; opacity: 0; transition: opacity 900ms cubic-bezier(.7,0,.2,1); }
.talent__bg.is-active { opacity: 1; }
.talent__bg img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.15); transition: transform 12s cubic-bezier(.2,.7,.2,1); filter: saturate(.85); }
.talent__bg.is-active img { transform: scale(1); }
.talent__shade { position: absolute; inset: 0; background: linear-gradient(120deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.78) 40%, rgba(0,0,0,.55) 70%, rgba(0,0,0,.75) 100%); }

.talent__inner {
  position: relative; z-index: 2;
  height: 100%;
  padding: 130px var(--pad-x) 80px;
  max-width: 1700px;
  margin: 0 auto;
  display: flex; flex-direction: column;
  gap: 60px;
}
.talent__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  flex: 1;
  align-items: center;
}
.talent__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.talent__item {
  display: grid;
  grid-template-columns: 70px 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 26px 0;
  border-top: 1px solid rgba(255,255,255,.18);
  cursor: pointer;
  color: rgba(244,236,224,.55);
  transition: color .35s, padding .35s;
}
.talent__item:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.talent__item:hover { color: rgba(244,236,224,.9); padding-left: 8px; }
.talent__item.is-active { color: #fff; padding-left: 8px; }
.talent__item-num {
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-size: 22px; letter-spacing: .12em;
  color: var(--accent);
}
.talent__item-body { display: flex; flex-direction: column; gap: 4px; }
.talent__item-en {
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  opacity: .65;
}
.talent__item-title {
  font-family: "Noto Serif SC", "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: 28px; letter-spacing: .06em;
  margin: 0;
}
.talent__item-arrow {
  color: var(--accent);
  opacity: 0; transform: translateX(-6px);
  transition: opacity .35s, transform .35s;
}
.talent__item.is-active .talent__item-arrow,
.talent__item:hover .talent__item-arrow { opacity: 1; transform: none; }

.talent__detail {
  padding: 48px 44px;
  background: rgba(20,16,12,.6);
  border: 1px solid rgba(200,168,117,.35);
  backdrop-filter: blur(14px);
  animation: detailFade .6s cubic-bezier(.2,.7,.2,1);
}
@keyframes detailFade {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: none; }
}
.talent__detail-tag {
  display: inline-block;
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-size: 11px; letter-spacing: .32em; text-transform: uppercase;
  color: var(--accent);
  padding-bottom: 18px;
  margin-bottom: 22px;
  border-bottom: 1px solid rgba(255,255,255,.18);
  width: 100%;
}
.talent__detail-title {
  font-family: "Noto Serif SC", serif;
  font-weight: 500;
  font-size: 36px; letter-spacing: .06em;
  margin: 0 0 28px;
  display: flex; align-items: baseline; gap: 16px;
  flex-wrap: wrap;
}
.talent__detail-sub {
  font-family: "Cormorant Garamond", serif;
  font-size: 14px; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(255,255,255,.5); font-weight: 400;
}
.talent__detail-list {
  list-style: none; margin: 0 0 32px; padding: 0;
  display: flex; flex-direction: column; gap: 16px;
}
.talent__detail-list li {
  font-family: "Noto Serif SC", serif;
  font-size: 16px; line-height: 1.7;
  color: rgba(255,255,255,.82);
  display: grid;
  grid-template-columns: 18px 1fr;
  align-items: baseline;
}
.talent__detail-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  display: inline-block;
  transform: translateY(-2px);
}
.talent__detail-cta {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 14px 26px;
  background: var(--accent); color: var(--ink);
  font-family: "Noto Serif SC", serif;
  font-size: 14px; letter-spacing: .18em;
  transition: background .3s, color .3s, gap .3s;
}
.talent__detail-cta:hover { background: #fff; color: var(--ink); gap: 16px; }

/* ---------- Advantages Panel (生态飞轮 — flywheel + synced accordion) ---------- */
.panel--advantages {
  padding: 120px var(--pad-x) 72px;
  background: var(--paper);
  color: var(--ink);
  display: flex; flex-direction: column;
  overflow: hidden;
}

/* White block — two equal-width / equal-height halves */
.fly {
  flex: 1; align-self: center; width: 100%; max-width: 1360px;
  display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: minmax(0, 1fr); align-items: stretch;
  background: #fff; border: 1px solid rgba(26,22,18,.06);
  box-shadow: 0 50px 110px -60px rgba(26,22,18,.34);
  overflow: hidden;
}
.fly__col { position: relative; display: flex; align-items: center; justify-content: center; padding: 0 56px; min-width: 0; min-height: 0; overflow: hidden; }

/* Flywheel (JS-scaled to ~80% of the block height, vertically centered) */
.wheel { position: relative; width: 320px; height: 320px; flex: none; transform-origin: center center; }
.wheel svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.wheel__ring { fill: none; stroke: rgba(26,22,18,.06); stroke-width: 1; }
.wheel__guide { fill: none; stroke: rgba(176,138,82,.16); stroke-width: 1; }
.wheel__flow { fill: none; stroke: var(--accent); stroke-width: 1.8; stroke-linecap: round;
  stroke-dasharray: 4 7; animation: flow 1.1s linear infinite; }
@keyframes flow { to { stroke-dashoffset: -22; } }

.node {
  position: absolute; width: 96px; height: 96px; margin: -48px 0 0 -48px;
  border-radius: 50%; background: #fff; border: 1px solid rgba(26,22,18,.09);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  cursor: pointer; text-align: center;
  box-shadow: 0 14px 32px -20px rgba(26,22,18,.30);
  transition: background .45s, border-color .45s, box-shadow .45s, color .45s;
}
.node__num { font-family: "Cormorant Garamond","Noto Serif SC",serif; font-size: 11px; letter-spacing: .24em; color: var(--bg-warm); font-variant-numeric: lining-nums; }
.node__title { font-family: "Noto Serif SC",serif; font-weight: 500; font-size: 16px; margin-top: 2px; line-height: 1.15; color: var(--ink); }
.node__role { font-family: "Noto Sans SC","PingFang SC",sans-serif; font-size: 10px; color: rgba(26,22,18,.45); margin-top: 3px; letter-spacing: .06em; }
.node:hover { border-color: rgba(176,138,82,.5); }
.node.is-active { background: var(--accent); border-color: var(--accent); box-shadow: 0 18px 42px -18px rgba(176,138,82,.6); }
.node.is-active .node__num { color: #7a5722; }
.node.is-active .node__title { color: #1a1612; }
.node.is-active .node__role { color: rgba(26,22,18,.55); }

.wheel__core {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 104px; height: 104px; border-radius: 50%;
  border: 1px dashed rgba(176,138,82,.5);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  background: radial-gradient(circle, rgba(233,217,184,.4), transparent 72%);
}
.wheel__core b { font-family: "Noto Serif SC",serif; font-weight: 500; font-size: 15px; letter-spacing: .05em; }
.wheel__core span { font-family: "Cormorant Garamond","Noto Serif SC",serif; font-size: 9px; letter-spacing: .26em; text-transform: uppercase; color: var(--bg-warm); }

/* Synced accordion (height = flywheel's visual height; open block grows, content centered) */
.acc { width: 100%; overflow: hidden; display: flex; flex-direction: column; }
.acc-item {
  flex: 1 1 0; min-height: 0; cursor: pointer;
  border-top: 1px solid rgba(26,22,18,.10);
  display: flex; flex-direction: column; justify-content: center;
  transition: flex-grow .6s cubic-bezier(.4,0,.2,1);
}
.acc-item:first-child { border-top: none; }
.acc-item.is-open { flex-grow: 3; }
.acc-item__main { display: flex; align-items: center; gap: 26px; }
.acc-item__text { flex: 1; min-width: 0; }
.acc-item__title { font-family: "Noto Serif SC",serif; font-weight: 500; margin: 0; line-height: 1.15; font-size: 21px; color: rgba(26,22,18,.36); transition: font-size .6s cubic-bezier(.4,0,.2,1), color .6s cubic-bezier(.4,0,.2,1); }
.acc-item__suben {
  display: block; font-family: "Cormorant Garamond","Noto Serif SC",serif; font-size: 13px; letter-spacing: .18em;
  text-transform: uppercase; color: rgba(26,22,18,.45); line-height: 1.2;
  max-height: 0; opacity: 0; overflow: hidden; transition: max-height .6s cubic-bezier(.4,0,.2,1), opacity .55s ease .08s, margin .6s cubic-bezier(.4,0,.2,1);
}
.acc-item__body { max-height: 0; opacity: 0; overflow: hidden; transition: max-height .7s cubic-bezier(.4,0,.2,1), opacity .6s ease .1s; }
.acc-item__rule { display: block; width: 42px; height: 1px; background: var(--accent); margin: 20px 0 17px; }
.acc-item__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.acc-item__list li { font-family: "Noto Serif SC",serif; font-size: 15px; line-height: 1.5; display: flex; align-items: baseline; gap: 12px; color: rgba(26,22,18,.8); }
.acc-item__list li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); flex: none; transform: translateY(-2px); }
.acc-item__go {
  flex: none; width: 50px; height: 50px; border-radius: 50%;
  border: 1px solid rgba(176,138,82,.5); background: transparent; color: var(--bg-warm);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transform: scale(.6); pointer-events: none;
  transition: opacity .6s ease, transform .6s cubic-bezier(.34,1.3,.64,1), background .35s, color .35s, border-color .35s;
}
.acc-item.is-open .acc-item__title { font-size: 29px; color: #1a1612; }
.acc-item.is-open .acc-item__suben { max-height: 24px; opacity: 1; margin-top: 7px; }
.acc-item.is-open .acc-item__body { max-height: 240px; opacity: 1; }
.acc-item.is-open .acc-item__go { opacity: 1; transform: none; pointer-events: auto; }
.acc-item__go:hover { background: var(--accent); border-color: var(--accent); color: #fff; }

/* compact mode — auto-applied when the viewport is too short, so text never clips */
.acc.is-compact .acc-item__title { font-size: 19px; }
.acc.is-compact .acc-item.is-open .acc-item__title { font-size: 25px; }
.acc.is-compact .acc-item__rule { margin: 13px 0 11px; }
.acc.is-compact .acc-item__list { gap: 8px; }
.acc.is-compact .acc-item__list li { font-size: 14px; line-height: 1.4; }
.acc.is-compact .acc-item.is-open .acc-item__body { max-height: 190px; }

/* ---------- Synergy Panel (4 quadrants) ---------- */
.panel--synergy { background: #161210; color: #f4ece0; }
.synergy__bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 30% 20%, rgba(200,168,117,.15), transparent 50%),
    radial-gradient(circle at 70% 80%, rgba(176,138,82,.18), transparent 55%),
    linear-gradient(135deg, #1a1410 0%, #0e0a08 100%);
}
.synergy__inner {
  position: relative; z-index: 2;
  padding: 86px var(--pad-x) 48px;
  height: 100%;
  max-width: 1700px;
  margin: 0 auto;
  display: flex; flex-direction: column;
  gap: 0;
}
.synergy__inner .da-head { text-align: center; margin: 0 auto; }
.synergy__inner .da-head--light { margin-bottom: 48px; }
.synergy__inner .da-head .kicker { margin-bottom: 18px; }
.synergy__inner .da-head__title { margin-bottom: 18px; }
.synergy__inner .da-head__sub--light { margin: 0 auto; }

.synergy__board {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 18px;
  flex: 1 1 auto;
  margin: 0;
  align-self: center;
  width: 100%;
  max-width: 1280px;
}
.syn-quad {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(200,168,117,.22);
  transition: border-color .4s;
  min-height: 0;
}
.syn-quad:hover { border-color: var(--accent); }
.syn-quad__media {
  position: absolute; inset: 0;
  opacity: .28;
  transition: opacity .5s, transform 2s cubic-bezier(.2,.7,.2,1);
}
.syn-quad__media img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.syn-quad.is-hover .syn-quad__media { opacity: .55; transform: scale(1.05); }
.syn-quad__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(20,15,10,.7) 0%, rgba(20,15,10,.4) 100%);
}
.syn-quad__content {
  position: relative; z-index: 2;
  padding: 26px 36px 28px;
  height: 100%;
  display: flex; flex-direction: column;
  gap: 10px;
}
.syn-quad__ch {
  font-family: "Noto Serif SC", "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: 64px; line-height: 1;
  color: var(--accent);
  letter-spacing: .02em;
}
.syn-quad__meta { display: flex; flex-direction: column; gap: 4px; }
.syn-quad__en {
  font-family: "Cormorant Garamond", "Noto Serif SC", serif;
  font-size: 11px; letter-spacing: .42em; text-transform: uppercase;
  color: rgba(255,255,255,.55);
}
.syn-quad__title {
  font-family: "Noto Serif SC", serif;
  font-weight: 500;
  font-size: 26px; letter-spacing: .08em;
  margin: 0;
}
.syn-quad__desc {
  font-family: "Noto Serif SC", serif;
  font-size: 14px; line-height: 1.75;
  color: rgba(255,255,255,.7);
  margin: auto 0 0;
  max-width: 360px;
}

.synergy__center {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 200px; height: 200px;
  border-radius: 50%;
  background: radial-gradient(circle at center, rgba(20,15,10,.92) 0%, rgba(20,15,10,.78) 60%, rgba(20,15,10,.5) 100%);
  border: 1px solid rgba(200,168,117,.5);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  color: var(--accent);
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
  box-shadow: 0 0 60px rgba(200,168,117,.18), inset 0 0 30px rgba(200,168,117,.08);
}
.synergy__center-label {
  position: relative; z-index: 5;
  font-family: "Noto Serif SC", "Cormorant Garamond", serif;
  font-weight: 500;
  font-size: 18px;
  letter-spacing: .14em;
  color: #fff;
  text-align: center;
  line-height: 1.15;
  text-shadow: 0 0 12px rgba(0,0,0,.7), 0 0 4px rgba(0,0,0,.6);
}
.radar__map {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  display: flex; align-items: center; justify-content: center;
  /* Tint black SVG outline to warm gold */
  filter: brightness(0) saturate(100%) invert(72%) sepia(33%) saturate(420%) hue-rotate(360deg) brightness(95%) contrast(88%);
  animation: mapBreath 6s ease-in-out infinite;
}
.radar__map img {
  width: 130%; height: 130%;
  object-fit: contain;
}
@keyframes mapBreath {
  0%,   100% { opacity: .10; }
  50%        { opacity: .40; }
}

/* Radar scanner */
.radar {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  overflow: hidden;
  pointer-events: none;
}
.radar__ring {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(200,168,117,.32);
  border-radius: 50%;
}
.radar__ring--1 { width: 28%;  height: 28%;  animation: radarPulse 3.6s ease-out infinite; z-index: 2; }
.radar__ring--2 { width: 58%;  height: 58%;  animation: radarPulse 3.6s ease-out infinite 1.2s; z-index: 2; }
.radar__ring--3 { width: 92%;  height: 92%;  animation: radarPulse 3.6s ease-out infinite 2.4s; z-index: 2; }
@keyframes radarPulse {
  0%   { opacity: 0;   transform: translate(-50%, -50%) scale(.4); }
  20%  { opacity: .9; }
  100% { opacity: 0;   transform: translate(-50%, -50%) scale(1.2); }
}
.radar__grid {
  position: absolute; inset: 0;
  z-index: 2;
  background:
    linear-gradient(90deg, transparent 49.5%, rgba(200,168,117,.18) 49.5%, rgba(200,168,117,.18) 50.5%, transparent 50.5%),
    linear-gradient(0deg,  transparent 49.5%, rgba(200,168,117,.18) 49.5%, rgba(200,168,117,.18) 50.5%, transparent 50.5%);
  border-radius: 50%;
  mask: radial-gradient(circle at center, #000 60%, transparent 100%);
  -webkit-mask: radial-gradient(circle at center, #000 60%, transparent 100%);
}
.radar__sweep {
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: 50%;
  background:
    conic-gradient(
      from 0deg,
      rgba(200,168,117,0)   0deg,
      rgba(200,168,117,0)   270deg,
      rgba(200,168,117,.05) 305deg,
      rgba(200,168,117,.45) 350deg,
      rgba(255,220,160,.9)  359deg,
      rgba(200,168,117,0)   360deg
    );
  animation: radarSweep 3.6s linear infinite;
  transform-origin: center;
  mix-blend-mode: screen;
}
@keyframes radarSweep {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.radar__blip {
  position: absolute;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: #ffe6b3;
  box-shadow: 0 0 8px 2px rgba(255,220,160,.7);
  opacity: 0;
  z-index: 3;
}
.radar__blip--a { left: 48%; top: 50%; animation: radarBlip 3.6s linear infinite 1.1s; }
.radar__blip--b { left: 38%; top: 56%; animation: radarBlip 3.6s linear infinite 2.3s; }
.radar__blip--c { left: 60%; top: 53%; animation: radarBlip 3.6s linear infinite 3.0s; }
@keyframes radarBlip {
  0%   { opacity: 0;   transform: scale(.4); }
  6%   { opacity: 1;   transform: scale(1.2); }
  60%  { opacity: .4;  transform: scale(1); }
  100% { opacity: 0;   transform: scale(.8); }
}
.radar__core {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 6px var(--accent);
  z-index: 4;
}

/* ---------- Footer overrides ---------- */
.panel--footer { background: #9b7648 !important; color: #fff; }
.panel--footer .footer__row-label { color: rgba(255,255,255,.7); }
.panel--footer .footer__email,
.panel--footer .footer__col-title { color: #fff; }
.panel--footer .footer__col a { color: rgba(255,255,255,.78); }
.panel--footer .footer__col a:hover { color: #fff; }
.panel--footer .footer__row--contact,
.panel--footer .footer__cols,
.panel--footer .footer__end { border-color: rgba(255,255,255,.22) !important; }
.panel--footer .footer__bottom { color: rgba(255,255,255,.65); }
.panel--footer .footer__social a { border-color: rgba(255,255,255,.3); }
.panel--footer .footer__wordmark { color: #fff; opacity: .92; }
.da-footer__row { grid-template-columns: 1fr 1fr; }
.da-footer__addr {
  font-family: "Noto Serif SC", serif;
  font-size: 16px; line-height: 1.7;
  letter-spacing: .04em;
  color: rgba(255,255,255,.88);
}
a.da-footer__addr { font-size: 16px; }
a.da-footer__addr span { line-height: 1.7; }

/* ---------- Indicator: add dark-panel detection for talent + synergy ---------- */
.app:has(.panel--talent.is-in) .ind--right .ind__dot,
.app:has(.panel--synergy.is-in) .ind--right .ind__dot {
  background: rgba(255,255,255,.4);
}
.app:has(.panel--talent.is-in) .ind--right .ind__item.is-active .ind__dot,
.app:has(.panel--synergy.is-in) .ind--right .ind__item.is-active .ind__dot {
  background: #ffffff;
}
.app:has(.panel--talent.is-in) .ind--right .ind__line,
.app:has(.panel--synergy.is-in) .ind--right .ind__line {
  background: rgba(255,255,255,.4);
}
.app:has(.panel--talent.is-in) .ind--right .ind__item.is-active .ind__line,
.app:has(.panel--synergy.is-in) .ind--right .ind__item.is-active .ind__line {
  background: #ffffff;
}
.app:has(.panel--talent.is-in) .ind--right .ind__label,
.app:has(.panel--synergy.is-in) .ind--right .ind__label {
  color: rgba(255,255,255,.9);
}

/* ---------- Smaller viewport ---------- */
@media (max-width: 1080px) {
  .da-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .talent__grid { grid-template-columns: 1fr; gap: 30px; }
  .adv__grid { grid-template-columns: 1fr; }
}
