/* Public pages only. System fonts and CSS geometry keep the visual layer light. */
:root { --paper: #fffcf7; --ink: #241a19; --line: rgba(36,26,25,.12); --muted: #726460; }
html { scroll-padding-top: 112px; }
body { -webkit-font-smoothing: antialiased; }
::selection { color: #fff; background: #e82b3f; }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 3px solid #9d1726; outline-offset: 5px; }
.site-header, .site-header.scrolled, .resource-header:not(.scrolled), .case-header:not(.scrolled) {
  inset: 18px max(24px, calc((100vw - 1320px) / 2)) auto;
  min-height: 72px; padding: 12px 20px; border: 1px solid rgba(255,255,255,.5);
  border-radius: 20px; color: var(--ink); background: #fffcf7;
  box-shadow: 0 8px 30px rgba(98,14,24,.08); backdrop-filter: none;
}
.site-header.scrolled { border-color: var(--line); }
.brand-mark { border-radius: 13px; transform: none; background: #f52235; }
.brand-text small { font-size: .57rem; opacity: .7; }
.site-nav { gap: 26px; font-size: .82rem; }
.site-nav .nav-cta { background: #251918; }
.nav-library { color: #c4162a; background: #ffedeb; }
.hero {
  min-height: 850px; padding: 166px max(40px, calc((100vw - 1240px) / 2)) 74px;
  background: radial-gradient(ellipse at 85% 12%, #ff6477 0%, transparent 38%),
    radial-gradient(ellipse at 88% 96%, #ff951b 0%, transparent 46%), #f52235;
}
.hero::after { left: auto; right: -14px; bottom: -110px; font-size: 410px; transform: none; opacity: .6; }
.hero > .hero-orbit { display: none; }
.hero-content { width: 100%; display: grid; grid-template-columns: 1.15fr 1fr; column-gap: 56px; align-items: center; }
.hero-burst { text-align: left; }
.hero-message { position: relative; z-index: 2; }
.hero-promise { margin: 0 0 30px; animation: none; }
.hero-promise::before, .hero-promise::after { display: none; }
.promise-choice, .promise-hit { font-size: .78rem; padding: 9px 16px; }
.promise-flame { animation: none; }
.promise-hit { animation: none; }
.hero h1 { display: block; font-size: clamp(5rem, 7.8vw, 8rem); line-height: 1.08; letter-spacing: -.065em; text-shadow: none; }
.hero h1 span { display: block; font-size: 1.4em; transform: none; }
.hero h1 em { display: block; margin-top: 16px; font-size: .4em; letter-spacing: -.055em; white-space: nowrap; }
.hero-copy { max-width: 510px; margin: 24px 0 0; font-size: .98rem; line-height: 1.9; text-wrap: pretty; }
.hero-actions { justify-content: flex-start; gap: 12px; margin-top: 32px; }
.button { min-height: 54px; padding: 0 22px; font-size: .83rem; gap: 24px; }
.button-primary { color: #422419; background: #ffe174; border-color: #ffe174; box-shadow: none; }
.button-ghost { background: rgba(170,9,29,.12); }
.button span { display: inline-block; transition: transform .2s ease; }
.button:hover span { transform: translate(2px, -2px); }
.hero-stats { grid-column: 1 / -1; width: 100%; max-width: none; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 0; margin-top: 64px; border-block: 1px solid rgba(255,255,255,.3); }
.hero-stats > div { grid-column: auto; border: 0; border-right: 1px solid rgba(255,255,255,.2); border-radius: 0; padding: 24px 20px; background: none; backdrop-filter: none; box-shadow: none; }
.hero-stats > div:first-child { padding-left: 0; }
.hero-stats > div:last-child { border-right: 0; }
.hero-stats span { font-size: .72rem; color: #ffe1d9; }
.hero-stats strong { margin-top: 12px; font-size: clamp(1.8rem, 2.6vw, 2.6rem); font-variant-numeric: tabular-nums; letter-spacing: -.04em; }
.snapshot-note { grid-column: 1 / -1; margin-top: 16px; color: #ffe0d6; font-size: .65rem; }
.hero-scroll { display: none; }
.ignition-art { position: relative; min-width: 0; height: 390px; display: grid; place-items: center; }
.ignition-word { position: relative; font-size: clamp(15rem, 26vw, 25rem); font-weight: 900; line-height: 1; color: #ffe174; transform: rotate(-12deg); text-shadow: 10px 12px 0 rgba(154,16,34,.2); }
.ignition-orbit { position: absolute; width: 100%; aspect-ratio: 1; border: 1px solid rgba(255,242,209,.55); border-radius: 50%; transform: rotate(-24deg) scaleY(.73); }
.ignition-orbit.inner { width: 82%; transform: rotate(36deg) scaleY(.74); border-style: dashed; opacity: .5; }
.ignition-tag { position: absolute; padding: 11px 18px; border-radius: 9px; font-size: .82rem; font-weight: 700; box-shadow: 0 10px 20px rgba(115,12,18,.12); }
.tag-insight { left: 0; top: 50px; color: #c61c30; background: #fffcf7; transform: rotate(-8deg); }
.tag-impact { right: -6px; bottom: 55px; color: #fffcf7; background: #2e211f; transform: rotate(7deg); }
.ignition-star { position: absolute; right: 15px; top: 25px; font-size: 4.5rem; color: #fffcf7; }
.ignition-caption { position: absolute; left: 50%; bottom: -24px; transform: translateX(-50%); white-space: nowrap; font-size: .65rem; letter-spacing: .16em; color: #ffe1d9; }
.danmaku-layer { z-index: 1; opacity: .72; }
.danmaku, .heat-particle.icon, .heat-particle.badge { backdrop-filter: none; box-shadow: none; }
.heat-particle { will-change: transform, opacity; }
.motion-paused *, .motion-paused::before, .motion-paused::after { animation-play-state: paused !important; }
.ticker { padding: 18px 0; color: #482b20; background: #ffe174; font-size: .74rem; }
.ticker i { color: #f52235; }
.section { padding-block: 112px; }
.section-label { margin-bottom: 54px; color: #a02230; letter-spacing: .13em; }
.section-label span { width: 32px; height: 32px; font-size: .65rem; }
.section-title h2, .section-heading h2 { font-size: clamp(2.4rem,4vw,4.4rem); line-height: 1.24; letter-spacing: -.055em; text-wrap: balance; }
.about-grid { gap: 70px; }
.about-copy { font-size: .94rem; line-height: 1.9; }
.about-copy .lead { font-size: 1.15rem; line-height: 1.8; }
.pending-note { color: var(--muted); font-size: .75rem; background: #f6f0e8; }
.fact-strip { margin-top: 64px; }
.fact-strip div { padding-block: 30px; }
.team-section { min-height: 480px; padding-block: 88px; background: #ffe174; color: var(--ink); }
.team-number { color: #ef2a3a; font-size: clamp(13rem,27vw,25rem); }
.team-copy h2 { font-size: clamp(2.5rem,4.3vw,4.2rem); line-height: 1.2; }
.team-copy p:last-child { color: #72572f; font-size: .9rem; }
.team-stamp { border-color: #b49652; width: 104px; right: 3vw; bottom: 24px; }
.team-stamp::before { border-color: #b49652; }
.capability-grid { margin-top: 50px; gap: 20px; }
.capability-card { min-height: 330px; border-radius: 16px; padding: 32px; box-shadow: none; }
.capability-card:nth-child(2), .capability-card:nth-child(3) { background: #f8f0e7; }
.capability-card h3 { margin-top: 68px; font-size: 2.4rem; }
.capability-card p { font-size: .93rem; }
.capability-card:hover { background: #f52235; }
.gene-section { padding-block: 104px; background: #f1e9de; color: var(--ink); }
.gene-heading h2, .accounts-heading h2, .scene-heading h2 { font-size: clamp(2.6rem,4.2vw,4.6rem); line-height: 1.2; text-wrap: balance; }
.gene-heading h2 em { color: #e52c3e; }
.gene-heading > p { color: var(--muted); }
.gene-grid { margin-top: 48px; gap: 24px; }
.gene-card { min-height: 310px; border: 0; border-top: 1px solid #cdbbad; border-radius: 0; padding: 24px 0 0; background: none; }
.gene-card > span { color: #d2273b; }
.gene-card > small { color: #877269; }
.gene-card h3 { margin-top: 70px; font-size: 2.4rem; }
.gene-card p { color: var(--muted); font-size: .93rem; max-width: 340px; }
.accounts-section { background: #261c1c; }
.accounts-section .section-label { color: #fdb8a0; }
.account-grid { margin-top: 48px; }
.account-card { min-height: 142px; border-radius: 16px; gap: 20px; padding: 24px; transition: background .2s ease, border-color .2s ease; }
.account-card:hover { background: #382827; border-color: #cfa897; }
.account-avatar { width: 62px; border-radius: 18px; box-shadow: none; font-size: 1.8rem; }
.account-card h3 { font-size: 1.4rem; }
.account-more { background: #ffe174; }
.account-more:hover { background: #ffea9b; }
.process-list { margin-top: 48px; }
.process-list li { padding-block: 30px; }
.process-list h3 { font-size: 1.45rem; }
.scene-section { padding-block: 104px; background: #faebe5; }
.scene-grid { margin-top: 48px; gap: 20px; }
.scene-card { min-height: 280px; border-radius: 16px; padding: 28px; }
.scene-card h3 { margin-top: 70px; font-size: 1.8rem; }
.scene-card p { font-size: .9rem; }
.contact { padding-top: 110px; background: #f52235; }
.contact h2 { font-size: clamp(2.7rem,5.5vw,5.5rem); line-height: 1.2; }
.contact-bottom { margin-top: 70px; }
.resource-hero { min-height: 710px; padding-top: 160px; background: radial-gradient(ellipse at 88% 18%, #ff6680, transparent 42%), radial-gradient(ellipse at 5% 100%, #ff901c, transparent 45%), #f52235; }
.resource-hero h1 { line-height: 1.12; font-size: clamp(5rem,7.5vw,7rem); text-shadow: none; }
.resource-hero h1 span { transform: none; }
.resource-hero h1 em { margin-top: 10px; font-size: .42em; }
.resource-stats { grid-template-columns: repeat(6,minmax(0,1fr)); max-width: 1000px; gap: 0; margin-top: 36px; }
.resource-stats > div { grid-column: auto; padding: 20px 10px; border: 0; border-right: 1px solid rgba(255,255,255,.3); border-radius: 0; background: none; backdrop-filter: none; }
.resource-stats > div:last-child { border-right: 0; }
.resource-stats strong { font-size: 2rem; font-variant-numeric: tabular-nums; }
.resource-stats span, .resource-snapshot { color: #ffe1d9; }
.resource-ring { opacity: .5; }
.resource-catalog, .case-library { padding-top: 90px; }
.catalog-heading h2, .case-heading h2 { font-size: clamp(2.6rem,4.5vw,4.5rem); line-height: 1.15; }
.catalog-heading > p, .case-heading > p { font-size: .9rem; line-height: 1.85; }
.curation-toolbar { margin-top: 38px; background: #f7eee7; box-shadow: none; border-color: var(--line); border-radius: 16px; }
.curation-filters { flex-wrap: wrap; }
.resource-card { border-radius: 16px; box-shadow: none; padding: 24px; }
.resource-card::before { height: 2px; background: #f52235; }
.resource-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(78,30,25,.07); }
.resource-metrics div { border-radius: 8px; background: #f9f4ef; }
.resource-metrics strong { font-size: .97rem; }
.resource-metrics span { color: #72615b; }
.resource-intro { font-size: .8rem; }
.resource-avatar { box-shadow: none; }
.profile-link, .recent-cases-link, .case-library-link { border-radius: 8px; }
.profile-link.primary { background: #ed293d; }
.case-hero { min-height: 470px; padding-top: 152px; background: #f52235; position: relative; }
.case-hero::after { content: "↗"; position: absolute; right: 6%; bottom: 4%; color: rgba(255,225,116,.12); font-size: 19rem; line-height: 1; pointer-events: none; }
.case-hero h1 { font-size: clamp(5.5rem,11vw,9rem); text-shadow: none; letter-spacing: -.06em; }
.case-filters { border-radius: 16px; padding: 24px; border-color: var(--line); }
.case-grid { margin-top: 32px; gap: 24px; }
.case-card { border-radius: 16px; box-shadow: none; }
.case-cover { aspect-ratio: 16 / 10; min-height: 0; }
.case-copy h3 { line-height: 1.5; font-size: 1.2rem; }
.case-empty { border-radius: 16px; }
.case-filters a:hover, .resource-filters a:hover, .curation-filters a:hover, .capability-filters a:hover, .resource-pagination a:hover, .case-pagination a:hover { border-color: #d82338; }
.site-footer a:hover { color: #ffe174; }
@media (max-width: 1100px) { .site-nav { gap: 16px; } .hero-content { column-gap: 28px; } .hero h1 em { font-size: .36em; } }
@media (max-width: 980px) {
  .site-header, .site-header.scrolled, .resource-header:not(.scrolled), .case-header:not(.scrolled) { inset: 12px 18px auto; padding: 10px 16px; min-height: 66px; }
  .site-nav { top: 76px; left: 0; right: 0; }
  .hero { min-height: 760px; padding: 144px 28px 54px; }
  .hero-content { grid-template-columns: 1.1fr .9fr; gap: 24px; }
  .hero h1 { font-size: clamp(4.2rem,9vw,6rem); }
  .hero h1 em { white-space: normal; font-size: .43em; }
  .ignition-art { height: 290px; }
  .ignition-word { font-size: 25vw; }
  .ignition-tag { font-size: .65rem; padding: 8px 11px; }
  .ignition-star { font-size: 3rem; }
  .hero-stats { grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 28px; }
  .hero-stats > div { padding: 18px; }
  .hero-stats > div:first-child { padding-left: 18px; }
  .hero-stats > div:nth-child(3) { border-right: 0; }
  .hero-stats > div:nth-child(-n+3) { border-bottom: 1px solid rgba(255,255,255,.2); }
  .section { padding-block: 88px; }
  .team-section { gap: 36px; }
  .resource-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .resource-stats > div:nth-child(3) { border-right: 0; }
  .resource-stats > div:nth-child(-n+3) { border-bottom: 1px solid rgba(255,255,255,.2); }
  .catalog-heading, .case-heading { gap: 20px; }
}
@media (max-width: 640px) {
  html { scroll-padding-top: 96px; }
  .site-header, .site-header.scrolled, .resource-header:not(.scrolled), .case-header:not(.scrolled) { inset: 10px 12px auto; min-height: 62px; border-radius: 16px; }
  .menu-toggle { padding: 10px; font-size: .8rem; }
  .hero { min-height: 0; padding: 118px 22px 38px; }
  .hero-content { grid-template-columns: 1fr; gap: 0; }
  .danmaku-layer { opacity: .58; }
  .hero-promise { top: auto; margin-bottom: 26px; }
  .hero h1 { font-size: clamp(4.8rem,21vw,6rem); }
  .hero h1 span { font-size: 1.15em; }
  .hero h1 em { margin-top: 12px; font-size: .36em; }
  .hero-copy { font-size: .86rem; margin-top: 20px; }
  .hero-actions { display: grid; grid-template-columns: 1.2fr 1fr; gap: 8px; margin-top: 24px; }
  .button { padding-inline: 10px; min-height: 48px; font-size: .72rem; gap: 10px; }
  .ignition-art { display: none; }
  .hero-stats { margin-top: 34px; }
  .hero-stats > div, .hero-stats > div:first-child { padding: 18px 10px; }
  .hero-stats strong { font-size: 1.65rem; }
  .hero-stats span { font-size: .61rem; }
  .snapshot-note { line-height: 1.8; font-size: .6rem; }
  .hero::after { font-size: 260px; }
  .section { padding-block: 72px; }
  .section-label { margin-bottom: 34px; font-size: .6rem; }
  .section-title h2, .section-heading h2, .gene-heading h2, .accounts-heading h2, .scene-heading h2 { font-size: clamp(2rem,8.5vw,3rem); line-height: 1.3; }
  .about-grid { gap: 28px; }
  .fact-strip { margin-top: 36px; }
  .fact-strip div { padding: 22px 0; }
  .team-section { min-height: 0; padding: 64px 22px 94px; }
  .team-number { font-size: 55vw; }
  .team-copy h2 { font-size: 2.35rem; }
  .team-stamp { width: 80px; bottom: 16px; }
  .team-stamp span { font-size: .5rem; } .team-stamp b { font-size: .66rem; }
  .capability-grid { margin-top: 32px; }
  .capability-card { min-height: 290px; padding: 26px; }
  .capability-card h3 { font-size: 2rem; margin-top: 54px; }
  .gene-section, .scene-section, .contact { padding-block: 72px; }
  .gene-grid, .scene-grid { gap: 20px; margin-top: 32px; }
  .gene-card { min-height: 0; padding-bottom: 20px; }
  .gene-card h3 { margin-top: 32px; font-size: 2rem; }
  .account-grid { margin-top: 32px; }
  .account-card { padding: 20px; gap: 14px; }
  .account-avatar { width: 52px; border-radius: 14px; }
  .account-card h3 { font-size: 1.2rem; }
  .process-list li { gap: 14px; grid-template-columns: 36px 1fr; }
  .process-list p { font-size: .86rem; }
  .contact h2 { font-size: 2.45rem; }
  .contact-bottom { margin-top: 40px; gap: 24px; }
  .contact-bottom p { font-size: .85rem; }
  .resource-hero { min-height: 0; padding: 125px 20px 48px; }
  .resource-hero h1 { font-size: 5.5rem; }
  .resource-lead { font-size: .88rem; }
  .resource-stats { margin-top: 26px; }
  .resource-stats > div { padding: 16px 4px; }
  .resource-stats strong { font-size: 1.65rem; }
  .resource-stats span { font-size: .61rem; }
  .resource-catalog, .case-library { padding-block: 64px 80px; }
  .curation-filters { flex-wrap: wrap; }
  .resource-card { padding: 20px; }
  .case-hero { min-height: 370px; padding: 130px 20px 60px; }
  .case-hero::after { font-size: 10rem; }
  .case-hero h1 { font-size: 5.5rem; }
  .case-filters { padding: 18px; }
  .case-filter-group { align-items: flex-start; }
  .case-filter-group strong { width: 100%; }
  .case-empty { padding: 56px 20px; }
}
@media (prefers-reduced-motion: reduce) { .danmaku-layer { display: none; } .reveal { transform: none; } }
