/* mobile-first: base=mobile, min-width enhancements; generated by css_mobile_first.py + css_fix_revert.py */
*{ box-sizing:border-box; margin-top:0; margin-right:0; margin-bottom:0; margin-left:0; padding-top:0; padding-right:0; padding-bottom:0; padding-left:0; }
html{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; scroll-behavior:smooth; }
body{ font-family:-apple-system, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", sans-serif; background:#fff; color:#1d1d1f; font-size:17px; line-height:1.47; overflow-x:hidden; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
img{ max-width:100%; display:block; }
:root{ --max-w:1320px; --brand-red:#c8102e; --brand-red-dark:#8c0a1f; --ink:#1d1d1f; --ink-2:#6e6e73; --ink-3:#86868b; --bg-light:#fbfbfd; --bg-grey:#f5f5f7; --line:rgba(0,0,0,0.10); }
.eyebrow{ display:inline-flex; align-items:center; gap:9px; font-size:12.5px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--brand-red); }
.eyebrow::before{ content:''; width:30px; height:2px; background:var(--brand-red); display:inline-block; }
.eyebrow.light{ color:#ff6b82; }
.eyebrow.light::before{ background:#ff6b82; }
.eyebrow.center{ justify-content:center; }
.h-display{ font-size:clamp(38px, 6vw, 72px); font-weight:700; letter-spacing:-0.03em; line-height:1.04; }
.h-2{ font-size:clamp(28px, 3.4vw, 44px); font-weight:700; letter-spacing:-0.025em; line-height:1.1; }
.accent{ color:var(--brand-red); }
.lede{ font-size:clamp(17px, 1.5vw, 20px); line-height:1.55; color:var(--ink-2); }
.btn{ display:inline-flex; align-items:center; gap:8px; border:none; border-radius:12px; padding-top:13px; padding-right:26px; padding-bottom:13px; padding-left:26px; font-size:15px; font-weight:550; transition:all .2s; cursor:pointer; }
.btn-red{ background:var(--brand-red); color:#fff; }
.btn-red:hover{ background:var(--brand-red-dark); }
.btn-ghost{ background:rgba(255,255,255,0.08); color:#fff; border:1px solid rgba(255,255,255,0.22); }
.btn-ghost:hover{ background:rgba(255,255,255,0.16); }
.btn-line{ background:#fff; color:var(--ink); border:1px solid var(--line); }
.btn-line:hover{ background:var(--bg-grey); }
.wrap{ max-width:var(--max-w); margin-top:0; margin-right:auto; margin-bottom:0; margin-left:auto; }
section{ padding-top:58px; padding-right:22px; padding-bottom:58px; padding-left:22px; }
.promo-strip{ background:var(--brand-red); color:#fff; text-align:center; font-size:13px; padding-top:11px; padding-right:22px; padding-bottom:11px; padding-left:22px; letter-spacing:0.2px; }
.promo-strip strong{ font-weight:700; }
.promo-strip .promo-divider{ margin-top:0; margin-right:14px; margin-bottom:0; margin-left:14px; opacity:0.5; }
.nav-wrapper{ position:sticky; top:0; z-index:9999; background:rgba(0,0,0,0.82); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); }
.main-nav{ height:60px; display:flex; align-items:center; padding-top:0; padding-right:22px; padding-bottom:0; padding-left:22px; }
.main-nav-inner{ max-width:var(--max-w); width:100%; margin-top:0; margin-right:auto; margin-bottom:0; margin-left:auto; display:flex; align-items:center; }
.brand-logo{ background-image:url('/static/images/icarsoft-logo.png'); background-repeat:no-repeat; background-position:left center; background-size:contain; display:block; }
.nav-logo{ display:inline-flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:4px; height:60px; margin-right:34px; transition:opacity .2s; }
.nav-logo:hover{ opacity:0.85; }
.nav-logo-mark{ width:146px; height:28px; }
.nav-logo-tagline{ font-size:10.5px; line-height:1; letter-spacing:0.015em; color:rgba(255,255,255,0.72); white-space:nowrap; font-weight:500; }
.nav-links{ display:flex; align-items:center; height:60px; gap:2px; }
.nav-link{ color:rgba(255,255,255,0.85); font-size:12.5px; font-weight:400; background:transparent; border:none; padding-top:0; padding-right:13px; padding-bottom:0; padding-left:13px; height:60px; letter-spacing:0.01em; transition:color .15s; white-space:nowrap; display:inline-flex; align-items:center; }
.nav-link:hover{ color:#fff; }
.nav-link.active{ color:#fff; font-weight:600; }
.nav-right{ margin-left:auto; display:flex; align-items:center; gap:18px; }
.nav-utils{ display:flex; align-items:center; gap:16px; }
.nav-util-link{ color:rgba(255,255,255,0.8); font-size:12px; display:inline-flex; align-items:center; gap:5px; transition:color .15s; }
.nav-util-link:hover{ color:#fff; }
.nav-util-link.signin{ border:1px solid rgba(255,255,255,0.28); padding-top:6px; padding-right:14px; padding-bottom:6px; padding-left:14px; border-radius:8px; }
.nav-util-link.signin:hover{ background:var(--brand-red-dark); border-color:var(--brand-red-dark); color:#fff; }
.nav-icons{ display:flex; align-items:center; gap:16px; }
.nav-icon{ color:rgba(255,255,255,0.85); font-size:19px; display:inline-flex; }
.nav-icon:hover{ color:#fff; }
.hamburger{ display:inline-flex; background:transparent; border:none; color:#fff; font-size:22px; }
.hero{ position:relative; min-height:auto; background:linear-gradient(135deg, #0a0a0c 0%, #1d1d1f 52%, #2c1414 100%); color:#fff; display:flex; align-items:center; justify-content:center; text-align:center; padding-top:64px; padding-right:22px; padding-bottom:72px; padding-left:22px; overflow:hidden; }
.hero::before{ content:''; position:absolute; top:0; right:0; bottom:0; left:0; background:radial-gradient(ellipse at top right, rgba(200,16,46,0.28) 0%, transparent 52%), radial-gradient(ellipse at bottom left, rgba(0,102,204,0.13) 0%, transparent 52%); pointer-events:none; }
.hero-grid{ position:absolute; top:0; right:0; bottom:0; left:0; background-image:linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px); background-size:62px 62px; pointer-events:none; mask-image:radial-gradient(ellipse at center, black 28%, transparent 80%); -webkit-mask-image:radial-gradient(ellipse at center, black 28%, transparent 80%); }
.hero-content{ position:relative; z-index:2; max-width:880px; }
.hero h1{ color:#fff; margin-top:22px; margin-right:0; margin-bottom:24px; margin-left:0; }
.hero h1 .accent{ background:linear-gradient(135deg, #ff4d6a 0%, #c8102e 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero .lede{ color:rgba(255,255,255,0.82); max-width:660px; margin-top:0; margin-right:auto; margin-bottom:0; margin-left:auto; }
.hero-cta{ margin-top:36px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.promise{ background:#0c0c0e; color:#fff; padding-top:0; padding-right:0; padding-bottom:0; padding-left:0; }
.promise-inner{ max-width:var(--max-w); margin-top:0; margin-right:auto; margin-bottom:0; margin-left:auto; display:grid; grid-template-columns:repeat(2, 1fr); }
.promise-item{ padding-top:30px; padding-right:26px; padding-bottom:30px; padding-left:26px; border-right:none !important; display:flex; gap:14px; align-items:flex-start; }
.promise-item:last-child{ border-right:none; }
.promise-item i{ color:#ff6b82; font-size:24px; flex-shrink:0; }
.promise-item .pt{ font-size:14.5px; font-weight:650; color:#fff; line-height:1.3; }
.promise-item .ps{ font-size:12.5px; color:rgba(255,255,255,0.55); margin-top:4px; line-height:1.4; }
.philo{ background:#fff; }
.philo-grid{ display:grid; grid-template-columns:1fr; gap:40px; align-items:center; }
.philo-copy h2{ margin-top:18px; margin-right:0; margin-bottom:20px; margin-left:0; }
.philo-copy p{ color:var(--ink-2); font-size:16.5px; line-height:1.62; }
.philo-copy p + p{ margin-top:16px; }
.loop{ display:grid; gap:14px; }
.loop-node{ display:flex; align-items:center; gap:16px; padding-top:20px; padding-right:22px; padding-bottom:20px; padding-left:22px; border:1px solid var(--line); border-radius:16px; background:var(--bg-light); position:relative; }
.loop-node .ln{ width:46px; height:46px; border-radius:12px; background:linear-gradient(135deg,#c8102e,#8c0a1f); color:#fff; display:grid; place-items:center; font-size:22px; flex-shrink:0; }
.loop-node h4{ font-size:16px; font-weight:650; }
.loop-node p{ font-size:13.5px; color:var(--ink-2); margin-top:3px; }
.loop-arrow{ display:grid; place-items:center; color:var(--brand-red); font-size:20px; height:8px; }
.pillars{ background:var(--bg-grey); }
.pillars-head{ max-width:640px; margin-bottom:56px; }
.pillars-head h2{ margin-top:18px; }
.pillars-head p{ margin-top:16px; }
.pillar{ display:grid; grid-template-columns:1fr; gap:56px; align-items:center; margin-bottom:40px; background:#fff; border:1px solid var(--line); border-radius:24px; overflow:hidden; }
.pillar:last-child{ margin-bottom:0; }
.pillar-media{ position:relative; min-height:360px; background:#0c0c0e; }
.pillar-media img{ width:100%; height:100%; min-height:360px; object-fit:cover; }
.pillar-media::after{ content:''; position:absolute; top:0; right:0; bottom:0; left:0; background:linear-gradient(120deg, rgba(10,10,12,0.45) 0%, rgba(10,10,12,0) 55%); pointer-events:none; }
.pillar-media .badge{ position:absolute; top:20px; left:20px; z-index:2; display:inline-flex; align-items:center; gap:7px; background:rgba(200,16,46,0.92); color:#fff; font-size:12px; font-weight:650; padding-top:7px; padding-right:14px; padding-bottom:7px; padding-left:14px; border-radius:100px; }
.pillar-body{ padding-top:34px; padding-right:26px; padding-bottom:34px; padding-left:26px; }
.pillar.reverse .pillar-media{ order:0; }
.pillar.reverse .pillar-body{ order:0; }
.pillar-body .pi{ width:54px; height:54px; border-radius:14px; background:rgba(200,16,46,0.08); color:var(--brand-red); display:grid; place-items:center; font-size:26px; margin-bottom:20px; }
.pillar-body h3{ font-size:clamp(22px, 2.2vw, 28px); font-weight:650; letter-spacing:-0.015em; margin-bottom:14px; }
.pillar-body > p{ font-size:16px; line-height:1.6; color:var(--ink-2); }
.pillar-list{ margin-top:22px; display:grid; gap:12px; }
.pillar-list div{ display:flex; gap:11px; align-items:flex-start; font-size:14.5px; line-height:1.5; color:var(--ink); }
.pillar-list i{ color:var(--brand-red); font-size:18px; flex-shrink:0; margin-top:1px; }
.resources{ background:#fff; }
.res-head{ max-width:620px; margin-bottom:46px; }
.res-head h2{ margin-top:18px; }
.res-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:18px; }
.res-card{ display:flex; gap:18px; align-items:flex-start; padding-top:26px; padding-right:26px; padding-bottom:26px; padding-left:26px; border:1px solid var(--line); border-radius:18px; transition:transform .2s, box-shadow .2s, border-color .2s; }
.res-card:hover{ transform:translateY(-3px); box-shadow:0 22px 44px -28px rgba(0,0,0,0.26); border-color:rgba(200,16,46,0.3); }
.res-card .ri{ width:46px; height:46px; border-radius:12px; background:var(--bg-grey); color:var(--brand-red); display:grid; place-items:center; font-size:22px; flex-shrink:0; }
.res-card h4{ font-size:16.5px; font-weight:650; display:flex; align-items:center; gap:6px; }
.res-card h4 i{ font-size:15px; color:var(--ink-3); transition:transform .2s; }
.res-card:hover h4 i{ transform:translateX(3px); color:var(--brand-red); }
.res-card p{ font-size:13.5px; color:var(--ink-2); margin-top:5px; line-height:1.5; }
.cta{ background:#9a1c34; color:#fff; text-align:center; }
.cta h2{ color:#fff; font-size:clamp(30px,4vw,52px); font-weight:700; letter-spacing:-0.03em; }
.cta p{ color:rgba(255,255,255,0.85); font-size:17px; margin-top:18px; margin-right:auto; margin-bottom:32px; margin-left:auto; max-width:580px; }
.cta-btns{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.cta .btn-white{ background:#fff; color:var(--brand-red); }
.cta .btn-white:hover{ background:#f0f0f2; }
.cta .btn-outline{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,0.6); }
.cta .btn-outline:hover{ background:rgba(255,255,255,0.12); }
footer{ background:#0a0a0c; color:rgba(255,255,255,0.7); }
.footer-inner{ max-width:var(--max-w); margin-top:0; margin-right:auto; margin-bottom:0; margin-left:auto; padding-top:64px; padding-right:40px; padding-bottom:40px; padding-left:40px; }
.footer-cols{ display:grid; grid-template-columns:repeat(3, 1fr); gap:34px; }
.footer-col h6{ font-size:12px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#fff; margin-bottom:16px; }
.footer-col a{ display:block; font-size:13.5px; color:rgba(255,255,255,0.6); margin-bottom:11px; transition:color .15s; }
.footer-col a:hover{ color:#fff; }
.footer-brand .footer-logo{ width:130px; height:26px; filter:brightness(0) invert(1); opacity:0.95; margin-bottom:14px; }
.footer-tagline{ font-size:12px; color:rgba(255,255,255,0.5); margin-bottom:14px; }
.footer-slogan{ font-size:17px; font-weight:650; color:#fff; margin-bottom:8px; }
.footer-brand > p{ font-size:13px; line-height:1.55; color:rgba(255,255,255,0.55); }
.footer-contact{ margin-top:18px; display:flex; flex-direction:column; gap:8px; }
.footer-contact div{ font-size:13px; color:rgba(255,255,255,0.7); display:flex; align-items:center; gap:8px; }
.footer-contact i{ color:var(--brand-red); }
.social-band{ border-top:1px solid rgba(255,255,255,0.1); }
.social-band-inner{ max-width:var(--max-w); margin-top:0; margin-right:auto; margin-bottom:0; margin-left:auto; padding-top:22px; padding-right:40px; padding-bottom:22px; padding-left:40px; display:flex; align-items:center; justify-content:space-between; }
.social-icons{ display:flex; gap:18px; }
.social-icons a{ color:rgba(255,255,255,0.6); font-size:19px; transition:color .15s; }
.social-icons a:hover{ color:#fff; }
.footer-copy{ font-size:12.5px; color:rgba(255,255,255,0.45); }
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in{ opacity:1; transform:none; }
.mobile-menu{ display:none; position:fixed; top:60px; right:0; bottom:0; left:0; z-index:9998; background:rgba(8,8,10,0.98); backdrop-filter:blur(16px); padding-top:24px; padding-right:24px; padding-bottom:24px; padding-left:24px; }
.mobile-menu.open{ display:block; }
.mobile-menu a{ display:block; color:#fff; font-size:18px; padding-top:16px; padding-right:4px; padding-bottom:16px; padding-left:4px; border-bottom:1px solid rgba(255,255,255,0.08); }
.vpanel.photo{ display:block; padding-top:0; padding-right:0; padding-bottom:0; padding-left:0; background:#0a0a0c; }
.vpanel.photo>img{ position:absolute; top:0; right:0; bottom:0; left:0; width:100%; height:100%; object-fit:cover; z-index:1; }
@media (prefers-reduced-motion: reduce){ .reveal { opacity: 1; transform: none; transition: none; } }
@media (max-width: 1080px) {
  .nav-links, .nav-utils{ display:none; }
  .pillar-media, .pillar-media img{ min-height:280px; }
  .promise-item:nth-child(2){ border-right:none; }
  .promise-item:nth-child(1), .promise-item:nth-child(2){ border-bottom:1px solid rgba(255,255,255,0.08); }
}
@media (max-width: 680px) {
  .nav-logo-tagline{ display:none; }
  .promise-item{ border-bottom:1px solid rgba(255,255,255,0.08); }
  .social-band-inner{ flex-direction:column; gap:14px; }
  .footer-brand{ grid-column:span 1; }
  .res-grid, .promise-inner, .footer-cols{ grid-template-columns:1fr; }
}
@media (min-width: 681px) and (max-width: 1080px) {
  .footer-brand{ grid-column:span 3; }
}
@media (min-width: 681px) {
  section{ padding-top:84px; padding-right:40px; padding-bottom:84px; padding-left:40px; }
  .main-nav{ padding-right:40px; padding-left:40px; }
  .hero{ min-height:58vh; padding-top:92px; padding-right:40px; padding-bottom:96px; padding-left:40px; }
  .promise-item{ border-right:1px solid rgba(255,255,255,0.08) !important; }
  .pillar-body{ padding-top:48px; padding-right:52px; padding-bottom:48px; padding-left:52px; }
}
@media (min-width: 1081px) {
  .hamburger{ display:none; }
  .promise-inner{ grid-template-columns:repeat(4, 1fr); }
  .philo-grid{ grid-template-columns:1.05fr 0.95fr; gap:64px; }
  .pillar{ grid-template-columns:1fr 1fr; }
  .pillar.reverse .pillar-media{ order:2; }
  .pillar.reverse .pillar-body{ order:1; }
  .res-grid{ grid-template-columns:repeat(3, 1fr); }
  .footer-cols{ grid-template-columns:repeat(5, 1fr) 1.4fr; }
}
