:root{
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --bg:#080d17; --bg-2:#0c1322; --surface:#111b2f; --surface-2:#16223a;
  --line:rgba(148,170,205,.14); --line-strong:rgba(120,160,220,.30);
  --ink:#eef3fb; --muted:#9fb2cf; --faint:#6f83a3;
  --brand:#003d85; --accent:#3f7fe0; --accent-soft:rgba(63,127,224,.16);
  --sage:rgba(150,178,150,.14);
  --shadow:0 18px 50px -20px rgba(0,0,0,.75);
  --shadow-lift:0 32px 70px -22px rgba(0,0,0,.85);
  --header-h:74px;
  color-scheme:dark;
}
[data-theme="light"]{
  --bg:#f4f7fc; --bg-2:#eef3fb; --surface:#ffffff; --surface-2:#f0f5fd;
  --line:rgba(20,45,90,.12); --line-strong:rgba(0,61,133,.28);
  --ink:#0d1a30; --muted:#42546f; --faint:#6f83a3;
  --accent:#1f5fc9; --accent-soft:rgba(31,95,201,.12);
  --shadow:0 18px 50px -24px rgba(20,45,90,.35);
  --shadow-lift:0 30px 66px -24px rgba(20,45,90,.45);
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:"Geist","Geist Fallback",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:18px; line-height:1.6; -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .5s var(--ease), color .5s var(--ease);
}
body.ip-dyslexic{font-family:"Lexend","Geist",sans-serif; letter-spacing:.01em;}
h1,h2,h3,h4{line-height:1.08; margin:0; font-weight:600; letter-spacing:-.02em;}
p{margin:0;} img{max-width:100%; display:block;}
a{color:var(--accent); text-decoration:none;}
a:hover{color:var(--ink);}
::selection{background:var(--accent); color:#fff;}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:3px;}
body{cursor:auto;}
@media (hover:hover) and (pointer:fine){ body.ip-cursor{cursor:none;} body.ip-cursor a, body.ip-cursor button{cursor:none;} }
input,textarea,select{font-family:inherit;}
@keyframes ip-kenburns{0%{transform:scale(1.06) translate(0,0)}100%{transform:scale(1.18) translate(-1.5%,-1.5%)}}
@keyframes ip-grain{0%{transform:translate(0,0)}10%{transform:translate(-4%,-3%)}30%{transform:translate(3%,-5%)}50%{transform:translate(-2%,4%)}70%{transform:translate(4%,2%)}90%{transform:translate(-3%,3%)}100%{transform:translate(0,0)}}
@keyframes ip-spin{to{transform:rotate(360deg)}}
@keyframes ip-rise{0%{opacity:0;transform:translateY(4px)}100%{opacity:1;transform:translateY(0)}}
.js [data-reveal]{opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease);}
.js [data-reveal].ip-in{opacity:1; transform:none;}
.ip-kb{animation:ip-kenburns 24s var(--ease) infinite alternate; will-change:transform;}
.ip-link{position:relative; text-decoration:none;}
.ip-link::after{content:""; position:absolute; left:0; bottom:-4px; height:2px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:left center; transition:transform .4s var(--ease);}
.ip-link:hover::after,.ip-link:focus-visible::after{transform:scaleX(1);}
.ip-card{transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);}
.ip-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lift); border-color:var(--line-strong);}
.ip-card .ip-photo{transition:transform .7s var(--ease);}
.ip-card:hover .ip-photo{transform:scale(1.06);}
.ip-card .ip-arrow{transition:transform .3s var(--ease);}
.ip-card:hover .ip-arrow{transform:translateX(4px);}
.ip-ico{transition:background .25s var(--ease), color .25s var(--ease);}
.ip-ico:hover{background:var(--sage); color:var(--ink);}
.ip-social:hover{color:var(--accent); border-color:var(--line-strong); box-shadow:0 0 0 4px var(--accent-soft), 0 8px 20px -8px rgba(63,127,224,.6); transform:translateY(-2px);}

/* ---- Header ---- */
.ip-hdr{position:fixed; top:0; left:0; right:0; z-index:100; background:var(--surface); border-bottom:1px solid var(--line);}
.ip-hdr-inner{max-width:1360px; margin:0 auto; padding:0 clamp(18px,4vw,44px); height:var(--header-h); display:flex; align-items:center; gap:20px;}
.ip-brand{display:flex; align-items:center; flex-shrink:0;}
.ip-logo{height:48px; width:auto; border-radius:9px; display:block;}
.ip-nav-wrap{display:flex; align-items:center;}
.ip-nav{display:flex; gap:30px; margin-left:14px;}
.ip-nav a{font-size:15.5px; font-weight:500; color:var(--muted); padding:4px 0;}
.ip-nav a:hover{color:var(--ink);}
.ip-hdr-right{margin-left:auto; display:flex; align-items:center; gap:6px;}
.ip-pill{display:inline-flex; align-items:center; gap:9px; height:42px; padding:0 16px; border-radius:12px; background:var(--surface-2); border:1px solid var(--line); color:var(--ink); font-weight:600; font-size:15px; white-space:nowrap;}
.ip-cta{display:inline-flex; align-items:center; gap:8px; height:42px; padding:0 18px; border-radius:12px; background:linear-gradient(150deg,var(--accent),var(--brand)); color:#fff; font-weight:600; font-size:15px; box-shadow:0 8px 22px -10px rgba(63,127,224,.85); white-space:nowrap;}
.ip-cta:hover{color:#fff;}
.ip-hdr .ip-ico{width:42px; height:42px; border:none; background:transparent; color:var(--ink); cursor:pointer;}
.ip-burger{display:none;}
.ip-mobile{display:none;}
@media (max-width:1040px){
  .ip-nav{display:none;}
  .ip-cta-desktop{display:none;}
  .ip-pill .ip-pill-num{display:none;}
  .ip-pill{padding:0; width:42px; justify-content:center;}
  .ip-burger{display:grid;}
  .ip-mobile{position:fixed; top:var(--header-h); left:0; right:0; flex-direction:column; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:var(--shadow); padding:14px clamp(18px,4vw,44px) 22px; gap:2px;}
  .ip-mobile a{padding:13px 0; font-size:18px; font-weight:500; color:var(--ink); border-bottom:1px solid var(--line);}
  .ip-mobile a.ip-cta{justify-content:center; border:none; color:#fff; margin-top:14px; border-radius:12px;}
  .ip-mobile.open{display:flex;}
}
@media (max-width:560px){ .ip-pill{display:none;} }

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  .js [data-reveal]{opacity:1 !important; transform:none !important;}
  .ip-kb{animation:none !important;}
}
/* ---- Responsive hardening (tablet + mobile) ---- */
@media (max-width:900px){
  .ip-sticky-media{position:static !important; top:auto !important; align-self:stretch !important;}
}
@media (max-width:640px){
  .ip-float-quote{position:static !important; left:auto !important; right:auto !important; bottom:auto !important; margin-top:16px !important; max-width:none !important; transform:none !important;}
}
