/* Styles for factory.html (shared rules are in css/site.css). */

html { scroll-behavior: smooth; }
@keyframes gsType { 0% { clip-path: inset(0 100% 0 0); } 40% { clip-path: inset(0 0 0 0); } 100% { clip-path: inset(0 0 0 0); } }
@keyframes gsFill { 0% { transform: scaleX(0); } 60% { transform: scaleX(1); } 100% { transform: scaleX(1); } }
@keyframes gsPulse { 0%, 100% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.35); opacity: .4; } }


/* factory hero */
.factory-hero-div-1 { max-width: 1180px; margin: 0 auto; padding: 80px 24px 88px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: 56px; align-items: center; }
.factory-hero-p-2 { margin: 0; font-size: 21px; line-height: 1.45; color: #3d3831; max-width: 600px; text-wrap: pretty; }
.factory-hero-div-3 { padding: 20px; display: flex; flex-direction: column; gap: 6px; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; }
.factory-hero-div-4 { display: grid; grid-template-columns: 18px 1fr auto; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid #e6e0d3; transition: color .4s; }
.factory-hero-div-5 { display: flex; justify-content: space-between; align-items: baseline; padding-top: 14px; flex-wrap: wrap; gap: 8px; }
.factory-hero-span-6 { color: #6b655a; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.factory-hero-span-7 { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 34px; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }

/* audit flow */
.audit-flow-div-1 { padding: 26px 24px; display: flex; flex-direction: column; gap: 12px; background: #e2eee8; }

/* scoring */
.scoring-div-1 { display: flex; flex-direction: column; gap: 16px; }
.scoring-div-2 { border: 1px solid #f4efe5; border-radius: 8px; padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.scoring-div-3 { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.scoring-span-4 { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 22px; letter-spacing: -.02em; }
.scoring-span-5 { font-family: 'IBM Plex Mono', monospace; font-size: 13px; color: #8fc4b5; letter-spacing: .15em; }
.scoring-p-6 { margin: 0; font-size: 16px; line-height: 1.5; color: #cfc8ba; }
.scoring-div-7 { display: flex; gap: 8px; flex-wrap: wrap; font-family: 'IBM Plex Mono', monospace; font-size: 11px; }
.scoring-span-8 { border: 1px solid #4a4439; border-radius: 3px; padding: 4px 8px; color: #a39c8e; }

/* sample report */
.sample-report-div-1 { display: flex; justify-content: space-between; align-items: end; gap: 32px; flex-wrap: wrap; }
.sample-report-button-2 { font-family: 'IBM Plex Mono', monospace; font-size: 12px; padding: 9px 14px; border-radius: 4px; border: 1px solid #1a1713; cursor: pointer; }
.sample-report-div-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 28px; align-items: start; }
.sample-report-div-4 { display: grid; grid-template-columns: 1.4fr .9fr .9fr auto; gap: 10px; padding: 12px 18px 6px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #6b655a; }
.sample-report-button-5 { all: unset; cursor: pointer; text-align: left; }
.sample-report-button-6 { all: unset; cursor: pointer; }
.sample-report-span-7 { min-width: 96px; }
.sample-report-div-8 { display: flex; flex-direction: column; padding: 0 18px 12px; }
.sample-report-button-9 { all: unset; cursor: pointer; display: grid; grid-template-columns: 1.4fr .9fr .9fr auto; gap: 10px; align-items: center; padding: 9px 6px; margin: 0 -6px; border-top: 1px solid #e6e0d3; border-radius: 4px; font-size: 14px; transition: background .2s; }
.sample-report-span-10 { font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: #1f6f5f; letter-spacing: .12em; }
.sample-report-span-11 { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .08em; padding: 4px 8px; border-radius: 3px; min-width: 96px; text-align: center; }
.sample-report-div-12 { padding: 22px 22px 8px; }
.sample-report-div-13 { position: relative; height: 360px; border-left: 1px solid #1a1713; border-bottom: 1px solid #1a1713; }
.sample-report-div-14 { position: absolute; left: 50%; top: 0; bottom: 0; border-left: 1px dashed #d8d0bf; }
.sample-report-div-15 { position: absolute; top: 50%; left: 0; right: 0; border-top: 1px dashed #d8d0bf; }
.sample-report-div-16 { position: absolute; left: 10px; top: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #1f6f5f; }
.sample-report-div-17 { position: absolute; right: 10px; top: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #6b655a; }
.sample-report-div-18 { position: absolute; left: 10px; bottom: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #6b655a; }
.sample-report-div-19 { position: absolute; right: 10px; bottom: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #6b655a; }
.sample-report-button-20 { all: unset; cursor: pointer; position: absolute; transform: translate(-50%, 50%); border-radius: 50%; border: 1px solid #1a1713; transition: all .3s; }
.sample-report-div-21 { position: absolute; transform: translate(-50%, calc(50% + 22px)); font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 12px; background: #1a1713; color: #f4efe5; padding: 4px 8px; border-radius: 3px; white-space: nowrap; transition: all .3s; }
.sample-report-div-22 { display: flex; justify-content: space-between; font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: #6b655a; padding-top: 8px; }
.sample-report-div-23 { border: 1px solid #1a1713; border-radius: 8px; background: #fbf8f1; overflow: hidden; position: sticky; top: 90px; animation: gsRise .3s ease both; }
.sample-report-span-24 { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .08em; padding: 4px 8px; border-radius: 3px; }
.sample-report-p-25 { margin: 0; font-size: 15px; line-height: 1.5; color: #3d3831; }
.sample-report-div-26 { border-top: 1px dashed #d8d0bf; padding-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.sample-report-p-27 { margin: 0; font-size: 16px; line-height: 1.5; font-style: italic; color: #1a1713; }
.sample-report-div-28 { display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 1px solid #1a1713; border-radius: 6px; padding: 12px 14px; transition: background .3s; }
.sample-report-span-29 { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }

/* adopt or build */
.adopt-or-build-ul-13 { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 13px; color: #3d3831; }
.adopt-or-build-div-14 { display: grid; grid-template-columns: 26px 1fr auto; gap: 12px; align-items: center; padding: 10px 12px; border-radius: 5px; transition: all .4s; }
.adopt-or-build-span-15 { font-family: 'Archivo', sans-serif; font-weight: 600; font-size: 14px; }
.adopt-or-build-div-16 { border-top: 1px dashed #d8d0bf; padding-top: 14px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.adopt-or-build-span-17 { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #6b655a; }
.adopt-or-build-span-18 { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 20px; letter-spacing: -.02em; transition: color .3s; }

/* prd blueprint */
.prd-blueprint-div-1 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 40px; align-items: end; }
.prd-blueprint-div-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; font-family: 'IBM Plex Mono', monospace; font-size: 12px; }
.prd-blueprint-div-3 { border: 1px solid #4a4439; border-radius: 6px; padding: 12px; display: flex; flex-direction: column; gap: 4px; }
.prd-blueprint-span-4 { color: #a39c8e; font-size: 10px; letter-spacing: .1em; }
.prd-blueprint-div-5 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 280px); gap: 28px; align-items: start; }
.prd-blueprint-article-6 { background: #fbf8f1; color: #1a1713; border-radius: 6px; padding: clamp(28px, 5vw, 64px); display: flex; flex-direction: column; gap: 28px; box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); }
.prd-blueprint-div-7 { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid #1a1713; padding-bottom: 18px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #6b655a; }
.prd-blueprint-h3-8 { margin: 0; font-family: 'Archivo', sans-serif; font-weight: 800; font-size: clamp(26px, 3.5vw, 40px); letter-spacing: -.03em; line-height: 1; }
.prd-blueprint-p-9 { margin: 0; font-size: 17px; line-height: 1.55; color: #3d3831; text-wrap: pretty; }
.prd-blueprint-div-10 { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.prd-blueprint-div-11 { border: 1px solid #d8d0bf; border-radius: 5px; padding: 12px; display: flex; flex-direction: column; gap: 4px; }
.prd-blueprint-span-12 { font-size: 14px; color: #5a544a; line-height: 1.4; }
.prd-blueprint-div-13 { font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; line-height: 1.7; color: #1a1713; background: #f4efe5; border: 1px solid #d8d0bf; border-radius: 5px; padding: 14px 16px; overflow-x: auto; }
.prd-blueprint-ol-14 { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; font-size: 16px; line-height: 1.5; color: #3d3831; }
.prd-blueprint-strong-15 { color: #1a1713; font-weight: 600; }
.prd-blueprint-span-16 { font-family: 'IBM Plex Mono', monospace; font-size: 14px; }
.prd-blueprint-div-17 { display: flex; gap: 8px; flex-wrap: wrap; font-family: 'IBM Plex Mono', monospace; font-size: 12px; }
.prd-blueprint-span-18 { border: 1px solid #d8d0bf; border-radius: 3px; padding: 5px 9px; }
.prd-blueprint-div-19 { border-left: 2px solid #1f6f5f; padding: 8px 14px; font-size: 15px; line-height: 1.5; color: #3d3831; background: #f4efe5; }
.prd-blueprint-span-20 { font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: #1f6f5f; }
.prd-blueprint-div-21 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 6px 20px; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; color: #3d3831; }
.prd-blueprint-div-22 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.prd-blueprint-div-23 { border: 1px solid #d8d0bf; border-radius: 5px; padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.prd-blueprint-span-24 { font-size: 14px; line-height: 1.45; color: #3d3831; }
.prd-blueprint-div-25 { border: 1px solid #1a1713; border-radius: 5px; padding: 12px; display: flex; flex-direction: column; gap: 6px; background: #f4efe5; }
.prd-blueprint-span-26 { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .1em; color: #1a1713; }
.prd-blueprint-span-27 { font-size: 14px; line-height: 1.45; color: #1a1713; }
.prd-blueprint-div-28 { border-top: 1px solid #d8d0bf; padding-top: 16px; display: flex; justify-content: space-between; gap: 12px; font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: #6b655a; flex-wrap: wrap; }
.prd-blueprint-aside-29 { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 90px; }
.prd-blueprint-div-30 { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: #a39c8e; }
.prd-blueprint-ol-31 { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; font-family: 'IBM Plex Mono', monospace; font-size: 12.5px; color: #cfc8ba; }
.prd-blueprint-p-32 { margin: 0; font-size: 15px; line-height: 1.5; color: #a39c8e; border-top: 1px solid #3a352d; padding-top: 14px; }
.prd-blueprint-a-33 { color: #f4efe5; font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 14px; border-bottom: 2px solid #8fc4b5; align-self: flex-start; }
.prd-blueprint-a-33:hover { color: #8fc4b5; border-bottom: 2px solid #f4efe5; }

/* agent hand off */
.agent-hand-off-button-1 { font-family: 'IBM Plex Mono', monospace; font-size: 12px; padding: 9px 14px; border-radius: 4px; border: 1px solid #1a1713; cursor: pointer; transition: all .2s; }
.agent-hand-off-div-2 { border: 1px solid #1a1713; border-radius: 8px; background: #fbf8f1; box-shadow: 8px 8px 0 #1a1713; overflow: hidden; animation: gsRise .3s ease both; }
.agent-hand-off-div-3 { padding: 22px; display: flex; flex-direction: column; gap: 22px; }
.agent-hand-off-div-4 { position: relative; height: 8px; background: #e6e0d3; border-radius: 4px; margin: 0 8px; }
.agent-hand-off-div-5 { position: absolute; left: 0; top: 0; bottom: 0; background: #1f6f5f; border-radius: 4px; transition: width .6s; }
.agent-hand-off-div-6 { position: absolute; top: -4px; width: 16px; height: 16px; margin-left: -8px; border-radius: 50%; border: 1px solid #1a1713; transition: background .4s; }
.agent-hand-off-div-7 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 30%), 1fr)); gap: 12px; }
.agent-hand-off-div-8 { border-radius: 6px; padding: 14px; display: flex; flex-direction: column; gap: 8px; transition: all .4s; }
.agent-hand-off-div-9 { font-family: 'IBM Plex Mono', monospace; font-size: 11px; letter-spacing: .1em; }
.agent-hand-off-div-10 { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 16px; letter-spacing: -.01em; line-height: 1.15; }
.agent-hand-off-p-11 { margin: 0; font-size: 14px; line-height: 1.45; }
.agent-hand-off-div-12 { padding: 12px 22px 22px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 0 40px; }
.agent-hand-off-button-13 { all: unset; cursor: pointer; display: grid; grid-template-columns: 22px 1fr auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid #e6e0d3; font-size: 15px; }
.agent-hand-off-span-14 { width: 18px; height: 18px; border: 1px solid #1a1713; border-radius: 3px; display: flex; align-items: center; justify-content: center; color: #f4efe5; font-family: 'IBM Plex Mono', monospace; font-size: 12px; transition: background .2s; }
.agent-hand-off-span-15 { font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: .08em; color: #6b655a; }
.agent-hand-off-div-16 { display: grid; grid-template-columns: 1.2fr 1fr 1fr; border-top: 1px solid #d8d0bf; font-size: 15px; line-height: 1.4; }
.agent-hand-off-div-17 { padding: 14px 18px; font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 14px; }
.agent-hand-off-div-18 { padding: 14px 18px; color: #6b655a; }
.agent-hand-off-div-19 { padding: 14px 18px; color: #1a1713; background: #eef4f0; }
