:root {
  --navy: #071624;
  --navy-2: #0b2031;
  --paper: #f5f3ec;
  --white: #fffdf7;
  --ink: #12212c;
  --muted: #68727a;
  --line: rgba(18, 33, 44, .15);
  --cyan: #56d9f4;
  --cyan-dark: #087c94;
  --coral: #ff765f;
  --lime: #bfdb60;
  --amber: #ffbd59;
  --violet: #9d8cff;
  --shell: min(1220px, calc(100vw - 80px));
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Inter, "Helvetica Neue", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body.locked { overflow: hidden; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.shell { width: var(--shell); margin-inline: auto; }
.section-pad { padding-block: 124px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 300; left: 12px; top: 12px; padding: 12px 18px; background: var(--white); transform: translateY(-150%); transition: transform .2s; }
.skip-link:focus { transform: none; }

.site-header { position: fixed; z-index: 100; inset: 0 0 auto; height: 82px; color: var(--white); border-bottom: 1px solid rgba(255,255,255,.12); transition: height .3s, background .3s, color .3s; }
.site-header.scrolled { height: 70px; color: var(--ink); background: rgba(245,243,236,.91); backdrop-filter: blur(18px); border-color: var(--line); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 12px; position: relative; z-index: 3; }
.brand-mark { width: 38px; height: 38px; border: 1px solid currentColor; border-radius: 50%; position: relative; display: grid; place-items: center; }
.brand-mark::before, .brand-mark::after { content: ""; position: absolute; width: 5px; height: 5px; border-radius: 50%; }
.brand-mark::before { background: var(--coral); right: -2px; top: 6px; }
.brand-mark::after { background: var(--lime); left: -2px; bottom: 7px; }
.brand-mark i { width: 15px; height: 15px; border: 2px solid var(--cyan); transform: rotate(45deg); }
.brand-mark b { position: absolute; width: 3px; height: 3px; background: currentColor; border-radius: 50%; }
.brand-copy { display: grid; gap: 3px; line-height: 1; }
.brand-copy strong { font-size: 16px; letter-spacing: .18em; }
.brand-copy small { font-size: 7px; letter-spacing: .2em; opacity: .65; }
.site-nav { display: flex; align-items: center; gap: 30px; font-size: 13px; }
.site-nav > a { position: relative; }
.site-nav > a:not(.nav-cta):not(.language-link)::after { content: ""; position: absolute; bottom: -7px; left: 0; right: 100%; height: 1px; background: currentColor; transition: right .25s; }
.site-nav > a:hover::after { right: 0; }
.language-link { padding: 7px 9px; border: 1px solid currentColor; font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.nav-cta { display: inline-flex; gap: 26px; align-items: center; padding: 12px 17px; background: var(--cyan); color: var(--navy); }
.nav-cta:hover { background: var(--white); }
.scrolled .nav-cta:hover { background: var(--navy); color: var(--white); }
.menu-toggle { display: none; }
.scroll-progress { position: absolute; left: 0; bottom: -1px; width: 0; height: 2px; background: var(--coral); }

.hero { position: relative; min-height: 790px; height: 100svh; max-height: 1040px; overflow: hidden; background: var(--navy); color: var(--white); }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,17,29,.98) 0%, rgba(5,17,29,.88) 32%, rgba(5,17,29,.2) 66%, rgba(5,17,29,.13)), linear-gradient(0deg, rgba(5,17,29,.72), transparent 47%); }
.hero-grid, .method-grid { position: absolute; inset: 0; opacity: .08; background-image: linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px); background-size: 76px 76px; mask-image: linear-gradient(90deg,#000,transparent 60%); }
.hero-content { position: relative; z-index: 2; padding-top: clamp(160px, 21vh, 220px); }
.eyebrow { margin: 0 0 30px; display: flex; align-items: center; gap: 12px; text-transform: uppercase; letter-spacing: .18em; font-size: 10px; font-weight: 700; }
.eyebrow > span { width: 28px; height: 1px; background: var(--cyan); position: relative; }
.eyebrow > span::after { content: ""; position: absolute; right: 0; top: -2px; width: 5px; height: 5px; border-radius: 50%; background: var(--cyan); }
.eyebrow.dark { color: var(--muted); }
.hero h1 { max-width: 930px; margin: 0; font-size: clamp(58px, 6.5vw, 100px); line-height: .95; letter-spacing: -.064em; font-weight: 500; }
.hero h1 em, .display-title em, .method h2 em, .team h2 em, .contact h2 em { font-family: Georgia, "Times New Roman", serif; color: var(--cyan); font-weight: 400; }
.hero-lead { max-width: 620px; margin: 34px 0 0; font-size: 18px; line-height: 1.65; color: rgba(255,255,255,.7); }
.hero-actions { display: flex; gap: 12px; margin-top: 38px; }
.button { min-height: 54px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: space-between; gap: 30px; font-size: 13px; transition: transform .25s, color .25s, background .25s; }
.button:hover { transform: translateY(-3px); }
.button-primary { background: var(--cyan); color: var(--navy); }
.button-ghost { border: 1px solid rgba(255,255,255,.4); }
.button-ghost:hover { color: var(--navy); background: var(--white); }
.hero-foot { position: absolute; z-index: 2; left: 50%; bottom: 28px; transform: translateX(-50%); padding-top: 20px; border-top: 1px solid rgba(255,255,255,.18); display: flex; align-items: center; gap: 42px; }
.hero-foot > div { display: flex; align-items: center; gap: 11px; }
.hero-foot b { color: var(--cyan); font-size: 27px; font-weight: 500; }
.hero-foot span { font-size: 9px; line-height: 1.45; text-transform: uppercase; letter-spacing: .12em; color: rgba(255,255,255,.55); }
.hero-foot > p { margin-left: auto; font-size: 9px; letter-spacing: .13em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.hero-foot > p i { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 12px var(--lime); }

.intro { background: var(--navy); color: var(--white); }
.intro-layout { display: grid; grid-template-columns: 235px 1fr; gap: 50px; }
.section-index { color: rgba(255,255,255,.4); font-size: 9px; letter-spacing: .2em; }
.display-title { margin: -12px 0 0; font-size: clamp(50px, 5.5vw, 84px); line-height: 1.02; letter-spacing: -.058em; font-weight: 400; }
.intro-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 55px; margin-top: 64px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.15); }
.intro-copy p { margin: 0; line-height: 1.75; color: rgba(255,255,255,.58); }

