/* IGNIPOST public site. Built on the Luma theme's tokens (--lm-*), restyled to the brand: Ink, Ember, Flame, Rose. */

.ip-site {
    --ip-ink: #0E1222;
    --ip-ember: #FF4D3A;
    --ip-ember-text: #C9372A;
    --ip-flame: #FF7A2F;
    --ip-rose: #D9245C;
    --ip-ivory: #FFF8F2;
    --ip-slate: #5B6478;
    --ip-gradient: linear-gradient(135deg, #FF7A2F 0%, #FF4D3A 55%, #D9245C 100%);
    --ip-bg: #FFFFFF;
    --ip-surface: #FFFFFF;
    --ip-soft: #FFF8F2;
    --ip-text: #0E1222;
    --ip-muted: #5B6478;
    --ip-line: #ECE8E4;
    --ip-shadow: 0 1px 2px rgba(14, 18, 34, .04), 0 18px 48px -28px rgba(14, 18, 34, .22);
    --ip-radius: 18px;
    --ip-accent-rgb: 255, 77, 58;
    --ip-flame-rgb: 255, 122, 47;
    --ip-ink-rgb: 14, 18, 34;
    --ip-accent-pale: #FFB49A;
    --ip-accent-light: #FF9A7A;
    --lm-ink: var(--ip-ink);
    --lm-muted: var(--ip-muted);
    --lm-line: var(--ip-line);
    --lm-soft: var(--ip-soft);
    --lm-accent: var(--ip-ember);
    background: var(--ip-bg);
    color: var(--ip-text);
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
}
html.dark .ip-site, html[data-theme-resolved='dark'] .ip-site {
    --ip-bg: #0B0E1A;
    --ip-surface: #121729;
    --ip-soft: #151B2F;
    --ip-text: #EEF0F5;
    --ip-muted: #A6AEC0;
    --ip-line: #242B42;
    --ip-ember-text: #FF8A6F;
    --ip-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 18px 48px -28px rgba(0, 0, 0, .7);
    --lm-ink: var(--ip-text);
    --lm-paper: var(--ip-surface);
}
.ip-site :is(h1, h2, h3, .ip-h2) { font-family: 'Sora', 'Inter', ui-sans-serif, sans-serif; letter-spacing: -.025em; color: var(--ip-text); }
.ip-site ::selection { background: rgba(var(--ip-accent-rgb), .22); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Buttons and links */
.ip-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 46px; padding: 0 20px; border-radius: 12px; border: 1px solid transparent; font-weight: 600; font-size: 15px; line-height: 1; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; white-space: nowrap; }
.ip-btn:hover { transform: translateY(-1px); }
.ip-btn-lg { min-height: 54px; padding: 0 26px; font-size: 16px; }
.ip-btn-primary { background: var(--ip-gradient); color: #fff !important; box-shadow: 0 10px 28px -12px rgba(var(--ip-accent-rgb), .65); }
.ip-btn-primary:hover { box-shadow: 0 14px 34px -12px rgba(var(--ip-accent-rgb), .8); }
.ip-btn-ghost { background: var(--ip-surface); color: var(--ip-text) !important; border-color: var(--ip-line); }
.ip-btn-light { background: #fff; color: var(--ip-ink) !important; }
.ip-btn-outline-light { color: #fff !important; border-color: rgba(255, 255, 255, .45); }
.ip-text-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ip-ember-text) !important; }
.ip-text-link i { transition: transform .15s ease; }
.ip-text-link:hover i { transform: translateX(3px); }
.ip-link-button { background: none; border: 0; padding: 0; color: inherit; cursor: pointer; font: inherit; }
.ip-site :is(.lm-login, .lm-cta, .lm-nav-link) { white-space: nowrap; }
.ip-site .lm-cta.ip-cta { background: var(--ip-gradient); color: #fff; border: 0; box-shadow: 0 8px 22px -12px rgba(var(--ip-accent-rgb), .7); }
.ip-site .lm-nav-link.is-active { color: var(--ip-ember-text); }

/* Eyebrows, headings, intros */
.ip-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: rgba(var(--ip-accent-rgb), .09); color: var(--ip-ember-text); font-size: 13px; font-weight: 600; }
.ip-eyebrow.is-light { background: rgba(255, 255, 255, .1); color: var(--ip-accent-pale); }
.ip-h2 { font-size: clamp(28px, 3.6vw, 44px); line-height: 1.12; font-weight: 700; margin: 16px 0 0; }
.ip-lead { font-size: 18px; line-height: 1.65; color: var(--ip-muted); margin: 16px 0 0; }
.ip-intro { max-width: 760px; margin: 0 auto 48px; text-align: center; }
.ip-intro.is-left { margin: 0; text-align: left; }
.ip-intro .ip-text-link { margin-top: 20px; }
.ip-section { padding: clamp(64px, 8vw, 104px) 0; }
.ip-section.is-tight { padding: 24px 0; }
.ip-section-soft { background: var(--ip-soft); }
.ip-section-ink { background: var(--ip-ink); color: #DDE1EB; position: relative; overflow: hidden; }
.ip-section-ink::before { content: ''; position: absolute; inset: -40% 40% auto -10%; height: 520px; background: radial-gradient(closest-side, rgba(var(--ip-accent-rgb), .28), transparent); pointer-events: none; }
.ip-section-ink :is(h2, h3, .ip-h2) { color: #fff; }
.ip-section-ink .ip-lead, .ip-section-ink p { color: #B9C0D0; }
.ip-icon { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: rgba(var(--ip-accent-rgb), .1); color: var(--ip-ember); font-size: 19px; flex: none; }
.ip-icon.is-dark { background: rgba(255, 255, 255, .08); color: var(--ip-accent-light); }

/* Breadcrumbs */
.ip-breadcrumbs { border-bottom: 1px solid var(--ip-line); background: var(--ip-surface); }
.ip-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; list-style: none; padding: 12px 0; margin: 0 auto; font-size: 13px; color: var(--ip-muted); }
.ip-breadcrumbs li { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.ip-breadcrumbs a { display: inline-flex; align-items: center; gap: 6px; color: var(--ip-muted); }
.ip-breadcrumbs a:hover { color: var(--ip-ember-text); }
.ip-breadcrumbs [aria-current] { color: var(--ip-text); font-weight: 600; max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ip-crumb-sep { font-size: 10px; opacity: .6; }

/* Page hero (inner pages) */
.ip-page-hero { padding: clamp(48px, 7vw, 88px) 0 clamp(32px, 4vw, 48px); background: radial-gradient(900px 320px at 85% -10%, rgba(var(--ip-flame-rgb), .14), transparent 70%), var(--ip-bg); }
.ip-page-title { font-size: clamp(34px, 5vw, 56px); line-height: 1.08; font-weight: 700; margin: 18px 0 0; max-width: 18ch; }
.ip-page-lead { font-size: 18px; line-height: 1.65; color: var(--ip-muted); max-width: 64ch; margin: 18px 0 0; }

/* Prose */
.ip-prose { color: var(--ip-text); font-size: 17px; line-height: 1.8; }
.ip-prose > * + * { margin-top: 1.1em; }
.ip-prose h2 { font-size: clamp(24px, 2.6vw, 30px); line-height: 1.25; margin-top: 2em; scroll-margin-top: 96px; }
.ip-prose h3 { font-size: 20px; line-height: 1.35; margin-top: 1.6em; }
.ip-prose p, .ip-prose li { color: color-mix(in srgb, var(--ip-text) 86%, var(--ip-muted)); }
.ip-prose :is(ul, ol) { padding-left: 1.3em; }
.ip-prose li + li { margin-top: .5em; }
.ip-prose li::marker { color: var(--ip-ember); font-weight: 700; }
.ip-prose a { color: var(--ip-ember-text); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; font-weight: 600; }
.ip-prose strong { color: var(--ip-text); }
.ip-prose .lead { font-size: 19px; color: var(--ip-text); padding: 18px 20px; border-left: 3px solid var(--ip-ember); background: var(--ip-soft); border-radius: 0 12px 12px 0; }
.ip-prose table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.ip-prose :is(th, td) { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--ip-line); vertical-align: top; }
.ip-prose th { background: var(--ip-soft); font-weight: 600; }

/* Documents (legal) */
.ip-document .lm-document-card { border-radius: var(--ip-radius); box-shadow: var(--ip-shadow); }
.ip-document .lm-document-body { padding: clamp(22px, 4vw, 48px); }
.ip-document .lm-document-tab.is-active { color: var(--ip-ember-text) !important; background: rgba(var(--ip-accent-rgb), .1) !important; border-color: transparent !important; }
.ip-document-section { padding-top: 8px; }
.ip-doc-foot { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--ip-line); color: var(--ip-muted); font-size: 15px; }
.ip-doc-foot a { color: var(--ip-ember-text); font-weight: 600; }

/* Chips, search */
.ip-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--ip-line); background: var(--ip-surface); color: var(--ip-text); font-size: 13px; font-weight: 600; }
a.ip-chip:hover, .ip-chip.is-active { border-color: var(--ip-ember); color: var(--ip-ember-text); }
.ip-chip.is-active { background: rgba(var(--ip-accent-rgb), .08); }
.ip-chip-count { font-size: 11px; color: var(--ip-muted); font-weight: 500; }
.ip-chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.ip-search { display: flex; align-items: center; gap: 10px; max-width: 560px; margin-top: 28px; padding: 6px 6px 6px 18px; border: 1px solid var(--ip-line); border-radius: 14px; background: var(--ip-surface); box-shadow: var(--ip-shadow); }
.ip-search i { color: var(--ip-muted); }
.ip-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ip-text); font-size: 16px; height: 44px; }

