@font-face { font-family: 'Manrope'; src: url('/fonts/manrope-latin-wght-normal.woff2') format('woff2'); font-style: normal; font-weight: 200 800; font-display: swap; }
* { box-sizing: border-box; min-width: 0; }
html { scroll-padding-top: var(--lx-space-24); }
body { margin: 0; background: var(--lx-color-background-0); color: var(--lx-color-text-primary); font: 450 var(--lx-font-body)/1.65 var(--lx-font-family); -webkit-text-size-adjust: 100%; overflow-wrap: anywhere; }
::selection { background: var(--lx-color-primary); color: var(--lx-color-ink); }
h1, h2, h3, h4, p, figure { margin: 0; }
h1, h2, h3, h4 { font-weight: 650; text-wrap: balance; overflow-wrap: anywhere; hyphens: auto; }
h1 { font-size: var(--lx-font-h1); line-height: 1.08; letter-spacing: -0.058em; }
h2 { font-size: var(--lx-font-h2); line-height: 1.13; letter-spacing: -0.045em; }
h3 { font-size: var(--lx-font-h3); line-height: 1.25; letter-spacing: -0.035em; }
h4 { font-size: 1.2rem; line-height: 1.4; }
p { color: var(--lx-color-text-secondary); max-width: var(--lx-layout-reading); }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.25em; overflow-wrap: anywhere; }
a:hover { text-decoration-color: var(--lx-color-primary); }
a, button, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: var(--lx-border-focus) solid var(--lx-color-signal); outline-offset: 5px; }
img, svg { max-width: 100%; vertical-align: middle; }
img { height: auto; }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
button { color: inherit; }
button:disabled { cursor: not-allowed; opacity: 0.6; }
button, a { touch-action: manipulation; }
ul, ol { padding-left: 1.3rem; }
li + li { margin-top: 0.45rem; }
li::marker { color: var(--lx-color-primary); }
small { font-size: var(--lx-font-small); }
.container { width: 100%; max-width: var(--lx-layout-max); margin-inline: auto; padding-inline: var(--lx-layout-gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: absolute; top: 0.5rem; left: 1rem; padding: var(--lx-space-3) var(--lx-space-4); transform: translateY(-200%); z-index: 100; color: var(--lx-color-ink); background: var(--lx-color-primary); }
.skip-link:focus { transform: translateY(0); }
.site-header { position: relative; z-index: 10; border-bottom: 1px solid var(--lx-color-border); }
.site-nav { min-height: 6.25rem; display: flex; align-items: center; justify-content: space-between; gap: var(--lx-space-8); }
.brand { display: inline-flex; gap: 0.7rem; align-items: center; text-decoration: none; min-height: 44px; flex-shrink: 0; }
.brand svg { width: 32px; height: 32px; color: var(--lx-color-primary); }
.brand-word { font-size: 1.75rem; font-weight: 800; line-height: 1; letter-spacing: -0.075em; }
.nav-links { display: flex; align-items: center; gap: clamp(var(--lx-space-4), 2.1vw, var(--lx-space-8)); padding: 0; margin: 0; list-style: none; }
.nav-links li { margin: 0; }
.nav-links a { display: flex; align-items: center; min-height: 44px; font-size: 0.86rem; font-weight: 550; text-decoration: none; position: relative; }
.nav-links a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 3px; height: 2px; background: var(--lx-color-primary); transition: right var(--lx-motion-fast); }
.nav-links a:hover::after, .nav-links a[aria-current]::after { right: 0; }
.nav-links .nav-contact { border: 1px solid var(--lx-color-border-strong); padding: 0.1rem var(--lx-space-4); border-radius: var(--lx-radius-small); }
.menu-toggle { display: none; background: none; border: 1px solid var(--lx-color-border-strong); padding: var(--lx-space-2) 0.85rem; min-height: 44px; border-radius: var(--lx-radius-small); }
.button, button[type=submit] { display: inline-flex; align-items: center; justify-content: center; gap: var(--lx-space-6); min-height: 48px; max-width: 100%; padding: var(--lx-space-3) 1.2rem; border: 1px solid transparent; border-radius: var(--lx-radius-small); background: var(--lx-color-primary); color: var(--lx-color-ink); font-weight: 700; font-size: 0.9rem; text-align: center; text-decoration: none; overflow-wrap: anywhere; transition: background var(--lx-motion-fast), transform var(--lx-motion-fast); }
.button:hover, button[type=submit]:hover:not(:disabled) { background: var(--lx-color-signal); }
.button:active, button[type=submit]:active:not(:disabled) { transform: translateY(1px); }
.button-secondary { color: inherit; background: transparent; border-color: var(--lx-color-border-strong); }
.button-secondary:hover { color: var(--lx-color-ink); }
.text-link { display: inline-flex; align-items: center; gap: var(--lx-space-6); min-height: 44px; width: fit-content; max-width: 100%; font-weight: 650; text-decoration: none; border-bottom: 1px solid currentColor; }
.action-mark { display: inline-block; width: var(--lx-size-mark); height: var(--lx-size-mark); flex: 0 0 auto; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transition: transform var(--lx-motion-shift) var(--lx-motion-ease); }
a:hover .action-mark, button:hover .action-mark { transform: translate(3px, -2px); }
.meta, .kicker { font: var(--lx-type-utility); letter-spacing: -0.01em; }
.meta { color: var(--lx-color-text-secondary); }
.kicker { display: inline-flex; align-items: center; gap: 0.8rem; margin-bottom: var(--lx-space-6); color: var(--lx-color-primary); }
.kicker::before { content: ''; width: 12px; height: 12px; border-bottom: 3px solid currentColor; border-left: 3px solid currentColor; }
.home-hero { padding-block: clamp(var(--lx-space-12), 6.5vw, var(--lx-space-24)) var(--lx-space-12); }
.hero-layout { display: grid; grid-template-columns: 1.12fr 1fr; align-items: stretch; gap: clamp(var(--lx-space-8), 4vw, var(--lx-space-16)); }
.hero-copy { padding-block: 1.2rem var(--lx-space-8); display: flex; flex-direction: column; align-items: flex-start; }
.hero-copy h1 { font-size: var(--lx-font-display); line-height: 1.01; letter-spacing: -0.068em; margin: 0.8rem 0 var(--lx-space-8); hyphens: none; overflow-wrap: anywhere; }
.hero-copy h1 span { color: var(--lx-color-primary); }
.hero-copy p { font-size: var(--lx-font-lead); max-width: 29rem; margin-bottom: var(--lx-space-8); }
.hero-copy .text-link { margin-top: auto; }
.signal-board { min-height: 470px; background: var(--lx-color-primary); color: var(--lx-color-ink); display: flex; flex-direction: column; justify-content: space-between; padding: 1.6rem; position: relative; overflow: hidden; }
.signal-board-top, .signal-board-bottom { display: flex; align-items: center; justify-content: space-between; gap: var(--lx-space-4); font: 600 0.75rem/1.5 var(--lx-font-family); letter-spacing: -0.01em; }
.signal-board-top { border-bottom: 1px solid currentColor; padding-bottom: var(--lx-space-4); }
.signal-art { width: 85%; margin: var(--lx-space-8) auto; }
.signal-board-bottom { border-top: 1px solid currentColor; padding-top: var(--lx-space-4); }
.hero-footnote { display: flex; align-items: center; justify-content: space-between; gap: var(--lx-space-4); margin-top: 2.5rem; padding-top: 1.2rem; border-top: 1px solid var(--lx-color-border); }
.section { padding-block: var(--lx-layout-section); }
.section + .section { border-top: 1px solid var(--lx-color-border); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--lx-space-8); margin-bottom: var(--lx-space-12); }
.section-heading h2 { max-width: 18ch; }
.section-heading p { max-width: 36ch; }
h2.section-heading { display: block; }
.paper { color-scheme: light; background: var(--lx-color-paper); color: var(--lx-color-ink); --lx-color-text-primary: var(--lx-color-ink); --lx-color-text-secondary: var(--lx-color-ink-secondary); --lx-color-border: oklch(0.72 0.015 170); --lx-color-border-strong: var(--lx-color-ink-secondary); }
.paper .kicker { color: var(--lx-color-secondary); }
.paper :focus-visible { outline-color: var(--lx-color-secondary); }
.featured-project { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(var(--lx-space-8), 6vw, var(--lx-space-24)); align-items: center; }
.launcher-visual { min-height: 340px; background: var(--lx-color-background-1); color: var(--lx-color-primary); padding: var(--lx-space-8); display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; }
.launcher-visual .launcher-type { font-size: clamp(5rem, 10vw, 10rem); font-weight: 800; letter-spacing: -0.09em; line-height: 1; }
.launcher-visual .meta { color: var(--lx-color-paper); }
.launcher-visual-foot { display: flex; justify-content: space-between; font: 0.75rem var(--lx-font-utility); }
.project-copy { display: grid; justify-items: start; gap: var(--lx-space-6); }
.project-copy h3 { font-size: clamp(2rem, 4vw, 3.5rem); }
.tag, .status { display: inline-flex; align-items: center; gap: var(--lx-space-2); padding: 0.3rem 0.65rem; min-height: 30px; border: 1px solid var(--lx-color-border-strong); border-radius: var(--lx-radius-small); font: 0.7rem/1.5 var(--lx-font-utility); }
.status::before { content: ''; width: 6px; height: 6px; background: currentColor; }
.status { color: var(--lx-color-primary); }
.paper .status { color: var(--lx-color-secondary); }
.project-meta { display: flex; gap: var(--lx-space-4); flex-wrap: wrap; }
.statement { display: grid; grid-template-columns: 0.8fr 1.5fr; gap: var(--lx-space-16); }
.statement h2 { max-width: 18ch; }
.statement .large-type { font-size: clamp(1.6rem, 3.4vw, 3.1rem); line-height: 1.25; letter-spacing: -0.04em; color: var(--lx-color-text-primary); }
.statement-links { display: flex; flex-wrap: wrap; gap: var(--lx-space-8); margin-top: var(--lx-space-8); }
.pathways { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--lx-space-16); padding-block: var(--lx-space-12) 5rem; }
.pathway { padding-top: var(--lx-space-8); border-top: 1px solid var(--lx-color-border-strong); }
.pathway h2 { font-size: clamp(1.7rem, 3vw, 3rem); margin-bottom: var(--lx-space-4); }
.pathway .text-link { margin-top: var(--lx-space-6); }
.page-head { display: grid; grid-template-columns: 1.6fr 1fr; gap: var(--lx-space-12); align-items: end; padding-block: clamp(var(--lx-space-12), 6vw, var(--lx-space-24)) var(--lx-space-12); border-bottom: 1px solid var(--lx-color-border); }
.page-head h1 { max-width: 17ch; }
.page-head > * { min-width: 0; }
.page-intro { font-size: var(--lx-font-lead); padding-bottom: 0.35rem; }
.page-content { padding-bottom: var(--lx-space-16); }
.split { display: grid; grid-template-columns: 2fr 3fr; gap: clamp(var(--lx-space-8), 6vw, var(--lx-space-24)); align-items: start; }
.stack { display: grid; gap: var(--lx-space-6); }
.stack > * { max-width: 100%; }
.prose { max-width: var(--lx-layout-reading); }
.prose > * + *, .legal-section > * + * { margin-top: 1.25rem; }
.prose h2, .legal-section h2 { font-size: clamp(1.6rem, 2.5vw, 2.3rem); margin-top: 2.5rem; }
.prose h3, .legal-section h3 { font-size: 1.25rem; }
.prose ul, .prose ol { color: var(--lx-color-text-secondary); }
.large-type { font-size: clamp(2rem, 4vw, 4rem); line-height: 1.18; letter-spacing: -0.045em; color: var(--lx-color-text-primary); }
.link-list { list-style: none; padding: 0; margin: 0; }
.link-list li { border-bottom: 1px solid var(--lx-color-border); margin: 0; }
.link-list > article { padding-block: var(--lx-space-8); border-bottom: 1px solid var(--lx-color-border); }
.link-list > a { border-bottom: 1px solid var(--lx-color-border); }
.link-list a { display: flex; justify-content: space-between; gap: var(--lx-space-4); padding-block: 1.1rem; text-decoration: none; min-height: 48px; }
.link-list a:hover { color: var(--lx-color-primary); }
.notice { padding: 1.25rem var(--lx-space-6); border: 1px solid var(--lx-color-border-strong); border-radius: var(--lx-radius-small); font-size: 0.9rem; }
.notice p + p { margin-top: var(--lx-space-3); }
.project-list { display: grid; }
.project-entry { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(var(--lx-space-8), 5vw, 5rem); padding-block: 3.5rem; align-items: center; border-bottom: 1px solid var(--lx-color-border); }
.project-visual { background: var(--lx-color-primary); color: var(--lx-color-ink); min-height: 310px; padding: var(--lx-space-8); display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; }
.project-visual .large-type { color: inherit; font-size: clamp(3rem, 5.8vw, 6rem); }
.project-visual .meta { color: inherit; }
.project-info { display: grid; justify-items: start; gap: 1.25rem; }
.project-info h2 { font-size: clamp(2rem, 3.8vw, 3.5rem); }
.project-visual-film { background: var(--lx-color-paper); }
.project-visual-build { background: var(--lx-color-secondary); color: var(--lx-color-text-primary); }
.team-list { border-bottom: 1px solid var(--lx-color-border); }
.team-member { padding-block: var(--lx-space-6); border-top: 1px solid var(--lx-color-border); display: grid; grid-template-columns: 80px minmax(0,1fr); gap: 1.25rem; align-items: center; }
.team-member-info { display: grid; gap: var(--lx-space-2); }
.team-member h3 { font-size: 1.5rem; }
.team-member p { font-size: 0.9rem; margin: 0; }
.project-visual.team-portrait { min-height: 0; width: 80px; height: 80px; padding: 0; display: grid; place-items: center; }
.team-portrait .large-type { font-size: 2rem; }
.team-member--lead { padding-block: var(--lx-space-8); grid-template-columns: 96px minmax(0,1fr); }
.team-member--lead h3 { font-size: clamp(1.75rem, 3vw, 2.25rem); }
.team-member--lead .team-portrait { width: 96px; height: 96px; }
.team-member--lead .team-portrait .large-type { font-size: 2.5rem; }
.large-type[href^="tel:"] { font-size: clamp(1.25rem,3vw,2.6rem); overflow-wrap: anywhere; }
dl { margin: 0; }
dl > div { display: grid; grid-template-columns: minmax(7rem,0.65fr) minmax(0,1fr); gap: var(--lx-space-4); padding-block: var(--lx-space-2); border-bottom: 1px solid var(--lx-color-border); }
dd { margin: 0; }
.form-layout { display: grid; grid-template-columns: minmax(0,0.7fr) minmax(0,1.3fr); gap: clamp(var(--lx-space-8), 7vw, 7rem); padding-top: var(--lx-space-12); }
.form-aside { display: grid; gap: var(--lx-space-8); align-content: start; }
.form-aside h2 { font-size: clamp(1.5rem, 2.6vw, 2.4rem); }
.form-aside .contact-mail { font-size: clamp(1rem, 1.6vw, 1.4rem); overflow-wrap: anywhere; }
.form-panel { min-width: 0; }
.form-panel h2 { font-size: 1.75rem; margin-bottom: var(--lx-space-4); }
.form-intro { font-size: 0.875rem; margin-bottom: var(--lx-space-8); }
form { display: grid; gap: var(--lx-space-6); }
fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
legend { font-weight: 700; margin-bottom: var(--lx-space-4); font-size: 1.1rem; }
.form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.field { display: grid; gap: var(--lx-space-2); align-content: start; min-width: 0; }
label { font-size: 0.875rem; font-weight: 650; }
.optional { color: var(--lx-color-text-secondary); font-weight: 450; }
input:not([type=checkbox]):not([type=radio]), select, textarea { width: 100%; min-width: 0; border: 1px solid var(--lx-color-border-strong); color: var(--lx-color-text-primary); background: var(--lx-color-background-1); min-height: 50px; padding: var(--lx-space-3); border-radius: var(--lx-radius-small); }
input::placeholder, textarea::placeholder { color: var(--lx-color-text-secondary); opacity: 0.8; }
textarea { min-height: 160px; resize: vertical; line-height: 1.6; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline-offset: 3px; }
[aria-invalid=true] { border-color: var(--lx-color-error); }
.field-error, .error-text { color: var(--lx-color-error); font-size: 0.85rem; }
.field-error:empty { display: none; }
.field-hint, .form-privacy, .file-list, .form-hint { color: var(--lx-color-text-secondary); font-size: 0.8125rem; line-height: 1.6; }
.field-hint { display: block; }
.field-counter { text-align: right; font: 0.7rem/1.6 var(--lx-font-utility); color: var(--lx-color-text-secondary); }
.file-input { padding: var(--lx-space-4); border: 1px dashed var(--lx-color-border-strong); }
input[type=file] { font-size: 0.8rem; padding: var(--lx-space-3); }
input::file-selector-button { font: inherit; border: 1px solid var(--lx-color-border-strong); background: var(--lx-color-surface); color: var(--lx-color-text-primary); min-height: 36px; margin-right: 0.8rem; border-radius: var(--lx-radius-small); padding-inline: var(--lx-space-3); cursor: pointer; }
.file-list { list-style: none; margin: 0; padding: 0; overflow-wrap: anywhere; }
.file-list li { padding-block: var(--lx-space-2); display: flex; align-items: center; justify-content: space-between; gap: var(--lx-space-4); }
.file-remove { background: none; border: 0; min-width: 44px; min-height: 44px; text-decoration: underline; color: var(--lx-color-text-primary); font-size: 0.8rem; }
.form-status { border: 1px solid var(--lx-color-border-strong); padding: var(--lx-space-4) 1.25rem; border-radius: var(--lx-radius-small); font-size: 0.9rem; overflow-wrap: anywhere; }
.form-status[data-state=success] { color: var(--lx-color-success); border-color: currentColor; }
.form-status[data-state=error] { color: var(--lx-color-error); border-color: currentColor; }
.captcha { border: 1px solid var(--lx-color-border); padding: 1.25rem; border-radius: var(--lx-radius-small); display: grid; gap: var(--lx-space-4); }
.captcha h3 { font-size: 1rem; letter-spacing: 0; }
.captcha p { font-size: 0.8rem; }
.captcha-row { display: flex; flex-wrap: wrap; gap: var(--lx-space-4); align-items: center; }
.captcha-image { width: 220px; height: 70px; object-fit: contain; background: var(--lx-color-paper); }
.captcha-feedback { overflow-wrap: anywhere; }
.captcha .button { font-size: 0.8rem; min-height: 44px; }
.service-choices { display: flex; flex-wrap: wrap; gap: var(--lx-space-2); }
.service-choice { min-height: 44px; border: 1px solid var(--lx-color-border-strong); background: none; color: inherit; font-size: 0.85rem; padding: 0.6rem 0.9rem; border-radius: var(--lx-radius-small); }
.service-choice[aria-pressed=true] { background: var(--lx-color-primary); color: var(--lx-color-ink); border-color: transparent; }
.service-catalog { display: grid; margin-block: var(--lx-space-8) var(--lx-space-12); }
.service-catalog article { display: grid; grid-template-columns: 1fr 1.35fr 1fr auto; gap: var(--lx-space-6); align-items: center; padding-block: var(--lx-space-6); border-bottom: 1px solid var(--lx-color-border); }
.service-catalog h3 { font-size: 1.4rem; }
.service-catalog p { font-size: 0.9rem; }
.service-price { font: 0.8rem/1.8 var(--lx-font-utility); white-space: nowrap; }
.checkbox-group { display: flex; flex-wrap: wrap; gap: var(--lx-space-2) 1.25rem; }
.checkbox-group label { display: flex; gap: 0.6rem; align-items: center; min-height: 44px; }
input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--lx-color-primary); }
.legal-layout { display: grid; grid-template-columns: 1fr 2.4fr; gap: var(--lx-space-16); padding-top: var(--lx-space-12); align-items: start; }
.legal-nav { display: grid; gap: var(--lx-space-2); font-size: 0.85rem; }
.legal-nav a { min-height: 44px; padding-block: var(--lx-space-2); }
.legal-section { padding-bottom: 2.5rem; max-width: var(--lx-layout-reading); overflow-wrap: anywhere; }
.legal-section:first-child h2 { margin-top: 0; }
.site-footer { background: var(--lx-color-background-1); border-top: 1px solid var(--lx-color-border); padding-block: var(--lx-space-12) var(--lx-space-6); }
.footer-main { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: var(--lx-space-8); }
.footer-brand p { font-size: 0.85rem; max-width: 27ch; margin-top: var(--lx-space-4); }
.footer-links { display: grid; gap: 0.1rem; align-content: start; }
.footer-links h2 { font: 0.68rem/1.5 var(--lx-font-utility); color: var(--lx-color-text-secondary); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: var(--lx-space-4); }
.footer-links a { font-size: 0.85rem; min-height: 44px; display: flex; align-items: center; width: fit-content; text-decoration: none; }
.footer-links a:hover { text-decoration: underline; }
.footer-bottom { margin-top: var(--lx-space-12); padding-top: 1.25rem; border-top: 1px solid var(--lx-color-border); display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--lx-space-4); font-size: 0.7rem; color: var(--lx-color-text-secondary); }
.footer-bottom a, .footer-bottom button { min-height: 44px; display: inline-flex; align-items: center; background: none; padding: 0; border: 0; color: inherit; font-size: inherit; text-decoration: underline; }
.footer-bottom > span { display: inline-flex; align-items: center; min-height: 44px; }
dialog { width: min(640px, calc(100% - 2rem)); max-height: calc(100% - 2rem); padding: clamp(1.25rem, 4vw, 2.5rem); border: 1px solid var(--lx-color-border-strong); border-radius: var(--lx-radius-medium); background: var(--lx-color-background-0); color: var(--lx-color-text-primary); box-shadow: var(--lx-shadow-dialog); }
dialog::backdrop { background: oklch(0.15 0.01 184 / 0.8); }
.dialog-head { display: flex; align-items: start; justify-content: space-between; gap: var(--lx-space-4); margin-bottom: var(--lx-space-6); }
.dialog-head h2 { font-size: 1.6rem; }
.dialog-close { min-width: 44px; min-height: 44px; background: none; border: 1px solid var(--lx-color-border); border-radius: var(--lx-radius-small); }
.swatches { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--lx-space-6); }
.swatch { display: grid; gap: var(--lx-space-2); font-size: 0.8rem; }
.swatch-color { height: 100px; border: 1px solid var(--lx-color-border); }
.swatch-primary { background: var(--lx-color-primary); }
.swatch-secondary { background: var(--lx-color-secondary); }
.swatch-signal { background: var(--lx-color-signal); }