.section-head { display: flex; justify-content: space-between; align-items: end; gap: 70px; margin-bottom: 45px; }
.section-head h2, .model-heading h2, .faq-heading h2 { margin: 0; font-size: clamp(44px,5vw,70px); line-height: 1.02; letter-spacing: -.055em; font-weight: 500; }
.section-head > p { width: 390px; margin: 0 0 4px; color: var(--muted); line-height: 1.7; }
.age-filter { display: flex; flex-wrap: wrap; gap: 8px; padding-block: 23px; margin-bottom: 30px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.age-filter button { padding: 10px 14px; border: 1px solid var(--line); background: transparent; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; cursor: pointer; }
.age-filter button.active, .age-filter button:hover { color: var(--white); background: var(--navy); }
.course-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.course-card { --accent: var(--cyan); min-height: 430px; padding: 28px; position: relative; overflow: hidden; border: 1px solid var(--line); background: var(--white); display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s, opacity .3s; }
.course-card::after { content: ""; position: absolute; right: -75px; top: -80px; width: 200px; height: 200px; border-radius: 50%; background: color-mix(in srgb, var(--accent) 18%, transparent); }
.course-card:hover { transform: translateY(-5px); box-shadow: 0 18px 45px rgba(18,33,44,.09); }
.course-card.hidden { display: none; }
.course-card.coral { --accent: var(--coral); }.course-card.cyan { --accent: var(--cyan); }.course-card.lime { --accent: var(--lime); }.course-card.violet { --accent: var(--violet); }.course-card.amber { --accent: var(--amber); }.course-card.blue { --accent: #7ba9ff; }
.course-top { display: flex; justify-content: space-between; align-items: center; position: relative; z-index: 2; }
.course-code { font-size: 10px; color: var(--muted); }
.age-chip { padding: 8px 10px; border: 1px solid color-mix(in srgb,var(--accent) 65%,transparent); background: color-mix(in srgb,var(--accent) 12%,transparent); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.course-symbol { width: 82px; height: 82px; margin-top: 27px; position: relative; display: grid; place-items: center; border: 1px solid var(--line); color: var(--accent); }
.course-category { margin: 24px 0 10px; color: var(--cyan-dark); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.course-card h3 { margin: 0; font-size: 31px; line-height: 1.02; letter-spacing: -.04em; font-weight: 500; }
.course-summary { max-width: 440px; margin: 16px 0 24px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.course-meta { margin-top: auto; display: flex; gap: 8px; }
.course-meta span { padding: 7px 9px; background: var(--paper); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.course-link { align-self: flex-start; margin-top: 22px; padding: 0 0 7px; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-transform: uppercase; letter-spacing: .11em; font-size: 9px; cursor: pointer; }
.course-link span { margin-left: 20px; color: var(--cyan-dark); }
.course-link:hover { color: var(--cyan-dark); }
.schedule-note { display: grid; grid-template-columns: 160px 1fr; gap: 30px; max-width: 850px; margin: 36px 0 0 auto; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); line-height: 1.6; font-size: 13px; }
.schedule-note span { color: var(--ink); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }

/* Course pictograms */
.blocks i { position: absolute; height: 13px; background: currentColor; left: 18px; border-radius: 2px; }.blocks i:nth-child(1){width:36px;top:19px}.blocks i:nth-child(2){width:49px;top:36px;opacity:.7}.blocks i:nth-child(3){width:27px;top:53px;opacity:.45}
.robot i { width: 42px; height: 29px; border: 2px solid currentColor; border-radius: 6px; }.robot i::before,.robot i::after{content:"";position:absolute;bottom:14px;width:13px;height:13px;border:2px solid currentColor;border-radius:50%;background:var(--white)}.robot i::before{left:15px}.robot i::after{right:15px}.robot b,.robot em{position:absolute;top:31px;width:6px;height:6px;background:currentColor;border-radius:50%}.robot b{left:31px}.robot em{right:31px}
.circuit i{width:42px;height:42px;border:1px solid currentColor}.circuit b,.circuit em{position:absolute;width:9px;height:9px;border-radius:50%;background:currentColor}.circuit b{top:14px;left:14px}.circuit em{right:12px;bottom:12px}.circuit::after{content:"";position:absolute;width:50px;height:1px;background:currentColor;transform:rotate(45deg)}
.logic i,.logic b,.logic em{position:absolute;width:20px;height:20px;border:1px solid currentColor;border-radius:50%}.logic i{top:12px}.logic b{left:13px;bottom:12px}.logic em{right:13px;bottom:12px}.logic::after,.logic::before{content:"";position:absolute;width:31px;height:1px;background:currentColor;top:43px}.logic::after{left:18px;transform:rotate(-45deg)}.logic::before{right:18px;transform:rotate(45deg)}
.code i,.java i{font:500 25px/1 ui-monospace,SFMono-Regular,monospace;font-style:normal}.phone i,.mobile-test i{width:33px;height:55px;border:2px solid currentColor;border-radius:6px}.phone b{position:absolute;width:16px;height:16px;border:1px solid currentColor;background:color-mix(in srgb,var(--accent) 22%,transparent)}
.browser i{width:56px;height:43px;border:2px solid currentColor}.browser i::before{content:"";position:absolute;left:13px;right:13px;top:27px;height:1px;background:currentColor}.browser b,.browser em{position:absolute;top:19px;width:4px;height:4px;border-radius:50%;background:currentColor}.browser b{left:20px}.browser em{left:28px}
.mobile-test b{position:absolute;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--navy);right:13px;bottom:11px}
.plc i{width:49px;height:48px;border:2px solid currentColor}.plc i::after{content:"";position:absolute;inset:25px 24px;border:1px solid currentColor}.plc b,.plc em{position:absolute;width:5px;height:5px;border-radius:50%;background:currentColor;right:12px}.plc b{top:24px}.plc em{top:36px}

.method { position: relative; overflow: hidden; background: var(--navy); color: var(--white); }
.method-grid { opacity: .05; mask-image: linear-gradient(90deg,transparent,#000); }
.method-layout { position: relative; z-index: 2; display: grid; grid-template-columns: .9fr 1.1fr; gap: 115px; }
.method-heading { position: sticky; top: 120px; align-self: start; }
.method h2 { margin: 0; font-size: clamp(48px,5vw,72px); line-height: 1; letter-spacing: -.055em; font-weight: 500; }
.method-heading > p:last-child { max-width: 410px; margin: 30px 0 0; color: rgba(255,255,255,.55); line-height: 1.7; }
.method-steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.16); }
.method-steps li { min-height: 170px; padding: 32px 0; display: grid; grid-template-columns: 60px 1fr; gap: 20px; border-bottom: 1px solid rgba(255,255,255,.16); }
.method-steps li > span { color: var(--cyan); font-size: 10px; }
.method-steps h3 { margin: -5px 0 13px; font-size: 27px; font-weight: 400; letter-spacing: -.03em; }
.method-steps p { max-width: 440px; margin: 0; color: rgba(255,255,255,.55); line-height: 1.65; }

.project-path { background: var(--white); }
.project-showcase { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.showcase-card { min-height: 470px; position: relative; overflow: hidden; padding: 30px; display: flex; flex-direction: column; }
.showcase-card > span { font-size: 8px; font-weight: 700; letter-spacing: .18em; opacity: .55; }
.showcase-card h3 { margin: 18px 0 0; font-size: 31px; line-height: 1.04; font-weight: 500; letter-spacing: -.04em; }
.showcase-card > p { margin: auto 0 0; font-size: 13px; line-height: 1.55; opacity: .65; }
.showcase-card.dark { color: var(--white); background: var(--navy); }.showcase-card.light{background:var(--paper);border:1px solid var(--line)}.showcase-card.blue-card{background:var(--cyan)}
.mini-robot { position: absolute; left: 50%; top: 54%; width: 120px; height: 70px; transform: translate(-50%,-50%); border: 2px solid var(--cyan); border-radius: 10px; }
.mini-robot::before,.mini-robot::after{content:"";position:absolute;bottom:-19px;width:37px;height:37px;border:6px solid #243443;border-radius:50%;background:var(--coral)}.mini-robot::before{left:5px}.mini-robot::after{right:5px}.mini-robot i{position:absolute;left:43px;top:-38px;width:31px;height:38px;border:2px solid var(--cyan)}.mini-robot b,.mini-robot em{position:absolute;top:24px;width:8px;height:8px;background:var(--amber);border-radius:50%}.mini-robot b{left:34px}.mini-robot em{right:34px}
.mini-phone { position:absolute;left:50%;top:53%;width:115px;height:190px;transform:translate(-50%,-50%);border:3px solid var(--ink);border-radius:20px;box-shadow:14px 14px 0 var(--coral)}.mini-phone i{position:absolute;left:15px;right:15px;top:36px;height:53px;background:var(--cyan)}.mini-phone b,.mini-phone em{position:absolute;bottom:30px;width:32px;height:32px}.mini-phone b{left:15px;background:var(--lime)}.mini-phone em{right:15px;background:var(--amber)}
.mini-line { position:absolute;left:12%;right:12%;top:53%;height:70px;border:2px solid var(--navy);display:flex;align-items:center;justify-content:space-around }.mini-line i{width:35px;height:35px;border:2px solid var(--navy);border-radius:50%;background:rgba(255,255,255,.25)}.mini-line b{position:absolute;left:43%;top:-58px;width:70px;height:58px;background:var(--coral);border:2px solid var(--navy)}

.lesson-model { background: var(--paper); }
.model-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 55px; }
.model-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.model-card { min-height: 400px; padding: 30px; border: 1px solid var(--line); background: var(--white); }
.model-card.accent { background: var(--cyan); }
.model-no { color: var(--cyan-dark); font-size: 10px; }
.model-card h3 { margin: 85px 0 18px; font-size: 27px; font-weight: 500; letter-spacing: -.035em; }
.model-card > p { min-height: 85px; color: var(--muted); line-height: 1.65; font-size: 14px; }
.model-card.accent > p { color: rgba(7,22,36,.65); }
.model-card ul { list-style: none; margin: 28px 0 0; padding: 20px 0 0; border-top: 1px solid var(--line); display: grid; gap: 10px; font-size: 12px; }
.model-card li::before { content: "↳"; margin-right: 8px; color: var(--cyan-dark); }

.team { background: #0a1b29; color: var(--white); }
.team-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: end; }
.team h2 { margin: 0; font-size: clamp(45px,5vw,70px); line-height: 1.02; letter-spacing: -.055em; font-weight: 500; }
.team-heading > p:last-child { margin: 28px 0 0; color: rgba(255,255,255,.55); }
.team-cards { display: grid; gap: 14px; }
.person-card { min-height: 160px; padding: 24px; display: flex; align-items: center; gap: 24px; border: 1px solid rgba(255,255,255,.14); }
.person-initial { width: 82px; height: 104px; flex: 0 0 auto; display: grid; place-items: center; background: var(--cyan); color: var(--navy); font: italic 30px Georgia,serif; }
.person-initial.warm { background: var(--coral); }
.person-card span { color: var(--cyan); font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.person-card h3 { margin: 12px 0 6px; font-size: 25px; font-weight: 500; }
.person-card p { margin: 0; color: rgba(255,255,255,.5); font-size: 13px; }

.faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 110px; align-items: start; }
.faq-heading { position: sticky; top: 120px; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 25px; cursor: pointer; list-style: none; font-size: 17px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { color: var(--cyan-dark); font-size: 25px; font-weight: 300; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { margin: -5px 50px 28px 0; color: var(--muted); line-height: 1.7; font-size: 14px; }

.contact { position: relative; overflow: hidden; background: var(--navy); color: var(--white); }
.contact-orbit { position: absolute; width: 700px; height: 700px; left: -300px; top: 45%; transform: translateY(-50%); border: 1px solid rgba(86,217,244,.15); border-radius: 50%; }
.contact-orbit i { position:absolute;inset:90px;border:1px solid rgba(86,217,244,.11);border-radius:50%}.contact-orbit i:nth-child(2){inset:190px}.contact-orbit i:nth-child(3){width:12px;height:12px;inset:25% auto auto 82%;background:var(--coral);border:0;box-shadow:0 0 18px var(--coral)}
.contact-layout { position: relative; z-index: 2; display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; align-items: start; }
.contact-copy { position: sticky; top: 120px; }
.contact h2 { margin: 0; font-size: clamp(50px,5.7vw,82px); line-height: .98; letter-spacing: -.06em; font-weight: 500; }
.contact-copy > p:not(.eyebrow) { max-width: 480px; margin: 30px 0 0; color: rgba(255,255,255,.58); line-height: 1.7; }
.direct-contact { display: grid; margin-top: 32px; border-top: 1px solid rgba(255,255,255,.16); }
.direct-contact a { position: relative; display: grid; gap: 6px; padding: 16px 38px 16px 0; border-bottom: 1px solid rgba(255,255,255,.16); transition: color .2s, padding-left .2s; }
.direct-contact a:hover { padding-left: 7px; color: var(--cyan); }
.direct-contact span { color: rgba(255,255,255,.45); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.direct-contact strong { overflow-wrap: anywhere; font-size: 15px; font-weight: 500; letter-spacing: .01em; }
.direct-contact i { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); color: var(--cyan); font-size: 18px; font-style: normal; }
.contact-trust { display: grid; gap: 12px; margin-top: 38px; font-size: 12px; color: rgba(255,255,255,.68); }
.contact-trust i { display: inline-grid; place-items:center; width:20px;height:20px;margin-right:9px;border-radius:50%;background:rgba(86,217,244,.12);color:var(--cyan);font-style:normal; }
.lead-form { padding: 35px; background: var(--white); color: var(--ink); display: grid; gap: 20px; }
.form-row { display: grid; grid-template-columns: 1fr 150px; gap: 14px; }
.lead-form > label, .form-row label { display: grid; gap: 8px; color: var(--muted); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; }
.lead-form input, .lead-form select, .lead-form textarea { width:100%;border:1px solid var(--line);border-radius:0;background:var(--paper);color:var(--ink);padding:15px 14px;outline:none;font-size:14px;text-transform:none;letter-spacing:0;transition:border .2s,box-shadow .2s; }
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{border-color:var(--cyan-dark);box-shadow:0 0 0 3px rgba(86,217,244,.15)}
.lead-form input.invalid,.lead-form select.invalid,.lead-form textarea.invalid{border-color:var(--coral)}
.lead-form textarea{resize:vertical;min-height:110px}.lead-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 19px) 21px,calc(100% - 14px) 21px;background-size:5px 5px;background-repeat:no-repeat}
.lead-form fieldset { margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;gap:8px }.lead-form legend{margin-bottom:8px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em}.radio input{position:absolute;opacity:0;pointer-events:none}.radio span{display:block;padding:11px 13px;border:1px solid var(--line);font-size:11px;cursor:pointer}.radio input:checked+span{background:var(--navy);color:var(--white);border-color:var(--navy)}
.trap { position:absolute!important;left:-9999px!important; }
.consent { grid-template-columns:20px 1fr!important;align-items:start!important;gap:10px!important;text-transform:none!important;letter-spacing:0!important;font-weight:400!important;line-height:1.5!important;font-size:11px!important }.consent input{width:17px;height:17px;margin:1px 0 0;padding:0;accent-color:var(--cyan-dark)}.consent button{padding:0;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--cyan-dark);font-size:inherit;cursor:pointer}
.submit-button { min-height:58px;border:0;background:var(--cyan);color:var(--navy);padding:0 20px;display:flex;align-items:center;justify-content:space-between;font-weight:700;cursor:pointer;transition:background .2s }.submit-button:hover{background:var(--lime)}.submit-button:disabled{opacity:.55;cursor:wait}.submit-button i{font-style:normal;font-size:20px}.form-status{min-height:18px;margin:0;font-size:12px;line-height:1.5}.form-status.error{color:#b63425}.form-status.success{color:#2f7554}

.site-footer { background: #06121d; color: rgba(255,255,255,.5); padding-block: 50px 28px; }
.footer-top { display: grid; grid-template-columns: 1fr 1fr auto; gap: 50px; align-items: center; padding-bottom: 38px; border-bottom: 1px solid rgba(255,255,255,.12); }
.footer-top .brand { color: var(--white); }.footer-top > p{font-size:12px;line-height:1.6}.footer-top>div{display:flex;gap:22px;font-size:11px}.footer-top button{border:0;padding:0;background:transparent;color:inherit;cursor:pointer}.footer-top a:hover,.footer-top button:hover{color:var(--cyan)}
.footer-bottom { display:flex;justify-content:space-between;gap:30px;padding-top:25px;font-size:9px;letter-spacing:.08em;text-transform:uppercase; }
.mobile-telegram { display:none; }

.course-dialog,.privacy-dialog { width:min(760px,calc(100vw - 32px));max-height:calc(100svh - 32px);padding:50px;border:0;background:var(--navy);color:var(--white);box-shadow:0 30px 100px rgba(0,0,0,.55); }
.course-dialog::backdrop,.privacy-dialog::backdrop{background:rgba(3,11,18,.78);backdrop-filter:blur(7px)}.dialog-close{position:absolute;right:18px;top:18px;width:40px;height:40px;border:1px solid rgba(255,255,255,.22);background:transparent;color:var(--white);font-size:24px;cursor:pointer}.dialog-code{font:italic 65px/1 Georgia;color:rgba(255,255,255,.16)}.dialog-kicker{margin:15px 0;color:var(--cyan);font-size:9px;letter-spacing:.16em;text-transform:uppercase}.course-dialog h2,.privacy-dialog h2{margin:0;font-size:40px;line-height:1.05;letter-spacing:-.045em;font-weight:500}.dialog-intro,.privacy-dialog>p:not(.dialog-kicker){color:rgba(255,255,255,.62);line-height:1.7}.dialog-facts{display:flex;flex-wrap:wrap;gap:7px;margin:25px 0}.dialog-facts span{padding:8px 10px;border:1px solid rgba(255,255,255,.17);font-size:9px;text-transform:uppercase;letter-spacing:.1em}.dialog-columns{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-top:25px;border-top:1px solid rgba(255,255,255,.15)}.dialog-columns h3{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)}.dialog-columns ul{padding-left:17px;color:rgba(255,255,255,.68);font-size:13px;line-height:1.8}.dialog-columns p{color:rgba(255,255,255,.68);font-size:13px;line-height:1.7}.dialog-cta{margin-top:30px;padding:17px 19px;display:flex;justify-content:space-between;background:var(--cyan);color:var(--navy);font-size:12px;font-weight:700}.privacy-dialog a{color:var(--cyan);text-decoration:underline}

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity: 1; transform: none; }

@media (max-width:1080px){
  :root{--shell:min(100% - 48px,960px)}
  .intro-layout{grid-template-columns:160px 1fr}.method-layout,.contact-layout{gap:65px}.team-layout{gap:55px}.faq-layout{gap:65px}
}

@media (max-width:780px){
  :root{--shell:calc(100% - 36px)}
  .section-pad{padding-block:86px}.site-header{height:68px}.site-header.scrolled{height:64px}
  .menu-toggle{display:grid;gap:6px;position:relative;z-index:4;padding:10px;border:0;background:transparent;color:inherit}.menu-toggle span:not(.sr-only){display:block;width:24px;height:1px;background:currentColor;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
  .site-nav{position:fixed;inset:0;padding:105px 22px 40px;display:flex;flex-direction:column;align-items:flex-start;gap:0;background:var(--navy);color:var(--white);transform:translateX(100%);transition:transform .35s}.site-nav.open{transform:none}.site-nav>a{width:100%;padding:17px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:24px}.site-nav .language-link{width:auto;margin-top:22px;padding:9px 12px;border:1px solid rgba(255,255,255,.4);font-size:12px}.site-nav .nav-cta{width:auto;margin-top:14px;padding:13px 17px;border:0;font-size:13px}
  .hero{min-height:780px;height:100svh}.hero-image{object-position:68% center;opacity:.78}.hero-overlay{background:linear-gradient(90deg,rgba(5,17,29,.98),rgba(5,17,29,.58)),linear-gradient(0deg,rgba(5,17,29,.9),transparent 58%)}.hero-content{padding-top:140px}.hero h1{font-size:clamp(43px,12.3vw,58px);line-height:.98}html[lang="en"] .hero h1 em{display:block}.hero-lead{font-size:15px;line-height:1.6}.hero-actions{flex-direction:column;align-items:flex-start}.hero-foot{bottom:21px;gap:24px}.hero-foot>div:nth-child(3),.hero-foot>p{display:none}
  .intro-layout{grid-template-columns:1fr;gap:30px}.display-title{font-size:44px}.intro-copy{grid-template-columns:1fr;gap:22px;margin-top:42px}
  .section-head{flex-direction:column;align-items:flex-start;gap:25px;margin-bottom:35px}.section-head h2,.model-heading h2,.faq-heading h2{font-size:42px}.section-head>p{width:auto}.age-filter{overflow-x:auto;flex-wrap:nowrap;margin-inline:-18px;padding-inline:18px}.age-filter button{white-space:nowrap}
  .course-grid{grid-template-columns:1fr}.course-card{min-height:415px;padding:24px}.course-card h3{font-size:29px}.schedule-note{grid-template-columns:1fr;gap:10px}
  .method-layout{grid-template-columns:1fr;gap:50px}.method-heading{position:static}.method h2{font-size:45px}.method-steps li{min-height:auto}
  .project-showcase{grid-template-columns:1fr}.showcase-card{min-height:440px}
  .model-heading{display:block}.model-grid{grid-template-columns:1fr}.model-card{min-height:auto}.model-card h3{margin-top:50px}.model-card>p{min-height:auto}
  .team-layout{grid-template-columns:1fr;gap:50px}.team h2{font-size:43px}.person-card{min-height:145px;padding:20px}.person-initial{width:70px;height:90px;font-size:25px}
  .faq-layout{grid-template-columns:1fr;gap:45px}.faq-heading{position:static}.faq-list summary{font-size:15px}.faq-list details p{margin-right:15px}
  .contact-layout{grid-template-columns:1fr;gap:52px}.contact-copy{position:static}.contact h2{font-size:47px}.lead-form{padding:22px;margin-inline:-6px}.form-row{grid-template-columns:1fr}.lead-form fieldset{display:grid;grid-template-columns:1fr 1fr}.radio:last-child{grid-column:span 2}
  .footer-top{grid-template-columns:1fr;gap:24px}.footer-top>div{flex-wrap:wrap}.footer-bottom{flex-direction:column;gap:12px}
  .mobile-telegram{position:fixed;z-index:90;right:14px;bottom:14px;display:flex;align-items:center;gap:22px;padding:14px 17px;background:var(--coral);color:var(--navy);font-size:12px;font-weight:700;box-shadow:0 8px 30px rgba(0,0,0,.23);transition:opacity .25s,transform .25s}.mobile-telegram i{font-style:normal}.mobile-telegram.is-hidden{opacity:0;pointer-events:none;transform:translateY(12px)}
  .course-dialog,.privacy-dialog{padding:42px 24px 28px}.course-dialog h2,.privacy-dialog h2{font-size:31px}.dialog-columns{grid-template-columns:1fr;gap:12px}
}

@media(max-width:420px){
  .brand{gap:9px}.brand-mark{width:31px;height:31px}.brand-copy strong{font-size:14px}.brand-copy small{font-size:6px}
  .hero h1{font-size:clamp(39px,11vw,46px)}.hero-foot b{font-size:24px}.hero-foot span{font-size:8px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
