/* Shovel IQ corporate site
   Layout: 1200px editorial column, 12/8/4 grid, navy bands alternate with white and soft grey.
   One deliberate light look (brief: formal institutional editorial). */
:root {
  --ink: #101F32;
  --ink-deep: #0A1524;
  --paper: #FFFFFF;
  --paper-soft: #F4F5F6;
  --text: #172230;
  --text-muted: #536171;
  --line: #D9DFE5;
  --line-strong: #B9C2CC;
  --field-border: #7E8B99;
  --orange: #F79634;       /* sampled from the supplied logo */
  --orange-light: #E6A05A; /* accent text on navy */
  --on-ink: #FFFFFF;
  --on-ink-muted: rgba(255,255,255,0.80);
  --on-ink-faint: rgba(255,255,255,0.62);
  --danger: #A3271B;
  --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --sans: "Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --maxw: 1200px;
  color-scheme: light;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--text);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ink); }
a:hover { color: var(--ink-deep); }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; color: var(--ink); text-wrap: balance; margin: 0; }
h1 { font-size: clamp(38px, 4.6vw, 64px); line-height: 1.07; letter-spacing: -0.01em; }
h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.15; }
h3 { font-size: clamp(21px, 1.9vw, 26px); line-height: 1.25; }
p { margin: 0; }
.lede { font-size: 19px; line-height: 1.6; }
.muted { color: var(--text-muted); }
.prose { max-width: 680px; display: flex; flex-direction: column; gap: 20px; }
.prose p { font-size: 18px; line-height: 1.7; }
.skip { position: absolute; left: -9999px; top: 0; background: var(--paper); color: var(--ink); padding: 12px 16px; z-index: 100; }
.skip:focus { left: 16px; top: 16px; }

/* Layout */
.wrap { max-width: var(--maxw); margin: 0 auto; padding-left: max(20px, env(safe-area-inset-left, 0px)); padding-right: max(20px, env(safe-area-inset-right, 0px)); }
@media (min-width: 768px) { .wrap { padding-left: max(clamp(32px, 4.4vw, 64px), env(safe-area-inset-left, 0px)); padding-right: max(clamp(32px, 4.4vw, 64px), env(safe-area-inset-right, 0px)); } }
.sec { padding-block: 96px; }
.sec-tight { padding-block: 64px; }
.soft { background: var(--paper-soft); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.dark { background: var(--ink); color: var(--on-ink); }
.dark h1, .dark h2, .dark h3 { color: var(--on-ink); }
.dark p { color: var(--on-ink-muted); }
.stack { display: flex; flex-direction: column; gap: 24px; }
.stack-lg { display: flex; flex-direction: column; gap: 44px; }
.split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.split.center { align-items: center; }
.split-even { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px; align-items: start; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 32px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 40px; }
.row-between { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; }
@media (max-width: 1024px) { .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  .split, .split-even, .grid-2 { grid-template-columns: 1fr; gap: 32px; }
  .grid-3 { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 640px) { .sec { padding-block: 56px; } .sec-tight { padding-block: 44px; } }

/* Eyebrow labels */
.eyebrow { display: flex; align-items: center; gap: 14px; font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); }
.eyebrow.rule::before { content: ""; width: 32px; height: 2px; background: var(--orange); flex: none; }
.dark .eyebrow, .hero .eyebrow { color: var(--orange-light); }
.label { font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); }

