/* Homepage capabilities, delivery process, and project experience. */
.home-visual { --home-muted: #9aaec1; --home-line: rgba(150, 186, 212, .16); scroll-margin-top: 64px; }
.home-visual .section-inner { max-width: 1200px; }
.home-visual .section-label { color: #68d7f5; }
.home-visual .section-title { margin-bottom: 16px; }
.home-visual .section-desc { max-width: 720px; color: var(--home-muted); font-size: 16px; margin-bottom: 0; }
.home-section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 40px; }
.home-section-head > div { min-width: 0; }
.home-capabilities { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.home-capability { --card-accent: #61d9fa; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--home-line); border-radius: 14px; background: #0a1320; transition: border-color .2s, transform .2s; }
.home-capability--education { --card-accent: #7be4bc; }
.home-capability--research { --card-accent: #edc080; }
.home-capability:hover, .home-capability:focus-within { border-color: var(--card-accent); transform: translateY(-4px); }
.home-service-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #0b1522; border-bottom: 1px solid var(--home-line); }
.home-service-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.home-capability:hover .home-service-media img { transform: scale(1.025); }
.home-service-media--diagram img { object-fit: contain; padding: 14px 0 8px; }
.home-media-label { position: absolute; left: 16px; bottom: 14px; border: 1px solid rgba(182, 219, 235, .22); background: rgba(6, 16, 25, .9); color: #d4e5ee; border-radius: 4px; padding: 4px 8px; font-size: 10px; letter-spacing: .04em; }
.home-service-body { display: flex; flex-direction: column; flex: 1; padding: 25px 25px 23px; }
.home-eyebrow { color: var(--card-accent, #75d7ef); font: 11px var(--mono); letter-spacing: .1em; margin-bottom: 12px; }
.home-capability h3 { color: #f1f6fc; font-size: 23px; line-height: 1.3; letter-spacing: -.025em; margin-bottom: 16px; }
html[data-lang="ko"] .home-capability h3 { min-height: 0; }
.home-question { font-size: 15px; font-weight: 600; line-height: 1.6; color: #dce9f3; margin-bottom: 8px; }
.home-service-desc { color: #b6c8d8; font-size: 16px; line-height: 1.85; }
.home-capability h3.home-service-title { min-height: 0; margin-bottom: 20px; color: var(--card-accent); font: 14px/1.6 var(--mono); letter-spacing: .025em; }
.home-service-focus { color: #f1f6fc; font-size: 21px; font-weight: 600; line-height: 1.55; letter-spacing: -.02em; margin-bottom: 12px; }
.home-tags { display: flex; flex-wrap: wrap; gap: 7px; list-style: none; margin: 21px 0 24px; }
.home-tags li { font-size: 11px; color: #aabecf; border: 1px solid var(--home-line); border-radius: 4px; padding: 3px 8px; }
.home-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; color: #d7eef7; text-decoration: none; font-size: 13px; font-weight: 600; line-height: 1.5; }
.home-link > b { color: var(--card-accent, #6ad5f1); font-size: 20px; font-weight: 400; transition: transform .2s; }
.home-link:hover > b { transform: translateX(4px); }
.home-service-body > .home-link { margin-top: auto; border-top: 1px solid var(--home-line); padding-top: 17px; }
.home-visual a:focus-visible, .home-visual button:focus-visible { outline: 2px solid #8ae4ff; outline-offset: 5px; border-radius: 4px; }
.home-support { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 34px; padding-top: 28px; border-top: 1px solid var(--home-line); }
.home-support-item { display: grid; grid-template-columns: 34px 1fr; gap: 14px; }
.home-support-item svg { width: 28px; height: 28px; color: #68bed4; margin-top: 4px; }
.home-support-item h3 { color: #dbe8f2; font-size: 15px; margin-bottom: 7px; }
.home-support-item p { color: var(--home-muted); font-size: 13px; line-height: 1.8; }
#process.home-visual { background: linear-gradient(180deg, #09121e, #080e18); border-top: 1px solid var(--home-line); border-bottom: 1px solid var(--home-line); }
.home-process { position: relative; }
.home-process-nav, .home-process-controls { display: none; }
.home-process.is-enhanced .home-process-controls { display: block; position: absolute; right: 0; top: 3px; z-index: 1; }
.home-process-toggle { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #365568; border-radius: 50%; color: #a9c7d5; background: transparent; cursor: pointer; }
.home-process-toggle:hover { border-color: #6ad5f1; }
.home-process-toggle svg { display: block; width: 14px; height: 14px; fill: currentColor; }
.home-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.home-process-controls [hidden] { display: none; }
.home-process.is-enhanced .home-process-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); position: relative; margin: 0 54px 28px 0; }
.home-process-nav::before { content: ''; position: absolute; top: 21px; left: 12.5%; right: 12.5%; height: 1px; background: #2b4052; }
.home-process-tab { position: relative; display: flex; flex-direction: column; align-items: center; gap: 12px; border: 0; background: transparent; color: #9cafc0; cursor: pointer; font-family: inherit; font-size: 14px; padding: 0 8px 10px; line-height: 1.5; }
.home-step-number { display: grid; place-items: center; width: 43px; height: 43px; border: 1px solid #385267; border-radius: 50%; background: #0b1623; color: #97b4c9; font: 14px var(--mono); transition: background .2s, color .2s, border-color .2s; }
.home-process-tab[aria-selected="true"] { color: #edfaff; }
.home-process-tab[aria-selected="true"] .home-step-number { background: #103b4d; color: #86e8ff; border-color: #54cce9; box-shadow: 0 0 0 5px rgba(69, 198, 233, .06); }
.home-process-tab:hover .home-step-number { border-color: #62d5ef; }
.home-process-panel { display: grid; grid-template-columns: 1.12fr 1fr; align-items: center; border: 1px solid var(--home-line); border-radius: 14px; overflow: hidden; background: #0c1725; margin-bottom: 20px; }
.home-process-panel[hidden] { display: none; }
/* Reserve the tallest stage so auto-advance does not shift the surrounding page. */
.home-process.is-enhanced .home-process-panels { display: grid; }
.home-process.is-enhanced .home-process-panel { grid-area: 1 / 1; }
.home-process.is-enhanced .home-process-panel[hidden] { display: grid; visibility: hidden; pointer-events: none; }
.home-process-visual { position: relative; padding: 32px 24px; background: radial-gradient(ellipse at center, rgba(0, 161, 214, .045), transparent 70%); }
.home-process-visual img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; }
.home-process-caption { font: 10px var(--mono); letter-spacing: .12em; color: #7799ae; text-align: center; margin-top: 10px; }
.home-process-copy { padding: 34px 42px 34px 28px; }
.home-process-copy h3 { font-size: 26px; line-height: 1.45; letter-spacing: -.025em; color: #eef6ff; margin-bottom: 15px; }
.home-process-copy > p:not(.home-eyebrow) { color: var(--home-muted); font-size: 14px; line-height: 1.9; }
.home-deliverables { margin-top: 24px; border-top: 1px solid var(--home-line); padding-top: 19px; }
.home-deliverables dt { color: #7ab9cc; font: 11px var(--mono); margin-bottom: 9px; }
.home-deliverables dd { color: #d2e2ec; font-size: 13px; }
.home-activities { list-style: none; display: grid; gap: 7px; }
.home-activities li { display: flex; align-items: baseline; gap: 10px; }
.home-activities li::before { content: ''; flex: 0 0 4px; height: 4px; border-radius: 50%; background: #75bfd1; align-self: center; }
.home-process-note { color: #94aab9; font-size: 12px; text-align: right; margin-top: 12px; }
.home-client-types { color: #8ba5b7; font-size: 12px; line-height: 1.8; margin: -15px 0 30px; }
.home-case-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 24px; }
.home-case { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border: 1px solid var(--home-line); border-radius: 14px; background: #0a121e; }
.home-case-media { position: relative; flex-shrink: 0; aspect-ratio: 16 / 10; overflow: hidden; }
.home-case-media::after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(5, 12, 20, .7)); pointer-events: none; }
.home-case-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.home-case:hover .home-case-media img { transform: scale(1.025); }
.home-case-sector { position: absolute; left: 22px; bottom: 18px; z-index: 1; font: 11px var(--mono); letter-spacing: .15em; color: #eaf8ff; }
.home-case-copy { display: flex; flex-direction: column; flex: 1; gap: 18px; padding: 24px 22px; }
.home-case-copy h3 { color: #e6f2fa; font-size: 20px; line-height: 1.4; min-height: 2.8em; margin: 0; letter-spacing: -.02em; }
.home-case-facts { display: grid; grid-template-columns: 52px 1fr; gap: 9px 12px; font-size: 13px; line-height: 1.75; }
.home-case-facts dt { color: #75bfd1; }
.home-case-facts dd { color: #a7bbcd; }
.home-case-description { color: #a7bbcd; font-size: 13px; line-height: 1.75; margin: 0; }
.home-case-copy > .home-link { width: 100%; min-height: 44px; margin-top: auto; padding-top: 17px; border-top: 1px solid var(--home-line); }
.home-case-notes { margin-top: 24px; color: #899fae; font-size: 11px; line-height: 1.9; max-width: 970px; }
.home-case-notes p + p { margin-top: 6px; }
@media (min-width: 1101px) {
  .home-capability h3 { min-height: 60px; }
}
@media (max-width: 1100px) {
  .home-capabilities { gap: 15px; }
  .home-service-body { padding: 22px 20px; }
  .home-capability h3 { font-size: 21px; min-height: 54px; }
  .home-support { gap: 24px; }
  .home-process-copy { padding: 28px; }
  .home-case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .home-capabilities { grid-template-columns: 1fr; gap: 22px; }
  .home-capability { display: grid; grid-template-columns: .95fr 1fr; }
  .home-service-media { height: 100%; aspect-ratio: auto; border-bottom: 0; border-right: 1px solid var(--home-line); }
  .home-service-media--diagram img { padding: 0; }
  .home-capability h3 { min-height: 0; }
  .home-service-body { padding: 25px; }
  .home-support { gap: 24px; grid-template-columns: 1fr; }
  .home-support-item { grid-template-columns: 34px 1fr; max-width: 590px; }
  .home-process-panel { grid-template-columns: 1fr; }
  .home-process-visual { padding: 20px 32px 0; max-width: 550px; width: 100%; margin: auto; }
  .home-process-copy { padding: 25px 32px 32px; }
  .home-process-copy h3 { font-size: 24px; }
  .home-case-grid { gap: 18px; }
  .home-case-copy { padding: 22px; }
}
@media (max-width: 640px) {
  .home-case-grid { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 540px) {
  section.home-visual { padding: 66px 20px; }
  .home-section-head { margin-bottom: 28px; }
  .home-visual .section-title { font-size: 30px; }
  .home-visual .section-desc { font-size: 14px; }
  .home-capability { display: flex; }
  .home-service-media { height: auto; aspect-ratio: 16 / 10; border-right: 0; border-bottom: 1px solid var(--home-line); }
  .home-service-body { padding: 24px; }
  .home-capability h3 { font-size: 23px; }
  .home-support { margin-top: 28px; padding-top: 26px; }
  .home-process-tab { font-size: 12px; padding-inline: 2px; }
  .home-process.is-enhanced .home-process-controls { top: 0; }
  .home-process.is-enhanced .home-process-nav { margin-right: 44px; }
  .home-step-number { width: 38px; height: 38px; font-size: 13px; }
  .home-process-nav::before { top: 19px; }
  .home-process-visual { padding: 18px 6px 0; }
  .home-process-copy { padding: 24px; }
  .home-process-copy h3 { font-size: 22px; }
  .home-process-note { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .home-visual *, .home-visual *::before, .home-visual *::after { transition: none !important; }
  .home-capability:hover, .home-capability:focus-within, .home-capability:hover img, .home-case:hover img, .home-link:hover > b { transform: none; }
}

/* Compact the root homepage without changing the separate introduction pages. */
body.homepage section { padding-block: 64px; }
body.homepage .home-section-head { margin-bottom: 24px; }
body.homepage .home-visual .section-title { margin-bottom: 0; }
body.homepage .home-process.is-enhanced .home-process-panel { margin-bottom: 0; }
body.homepage .contact-heading { margin-bottom: 24px; }
@media (max-width: 540px) {
  body.homepage section { padding-block: 44px; }
  body.homepage .home-section-head { margin-bottom: 22px; }
}
