/* Loaded only by the four narrative templates. No global or homepage rules. */
.gr-narrative { --gr-border:#454149; --gr-panel:#242227; }
.gr-narrative [id] { scroll-margin-top:112px; }
.gr-narrative .gr-section { padding:88px 0; border-top:1px solid var(--gr-border); }
.gr-narrative .gr-soft { background:var(--gr-panel); }
.gr-narrative .gr-head { display:grid; grid-template-columns:1.15fr 1fr; gap:8%; margin-bottom:44px; align-items:start; }
.gr-narrative .gr-head h2 { margin-bottom:0; }
.gr-narrative .gr-head>p { padding-top:4px; max-width:560px; margin:0; }
.gr-narrative .gr-kicker { font:10px/1.7 var(--mono); text-transform:uppercase; letter-spacing:.1em; color:var(--acid); margin-bottom:22px; }
.gr-narrative h2 { font-size:clamp(34px,4.1vw,62px); }
.gr-narrative .gr-head h2 { max-width:780px; }
.gr-narrative .gr-intro { max-width:880px; font-size:clamp(19px,2.1vw,28px); line-height:1.55; }
.gr-narrative .gr-note { font:11px/1.8 var(--mono); color:var(--muted); max-width:1060px; margin:20px 0 0; }
.gr-narrative .gr-note a { text-decoration:underline; text-underline-offset:4px; }
.gr-narrative .gr-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--gr-border); }
.gr-narrative .gr-card { padding:30px 30px 18px 0; min-width:0; }
.gr-narrative .gr-card+.gr-card { border-left:1px solid var(--gr-border); padding-left:30px; }
.gr-narrative .gr-card h3 { font-size:clamp(24px,2.35vw,34px); margin:22px 0 18px; }
.gr-narrative .gr-card p { font-size:15px; margin-bottom:18px; max-width:480px; }
.gr-narrative .gr-number { color:var(--acid); font:11px var(--mono); }
.gr-narrative .gr-pale { background:var(--paper); color:var(--black); }
.gr-narrative .gr-pale :is(p,.gr-kicker,.gr-note) { color:#50475c; }
.gr-narrative .gr-pale a { color:var(--black); }
.gr-narrative .gr-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:26px 0; border-top:1px solid #1c1c1e40; border-bottom:1px solid #1c1c1e40; }
.gr-narrative .gr-metric { padding:30px 24px; border-left:1px solid #1c1c1e40; }
.gr-narrative .gr-metric:first-child { padding-left:0; border-left:0; }
.gr-narrative .gr-metric strong { display:block; font-size:clamp(36px,4.5vw,68px); font-weight:400; letter-spacing:-.06em; line-height:1.1; }
.gr-narrative .gr-metric span { display:block; font:10px/1.65 var(--mono); margin-top:15px; }
.gr-narrative .gr-benchmark { display:flex; gap:30px; justify-content:space-between; align-items:center; padding-top:8px; }
.gr-narrative .gr-benchmark p { margin:0; max-width:850px; font-size:14px; }
.gr-narrative .gr-benchmark a { flex-shrink:0; }
.gr-narrative .gr-split { display:grid; grid-template-columns:1fr 1fr; gap:8%; align-items:center; }
.gr-narrative .gr-split>*,.gr-narrative .gr-head>* { min-width:0; }
.gr-narrative .gr-lineage { border-left:1px solid var(--acid); padding-left:30px; margin-top:30px; }
.gr-narrative .gr-lineage p { font-size:15px; }
.gr-narrative .gr-lineage h3 { font-size:25px; }
.gr-narrative .gr-tag { display:inline-block; border:1px solid var(--gr-border); padding:6px 10px; font:10px/1.4 var(--mono); color:var(--muted); }
.gr-narrative .gr-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.gr-narrative .gr-audiences { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--gr-border); }
.gr-narrative .gr-audiences article { padding:28px 36px 12px 0; border-bottom:1px solid var(--gr-border); }
.gr-narrative .gr-audiences article:nth-child(even) { border-left:1px solid var(--gr-border); padding-left:36px; }
.gr-narrative .gr-audiences h3 { font-size:25px; margin-bottom:14px; }
.gr-narrative .gr-audiences p { max-width:490px; font-size:15px; }
.gr-narrative .gr-demo { display:grid; grid-template-columns:1.15fr 1fr; border:1px solid var(--gr-border); background:#201e24; }
.gr-narrative .gr-demo-screen { padding:26px; min-width:0; background:radial-gradient(ellipse at center,#3c304f 0%,#201e24 68%); }
.gr-narrative .gr-demo-label { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font:9px/1.6 var(--mono); color:var(--muted); text-transform:uppercase; letter-spacing:.05em; }
.gr-narrative .gr-demo svg { width:100%; height:auto; max-height:360px; margin:20px 0; }
.gr-narrative .gr-demo svg .gr-link { stroke:#716780; stroke-width:1; fill:none; }
.gr-narrative .gr-demo svg .gr-node { fill:#c4b8d6; }
.gr-narrative .gr-demo svg .gr-ring { stroke:#d5bdff; stroke-width:2.5; fill:none; opacity:.15; transition:opacity .3s; }
.gr-narrative .gr-demo svg .gr-context { stroke:#a88fe0; stroke-width:1.5; stroke-dasharray:4 5; fill:none; opacity:.12; }
.gr-narrative .gr-demo[data-step="1"] .gr-ring,.gr-narrative .gr-demo[data-step="2"] .gr-ring,.gr-narrative .gr-demo[data-step="2"] .gr-context { opacity:1; }
.gr-narrative .gr-demo svg text { fill:var(--paper); font:13px var(--mono); }
.gr-narrative .gr-demo svg .gr-halo { stroke:#b99aee; fill:#a88fe010; stroke-width:2; opacity:.08; transition:opacity .3s; }
.gr-narrative .gr-demo[data-step="1"] .gr-halo,.gr-narrative .gr-demo[data-step="2"] .gr-halo { opacity:1; }
.gr-narrative .gr-demo-content { border-left:1px solid var(--gr-border); padding:32px; }
.gr-narrative .gr-demo-controls { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:30px; }
.gr-narrative .gr-demo-controls button { padding:11px 14px; border:1px solid #716780; background:transparent; font:11px var(--mono); min-height:44px; }
.gr-narrative .gr-demo-controls button[aria-pressed="true"] { color:var(--black); background:var(--paper); border-color:var(--paper); }
.gr-narrative .gr-demo-content h3 { font-size:30px; }
.gr-narrative .gr-demo-content p { font-size:15px; }
.gr-narrative .gr-demo-content ol { color:var(--muted); font-size:14px; padding-left:20px; }
.gr-narrative .gr-demo-content li { margin-bottom:10px; }
.gr-narrative .gr-resources { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.gr-narrative .gr-resource { display:flex; flex-direction:column; border-top:1px solid var(--acid); padding:24px 0 12px; }
.gr-narrative .gr-resource h3 { font-size:25px; margin:10px 0 16px; }
.gr-narrative .gr-resource p { font-size:14px; }
.gr-narrative .gr-resource a { align-self:start; margin-top:auto; }
.gr-narrative .gr-faq { max-width:1000px; margin-left:auto; }
.gr-narrative .gr-faq details { border-top:1px solid var(--gr-border); }
.gr-narrative .gr-faq details:last-child { border-bottom:1px solid var(--gr-border); }
.gr-narrative .gr-faq summary { list-style:none; padding:24px 44px 24px 0; position:relative; font-size:18px; line-height:1.4; }
.gr-narrative .gr-faq summary::-webkit-details-marker { display:none; }
.gr-narrative .gr-faq summary::after { content:'+'; color:var(--acid); position:absolute; right:4px; top:21px; font-size:26px; }
.gr-narrative .gr-faq details[open] summary::after { content:'−'; }
.gr-narrative .gr-faq details p { max-width:800px; font-size:15px; padding-right:25px; }
.gr-narrative .gr-pillars { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid var(--gr-border); }
.gr-narrative .gr-pillar { border-bottom:1px solid var(--gr-border); padding:34px 40px 30px 0; }
.gr-narrative .gr-pillar:nth-child(even) { border-left:1px solid var(--gr-border); padding-left:40px; }
.gr-narrative .gr-pillar h3 { font-size:32px; margin:20px 0 16px; }
.gr-narrative .gr-pillar p { font-size:15px; max-width:480px; }
.gr-narrative .gr-research-hero h1 { max-width:1080px; font-size:clamp(54px,7.8vw,116px); }
.gr-narrative .gr-research-hero .lede { max-width:760px; }
.gr-narrative .gr-filters { display:flex; flex-wrap:wrap; gap:20px; align-items:end; margin:30px 0; }
.gr-narrative .gr-filters label { display:grid; gap:10px; font:10px/1.5 var(--mono); color:var(--muted); }
.gr-narrative .gr-filters select { min-width:210px; max-width:100%; color:var(--ink); background:var(--bg); border:1px solid #716780; padding:12px 36px 12px 12px; font:13px var(--display); }
.gr-narrative .gr-filter-result { margin:0 0 10px auto; color:var(--muted); font:11px/1.6 var(--mono); }
.gr-narrative .gr-publication { border-top:1px solid var(--gr-border); }
.gr-narrative .gr-publication:last-of-type { border-bottom:1px solid var(--gr-border); }
.gr-narrative .gr-publication>summary { display:grid; grid-template-columns:100px minmax(0,1fr) 28px; gap:30px; padding:30px 0; list-style:none; align-items:start; }
.gr-narrative .gr-publication>summary::-webkit-details-marker { display:none; }
.gr-narrative .gr-publication>summary::after { content:'+'; color:var(--acid); font-size:28px; line-height:1; }
.gr-narrative .gr-publication[open]>summary::after { content:'−'; }
.gr-narrative .gr-publication>summary .gr-tags { margin-bottom:15px; }
.gr-narrative .gr-publication>summary h3 { font-size:clamp(25px,3vw,42px); max-width:900px; margin-bottom:14px; }
.gr-narrative .gr-publication>summary p { max-width:820px; font-size:15px; margin:0; }
.gr-narrative .gr-publication-body { padding:10px 0 40px 130px; }
.gr-narrative .gr-publication-body>p { max-width:850px; }
.gr-narrative .gr-publication-body .rd-recurrence-grid { margin-top:30px; }
.gr-narrative .gr-publication-body .rd-benchmark-key { margin-top:30px; }
.gr-narrative .gr-publication-body h4 { font-size:22px; font-weight:500; margin:28px 0 18px; }
.gr-narrative .gr-empty { padding:30px; border:1px solid var(--gr-border); }
.gr-narrative .gr-compact-cta { display:flex; gap:40px; justify-content:space-between; align-items:center; }
.gr-narrative .gr-compact-cta h2 { max-width:850px; margin:0; }
.gr-narrative .gr-compact-cta .button { flex-shrink:0; background:var(--black); border-color:var(--black); color:var(--paper); }
@media(max-width:1000px) {
 .gr-narrative .gr-head { gap:5%; }
 .gr-narrative .gr-demo { grid-template-columns:1fr 1fr; }
 .gr-narrative .gr-publication-body { padding-left:0; }
 .gr-narrative .gr-compact-cta { align-items:start; flex-direction:column; }
 .gr-narrative .gr-benchmark { flex-direction:column; align-items:start; gap:12px; }
}
@media(max-width:760px) {
 .gr-narrative .gr-section { padding:60px 0; }
 .gr-narrative .gr-head,.gr-narrative .gr-split { grid-template-columns:1fr; gap:26px; }
 .gr-narrative .gr-head { margin-bottom:32px; }
 .gr-narrative .gr-grid,.gr-narrative .gr-resources { grid-template-columns:1fr; }
 .gr-narrative .gr-card,.gr-narrative .gr-card+.gr-card { padding:26px 0 12px; border-left:0; }
 .gr-narrative .gr-card+.gr-card { border-top:1px solid var(--gr-border); }
 .gr-narrative .gr-card h3 { margin-top:16px; }
 .gr-narrative .gr-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .gr-narrative .gr-metric { padding:24px 16px; }
 .gr-narrative .gr-metric:nth-child(3) { padding-left:0; border-left:0; border-top:1px solid #1c1c1e40; }
 .gr-narrative .gr-metric:nth-child(4) { border-top:1px solid #1c1c1e40; }
 .gr-narrative .gr-audiences,.gr-narrative .gr-pillars,.gr-narrative .gr-demo { grid-template-columns:1fr; }
 .gr-narrative .gr-audiences article,.gr-narrative .gr-audiences article:nth-child(even),.gr-narrative .gr-pillar,.gr-narrative .gr-pillar:nth-child(even) { border-left:0; padding:28px 0 14px; }
 .gr-narrative .gr-demo-content { border-left:0; border-top:1px solid var(--gr-border); padding:24px; }
 .gr-narrative .gr-demo-screen { padding:22px; }
 .gr-narrative .gr-demo-controls { gap:6px; }
 .gr-narrative .gr-demo-controls button { flex:1; padding:10px; }
 .gr-narrative .gr-publication>summary { grid-template-columns:minmax(0,1fr) 24px; gap:12px; }
 .gr-narrative .gr-publication>summary>.gr-number { grid-column:1/-1; }
 .gr-narrative .gr-research-hero h1 { font-size:clamp(43px,9vw,64px); }
 .gr-narrative .gr-filters { align-items:stretch; }
 .gr-narrative .gr-filters label { width:100%; }
 .gr-narrative .gr-filter-result { margin:0; }
 .gr-narrative .gr-note { font-size:10px; }
 .gr-narrative .gr-tags { gap:6px; }
 .gr-narrative .gr-tag { font-size:9px; }
}
