/* Assembly page only. The site owns navigation, footer, consent and shared buttons. */
.assembly-page { --ag-blue: #3b82f6; }
.assembly-page *, .assembly-page *::before, .assembly-page *::after { box-sizing: border-box; }
.assembly-page :is(h1,h2,h3,p,figure) { margin: 0; }
.assembly-page p { font-weight: 400; line-height: 1.75; }
.assembly-page h2 { font-size: clamp(32px, 3.5vw, 48px); font-weight: 550; line-height: 1.12; letter-spacing: -.045em; }
.assembly-page h3 { font-size: 24px; font-weight: 550; line-height: 1.25; letter-spacing: -.025em; }
.assembly-page [hidden] { display: none !important; }
.assembly-page [id] { scroll-margin-top: 110px; }
.assembly-page :is(button,select,textarea) { font: inherit; }
.assembly-page :is(button,a,textarea,select,summary,[tabindex]):focus-visible, .assembly-body .ag-skip:focus-visible { outline: 3px solid var(--ag-blue, #287cf4); outline-offset: 4px; }
.assembly-page button { cursor: pointer; }
.assembly-page button:disabled, .assembly-page select:disabled { cursor: default; opacity: .4; }
.assembly-page .ag-wrap { width: min(1200px, calc(100% - 96px)); margin-inline: auto; }
.assembly-page .ag-section { padding-block: clamp(65px, 7.4vw, 106px); }
.assembly-page .ag-eyebrow { font-size: 11px; line-height: 1.6; text-transform: uppercase; letter-spacing: .12em; font-weight: 600; color: var(--ink-3); margin-bottom: 22px; }
.assembly-page .ag-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 28px; }
.assembly-page .ag-actions .button-primary { gap: 20px; }
#main-content.assembly-page .ag-link { display: inline-flex; align-items: center; gap: 15px; min-height: 44px; font-size: 14px; font-weight: 500; line-height: 1.6; text-decoration: none; }
#main-content.assembly-page .ag-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.assembly-page .ag-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.assembly-body .ag-skip { position: fixed; top: 12px; left: 18px; z-index: 10001; padding: 12px 20px; background: var(--paper); color: var(--ink); transform: translateY(-180%); }
.assembly-body .ag-skip:focus { transform: none; }

.assembly-page .ag-hero { position: relative; isolation: isolate; display: flex; align-items: center; min-height: min(840px, 90svh); background: #182229; }
.assembly-page .ag-hero-background { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.assembly-page .ag-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #07111be6, #07111ba6 45%, #07111b24 85%); }
.assembly-page .ag-hero .ag-wrap { padding-block: 170px 90px; }
.assembly-page .ag-hero-copy { max-width: 760px; }
.assembly-page .ag-hero h1 { font-size: clamp(47px, 5.3vw, 76px); font-weight: 550; line-height: 1.04; letter-spacing: -.052em; color: #fff; }
.assembly-page .ag-hero .ag-eyebrow { color: #e1e7ec; }
.assembly-page .ag-hero-copy > p:not(.ag-eyebrow) { margin-block: 28px 30px; max-width: 525px; font-size: 18px; color: #f0f2f5; }
.assembly-page .ag-hero .ag-actions { flex-direction: column; align-items: flex-start; gap: 12px; }
.assembly-page .ag-hero .button-primary { background: #fff; color: #111; border-color: #fff; }
.assembly-page .ag-hero .button-primary:hover { background: #e9edf0; }
#main-content.assembly-page .ag-hero .ag-link { color: #fff; }

.assembly-page .ag-cad-layout { display: grid; grid-template-columns: 1fr 1.4fr; align-items: center; gap: 64px; }
.assembly-page .ag-copy > p:not(.ag-eyebrow) { margin-top: 25px; font-size: 16px; }
.assembly-page .ag-cad-tree { display: grid; gap: 13px; margin-top: 30px; font-size: 12px; color: var(--ink-2); }
.assembly-page .ag-cad-tree > span { margin-left: 9px; padding-left: 23px; border-left: 1px solid var(--line-strong); }
.assembly-page .ag-cad-tree .ag-tree-root { display: flex; align-items: center; gap: 12px; padding-left: 0; margin-left: 0; border: 0; font-weight: 500; color: var(--ink); }
.assembly-page .ag-cad-tree small { margin-left: 14px; font-size: 11px; color: var(--ink-3); }
.assembly-page .ag-cad-visual { min-width: 0; background: #f4f5f7; border-radius: 12px; color: #26323f; overflow: hidden; }
.assembly-page .ag-file-label { display: flex; align-items: center; gap: 10px; padding: 24px 25px 0; font-size: 11px; }
.assembly-page .ag-file-label > span { margin-left: auto; color: #637180; font-size: 10px; }
.assembly-page .ag-cad-visual > img { display: block; width: 100%; height: 395px; object-fit: contain; }
.assembly-page .ag-cad-visual figcaption { padding: 0 25px 24px; font-size: 11px; line-height: 1.6; color: #637180; }

.assembly-page .ag-example-section { background: var(--paper-2); }
.assembly-page .ag-example-heading { max-width: 700px; margin: 0 auto 40px; text-align: center; }
.assembly-page .ag-example-heading > p:last-child { margin: 23px auto 0; max-width: 580px; font-size: 16px; }
/* Mirrors the webapp's assistant/Composer.tsx. */
.assembly-page .ag-request { display: flex; align-items: flex-end; gap: 6px; width: min(780px, 100%); margin: 0 auto 32px; padding: 6px 6px 6px 18px; border: 1px solid #e4e4e7; background: #fff; border-radius: 999px; box-shadow: 0 1px 2px #0000000d; color-scheme: light; }
.assembly-page .ag-request[data-multiline="true"] { border-radius: 24px; }
.assembly-page .ag-request:focus-within { outline: 1px solid #a1a1aa; outline-offset: 1px; }
.assembly-page .ag-request textarea { flex: 1; min-width: 0; width: 100%; min-height: 36px; max-height: 200px; margin: 0; padding: 7px 0; border: 0; resize: none; border-radius: 0; background: transparent; color: #18181b; box-shadow: none; font-size: 14px; line-height: 22px; }
.assembly-page .ag-request textarea:focus-visible { outline: none; }
.assembly-page .ag-request textarea::placeholder { color: #71717a; }
.assembly-page .ag-request textarea[readonly] { cursor: default; }
.assembly-page .ag-generate { display: grid; place-items: center; flex: none; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: #18181b; color: #fff; }
.assembly-page .ag-generate:hover:enabled { background: #303036; }
.assembly-page .ag-generate svg { width: 18px; height: 18px; }
.assembly-page .ag-request[aria-busy="true"] .ag-generate { opacity: .5; }

/* TwinWorks viewer: floating top bar, unobstructed scene, translucent step card. */
.assembly-page .ag-viewer { color-scheme: light; position: relative; isolation: isolate; height: 740px; border: 1px solid #d6dbe2; border-radius: 16px; background: #f4f5f7; color: #161b22; overflow: hidden; box-shadow: 0 20px 60px -38px #26394e66; }
.assembly-page .ag-viewer-toolbar { position: absolute; top: 20px; left: 28px; right: 28px; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 10px 13px; border: 1px solid #ffffffa6; border-radius: 12px; background: #ffffffe0; backdrop-filter: blur(10px); }
.assembly-page .ag-viewer-toolbar > div { display: flex; align-items: center; gap: 13px; min-width: 0; }
.assembly-page .ag-viewer-toolbar strong { font-size: 15px; font-weight: 500; }
.assembly-page .ag-viewer-toolbar select { font-size: 12px; padding: 9px 29px 9px 12px; border: 1px solid #dfe3e8; border-radius: 6px; background: #fff; color: #303b47; min-height: 40px; }
.assembly-page .ag-viewer-brand { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 8px; background: #111; flex: none; }
.assembly-page .ag-icon-button { display: inline-grid; place-items: center; flex: none; width: 40px; height: 40px; min-width: 40px; border: 1px solid #dce1e7; border-radius: 7px; background: #fff; color: #28313a; padding: 0; }
.assembly-page .ag-icon-button:hover:enabled { background: #edf4ff; border-color: #abc7ef; }
.assembly-page .ag-viewer-toolbar .ag-icon-button { border-color: transparent; background: transparent; }
.assembly-page .ag-model { position: absolute; inset: 65px 0 210px; touch-action: pan-y; }
.assembly-page .ag-model > img { display: block; width: 100%; height: 100%; object-fit: contain; }
/* Mirrors editor/StepProgress.tsx: continuous bar, collapsible details, inset brand footer. */
.assembly-page .ag-step-card { position: absolute; z-index: 3; bottom: 24px; left: 9%; right: 9%; max-height: calc(100% - 110px); padding: 24px 24px 36px; border: 0; border-radius: 12px; background: #f8f8f8cc; backdrop-filter: blur(12px); color: #111827; }
.assembly-page .ag-step-heading { display: flex; align-items: center; gap: 12px; }
.assembly-page .ag-step-number { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: #fff; background: var(--ag-blue); font-size: 14px; flex: none; }
.assembly-page .ag-step-heading h3 { flex: 1; min-width: 0; font-size: 20px; font-weight: 400; letter-spacing: 0; line-height: 1.375; color: inherit; overflow-wrap: anywhere; }
.assembly-page .ag-step-heading :is(.ag-tools-button,.ag-collapse) { width: 32px; height: 36px; min-width: 32px; border: 0; background: transparent; }
.assembly-page .ag-step-heading :is(.ag-tools-button,.ag-collapse):hover:enabled { background: #1118270d; }
.assembly-page .ag-step-heading :is(.ag-tools-button,.ag-collapse) svg { width: 16px; height: 16px; }
.assembly-page .ag-tools-button[aria-expanded="true"] { color: var(--ag-blue); }
.assembly-page .ag-step-tools { margin-top: 16px; padding: 12px; border: 1px solid #dce3eb; border-radius: 8px; background: #ffffffb3; }
.assembly-page .ag-step-tools > p { font-size: 12px; margin-bottom: 8px; }
.assembly-page .ag-collapse[aria-expanded="false"] svg { transform: rotate(180deg); }
.assembly-page .ag-step-details { max-height: 200px; overflow: auto; padding-right: 4px; margin-top: 16px; }
.assembly-page .ag-step-details > p { font-size: 16px; line-height: 1.65; color: #111827cc; overflow-wrap: anywhere; }
.assembly-page .ag-step-details .ag-tool-badge { margin-bottom: 12px; }
.assembly-page .ag-step-controls { display: flex; align-items: center; gap: 12px; margin-top: 24px; }
.assembly-page .ag-step-controls .ag-icon-button { width: 36px; min-width: 36px; height: 36px; border-radius: 6px; border-color: #e4e4e7; color: #18181b; box-shadow: 0 1px 2px #0000000d; }
.assembly-page .ag-step-controls .ag-icon-button svg { width: 16px; height: 16px; }
.assembly-page .ag-progress { flex: 1; min-width: 0; height: 8px; border-radius: 999px; overflow: hidden; background: #11182720; }
.assembly-page .ag-progress > span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--ag-blue); transition: width .3s ease-out; }
.assembly-page .ag-powered { position: absolute; bottom: 8px; left: 0; right: 0; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 10px; line-height: 1; color: #808080; user-select: none; pointer-events: none; }
.assembly-page .ag-powered img { display: block; width: auto; height: 16px; position: relative; top: -1px; }
.assembly-page .ag-viewer[data-mode="generating"] .ag-step-number { background: #5f91d7; }
.assembly-page .ag-example-note { margin-top: 17px; font-size: 11px; text-align: center; color: var(--ink-3); }
.assembly-page .ag-static { font-size: 12px; margin-top: 28px; }
.assembly-page .ag-static h3 { font-size: 18px; }
.assembly-page .ag-static ol { line-height: 1.8; padding-left: 20px; }
.assembly-page .ag-static li { margin-bottom: 12px; }
.assembly-page .ag-review-line { display: grid; grid-template-columns: 1fr 1.5fr 1fr; align-items: center; gap: 45px; margin-top: 55px; padding-top: 40px; border-top: 1px solid var(--line); }
.assembly-page .ag-review-line .ag-eyebrow { margin-bottom: 13px; }
.assembly-page .ag-review-line > p { font-size: 14px; }
.assembly-page .ag-review-line > a { justify-self: end; }
.assembly-page .ag-closing { text-align: center; }
.assembly-page .ag-closing h2 { max-width: 660px; margin-inline: auto; }
.assembly-page .ag-closing .ag-wrap > p:not(.ag-eyebrow) { font-size: 16px; max-width: 600px; margin: 25px auto 28px; }
.assembly-page .ag-closing .ag-actions { justify-content: center; }

.assembly-page .ag-tools-layout { display: grid; grid-template-columns: 1fr 1.2fr; gap: 90px; align-items: center; }
.assembly-page .ag-tools-card { color-scheme: light; padding: 28px; border: 1px solid #e4e4e7; border-radius: 14px; background: #fff; color: #18181b; box-shadow: 0 8px 24px -20px #26394e33; }
.assembly-page .ag-tools-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.assembly-page .ag-tools-header p { margin-bottom: 6px; color: #71717a; font-size: 12px; }
.assembly-page .ag-tools-header h3 { font-size: 20px; font-weight: 500; }
.assembly-page .ag-tools-count { padding: 5px 10px; border-radius: 999px; border: 1px solid #e4e4e7; font-size: 11px; white-space: nowrap; color: #52525b; }
.assembly-page .ag-tool-item { display: flex; gap: 25px; align-items: center; margin: 30px 0 25px; }
.assembly-page .ag-tool-visual { display: grid; place-items: center; width: 160px; height: 154px; flex: none; border-radius: 10px; background: #f4f5f7; }
.assembly-page .ag-tool-visual svg { max-width: 100%; }
.assembly-page .ag-tool-copy h4 { margin: 0 0 8px; font-size: 17px; font-weight: 500; }
.assembly-page .ag-tool-copy p { margin-bottom: 14px; font-size: 12px; color: #71717a; }
.assembly-page .ag-tool-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border: 1px solid #3b82f666; border-radius: 6px; background: #ffffffb3; color: #111827; font-size: 11px; line-height: 1.5; }
.assembly-page .ag-tool-badge svg { flex: none; width: 14px; height: 14px; }
.assembly-page .ag-tool-step { width: 100%; padding: 18px 0; border: 0; border-top: 1px solid #e4e4e7; background: transparent; color: #71717a; text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 11px; line-height: 1.6; }
.assembly-page .ag-tool-step strong { display: block; margin-top: 3px; font-size: 13px; font-weight: 500; color: #18181b; }
.assembly-page .ag-tool-step:hover:enabled strong { color: var(--ag-blue); }
.assembly-page .ag-tool-step svg { flex: none; color: #18181b; }
.assembly-page .ag-tools-note { font-size: 10px; line-height: 1.6; color: #71717a; }
.assembly-page .ag-tools-section + .ag-closing { background: var(--paper-2); }

@media (max-width: 1050px) {
 .assembly-page .ag-wrap { width: calc(100% - 64px); }
 .assembly-page .ag-cad-layout { grid-template-columns: 1fr 1.2fr; gap: 38px; }
 .assembly-page .ag-tools-layout { gap: 40px; }
 .assembly-page .ag-cad-visual > img { height: 360px; }
 .assembly-page .ag-review-line { grid-template-columns: 1fr 1.4fr; gap: 24px 40px; }
 .assembly-page .ag-review-line > a { grid-column: 2; justify-self: start; }
 .assembly-page .ag-viewer { height: 700px; }
 .assembly-page .ag-step-card { left: 5%; right: 5%; }
}
@media (max-width: 800px) {
 .assembly-page .ag-wrap { width: calc(100% - 48px); }
 .assembly-page .ag-cad-layout, .assembly-page .ag-tools-layout { grid-template-columns: 1fr; gap: 35px; }
 .assembly-page .ag-copy { max-width: 630px; }
 .assembly-page .ag-cad-tree { grid-template-columns: repeat(3, auto); gap: 15px; }
 .assembly-page .ag-cad-tree .ag-tree-root { grid-column: 1 / -1; }
 .assembly-page .ag-cad-tree > span { padding-left: 15px; }
 .assembly-page .ag-cad-visual > img { height: 370px; }
 .assembly-page .ag-viewer-toolbar { left: 18px; right: 18px; top: 18px; }
 .assembly-page .ag-viewer-toolbar strong { font-size: 13px; }
 .assembly-page .ag-step-card { left: 18px; right: 18px; padding: 20px 20px 36px; }
 .assembly-page .ag-model { bottom: 240px; }
}
@media (max-width: 600px) {
 .assembly-page .ag-wrap { width: calc(100% - 40px); }
 .assembly-page .ag-hero { min-height: 750px; }
 .assembly-page .ag-hero .ag-wrap { padding-block: 140px 65px; }
 .assembly-page .ag-hero h1 { font-size: clamp(43px, 11.6vw, 65px); }
 .assembly-page .ag-hero-copy > p:not(.ag-eyebrow) { font-size: 16px; margin-block: 24px; }
 .assembly-page .ag-hero-background { object-position: 60% center; }
 .assembly-page .ag-hero::before { background: linear-gradient(90deg, #07111bdd, #07111b99); }
 .assembly-page .ag-eyebrow { font-size: 10px; }
 .assembly-page .ag-copy > p:not(.ag-eyebrow) { font-size: 15px; }
 .assembly-page .ag-cad-tree { display: grid; grid-template-columns: 1fr; }
 .assembly-page .ag-cad-tree > span { margin-left: 9px; padding-left: 23px; }
 .assembly-page .ag-cad-visual { margin-inline: -6px; }
 .assembly-page .ag-file-label { padding: 18px 17px 0; font-size: 10px; gap: 8px; }
 .assembly-page .ag-file-label > span { display: none; }
 .assembly-page .ag-cad-visual > img { height: 260px; }
 .assembly-page .ag-cad-visual figcaption { padding: 0 17px 18px; font-size: 10px; }
 .assembly-page .ag-example-heading { text-align: left; margin-bottom: 28px; }
 .assembly-page .ag-example-heading > p:last-child { font-size: 15px; }
 .assembly-page .ag-request { margin-bottom: 26px; padding-left: 14px; }
 .assembly-page .ag-request textarea { font-size: 14px; }
 .assembly-page .ag-viewer { height: 660px; margin-inline: -8px; border-radius: 12px; }
 .assembly-page .ag-viewer-toolbar { left: 10px; right: 10px; top: 10px; padding: 8px; gap: 8px; }
 .assembly-page .ag-viewer-toolbar > div { gap: 5px; }
 .assembly-page .ag-viewer-toolbar strong { font-size: 11px; max-width: 125px; line-height: 1.4; }
 .assembly-page .ag-viewer-toolbar select { font-size: 10px; max-width: 91px; padding-left: 7px; padding-right: 19px; }
 .assembly-page .ag-viewer-brand { display: none; }
 .assembly-page .ag-viewer-toolbar .ag-icon-button { width: 32px; min-width: 32px; }
 .assembly-page .ag-model { top: 64px; bottom: 245px; }
 .assembly-page .ag-step-card { left: 10px; right: 10px; bottom: 14px; padding: 12px 12px 36px; }
 .assembly-page .ag-step-heading { gap: 9px; }
 .assembly-page .ag-step-heading h3 { font-size: 16px; line-height: 1.3; }
 .assembly-page .ag-step-number { width: 27px; height: 27px; font-size: 11px; }
 .assembly-page .ag-step-details { max-height: 220px; margin-top: 14px; }
 .assembly-page .ag-step-details > p { font-size: 12px; line-height: 1.7; }
 .assembly-page .ag-step-controls { gap: 10px; margin-top: 24px; }
 .assembly-page .ag-step-controls .ag-icon-button { width: 36px; min-width: 36px; height: 36px; }
 .assembly-page .ag-step-heading :is(.ag-tools-button,.ag-collapse) { min-width: 27px; width: 27px; }
 .assembly-page .ag-powered { font-size: 9px; bottom: 8px; }
 .assembly-page .ag-powered img { height: 14px; }
 .assembly-page .ag-example-note { text-align: left; font-size: 10px; }
 .assembly-page .ag-review-line { grid-template-columns: 1fr; gap: 20px; margin-top: 30px; padding-top: 30px; }
 .assembly-page .ag-review-line h3 br { display: none; }
 .assembly-page .ag-review-line > a { grid-column: 1; }
 .assembly-page .ag-tools-card { padding: 20px; }
 .assembly-page .ag-tool-item { gap: 18px; }
 .assembly-page .ag-tool-visual { width: 100px; height: 126px; }
 .assembly-page .ag-tool-copy h4 { font-size: 16px; }
 .assembly-page .ag-tool-copy p { font-size: 11px; }
 .assembly-page .ag-closing { text-align: left; }
 .assembly-page .ag-closing .ag-actions { align-items: flex-start; justify-content: flex-start; flex-direction: column; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
 .assembly-page *, .assembly-page *::before, .assembly-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
