body{margin:0;background:#0e0e14;color:#0e0e14;font-family:'IBM Plex Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:hover{opacity:.75}
::selection{background:#e8ff2e;color:#0e0e14}
html{scroll-behavior:smooth}
@keyframes roll{to{transform:translateX(-50%)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spinrev{to{transform:rotate(-360deg)}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.15}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01s!important;animation-iteration-count:1!important}}
@media (max-width:1240px){#hero-rings{opacity:.35}#hero-rings b{opacity:0}}
#hero-h1 em{color:#e8ff2e;font-style:normal}
#stmt-p strong{color:#1b2fd6}
#dual-p strong{color:#1b2fd6}
#x-title sup{color:#e8ff2e;font-size:.45em;vertical-align:top}
#x-sum strong{color:#e8ff2e}
#x-sum em{color:#e8ff2e;font-style:normal}
.focus-copy strong{color:#e8ff2e}

/* Logo lockup (design 3a): RIGHTS letter-justified to the exact width of MOBY DICK.
   margin-right cancels the trailing letter-spacing after the final K so both lines end flush. */
.lockup{display:inline-flex;flex-direction:column;text-decoration:none}
.lockup-name{font-family:'Oswald',sans-serif;font-weight:700;font-size:23px;line-height:1;letter-spacing:.02em;margin:0 -.032em 0 -.055em;text-transform:uppercase;white-space:nowrap;color:#fff}
.lockup-sub{display:flex;justify-content:space-between;margin:4px -.05em 0 -.08em;color:#e8ff2e;font:600 8.5px/1 'IBM Plex Mono',monospace}
.lockup-sub i{font-style:normal}

/* Mobile hamburger button — hidden on desktop, shown ≤800px */
.menu-btn{display:none;flex-shrink:0;width:38px;height:38px;padding:0;background:transparent;border:1px solid #e8ff2e;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.menu-btn i{display:block;width:16px;height:2px;background:#e8ff2e}

@media(max-width:800px){
  header{padding:9px 4vw!important;min-height:60px;box-sizing:border-box;flex-wrap:wrap!important;gap:10px!important}
  header>a{gap:8px!important;flex-shrink:0}
  .lockup-name{font-size:19px}
  .lockup-sub{margin-top:3px;font-size:7px}
  header nav{margin-left:auto;gap:0!important;flex-wrap:nowrap!important}
  header nav>a{display:none!important}
  header .language-switch button{padding:9px 9px!important}
  .menu-btn{display:flex}
  /* Open state: nav drops below the bar as a stacked panel */
  header.nav-open nav{flex-basis:calc(100% + 8vw);order:9;flex-direction:column;align-items:stretch!important;flex-wrap:wrap!important;margin:9px -4vw -9px;border-top:1px solid rgba(255,255,255,.4)}
  header.nav-open nav>a{display:block!important;padding:17px 4vw;border-bottom:1px solid rgba(255,255,255,.25);font-size:12px!important}
  header.nav-open nav .language-switch{align-self:flex-start;margin:14px 4vw 16px}
  .focus-copy{margin-left:0!important}
  /* ---- Mobile spacing: kill the desktop-only air ---- */
  #explainer article{min-height:0!important;padding:28px 4vw!important}
  #explainer article h3{margin:16px 0 14px!important}
  #explainer article p{margin:0!important}
  #explainer>div:first-child{padding:52px 4vw 44px!important}
  #x-title{margin-top:44px!important}
  #x-sum{padding:52px 4vw 44px!important}
  #x-sum h3{margin-top:36px!important}
  #system{padding:60px 4vw!important}
  #contact{padding:64px 4vw!important;gap:52px!important}
  section:has(#stmt-p){padding:60px 4vw 52px!important}
  section:has(blockquote){min-height:0!important;gap:34px!important;padding:52px 4vw!important}
  #hero-h1{margin:34px 0 36px!important}
  .hero-content{padding:56px 4vw 44px!important}
  .hero-content>div:last-child{margin-top:44px!important}
  .case-grid{grid-template-columns:1fr!important;margin-left:-4vw!important;margin-right:-4vw!important}
  .case-grid article{padding-left:5vw!important;padding-right:5vw!important}
  .case-grid article>div:nth-child(2){font-size:17vw!important}
  .metrics-grid{grid-template-columns:1fr!important}
  .metrics-grid article{border-right:0!important;border-bottom:1px solid #0e0e14}
  .metrics-grid article:last-child{border-bottom:0}
}

/* Let hovers reach the planets behind the hero text; only the CTA stays clickable */
.hero-content{pointer-events:none}
.hero-content a{pointer-events:auto}

/* Hero solar system planets: hover keyword labels.
   Planets counter-rotate against their orbit so the label stays level. */
.planet{pointer-events:auto;cursor:crosshair}
.planet::before{content:"";position:absolute;inset:-16px;border-radius:50%}
.planet::after{content:attr(data-l);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);padding:6px 9px;background:#e8ff2e;color:#0e0e14;font:700 10px/1 'IBM Plex Mono',monospace;letter-spacing:.12em;white-space:nowrap;opacity:0;transition:opacity .15s;pointer-events:none}
.planet:hover,.planet.on{box-shadow:0 0 0 5px rgba(232,255,46,.3)}
.planet:hover::after,.planet.on::after{opacity:1}
/* .orbit-on is set by script.js when the mouse is near an orbit line */
.orbit-on{border-color:rgba(232,255,46,.75)!important}

/* Language switch buttons (state toggled by script.js via .active) */
.language-switch button{border:0;background:transparent;color:#fff;padding:10px 11px;font:700 10px/1 'IBM Plex Mono',monospace;cursor:pointer;letter-spacing:.08em}
.language-switch button.active{background:#e8ff2e;color:#0e0e14}

/* Static equivalents of the design's style-focus / style-hover attributes */
.contact-form input:focus{border-bottom-color:#e8ff2e!important}
.submit-btn:hover{background:#f4ff70!important}