/* Buttons and links */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 13px 24px; border-radius: 2px; font-family: inherit; font-size: 16px; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; border: 1px solid transparent; }
.btn-primary { background: var(--ink); color: var(--on-ink); }
.btn-primary:hover { background: var(--ink-deep); color: var(--on-ink); }
.btn-light { background: var(--paper); color: var(--ink); }
.btn-light:hover { background: var(--paper-soft); color: var(--ink); }
.btn-ghost { background: transparent; color: var(--on-ink); border-color: rgba(255,255,255,0.7); }
.btn-ghost:hover { background: rgba(255,255,255,0.08); color: var(--on-ink); }
.btn-outline { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn-outline:hover { background: var(--paper-soft); }
.actions { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; }
.tlink { font-weight: 600; color: var(--ink); text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.dark .tlink { color: var(--on-ink); }
.ext::after { content: " ↗"; font-weight: 400; }

/* Header */
.site-header { background: var(--ink); position: relative; z-index: 20; border-bottom: 1px solid rgba(255,255,255,0.08); }
.site-header .wrap { height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand img { height: 34px; width: auto; }
.nav { display: flex; align-items: center; gap: 34px; font-size: 15px; font-weight: 500; }
.nav > a, .nav .dd-btn { color: var(--on-ink); text-decoration: none; padding-block: 10px; }
.nav > a[aria-current="page"], .nav .dd-btn.current { text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 10px; }
.nav .nav-cta { border: 1px solid rgba(255,255,255,0.55); padding: 10px 18px; border-radius: 2px; }
.dd { position: relative; }
.dd-btn { background: none; border: 0; font: inherit; cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
.dd-btn svg { transition: transform 0.15s ease; }
.dd-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.dd-menu { position: absolute; top: calc(100% + 12px); left: -16px; min-width: 230px; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 12px 28px rgba(10,21,36,0.16); padding: 8px 0; display: flex; flex-direction: column; }
.dd-menu a { color: var(--text); text-decoration: none; padding: 11px 18px; font-size: 15px; }
.dd-menu a:hover, .dd-menu a:focus-visible { background: var(--paper-soft); color: var(--ink); }
.menu-btn { display: none; width: 46px; height: 46px; align-items: center; justify-content: center; background: transparent; border: 1px solid rgba(255,255,255,0.4); border-radius: 2px; cursor: pointer; }
.mobile-panel { position: fixed; inset: 0; z-index: 50; background: var(--ink-deep); padding: calc(env(safe-area-inset-top, 0px) + 16px) max(20px, env(safe-area-inset-right, 0px)) 32px max(20px, env(safe-area-inset-left, 0px)); overflow-y: auto; display: flex; flex-direction: column; gap: 24px; }
.mobile-panel .mp-top { display: flex; justify-content: space-between; align-items: center; height: 52px; }
.mobile-panel nav { display: flex; flex-direction: column; }
.mobile-panel nav a { color: var(--on-ink); text-decoration: none; font-family: var(--serif); font-size: 26px; padding-block: 12px; border-bottom: 1px solid rgba(255,255,255,0.12); }
.mobile-panel nav a.sub { font-family: var(--sans); font-size: 17px; padding-left: 18px; color: var(--on-ink-muted); }
body.menu-open { overflow: hidden; }
@media (max-width: 900px) { .nav { display: none; } .menu-btn { display: inline-flex; } .site-header .wrap { height: 68px; } .brand img { height: 30px; } }

/* Hero (photo under navy overlay) */
.hero { position: relative; overflow: hidden; background: var(--ink-deep); color: var(--on-ink); }
.hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero .veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,21,36,0.88) 0%, rgba(10,21,36,0.80) 46%, rgba(16,31,50,0.56) 100%); }
.hero .wrap { position: relative; padding-block: 96px; }
.hero-home { min-height: 600px; display: flex; align-items: center; }
.hero-home .wrap { width: 100%; }
.hero-inner { max-width: 640px; display: flex; flex-direction: column; gap: 28px; }
.hero h1 { color: var(--on-ink); }
.hero p { color: rgba(255,255,255,0.88); }
.hero .credit { position: absolute; right: 0; bottom: 0; padding: 10px max(16px, env(safe-area-inset-right, 0px)) 10px 16px; font-size: 12px; color: rgba(255,255,255,0.66); }
.page-intro { padding-block: 72px 80px; }
.page-intro .wrap > * + * { margin-top: 22px; }
.hero.inner { min-height: 360px; display: flex; align-items: center; }
.hero.inner .wrap { width: 100%; padding-block: 80px; }
@media (max-width: 640px) {
  .hero-home { min-height: 0; }
  .hero .veil { background: rgba(10,21,36,0.84); }
  .hero .wrap, .hero.inner .wrap { padding-block: 64px 72px; }
  .hero .credit { position: static; padding: 0 max(20px, env(safe-area-inset-left, 0px)) 16px; }
}

/* Breadcrumb */
.crumbs ol { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--text-muted); }
.crumbs a { color: var(--text-muted); }
.crumbs li + li::before { content: "/"; margin-right: 8px; }
.dark .crumbs ol, .dark .crumbs a { color: var(--on-ink-faint); }

