@font-face {
  font-family: "Pretendard Variable";
  src: url("/fonts/PretendardVariable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

.concentro-home {
  --paper: #fff;
  --ink: #102e50;
  --muted: #61738b;
  --line: #dde5ef;
  --accent: #146fec;
  --accent-light: #e7effc;
  font-family: "Pretendard Variable", -apple-system, BlinkMacSystemFont, sans-serif;
  background: var(--paper);
  color: var(--ink);
  -webkit-font-smoothing: antialiased;
}
html:has(.concentro-home) { scroll-padding-top: calc(var(--site-nav-height,88px) + 24px); }
.concentro-home .page-width { width: min(1440px,calc(100% - 128px)); }
.concentro-home :is(h1,h2,h3,p,summary) { overflow-wrap: anywhere; }
.concentro-home :is(a,button,summary,input,textarea,select):focus-visible { outline: 3px solid #549eff; outline-offset: 6px; }
.concentro-home .button { min-height: 60px; padding: 17px 28px; border: 1px solid #146fec; border-radius: 999px; background: #146fec; color: #fff; font-size: 1rem; font-weight: 500; gap: 26px; transition: background .18s,box-shadow .18s,transform .18s; }
.concentro-home .button:hover { background: #0759c8; border-color: #0759c8; box-shadow: 0 7px 20px #146fec18; }
.concentro-home .button:active { transform: scale(.98); }
.concentro-home .button-outline { background: transparent; color: var(--ink); border-color: #a2b5ce; }
.concentro-home .button-outline:hover { background: #f0f5fc; }
.concentro-home .text-link { color: var(--ink); font-size: 1rem; font-weight: 500; gap: 22px; }
.concentro-home .text-link:hover { border-color: currentColor; }
.concentro-home h2 { font-size: clamp(2.5rem,4.6vw,4.25rem); line-height: 1.15; letter-spacing: -.055em; font-weight: 480; }
.concentro-home .eyebrow { font-size: .9375rem; color: var(--muted); letter-spacing: .015em; font-weight: 450; margin-bottom: 25px; }
.concentro-home .section { padding-block: 150px; }
.section-intro { max-width: 1080px; margin: 0 auto 90px; text-align: center; }
.section-intro > p:not(.eyebrow) { margin-top: 32px; color: var(--muted); font-size: 1.1875rem; line-height: 1.85; }

/* The first scene has its own complete composition, without a cropped screenshot. */
.concentro-home .site-header { position: sticky; top: 0; z-index: 20; width: 100%; height: auto; padding: 0; display: block; background: #ffffffed; backdrop-filter: blur(16px); border-bottom: 1px solid transparent; transition: background .2s,border-color .2s; }
.concentro-home .site-header.is-scrolled { background: #fffffff2; border-color: #e5eaf2; }
.nav-inner { min-height: 88px; display: grid; grid-template-columns: 1fr auto 1fr; gap: 40px; align-items: center; }
.concentro-home .wordmark { display: inline-flex; align-items: center; width: fit-content; gap: 12px; line-height: 1; }
.brand-symbol { width: 38px; height: 38px; flex: 0 0 38px; color: var(--ink); }
.concentro-home .wordmark .brand-name { margin: 0; color: var(--ink); font-size: 1.9rem; font-weight: 650; letter-spacing: -.065em; }
.concentro-home .site-header nav { gap: 36px; }
.concentro-home .nav-link { color: #3e5370; font-size: .9375rem; font-weight: 450; }
.concentro-home .nav-link:hover,.nav-contact:hover { text-decoration: underline; text-underline-offset: 6px; }
.nav-actions { justify-self: end; display: flex; gap: 26px; align-items: center; }
.nav-contact { padding: 10px 0; font-size: .875rem; white-space: nowrap; }
.concentro-home .button-small { min-height: 44px; padding: 10px 22px; font-size: .875rem; white-space: nowrap; }
.site-header .brand-symbol { color: #146fec; }

/* Every pixel of the real product image remains in normal document flow. */
.product-intro { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 90px; margin-bottom: 72px; }
.product-intro > p { color: var(--muted); font-size: 1.1875rem; line-height: 1.85; padding-bottom: 10px; }
.hero-product { width: 100%; height: auto; margin: 0; perspective: 1600px; }
.product-window { width: 100%; margin: 0; padding: 12px; border: 1px solid #d9e3f0; border-radius: 10px; background: #f7faff; box-shadow: 0 32px 90px #1e477418; transform-origin: center center; }
.preview-caption { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 14px 25px; padding: 20px 20px 26px; font-size: .9375rem; color: #4c6483; }
.preview-caption > span:first-child { color: #254665; font-weight: 500; }
.product-jump { color: #286cca; }
.product-jump:hover { text-decoration: underline; text-underline-offset: 5px; }
.product-window > img { display: block; width: 100%; max-width: 100%; height: auto; border: 1px solid #dce3ed; border-radius: 3px; }
.product-window figcaption { padding: 23px 20px 12px; color: #647a95; font-size: .875rem; line-height: 1.6; }

.concentro-home .program-overview { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; align-items: center; padding-top: 30px; }
.overview-copy > p:not(.eyebrow) { margin-top: 34px; color: var(--muted); font-size: 1.1875rem; line-height: 1.85; }
.overview-copy .text-link { margin-top: 32px; color: #176add; }
.program-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; }
.program-grid > div { min-width: 0; padding: 38px 0 38px 38px; }
.program-grid > div:nth-child(odd) { padding-left: 0; padding-right: 30px; border-right: 1px solid var(--line); }
.program-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
.program-grid dt { color: #647c99; font-size: .9375rem; }
.program-grid dd { margin: 22px 0 0; font-size: clamp(3.5rem,5.7vw,5.4rem); font-weight: 430; line-height: 1.08; letter-spacing: -.045em; }
.program-grid dd > span { margin-left: 10px; font-size: 1.0625rem; letter-spacing: -.02em; }
.program-grid dd small { display: block; margin-top: 25px; font-size: .875rem; font-weight: 400; color: #617b99; line-height: 1.8; letter-spacing: 0; }

/* A large, open scene stays in view. The heading is outside the pinned area. */
.concentro-home .learning-process { padding-top: 60px; }
.process-scroll,.process-sticky { position: relative; }
.process-deck { display: grid; gap: 100px; }
.process-slide { position: relative; display: grid; grid-template-columns: 1fr 1.1fr; align-items: center; gap: 64px; min-height: 530px; padding: 42px 0; border-top: 1px solid var(--line); background: #fff; }
.process-copy { min-width: 0; }
.process-label { color: #6481a5; font-size: .9375rem; margin-bottom: 34px; }
.process-copy h3 { font-size: clamp(2.3rem,3.8vw,3.65rem); font-weight: 480; line-height: 1.22; letter-spacing: -.055em; }
.process-copy > p:not(.process-label) { max-width: 470px; color: var(--muted); font-size: 1.1875rem; line-height: 1.85; margin-top: 32px; }
.process-copy .text-link { margin-top: 29px; }
.process-art { display: block; width: 100%; height: auto; min-width: 0; }
.process-scroll.is-enhanced { height: 235vh; }
.is-enhanced .process-sticky { position: sticky; top: calc(var(--site-nav-height,88px) + 30px); }
.is-enhanced .process-deck { position: relative; display: block; }
.is-enhanced .process-slide { position: absolute; top: 0; left: 0; width: 100%; opacity: 0; transform: translateY(44px); pointer-events: none; transition: transform .7s cubic-bezier(.2,.75,.25,1),opacity .3s; }
.is-enhanced .process-slide.is-past { transform: translateY(-44px); }
.is-enhanced .process-slide.is-active { opacity: 1; transform: translateY(0); pointer-events: auto; }
.is-enhanced .process-art { transform: translateX(24px); transition: transform .9s cubic-bezier(.2,.75,.25,1); }
.is-enhanced .is-active .process-art { transform: translateX(0); }
.process-controls { display: flex; justify-content: center; flex-wrap: wrap; gap: 42px; margin-top: 25px; }
.process-controls button { min-height: 48px; padding: 10px 2px; border-bottom: 2px solid transparent; color: #7a91ad; font-size: 1rem; }
.process-controls button[aria-pressed="true"] { border-color: #176de2; color: #176de2; }
.teaching-notes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 65px; margin-top: 95px; }
.teaching-notes > div { border-top: 1px solid var(--line); padding-top: 32px; }
.teaching-notes h3 { font-size: 1.375rem; font-weight: 500; margin-bottom: 19px; letter-spacing: -.035em; }
.teaching-notes p { color: var(--muted); font-size: 1.0625rem; line-height: 1.9; }

.concentro-home .curriculum-section { padding-top: 60px; background: #fff; border: 0; }
.concentro-home .course-group { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 96px; align-items: center; scroll-margin-top: 125px; }
.course-visual { min-width: 0; margin: 0; border-radius: 6px; background: #edf4ff; }
.visual-label { padding: 42px 42px 0; }
.visual-label > span { display: block; color: #6881a0; font-size: .875rem; }
.visual-label > strong { display: block; font-size: 1.625rem; font-weight: 480; margin-top: 13px; letter-spacing: -.04em; }
.worksheet-visual { padding-bottom: 32px; }
.worksheet-paper { display: block; width: min(440px,calc(100% - 100px)); margin: 45px auto 38px; border: 1px solid #d6e1f0; background: #fff; box-shadow: 0 22px 42px #2445751a; }
.worksheet-paper img { display: block; width: 100%; max-width: 100%; height: auto; }
.worksheet-paper:hover { border-color: #518fe2; }
.course-visual figcaption { padding-inline: 42px; color: #637e9d; font-size: .8125rem; line-height: 1.7; }
.worksheet-visual figcaption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px 20px; }
.worksheet-visual figcaption a { color: #2169c9; }
.worksheet-visual figcaption a:hover { text-decoration: underline; text-underline-offset: 5px; }
.publishing-visual { background: #edf4ff; padding-bottom: 35px; }
.publishing-visual > img { display: block; width: 100%; height: auto; margin-block: 32px; }
.course-copy { min-width: 0; }
.concentro-home .course-kicker { color: #6883a5; font-size: .9375rem; letter-spacing: 0; font-weight: 450; }
.course-copy > h3 { margin-top: 24px; font-size: clamp(2.4rem,3.55vw,3.5rem); line-height: 1.25; font-weight: 480; letter-spacing: -.05em; }
.course-description { margin: 30px 0 38px; font-size: 1.125rem; line-height: 1.9; color: var(--muted); }
.concentro-home .lessons { border-top: 1px solid var(--line); min-width: 0; }
.concentro-home details { border-color: var(--line); scroll-margin-top: calc(var(--site-nav-height,88px) + 24px); }
.concentro-home .lessons summary { min-height: 86px; padding: 24px 6px 24px 0; font-size: 1.0625rem; font-weight: 450; gap: 22px; line-height: 1.65; }
.concentro-home .lessons summary > span:nth-child(2) { min-width: 0; }
.concentro-home .lesson-number { flex-basis: 26px; color: #8498b2; font-size: .875rem; }
.concentro-home .detail-toggle { color: #748dab; font-size: 1.5rem; }
.concentro-home summary:hover,.concentro-home details[open] summary { color: #1764c5; }
.concentro-home .lesson-content { padding: 0 8px 30px 48px; color: var(--muted); font-size: 1rem; line-height: 1.9; overflow-wrap: anywhere; }
.concentro-home .lesson-result { font-size: .9375rem; color: #416998; margin-top: 20px; }
.course-copy > .text-link { margin-top: 30px; }
.between-classes { display: grid; grid-template-columns: 1fr 1.2fr; gap: 80px; align-items: center; margin-block: 100px; padding: 64px 0; border-block: 1px solid #dce5f0; }
.between-classes span { font-size: .9375rem; color: #6682a6; }
.between-classes h3 { font-size: clamp(2rem,3.4vw,3rem); font-weight: 450; line-height: 1.3; margin-top: 20px; letter-spacing: -.04em; }
.between-classes p { font-size: 1.1875rem; color: var(--muted); line-height: 1.9; }
.between-classes strong { color: #214f84; font-weight: 500; }

.platform-section { background: #edf4ff; }
.platform-section .section-intro { margin-bottom: 75px; }
.canvas-preview { width: 100%; margin: 0; padding: 12px; border-radius: 8px; background: #f8fbff; border: 1px solid #dce7f4; box-shadow: 0 24px 70px #21477514; }
.canvas-preview > img { display: block; width: 100%; max-width: 100%; height: auto; border: 1px solid #dce4ef; border-radius: 3px; }
.canvas-preview figcaption { display: flex; justify-content: space-between; flex-wrap: wrap; align-items: center; gap: 14px 28px; padding: 23px 20px 10px; color: #647a95; font-size: .875rem; }
.canvas-preview figcaption .text-link { font-size: .875rem; padding-block: 5px; }
.concentro-home .outcome-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 64px; margin-top: 80px; }
.concentro-home .outcome-grid > div { padding: 30px 0 0; border-color: #c1d2e9; }
.concentro-home .outcome-grid > div > .outcome-number { position: static; display: block; font-size: 3.5rem; line-height: 1; font-weight: 430; color: #6c9bd6; margin-bottom: 28px; }
.concentro-home .outcome-grid h3 { margin: 0 0 22px; font-size: 1.375rem; font-weight: 480; }
.concentro-home .outcome-grid p { font-size: 1.0625rem; color: #617894; line-height: 1.9; }

.concentro-home .prepare { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1fr); gap: 120px; align-items: center; border: 0; }
.course-facts { min-width: 0; padding: 0 32px 0 0; }
.fact-item { padding: 32px 0; border-bottom: 1px solid var(--line); }
.fact-item:first-child { border-top: 1px solid var(--line); }
.fact-item > span { color: #6c85a4; font-size: .875rem; }
.fact-item > strong { display: block; font-size: 3.6rem; font-weight: 450; letter-spacing: -.04em; line-height: 1.2; margin-top: 15px; overflow-wrap: anywhere; }
.fact-item > strong > span { font-size: 1.125rem; font-weight: 400; margin-left: 12px; }
.fact-item > p { color: #6b819d; font-size: .9375rem; margin-top: 18px; }
.prepare-copy { min-width: 0; }
.concentro-home .preparation-list { margin-top: 45px; border-color: var(--line); }
.concentro-home .preparation-list summary { min-height: 85px; padding: 24px 5px 24px 0; font-size: 1.0625rem; font-weight: 450; }
.concentro-home .preparation-list .lesson-content { padding-left: 0; }
.concentro-home .closing { padding-block: 135px 150px; background: #f2f6fc; color: var(--ink); text-align: center; border: 0; }
.concentro-home .closing h2 { font-size: clamp(2.8rem,5.3vw,5rem); line-height: 1.2; }
.concentro-home .closing .page-width > p:not(.closing-credit) { margin-top: 36px; color: #617894; font-size: 1.1875rem; line-height: 1.9; }
.concentro-home .closing .button { margin: 0; background: #146fec; border-color: #146fec; color: #fff; }
.concentro-home .closing .button-outline { background: transparent; color: #37628f; border-color: #acbed4; }
.closing-credit { font-size: .9375rem; color: #758dab; margin-top: 56px; }

.concentro-home .site-footer { display: block; padding: 76px 0 36px; background: #f7f9fc; border: 0; }
.footer-inner { display: grid; grid-template-columns: 2fr 1fr 1fr .8fr; align-items: start; gap: 70px; }
.footer-identity > p { color: #69809d; font-size: .9375rem; line-height: 1.9; margin-top: 25px; }
.footer-column { display: flex; flex-direction: column; align-items: start; gap: 16px; }
.footer-column > h3 { color: #284966; font-size: .9375rem; font-weight: 500; margin-bottom: 12px; }
.footer-column > a,.footer-column > button { color: #637d9b; font-size: .9375rem; padding: 0; text-align: left; }
.footer-column > a:hover,.footer-column > button:hover { text-decoration: underline; text-underline-offset: 5px; }
.footer-bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 65px; padding-top: 30px; border-top: 1px solid var(--line); color: #7e91aa; font-size: .8125rem; }

/* Enrollment and conversation controls retain their established behavior. */
.concentro-home .chat-launcher { background: #fff; color: #224468; border: 1px solid #d6e1ef; border-radius: 6px; box-shadow: 0 5px 20px #183c6310; font-size: .875rem; }
.concentro-home dialog { --ink: #102e50; --accent: #176bcc; --accent-light: #e7effb; border-color: #d5e0ef; border-radius: 9px; }
.concentro-home dialog h2 { font-size: 1.9rem; font-weight: 500; }
.concentro-home dialog .button { min-height: 52px; font-size: .9375rem; padding: 12px 24px; }
.concentro-home .bank-notice { background: #eff4fc; }
.concentro-home :is(.dialog-description,.bank-notice,.checkbox-label) { font-size: .875rem; }
.concentro-home dialog :is(label,legend) { font-size: .875rem; }
.concentro-home .field-help { font-size: .75rem; }
.concentro-home .chat-header h2 { font-size: 1.125rem; }
.concentro-home .message-text { background: #f0f5fc; }
.concentro-home .outgoing .message-text { background: #e4edfb; }
.concentro-home .message-form textarea { background: #f2f5fa; }



@media (max-width: 1150px) {
  .concentro-home .page-width { width: calc(100% - 80px); }
  .nav-inner { grid-template-columns: auto 1fr auto; gap: 25px; }
  .concentro-home .site-header nav { gap: 25px; justify-content: center; }
  .nav-actions { gap: 20px; }
  .product-intro,.concentro-home .program-overview { gap: 55px; }
  .process-slide { gap: 38px; min-height: 500px; }
  .concentro-home .course-group { gap: 55px; }
  .concentro-home .prepare { gap: 65px; }
  .footer-inner { gap: 38px; }
}
@media (max-width: 900px) {
  .concentro-home .section { padding-block: 100px; }
  .nav-inner { grid-template-columns: auto auto; justify-content: space-between; min-height: 80px; }
  .concentro-home .site-header nav { display: none; }
  .product-intro { gap: 25px; grid-template-columns: 1fr; margin-bottom: 45px; }
  .concentro-home .program-overview { grid-template-columns: 1fr; gap: 48px; }
  .overview-copy > p br { display: none; }
  .program-grid > div { padding-block: 35px; }
  .program-grid dd { font-size: 4.7rem; }
  .process-slide { min-height: 0; grid-template-columns: 1fr; gap: 24px; }
  .process-copy > p:not(.process-label) { max-width: 600px; }
  .process-art { width: min(680px,100%); margin-inline: auto; }
  .teaching-notes { grid-template-columns: 1fr; gap: 36px; margin-top: 50px; }
  .concentro-home .course-group { grid-template-columns: 1fr; gap: 45px; }
  .course-visual { width: min(680px,100%); margin-inline: auto; }
  .advanced-group .course-visual { order: -1; }
  .course-copy > h3 { font-size: 3rem; }
  .between-classes { grid-template-columns: 1fr; gap: 28px; margin-block: 70px; padding-block: 50px; }
  .concentro-home .outcome-grid { grid-template-columns: 1fr; gap: 35px; }
  .concentro-home .prepare { grid-template-columns: minmax(0,1fr); gap: 65px; }
  .course-facts { padding: 0; }
  .footer-inner { grid-template-columns: 1.5fr 1fr 1fr; }
  .footer-column:last-child { grid-column: 2; }
}
@media (max-width: 640px) {
  .concentro-home .page-width { width: calc(100% - 40px); }
  .nav-inner { display: flex; flex-wrap: wrap; gap: 10px 14px; min-height: 76px; padding-block: 12px; }
  .nav-actions { margin-left: auto; }
  .brand-symbol { width: 30px; height: 30px; flex-basis: 30px; }
  .concentro-home .wordmark { gap: 8px; }
  .concentro-home .wordmark .brand-name { font-size: 1.55rem; }
  .nav-contact { display: none; }
  .concentro-home .button-small { min-height: 42px; padding: 10px 16px; font-size: .8125rem; }
  .concentro-home .section { padding-block: 85px; }
  .concentro-home h2 { font-size: clamp(2rem,9.5vw,3rem); line-height: 1.24; }
  .concentro-home .eyebrow { font-size: .8125rem; margin-bottom: 21px; }
  .section-intro { margin-bottom: 45px; }
  .section-intro > p:not(.eyebrow) { font-size: 1rem; margin-top: 25px; }
  .product-intro > p { font-size: 1rem; line-height: 1.9; }
  .product-intro > p br { display: none; }
  .product-window { padding: 5px; border-radius: 6px; }
  .preview-caption { padding: 14px 9px 18px; font-size: .75rem; gap: 10px 14px; }
  .product-window figcaption { font-size: .75rem; padding: 16px 10px 10px; }
  .concentro-home .program-overview { padding-top: 0; gap: 25px; }
  .overview-copy > p:not(.eyebrow) { font-size: 1rem; margin-top: 26px; }
  .program-grid > div { padding: 27px 0 29px 22px; }
  .program-grid > div:nth-child(odd) { padding-right: 17px; }
  .program-grid dt { font-size: .8125rem; }
  .program-grid dd { margin-top: 20px; font-size: 3.6rem; }
  .program-grid dd > span { font-size: .8125rem; margin-left: 7px; }
  .program-grid dd small { font-size: .8125rem; margin-top: 18px; line-height: 1.75; }
  .concentro-home .learning-process { padding-top: 10px; }
  .process-deck { gap: 65px; }
  .process-slide { padding: 32px 0 0; gap: 22px; }
  .process-label { font-size: .8125rem; margin-bottom: 22px; }
  .process-copy h3 { font-size: 2.1rem; line-height: 1.25; }
  .process-copy > p:not(.process-label) { font-size: 1rem; margin-top: 25px; }
  .process-copy .text-link { font-size: .9375rem; margin-top: 22px; }
  .teaching-notes { gap: 30px; }
  .teaching-notes > div { padding-top: 25px; }
  .teaching-notes h3 { font-size: 1.25rem; margin-bottom: 14px; }
  .teaching-notes p { font-size: 1rem; }
  .concentro-home .curriculum-section { padding-top: 15px; }
  .concentro-home .course-group { gap: 35px; }
  .visual-label { padding: 29px 26px 0; }
  .visual-label > span { font-size: .8125rem; }
  .visual-label > strong { font-size: 1.4rem; margin-top: 9px; }
  .worksheet-paper { width: calc(100% - 54px); margin-block: 30px; }
  .course-visual figcaption { padding-inline: 26px; font-size: .75rem; }
  .publishing-visual > img { margin-block: 20px; }
  .course-copy > h3 { font-size: 2.2rem; margin-top: 21px; }
  .concentro-home .course-kicker { font-size: .8125rem; }
  .course-description { font-size: 1rem; margin-block: 25px 30px; }
  .concentro-home .lessons summary { min-height: 88px; font-size: 1rem; padding-block: 23px; gap: 16px; }
  .concentro-home .lesson-number { font-size: .8125rem; flex-basis: 21px; }
  .concentro-home .lesson-content { font-size: 1rem; padding-left: 37px; }
  .concentro-home .lesson-result { font-size: .875rem; }
  .between-classes { margin-block: 60px; padding-block: 38px; gap: 25px; }
  .between-classes h3 { font-size: 2rem; }
  .between-classes h3 br { display: none; }
  .between-classes p { font-size: 1rem; }
  .canvas-preview { padding: 5px; }
  .canvas-preview figcaption { padding: 15px 10px 9px; font-size: .75rem; }
  .canvas-preview figcaption .text-link { font-size: .8125rem; }
  .concentro-home .outcome-grid { margin-top: 48px; gap: 30px; }
  .concentro-home .outcome-grid h3 { font-size: 1.25rem; margin-bottom: 15px; }
  .concentro-home .outcome-grid p { font-size: 1rem; }
  .concentro-home .prepare { gap: 60px; }
  .fact-item { padding-block: 29px; }
  .fact-item > strong { font-size: 3rem; }
  .fact-item > p { font-size: .875rem; }
  .concentro-home .preparation-list summary { font-size: 1rem; }
  .concentro-home .closing { padding-block: 90px 95px; }
  .concentro-home .closing h2 { font-size: 2.5rem; }
  .concentro-home .closing .page-width > p:not(.closing-credit) { font-size: 1rem; }
  .closing-credit { margin-top: 40px; font-size: .8125rem; }
  .concentro-home .site-footer { padding-top: 48px; padding-bottom: 90px; }
  .footer-inner { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 36px; }
  .footer-identity { grid-column: 1 / -1; }
  .footer-column:last-child { grid-column: auto; }
  .footer-identity > p,.footer-column > h3,.footer-column > a,.footer-column > button { font-size: .875rem; }
  .footer-bottom { margin-top: 40px; font-size: .75rem; }
  .concentro-home .chat-launcher { right: 16px; bottom: 16px; min-height: 44px; font-size: .8125rem; }
  .concentro-home dialog h2 { font-size: 1.5rem; }
  .concentro-home .chat-header h2 { font-size: 1.125rem; }
}
@media (prefers-reduced-motion: reduce) {
  .concentro-home *,.concentro-home *::before,.concentro-home *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .product-window { transform: none !important; }
  .concentro-home .button:active { transform: none; }
}
@media (prefers-contrast: more) {
  .concentro-home { --muted: #344e6f; --line: #91a4c0; }
}
@media (prefers-reduced-transparency: reduce) {
  .concentro-home .site-header,.concentro-home .site-header.is-scrolled { background: #fff; backdrop-filter: none; }
}

/* One art-directed opening scene; all teaching content continues on white. */
.concentro-home .site-header { background: #03152d26; backdrop-filter: blur(18px) saturate(130%); border-bottom-color: #c5e3ff12; }
.concentro-home .site-header:not(.is-scrolled) :is(.brand-name,.nav-link,.nav-contact) { color: #fff; }
.site-header:not(.is-scrolled) .brand-symbol { color: #367fee; }
.concentro-home .site-header:not(.is-scrolled) .button-small { background: #fff; border-color: #fff; color: #143458; }
.concentro-home .site-header.is-scrolled { background: #ffffffdf; backdrop-filter: blur(22px) saturate(150%); }
.concentro-home .hero { position: relative; display: block; margin-top: calc(-1 * var(--site-nav-height,88px)); min-height: 0; padding: 0; background: #fff; }
.hero-stage { position: relative; isolation: isolate; display: grid; justify-items: center; align-content: start; min-height: calc(100svh - 90px); padding: calc(var(--site-nav-height,88px) + 56px) 0 250px; }
.hero-art { position: absolute; inset: 0; z-index: -1; overflow: hidden; isolation: isolate; background: #041b3e; pointer-events: none; }
.hero-art::after { content: ''; position: absolute; z-index: 4; inset: 68% 0 0; background: linear-gradient(transparent,#eaf5ffb8 48%,#fff 97%); }
.hero-art-image { position: absolute; inset: -28px; display: block; width: calc(100% + 56px); height: calc(100% + 56px); object-fit: fill; filter: blur(24px) saturate(125%); opacity: .38; }
.spatial-back,.spatial-front { position: absolute; inset: 0; }
.spatial-haze { position: absolute; border-radius: 50%; filter: blur(52px); }
.spatial-haze-blue { width: 76%; height: 57%; left: -25%; top: 37%; background: radial-gradient(ellipse,#1494ff 0%,#0768f1ba 34%,#0655df00 72%); }
.spatial-haze-ice { width: 75%; height: 85%; right: -37%; top: 2%; background: radial-gradient(ellipse,#adf5ff 0%,#3fbbffca 32%,#006af700 70%); }
.spatial-ribbon { position: absolute; border-radius: 50%; }
.spatial-ribbon-back { width: 123%; height: 71%; left: 12%; top: 29%; transform: rotate(-30deg); background: linear-gradient(160deg,#146bfe00 20%,#146bfe80 35%,#73ceffed 57%,#c8eeffbd 69%,#4396e23d 86%); box-shadow: inset 0 24px 62px #bef4ff50,0 -14px 85px #006aff50; filter: blur(26px); }
.spatial-front { z-index: 2; }
.spatial-ribbon-front { width: 132%; height: 68%; left: -39%; top: 66%; transform: rotate(16deg); background: linear-gradient(178deg,#e2f9ff66 0%,#81caff40 17%,#0973e64d 35%,#cae9ff26 65%,#ffffff70 100%); border-top: 1px solid #dcf7ffb8; box-shadow: inset 0 3px 8px #e0f8ff5c,inset 0 30px 70px #b1e0ff30,0 -13px 52px #105bba35; backdrop-filter: blur(20px) saturate(125%); }
.hero-copy { position: relative; min-width: 0; padding: 0; text-align: center; }
.hero-eyebrow { color: #d1e3fc; font-size: .9375rem; font-weight: 400; letter-spacing: .025em; margin-bottom: 26px; }
.concentro-home .hero h1 { max-width: none; margin: 0; color: #fff; font-size: clamp(5rem,7.5vw,7.25rem); font-weight: 460; line-height: 1.09; letter-spacing: -.06em; }
.concentro-home .hero h1 span { color: #fff; }
.concentro-home .hero-description { max-width: none; margin: 30px 0 0; color: #e0ebfb; font-size: 1.1875rem; line-height: 1.75; letter-spacing: -.015em; }
.concentro-home .hero-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 30px; margin-top: 34px; }
.concentro-home .hero .button { min-height: 56px; background: #fff; color: #112e50; border-color: #fff; box-shadow: 0 4px 20px #00132d15; }
.concentro-home .hero .button:hover { background: #e7f1ff; border-color: #e7f1ff; box-shadow: 0 6px 28px #1c76dc2b; }
.hero-course-link { display: inline-flex; align-items: center; gap: 18px; min-height: 56px; padding: 14px 24px; border: 1px solid #d4eaff5c; border-radius: 999px; background: #123b69c9; backdrop-filter: blur(18px) saturate(140%); box-shadow: inset 0 1px 1px #ffffff26,0 8px 24px #00102e18; font-size: 1rem; color: #fff; }
.hero-course-link:hover { text-decoration: underline; text-underline-offset: 7px; }
.hero-foot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 18px 30px; min-height: 90px; padding: 20px 150px 20px 0; margin-top: 0; border-bottom: 1px solid #e4eaf1; color: #62768f; font-size: .875rem; }
.hero-route { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; color: #405d82; }
.hero-route i { width: 32px; height: 1px; background: #c3d2e4; }
.concentro-home .product-stage { padding-top: 110px; }
.product-stage { position: relative; isolation: isolate; }
.hero-product { position: relative; }
.hero-product::before { content: ''; position: absolute; z-index: -1; inset: -6% 0 -12%; background: radial-gradient(ellipse at 18% 50%,#c0eaff80,transparent 52%),radial-gradient(ellipse at 78% 68%,#7cb7ff40,transparent 53%); filter: blur(30px); pointer-events: none; }
.product-window { background: #f5faffd9; border-color: #e3ecf9; box-shadow: 0 2px 6px #143e6b08,0 30px 70px #305a8a24,0 70px 130px #8ac6ff22; }
.platform-section { background: radial-gradient(ellipse at 85% 100%,#cbeaff90,transparent 55%),linear-gradient(125deg,#f5f8ff,#edf5ff); }
.concentro-home .closing { position: relative; isolation: isolate; overflow: hidden; background: #f5f9ff; }
.concentro-home .closing::before { content: ''; position: absolute; z-index: -1; inset: 0; background: radial-gradient(ellipse at -8% 80%,#64b5ff90 0%,transparent 47%),radial-gradient(ellipse at 107% 22%,#9ee3ffb0 0%,transparent 49%); filter: blur(35px); pointer-events: none; }
@media (min-width: 901px) and (max-height: 850px) {
  .hero-stage { padding-top: calc(var(--site-nav-height,88px) + 25px); padding-bottom: 185px; }
  .concentro-home .hero h1 { font-size: clamp(4.5rem,6.6vw,6.25rem); }
  .hero-eyebrow { margin-bottom: 22px; }
  .concentro-home .hero-description { margin-top: 24px; }
  .concentro-home .hero-actions { margin-top: 27px; }
}
@media (max-width: 1150px) {
  .hero-foot > p { display: none; }
  .hero-route { gap: 20px; }
}
@media (max-width: 900px) {
  .hero-stage { padding-top: calc(var(--site-nav-height,80px) + 64px); padding-bottom: 220px; }
  .hero-art-image { object-fit: cover; object-position: 52% 50%; }
  .hero-art::after { top: 70%; }
  .spatial-haze { filter: blur(36px); }
  .spatial-ribbon-back { width: 150%; left: 4%; top: 37%; }
  .spatial-ribbon-front { width: 180%; left: -65%; top: 69%; }
  .concentro-home .hero h1 { font-size: clamp(4.5rem,11vw,6.6rem); }
  .concentro-home .product-stage { padding-top: 90px; }
}
@media (max-width: 640px) {
  .hero-stage { min-height: calc(100svh - 78px); padding-top: calc(var(--site-nav-height,76px) + 57px); padding-bottom: 190px; }
  .hero-art-image { object-position: 51% 50%; }
  .spatial-haze-blue { width: 110%; left: -65%; top: 48%; }
  .spatial-haze-ice { width: 125%; right: -83%; top: 12%; }
  .spatial-ribbon-back { width: 195%; height: 52%; left: -4%; top: 47%; filter: blur(20px); }
  .spatial-ribbon-front { width: 225%; height: 44%; left: -105%; top: 72%; }
  .hero-eyebrow { max-width: 21em; margin: 0 auto 26px; font-size: .75rem; line-height: 1.8; letter-spacing: 0; }
  .concentro-home .hero h1 { font-size: clamp(3.4rem,16vw,5.7rem); line-height: 1.12; letter-spacing: -.065em; }
  .concentro-home .hero-description { margin-top: 28px; font-size: 1rem; line-height: 1.85; }
  .concentro-home .hero-actions { flex-direction: column; gap: 14px; margin-top: 30px; }
  .concentro-home .hero .button { min-height: 54px; padding: 14px 23px; font-size: .9375rem; }
  .hero-course-link { min-height: 44px; font-size: .875rem; gap: 16px; }
  .hero-foot { min-height: 78px; gap: 8px 20px; padding: 16px 130px 16px 0; }
  .hero-route { gap: 11px; font-size: .75rem; }
  .hero-route i { width: 12px; }
  .concentro-home .product-stage { padding-top: 70px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-light,.spatial-back,.spatial-front { transform: none !important; }
}
@media (prefers-contrast: more) {
  .hero-eyebrow,.concentro-home .hero-description { color: #fff; }
  .hero-foot { color: #344e6f; }
}
@media (prefers-reduced-transparency: reduce) {
  .concentro-home .site-header:not(.is-scrolled) { background: #041630; backdrop-filter: none; }
  .concentro-home .site-header.is-scrolled { background: #fff; backdrop-filter: none; }
  .hero-course-link { background: #123b69; backdrop-filter: none; }
  .spatial-ribbon-front { backdrop-filter: none; background: linear-gradient(178deg,#71b9ed,#a4d6f8); }
}