/* Post cards */
.ip-list-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; flex-wrap: wrap; }
.ip-list-head h2 { font-size: clamp(24px, 3vw, 34px); margin: 12px 0 0; }
.ip-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ip-post-card { display: flex; flex-direction: column; border: 1px solid var(--ip-line); border-radius: var(--ip-radius); background: var(--ip-surface); overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.ip-post-card:hover { transform: translateY(-3px); box-shadow: var(--ip-shadow); }
.ip-post-media { display: block; aspect-ratio: 16 / 9; background: var(--ip-soft); overflow: hidden; }
.ip-post-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.ip-post-card:hover .ip-post-media img { transform: scale(1.03); }
.ip-post-fallback { display: grid; place-items: center; height: 100%; color: var(--ip-ember); font-size: 28px; }
.ip-post-body { display: flex; flex-direction: column; gap: 12px; padding: 20px 22px 22px; flex: 1; }
.ip-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; font-size: 13px; color: var(--ip-muted); }
.ip-post-meta i { margin-right: 6px; }
.ip-post-title { font-size: 19px; line-height: 1.35; margin: 0; }
.ip-post-title a:hover { color: var(--ip-ember-text); }
.ip-post-excerpt { color: var(--ip-muted); line-height: 1.6; margin: 0; font-size: 15px; }
.ip-post-foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 12px; border-top: 1px solid var(--ip-line); font-size: 13px; color: var(--ip-muted); }
.ip-post-foot .ip-text-link { font-size: 14px; }
.ip-post-card.is-featured { display: grid; grid-template-columns: 1.15fr 1fr; margin-bottom: 28px; }
.ip-post-card.is-featured .ip-post-media { aspect-ratio: auto; min-height: 100%; }
.ip-post-card.is-featured .ip-post-body { padding: clamp(24px, 3vw, 40px); justify-content: center; }
.ip-post-card.is-featured .ip-post-title { font-size: clamp(24px, 2.6vw, 32px); }
.ip-blog-list { padding-top: 24px; }

