/* Foundation, business sections and dialogs. Product components live in executive.css. */
@font-face { font-family:Geist;src:url('assets/geist-98bbbccb.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap }
:root { color-scheme:dark;--bg:#101512;--surface:#191f1b;--surface-2:#222b24;--paper:#efeee7;--ink:#f3f1e8;--muted:#b7bdb5;--line:#414c42;--lime:#d1ee87;--lime-ink:#1a2413;--warning:#e9cf96;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:48px;--space-6:64px;--space-7:56px;--radius:10px;--header-height:80px;font-family:Geist,Arial,sans-serif;font-synthesis:none }
* { box-sizing:border-box }
html { scroll-padding-top:calc(var(--header-height) + 24px) }
body { overflow-wrap:anywhere;margin:0;background:var(--bg);color:var(--ink);font-size:17px;line-height:1.6 }
button, input, textarea { font:inherit }
button, a { -webkit-tap-highlight-color:transparent }
button { cursor:pointer }
button:disabled { cursor:not-allowed;color:#a8afa7;border-color:#485247;background:#242b25;opacity:1 }
a { color:inherit;text-underline-offset:5px }
a:visited { color:inherit }
.button.primary:visited { color:var(--lime-ink) }
button { color:inherit }
a:hover { text-decoration-color:var(--lime) }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline:3px solid var(--lime);outline-offset:5px }
h1, h2, h3, h4, p, ul, ol, blockquote, figure, dl, dd { margin:0 }
h1, h2, h3, h4 { font-weight:530;line-height:1.12;letter-spacing:-.035em }
h1 { font-size:clamp(38px,4.1vw,62px);line-height:1.08 }
h1 span { color:var(--lime) }
h2 { font-size:clamp(30px,3.1vw,44px) }
h3 { font-size:24px }
h4 { font-size:20px }
p+p { margin-top:16px }
img { display:block;max-width:100%;height:auto }
button { border:0;background:none }
input, textarea { color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px 14px;width:100%;min-height:48px }
textarea { font-size:16px;resize:vertical;margin-top:8px }
label { display:block }
input::placeholder { color:#b7bdb5 }
input[type=search] { appearance:none }
button, a, input, textarea { touch-action:manipulation }
[hidden] { display:none!important }
html:not(.js) [data-js] { visibility:hidden }
.container { width:min(100% - 80px,1360px);margin-inline:auto }
.section { padding-block:var(--space-7) }
.muted, .caption, .art-stage { color:var(--muted) }
.eyebrow { color:var(--lime);font-size:14px;letter-spacing:.11em;text-transform:uppercase;font-weight:600;line-height:1.5;margin-bottom:16px }
.caption { font-size:14px;line-height:1.6 }
.lead { font-size:19px;line-height:1.65 }
.index { color:var(--muted);font-size:14px;letter-spacing:.04em }
.section-heading { display:grid;grid-template-columns:1.1fr 1fr;align-items:end;gap:64px;margin-bottom:40px }
.section-heading>p, .section-heading>div>p:not(.eyebrow) { max-width:62ch;color:var(--muted) }
.section-heading h2 { max-width:20ch }
.actions { display:flex;flex-wrap:wrap;align-items:center;gap:12px }
.button { display:inline-flex;justify-content:center;align-items:center;gap:18px;min-height:48px;padding:12px 18px;border:1px solid transparent;border-radius:6px;text-decoration:none;font-size:14px;line-height:1.35;font-weight:600;transition:background .15s,border-color .15s }
.button.primary { background:var(--lime);color:var(--lime-ink) }
.button.primary:hover { background:#e1f6af }
.button.primary:active { background:#b7d76e }
.button.secondary { background:transparent;color:var(--ink);border-color:#65715f }
.button.secondary:hover { background:#303b2d;border-color:#d1ee87 }
.button.quiet { background:transparent;color:var(--ink);border-color:var(--line) }
.button.quiet:hover { background:var(--surface-2) }
.button[aria-pressed=true] { color:var(--lime);border-color:var(--lime);background:#25341c }
.text-button { display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 0;text-decoration:underline;text-decoration-color:#697861;text-underline-offset:5px;background:none;font-size:14px;font-weight:500;text-align:left }
.text-button:hover { color:var(--lime) }
.row { display:flex;align-items:center;justify-content:space-between;gap:16px }
.status-row { display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-size:14px;line-height:1.5 }
.status { display:inline-flex;align-items:center;gap:7px;border:1px solid #627152;color:#e0edc8;border-radius:30px;padding:5px 10px;font-size:14px;line-height:1.5 }
.status:before { display:none;content:'';width:5px;height:5px;border-radius:50%;background:var(--lime) }
.status.concept { color:var(--warning);border-color:#796a4b }
.status.concept:before { background:var(--warning) }
.skip-link { position:fixed;z-index:100;left:20px;top:12px;padding:12px;background:var(--lime);color:var(--lime-ink);transform:translateY(-150%) }
.skip-link:focus { transform:none }
.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 }
.site-header { position:sticky;top:0;background:#101512;border-bottom:1px solid var(--line);z-index:20 }
.nav-row { min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px }
.brand { display:block;width:218px;flex-shrink:0 }
.brand img { width:100%;height:auto }
.site-header nav { display:flex;flex-wrap:wrap;gap:20px }
.site-header nav a { display:inline-flex;align-items:center;min-height:48px;font-size:14px;text-decoration:none;color:var(--muted) }
.site-header nav a:hover { color:var(--ink) }
.nav-shortlist { display:flex;align-items:center;gap:9px;text-decoration:none;min-height:44px;font-size:14px }
.nav-shortlist [data-shortlist-count] { display:grid;place-items:center;background:var(--surface-2);width:28px;height:28px;border-radius:50%;color:var(--lime) }
.media-stage { display:block;position:relative;border:1px solid var(--line);border-radius:8px;background:#080b09;overflow:hidden;text-decoration:none }
.media-stage>img { width:100%;height:auto;object-fit:contain }
.portfolio .section-heading { margin-bottom:32px }
.portfolio-toolbar { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-block:1px solid var(--line) }
.filters { display:flex;flex-wrap:wrap;gap:8px }
.filters button { border:1px solid var(--line);border-radius:30px;padding:10px 15px;min-height:44px;font-size:14px;color:var(--muted);white-space:nowrap }
.filters button span { margin-left:8px;font-size:14px }
.filters button[aria-pressed=true] { background:var(--lime);border-color:var(--lime);color:var(--lime-ink) }
.filters button:hover { border-color:var(--lime) }
.search-label { max-width:270px;flex:1;min-width:200px }
.search-label input { font-size:14px }
.portfolio-summary { display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:8px;font-size:14px;color:var(--muted) }
.portfolio-summary .text-button { font-size:14px }
.group-heading { display:flex;align-items:end;justify-content:space-between;gap:32px;margin:48px 0 28px }
.group-heading h2 { font-size:29px }
.group-heading p:not(.eyebrow) { color:var(--muted);font-size:15px;max-width:50ch }
.evidence-note { font-size:14px;color:var(--muted);max-width:100ch;margin:24px auto 0;text-align:center }
.empty-state { padding:48px 24px;text-align:center;border:1px solid var(--line);margin-top:24px }
.empty-state p { margin-top:16px }
.empty-state .button { margin-top:24px }
.studio-section, .roadmap-section { background:#171e19;border-block:1px solid var(--line) }
.capabilities { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:32px }
.capabilities article { border-top:1px solid #6b795e;padding-top:20px }
.capabilities h3 { margin:16px 0 12px;font-size:29px }
.capabilities p { font-size:16px;color:var(--muted) }
.cross-market { position:relative;display:grid;grid-template-columns:1fr 1.25fr 1fr;align-items:center;gap:32px;margin-top:24px;padding-top:24px;border-top:1px solid var(--line) }
.cross-market>p { font-size:15px;color:var(--muted) }
.fabio-accent { display:flex;align-items:center;gap:10px }
.fabio-accent>button { width:100px;min-width:100px;height:130px;padding:0 }
.fabio-accent img { width:100%;height:100%;object-fit:contain }
.fabio-accent strong { font-size:14px }
.fabio-accent p { font-size:14px;color:var(--muted);line-height:1.5;margin-top:5px }
.fabio-accent .text-button { font-size:14px }
.relationship { display:grid;grid-template-columns:1fr 1fr;gap:80px;border-bottom:1px solid var(--line) }
.relationship p:not(.eyebrow) { max-width:60ch }
.relationship p:not(.eyebrow):not(.lead) { color:var(--muted);font-size:16px }
.commercial-offer { border:1px solid #707e60;border-radius:8px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);overflow:hidden }
.rate-main { min-width:0;padding:32px;background:#202c1b }
.rate-main .eyebrow { color:var(--lime) }
.rate { display:flex;flex-wrap:wrap;align-items:baseline;gap:16px;color:var(--lime);margin:16px 0 22px }
.rate strong { font-size:100px;line-height:1;font-weight:500;letter-spacing:-.07em }
.rate strong span { font-size:.5em }
.rate>span { font-size:23px }
.rate-main h3 { font-size:23px;margin-bottom:12px }
.rate-main>p:last-child { font-size:14px;color:var(--muted) }
.rate-context { min-width:0;padding:32px;background:var(--surface) }
.rate-context>h3 { font-size:21px;margin-bottom:24px }
.rate-context dl>div { flex-wrap:wrap;padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line) }
.rate-context dt { font-size:14px;max-width:22ch;color:var(--muted) }
.rate-context dd { font-size:24px;white-space:nowrap }
.rate-context>p { font-size:14px;color:var(--muted);margin-top:16px }
.rate-context .text-button { margin-top:20px }
.terms-note { font-size:14px;color:var(--muted);margin:24px 0 0;max-width:110ch }
.roadmap { list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px }
.roadmap li { border-top:2px solid var(--line);padding-top:20px }
.roadmap .eyebrow { font-size:11px }
.roadmap h3 { margin-bottom:16px;font-size:25px }
.roadmap p:not(.eyebrow) { font-size:15px;color:var(--muted) }
.future-opportunity { display:flex;align-items:center;flex-wrap:wrap;gap:16px 32px;padding-top:32px;margin-top:40px;border-top:1px solid var(--line) }
.future-opportunity h3 { font-size:20px }
.future-opportunity p { font-size:14px;color:var(--muted) }
.contact-grid { display:grid;grid-template-columns:1fr 1.25fr;gap:32px }
.shortlist { padding:28px;border:1px solid var(--line);border-radius:8px;background:var(--surface) }
.shortlist h3 { font-size:23px }
.shortlist ul { list-style:none;padding:0;margin:16px 0 24px }
.shortlist li { display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding:8px 0;font-size:15px }
.shortlist li small { display:block;font-size:14px;color:var(--muted) }
.shortlist li button { min-width:44px;min-height:44px;border-radius:4px }
.shortlist li button:hover { background:#323d2b }
.shortlist .actions { margin-top:20px }
.shortlist #agenda-fallback { margin-top:20px }
.shortlist #agenda-fallback label { font-size:14px }
.shortlist-empty { color:var(--muted);padding-block:20px!important;border:0!important }
.contact-panel { border:1px solid var(--line);border-radius:8px;padding:32px;display:flex;flex-direction:column;align-items:flex-start;gap:24px }
.contact-person { display:flex;align-items:center;gap:20px }
.contact-person>img { width:88px;height:88px;object-fit:cover;border-radius:50% }
.contact-person h3 { font-size:26px }
.contact-person p { font-size:14px;color:var(--muted);margin-top:8px }
.contact-panel>.button { font-size:14px;gap:10px }
.text-button:disabled { background:transparent;border:0;text-decoration:none }
.contact-channels { display:flex;flex-direction:column;gap:4px;margin-top:-12px }
.contact-channels .text-button { font-size:14px }
.contact-email { font-size:16px;overflow-wrap:anywhere }
.contact-panel>.caption { margin-top:-12px }
.personal-note { max-width:820px;margin:32px auto 0;padding-top:28px;border-top:1px solid var(--line) }
.personal-note blockquote { font-size:17px;line-height:1.65;font-weight:400 }
.personal-note blockquote p:first-child { font-size:16px;color:var(--muted);margin-bottom:16px }
.signature { margin-top:24px;font-size:19px }
.signature span { display:block;color:var(--muted);font-size:14px;margin-top:6px }
.site-footer { display:flex;align-items:center;justify-content:space-between;gap:32px;padding-block:32px;border-top:1px solid var(--line) }
.site-footer .brand { width:190px }
.site-footer p { font-size:14px;color:var(--muted) }
.toast { position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:80;max-width:calc(100vw - 32px);padding:12px 20px;border:1px solid var(--lime);border-radius:6px;background:#22321b;color:var(--ink);font-size:14px;box-shadow:0 8px 32px #0005 }
dialog { border:1px solid #68745e;background:var(--bg);color:var(--ink);border-radius:12px;padding:0;width:calc(100% - 64px);max-width:1320px;max-height:92dvh;margin:auto }
dialog::backdrop { background:#030603e8 }
dialog[open] { display:flex;flex-direction:column }
.dialog-header { padding:22px 28px;border-bottom:1px solid var(--line);display:flex;align-items:start;justify-content:space-between;gap:24px;flex-shrink:0 }
.dialog-header h2 { font-size:27px;overflow-wrap:anywhere }
.dialog-header .eyebrow { font-size:10px;margin-bottom:8px }
.dialog-close { flex-shrink:0;min-height:44px }
.dialog-content { padding:28px;overflow:auto;overscroll-behavior:contain;min-height:0 }
.dialog-product-summary { display:grid;grid-template-columns:1.4fr 1fr;gap:28px }
.dialog-product-summary .media-stage { align-self:start }
.dialog-product-summary h3 { font-size:22px;margin-top:20px }
.dialog-product-summary p:not(.eyebrow) { font-size:15px;color:var(--muted);margin-top:16px }
.facts { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0 }
.facts dt { font-size:14px;color:var(--muted) }
.facts dd { font-size:15px }
.readiness { margin-top:28px;border-top:1px solid var(--line);padding-top:24px }
.readiness h3 { font-size:22px;margin-bottom:20px }
.readiness dl { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px }
.readiness dt { font-size:14px;color:var(--muted);margin-bottom:8px }
.readiness dd { font-size:14px }
.guide-note { margin-top:24px;background:var(--surface);padding:20px;border-left:2px solid #6b785f;font-size:14px;color:var(--muted) }
.guide-note strong { display:block;color:var(--ink);margin-bottom:8px }
.capture-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px }
.capture-grid button { display:flex;flex-direction:column;align-items:stretch;border:1px solid var(--line);border-radius:6px;padding:12px;text-align:left;gap:8px;font-size:14px }
.capture-grid img { height:125px;width:100%;object-fit:contain;background:#090d0a }
.capture-grid button:hover { border-color:var(--lime) }
.gallery-stage { display:flex;align-items:center;justify-content:center;background:#080c09;min-height:160px;max-height:60dvh;overflow:auto;border:1px solid var(--line);border-radius:6px }
.gallery-stage img { max-height:60dvh;max-width:100%;width:auto;height:auto;object-fit:contain }
.gallery-stage[data-zoom="actual"], .gallery-stage[data-zoom="enlarge"] { display:block;max-height:60dvh }
.gallery-stage[data-zoom="actual"] img, .gallery-stage[data-zoom="enlarge"] img { max-width:none;max-height:none;margin:auto;height:auto }
.gallery-caption { display:grid;grid-template-columns:1.2fr 2fr;gap:24px;margin-top:20px }
.gallery-caption h3 { font-size:21px }
.gallery-caption p { font-size:14px;color:var(--muted) }
.gallery-tools { display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;flex-wrap:wrap }
.gallery-nav { display:flex;align-items:center;gap:16px }
.gallery-nav .button { min-width:48px }
.gallery-nav span { font-size:14px;color:var(--muted) }
.gallery-thumbs { display:flex;flex-wrap:wrap;gap:8px;margin-top:20px }
.gallery-thumbs button { width:70px;height:58px;padding:4px;border:1px solid var(--line);border-radius:4px }
.gallery-thumbs button[aria-pressed=true] { border-color:var(--lime);background:#293c1c }
.gallery-thumbs img { width:100%;height:100%;object-fit:contain }
.demo-toolbar { position:sticky;top:-28px;z-index:2;background:var(--bg);padding-block:12px;display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:16px }
.demo-toolbar p { font-size:14px;color:var(--muted);max-width:62ch }
.demo-stage { background:#070a08;border:1px solid var(--line);border-radius:8px;overflow:hidden }
.demo-stage iframe { display:block;width:100%;height:min(63dvh,720px);min-height:340px;border:0;background:#080d09 }
.demo-poster>img { width:100%;height:min(50dvh,560px);object-fit:contain }
.demo-poster>.caption { padding:12px 16px;border-top:1px solid var(--line) }
.demo-note { font-size:14px;color:var(--muted);margin-top:16px }
.demo-status { font-size:14px;margin-bottom:16px;min-height:2em;color:var(--warning) }
.orientation-note { display:none;font-size:14px;color:var(--muted);margin-top:12px }
.media-error { padding:24px;border:1px solid #cbaa74;background:#2d281d;color:var(--ink);font-size:14px }
.media-error .button { margin-top:12px }
.media-failed img { display:none }
@media(max-width:1100px) {
  .container { width:calc(100% - 56px) }
  .section-heading { gap:40px }
  .cross-market { grid-template-columns:1fr 1.5fr }
  .fabio-accent { grid-column:1/-1;max-width:440px }
  .fabio-accent>button { width:90px;height:100px;min-width:90px }
  .relationship { gap:48px }
  .contact-grid { grid-template-columns:1fr 1.15fr }
  .contact-panel { padding:24px }
  .site-header nav { gap:16px }
  .nav-row { gap:16px }
  .brand { width:200px }
  .portfolio-toolbar { align-items:stretch;flex-wrap:wrap }
  .search-label { max-width:100%;flex-basis:200px }
  .filters { flex:1;min-width:500px }
  .readiness dl { grid-template-columns:1fr 1fr }
}
@media(max-width:800px) {
  :root { --space-7:40px;--header-height:100px }
  .container { width:calc(100% - 40px) }
  .nav-row { display:grid;grid-template-columns:1fr auto;gap:0;min-height:0;padding-block:12px 4px }
  .brand { width:190px }
  .site-header nav { grid-column:1/-1;grid-row:2;justify-content:space-between;gap:14px }
  .site-header nav a { min-height:44px;font-size:14px }
  .nav-shortlist { grid-column:2;grid-row:1;font-size:14px }
  .section-heading { grid-template-columns:1fr;gap:20px;margin-bottom:28px }
  .section-heading h2 { max-width:none }
  .section-heading>p, .section-heading>div>p { font-size:16px }
  .filters { min-width:0;flex-basis:100%;gap:8px }
  .filters button { font-size:14px;flex:1 0 calc(50% - 8px);padding:10px 12px }
  .search-label { flex-basis:100%;min-width:0 }
  .portfolio-summary { align-items:flex-start;flex-direction:column;gap:0 }
  .group-heading { align-items:start;flex-direction:column;gap:12px;margin-top:36px }
  .group-heading h2 { font-size:26px }
  .capabilities { gap:20px }
  .capabilities h3 { font-size:25px }
  .capabilities p { font-size:15px }
  .cross-market { grid-template-columns:1fr;gap:20px }
  .cross-market h3 { font-size:23px }
  .cross-market>p { font-size:16px }
  .fabio-accent { grid-column:auto }
  .relationship { grid-template-columns:1fr;gap:24px }
  .commercial-offer { grid-template-columns:1fr }
  .rate-main, .rate-context { padding:28px }
  .rate strong { font-size:92px }
  .roadmap { grid-template-columns:1fr;gap:28px }
  .roadmap li { padding-top:20px }
  .roadmap p:not(.eyebrow) { max-width:60ch;font-size:16px }
  .roadmap h3 { font-size:26px }
  .future-opportunity { align-items:flex-start;flex-direction:column;gap:14px;margin-top:32px }
  .contact-grid { grid-template-columns:1fr;gap:20px }
  .personal-note { margin-top:40px;padding-top:28px }
  .personal-note blockquote { font-size:17px }
  .site-footer { flex-wrap:wrap;gap:20px;padding-block:28px }
  .site-footer p { flex-basis:100%;order:3 }
  .site-footer .text-button { margin-left:auto }
  .dialog-product-summary { grid-template-columns:1fr;gap:24px }
  .capture-grid { grid-template-columns:repeat(3,minmax(0,1fr)) }
  .gallery-caption { grid-template-columns:1fr;gap:10px }
  .demo-toolbar { align-items:flex-start;flex-direction:column;gap:16px }
  .demo-toolbar .actions { width:100% }
  .gallery-stage, .gallery-stage img { max-height:58dvh }
}
@media(max-width:600px) {
  .capabilities { grid-template-columns:1fr;gap:24px }
  .capabilities article { display:grid;grid-template-columns:32px 1fr;gap:8px }
  .capabilities .index { grid-row:1/3;margin-top:6px }
  .capabilities h3 { margin:0 }
  .capabilities p { grid-column:2;font-size:16px }
  .shortlist { padding:20px }
  .shortlist h3 { font-size:21px }
  .contact-panel { padding:24px }
  .contact-panel .button { font-size:14px;padding:12px }
  .personal-note .signature { font-size:18px }
  .site-footer .brand { width:168px }
  dialog { width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:0 }
  .dialog-header { padding:calc(16px + env(safe-area-inset-top)) 20px 16px;gap:14px }
  .dialog-header h2 { font-size:23px }
  .dialog-close { min-width:44px;font-size:14px;padding:10px;gap:8px }
  .dialog-content { padding:20px 20px calc(24px + env(safe-area-inset-bottom)) }
  .capture-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px }
  .capture-grid button { font-size:11px }
  .capture-grid img { height:105px }
  .gallery-tools { gap:12px }
  .gallery-tools>.actions { gap:14px }
  .gallery-caption h3 { font-size:20px }
  .gallery-thumbs button { width:54px;height:48px }
  .demo-stage iframe { min-height:400px;height:64dvh }
  .demo-toolbar .button { font-size:14px;gap:10px;padding:12px }
  .readiness dl { grid-template-columns:1fr 1fr;gap:18px }
  .facts { gap:16px }
  .gallery-stage, .gallery-stage img { max-height:50dvh }
  .dialog-product-summary .actions { gap:8px }
  .dialog-product-summary .button { font-size:14px;padding:12px }
  .media-error { padding:16px }
}
@media(max-width:360px) {
  .brand { width:175px }
  .nav-shortlist>span:first-child { display:none }
  .rate-main, .rate-context { padding:22px }
  .rate-context dd { font-size:21px }
  .contact-panel { padding:20px }
  .contact-person { gap:14px }
  .contact-person>img { width:70px;height:70px }
  .contact-panel>.button { font-size:14px }
  .text-button:disabled { background:transparent;border:0;text-decoration:none }
  .contact-channels { display:flex;flex-direction:column;gap:4px;margin-top:-12px }
  .contact-channels .text-button { font-size:14px }
  .contact-email { font-size:14px }
  .shortlist>.row { gap:8px }
  .shortlist h3 { font-size:19px }
  .dialog-header h2 { font-size:21px }
  .dialog-header { padding-inline:16px }
  .dialog-content { padding-inline:16px }
  .gallery-nav { gap:12px }
  .readiness dl { grid-template-columns:1fr }
  .facts { grid-template-columns:1fr }
}
@media(max-height:500px) and (orientation:landscape) {
  :root { --header-height:64px }
  .site-header { position:static }
  .nav-row { display:flex;padding-block:6px }
  .site-header nav { gap:12px }
  .nav-shortlist { display:none!important }
  .dialog-header { padding:12px 20px }
  .dialog-header .eyebrow { display:none }
  .dialog-header h2 { font-size:21px }
  .dialog-content { padding:16px 20px }
  .demo-stage iframe { min-height:240px;height:72dvh }
  .orientation-note { display:block }
  .gallery-stage, .gallery-stage img { max-height:60dvh }
}
@media(prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto!important;transition:none!important;animation:none!important }
}
@media print {
  .site-header, dialog, .filters, .search-label, [data-js], .toast { display:none!important }
  body { background:white;color:black }
  a { color:black }
  .container { width:100% }
  .section { padding-block:32px }
  .status, .caption, .muted { color:#333 }
  .button { color:#111!important }
  .section-heading { gap:24px }
  .studio-section, .roadmap-section { background:#eee }
}
/* Keep page geometry stable when a modal locks document scrolling. */
html { scrollbar-gutter:stable }

/* Product presentation. Each component owns its base rule and responsive variants here. */
:root { --control-line:#71816a; --detail-stage:320px; --section-gap:40px; }
.image-action { display:flex; justify-content:space-between; align-items:center; min-height:44px; font-size:14px; line-height:1.4; padding:10px 14px; border-top:1px solid var(--line); background:var(--surface); color:var(--ink); }
.media-stage:hover { border-color:var(--lime); }
.button.quiet, .filters button, .gallery-thumbs button, .search-label input { border-color:var(--control-line); }
.media-placeholder { display:grid; place-items:center; min-width:48px; min-height:48px; border:1px dashed var(--line); font-size:14px; color:var(--muted); }
.hero { padding-block:28px; }
.hero-introduction { display:grid; grid-template-columns:1.35fr 1fr; gap:40px; align-items:end; margin-bottom:24px; }
.hero-introduction>div, .hero-selectors button>span, .detail-copy { min-width:0; }
.hero h1 { font-size:clamp(40px,3.9vw,56px); max-width:none; letter-spacing:-.05em; }
.hero .eyebrow { margin-bottom:12px; }
.hero-invitation>p { font-size:17px; color:var(--muted); max-width:40ch; }
.hero-invitation .actions { margin-top:16px; gap:8px 20px; }
.hero-exhibition { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:32px; align-items:center; }
.hero-product, .hero-worlds { min-width:0; }
.hero-selectors { display:flex; flex-direction:column; gap:4px; }
.hero-selectors button { display:flex; gap:14px; align-items:center; width:100%; border:1px solid transparent; border-radius:6px; min-height:76px; padding:8px; text-align:left; line-height:1.3; }
.hero-selectors button>img { width:100px; aspect-ratio:16/9; object-fit:contain; border-radius:4px; }
.hero-selectors button>span:not(.world-number) { display:flex; flex-direction:column; gap:6px; }
.hero-selectors strong { font-size:16px; font-weight:550; }
.hero-selectors button>span>span, .world-number { font-size:14px; color:var(--muted); }
.world-number { margin-left:auto; }
.hero-selectors button[aria-pressed=true] { border-color:var(--control-line); background:var(--surface); color:var(--ink); }
.hero-selectors button:hover { border-color:var(--lime); }
.hero-worlds>.eyebrow { color:var(--muted); }
.hero-explore { margin-top:12px; }
.portfolio>.section-heading { margin-bottom:24px; }
.portfolio-summary { flex-wrap:wrap; gap:8px 20px; }
.portfolio-summary #filter-summary { margin:0; }
.group-heading { margin-top:28px; margin-bottom:20px; }
.world-index { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.world-index button { padding:0; border:1px solid var(--control-line); border-radius:6px; overflow:hidden; text-align:left; background:var(--surface); min-width:0; }
.world-index img { width:100%; aspect-ratio:16/9; object-fit:contain; }
.world-index button>span { display:flex; align-items:baseline; gap:12px; padding:12px; }
.world-index strong { font-size:16px; font-weight:550; line-height:1.4; }
.world-index button[aria-pressed=true], .world-index button:hover { border-color:var(--lime); color:var(--lime); }
.js .flagship[data-featured-hidden=true] { display:none; }
.flagship { padding:16px 0 32px; border-bottom:1px solid var(--line); }
.world-heading { display:flex; align-items:flex-start; gap:24px; justify-content:space-between; margin-bottom:24px; }
.world-heading>div:first-child { max-width:840px; }
.world-heading .eyebrow { color:var(--world-accent); margin-bottom:10px; }
.world-heading h3 { font-size:clamp(32px,3vw,44px); }
.world-thesis { font-size:17px; color:var(--muted); line-height:1.6; margin-top:12px; max-width:74ch; }
.world-heading .status-row { max-width:220px; justify-content:flex-end; flex-shrink:0; }
[data-game-heading]:focus { outline:none; }
[data-game-heading]:focus-visible { outline:2px solid var(--world-accent,var(--lime)); outline-offset:6px; }
.product-explorer { display:grid; grid-template-columns:minmax(0,3fr) minmax(270px,1fr); gap:24px 32px; align-items:start; }
.gameplay-column { min-width:0; }
.world-actions { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 16px; margin-top:8px; }
.world-availability { margin-top:10px; }
.detail-panel { min-width:0; border-left:1px solid var(--line); padding-left:24px; }
.detail-figure { height:var(--detail-stage); display:flex; align-items:center; justify-content:center; background:#0b100d; border-radius:8px; border:1px solid var(--line); border-bottom:2px solid var(--world-accent); }
.detail-artwork { width:auto; height:auto; max-width:min(100%,var(--native-width)); max-height:100%; object-fit:contain; }
.detail-figure[data-kind=environment] .detail-artwork { width:100%; }
.detail-figure[data-kind=symbol] { background:#151b16; }
.detail-copy { padding-top:14px; }
.detail-category { font-size:12px; color:var(--world-accent); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.detail-copy h4 { font-size:23px; }
.detail-copy>p:not(.detail-category) { font-size:16px; line-height:1.6; color:var(--muted); margin-top:10px; }
.detail-copy .text-button { margin-top:8px; }
.asset-picker { grid-column:1/-1; border-top:1px solid var(--line); padding-top:16px; }
.asset-groups { display:flex; flex-wrap:wrap; gap:8px 24px; margin-bottom:14px; }
.asset-groups button { min-height:44px; font-size:14px; padding:8px 0; border-bottom:2px solid transparent; }
.asset-groups button[aria-pressed=true] { color:var(--world-accent); border-color:var(--world-accent); }
.detail-navigation { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; }
.detail-option { display:flex; gap:12px; align-items:center; min-width:0; min-height:90px; padding:10px; border:1px solid var(--control-line); border-radius:6px; font-size:14px; line-height:1.4; text-align:left; background:var(--surface); }
.detail-option img { width:60px; height:66px; object-fit:contain; flex-shrink:0; }
.detail-option[aria-pressed=true], .detail-option:hover { border-color:var(--world-accent); color:var(--world-accent); background:var(--surface-2); }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.product-card { border:1px solid var(--line); border-radius:8px; background:var(--surface); display:flex; flex-direction:column; min-width:0; }
.product-card>.media-stage { border:0; border-bottom:1px solid var(--line); border-radius:7px 7px 0 0; }
.product-card>.media-stage>img { width:100%; aspect-ratio:16/9; height:auto; object-fit:contain; }
.card-content { padding:20px; display:flex; flex-direction:column; flex:1; align-items:flex-start; }
.card-content>.eyebrow { margin-bottom:8px; }
.card-content>h3 { font-size:25px; line-height:1.2; margin-bottom:12px; }
.card-content>.status-row { margin-bottom:12px; }
.card-content>p:not(.eyebrow) { font-size:16px; color:var(--muted); margin-bottom:16px; }
.card-content .actions { margin-top:auto; gap:8px 16px; }
.card-content .button { min-height:44px; }
.beyond-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.availability { font-size:14px; line-height:1.5; }
.availability.verified { color:var(--muted); }
.availability.unavailable { border-left:2px solid var(--warning); padding:10px 14px; background:#211f16; color:#eee1bc; }
.availability>span { display:block; margin-top:6px; font-size:14px; color:#d7cfbb; }
.portfolio-disclosure>summary { cursor:pointer; list-style:none; border:1px solid var(--control-line); border-radius:6px; margin-bottom:20px; overflow:hidden; }
.portfolio-disclosure>summary::-webkit-details-marker { display:none; }
.disclosure-label { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:48px; padding:12px 16px; font-size:16px; font-weight:550; }
.when-open { display:none; }
.portfolio-disclosure[open] .when-open { display:inline; }
.portfolio-disclosure[open] .when-closed, .portfolio-disclosure[open] .disclosure-preview { display:none; }
.portfolio-disclosure[open] .disclosure-label>span:last-child { transform:rotate(45deg); }
.disclosure-preview { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; padding:16px; border-top:1px solid var(--line); background:var(--surface); }
.collection-tile { min-width:0; display:flex; flex-direction:column; gap:8px; font-size:14px; line-height:1.4; }
.collection-tile img { width:100%; aspect-ratio:16/9; object-fit:contain; border-radius:4px; }
.shortlist { align-self:start; }
.shortlist-summary { cursor:pointer; font-size:17px; font-weight:550; }
.shortlist-summary>span { display:inline-block; white-space:nowrap; font-size:14px; font-weight:400; color:var(--muted); margin-left:12px; }
.shortlist-body { margin-top:20px; }
.shortlist li small { font-size:14px; }
.gallery-stage:focus-visible { outline:3px solid var(--lime); outline-offset:3px; }
@media (min-width:1000px) and (max-height:800px) {
 .hero h1 { font-size:52px; }
 .hero-exhibition { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
 .hero-introduction { margin-bottom:20px; }
}
@media (max-width:1100px) {
 .hero-introduction { gap:24px; }
 .hero h1 { font-size:44px; }
 .hero-selectors button>img { width:76px; }
 .hero-selectors button { gap:10px; }
 .world-number { display:none; }
 .product-explorer { grid-template-columns:minmax(0,2.2fr) minmax(240px,1fr); gap:24px; }
 .detail-panel { padding-left:20px; }
 .detail-navigation { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:800px) {
 :root { --detail-stage:300px; }
 .hero { padding-block:24px; }
 .hero-introduction { grid-template-columns:1fr; gap:16px; margin-bottom:20px; }
 .hero h1 { font-size:clamp(36px,6.5vw,50px); }
 .hero-invitation>p { font-size:16px; }
 .hero-invitation .actions { margin-top:12px; }
 .hero-exhibition { grid-template-columns:1fr; gap:16px; }
 .hero-worlds>.eyebrow { display:none; }
 .hero-selectors { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
 .hero-selectors button { border-color:var(--control-line); min-height:68px; padding:8px; }
 .hero-selectors button>img { width:60px; }
 .hero-selectors strong { font-size:14px; }
 .hero-selectors button>span>span { display:none; }
 .hero-explore { margin-top:8px; }
 .world-index { gap:8px; }
 .world-index button>span { padding:8px; }
 .world-index strong { font-size:14px; }
 .world-index .index { display:none; }
 .world-heading { display:block; }
 .world-heading .status-row { max-width:none; justify-content:flex-start; margin-top:12px; }
 .world-thesis { font-size:16px; }
 .product-explorer { display:flex; flex-direction:column; gap:20px; }
 .gameplay-column, .detail-panel, .asset-picker { width:100%; }
 .gameplay-column { order:1; }
 .asset-picker { order:2; }
 .detail-panel { order:3; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:20px; border:0; padding:0; }
 .detail-copy { padding:0; }
 .detail-copy h4 { font-size:24px; }
 .world-actions { gap:8px; }
 .world-actions .actions { gap:8px; }
 .world-actions .button { padding:12px 13px; font-size:14px; }
 .detail-navigation { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .detail-option { flex-direction:column; text-align:center; padding:8px; gap:6px; }
 .detail-option img { width:60px; height:60px; }
 .asset-groups { gap:8px 16px; }
 .portfolio-summary { flex-direction:row; align-items:center; }
 .disclosure-preview { grid-template-columns:repeat(2,minmax(0,1fr)); padding:12px; gap:14px; }
 .collection-tile { flex-direction:row; align-items:center; gap:8px; }
 .collection-tile img { width:64px; flex-shrink:0; }
 .portfolio-disclosure:not([open])>summary { margin-bottom:0; }
 .commercial-offer { grid-template-columns:minmax(0,1fr); }
 .rate-context .text-button { margin-top:12px; }
 .roadmap { gap:20px; }
 .roadmap h3 { margin-bottom:10px; }
 .future-opportunity { padding-top:20px; margin-top:24px; gap:10px; }
 .personal-note { margin-top:28px; }
 .capabilities { margin-top:20px; }
}
@media (max-width:600px) {
 .world-index { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .world-index img { display:none; }
 .world-index button>span { min-height:56px; padding:10px 12px; align-items:center; }
 .world-index strong { font-size:16px; }
 .detail-panel { display:block; }
 .detail-copy { padding-top:16px; }
 .detail-copy>p:not(.detail-category) { min-height:3.2em; }
 .detail-navigation { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .asset-groups { gap:0 14px; }
 .asset-groups button { font-size:14px; }
 .detail-option { font-size:14px; min-height:100px; }
 .detail-option img { width:56px; height:56px; }
 .product-grid { grid-template-columns:1fr; }
 .collection-tile { flex-direction:column; align-items:flex-start; }
 .collection-tile img { width:100%; }
 .collection-tile { font-size:14px; }
 .disclosure-preview { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
 .shortlist-summary { font-size:16px; }
}
@media (max-width:360px) {
 .hero-selectors button>img { width:42px; }
 .hero-selectors button { gap:8px; }
 .hero h1 { font-size:36px; }
 .asset-groups { gap:0 12px; }
 .asset-groups button { font-size:14px; }
}
@page { margin:14mm; }
@media print {
 :root { color-scheme:light; --muted:#333; --lime:#263c16; }
 html { background:white; }
 .detail-panel { display:block; }
 .detail-figure { height:220px; }
 .skip-link, .hero .actions, .fabio-controls, button { display:none!important; }
 h1, h1 span, .eyebrow, p, .signature { color:#222!important; }
 .hero { padding-top:0; }
 .hero h1 { font-size:34px; }
 .section-heading { break-after:avoid; }
 .hero { display:block; }
 .hero-exhibition { display:block; }
 .hero-worlds, .world-index, .asset-picker, .world-actions, .portfolio-toolbar, .portfolio-summary { display:none!important; }
 .js .flagship[data-featured-hidden=true], [data-game][hidden], .product-group[hidden] { display:block!important; }
 .flagship { break-inside:avoid; padding:20px 0; }
 .product-explorer { display:grid; grid-template-columns:2fr 1fr; }
 .product-card { break-inside:avoid; }
 .product-grid { display:grid; grid-template-columns:1fr 1fr; }
 .image-action, .detail-category, .detail-copy p, .world-thesis, .availability, .art-stage { color:#222!important; background:white!important; }
 .detail-figure { background:white; }
 .portfolio-disclosure>summary { display:none; }
 .shortlist { display:none!important; }
}