/* Conference cards */
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 32px; }
.cards.two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 40px; }
.card { display: flex; flex-direction: column; gap: 20px; min-width: 0; text-decoration: none; color: inherit; }
.card-media { aspect-ratio: 16 / 10; width: 100%; max-width: 100%; overflow: hidden; background: var(--ink); position: relative; }
.card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
a.card:hover .card-media img { transform: scale(1.025); }
a.card:hover h3 { text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.panel-fallback { position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 22px), var(--ink); display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; padding: 24px; }
.panel-fallback::before { content: ""; width: 30px; height: 2px; background: var(--orange); }
.panel-fallback span { font-family: var(--serif); color: var(--on-ink); font-size: 22px; line-height: 1.2; }
.card-body { display: flex; flex-direction: column; gap: 12px; }
.card-body p { color: var(--text-muted); font-size: 16px; }
.card-facts { display: flex; flex-direction: column; gap: 2px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 15px; }
.card-facts strong { font-weight: 600; color: var(--text); }
.card-facts span { color: var(--text-muted); }
@media (max-width: 1024px) { .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) { .cards.two { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
  .cards { grid-template-columns: 1fr; gap: 0; }
  .cards .card { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 16px; padding-block: 20px; border-top: 1px solid var(--line); }
  .cards .card-media { aspect-ratio: 1 / 1; }
  .cards .card-body p.desc { display: none; }
  .cards .card h3 { font-size: 19px; }
  .cards .panel-fallback { padding: 12px; }
  .cards .panel-fallback span { font-size: 13px; }
}

/* Filters */
.filters { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 24px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { font-family: inherit; font-size: 15px; font-weight: 500; min-height: 44px; padding: 10px 18px; border-radius: 2px; cursor: pointer; background: var(--paper); color: var(--ink); border: 1px solid var(--line-strong); }
.chip[aria-pressed="true"] { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.result-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; font-size: 15px; color: var(--text-muted); }
.linkbtn { font-family: inherit; font-size: 15px; font-weight: 600; background: none; border: 0; padding: 10px 0; color: var(--ink); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.empty { padding: 44px; background: var(--paper-soft); display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }

/* Facts */
.facts { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding-block: 20px; border-top: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); font-size: 15px; }
.facts.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.facts div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.facts dt { color: var(--text-muted); }
.facts dd { margin: 0; color: var(--text); }
.facts dd.strong { font-weight: 600; }
.dark .facts { border-color: rgba(255,255,255,0.22); }
.dark .facts dt { color: var(--on-ink-faint); }
.dark .facts dd { color: var(--on-ink); }
@media (max-width: 640px) { .facts, .facts.two { grid-template-columns: 1fr; gap: 12px; } }

/* Profile hero */
.profile-hero { background: var(--paper-soft); border-bottom: 1px solid var(--line); }
.profile-hero .wrap { padding-block: 28px 80px; display: flex; flex-direction: column; gap: 44px; }
.profile-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: center; }
.profile-grid .media { aspect-ratio: 4 / 5; width: 100%; max-width: 100%; position: relative; overflow: hidden; background: var(--ink); }
.profile-grid .media img { width: 100%; height: 100%; object-fit: cover; }
.profile-grid .media .panel-fallback span { font-size: 30px; }
@media (max-width: 860px) { .profile-grid { grid-template-columns: 1fr; gap: 32px; } .profile-grid .media { aspect-ratio: 3 / 2; } }

/* Lists */
.rule-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.rule-list li { padding-block: 15px; border-bottom: 1px solid var(--line); }
.dark .rule-list, .dark .rule-list li { border-color: rgba(255,255,255,0.16); }
.tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.tags li { font-size: 14px; padding: 7px 12px; border: 1px solid var(--line-strong); border-radius: 2px; color: var(--text); background: var(--paper); }

/* Figures */
figure { margin: 0; display: flex; flex-direction: column; gap: 12px; }
figure img { width: 100%; max-width: 100%; object-fit: cover; }
figcaption { font-size: 14px; line-height: 1.5; color: var(--text-muted); }
.dark figcaption { color: var(--on-ink-faint); }
.r43 { aspect-ratio: 4 / 3; } .r32 { aspect-ratio: 3 / 2; } .r169 { aspect-ratio: 16 / 9; } .r21 { aspect-ratio: 21 / 9; }
.photo-row { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px; }
@media (max-width: 860px) { .photo-row { grid-template-columns: 1fr; } .r21 { aspect-ratio: 16 / 10; } }

/* Industry panels */
.duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.duo > div { background: var(--paper); padding: 44px; display: flex; flex-direction: column; gap: 18px; }
@media (max-width: 860px) { .duo { grid-template-columns: 1fr; } .duo > div { padding: 32px 24px; } }

/* Related / mini cards */
.mini { text-decoration: none; color: inherit; border-top: 2px solid var(--ink); padding-top: 22px; display: flex; flex-direction: column; gap: 12px; }
.mini p { color: var(--text-muted); font-size: 16px; }
.mini .when { font-size: 15px; font-weight: 600; color: var(--text); }
a.mini:hover h3 { text-decoration: underline; text-decoration-color: var(--orange); text-underline-offset: 5px; }

/* Process steps (a real sequence) */
.steps { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; counter-reset: step; }
.steps li { counter-increment: step; border-top: 2px solid var(--ink); padding-top: 20px; display: flex; flex-direction: column; gap: 10px; }
.steps li::before { content: "Step " counter(step); font-size: 13px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); }
.steps p { color: var(--text-muted); font-size: 16px; }
@media (max-width: 860px) { .steps { grid-template-columns: 1fr; } }