/* Article */
.ip-article-hero { padding: clamp(40px, 6vw, 72px) 0 0; background: radial-gradient(900px 320px at 85% -10%, rgba(var(--ip-flame-rgb), .12), transparent 70%); }
.ip-article-head { max-width: 860px; background: transparent !important; }
.ip-article-title { font-size: clamp(32px, 4.6vw, 52px); line-height: 1.1; font-weight: 700; margin: 18px 0 0; }
.ip-article-lead { font-size: 19px; line-height: 1.65; color: var(--ip-muted); margin: 18px 0 0; }
.ip-byline { display: flex; align-items: center; gap: 10px; margin: 22px 0 0; font-size: 14px; color: var(--ip-muted); font-weight: 500; }
.ip-byline img { border-radius: 8px; }
.ip-article-cover { margin: 36px auto 0; }
.ip-article-cover img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 22px; box-shadow: var(--ip-shadow); }
.ip-article-layout { display: grid; grid-template-columns: 280px minmax(0, 720px); gap: clamp(32px, 5vw, 72px); justify-content: center; padding: 56px 0 24px; }
.ip-article-aside { position: relative; }
.ip-article-aside > * { position: sticky; top: 96px; }
.ip-article-aside > * + * { position: static; margin-top: 20px; }
.ip-toc { padding: 20px; border: 1px solid var(--ip-line); border-radius: 16px; background: var(--ip-surface); }
.ip-toc p { margin: 0 0 12px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--ip-muted); }
.ip-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; counter-reset: toc; }
.ip-toc li { counter-increment: toc; }
.ip-toc a { display: grid; grid-template-columns: 24px 1fr; gap: 6px; padding: 6px 8px; border-radius: 8px; font-size: 14px; line-height: 1.4; color: var(--ip-muted); }
.ip-toc a::before { content: counter(toc, decimal-leading-zero); font-size: 11px; font-weight: 700; color: var(--ip-ember); padding-top: 2px; }
.ip-toc a:hover { background: var(--ip-soft); color: var(--ip-text); }
.ip-aside-card { padding: 22px; border-radius: 16px; background: var(--ip-ink); color: #C7CDDA; }
.ip-aside-card h2 { color: #fff; font-size: 18px; margin: 14px 0 8px; }
.ip-aside-card p { font-size: 14px; line-height: 1.6; margin: 0 0 16px; }
.ip-aside-card .ip-btn { width: 100%; }
.ip-share { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--ip-line); color: var(--ip-muted); font-size: 14px; font-weight: 600; }
.ip-share a { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--ip-line); color: var(--ip-text); }
.ip-share a:hover { border-color: var(--ip-ember); color: var(--ip-ember-text); }
.ip-more-in { margin-top: 20px; color: var(--ip-muted); }
.ip-more-in a { color: var(--ip-ember-text); font-weight: 600; }
.ip-related { background: var(--ip-soft); }