/* Signal System v2: Signal activates, Trace connects, Mark confirms. */
.button, button[type=submit] { position: relative; border-radius: 0; border-color: currentColor; border-bottom-width: 4px; justify-content: space-between; min-width: min(12rem, 100%); }
.button-secondary { min-width: 0; border-bottom-width: 1px; }
.trace-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: 0; }
.trace-row > span { min-height: 3rem; display: flex; align-items: center; padding-right: var(--lx-space-4); font: var(--lx-type-utility); color: var(--lx-color-text-secondary); border-top: 1px solid var(--lx-color-border); position: relative; }
.trace-row > span::before { content: ''; width: 8px; height: 8px; margin-right: var(--lx-space-3); background: var(--lx-color-border-strong); }
.trace-row > span:first-child::before { background: var(--lx-signal); }
.product-trace { font: var(--lx-type-data); }
.mark-glyph { display: inline-block; width: .2em; height: .2em; margin-left: .08em; background: currentColor; vertical-align: top; }
.product-facts { width: 100%; }
.product-facts dt { color: var(--lx-color-text-secondary); }
.product-facts dd { font-family: var(--lx-font-utility); font-size: .86rem; }
.product-stage { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(20rem,.9fr); min-height: 38rem; margin-top: var(--lx-space-12); border-top: 1px solid var(--lx-line-strong); border-bottom: 1px solid var(--lx-line-strong); }
.product-stage-visual { display: flex; flex-direction: column; justify-content: space-between; min-height: 38rem; padding: clamp(var(--lx-space-6),4vw,var(--lx-space-12)); background: var(--lx-signal); color: var(--lx-color-ink); }
.product-monogram { align-self: center; font-size: clamp(9rem,23vw,22rem); font-weight: 800; line-height: .72; letter-spacing: -.12em; }
.product-stage-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: var(--lx-space-6); padding: clamp(var(--lx-space-8),5vw,var(--lx-space-16)); background: var(--lx-bg-1); }
.product-stage-copy h2 { font-size: clamp(2.4rem,5vw,5.4rem); max-width: 9ch; }
.large-copy { font-size: var(--lx-font-lead); color: var(--lx-text); }
.product-state { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: var(--lx-space-4); font: var(--lx-type-utility); }
.product-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--lx-space-6); }
.roadmap-trace { position: relative; display: grid; }
.roadmap-trace::before { content: ''; position: absolute; left: calc(18% + 7px); top: var(--lx-space-8); bottom: var(--lx-space-8); width: 1px; background: var(--lx-line-strong); }
.roadmap-trace article { display: grid; grid-template-columns: minmax(10rem,.45fr) minmax(0,1.55fr); gap: clamp(var(--lx-space-8),6vw,var(--lx-space-24)); padding-block: var(--lx-space-12); border-bottom: 1px solid var(--lx-line); }
.roadmap-trace article > div:last-child { display: grid; gap: var(--lx-space-4); }
.trace-state { display: flex; align-items: flex-start; gap: var(--lx-space-3); font: var(--lx-type-utility); color: var(--lx-text-muted); position: relative; z-index: 1; }
.trace-node { width: 15px; height: 15px; border: 3px solid var(--lx-bg-0); background: var(--lx-line-strong); outline: 1px solid var(--lx-line-strong); flex: 0 0 auto; }
[data-roadmap-state=active] .trace-node { background: var(--lx-signal); outline-color: var(--lx-signal); }
[data-roadmap-state=planned] .trace-node { background: var(--lx-bg-0); }
.footer-links h2 { font: 650 .8rem/1.5 var(--lx-font-family); text-transform: none; letter-spacing: -.01em; }
@media (min-width: 1600px) { .signal-board { min-height: 540px; } }
@media (max-width: 1000px) {
  .service-catalog article { grid-template-columns: 1fr 1.5fr; }
  .nav-links { gap: var(--lx-space-4); } .nav-links a { font-size: 0.78rem; }
  .hero-layout { grid-template-columns: 1fr 0.85fr; gap: var(--lx-space-8); } .signal-board { min-height: 410px; }
  .hero-copy h1 { font-size: clamp(3.5rem, 7.8vw, 6rem); } .statement { gap: var(--lx-space-8); }
  .footer-main { grid-template-columns: 1.2fr 1fr 1fr; } .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 800px) {
  .site-nav { flex-wrap: wrap; min-height: 80px; gap: 0; padding-block: var(--lx-space-4); }
  .menu-toggle { display: inline-flex; align-items: center; } .nav-links { width: 100%; flex-direction: column; align-items: stretch; gap: 0; padding-top: 1.2rem; }
  .nav-links a { font-size: 1rem; min-height: 50px; border-bottom: 1px solid var(--lx-color-border); } .nav-links .nav-contact { border: 0; padding: 0; }
  .hero-layout { grid-template-columns: 1fr; } .hero-copy { padding-block: 0; }
  .hero-copy h1 { font-size: clamp(3.5rem, 11.7vw, 6.5rem); margin-top: 0; } .hero-copy p { max-width: 37ch; } .hero-copy .text-link { margin-top: 0; }
  .signal-board { min-height: 300px; max-height: 390px; } .signal-art { width: 220px; margin: var(--lx-space-6) auto; } .hero-footnote { margin-top: var(--lx-space-6); }
  .featured-project { gap: var(--lx-space-8); } .launcher-visual { min-height: 280px; }
  .page-head { grid-template-columns: 1fr; gap: var(--lx-space-6); } .page-head h1 { max-width: 18ch; } .page-intro { max-width: 48ch; }
  .form-layout { grid-template-columns: 1fr; } .form-aside { grid-template-columns: 1fr 1fr; gap: var(--lx-space-8); }
  .legal-layout { grid-template-columns: 1fr; gap: var(--lx-space-8); } .legal-nav { display: flex; flex-wrap: wrap; gap: var(--lx-space-2) var(--lx-space-6); }
  .product-stage { grid-template-columns: 1fr; } .product-stage-visual { min-height: 24rem; } .product-stage-copy { min-height: 28rem; }
}
@media (max-width: 600px) {
  .brand-word { font-size: 1.55rem; } .home-hero { padding-top: 2.25rem; } .hero-copy h1 { margin-bottom: var(--lx-space-6); } .hero-copy p { font-size: 1.075rem; }
  .signal-board { padding: 1.1rem; } .signal-board-top, .signal-board-bottom { font-size: 0.59rem; }
  .hero-footnote { align-items: start; } .hero-footnote .meta { font-size: 0.6rem; } .hero-footnote > :last-child { text-align: right; max-width: 17ch; }
  .section-heading { display: grid; gap: var(--lx-space-6); margin-bottom: var(--lx-space-8); }
  .featured-project, .statement, .split, .project-entry, .pathways { grid-template-columns: 1fr; }
  .launcher-visual { min-height: 280px; } .launcher-visual .launcher-type { font-size: 6rem; } .statement { gap: var(--lx-space-6); }
  .pathways { gap: var(--lx-space-8); padding-block: 0 var(--lx-space-12); } .project-entry { gap: var(--lx-space-8); padding-block: 2.5rem; } .project-visual { min-height: 270px; }
  .form-aside, .form-row { grid-template-columns: 1fr; } .form-aside { gap: var(--lx-space-6); }
  .service-catalog article { grid-template-columns: 1fr; gap: 0.7rem; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: var(--lx-space-8) var(--lx-space-4); } .footer-links:last-child { grid-column: 1 / -1; } .footer-bottom { margin-top: var(--lx-space-8); } .swatches { grid-template-columns: 1fr; }
  .link-list > a { flex-direction: column; gap: 0.3rem; }
  .team-member { grid-template-columns: 64px minmax(0,1fr); gap: var(--lx-space-4); }
  .project-visual.team-portrait { width: 64px; height: 64px; }
  .team-member--lead { grid-template-columns: 72px minmax(0,1fr); }
  .team-member--lead .team-portrait { width: 72px; height: 72px; }
  dl > div { grid-template-columns: 1fr; gap: 0.2rem; }
  .trace-row { grid-template-columns: 1fr; } .trace-row > span { border-top-color: var(--lx-line); }
  .roadmap-trace::before { left: 7px; } .roadmap-trace article { grid-template-columns: 1fr; gap: var(--lx-space-6); padding-block: var(--lx-space-8); } .roadmap-trace article > div:last-child { padding-left: 27px; }
  .product-stage { margin-inline: calc(-1 * var(--lx-layout-gutter)); } .product-stage-copy, .product-stage-visual { padding-inline: var(--lx-layout-gutter); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto; transition-duration: 0s; animation: none; } }
@media (forced-colors: active) { .signal-board, .project-visual { border: 1px solid CanvasText; } .brand svg { color: LinkText; } }
@media print { .site-header, .site-footer, .signal-board, .skip-link, dialog { display: none; } body { background: white; color: black; } p { color: black; } .page-head, .legal-layout, .split { display: block; } }
[hidden] { display: none; }

