/* Readable Korean first. Keep horizontal text and give it a usable measure. */
.lang-ko { word-break:keep-all; overflow-wrap:break-word; line-break:strict; }
.lang-ko :is(h1,h2,h3,h4,p,li,dt,dd,th,td,a,button,summary,figcaption) { writing-mode:horizontal-tb; word-break:keep-all; }
.lang-ko :is(.story-copy h3,.table-wrap th,.table-wrap td,.detail-list,.policy-block p,dd) { overflow-wrap:break-word; }
.lang-ko .text-link { word-break:keep-all; overflow-wrap:normal; flex-shrink:0; width:fit-content; max-width:100%; }
.btn, .viz-controls button { white-space:nowrap; flex-shrink:0; }
.lang-ko :is(.story-copy,.scope-list,.assurance-row,.viz-description) p { line-height:1.85; }
.lang-ko :is(h2,h3) { text-wrap:pretty; }
.technology-list > li { grid-template-columns:minmax(240px,1fr) minmax(320px,1.6fr); }
.technology-list .text-link { grid-column:2; justify-self:start; }
.technology-list > li > * { min-width:0; }
.patent-family .evidence-list { position:relative; border-top:0; padding-left:24px; border-left:2px solid #396280; }
.patent-family .evidence-list > li { position:relative; padding:24px; background:#0d1a26; margin-bottom:20px; }
.patent-family .evidence-list > li::before { content:''; position:absolute; left:-26px; top:42px; width:24px; border-top:2px solid #70c5f4; }
.patent-family h3 { line-height:1.65; }
/* Full-width stage plus descriptions: diagrams never squeeze prose into a sliver. */
.visual-section { background:#0b1620; border-block:1px solid #233948; }
.visual-explorer { --viz-blue:#70c5f4; --viz-mint:#9de3ca; --viz-gold:#ffc53d; }
.viz-controls { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 22px; }
.viz-controls button { min-height:44px; padding:10px 18px; background:#0c1b27; color:#c9d8e3; border:1px solid #416078; border-radius:3px; font-size:14px; }
.viz-controls button[aria-pressed='true'] { background:#004899; border-color:#70c5f4; color:#fff; }
.viz-controls button:hover { border-color:#a0e5d2; }
.viz-stage { position:relative; padding:16px 4%; border:1px solid #304653; background-color:#08111a; background-image:linear-gradient(#22364755 1px,transparent 1px),linear-gradient(90deg,#22364755 1px,transparent 1px); background-size:36px 36px; }
.viz-stage svg { display:block; width:100%; max-width:860px; height:auto; margin:auto; overflow:visible; }
.viz-stage path, .viz-stage circle, .viz-stage rect { vector-effect:non-scaling-stroke; }
.viz-frame { fill:none; stroke:#587285; stroke-width:1.4; }
.viz-stage .diagram-trace { stroke-width:4; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.viz-stage .route-blue { stroke:var(--viz-blue); }
.viz-stage .route-mint { stroke:var(--viz-mint); }
.viz-stage .route-gold { stroke:var(--viz-gold); }
.viz-stage .route-muted { stroke:#7f98aa; stroke-dasharray:5 7; }
.viz-unit { fill:#122e40; stroke:#74a9c6; stroke-width:1.5; }
.viz-sheet { fill:#102332; stroke:#74a9c6; stroke-width:1.5; }
.viz-grid { stroke:#92b6c9; stroke-width:1.4; fill:none; }
.viz-node { fill: #102d41; stroke:#a0d7f5; stroke-width:1.6; }
.viz-node text { fill:#fff; stroke:none; font:600 15px system-ui,sans-serif; }
.viz-zone { fill:#102c3e66; stroke:#64879c; stroke-width:1; stroke-dasharray:6 5; }
.viz-obstacle { fill:#ffc53d17; stroke:#ffc53d; stroke-width:1.5; stroke-dasharray:6 5; }
.viz-cloud { fill:#70c5f4; }
[data-viz-layer] { opacity:1; transition:opacity .25s ease; }
[data-viz-layer].is-muted { opacity:.2; }
.viz-center-caption { text-align:center; color:#a9c0d1; margin:0 auto 12px; font-size:15px; }
.viz-descriptions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:0; gap:28px; margin:32px 0 24px; }
.viz-description { display:block; min-width:0; border-top:2px solid #70c5f4; padding-top:18px; transition:background-color .2s ease; }
.viz-description:nth-child(2) { border-color:#9de3ca; }
.viz-description:nth-child(3) { border-color:#ffc53d; }
.viz-index { display:block; font:500 26px var(--font-mono); color:#9cb4c5; margin:0 0 12px; }
.viz-description h3 { font-size:21px; line-height:1.55; margin:0 0 12px; }
.viz-description p { font-size:15px; color:var(--muted); line-height:1.8; }
.viz-description.is-active { background:#173247; outline:12px solid #173247; }
/* Connected steps use a readable lane instead of five narrow text columns. */
.story-flow, .workflow-section .story-flow { display:block; margin:40px 0; }
.story-flow li { display:grid; grid-template-columns:80px minmax(0,1fr); gap:32px; padding:0 0 40px; }
.story-flow li:not(:last-child)::before { top:80px; bottom:14px; left:32px; right:auto; width:1px; height:auto; }
.story-flow li:not(:last-child)::after { top:auto; bottom:14px; left:29px; right:auto; transform:rotate(135deg); }
.story-marker { margin:0; align-self:start; }
.story-copy { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(320px,1.3fr); column-gap:40px; padding-top:10px; }
.story-copy h3 { overflow-wrap:normal; }
.story-copy p { margin:0; }
@media (max-width:1100px) {
  .technology-list > li, .patent-family-grid { grid-template-columns:1fr; }
  .technology-list .text-link { grid-column:1; }
  .story-copy { display:block; }
  .role-branches { grid-template-columns:1fr; gap:26px; }
  .role-branches::before, .role-branch::before, .role-hub::after { display:none; }
  .role-hub { margin-bottom:28px; }
  .role-branch { display:flex; gap:24px; }
  .role-branch .story-symbol { margin:0; }
  .viz-descriptions { grid-template-columns:1fr; gap:26px; }
  .viz-description { display:grid; grid-template-columns:48px minmax(0,1fr); gap:20px; }
  .viz-description h3 { font-size:20px; }
  .company-overview .wrap { grid-template-columns:1fr; }
  .company-overview .table-wrap { grid-column:auto; grid-row:auto; }
}
@media (max-width:767px) {
  .viz-stage { padding:12px 0; background-size:24px 24px; }
  .viz-controls { display:grid; grid-template-columns:1fr; gap:8px; }
  .viz-controls button { text-align:left; }
  .viz-description { display:block; }
  .viz-index { font-size:20px; margin-bottom:8px; }
  .story-flow li { grid-template-columns:1fr; gap:18px; padding:24px 0 30px; border-bottom:1px solid #304653; }
  .story-flow li::before, .story-flow li::after { display:none; }
  .story-marker { width:64px; }
  .story-copy { padding:0; }
  .story-copy h3 { font-size:20px; }
  .lang-ko .table-wrap :is(tbody th,tbody td) { display:block; }
  .table-wrap .cell-label { margin-bottom:6px; }
  .cell-value { display:block; }
  .evidence-list dl > div, dl.evidence-list > div, .patent-record dl > div { grid-template-columns:1fr; gap:6px; }
  .equipment-list, .field-nav { grid-template-columns:1fr; }
  .role-branches { padding:0; margin:0; border:0; }
  .role-branch { display:block; }
  .role-branch .story-symbol { margin-bottom:16px; }
  .role-hub { padding:20px; display:block; }
  .role-hub .story-symbol { margin-bottom:18px; }
  .milestone-map li { display:block; padding-left:0; }
  .milestone-map li::before, .milestone-mark { display:none; }
  .milestone-map time { display:block; margin-bottom:12px; }
  .text-link { min-width:0; }
  .assurance-row { gap:20px; }
}
@media (prefers-reduced-motion:reduce) {
  [data-viz-layer], .viz-description { transition:none; }
}

.viz-scan { opacity:0; fill:#9de3ca; pointer-events:none; }

/* Business selector: one model, one description and one destination at a time. */
.business-model-section { background:#090f15; }
.business-select { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.business-select button { min-height:48px; padding:12px 20px; border:1px solid #486276; color:#d8e5ed; background:#101d28; border-radius:3px; white-space:nowrap; }
.business-select button[aria-pressed='true'] { color:#fff; background:#004899; border-color:#70c5f4; }
.business-model-layout { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr); gap:40px; align-items:center; }
#business-model { position:relative; min-width:0; height:430px; background:#050a0f; border:1px solid #253c4c; overflow:hidden; }
#business-model canvas { position:absolute; inset:0; width:100%; height:100%; }
.business-model-fallback { width:100%; height:100%; object-fit:cover; }
.model-ready .business-model-fallback { visibility:hidden; }
#business-copy h3 { font-size:25px; line-height:1.55; margin-bottom:20px; }
#business-copy p { color:var(--muted); line-height:1.85; margin-bottom:24px; }
#business-copy article + article { margin-top:28px; }
#business-copy article[hidden] + article { margin-top:0; }
.business-model-actions { display:flex; align-items:center; gap:20px; margin-top:14px; color:#a9bcc9; font-size:13px; }
.business-model-actions button { min-height:44px; padding:8px 16px; border:1px solid #486276; color:#d8e5ed; background:transparent; }
.home-company-summary { margin:0; }
.home-company-summary > div { display:grid; grid-template-columns:100px minmax(0,1fr); gap:18px; padding:11px 0; border-bottom:1px solid var(--line); }
.home-company-summary dt { color:var(--muted); font-size:14px; }
.home-company-summary dd { margin:0; color:var(--ink); }
.home-more { margin-top:14px; }
.home-more summary { min-height:44px; padding:10px 0; color:var(--link); font-size:14px; cursor:pointer; }
.home-project-list { margin:0; padding:0; list-style:none; }
.home-project-list li { display:grid; grid-template-columns:56px minmax(0,1fr); gap:20px; padding:16px 0; border-bottom:1px solid var(--line); }
.home-project-year { font:500 16px var(--font-mono); color:var(--link); }
.home-project-list h3 { font-size:17px; line-height:1.6; margin:0 0 5px; }
.home-project-list p { color:var(--muted); font-size:13px; margin:0; }
.company-overview .wrap > .home-more { grid-column:2; margin-top:0; }
@media(max-width:1100px) { .company-overview .wrap > .home-more { grid-column:1; } }
@media(max-width:900px) {
 .business-model-layout { grid-template-columns:1fr; gap:24px; }
 #business-model { height:370px; }
}
@media(max-width:767px) {
 .business-select { display:grid; grid-template-columns:1fr; }
 .business-select button { text-align:left; }
 #business-model { height:310px; }
 #business-copy h3 { font-size:23px; }
 .home-company-summary > div { grid-template-columns:80px minmax(0,1fr); gap:12px; padding:9px 0; }
 .home-project-list li { gap:12px; padding:12px 0; }
 .home-project-list h3 { font-size:16px; }
}
/* 2026-10-22: technology hub flow. Four steps, their outputs and the technology that covers each. */
.tech-flow-section { background:#0b1620; border-block:1px solid #233948; }
.tone-blue { --tone:#70c5f4; } .tone-mint { --tone:#9de3ca; } .tone-gold { --tone:#ffc53d; } .tone-red { --tone:#ff8a7a; }
.tech-flow-owners { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin:8px 0 14px; }
.tech-flow-owners span { padding-top:10px; border-top:3px solid var(--tone); color:var(--tone); font-size:14px; font-weight:700; }
.tech-flow-steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin:0; padding:0; list-style:none; }
.tech-step { position:relative; display:flex; flex-direction:column; gap:10px; min-width:0; padding:16px 16px 18px; background:#08111a; border:1px solid #304653; border-top:3px solid var(--tone); }
.tech-step:not(:last-child)::after { content:''; position:absolute; top:86px; right:-21px; width:12px; height:12px; border-top:2px solid #9cb4c5; border-right:2px solid #9cb4c5; transform:rotate(45deg); }
.tech-step-art { display:block; width:100%; height:auto; margin-bottom:6px; background:#050b11; border:1px solid #1e3242; }
.tech-step-art * { vector-effect:non-scaling-stroke; }
.tech-step-art .art-line { fill:none; stroke:#6f899c; stroke-width:1.4; }
.tech-step-art .art-fill { fill:#122e40; stroke:#74a9c6; stroke-width:1.2; }
.tech-step-art .art-dot { fill:#9fdcff; }
.tech-step-art .art-ray { fill:none; stroke:var(--tone); stroke-width:1; stroke-dasharray:3 4; opacity:.75; }
.tech-step-art .art-head { fill:var(--tone); }
.tech-step-art .art-bar { fill:#6f899c; }
.tech-step-art .art-pipe { fill:none; stroke:#cfe3ee; stroke-width:2.5; stroke-linejoin:round; }
.tech-step-art .art-clash { fill:none; stroke:#ff8a7a; stroke-width:1.4; stroke-dasharray:4 5; }
.tech-step-art .art-x { fill:none; stroke:#ff8a7a; stroke-width:2.2; }
.tech-step-art .art-zone { fill:#ffc53d10; stroke:#ffc53d; stroke-width:1; stroke-dasharray:5 4; }
.tech-step-art .art-joint { fill:none; stroke:#fff; stroke-width:2.4; }
.tech-step-art .art-label { fill:#ffc53d; font:600 11px var(--font-mono); }
.tech-step-art .diagram-trace { fill:none; stroke:var(--tone); stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; }
.tech-step-index { margin:0; font:500 14px var(--font-mono); color:var(--tone); }
.tech-step h3 { margin:0; font-size:19px; line-height:1.5; }
.tech-step p:not(.tech-step-index) { margin:0; color:var(--muted); font-size:14.5px; line-height:1.75; }
.tech-step .tech-step-out { margin-top:auto; padding-top:12px; border-top:1px dashed #304653; color:var(--ink); font-weight:600; }
.tech-step-out span { display:block; margin-bottom:2px; color:var(--tone); font-size:12px; letter-spacing:.04em; }
.tech-step-tag { align-self:flex-start; color:var(--tone); font-size:13px; font-weight:700; text-underline-offset:4px; }
.tech-flow-section .diagram-note { margin-top:24px; }
@media(max-width:1100px) {
 .tech-flow-owners { display:none; }
 .tech-flow-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .tech-step::after { display:none; }
}
@media(max-width:767px) {
 .tech-flow-steps { grid-template-columns:1fr; gap:32px; }
 .tech-step:not(:last-child)::after { display:block; top:auto; bottom:-24px; right:auto; left:50%; margin-left:-6px; transform:rotate(135deg); }
}
/* Business hub: same card system, three parallel fields, no sequence arrows. */
.field-flow-owners, .field-flow-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
.field-flow-steps .tech-step::after { display:none !important; }
.field-facts { display:flex; flex-direction:column; gap:10px; margin-top:auto; }
.field-facts .tech-step-out { margin-top:0; }
.tech-step-art .art-hot { fill:none; stroke:#ffc53d; stroke-width:2.2; }
.tech-step-art .art-cold { fill:none; stroke:#70c5f4; stroke-width:2.2; }
.tech-step-art .art-pipe-red { fill:none; stroke:#ff8a7a; stroke-width:2.6; }
@media(max-width:1100px) { .field-flow-steps { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .field-flow-steps { grid-template-columns:1fr; } }
/* 2026-10-22: home page pictograms and the compact technology flow. */
.home-tech-flow .btn { margin-top:24px; }
.facility-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
.facility-list li { display:flex; flex-direction:column; }
.facility-list .story-symbol { width:52px; height:52px; margin-bottom:16px; }
.credentials-strip .credential-item { display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:16px; align-content:start; }
.credentials-strip .credential-item > :not(.story-symbol) { grid-column:2; }
.credentials-strip .credential-item .story-symbol { grid-row:1 / span 3; width:44px; height:44px; }
@media(max-width:1100px) { .facility-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .facility-list { grid-template-columns:1fr; } }