/* CTA band */
.ip-cta-band { padding: 0 0 clamp(56px, 7vw, 96px); }
.ip-related + .ip-cta-band, .ip-blog .ip-cta-band { padding-top: 24px; }
.ip-cta-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; padding: clamp(28px, 4vw, 52px); border-radius: 26px; background: var(--ip-gradient); color: #fff; box-shadow: 0 30px 60px -36px rgba(217, 36, 92, .7); position: relative; overflow: hidden; }
.ip-cta-card::after { content: ''; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%; background: rgba(255, 255, 255, .12); pointer-events: none; }
.ip-cta-card h2 { color: #fff; font-size: clamp(24px, 3vw, 34px); margin: 0; max-width: 22ch; }
.ip-cta-card p { color: rgba(255, 255, 255, .9); margin: 12px 0 0; max-width: 56ch; line-height: 1.6; }
.ip-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; position: relative; z-index: 1; }

/* Home: hero */
.ip-hero { position: relative; padding: clamp(48px, 7vw, 96px) 0 clamp(40px, 5vw, 64px); overflow: hidden; }
.ip-hero-glow { position: absolute; inset: -30% -10% auto 40%; height: 720px; background: radial-gradient(closest-side, rgba(var(--ip-flame-rgb), .22), transparent), radial-gradient(closest-side at 70% 60%, rgba(217, 36, 92, .14), transparent); pointer-events: none; }
.ip-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.ip-hero-title { font-size: clamp(38px, 5.4vw, 66px); line-height: 1.04; font-weight: 800; margin: 22px 0 0; }
.ip-hero-title span { background: var(--ip-gradient); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ip-hero-lead { font-size: clamp(17px, 1.6vw, 19px); line-height: 1.65; color: var(--ip-muted); margin: 24px 0 0; max-width: 58ch; }
.ip-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.ip-hero-proof { display: flex; flex-wrap: wrap; gap: 10px 22px; list-style: none; padding: 0; margin: 28px 0 0; font-size: 14px; color: var(--ip-muted); font-weight: 500; }
.ip-hero-proof i { color: var(--ip-ember); margin-right: 8px; }

/* Home: product window */
.ip-window { border: 1px solid var(--ip-line); border-radius: 22px; background: var(--ip-surface); box-shadow: 0 40px 80px -40px rgba(var(--ip-ink-rgb), .45); overflow: hidden; }
.ip-window-bar { display: flex; align-items: center; gap: 16px; padding: 12px 14px; border-bottom: 1px solid var(--ip-line); background: var(--ip-soft); }
.ip-window-dots { display: flex; gap: 6px; }
.ip-window-dots i { width: 10px; height: 10px; border-radius: 50%; background: var(--ip-line); }
.ip-window-dots i:first-child { background: var(--ip-flame); }
.ip-window-tabs { display: flex; gap: 4px; margin-left: auto; padding: 3px; border-radius: 10px; background: var(--ip-surface); border: 1px solid var(--ip-line); }
.ip-window-tabs button { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 0; border-radius: 8px; background: transparent; color: var(--ip-muted); font-size: 13px; font-weight: 600; cursor: pointer; }
.ip-window-tabs button.is-active { background: var(--ip-ink); color: #fff; }
html.dark .ip-window-tabs button.is-active { background: var(--ip-ember); }
.ip-window-body { display: grid; grid-template-columns: 200px 1fr; min-height: 340px; }
.ip-convos { list-style: none; margin: 0; padding: 10px; border-right: 1px solid var(--ip-line); display: grid; align-content: start; gap: 4px; }
.ip-convos li { display: grid; grid-template-columns: 32px 1fr auto; gap: 10px; align-items: center; padding: 10px; border-radius: 12px; font-size: 13px; }
.ip-convos li.is-active { background: rgba(var(--ip-accent-rgb), .08); }
.ip-convos strong { display: block; font-size: 13px; }
.ip-convos small { display: block; color: var(--ip-muted); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 110px; }
.ip-convos em { font-style: normal; font-size: 11px; color: var(--ip-muted); align-self: start; }
.ip-avatar { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--c); color: #fff; font-weight: 700; font-size: 13px; }
.ip-thread { padding: 20px; display: flex; flex-direction: column; gap: 10px; background: linear-gradient(180deg, var(--ip-surface), var(--ip-soft)); }
.ip-bubble { max-width: 82%; margin: 0; padding: 11px 14px; border-radius: 16px; font-size: 14px; line-height: 1.5; }
.ip-bubble.is-in { background: var(--ip-soft); border: 1px solid var(--ip-line); border-bottom-left-radius: 4px; }
.ip-bubble.is-out { align-self: flex-end; background: var(--ip-gradient); color: #fff; border-bottom-right-radius: 4px; }
.ip-quick { align-self: flex-end; display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.ip-quick span { padding: 7px 12px; border-radius: 999px; border: 1px solid var(--ip-ember); color: var(--ip-ember-text); font-size: 12px; font-weight: 600; background: var(--ip-surface); }
.ip-thread-note { margin: auto 0 0; font-size: 12px; color: var(--ip-muted); }
.ip-thread-note i { margin: 0 4px 0 2px; color: var(--ip-ember); }
.ip-cal { grid-template-columns: repeat(5, 1fr); gap: 8px; padding: 14px; align-content: start; }
.ip-cal-day { display: flex; flex-direction: column; gap: 8px; min-height: 300px; padding: 10px 8px; border-radius: 12px; background: var(--ip-soft); }
.ip-cal-day > span { font-size: 12px; font-weight: 700; color: var(--ip-muted); text-transform: uppercase; letter-spacing: .06em; }
.ip-cal-post { margin: 0; padding: 9px; border-radius: 10px; background: var(--ip-surface); border: 1px solid var(--ip-line); border-left: 3px solid var(--ip-ember); font-size: 12px; display: grid; gap: 2px; }
.ip-cal-post i { color: var(--ip-ember); }
.ip-cal-post small { color: var(--ip-muted); }
.ip-flowmap { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; padding: 24px; }
.ip-node { display: inline-flex; align-items: center; gap: 8px; padding: 11px 16px; border-radius: 12px; background: var(--ip-surface); border: 1px solid var(--ip-line); box-shadow: var(--ip-shadow); font-size: 13px; font-weight: 600; }
.ip-node i { color: var(--ip-ember); }
.ip-node.is-trigger { background: var(--ip-ink); color: #fff; border-color: var(--ip-ink); }
.ip-node.is-trigger i { color: var(--ip-accent-light); }
.ip-node.is-human { border-color: var(--ip-ember); }
.ip-node-row { display: flex; gap: 14px; }
.ip-edge { width: 2px; height: 22px; background: linear-gradient(var(--ip-flame), var(--ip-rose)); }

/* Home: network strip */
.ip-strip { border-block: 1px solid var(--ip-line); background: var(--ip-surface); }
.ip-strip-inner { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px 14px; padding: 18px 0; }
.ip-strip-icon { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: var(--c); background: color-mix(in srgb, var(--c) 9%, transparent); font-size: 17px; }
html.dark .ip-strip-icon { color: color-mix(in srgb, var(--c) 60%, #fff); }
.ip-strip-more { margin-left: 6px; font-size: 14px; font-weight: 600; color: var(--ip-ember-text); display: inline-flex; gap: 8px; align-items: center; }

/* Home: pillars and features */
.ip-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 56px; }
.ip-pillar { padding: 28px; border-radius: 22px; background: var(--ip-soft); border: 1px solid var(--ip-line); }
.ip-pillar-tag { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--ip-ember-text); text-transform: uppercase; letter-spacing: .08em; }
.ip-pillar h3 { font-size: 22px; margin: 14px 0 10px; }
.ip-pillar p { margin: 0; line-height: 1.65; color: var(--ip-muted); }
.ip-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid var(--ip-line); border-radius: 22px; overflow: hidden; background: var(--ip-line); }
.ip-feature { padding: 28px; background: var(--ip-surface); }
.ip-feature h3 { font-size: 18px; margin: 18px 0 8px; }
.ip-feature p { margin: 0; color: var(--ip-muted); line-height: 1.6; font-size: 15px; }

/* Home: steps */
.ip-steps { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; list-style: none; padding: 0; margin: 0; }
.ip-step { position: relative; padding: 26px; border-radius: 20px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .08); }
.ip-step-num { position: absolute; top: 22px; right: 22px; font-family: 'Sora', sans-serif; font-weight: 800; font-size: 28px; color: rgba(255, 255, 255, .12); }
.ip-step h3 { font-size: 18px; margin: 18px 0 8px; }
.ip-step p { margin: 0; font-size: 15px; line-height: 1.6; }
.ip-section-link { text-align: center; margin: 36px 0 0; }
.ip-section-link a { display: inline-flex; gap: 8px; align-items: center; color: var(--ip-accent-pale); font-weight: 600; }
.ip-section:not(.ip-section-ink) .ip-section-link a { color: var(--ip-ember-text); }

/* Home: networks */
.ip-channels { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.ip-network-groups { display: grid; gap: 24px; }
.ip-network-group h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--ip-muted); margin: 0 0 12px; font-family: 'Inter', sans-serif; }
.ip-network-group ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.ip-network-group li { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; border-radius: 12px; border: 1px solid var(--ip-line); background: var(--ip-surface); font-size: 14px; font-weight: 600; }
.ip-network-group li i { color: var(--c); font-size: 16px; }
html.dark .ip-network-group li i { color: color-mix(in srgb, var(--c) 60%, #fff); }

/* Home: audiences, trust, plans, FAQ */
.ip-audiences { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ip-audience { padding: 28px; border-radius: 20px; background: var(--ip-surface); border: 1px solid var(--ip-line); }
.ip-audience h3 { font-size: 19px; margin: 18px 0 8px; }
.ip-audience p { margin: 0; color: var(--ip-muted); line-height: 1.65; }
.ip-trust { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.ip-promises { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.ip-promise { display: flex; gap: 16px; padding: 22px; border-radius: 18px; border: 1px solid var(--ip-line); background: var(--ip-surface); }
.ip-promise h3 { font-size: 16px; margin: 2px 0 6px; }
.ip-promise p { margin: 0; color: var(--ip-muted); font-size: 14px; line-height: 1.6; }
.ip-plan-band { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 28px 32px; border-radius: 22px; border: 1px solid var(--ip-line); background: var(--ip-soft); }
.ip-plan-band h2 { font-size: 24px; margin: 0; }
.ip-plan-band p { margin: 8px 0 0; color: var(--ip-muted); }
.ip-faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.ip-faq { display: grid; gap: 10px; }
.ip-faq-item { border: 1px solid var(--ip-line); border-radius: 16px; background: var(--ip-surface); }
.ip-faq-item summary { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 18px 20px; cursor: pointer; font-weight: 600; list-style: none; }
.ip-faq-item summary::-webkit-details-marker { display: none; }
.ip-faq-item summary i { color: var(--ip-ember); transition: transform .2s ease; }
.ip-faq-item[open] summary i { transform: rotate(45deg); }
.ip-faq-item p { margin: 0; padding: 0 20px 20px; color: var(--ip-muted); line-height: 1.7; }

/* Footer */
.ip-footer.lm-footer { background: var(--ip-footer-bg, #0B0E1A); color: #A6AEC0; }
.ip-footer-grid { display: grid; grid-template-columns: 1.5fr repeat(4, 1fr); gap: 32px; padding: 64px 0 40px; }
.ip-footer-promise { color: #fff; font-family: 'Sora', sans-serif; font-weight: 600; font-size: 16px; line-height: 1.45; margin: 20px 0 8px; max-width: 30ch; }
.ip-footer-copy { font-size: 14px; line-height: 1.65; margin: 0; max-width: 40ch; }
.ip-footer .ip-footer-title { color: #fff; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 16px; font-family: 'Inter', sans-serif; }
.ip-footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 14px; }
.ip-footer-links a, .ip-footer-links button { color: #A6AEC0; }
.ip-footer-links a:hover, .ip-footer-links button:hover { color: #fff; }
.ip-footer-socials { display: flex; gap: 8px; margin-top: 20px; }
.ip-footer-socials a { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: rgba(255, 255, 255, .06); color: #DDE1EB; }
.ip-footer-socials a:hover { background: var(--ip-ember); color: #fff; }
.ip-footer .lm-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .08); }
.ip-footer .lm-footer-bottom-row { font-size: 13px; color: #A6AEC0; }
.ip-footer-tagline { color: var(--ip-accent-pale); }
.ip-footer-legal { display: inline-block; margin-top: 4px; font-size: 12px; opacity: .8; }

/* Cookie consent */
.ip-consent { position: fixed; inset: auto 16px 16px 16px; z-index: 80; display: flex; justify-content: center; pointer-events: none; }
.ip-consent-card { pointer-events: auto; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; max-width: 860px; padding: 16px 18px; border-radius: 18px; background: var(--ip-surface); border: 1px solid var(--ip-line); box-shadow: 0 24px 60px -24px rgba(var(--ip-ink-rgb), .45); }
.ip-consent-card p { flex: 1 1 320px; margin: 0; font-size: 14px; line-height: 1.55; color: var(--ip-muted); }
.ip-consent-card a { color: var(--ip-ember-text); font-weight: 600; }
.ip-consent-icon { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: rgba(var(--ip-accent-rgb), .1); color: var(--ip-ember); }
.ip-consent-actions { display: flex; gap: 8px; }
.ip-consent-actions .ip-btn { min-height: 40px; padding: 0 14px; font-size: 14px; }

/* Reveal */
.lm-motion-ready .ip-reveal { opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease; }
.lm-motion-ready .ip-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .lm-motion-ready .ip-reveal { opacity: 1; transform: none; transition: none; } }

/* Responsive */
@media (max-width: 1080px) {
    .ip-hero-grid, .ip-channels, .ip-trust, .ip-faq-grid { grid-template-columns: 1fr; }
    .ip-features { grid-template-columns: repeat(2, 1fr); }
    .ip-steps { grid-template-columns: repeat(2, 1fr); }
    .ip-footer-grid { grid-template-columns: repeat(2, 1fr); }
    .ip-footer-brand { grid-column: 1 / -1; }
    .ip-article-layout { grid-template-columns: minmax(0, 720px); }
    .ip-article-aside { order: 2; }
    .ip-article-aside > * { position: static; }
}
@media (max-width: 820px) {
    .ip-post-grid, .ip-pillars, .ip-audiences { grid-template-columns: 1fr; }
    .ip-post-card.is-featured { grid-template-columns: 1fr; }
    .ip-post-card.is-featured .ip-post-media { aspect-ratio: 16 / 9; }
    .ip-promises { grid-template-columns: 1fr; }
    .ip-window-body { grid-template-columns: 1fr; }
    .ip-convos { display: none; }
    .ip-cal { grid-template-columns: repeat(3, 1fr); }
    .ip-cal-day:nth-child(n+4) { display: none; }
}
@media (max-width: 560px) {
    .ip-features, .ip-steps { grid-template-columns: 1fr; }
    .ip-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; padding-top: 48px; }
    .ip-hero-actions .ip-btn { width: 100%; }
    .ip-window-tabs button { padding: 7px 9px; }
    .ip-window-tabs button i { display: none; }
    .ip-search { flex-wrap: nowrap; }
    .ip-search .ip-btn { padding: 0 14px; }
    .ip-breadcrumbs [aria-current] { max-width: 22ch; }
    .ip-consent-actions { width: 100%; }
    .ip-consent-actions .ip-btn { flex: 1; }
}

/* Reading progress on articles: a 3px ember line under the browser chrome. */
.ip-reading-progress { position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 80; pointer-events: none; }
.ip-reading-progress span { display: block; height: 100%; background: var(--ip-gradient); transform: scaleX(0); transform-origin: 0 50%; will-change: transform; }
@media (prefers-reduced-motion: no-preference) { .ip-reading-progress span { transition: transform 80ms linear; } }