/* FAQ */
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; list-style: none; padding: 20px 40px 20px 0; position: relative; font-family: var(--serif); font-size: 21px; color: var(--ink); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 4px; top: 16px; font-family: var(--sans); font-size: 24px; color: var(--text-muted); }
.faq details[open] summary::after { content: "–"; }
.faq details > div { padding: 0 0 22px; max-width: 720px; color: var(--text-muted); }

/* Table */
.table-wrap { overflow-x: auto; border: 1px solid var(--line); }
table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 16px; }
th, td { text-align: left; padding: 16px 20px; border-bottom: 1px solid var(--line); vertical-align: top; }
thead th { background: var(--ink); color: var(--on-ink); font-weight: 600; }
tbody th { font-weight: 600; color: var(--text); width: 28%; background: var(--paper-soft); }
tbody tr:last-child th, tbody tr:last-child td { border-bottom: 0; }

/* Forms */
.form { display: flex; flex-direction: column; gap: 22px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.form-grid .full { grid-column: 1 / -1; }
.field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.field label, .legend { font-size: 15px; font-weight: 600; color: var(--text); }
.field .opt { font-weight: 400; color: var(--text-muted); }
.field input, .field select, .field textarea { font-family: inherit; font-size: 16px; color: var(--text); background: var(--paper); border: 1px solid var(--field-border); border-radius: 2px; padding: 12px 14px; min-height: 50px; width: 100%; }
.field textarea { min-height: 140px; resize: vertical; }
.field [aria-invalid="true"] { border-color: var(--danger); border-width: 2px; }
.field .err { color: var(--danger); font-size: 14px; }
.checks { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 28px; }
.checks legend { padding: 0; margin-bottom: 8px; }
.check { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 16px; }
.check input { width: 20px; height: 20px; accent-color: var(--ink); flex: none; }
.form-note { font-size: 14px; color: var(--text-muted); }
.status { padding: 16px 18px; border-left: 4px solid var(--orange); background: var(--paper-soft); font-size: 15px; color: var(--text); }
.status.error { border-left-color: var(--danger); }
.dark .field label, .dark .legend, .dark .check { color: var(--on-ink); }
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }

/* Reading pages */
.reading { max-width: 760px; }
.reading h2 { font-size: 28px; margin-top: 44px; }
.reading p, .reading li { font-size: 18px; line-height: 1.7; }
.reading > * + * { margin-top: 18px; }
.notice { padding: 20px 22px; background: var(--paper-soft); border: 1px solid var(--line); border-left: 4px solid var(--orange); font-size: 16px; }

/* Resource card */
.res-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); text-decoration: none; color: inherit; border: 1px solid var(--line); background: var(--paper); }
.res-card .thumb { background: repeating-linear-gradient(135deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 22px), var(--ink); min-height: 240px; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; }
.res-card .thumb .num { font-family: var(--serif); color: var(--on-ink); font-size: 44px; line-height: 1; }
.res-card .thumb small { color: var(--on-ink-muted); font-size: 14px; }
.res-card .body { padding: 32px; display: flex; flex-direction: column; gap: 14px; justify-content: center; }
.res-card .body p { color: var(--text-muted); font-size: 16px; }
@media (max-width: 640px) { .res-card { grid-template-columns: 1fr; } .res-card .thumb { min-height: 180px; } }

/* Founder */
.founder { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; align-items: start; }
.portrait { aspect-ratio: 4 / 5; background: var(--ink); display: flex; align-items: flex-end; padding: 24px; position: relative; }
.portrait span { font-family: var(--serif); font-size: 64px; color: var(--on-ink); line-height: 1; }
.portrait::before { content: ""; position: absolute; left: 24px; top: 24px; width: 32px; height: 2px; background: var(--orange); }
@media (max-width: 860px) { .founder { grid-template-columns: 1fr; gap: 28px; } .portrait { max-width: 280px; } }

/* Footer */
.site-footer { background: var(--ink-deep); color: var(--on-ink-muted); font-size: 15px; }
.site-footer .wrap { padding-block: 72px 40px; display: flex; flex-direction: column; gap: 56px; }
.foot-cols { display: grid; grid-template-columns: minmax(0, 4fr) repeat(4, minmax(0, 2fr)); gap: 40px; }
.foot-cols p { line-height: 1.6; color: var(--on-ink-muted); max-width: 340px; margin-top: 18px; }
.foot-cols img { height: 30px; width: auto; }
.foot-col { display: flex; flex-direction: column; gap: 11px; }
.foot-col .h { color: var(--orange-light); font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 2px; }
.foot-col a { color: var(--on-ink); text-decoration: none; }
.foot-col a:hover { text-decoration: underline; }
.foot-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,0.14); font-size: 14px; color: var(--on-ink-faint); }
.foot-base nav { display: flex; flex-wrap: wrap; gap: 24px; }
.foot-base a { color: var(--on-ink-muted); }
@media (max-width: 1024px) { .foot-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } .foot-cols > :first-child { grid-column: 1 / -1; } }
@media (max-width: 560px) { .foot-cols { grid-template-columns: 1fr; gap: 32px; } }

/* Preview banner */
.preview-bar { background: var(--orange); color: var(--ink-deep); font-size: 14px; font-weight: 500; text-align: center; padding: 8px max(16px, env(safe-area-inset-right, 0px)) 8px max(16px, env(safe-area-inset-left, 0px)); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
[hidden] { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Portfolio mosaic: one feature tile, eight supporting tiles */
.mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(150px, 15vw, 210px); gap: 10px; }
.mosaic .tile { position: relative; margin: 0; overflow: hidden; background: var(--ink); }
.mosaic .tile:first-child { grid-column: span 2; grid-row: span 2; }
.mosaic .tile img { width: 100%; height: 100%; object-fit: cover; }
.mosaic .tile figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 28px 14px 11px; background: linear-gradient(0deg, rgba(10,21,36,0.86), rgba(10,21,36,0)); color: rgba(255,255,255,0.86); font-size: 13px; line-height: 1.35; }
.mosaic .tile figcaption strong { color: #FFFFFF; font-weight: 600; display: block; }
@media (max-width: 860px) { .mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; } }
@media (max-width: 480px) { .mosaic { grid-auto-rows: 130px; gap: 8px; } .mosaic .tile:first-child { grid-row: span 2; } .mosaic .tile figcaption { padding: 22px 10px 8px; font-size: 12px; } }

