/* Structure abstraction page: diagrams and cards. Builds on works.css + engineering.css (dark theme). */
.structure-hero .works-hero-grid{align-items:center}
.sa-hero-visual{margin:0;border:1px solid #425b68;background:radial-gradient(ellipse at 50% 35%,#21436333,transparent 70%),#111c22;padding:24px 26px 20px;color:#c4dbed}
.sa-topline,.sa-figure .visual-topline{display:flex;justify-content:space-between;font:9px var(--mono);letter-spacing:.06em;color:#8db4ce}
.sa-domains{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}
.sa-domains span{border:1px solid #587481;padding:10px 6px;text-align:center;font-size:12px;color:#dbe8ee;background:#0d171c}
.sa-funnel{display:grid;grid-template-columns:repeat(3,1fr);height:34px}
.sa-funnel i{border-left:1px solid #587481;margin-left:50%}
.sa-funnel i:first-child{border-left:0;border-bottom:1px solid #587481;border-right:1px solid #587481;margin:0 0 17px 50%;height:17px}
.sa-funnel i:last-child{border-left:1px solid #587481;border-bottom:1px solid #587481;margin:0 50% 17px 0;height:17px}
.sa-core{border:1px solid #b6d3db;padding:18px 16px;text-align:center;background:#16232a}
.sa-core small{display:block;font:8px var(--mono);letter-spacing:.12em;color:#8db4ce}
.sa-core strong{display:block;font-size:16px;font-weight:500;line-height:1.7;margin:8px 0;color:#e4f0f2}
.sa-core span{font:13px var(--mono);color:#b6d3db}
.sa-hero-visual figcaption{font-size:11px;color:#a9bfd4;margin-top:14px;text-align:center}
.sa-figure .visual-topline{padding:18px 22px 0}
.sa-table{width:100%;border-collapse:collapse;margin:14px 0 6px;font-size:12px;line-height:1.7}
.sa-table th,.sa-table td{border-top:1px solid #30475e;padding:10px 14px;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.sa-table thead th{font:9px var(--mono);letter-spacing:.05em;color:#8db4ce;border-top:0;padding-top:6px}
.sa-table tbody th{color:#8dd5e9;font-weight:500;white-space:nowrap}
.sa-table td{color:#c4dbed}
.sa-map td,.sa-map th{text-align:center}
.sa-map tbody th{background:#16232a;color:#e4f0f2}
.sa-map .sa-result td,.sa-map .sa-result th{border-top:1px solid #b6d3db;color:#e4f0f2}
.sa-wide{max-width:780px}
.sa-lenses{list-style:none;padding:0;margin:30px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#2c3c44;border:1px solid #2c3c44}
.sa-lenses li{background:#0f171b;padding:22px 22px 24px;display:flex;flex-direction:column;gap:9px;counter-increment:lens}
.sa-lenses li::before{content:counter(lens,decimal-leading-zero);font:9px var(--mono);color:#78b9d3;letter-spacing:.08em}
.sa-lenses li.sa-open::before{content:"OPEN"}
.sa-lenses strong{font-size:15px;font-weight:500;color:#e4f0f2}
.sa-lenses span{font-size:12px;line-height:1.9;color:#aebfd4}
.sa-lenses{counter-reset:lens}
.sa-steps{list-style:none;padding:0;margin:30px 0 0;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.sa-steps li{border-top:1px solid #b6d3db;padding-top:16px}
.sa-steps li>span{font:9px var(--mono);color:#78b9d3;letter-spacing:.08em}
.sa-steps strong{display:block;font-size:17px;font-weight:500;color:#e4f0f2;margin:8px 0 10px}
.sa-steps p{font-size:12px;line-height:1.95;color:#aebfd4}
.sa-modes{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:36px}
.sa-modes>div{border:1px solid #425b68;background:#111c22;padding:24px 26px}
.sa-mode-label{font:9px var(--mono);color:#8db4ce;letter-spacing:.08em}
.sa-modes h3{font-size:20px;font-weight:500;color:#e4f0f2;margin:8px 0 10px}
.sa-modes p{font-size:12px;line-height:2;color:#aebfd4}
.sa-uses{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:30px}
.sa-uses>div{border-top:1px solid #425b68;padding:20px 4px 6px}
.sa-uses span{font:9px var(--mono);color:#78b9d3;letter-spacing:.08em}
.sa-uses h3{font-size:19px;font-weight:500;color:#e4f0f2;margin:8px 0 10px}
.sa-uses p{font-size:13px;line-height:2;color:#b4c7db}
.sa-scenes{margin-top:34px;border:1px solid #2c3c44;padding:22px 26px;background:#0f171b}
.sa-scenes-title,.sa-refs-title{font:9px var(--mono);letter-spacing:.08em;color:#8db4ce;margin-bottom:12px}
.sa-scenes ul,.sa-refs ul{margin:0;padding-left:1.2em}
.sa-scenes li{font-size:13px;line-height:2.1;color:#c4dbed}
.sa-note{font-size:10px;color:#839db7;margin-top:10px}
.sa-refs{border:1px solid #2c3c44;padding:22px 24px;background:#0f171b}
.sa-refs li{font-size:11px;line-height:1.9;color:#aebfd4;margin-bottom:6px}
@media(max-width:1100px){.sa-steps{grid-template-columns:repeat(3,1fr);row-gap:26px}}
@media(max-width:850px){.sa-lenses{grid-template-columns:repeat(2,1fr)}.sa-modes,.sa-uses{grid-template-columns:1fr}.sa-steps{grid-template-columns:repeat(2,1fr)}.sa-hero-visual{margin-top:34px}}
@media(max-width:600px){.sa-lenses,.sa-steps{grid-template-columns:1fr}.sa-table{font-size:11px}.sa-table th,.sa-table td{padding:9px 8px}.sa-table tbody th{white-space:normal}.sa-domains span{font-size:11px;padding:9px 3px}.sa-core strong{font-size:14px}.sa-hero-visual{padding:20px 16px 16px}.sa-modes>div,.sa-scenes,.sa-refs{padding:20px 18px}}
.sa-photo{display:block;width:100%;height:auto;margin-top:14px;border-top:1px solid #30475e;border-bottom:1px solid #30475e}
