/* TDO Inc. shared styles */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:#000;font-weight:500;letter-spacing:.01em}
*:not(pre):not(code){font-family:'Barlow Condensed','Arial Narrow',sans-serif !important}
img{max-width:100%;height:auto}
h1,h2,h3{overflow-wrap:break-word}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #66FF66;outline-offset:2px}

.site-header{background:#000;border-bottom:1px solid #1F221F;position:sticky;top:0;z-index:50}
.nav{max-width:1240px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative}
.brand{display:block;line-height:0}
.brand img{height:52px;width:auto;display:block}
.navlinks{display:flex;flex-wrap:wrap;align-items:center;gap:22px;font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-weight:600;font-size:18px;letter-spacing:.06em;text-transform:uppercase}
.navlinks a{color:#E6E8E6;text-decoration:none}
.navlinks a:hover{color:#66FF66}
.navlinks a[aria-current=page]{color:#66FF66;border-bottom:2px solid #66FF66;padding-bottom:2px}
.navlinks .nav-call{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;background:#66FF66;color:#000;border-radius:4px}
.navlinks .nav-call:hover{color:#000;background:#B3FFB3}
.menu-toggle{display:none;width:46px;height:46px;align-items:center;justify-content:center;background:transparent;border:1px solid #3A3D3A;border-radius:4px;color:#fff;cursor:pointer}

@media (max-width:1180px){
  .menu-toggle{display:flex}
  .navlinks{display:none;position:absolute;top:100%;left:0;right:0;background:#000;border-bottom:1px solid #1F221F;flex-direction:column;align-items:stretch;gap:0;padding:4px 24px 20px}
  .navlinks.open{display:flex}
  .navlinks a{padding:14px 0;border-bottom:1px solid #1F221F;font-size:20px}
  .navlinks a[aria-current=page]{border-bottom:1px solid #1F221F;padding-bottom:14px}
  .navlinks .nav-call{justify-content:center;margin-top:14px;border-bottom:0}
}

@media (max-width:720px){
  .brand img{height:42px}
  h1{font-size:50px !important;line-height:.95 !important}
  h2{font-size:36px !important;line-height:1 !important}
  blockquote{font-size:28px !important}
  [style*="repeat(3, minmax(0, 1fr))"]{grid-template-columns:1fr !important}
  [style*="padding: 96px 24px"],[style*="padding: 88px 24px"]{padding-top:64px !important;padding-bottom:64px !important}
  form[style*="padding: 32px"]{padding:22px !important}
}
/* ---------- field explorer ---------- */
.fx{display:flex;flex-wrap:wrap;gap:20px;align-items:stretch}
.fx-stage{flex:3 1 560px;min-width:0;position:relative;border-radius:8px;overflow:hidden;border:1px solid #2A2D2A;background:#0B0C0B;align-self:flex-start}
.fx-canvas{display:block;width:100%;aspect-ratio:4/3;height:auto;touch-action:manipulation;outline:none}
.fx-canvas:focus-visible{box-shadow:inset 0 0 0 3px #66FF66}
.fx-top{position:absolute;left:12px;right:12px;top:12px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;pointer-events:none}
.fx-top>*{pointer-events:auto}
.fx-bottom{position:absolute;left:12px;bottom:12px;right:12px;pointer-events:none}
.fx-chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border-radius:4px;background:rgba(0,0,0,.72);color:#fff;border:1px solid rgba(255,255,255,.14);font:600 13px/1 'Barlow',sans-serif;letter-spacing:.04em;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
button.fx-chip{cursor:pointer;min-height:40px}
.fx-chip[hidden]{display:none}
.fx-layers{display:flex;gap:6px;margin-left:auto}
.fx-layers .fx-chip[aria-pressed=true]{background:#66FF66;color:#000;border-color:#66FF66}
.fx-stage-back{font-family:'Barlow Condensed','Arial Narrow',sans-serif;font-weight:700;font-size:16px;letter-spacing:.06em;text-transform:uppercase}
.fx-dot{width:8px;height:8px;border-radius:50%;background:#66FF66;box-shadow:0 0 0 0 rgba(102,255,102,.6);animation:fxPulse 1.6s infinite}
@media (min-width:960px){.fx-stage{position:sticky;top:100px}}
@keyframes fxPulse{0%{box-shadow:0 0 0 0 rgba(102,255,102,.6)}70%{box-shadow:0 0 0 8px rgba(102,255,102,0)}100%{box-shadow:0 0 0 0 rgba(102,255,102,0)}}
.fx.is-acre .fx-layers{display:none}

.fx-panel{flex:2 1 360px;min-width:0;background:#0B0C0B;border:1px solid #2A2D2A;border-top:4px solid #66FF66;border-radius:8px;padding:24px;display:flex;flex-direction:column;gap:14px;color:#fff}
.fx-panel.fx-in{animation:fxIn .45s ease both}
@keyframes fxIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fx-eyebrow{font:700 14px/1.2 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#66FF66}
.fx-title{font:800 32px/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase}
.fx-p{margin:0;font-size:16px;line-height:1.6;color:#C4C8C4}
.fx-small{font-size:15px;color:#A3A8A3}
.fx-small b{color:#fff}
.fx-legend{display:flex;align-items:center;gap:10px;font-size:13px;color:#A3A8A3}
.fx-ramp{flex:1;height:8px;border-radius:4px;background:linear-gradient(90deg,#1A3D1A,#2E7A2E,#66FF66)}
.fx-show{align-self:flex-start;min-height:52px;padding:0 26px;border:0;border-radius:4px;background:#66FF66;color:#000;font:700 19px/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.fx-show:hover{background:#B3FFB3}
.fx-note{margin:0;font-size:12px;line-height:1.5;color:#8E938E}
.fx-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.fx-panel-head .fx-title{font-size:28px;margin-top:6px}
.fx-back{min-height:40px;padding:0 14px;border-radius:4px;border:1px solid #3A3D3A;background:transparent;color:#fff;font:700 15px/1 'Barlow Condensed','Arial Narrow',sans-serif;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.fx-back:hover{border-color:#66FF66;color:#66FF66}
.fx-score{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:#151715;border:1px solid #2A2D2A;border-radius:6px}
.fx-score>div:first-child{display:flex;justify-content:space-between;align-items:baseline}
.fx-k{font-size:14px;font-weight:600;color:#C4C8C4}
.fx-score b{font:800 34px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#66FF66}
.fx-score small{font-size:16px;color:#8E938E;margin-left:2px}
.fx-score-bar{height:6px;border-radius:3px;background:#2A2D2A;overflow:hidden}
.fx-score-bar span{display:block;height:100%;background:linear-gradient(90deg,#2E7A2E,#66FF66);animation:fxGrow 1s ease both;transform-origin:left}
@keyframes fxGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.fx-sub{font:700 13px/1.2 'Barlow',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#A3A8A3;margin-top:4px}
.fx-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.fx-metric{display:flex;flex-direction:column;gap:6px}
.fx-metric-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:14px;color:#C4C8C4}
.fx-metric-top b{font:700 20px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#fff;white-space:nowrap}
.fx-metric-top small{font:500 12px 'Barlow',sans-serif;color:#8E938E}
.fx-meter{position:relative;height:6px;border-radius:3px;background:#2A2D2A}
.fx-pin{position:absolute;top:-4px;width:4px;height:14px;margin-left:-2px;border-radius:2px;background:#66FF66;animation:fxIn .6s ease both}
.fx-pin-low{background:#FFB547}
.fx-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fx-chart{display:block;width:100%;height:auto;margin-top:6px}
.fx-tv{font:600 11px 'Barlow',sans-serif;fill:#fff}
.fx-tl{font:500 11px 'Barlow',sans-serif;fill:#8E938E}
.fx-bar{transform-box:fill-box;transform-origin:bottom;animation:fxBar .7s cubic-bezier(.2,.8,.2,1) both}
@keyframes fxBar{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.fx-line{stroke-dasharray:1;stroke-dashoffset:1;animation:fxDraw 1.4s .2s ease forwards}
@keyframes fxDraw{to{stroke-dashoffset:0}}
.fx-area{animation:fxIn 1s .8s ease both}
.fx-rank{font-size:15px;color:#C4C8C4}
.fx-rank b{font:800 24px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#66FF66}
.fx-cmps{display:flex;flex-direction:column;gap:8px}
.fx-cmp{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:12px;font-size:14px}
.fx-cmp-l{color:#C4C8C4}
.fx-cmp-bar{position:relative;height:8px;border-radius:4px;background:#1F221F}
.fx-cmp-mid{position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:#8E938E}
.fx-cmp-fill{position:absolute;top:0;bottom:0;border-radius:4px;animation:fxIn .6s ease both}
.fx-cmp-fill.up{background:#66FF66}
.fx-cmp-fill.down{background:#FFB547}
.fx-cmp-v{font:700 16px/1 'Barlow Condensed','Arial Narrow',sans-serif;color:#fff;white-space:nowrap;text-align:right}
.fx-cmp-v small{font:500 12px 'Barlow',sans-serif;color:#8E938E}
.fx-flow{display:flex;flex-direction:column;align-items:stretch}
.fx-srcs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fx-src{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:6px;background:#151715;border:1px solid #2A2D2A;font:600 14px/1.2 'Barlow',sans-serif;color:#E6E8E6;animation:fxIn .5s ease both}
.fx-src svg,.fx-box-lock svg{width:18px;height:18px;flex:none;fill:none;stroke:#66FF66;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fx-pipe{display:block;width:2px;height:30px;margin:0 auto;background:repeating-linear-gradient(to bottom,#66FF66 0 6px,transparent 6px 12px);animation:fxFlow .6s linear infinite;opacity:.85}
@keyframes fxFlow{from{background-position:0 0}to{background-position:0 12px}}
.fx-box{position:relative;overflow:hidden;padding:20px 18px;border-radius:8px;background:#000;border:1px solid #66FF66;box-shadow:0 0 28px rgba(102,255,102,.18),inset 0 0 18px rgba(102,255,102,.08);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.fx-box::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(102,255,102,.16) 50%,transparent 70%);transform:translateX(-100%);animation:fxShine 2.6s ease-in-out infinite;pointer-events:none}
@keyframes fxShine{to{transform:translateX(100%)}}
.fx-box-k{font:800 32px/1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase;letter-spacing:.03em}
.fx-box-s{font-size:14px;line-height:1.5;color:#A3A8A3;max-width:300px}
.fx-box-lock{display:inline-flex;align-items:center;gap:6px;font:700 11px/1 'Barlow',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#66FF66}
.fx-box-lock svg{width:14px;height:14px}
.fx-need-plan .fx-badge{background:transparent;border:1px solid #66FF66;color:#66FF66}
.fx-needs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fx-need{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:6px;background:#151715;border:1px solid #2A2D2A;animation:fxIn .5s ease both}
.fx-need div{display:flex;flex-direction:column;gap:3px;min-width:0}
.fx-need b{font:700 18px/1.1 'Barlow Condensed','Arial Narrow',sans-serif;text-transform:uppercase}
.fx-need div span{font-size:14px;line-height:1.5;color:#C4C8C4}
.fx-badge{flex:none;padding:4px 8px;border-radius:3px;font:700 12px/1 'Barlow',sans-serif;letter-spacing:.08em;text-transform:uppercase;margin-top:2px}
.fx-need-priority .fx-badge{background:#FFB547;color:#000}
.fx-need-priority{border-left:3px solid #FFB547}
.fx-need-watch .fx-badge{background:#2A2D2A;color:#FFD48A}
.fx-need-good .fx-badge{background:#66FF66;color:#000}
@media (max-width:720px){
  .fx-panel{padding:18px}
  .fx-chip{font-size:12px;padding:0 10px}
  .fx-tag{display:none}
  }
@media (max-width:420px){
  .fx-metrics,.fx-charts{grid-template-columns:1fr}
  .fx-cmp{grid-template-columns:96px minmax(0,1fr) auto;gap:8px}
}
@media (prefers-reduced-motion:reduce){
  .fx-panel.fx-in,.fx-bar,.fx-line,.fx-area,.fx-pin,.fx-score-bar span,.fx-dot,.fx-src,.fx-pipe,.fx-box::after,.fx-need,.fx-cmp-fill{animation:none}
  .fx-line{stroke-dashoffset:0}
}
@media (max-width:420px){
  h1{font-size:42px !important}
  h2{font-size:32px !important}
}