/* ---------- Phone refinements ---------- */
.nw { white-space: nowrap; }
.mosaic .tile .sm { display: none; }
@media (max-width: 640px) {
  body { font-size: 16px; }
  h1 { font-size: 36px; line-height: 1.1; }
  h2 { font-size: 28px; }
  .lede { font-size: 17px; }
  .prose p { font-size: 16.5px; line-height: 1.65; }
  .eyebrow { font-size: 11.5px; letter-spacing: 0.1em; gap: 10px; }
  .eyebrow.rule::before { width: 22px; }

  /* Hero: let the photo show, tighter copy, equal full-width buttons */
  .hero .veil { background: linear-gradient(180deg, rgba(10,21,36,0.58) 0%, rgba(10,21,36,0.80) 45%, rgba(10,21,36,0.92) 100%); }
  .hero-home .wrap { padding-block: 56px 48px; }
  .hero-inner { gap: 20px; }
  .hero-home h1 { font-size: 38px; }
  .hero .actions { display: grid; grid-template-columns: 1fr; gap: 10px; width: 100%; }
  .hero .actions .btn { width: 100%; white-space: nowrap; }
  .hero .credit { display: none; }
  .page-intro { padding-block: 48px 52px; }
  .page-intro .wrap > * + * { margin-top: 16px; }
  .hero.inner { min-height: 0; }

  /* Section rhythm */
  .stack-lg { gap: 32px; }
  .split, .split-even, .grid-2 { gap: 24px; }

  /* Filters: one row of chips */
  .filters { gap: 18px; padding-bottom: 20px; }
  .chip { padding: 10px 16px; font-size: 15px; }
  .cards.two { gap: 0; }
  .cards .card-facts { font-size: 14px; }

  /* Profile facts in two columns */
  .facts, .facts.two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
  .profile-hero .wrap { padding-block: 20px 52px; gap: 28px; }
  .profile-grid h1 { font-size: 32px !important; }
  .crumbs ol { font-size: 13px; }

  /* Experience photos: one large, two below */
  .trio-m { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 20px 12px; }
  .trio-m figure:first-child { grid-column: 1 / -1; }
  .trio-m figure:not(:first-child) img { aspect-ratio: 1 / 1; }
  .trio-m figure:not(:first-child) figcaption { font-size: 12.5px; }

  /* Mosaic labels */
  .mosaic .tile .lg { display: none; }
  .mosaic .tile .sm { display: inline; }
  .mosaic .tile:first-child .lg { display: inline; }
  .mosaic .tile:first-child .sm { display: none; }

  /* Industry panels and lists */
  .duo > div { padding: 28px 20px; gap: 14px; }
  .rule-list li { padding-block: 13px; }

  /* Footer in two columns */
  .site-footer .wrap { padding-block: 52px 32px; gap: 40px; }
  .foot-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
  .foot-cols > :first-child { grid-column: 1 / -1; }
  .foot-base { flex-direction: column; gap: 14px; }
}
@media (max-width: 380px) {
  .chip { padding: 10px 13px; }
  .hero-home h1 { font-size: 34px; }
}
@media (max-width: 640px) {
  .hero-home .eyebrow { font-size: 11px; letter-spacing: 0.07em; gap: 8px; white-space: nowrap; }
  .hero-home .eyebrow.rule::before { width: 16px; }
}
@media (max-width: 370px) { .hero-home .eyebrow { white-space: normal; } }
