/* Meteor shares the portfolio's paper background; the website frame and data stay blue. */
.project-dialog[data-project="meteor"] { background: var(--paper); color: var(--ink); }
.project-dialog[data-project="meteor"] .dialog-nav { color: var(--ink); }
.project-dialog[data-project="meteor"] .dialog-close-icon { background: #d3edff; color: #151515; }
.project-dialog[data-project="meteor"] .case-meta { border-top-color: var(--ink); }
.project-dialog[data-project="meteor"] .case-hero-image.meteor { background: #102b41; }
.project-dialog[data-project="meteor"] .case-deliverables li { border-color: var(--ink); color: var(--ink); }
.project-dialog[data-project="meteor"] .case-site-link a { color: var(--ink); border-bottom-color: var(--ink); }
.meteor-seo { --seo-ink: var(--ink,#151515); max-width: 1500px; margin: 0 auto 60px; padding: 60px var(--gutter,48px); background: var(--paper,#f3f0e9); color: var(--seo-ink); }
.meteor-seo-heading { display: grid; grid-template-columns: 1fr 1fr; column-gap: 10%; align-items: end; }
.meteor-seo-heading .eyebrow { grid-column: 1/-1; color: #766a5b; font-size: 9px; letter-spacing: .12em; margin-bottom: 25px; }
.meteor-seo-heading h3 { font: 500 clamp(38px,4.5vw,66px)/1 var(--font,Arial,sans-serif); letter-spacing: -.055em; }
.meteor-seo-heading h3 em { font-family: var(--serif,Georgia,serif); font-weight: 400; }
.meteor-seo-heading>p:last-child { max-width: 420px; margin: 0; font-size: 13px; line-height: 1.8; color: #6a6056; }
.meteor-seo-scores { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 36px; scroll-margin-top: 24px; }
.meteor-seo-metric { display: flex; flex-direction: column; align-items: start; padding: 27px 25px; border: 1px solid var(--seo-ink); border-radius: 5px; background: #173b56; min-width: 0; }
.meteor-seo-metric-label { min-height: 20px; font-size: 8px; letter-spacing: .1em; line-height: 1.5; color: #afd1e8; }
.meteor-seo-value { font-size: clamp(56px,6.2vw,90px); font-weight: 500; letter-spacing: -.07em; line-height: 1; margin: 17px 0 20px; color: #dff4ff; white-space: nowrap; }
.meteor-seo-value>span { font-size: 20px; letter-spacing: -.035em; color: #9ebfd6; margin-left: 4px; }
.meteor-seo-value>.meteor-seo-hash { font-size: .46em; margin: 0 4px 0 0; color: inherit; }
.meteor-seo-rating { border-radius: 3px; padding: 7px 9px; background: #214d68; color: #b9e8ff; font-size: 10px; line-height: 1.5; }
.meteor-seo-ranking-metric .meteor-seo-rating { background: #2a435b; color: #c0d8eb; }
.meteor-seo-metric-note { font-size: 10px; line-height: 1.8; color: #b5cedf; margin-top: 16px; }
.meteor-seo-date { font-size: 9px; line-height: 1.7; margin-top: auto; padding-top: 14px; color: #9fbdd2; }
.meteor-seo-assessment { display: grid; grid-template-columns: 145px 1fr; gap: 30px; padding: 25px 0; margin-top: 4px; border-bottom: 1px solid var(--seo-ink); }
.meteor-seo-assessment-label { font-size: 8px; letter-spacing: .1em; padding-top: 4px; color: #766a5b; }
.meteor-seo-assessment>p:last-child { font-size: 12px; line-height: 1.9; max-width: 770px; }
.meteor-seo-rankings { padding-top: 38px; scroll-margin-top: 24px; }
.meteor-seo-rankings>.eyebrow { font-size: 8px; color: #766a5b; letter-spacing: .1em; margin-bottom: 16px; }
.meteor-seo-ranking-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 25px; margin-bottom: 22px; }
.meteor-seo h4 { margin: 0; font-size: clamp(24px,2.7vw,36px); font-weight: 500; letter-spacing: -.04em; }
.meteor-seo-ranking-heading>span { font-size: 9px; color: #6a6056; }
.meteor-seo-table-wrap { overflow-x: auto; }
.meteor-seo table { width: 100%; border-collapse: collapse; text-align: left; font-size: 12px; }
.meteor-seo th,.meteor-seo td { border-bottom: 1px solid var(--seo-ink); padding: 17px 12px; line-height: 1.6; }
.meteor-seo thead th { font-size: 9px; letter-spacing: .06em; font-weight: 500; color: var(--seo-ink); background: #cce5f5; }
.meteor-seo th:first-child { padding-left: 15px; }
.meteor-seo tbody th { font-weight: 450; }
.meteor-seo td strong { font-size: 22px; font-weight: 500; letter-spacing: -.04em; }
.meteor-seo td:last-child { font-size: 10px; color: #6a6056; white-space: nowrap; }
.meteor-seo-source-note { font-size: 10px; line-height: 1.8; color: #6a6056; margin-top: 15px; max-width: 800px; }
.meteor-seo-evidence { margin-top: 45px; padding-top: 35px; border-top: 1px solid var(--seo-ink); }
.meteor-seo-evidence-heading>p { font-size: 11px; line-height: 1.8; color: #6a6056; margin-top: 11px; }
.meteor-seo-evidence-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 23px; }
.meteor-seo-evidence figure { margin: 0; min-width: 0; }
.meteor-seo-evidence a { display: block; border: 1px solid var(--seo-ink); border-radius: 4px; overflow: hidden; background: #173b56; }
.meteor-seo-evidence img { display: block; width: 100%; height: auto; }
.meteor-seo-evidence figcaption { display: flex; justify-content: space-between; gap: 15px; font-size: 10px; line-height: 1.7; margin-top: 13px; }
.meteor-seo-evidence figcaption>span { color: var(--seo-ink); }
.meteor-seo-sources { display: flex; align-items: start; justify-content: space-between; gap: 30px; border-top: 1px solid var(--seo-ink); padding-top: 23px; margin-top: 34px; font-size: 9px; line-height: 1.9; color: #6a6056; }
.meteor-seo-sources p { max-width: 690px; }
.meteor-seo-sources a { flex-shrink: 0; color: var(--seo-ink); text-decoration: underline; text-underline-offset: 4px; }
.meteor-seo-growth { padding-top: 38px; scroll-margin-top: 24px; }
.meteor-seo-growth>.eyebrow { font-size: 8px; color: #766a5b; letter-spacing: .1em; margin-bottom: 18px; }
.meteor-growth-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; }
.meteor-growth-heading h4 { font-size: clamp(32px,3.7vw,48px); line-height: 1.06; }
.meteor-growth-heading h4 em { font-family: var(--serif,Georgia,serif); font-weight: 400; }
.meteor-growth-controls { display: flex; gap: 7px; flex-wrap: wrap; }
.meteor-growth-controls button { padding: 11px 15px; min-height: 40px; border: 1px solid var(--seo-ink); border-radius: 4px; background: transparent; color: var(--seo-ink); font: inherit; font-size: 10px; }
.meteor-growth-controls button[aria-pressed=true] { background: #173b56; color: #e8f4ff; border-color: var(--seo-ink); }
.meteor-growth-summary { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-top: 30px; }
.meteor-growth-change { display: flex; align-items: end; gap: 22px; }
.meteor-growth-change>strong { font-size: clamp(58px,6.5vw,88px); line-height: .95; font-weight: 500; letter-spacing: -.07em; color: var(--seo-ink); }
.meteor-growth-change>strong>span { font-size: .46em; margin-left: 5px; }
.meteor-growth-change>span { max-width: 140px; font-size: 11px; line-height: 1.8; padding-bottom: 3px; color: #6a6056; }
.meteor-growth-period-label { font-size: 12px; line-height: 1.9; text-align: right; }
.meteor-growth-period-label>span { font-size: 10px; color: #6a6056; }
.meteor-growth-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; margin-top: 27px; padding-top: 22px; border-top: 1px solid var(--seo-ink); }
.meteor-growth-stats dt { font-size: 8px; line-height: 1.7; letter-spacing: .06em; color: #6a6056; }
.meteor-growth-stats dd { margin: 10px 0 0; font-size: 35px; font-weight: 500; letter-spacing: -.04em; }
.meteor-growth-stats dd>span { font-size: .6em; margin: 0 12px; color: var(--seo-ink); }
.meteor-growth-stats small { font-size: 10px; font-weight: 400; letter-spacing: 0; margin-left: 9px; color: #6a6056; }
.meteor-growth-plot { margin: 25px 0 0; padding: 18px 20px 15px; border: 1px solid var(--seo-ink); border-radius: 4px; background: #133149; }
.meteor-growth-plot svg { display: block; width: 100%; height: auto; overflow: visible; }
.meteor-growth-grid { stroke: #45657d; stroke-width: 1; opacity: .55; }
.meteor-growth-line { fill: none; stroke: #9fdcff; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.meteor-growth-point { fill: #b7e4ff; stroke: #133149; stroke-width: 3; }
.meteor-growth-axis,.meteor-growth-month { fill: #a1c2d9; font-family: var(--font,Arial,sans-serif); font-size: 15px; }
.meteor-growth-point-value { fill: #e8f4ff; font-family: var(--font,Arial,sans-serif); font-size: 21px; }
.meteor-growth-plot figcaption { font-size: 9px; line-height: 1.8; color: #9ebfd6; }
.meteor-growth-data { margin-top: 18px; }
.meteor-growth-data summary { cursor: pointer; width: fit-content; font-size: 10px; color: var(--seo-ink); padding: 7px 0; }
.meteor-growth-data table { margin-top: 13px; }
.meteor-seo-measurement { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 18px 30px; margin-top: 29px; padding: 19px 0; border-top: 1px solid var(--seo-ink); border-bottom: 1px solid var(--seo-ink); }
.meteor-seo-measurement p { font-size: 12px; line-height: 1.8; }
.meteor-seo-measurement span { display: block; margin-bottom: 5px; font-size: 7px; letter-spacing: .1em; color: #6a6056; }
.meteor-seo-measurement+.meteor-seo-scores { margin-top: 24px; }
.meteor-growth-history { margin-top: 12px; font-size: 10px; line-height: 1.8; color: #6a6056; }
.meteor-seo-method { padding: 36px 0; border-bottom: 1px solid var(--seo-ink); }
.meteor-seo-method-heading { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10%; align-items: end; }
.meteor-seo-method-heading .eyebrow { font-size: 8px; color: #716b63; margin-bottom: 17px; }
.meteor-seo-method-heading h4 { font-size: clamp(28px,3.3vw,43px); line-height: 1.08; }
.meteor-seo-method-heading h4 em { font-family: var(--serif); font-weight: 400; }
.meteor-seo-method-heading>p { font-size: 12px; line-height: 1.9; color: #6a6056; }
.meteor-seo-steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 40px; margin: 29px 0 0; padding: 0; list-style: none; }
.meteor-seo-steps li { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 14px; padding: 25px 0; border-top: 1px solid #15151540; }
.meteor-seo-step-number { padding-top: 3px; font-size: 9px; color: #6a6056; }
.meteor-seo-steps h5 { margin: 0 0 12px; font-size: 17px; line-height: 1.45; font-weight: 500; letter-spacing: -.025em; }
.meteor-seo-steps p { font-size: 11px; line-height: 1.9; color: #6a6056; }
.meteor-seo-method-note { padding-top: 21px; border-top: 1px solid #15151540; font-size: 12px; line-height: 1.9; }
.meteor-seo-sources>div { display: flex; flex-direction: column; align-items: start; gap: 9px; }
@media(max-width:760px) {
  .project-dialog[data-project="meteor"] #dialog-contact { display: block; font-size: 10px; white-space: nowrap; }
  .meteor-seo-growth { padding-top: 29px; }
  .meteor-growth-heading { display: block; }
  .meteor-growth-heading h4 { font-size: 33px; }
  .meteor-growth-controls { margin-top: 22px; }
  .meteor-growth-controls button { padding: 10px 12px; font-size: 9px; }
  .meteor-growth-summary { display: block; margin-top: 28px; }
  .meteor-growth-change { gap: 17px; }
  .meteor-growth-change>strong { font-size: 65px; }
  .meteor-growth-change>span { font-size: 10px; }
  .meteor-growth-period-label { text-align: left; margin-top: 19px; font-size: 11px; }
  .meteor-growth-stats { gap: 15px; margin-top: 20px; }
  .meteor-growth-stats dt { font-size: 6px; min-height: 23px; }
  .meteor-growth-stats dd { font-size: 25px; }
  .meteor-growth-stats dd>span { margin: 0 5px; }
  .meteor-growth-stats small { display: block; font-size: 8px; margin: 5px 0 0; }
  .meteor-growth-plot { padding: 15px 9px 11px; }
  .meteor-growth-line { stroke-width: 6; }
  .meteor-growth-point { stroke-width: 5; r: 9; }
  .meteor-growth-axis,.meteor-growth-month { font-size: 34px; }
  .meteor-growth-axis { display: none; }
  .meteor-growth-point-value { font-size: 43px; }
  .meteor-growth-plot figcaption { font-size: 8px; }
  .meteor-seo-measurement { margin-top: 24px; gap: 14px 22px; }
  .meteor-seo-measurement p { font-size: 10px; }
  .meteor-seo-measurement span { font-size: 6px; }
  .meteor-seo-method { padding: 28px 0; }
  .meteor-seo-method-heading { grid-template-columns: minmax(0,1fr); gap: 21px; }
  .meteor-seo-method-heading h4 { font-size: 31px; }
  .meteor-seo-method-heading>p { font-size: 11px; }
  .meteor-seo-steps { grid-template-columns: minmax(0,1fr); margin-top: 23px; }
  .meteor-seo-steps li { padding: 22px 0; gap: 10px; }
  .meteor-seo-steps h5 { font-size: 16px; }
  .meteor-seo-method-note { font-size: 11px; }
  .meteor-seo-sources>div { margin-top: 13px; }
  .meteor-seo-sources>div a { margin-top: 0; }
}
@media(max-width:760px) {
  .meteor-seo { padding: 35px 24px; margin-bottom: 35px; }
  .meteor-seo-heading { display: block; }
  .meteor-seo-heading .eyebrow { font-size: 7px; margin-bottom: 20px; }
  .meteor-seo-heading h3 { font-size: 42px; }
  .meteor-seo-heading>p:last-child { font-size: 11px; margin-top: 20px; }
  .meteor-seo-scores { grid-template-columns: 1fr; gap: 12px; margin-top: 27px; }
  .meteor-seo-metric { padding: 23px; }
  .meteor-seo-value { font-size: 68px; margin: 12px 0 16px; }
  .meteor-seo-metric-label { min-height: 0; }
  .meteor-seo-assessment { display: block; padding: 23px 0; }
  .meteor-seo-assessment-label { margin-bottom: 12px; }
  .meteor-seo-assessment>p:last-child { font-size: 11px; }
  .meteor-seo-rankings { padding-top: 28px; }
  .meteor-seo-ranking-heading { display: block; margin-bottom: 18px; }
  .meteor-seo-ranking-heading>span { display: block; margin-top: 11px; }
  .meteor-seo table { font-size: 10px; }
  .meteor-seo th,.meteor-seo td { padding: 13px 7px; }
  .meteor-seo th:first-child { padding-left: 7px; }
  .meteor-seo td strong { font-size: 19px; }
  .meteor-seo td:last-child { font-size: 8px; }
  .meteor-seo thead th { font-size: 8px; letter-spacing: 0; }
  .meteor-seo-evidence-grid { grid-template-columns: 1fr; gap: 25px; }
  .meteor-seo-evidence figcaption { font-size: 9px; }
  .meteor-seo-sources { display: block; }
  .meteor-seo-sources a { display: inline-block; margin-top: 12px; }
}

.meteor-geo-approach { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10%; margin-top: 0; padding: 30px 0; border-bottom: 1px solid var(--seo-ink); }
.meteor-geo-approach .eyebrow { font-size: 8px; color: #716b63; margin-bottom: 17px; }
.meteor-geo-approach h4 { font-size: clamp(29px,3.5vw,45px); line-height: 1.06; margin: 0; }
.meteor-geo-approach h4 em { font-family: var(--serif); font-weight: 400; }
.meteor-geo-approach p { font-size: 11px; line-height: 1.9; color: #686159; }
.meteor-geo-approach p+p { margin-top: 17px; }
.meteor-geo-approach strong { font-weight: 550; color: var(--ink); }
.meteor-geo-approach a { display: inline-block; margin-top: 15px; font-size: 10px; color: var(--seo-ink); text-decoration: underline; text-underline-offset: 4px; }
@media(max-width:760px) { .meteor-geo-approach { grid-template-columns: minmax(0,1fr); gap: 23px; } }
