/* ============================================================
   WOODYER CAPITAL — TERRITORY
   Immersive coverage map. Dark, minimal. Uses tokens from base.css.
============================================================ */
#wc-terr{ position:relative; background:var(--wc-ink); display:block; isolation:isolate; }
#wc-terr [data-r]{ will-change:opacity,transform; }

/* ---- Immersive atmosphere (fixed backdrop) ---- */
.wc-atmos{ position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.wc-atmos__grid{
  position:absolute; inset:-20%;
  background-image:
    linear-gradient(rgba(201,169,97,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,169,97,.05) 1px, transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 42%, #000 0%, rgba(0,0,0,.35) 55%, transparent 82%);
          mask-image:radial-gradient(70% 60% at 50% 42%, #000 0%, rgba(0,0,0,.35) 55%, transparent 82%);
  opacity:0; transition:opacity 1.2s ease; animation:wcGridDrift 24s linear infinite;
}
.wc-atmos.is-live .wc-atmos__grid{ opacity:1; }
@keyframes wcGridDrift{ from{ background-position:0 0, 0 0; } to{ background-position:0 54px, 54px 0; } }
.wc-atmos__particles{ position:absolute; inset:0; width:100%; height:100%; opacity:0; transition:opacity 1.6s ease; }
.wc-atmos.is-live .wc-atmos__particles{ opacity:.9; }
.wc-atmos__scan{ position:absolute; inset:0; pointer-events:none; opacity:.5;
  background:repeating-linear-gradient(180deg, rgba(246,243,238,.018) 0 1px, transparent 1px 3px);
  mix-blend-mode:overlay; }
.wc-atmos__glow{ position:absolute; inset:0;
  background:
    radial-gradient(60% 42% at 78% 8%, rgba(201,169,97,.10) 0%, rgba(201,169,97,0) 60%),
    radial-gradient(60% 50% at 12% 96%, rgba(92,31,38,.16) 0%, rgba(92,31,38,0) 60%); }

.wc-ph, .wc-gmap, .wc-tgate, .wc-pcta{ position:relative; z-index:1; }

/* ---- 01 . ENTRY ---- */
.wc-ph{ min-height:100vh; min-height:100svh; display:flex; align-items:center;
  padding:calc(var(--wc-h) + clamp(60px,12vh,150px)) 0 clamp(80px,12vh,150px); }
.wc-ph__in{ position:relative; }
.wc-ph__eyebrow{ margin-bottom:30px; }
.wc-ph__h1{ margin:0; font-family:var(--wc-serif); font-weight:340; letter-spacing:-.03em;
  font-size:clamp(58px,12vw,168px); line-height:.94; color:var(--wc-white); }
.wc-ph__h1 em{ font-style:italic; font-weight:360; color:var(--wc-brass); }
.wc-ph__sub{ margin:36px 0 0; font-family:var(--wc-serif); font-weight:300; font-style:italic;
  font-size:clamp(20px,2.6vw,34px); line-height:1.3; color:rgba(246,243,238,.72); }
.wc-ph__sub span{ color:var(--wc-brass); }
.wc-ph__meta{ margin-top:clamp(44px,6vw,72px); display:flex; flex-wrap:wrap; gap:14px clamp(28px,4vw,56px);
  border-top:1px solid rgba(246,243,238,.1); padding-top:26px; }
.wc-ph__stat{ font-family:var(--wc-sans); font-size:12px; font-weight:500; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(246,243,238,.5); }
.wc-ph__stat b{ font-family:var(--wc-serif); font-style:normal; font-weight:400; font-size:20px;
  letter-spacing:0; color:var(--wc-brass); margin-right:10px; }
.wc-ph__cue{ position:absolute; left:50%; bottom:clamp(24px,4vh,44px); transform:translateX(-50%);
  z-index:1; display:flex; flex-direction:column; align-items:center; gap:12px; }
.wc-ph__cue span{ font-family:var(--wc-mono); font-size:10px; font-weight:600; letter-spacing:.34em;
  text-transform:uppercase; color:rgba(246,243,238,.4); }
.wc-ph__cue i{ width:1px; height:52px; background:linear-gradient(rgba(201,169,97,.9),rgba(201,169,97,0));
  animation:wcCue 2.4s ease-in-out infinite; }
@keyframes wcCue{ 0%,100%{ transform:scaleY(1); opacity:1; } 50%{ transform:scaleY(.5); opacity:.4; } }

/* ---- 02 . MAP ---- */
.wc-gmap{ padding:clamp(80px,11vw,150px) 0 clamp(90px,12vw,168px); }
.wc-gmap__head{ max-width:820px; }
.wc-gmap__h{ margin:22px 0 0; font-family:var(--wc-serif); font-weight:360; letter-spacing:-.02em;
  font-size:clamp(38px,6vw,80px); line-height:1.02; color:var(--wc-white); }
.wc-gmap__h em{ font-style:italic; color:var(--wc-brass); }
.wc-gmap__p{ margin:28px 0 0; max-width:60ch; font-family:var(--wc-sans); font-weight:300;
  font-size:clamp(16px,1.5vw,19px); line-height:1.68; color:rgba(246,243,238,.7); }
.wc-gmap__stage{ margin:clamp(40px,5vw,68px) 0 0; }
.wc-gmap__frame{ position:relative; width:100%; max-width:1500px; margin:0 auto;
  padding:clamp(16px,3vw,40px) clamp(12px,4vw,64px);
  border-top:1px solid rgba(246,243,238,.08); border-bottom:1px solid rgba(246,243,238,.08); }
.wc-gmap__svg{ display:block; width:100%; height:auto; overflow:visible; }
.wc-gmap__grat line{ stroke:rgba(246,243,238,.07); stroke-width:.6; }
.wc-gmap__grat .wc-eq{ stroke:rgba(201,169,97,.14); stroke-dasharray:2 5; }
.wc-arc{ fill:none; stroke:rgba(201,169,97,.34); stroke-width:1; stroke-linecap:round;
  filter:drop-shadow(0 0 2px rgba(201,169,97,.5)); }
.wc-node{ cursor:default; }
.wc-node__halo{ fill:rgba(201,169,97,.14); opacity:0; transform-box:fill-box; transform-origin:center;
  transform:scale(.4); transition:opacity .5s ease, transform .5s ease; }
.wc-node__dot{ fill:rgba(246,243,238,.32); transition:fill .45s ease, filter .45s ease; }
.wc-node.is-on .wc-node__dot{ fill:var(--wc-brass); filter:drop-shadow(0 0 5px rgba(201,169,97,.9)); }
.wc-node.is-on .wc-node__halo{ opacity:1; animation:wcPulse 2.8s ease-in-out infinite; }
.wc-node--hub .wc-node__dot{ fill:var(--wc-brass); }
.wc-node.is-live:hover .wc-node__halo{ opacity:1; transform:scale(1.25); }
@keyframes wcPulse{ 0%,100%{ transform:scale(1); opacity:.5; } 50%{ transform:scale(1.5); opacity:.12; } }
.wc-gmap__readout{ position:absolute; left:clamp(14px,4vw,64px); bottom:clamp(14px,3vw,40px);
  display:flex; flex-direction:column; gap:3px; padding:14px 18px;
  background:rgba(5,5,5,.5); border:1px solid rgba(246,243,238,.1); backdrop-filter:blur(6px); min-width:210px; }
.wc-gmap__rlab{ font-family:var(--wc-mono); font-size:9.5px; font-weight:600; letter-spacing:.24em;
  text-transform:uppercase; color:var(--wc-brass-d); }
.wc-gmap__rname{ font-family:var(--wc-serif); font-size:clamp(18px,1.8vw,23px); color:var(--wc-white); line-height:1.1; }
.wc-gmap__rtag{ font-family:var(--wc-sans); font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--wc-brass); }
.wc-gmap__index{ list-style:none; margin:clamp(40px,5vw,68px) 0 0; padding:0; display:grid;
  grid-template-columns:repeat(5,1fr); gap:1px; background:rgba(246,243,238,.08);
  border:1px solid rgba(246,243,238,.08); }
.wc-gmap__i{ position:relative; display:flex; flex-direction:column; gap:6px;
  padding:clamp(20px,2vw,28px) clamp(16px,1.6vw,24px); background:var(--wc-ink);
  opacity:.38; transition:opacity .5s ease, background-color .5s ease; }
.wc-gmap__i.is-on{ opacity:1; background:#0a0906; }
.wc-gmap__ik{ font-family:var(--wc-mono); font-size:11px; font-weight:600; letter-spacing:.1em; color:var(--wc-brass-d); }
.wc-gmap__i.is-on .wc-gmap__ik{ color:var(--wc-brass); }
.wc-gmap__i b{ font-family:var(--wc-serif); font-weight:440; font-size:clamp(16px,1.5vw,20px); line-height:1.14; color:var(--wc-white); }
.wc-gmap__it{ font-family:var(--wc-sans); font-size:11px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(246,243,238,.5); }
.wc-gmap__i::before{ content:''; position:absolute; left:0; top:0; width:2px; height:100%;
  background:var(--wc-brass); transform:scaleY(0); transform-origin:top; transition:transform .4s ease; }
.wc-gmap__i.is-on::before{ transform:scaleY(1); }

/* ---- 03 . THE GATE ---- */
.wc-tgate{ padding:clamp(80px,11vw,150px) 0; border-top:1px solid rgba(246,243,238,.06); }
.wc-tgate__in{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(32px,6vw,90px); align-items:start; }
.wc-tgate__aside{ position:sticky; top:calc(var(--wc-h) + 8vh); align-self:start; }
.wc-tgate__h{ margin:24px 0 0; font-family:var(--wc-serif); font-weight:370; letter-spacing:-.02em;
  font-size:clamp(32px,4.4vw,58px); line-height:1.06; color:var(--wc-white); }
.wc-tgate__h em{ font-style:italic; color:var(--wc-brass); }
.wc-tgate__sub{ margin:26px 0 0; max-width:40ch; font-family:var(--wc-sans); font-weight:300;
  font-size:16px; line-height:1.68; color:rgba(246,243,238,.64); }
.wc-tgate__list{ list-style:none; margin:0; padding:0; }
.wc-tgate__list li{ display:flex; gap:clamp(18px,2.4vw,32px); align-items:flex-start;
  padding:clamp(24px,3vw,36px) 0; border-bottom:1px solid rgba(246,243,238,.1); }
.wc-tgate__list li:first-child{ padding-top:0; }
.wc-tgate__n{ font-family:var(--wc-mono); font-size:13px; font-weight:600; letter-spacing:.1em;
  color:var(--wc-brass-d); padding-top:5px; min-width:28px; }
.wc-tgate__list b{ display:block; font-family:var(--wc-serif); font-weight:500;
  font-size:clamp(20px,2vw,26px); color:var(--wc-white); }
.wc-tgate__list p{ margin:9px 0 0; max-width:48ch; font-family:var(--wc-sans); font-size:15px;
  font-weight:400; line-height:1.62; color:rgba(246,243,238,.66); }

/* ---- 04 . CTA ---- */
.wc-pcta{ position:relative; overflow:hidden; padding:clamp(100px,14vw,190px) 0;
  border-top:1px solid rgba(246,243,238,.06); }
.wc-pcta__glow{ position:absolute; left:50%; bottom:-40%; width:120%; height:120%;
  transform:translateX(-50%); pointer-events:none;
  background:radial-gradient(46% 50% at 50% 50%, rgba(201,169,97,.15) 0%, rgba(201,169,97,0) 62%); }
.wc-pcta__in{ position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; }
.wc-pcta__h{ margin:30px 0 0; font-family:var(--wc-serif); font-weight:360; letter-spacing:-.02em;
  font-size:clamp(38px,6vw,84px); line-height:1.04; color:var(--wc-white); max-width:18ch; }
.wc-pcta__h em{ font-style:italic; color:var(--wc-brass); }
.wc-pcta__btn{ margin-top:44px; }
.wc-pcta__note{ margin:26px 0 0; font-family:var(--wc-sans); font-size:12px; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(246,243,238,.45); }

/* ---- Responsive ---- */
@media (max-width:980px){
  .wc-gmap__index{ grid-template-columns:1fr 1fr; }
  .wc-tgate__in{ grid-template-columns:1fr; gap:36px; }
  .wc-tgate__aside{ position:static; }
}
@media (max-width:560px){
  .wc-gmap__index{ grid-template-columns:1fr; }
  .wc-gmap__readout{ position:static; margin-top:16px; min-width:0; }
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion:reduce){
  .wc-atmos__grid, .wc-atmos__particles{ animation:none; }
  .wc-ph__cue i{ animation:none; }
  .wc-node.is-on .wc-node__halo{ animation:none; }
  .wc-node__dot{ fill:var(--wc-brass); }
  .wc-node__halo{ opacity:0; }
  .wc-gmap__i{ opacity:1; }
  .wc-gmap__i::before{ transform:scaleY(1); }
}
