/* RF Rescue — site styles.
   Extracted from the build; edit here rather than in index.html. */

:root{
  --night:#0A1420; --night-2:#122032; --night-line:#1E3145;
  --paper:#EDF0F2; --paper-2:#F7F9FA; --line:#CDD5DA; --line-soft:#E0E6EA;
  --ink:#0B131B; --chalk:#E6EBEF;
  --mute-l:#5A6975; --mute-d:#8A9AA8;
  --trace:#D4402E; --trace-ink:#A6301F;
  --sans:'Instrument Sans',system-ui,sans-serif; --mono:'DM Mono',ui-monospace,monospace;
  --gut:3.5rem;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
canvas{display:block}
::selection{background:rgba(212,64,46,.22)}
:focus-visible{outline:2px solid var(--trace);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
.skip{position:absolute;top:-100px;left:1rem;z-index:99;background:var(--trace);color:#fff;padding:.7rem 1.1rem;font-weight:600}
.skip:focus{top:1rem}
.wrap{max-width:1140px;margin:0 auto;padding:0 var(--gut)}


/* ── Nav ── */
.nav{position:sticky;top:0;z-index:50;background:var(--night);
  border-bottom:1px solid var(--night-line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.05rem 0}
.mark{font-weight:700;font-size:1.35rem;letter-spacing:-.025em;color:var(--chalk)}
.mark em{color:var(--trace);font-style:normal}
.nav ul{display:flex;gap:1.75rem;list-style:none}
.nav ul a{font-size:.93rem;color:var(--mute-d)}
.nav ul a:hover{color:var(--chalk)}
.nav-right{display:flex;align-items:center;gap:1.25rem}
.nav-ln{font-size:.93rem;color:var(--mute-d)}
.nav-ln:hover{color:var(--chalk)}
.nav-cta{background:var(--trace);color:#fff;padding:.46rem 1.1rem;font-size:.9rem;font-weight:500}
.nav-cta:hover{background:#B93424}
.burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:4px}
.burger span{width:22px;height:1.5px;background:var(--chalk);display:block}

/* ── Bands ── */
.dark{background:var(--night);color:var(--chalk)}
.light{background:var(--paper);color:var(--ink)}

/* ── Hero: full-bleed, the globe is the environment ── */
.hero{position:relative;min-height:82vh;display:flex;align-items:center;overflow:hidden;
  padding:5rem 0 9rem}
.hero canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,var(--night) 0%,rgba(10,20,32,.95) 40%,rgba(10,20,32,.4) 66%,rgba(10,20,32,0) 86%)}
.hero-in{position:relative;z-index:2;max-width:42rem}
.kicker{font-family:var(--mono);font-size:.7rem;color:var(--trace);margin-bottom:1.6rem}
h1{font-size:clamp(2.5rem,4.9vw,4rem);font-weight:700;line-height:1.02;letter-spacing:-.032em;text-wrap:balance;max-width:15ch}
.hero p{color:var(--mute-d);font-size:1.14rem;line-height:1.55;margin-top:1.5rem;max-width:44ch}
.acts{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2.3rem}
.btn{background:var(--trace);color:#fff;padding:.85rem 1.75rem;font-weight:500;font-size:.98rem}
.btn:hover{background:#B93424}
.btn-g{border:1px solid var(--night-line);color:var(--chalk);padding:.85rem 1.75rem;font-size:.98rem}
.btn-g:hover{border-color:var(--mute-d)}

/* ── Credentials: straddles the dark/light seam, stitching the two together ── */
.creds-holder{position:relative;background:var(--paper);height:0}
.creds{position:relative;z-index:5;margin-top:-4.6rem}
.creds-in{background:var(--paper-2);border:1px solid var(--line);
  display:grid;grid-template-columns:auto 1fr auto;gap:3rem;align-items:center;padding:1.7rem 2.2rem}
.cred b{display:block;font-family:var(--mono);font-weight:500;font-size:1.5rem;letter-spacing:-.02em;line-height:1.1}
.cred span{display:block;font-family:var(--mono);font-size:.64rem;color:var(--mute-l);margin-top:.4rem}
.orgs{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;font-weight:600;font-size:1rem}
.orgs-note{font-family:var(--mono);font-size:.64rem;color:var(--mute-l);text-align:center;margin-top:.45rem}

/* ── Sections: sticky heading rail, asymmetric grid ── */
.sec{padding:7rem 0}
.sec-grid{display:grid;grid-template-columns:19.5rem 1fr;gap:4rem;align-items:start}
.sec-grid>*{min-width:0}
.sec-head{position:sticky;top:6.5rem}
.band{font-family:var(--mono);font-size:.66rem;color:var(--trace);margin-bottom:.8rem}
h2{font-size:clamp(1.7rem,2.5vw,2.05rem);font-weight:700;letter-spacing:-.026em;line-height:1.12}
.sec-head p{font-size:.95rem;margin-top:1rem}
.light .sec-head p{color:var(--mute-l)}
.dark .sec-head p{color:var(--mute-d)}
.lead{font-size:1.16rem;line-height:1.55;max-width:56ch}
.light .lead{color:var(--mute-l)}


/* ── Coverage scale: a real log axis, 300 kHz to 300 GHz, with the
   worked range filled. Decades are equal cells, so spacing is log by construction. ── */
@media(max-width:640px){
  .scale-ticks span:nth-child(even){display:none}
  }
.two{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;margin-top:3rem}
h3{font-size:1.2rem;font-weight:600;letter-spacing:-.015em;margin-bottom:.7rem}
.two p{color:var(--mute-l);font-size:1rem}
.two ul{list-style:none;margin-top:1.25rem}
.two li{padding:.5rem 0;border-top:1px solid var(--line-soft);font-size:.95rem}
.link{color:var(--trace-ink);border-bottom:1px solid rgba(166,48,31,.35);display:inline-block;margin-top:1.3rem;font-size:.95rem}
.link:hover{border-bottom-color:var(--trace-ink)}

/* ── Figure: the sweep, now static and earning its width ── */
.fig{margin-top:2.6rem}
.fig-head{max-width:44rem}
.fig svg{width:100%;height:auto;display:block}
.scene .cl{font-family:var(--mono);font-size:34px;fill:#A7B7C4;transition:fill .18s}
.scene .lead{fill:none;stroke:#5F7183;stroke-width:1.7;transition:stroke .18s}
.scene .dot{fill:#E4573F;transition:r .18s}
.scene .stub{fill:#0A1420;stroke:#5F7183;stroke-width:2.1;transition:stroke .18s}
.scene .lab{cursor:pointer}
.scene .lab:focus{outline:none}
/* hovering either end highlights the pair: red halo on the object, red label */
.scene .hot{opacity:0;transition:opacity .14s ease;pointer-events:none}
.scene .lab:hover .hot,
.scene .lab:focus-visible .hot{opacity:1}
.scene .lab:hover .cl,
.scene .lab:focus-visible .cl{fill:#E4573F}
.scene .lab:hover .lead, .scene .lab:hover .stub,
.scene .lab:focus-visible .lead, .scene .lab:focus-visible .stub{stroke:#E4573F}
.scene .lab:hover .dot,
.scene .lab:focus-visible .dot{r:8.4}
}
@media(max-width:860px){
  .fig{overflow-x:auto;scrollbar-width:none;margin-left:0}
  .fig::-webkit-scrollbar{display:none}
  .fig svg{min-width:880px}
}


.kit{display:flex;gap:3rem;flex-wrap:wrap}
.kit b{display:block;font-size:1.04rem;font-weight:600}
.kit span{color:var(--mute-l);font-size:.93rem}
.kit-note{color:var(--mute-l);font-size:.95rem;margin-top:2.2rem;max-width:56ch}

.bio{max-width:60ch}
.bio p{color:var(--mute-l);margin-bottom:1.2rem}
.bio p:first-child{color:var(--ink);font-size:1.16rem;line-height:1.55}

/* ── Tools band: dark, because these are instruments ── */
.tool{display:grid;grid-template-columns:44px 1fr auto;gap:1.6rem;align-items:center;
  padding:1.7rem 0;border-top:1px solid var(--night-line);color:var(--chalk)}
.tool:last-child{border-bottom:1px solid var(--night-line)}
.tool svg{width:44px;height:44px;color:var(--trace)}
.tool b{display:block;font-size:1.12rem;font-weight:600;letter-spacing:-.015em}
.tool span{color:var(--mute-d);font-size:.94rem}
.tool i{font-family:var(--mono);font-size:.66rem;color:var(--mute-d);font-style:normal;white-space:nowrap}
.tool:hover b{color:var(--trace)}
.tool:hover i{color:var(--chalk)}


/* ── Work filmstrip: scroll-snap, user-driven only. No autoplay. ── */
.work-ctl{display:flex;align-items:center;gap:.8rem;margin-top:1.6rem}
.work-btn{width:38px;height:38px;border:1px solid var(--night-line);background:none;color:var(--chalk);
  cursor:pointer;display:grid;place-items:center;transition:border-color .15s,color .15s}
.work-btn:hover:not([disabled]){border-color:var(--trace);color:var(--trace)}
.work-btn[disabled]{opacity:.3;cursor:default}
.work-count{font-family:var(--mono);font-size:.68rem;color:var(--mute-d)}
.strip{display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;-ms-overflow-style:none}
.strip::-webkit-scrollbar{display:none}
.strip:focus-visible{outline:2px solid var(--trace);outline-offset:6px}
.slide{flex:0 0 64%;scroll-snap-align:start;min-width:0}
.shot{position:relative;aspect-ratio:3/2;background:var(--night-2);
  border:1px solid var(--night-line);overflow:hidden}
.shot img{width:100%;height:100%;object-fit:cover;display:block;position:relative;z-index:1}
.ph{position:absolute;inset:0;z-index:0;display:grid;place-content:center;gap:.5rem;text-align:center;
  font-family:var(--mono);font-size:.66rem;color:#3E566E;line-height:1.9;
  background-image:linear-gradient(var(--night-line) 1px,transparent 1px),
                   linear-gradient(90deg,var(--night-line) 1px,transparent 1px);
  background-size:26px 26px;background-position:-1px -1px}
.ph b{font-size:1.5rem;font-weight:400;color:#4E6B87}
@media(max-width:820px){.slide{flex:0 0 88%}}

/* ── Contact ── */
.cgrid{display:grid;grid-template-columns:1fr 1.2fr;gap:4rem;align-items:start;margin-top:1rem}
.facts dt{font-family:var(--mono);font-size:.64rem;color:var(--mute-l);margin-top:1.15rem}
.facts dd{font-size:1rem;margin-top:.1rem}
.facts dd a{border-bottom:1px solid var(--line)}
.facts dd a:hover{color:var(--trace-ink)}
.legal{margin-top:2.2rem;padding-top:1.3rem;border-top:1px solid var(--line);
  font-family:var(--mono);font-size:.68rem;color:var(--mute-l);line-height:1.95}
form{display:flex;flex-direction:column;gap:1rem}
.f label{display:block;font-family:var(--mono);font-size:.64rem;color:var(--mute-l);margin-bottom:.3rem}
.f input,.f textarea,.f select{width:100%;background:#fff;border:1px solid var(--line);color:var(--ink);
  font-family:var(--sans);font-size:1rem;padding:.72rem .85rem}
.f input:focus,.f textarea:focus,.f select:focus{border-color:var(--trace);outline:none}
.f textarea{min-height:126px;resize:vertical}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.hp{position:absolute;left:-9999px}
.alt{font-size:.9rem;color:var(--mute-l)}
.alt a{border-bottom:1px solid var(--line)}
button.btn{border:0;cursor:pointer;font-family:var(--sans);align-self:flex-start}

footer{padding:2.6rem 0}
.foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  font-family:var(--mono);font-size:.68rem;color:var(--mute-d)}

@media(max-width:1080px){
  .sec-grid{grid-template-columns:1fr;gap:2.2rem}
  .sec-head{position:static}
}
@media(max-width:820px){
  :root{--gut:1.4rem}
  .nav ul,.nav-right .nav-cta{display:none}
  .burger{display:flex}
  .nav ul.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
    background:var(--night-2);border-bottom:1px solid var(--night-line);padding:.5rem var(--gut)}
  .nav ul.open li a{display:block;padding:.75rem 0}
  .hero{min-height:0;padding:4rem 0 7.5rem}
  .hero::after{background:linear-gradient(180deg,rgba(10,20,32,.92) 0%,rgba(10,20,32,.8) 55%,rgba(10,20,32,.35) 100%)}
  .sec{padding:4rem 0}
  .creds{margin-top:-3.6rem}
  .creds-in{grid-template-columns:1fr 1fr;gap:1.4rem 1.8rem;padding:1.4rem}
  .orgs-wrap{grid-column:1/-1;order:3}
  .orgs{justify-content:flex-start;font-size:.95rem;gap:.5rem 1.1rem}
  .orgs-note{text-align:left}
  .two,.cgrid,.duo{grid-template-columns:1fr}
  .two{gap:2.4rem}
  .tool{grid-template-columns:34px 1fr;gap:1.1rem}
  .tool svg{width:34px;height:34px}
  .tool i{display:none}
}



/* Contact: a single address, no form to fail silently */
.cmail{align-self:start;display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}
.cmail .btn{display:block;width:100%;box-sizing:border-box;text-align:center;
  font-size:1.02rem;letter-spacing:-.01em}
/* LinkedIn's own blue, used as a brand mark rather than as a site accent */
.btn-ln{background:#0A66C2}
.btn-ln:hover{background:#08529B}
