/* InvestigatePro site system v2 — concept 3a. Tokens + components + chrome + motion. */
:root{--teal:#004D40;--teal-2:#00695C;--ink:#112D3C;--blue:#2196F3;--green:#0B6E4F;--green-brand:#4CAF50;--mint:#64FFDA;--slate:#37474F;--graphite:#5A6B76;--mist:#D9E2E8;--cloud:#F4F7F9;--warn:#FFB300;--crit:#E53935;--dk1:#081C24;--dk2:#0C2833;--dk-text:#DCE9EE;--dk-dim:#9FB8C2;--font-head:'Montserrat',Verdana,sans-serif;--font-body:'Inter',system-ui,Arial,sans-serif;--r-card:12px;--r-btn:8px;--container:1120px}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:var(--font-body);color:var(--ink);background:#fff;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--teal-2);text-decoration:none}a:hover{color:var(--teal)}
h1,h2,h3,h4{font-family:var(--font-head);line-height:1.15}
h1{font-weight:800;font-size:clamp(38px,4.6vw,60px);letter-spacing:-.5px}
h2{font-weight:800;font-size:clamp(27px,3vw,38px);letter-spacing:-.3px}
h3{font-weight:700;font-size:20px}
.wrap{max-width:var(--container);margin:0 auto;padding:0 24px}
.sec{padding:96px 0}.sec-tight{padding:72px 0}
.eyebrow{font-family:var(--font-head);font-weight:700;font-size:12px;letter-spacing:2.4px;text-transform:uppercase;color:var(--teal-2)}
.dk .eyebrow{color:var(--mint)}
.lede{font-size:18px;color:var(--graphite);max-width:640px}
.dk{background-color:var(--dk1);background-image:linear-gradient(160deg,var(--dk1) 0%,var(--dk2) 100%);color:var(--dk-text)}
.dk h1,.dk h2,.dk h3{color:#fff}.dk .lede{color:var(--dk-dim)}
.dk a{color:var(--mint)}.dk a:hover{color:#A8FFEC}
.lt{background:#fff}.lt-cloud{background:var(--cloud)}
.hairline{height:3px;background:linear-gradient(90deg,var(--teal) 0%,var(--blue) 55%,var(--mint) 100%)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-weight:600;font-size:16px;border-radius:var(--r-btn);padding:14px 26px;border:1px solid transparent;cursor:pointer;min-height:48px;transition:background .15s,border-color .15s,color .15s}
.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:#0A5F44;color:#fff}
.btn-outline{border-color:var(--mist);color:var(--ink);background:#fff}.btn-outline:hover{border-color:var(--graphite);color:var(--ink)}
.dk .btn-outline{background:transparent;border-color:rgba(100,255,218,.45);color:var(--mint)}
.dk .btn-outline:hover{border-color:var(--mint);color:var(--mint)}
.btn-teal{background:var(--teal);color:#fff}.btn-teal:hover{background:#003a30;color:#fff}
.textlink{font-weight:600;border-bottom:2px solid var(--mint);padding-bottom:2px}
.micro{font-size:13px;color:var(--dk-dim)}
.card{background:#fff;border:1px solid var(--mist);border-radius:var(--r-card);padding:28px;display:block}
a.card{color:inherit}a.card:hover{border-color:var(--teal-2);color:inherit}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.4px;padding:5px 12px;border-radius:999px;border:1px solid var(--mist);color:var(--graphite);background:#fff}
.dk .chip{background:rgba(255,255,255,.04);border-color:rgba(220,233,238,.18);color:var(--dk-dim)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
/* ---------- chrome ---------- */
body.ip2-pad{padding-top:75px}
.ip2-nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(8,28,36,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(220,233,238,.12)}
.ip2-nav::before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--teal) 0%,var(--blue) 55%,var(--mint) 100%)}
.ip2-nav-row{max-width:var(--container);margin:0 auto;padding:0 24px;height:72px;display:flex;align-items:center;justify-content:space-between}
.ip2-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:800;font-size:16px;letter-spacing:.5px}
.ip2-logo .l1{color:#fff}.ip2-logo .l2{color:var(--mint)}
.ip2-links{display:flex;align-items:center;gap:26px;font-size:15px;font-weight:500}
.ip2-links a{color:var(--dk-text)}.ip2-links a:hover{color:#fff}
.ip2-links a[aria-current="page"]{color:#fff;font-weight:600;box-shadow:inset 0 -2px 0 var(--mint)}
.ip2-links .ip2-login{opacity:.85}
.ip2-cta{display:inline-flex;align-items:center;border:1px solid rgba(100,255,218,.45);color:var(--mint)!important;border-radius:var(--r-btn);padding:9px 18px;font-weight:600}
.ip2-cta:hover{border-color:var(--mint)}
.mm-btn{display:none;background:none;border:0;color:var(--dk-text);padding:10px;cursor:pointer;border-radius:8px}
.mm-btn:hover{color:#fff;background:rgba(255,255,255,.08)}
.mm-panel{display:none;background:var(--dk1);border-top:1px solid rgba(220,233,238,.12);padding:8px 24px 24px}
.mm-panel a{display:block;color:#fff;font-weight:600;padding:13px 4px;border-bottom:1px solid rgba(220,233,238,.12)}
.mm-panel a.ip2-login-m{color:var(--dk-dim);font-weight:500}
.mm-panel .btn{width:100%;margin-top:14px}
html.mm-open .mm-panel{display:block}
@media(max-width:860px){.ip2-links{display:none}.mm-btn{display:inline-flex;align-items:center}}
.ip2-nav.light{background:rgba(255,255,255,.96);border-bottom:1px solid var(--mist)}
.ip2-nav.light .ip2-logo .l1{color:var(--teal-2)}.ip2-nav.light .ip2-logo .l2{color:var(--ink)}
.ip2-nav.light .ip2-links a{color:var(--slate)}.ip2-nav.light .ip2-links a:hover{color:var(--ink)}
.ip2-nav.light .ip2-links a[aria-current="page"]{color:var(--teal);box-shadow:inset 0 -2px 0 var(--teal)}
.ip2-nav.light .ip2-cta{border-color:var(--teal);color:var(--teal)!important;background:transparent}
.ip2-nav.light .ip2-cta:hover{background:var(--teal);color:#fff!important}
.ip2-nav.light .mm-btn{color:var(--slate)}.ip2-nav.light .mm-btn:hover{color:var(--ink);background:var(--cloud)}
.ip2-footer{background:var(--dk1);color:var(--dk-dim);padding:72px 0 40px;font-size:14px}
.ip2-footer h4{font-family:var(--font-body);font-weight:600;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;color:#fff;margin-bottom:14px}
.ip2-footer a{color:var(--dk-dim)}.ip2-footer a:hover{color:var(--mint)}
.ip2-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:32px}
.ip2-footer ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.ip2-footer .ip2-logo{font-size:14px}
.ip2-wrap{max-width:var(--container);margin:0 auto;padding:0 24px}
.ip2-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.4px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(220,233,238,.18);color:var(--dk-dim)}
.ip2-byline .ip2-wrap{display:flex;align-items:center;gap:12px}
.accountability{border-top:1px solid rgba(220,233,238,.14);margin-top:48px;padding-top:24px;font-size:13px;color:var(--dk-dim);max-width:720px}
.ip2-byline{background:var(--cloud);border-bottom:1px solid var(--mist);padding:12px 0;font-size:14px;color:var(--graphite)}
.ip2-byline .wrap{display:flex;align-items:center;gap:12px}
.ip2-byline .dt{flex:none;width:32px;height:32px;border-radius:50%;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:800;font-size:12px}
@media(max-width:900px){.ip2-footer .cols{grid-template-columns:1fr 1fr}}
/* ---------- components ---------- */
.spine{position:relative;padding-left:34px;display:flex;flex-direction:column;gap:20px}
.spine::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--blue),var(--green-brand))}
.beat{position:relative;background:#fff;border:1px solid var(--mist);border-radius:var(--r-card);padding:20px 24px}
.beat::before{content:"";position:absolute;left:-31px;top:22px;width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px #fff}
.beat.final::before{background:var(--green-brand)}
.beat-tag{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.4px;color:var(--blue);background:#E8F3FD;border-radius:6px;padding:3px 10px;margin-bottom:10px}
.beat.final .beat-tag{color:#1B5E20;background:#E6F4EA}
.case-panel{background:#fff;border:1px solid var(--mist);border-radius:var(--r-card);padding:24px;box-shadow:0 8px 28px rgba(17,45,60,.08)}
.case-row{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;font-size:14px;color:var(--slate)}
.case-row b{font-family:var(--font-head);font-size:20px;color:var(--ink)}
.covbar{height:6px;border-radius:3px;background:var(--cloud);overflow:hidden;margin:6px 0 12px}
.covbar i{display:block;height:100%;border-radius:3px;background:var(--teal-2)}
.covlabel{font-size:12px;font-weight:600;color:var(--graphite);letter-spacing:.3px;display:flex;gap:8px;align-items:center}
.track{display:flex;align-items:center;gap:14px;font-size:12px;font-weight:700;letter-spacing:1.6px;color:var(--graphite)}
.trackline{flex:1;height:2px;background:linear-gradient(90deg,var(--mist),var(--blue));position:relative}
.track-marker{position:absolute;top:-4px;left:0;width:10px;height:10px;border-radius:50%;border:2px solid var(--blue);background:#fff;transition:left .2s linear}
.away{background:#EFF3F5;border:1px solid var(--mist);border-radius:var(--r-card);padding:24px;color:var(--graphite)}
.away ul,.toward ul{list-style:none;display:flex;flex-direction:column;gap:12px;font-size:15px}
.away li::before{content:"";display:inline-block;width:8px;height:8px;background:#C3CFD6;margin-right:10px}
.toward{background:#fff;border:1px solid var(--mist);border-left:3px solid var(--teal);border-radius:var(--r-card);padding:24px}
.toward li::before{content:"";display:inline-block;width:8px;height:8px;background:var(--teal);margin-right:10px}
.tl{position:relative;height:2px;background:linear-gradient(90deg,var(--teal),var(--blue));margin:40px 0 28px}
.tl i{position:absolute;top:-5px;width:12px;height:12px;border-radius:50%;background:var(--teal);border:2px solid #fff;box-shadow:0 0 0 2px var(--teal)}
.now-card{background:#fff;border:1px solid var(--mist);border-left:3px solid var(--blue);border-radius:var(--r-card);padding:28px;box-shadow:0 10px 30px rgba(17,45,60,.10)}
.field{border:1px solid var(--mist);border-radius:var(--r-btn);padding:13px 14px;font-size:15px;font-family:var(--font-body);color:var(--ink);background:#fff;min-height:48px;width:100%}
.field:focus{outline:2px solid var(--teal-2);outline-offset:1px}
.pilot-box{background:var(--cloud);border:1px solid var(--mist);border-radius:var(--r-card);padding:28px}
.form-msg{font-size:14px;margin-top:10px;display:none}
.form-msg.ok{display:block;color:var(--green)}.form-msg.err{display:block;color:var(--crit)}
.kicker-num{font-family:var(--font-head);font-weight:800;font-size:15px;color:var(--teal-2)}
.tier{display:flex;flex-direction:column;gap:14px;background:#fff;border:1px solid var(--mist);border-radius:var(--r-card);padding:28px}
.tier .price{font-family:var(--font-head);font-weight:800;font-size:40px;color:var(--ink)}
.tier .per{font-size:14px;color:var(--graphite);font-weight:400}
.tier ul{list-style:none;display:flex;flex-direction:column;gap:9px;font-size:14px;color:var(--slate)}
.tier li{display:flex;gap:9px;align-items:flex-start}
.pop{border:2px solid var(--teal);box-shadow:0 12px 32px rgba(0,77,64,.12);position:relative}
.pop-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--teal);color:#fff;font-size:12px;font-weight:600;letter-spacing:.6px;border-radius:999px;padding:4px 14px;white-space:nowrap}
.tick{flex:none;margin-top:4px}
.constellation{position:absolute;inset:0;width:100%;height:100%;opacity:.5;pointer-events:none}
/* ---------- motion (JS toggles classes; reduced-motion settles everything) ---------- */
#ip2-progress{display:none;position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--teal) 0%,var(--blue) 55%,var(--mint) 100%);z-index:60;transition:width .1s linear}
html.motion-on #ip2-progress{display:block}
.rail{display:none;position:fixed;right:18px;top:50%;transform:translateY(-50%);flex-direction:column;gap:14px;font-size:10px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;text-align:right;z-index:40;transition:opacity .4s}
html.motion-on .rail{display:flex}
.rail a{color:var(--graphite);border-right:2px solid var(--mist);padding-right:10px;display:block}
.rail a.on{color:var(--teal);border-right-color:var(--teal)}
.rail.rail-hide{opacity:0;pointer-events:none}
@media(max-width:1280px){html.motion-on .rail{display:none}}
html.motion-on .rise{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
html.motion-on .rise.in{opacity:1;transform:none}
html.motion-on .rise-d1{transition-delay:.08s}html.motion-on .rise-d2{transition-delay:.16s}html.motion-on .rise-d3{transition-delay:.24s}
html.motion-on .tl-draw{transform:scaleX(0);transform-origin:left;transition:transform 1s ease}
html.motion-on .tl-draw.in{transform:scaleX(1)}
html.motion-on .tl i{opacity:0;transition:opacity .3s ease}
html.motion-on .tl.in i{opacity:1}
html.motion-on .tl.in i:nth-child(1){transition-delay:.25s}html.motion-on .tl.in i:nth-child(2){transition-delay:.55s}html.motion-on .tl.in i:nth-child(3){transition-delay:.85s}
html.motion-on .beat{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
html.motion-on .beat.in{opacity:1;transform:none}
.covbar i{width:var(--w)}
html.motion-on #coach .covbar i{width:0;transition:width .9s ease .2s}
html.motion-on #coach .case-panel.in .covbar i{width:var(--w)}
html.motion-on .swap-pair .away li,html.motion-on .swap-pair .toward li{transition:opacity .5s ease,transform .5s ease;transition-delay:calc(var(--i)*.12s)}
html.motion-on .swap-wait .toward li{opacity:0;transform:translateY(10px)}
html.motion-on .swap-go .away li{opacity:.45}
html.motion-on .swap-go .toward li{opacity:1;transform:none}
.dots{display:none;gap:4px;margin-left:8px;vertical-align:middle}
html.motion-on .dots{display:inline-flex}
.dots i{width:5px;height:5px;border-radius:50%;background:var(--blue);animation:ip2dot 1s infinite}
.dots i:nth-child(2){animation-delay:.15s}.dots i:nth-child(3){animation-delay:.3s}
@keyframes ip2dot{0%,100%{opacity:.25}50%{opacity:1}}
/* ---------- responsive ---------- */
@media(max-width:900px){
  .grid3,.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sec{padding:64px 0}.sec-tight{padding:48px 0}
}
@media(max-width:640px){
  .grid2,.grid3,.grid4{grid-template-columns:minmax(0,1fr)}
  .lede{font-size:16px}
  .btn{width:100%}
  .btn-inline{width:auto}
  .ip2-footer .cols{grid-template-columns:1fr}
}
@media print{html.motion-on .rise,html.motion-on .beat{opacity:1!important;transform:none!important}html.motion-on .tl-draw{transform:none!important}html.motion-on .tl i{opacity:1!important}html.motion-on #coach .covbar i{width:var(--w)!important}html.motion-on .swap-wait .toward li,html.motion-on .swap-go .away li{opacity:1!important;transform:none!important}.ip2-nav,.mm-panel,#ip2-progress,.rail{display:none!important}body.ip2-pad{padding-top:0}}

/* real brand lockup replaces the drawn magnifier glyph */
.ip2-logo{gap:0}
.ip2-logo .lgm{height:30px;width:auto;display:block}
.ip2-footer .ip2-logo .lgm{height:26px}
@media(max-width:599px){.ip2-logo .lgm{height:25px}}

/* shared motion language: nav rail, section resolve, phrase lighting */
.ip2-links{position:relative}
.nrail{position:absolute;left:0;top:0;width:1px;height:2px;border-radius:1px;opacity:0;background:var(--mint,#64FFDA);transform:translate(0,0) scaleX(0);transform-origin:left center;pointer-events:none;transition:transform .19s cubic-bezier(.16,1,.3,1),opacity .18s ease}
.ip2-nav.light .nrail{background:var(--teal-2,#00695C)}
.ln{display:block}
html:not(.motion-on) .res,html:not(.motion-on) .ln{opacity:1!important;transform:none!important}
.lit-text .lw{color:var(--graphite,#5A6B76);transition:color .34s ease}
.lit-text .lw.lit{color:var(--slate,#37474F)}
html:not(.motion-on) .lit-text .lw{color:var(--slate,#37474F)}
@media(prefers-reduced-motion:reduce){.nrail{transition:opacity .18s ease}.lit-text .lw{transition:none}}
@media print{.res,.ln{opacity:1!important;transform:none!important}.lit-text .lw{color:var(--slate,#37474F)!important}}
