@font-face {
  font-family: Manrope;
  src: url('/assets/Manrope-variable.ttf') format('truetype');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
:root {
  --brand: #393185;
  --brand-ink: #2a2463;
  --brand-tint: #edecf5;
  --paper: #ffffff;
  --cool: #f4f4f8;
  --ink: #171725;
  --text: #424254;
  --muted: #656579;
  --line: #dedee8;
  --input-line: #8e8ea0;
  --gutter: clamp(24px, 3.5vw, 64px);
  --header-height: 88px;
  --ease: cubic-bezier(.22,1,.36,1);
  --artel-diagonal: 63.841771deg;
  --artel-lean: 26.158229deg;
  --artel-gap: 16px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 20px); }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Manrope, Arial, sans-serif; font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body:has(.mobile-menu[open]) { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button, summary, a { -webkit-tap-highlight-color: transparent; }
button, summary { cursor: pointer; }
img, svg { display: block; max-width: 100%; }
p, h1, h2, h3, figure { margin: 0; }
h1, h2, h3 { font-weight: 600; }
::selection { background: var(--brand); color: white; }
:focus-visible { outline: 3px solid var(--brand); outline-offset: 6px; }
.product :focus-visible { outline-color: white; }
.container { width: min(1440px, calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.skip-link { position: fixed; z-index: 30; left: 20px; top: -100px; padding: 12px 20px; background: var(--brand); color: white; }
.skip-link:focus { top: 12px; }
.site-header { position: sticky; top: 0; z-index: 20; height: var(--header-height); background: rgba(255,255,255,.97); border-bottom: 1px solid transparent; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; height: 100%; }
.brand { display: inline-flex; align-items: center; gap: 15px; min-height: 48px; flex-shrink: 0; }
.brand img { width: 36px; height: auto; }
.brand span { font-size: 24px; font-weight: 650; letter-spacing: -.025em; }
.desktop-nav { display: flex; align-items: center; gap: clamp(22px, 2.8vw, 46px); }
.desktop-nav a, .language-switch a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; font-weight: 500; }
.desktop-nav a { position: relative; }
.desktop-nav a::after { content: ''; position: absolute; bottom: 8px; height: 1px; left: 0; right: 100%; background: var(--brand); transition: right 200ms ease; }
.desktop-nav a:hover::after { right: 0; }
.header-tools { display: flex; align-items: center; gap: 24px; }
.language-switch { display: flex; gap: 10px; align-items: center; }
.language-switch a { min-width: 32px; justify-content: center; color: var(--muted); }
.language-switch [aria-current] { color: var(--brand); font-weight: 700; }
.language-switch span { color: var(--muted); font-size: 13px; }
.mobile-menu { display: none; }
.hero { min-height: min(calc(100svh - var(--header-height)), 860px); display: flex; flex-direction: column; padding-top: clamp(48px, 8.3vh, 96px); }
.hero-main { position: relative; padding-bottom: 48px; }
.hero h1 { max-width: 1030px; font-size: clamp(60px, 6.15vw, 94px); line-height: 1.075; letter-spacing: -.058em; }
.headline-line { display: block; }
.hero-copy { position: relative; z-index: 1; max-width: 1040px; }
.hero-body { max-width: 790px; margin-top: 28px; font-size: 19px; line-height: 1.55; color: var(--muted); }
.hero-mark { position: absolute; width: min(23vw, 320px); height: auto; right: 4px; top: 18px; pointer-events: none; }
.hero-actions { display: flex; gap: 34px; align-items: center; margin-top: 32px; }
.button { display: inline-flex; min-height: 62px; padding: 18px 28px; align-items: center; justify-content: center; gap: 26px; font-size: 16px; font-weight: 550; background: var(--brand); color: white; transition: background 180ms ease; clip-path: polygon(0 0,100% 0,100% 100%,8px 100%,0 calc(100% - 16.287px)); }
.button:hover { background: var(--brand-ink);  }
.arrow { display: inline-flex; width: 22px; height: 22px; align-items: center; justify-content: center; flex-shrink: 0; font-size: 25px; font-weight: 400; line-height: 1; }
.text-link { display: inline-flex; align-items: center; gap: 18px; min-height: 44px; font-size: 16px; font-weight: 550; }
.text-link:hover .arrow, .partner-row:hover .arrow { transform: translate(3px,-2.54px); }
.text-link .arrow, .partner-row .arrow { transition: transform 180ms ease; }
.hero-foot { display: flex; justify-content: space-between; gap: 24px; margin-top: auto; border-top: 0; padding: 22px 0 29px; position: relative; font-size: 13px; color: var(--muted); }
.section { padding: 104px 0 112px; }
.section-heading { display: flex; align-items: center; gap: 24px; margin-bottom: 58px; }
.section-label { font-size: 13px; font-weight: 500; color: var(--brand); white-space: nowrap; }
.section-label .number { margin-right: 12px; font-variant-numeric: tabular-nums; }
.section-rule { position: relative; height: 1px; width: 100%; background: linear-gradient(to right,var(--line) 0 calc(100% - 52px),transparent calc(100% - 52px) calc(100% - 36px),var(--line) calc(100% - 36px)); }
.section-rule::after { content: ""; position: absolute; width: 1px; height: 9px; right: 43px; top: -4px; background: var(--brand); transform: rotate(calc(-1 * var(--artel-lean))); }
.section h2 { font-size: clamp(42px, 4.5vw, 68px); letter-spacing: -.05em; line-height: 1.13; }
.company-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 90px; }
.company-copy { max-width: 570px; padding-top: 4px; }
.company-copy p { font-size: 19px; line-height: 1.65; }
.company-copy p + p { margin-top: 25px; }
.principles { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; margin-top: 84px; }
.principle { padding-top: 24px; border-top: 1px solid var(--line); }
.principle h3 { color: var(--brand); font-size: 23px; letter-spacing: -.03em; }
.principle p { color: var(--text); font-size: 16px; line-height: 1.75; margin-top: 16px; max-width: 380px; }
.company-fact { margin-top: 48px; font-size: 13px; color: var(--muted); }
.product { background: var(--brand); color: white; }
.product .section-label { color: #fff; }
.product .section-rule { --line: #807aae; }
.product .section-rule::after { background: #b7b3d8; }
.product-grid { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 64px; }
.product h2 { font-size: clamp(40px, 4.15vw, 62px); max-width: 760px; line-height: 1.18; }
.product-body { font-size: 18px; line-height: 1.7; max-width: 670px; margin-top: 34px; color: #f0eff8; }
.product-status { font-size: 14px; margin-top: 30px; color: #e1dff1; }
.product .text-link { margin-top: 40px; border-bottom: 1px solid rgba(255,255,255,.6); padding-bottom: 8px; }
.product-system { margin: 0; width: 100%; }
.product-system figcaption { text-align: center; color: #efedf8; font-size: 13px; margin-bottom: 16px; }
.system-visual { position: relative; width: 100%; aspect-ratio: 600/330; }
.system-lines { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.system-lines path { vector-effect: non-scaling-stroke; }

.system-person { position: absolute; aspect-ratio: 1; border: 1px solid #b7b3d8; border-radius: 50%; display: flex; align-items: center; justify-content: center; text-align: center; padding: 12px; font-size: 15px; background: var(--brand); }
.system-booking { position: absolute; width: 28%; left: 35%; top: 49%; transform: translateY(-50%); padding: 18px 8px; border: 1px solid #b7b3d8; text-align: center; font-size: 15px; background: var(--brand); }
.system-later { margin-top: 34px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.35); color: #e1dff1; font-size: 13px; text-align: center; }
.partners-top { display: grid; grid-template-columns: 1.3fr 1fr; gap: 90px; align-items: start; }
.partners-intro { font-size: 20px; color: var(--muted); line-height: 1.6; padding-top: 5px; max-width: 490px; }
.partner-list { margin-top: 65px; }
.partner-row { display: grid; grid-template-columns: 310px 1fr 30px; align-items: center; gap: 42px; min-height: 126px; padding: 28px 0; border-top: 1px solid var(--line); }
.partner-row:last-child { border-bottom: 1px solid var(--line); }
.partner-row h3 { font-size: 24px; line-height: 1.35; letter-spacing: -.035em; }
.partner-row p { font-size: 17px; color: var(--muted); max-width: 700px; }
.partner-row .arrow { color: var(--brand); }
.partners .text-link { margin-top: 30px; color: var(--brand); border-bottom: 1px solid var(--brand); }
.founders { background: var(--cool); }
.founders-grid { display: grid; grid-template-columns: .85fr 1.2fr; gap: 80px; }
.founders-intro p { font-size: 17px; color: var(--muted); margin-top: 28px; max-width: 390px; }
.founder-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
.portrait { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 4/5; overflow: hidden; background: #e9e9f2; border: 1px solid #dedee8; }
.portrait { clip-path: polygon(0 0,100% 0,100% 100%,30px 100%,0 calc(100% - 61.085px)); }
.portrait span { position: relative; padding: 12px 18px; max-width: 190px; background: #e9e9f2; text-align: center; font-size: 14px; line-height: 1.5; color: var(--muted); }
.portrait img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.portrait picture { display:contents; }
/* V3.2: actual photographs inside the existing frame; natural colours throughout. */
.portrait[data-founder] { background:#fff; }
.portrait[data-founder] img { object-position:50% 50%; }
.home-preview .home-founder-portraits { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:320px; gap:16px; margin-top:22px; }
.home-founder-portraits .portrait { width:100%; aspect-ratio:4/5; }
@media (min-width:641px) {
  .internal-page .portrait[data-founder] img { object-position:50% 0%; }
}
@media (min-width:361px) and (max-width:640px) {
  .internal-page .portrait[data-founder] img { object-position:50% 0%; }
}
.founder h3 { font-size: clamp(19px, 1.65vw, 26px); letter-spacing: -.035em; line-height: 1.35; margin-top: 21px; }
.founder-role { font-size: 14px; color: var(--muted); margin-top: 8px; }
.founder-share { font-size: 13px; color: var(--muted); margin-top: 16px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; }
.contact-intro p { font-size: 18px; color: var(--text); margin-top: 28px; max-width: 490px; }
.phone { display: inline-flex; align-items: center; gap: 22px; color: var(--brand); font-size: clamp(24px, 2.45vw, 38px); letter-spacing: -.045em; font-weight: 600; min-height: 52px; margin-top: 54px; white-space: nowrap; }
.contact-location { color: var(--muted); font-size: 15px; margin-top: 8px; }
.site-footer { border-top: 0; }
.footer-inner { padding: 0 0 24px; }
.footer-brand { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; font-size: 21px; font-weight: 650; letter-spacing: -.025em; }
.footer-brand img { width: 30px; height: auto; }
.footer-links { display: flex; flex-wrap: wrap; gap: 16px 28px; color: var(--brand); font-size: 12px; }
.footer-links a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; }
.legal-main { min-height: calc(100svh - 190px); padding: 80px 0 100px; }
.legal-main h1 { font-size: clamp(38px, 5vw, 72px); letter-spacing: -.05em; line-height: 1.16; max-width: 970px; }
.legal-main .back-link { color: var(--brand); margin-bottom: 44px; }
.legal-notice { max-width: 790px; margin-top: 50px; padding-top: 28px; border-top: 1px solid var(--line); }
.legal-notice h2 { font-size: 25px; letter-spacing: -.025em; }
.legal-notice p { color: var(--text); margin-top: 18px; max-width: 680px; }
.legal-notice .phone { margin-top: 22px; }
.details-list { margin: 48px 0 32px; max-width: 1080px; }
.details-row { display: grid; grid-template-columns: 310px 1fr; gap: 40px; padding: 20px 0; border-top: 1px solid var(--line); }
.details-row dt { color: var(--muted); font-size: 15px; }
.details-row dd { margin: 0; font-size: 17px; overflow-wrap: anywhere; }
.registry-source { font-size: 13px; color: var(--muted); }
.registry-source a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--brand); text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 1600px) { .hero-mark { right: 34px; } }
@media (max-width: 1250px) {
  .hero h1 { font-size: 76px; max-width: 830px; }
  .hero-mark { width: 210px; top: 28px; }
  .company-grid, .partners-top { gap: 50px; }
  .product-grid { gap: 38px; }
  .product h2 { font-size: 49px; }
  .founders-grid { gap: 45px; }
  .contact-grid { gap: 50px; }
  .phone { font-size: 30px; }
  .partner-row { grid-template-columns: 250px 1fr 26px; gap: 30px; }
}
@media (max-width: 1020px) {
  :root { --header-height: 76px; --gutter: 30px; }
  .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu summary { display: flex; align-items: center; gap: 12px; min-height: 44px; list-style: none; font-size: 14px; }
  .mobile-menu summary::-webkit-details-marker { display: none; }
  .menu-symbol { display: flex; flex-direction: column; gap: 5px; width: 21px; }
  .menu-symbol i { height: 1px; background: var(--ink); width: 21px; }
  .mobile-menu[open] .menu-symbol i:first-child { transform: translateY(3px) rotate(45deg); }
  .mobile-menu[open] .menu-symbol i:last-child { transform: translateY(-3px) rotate(-45deg); }
  .mobile-panel { position: fixed; z-index: 19; inset: var(--header-height) 0 0; background: white; padding: 32px var(--gutter) max(32px, env(safe-area-inset-bottom)); overflow: auto; display: flex; flex-direction: column; }
  .mobile-panel nav { display: flex; flex-direction: column; }
  .mobile-panel nav a { min-height: 72px; padding: 14px 0; font-size: 31px; letter-spacing: -.04em; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }
  .mobile-panel .menu-contact { margin-top: auto; padding-top: 40px; font-size: 18px; color: var(--brand); min-height: 44px; }
  .hero { padding-top: 78px; min-height: min(calc(100svh - var(--header-height)), 800px); }
  .hero h1 { font-size: 65px; max-width: 710px; }
  .hero-mark { width: 105px; top: auto; bottom: 66px; right: 0; opacity: 1; }
  .hero-body { max-width: 630px; font-size: 18px; }
  .section { padding: 80px 0; }
  .section h2 { font-size: 50px; }
  .section-heading { margin-bottom: 44px; }
  .company-grid { grid-template-columns: 1fr 1fr; gap: 42px; }
  .company-copy p { font-size: 16px; }
  .principles { gap: 26px; margin-top: 58px; }
  .principle h3 { font-size: 19px; }
  .principle p { font-size: 14px; }
  .product-grid { grid-template-columns: 1fr; gap: 44px; }
  .product h2 { max-width: 780px; }
  .product-system { width: 100%; max-width: 580px; margin: 0 auto; }
  .product-body { max-width: 720px; }
  .partners-top { grid-template-columns: 1fr 1fr; gap: 42px; }
  .partners-intro { font-size: 17px; }
  .partner-row { grid-template-columns: 220px 1fr 24px; gap: 24px; }
  .partner-row h3 { font-size: 22px; }
  .partner-row p { font-size: 16px; }
  .founders-grid { grid-template-columns: 1fr; gap: 44px; }
  .founders-intro p { max-width: 620px; }
  .founder-list { gap: 30px; max-width: 730px; }
  .founder h3 { font-size: 25px; }
  .contact-grid { grid-template-columns: 1fr; gap: 48px; }
  .contact-intro .headline-line { display: inline; }
  .contact-intro .headline-line + .headline-line::before { content: ' '; }
  .phone { margin-top: 30px; }

}
@media (max-width: 640px) {
  :root { --gutter: 22px; --header-height: 72px; }
  body { font-size: 16px; }
  .header-inner { gap: 10px; }
  .brand { gap: 10px; min-height: 44px; }
  .brand img { width: 28px; }
  .brand span { font-size: 19px; }
  .header-tools { gap: 16px; }
  .language-switch { gap: 2px; }
  .language-switch a { min-width: 28px; font-size: 12px; }
  .language-switch span { font-size: 10px; }
  .mobile-menu summary { gap: 8px; font-size: 12px; }
  .menu-symbol { width: 18px; }
  .menu-symbol i { width: 18px; }
  .hero { padding-top: 44px; min-height: 0; }
  .hero-main { padding-bottom: 48px; }
  .hero h1 { font-size: clamp(36px, 9.3vw, 58px); line-height: 1.13; letter-spacing: -.054em; max-width: 100%; }
  .hero .headline-line:first-child { max-width: 100%; }
  .hero-mark { width: 78px; top: auto; bottom: 52px; right: 0; opacity: 1; }
  .hero-body { font-size: 15px; line-height: 1.65; margin-top: 24px; max-width: 100%; }
  .hero-actions { margin-top: 28px; align-items: flex-start; flex-direction: column; gap: 13px; padding-right: 90px; }
  .button { padding: 15px 17px; min-height: 52px; font-size: 13px; gap: 15px; }
  .hero-actions .text-link { font-size: 13px; }
  .hero-foot { margin-top: 24px; padding: 19px 0 22px; font-size: 11px; align-items: flex-start; gap: 18px; line-height: 1.6; }
  .hero-foot span { max-width: 48%; }
  .hero-foot span:last-child { text-align: right; }
  .section { padding: 62px 0 68px; }
  .section-heading { margin-bottom: 32px; gap: 16px; }
  .section-label { font-size: 11px; }
  .section-label .number { margin-right: 8px; }
  .section h2 { font-size: clamp(34px, 8.5vw, 48px); line-height: 1.16; letter-spacing: -.052em; }
  .company-grid, .partners-top { grid-template-columns: 1fr; gap: 30px; }
  .company-copy p { font-size: 15px; line-height: 1.75; }
  .company-copy p + p { margin-top: 20px; }
  .principles { grid-template-columns: 1fr; gap: 25px; margin-top: 40px; }
  .principle { padding-top: 18px; }
  .principle h3 { font-size: 21px; }
  .principle p { font-size: 14px; margin-top: 10px; max-width: none; }
  .company-fact { font-size: 11px; margin-top: 30px; }
  .product h2 { font-size: clamp(33px, 8.5vw, 48px); line-height: 1.19; }
  .product-body { font-size: 15px; margin-top: 25px; }
  .product-status { font-size: 12px; margin-top: 24px; }
  .product .text-link { margin-top: 26px; font-size: 14px; gap: 12px; }
  .product-grid { gap: 34px; }


  .system-person { font-size: 11px; padding: 5px; }
  .system-booking { font-size: 11px; padding: 14px 4px; }
  .product-system figcaption { font-size: 11px; }
  .system-later { font-size: 11px; line-height: 1.6; margin-top: 22px; padding-top: 19px; }
  .partners-intro { font-size: 16px; max-width: none; }
  .partner-list { margin-top: 36px; }
  .partner-row { grid-template-columns: 1fr 24px; gap: 12px 14px; min-height: 0; padding: 24px 0; }
  .partner-row h3 { font-size: 22px; }
  .partner-row p { grid-column: 1; grid-row: 2; font-size: 14px; line-height: 1.7; }
  .partner-row .arrow { grid-column: 2; grid-row: 1; }
  .partners .text-link { margin-top: 24px; font-size: 14px; }
  .founders-intro p { font-size: 15px; margin-top: 20px; }
  .founders-grid { gap: 30px; }
  .founder-list { grid-template-columns: 1fr; gap: 34px; }
  .portrait { max-height: 415px; aspect-ratio: 4/5; width: 100%; }
  .portrait span { font-size: 13px; }
  .founder h3 { font-size: 23px; margin-top: 18px; }
  .founder-role { font-size: 14px; }
  .founder-share { font-size: 12px; margin-top: 12px; }
  .contact-intro .headline-line { display: block; }
  .contact-intro .headline-line + .headline-line::before { content: none; }
  .contact-intro p { font-size: 15px; margin-top: 22px; }
  .phone { font-size: clamp(22px, 6.8vw, 32px); margin-top: 30px; gap: 12px; }
  .contact-location { font-size: 13px; margin-top: 5px; }
  .contact-grid { gap: 36px; }
  .footer-inner { padding-bottom: max(26px, env(safe-area-inset-bottom)); }
  .footer-brand { gap: 12px; font-size: 20px; }
  .footer-links { gap: 4px 18px; font-size: 11px; }
  .legal-main { padding: 42px 0 64px; }
  .legal-main h1 { font-size: 38px; overflow-wrap: anywhere; }
  .legal-main .back-link { margin-bottom: 30px; font-size: 14px; }
  .legal-notice { margin-top: 34px; }
  .legal-notice h2 { font-size: 23px; }
  .legal-notice p { font-size: 15px; }
  .details-list { margin-top: 34px; }
  .details-row { grid-template-columns: 1fr; gap: 8px; padding: 18px 0; }
  .details-row dt { font-size: 13px; }
  .details-row dd { font-size: 15px; }
}
@media (max-width: 360px) {
  :root { --gutter: 18px; }
  .brand span { font-size: 17px; }
  .brand img { width: 25px; }
  .header-tools { gap: 10px; }
  .hero h1 { font-size: 30px; }
  .hero-mark { width: 64px; }
  .hero-actions { padding-right: 72px; }
  .phone { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .motion-ready .reveal { opacity: 1; transform: none; }
}

/* V2: one diagonal, a measured gap, and a single growth line. */
.arrow { overflow: visible; }
.arrow-down { transform: rotate(90deg); }
.hero-actions .text-link:hover .arrow-down { transform: rotate(90deg) translate(3px,-2.54px); }
.button .arrow, .phone .arrow { transition: transform 180ms ease; }
.button:focus-visible { box-shadow: inset 0 0 0 3px white; }
.button:hover .arrow, .phone:hover .arrow { transform: translate(3px,-2.54px); }
.text-link { position: relative; }
.desktop-nav a[aria-current="location"]::after { right: 12px; }
.desktop-nav a[aria-current="location"]::before { content: ''; position: absolute; right: 3px; bottom: 4px; width: 1px; height: 9px; background: var(--brand); transform: rotate(calc(-1 * var(--artel-lean))); }
.hero-foot::before, .footer-top::before, .footer-bottom::before { content: ''; position: absolute; inset: 0 0 auto; height: 1px; background: linear-gradient(to right,var(--line) 0 15%,transparent 15% calc(15% + var(--artel-gap)),var(--line) calc(15% + var(--artel-gap))); }
.hero-foot::after, .footer-bottom::after { content: ''; position: absolute; left: calc(15% + 7px); top: -4px; width: 1px; height: 9px; background: var(--brand); transform: rotate(calc(-1 * var(--artel-lean))); }
.mark-phases { display: none; }
.brand-reveal .mark-phases { display: block; }
.brand-reveal .mark-whole { opacity: 0; animation: mark-complete 1ms 800ms forwards; }
.brand-reveal .mark-branch { animation: branch-reveal 420ms var(--ease) both; }
.brand-reveal .mark-secondary { animation: secondary-reveal 430ms 150ms var(--ease) both; }
.brand-reveal .mark-primary { animation: branch-reveal 480ms 280ms var(--ease) both; }
@keyframes branch-reveal { from { clip-path: inset(100% 0 0); } to { clip-path: inset(0); } }
@keyframes secondary-reveal { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@keyframes mark-complete { to { opacity: 1; } }
.system-professional { width: 30%; left: 0; bottom: 0; }
.system-client { width: 24%; right: 0; top: 11%; }
.system-later { position: relative; border-top: 0; }
.system-later::before { content: ''; position: absolute; inset: 0 0 auto; height: 1px; background: linear-gradient(to right,#807aae 0 15%,transparent 15% calc(15% + var(--artel-gap)),#807aae calc(15% + var(--artel-gap))); }
.partner-row { transition: color 180ms ease; }
.partner-row:hover h3 { color: var(--brand); }
.partner-row:focus-visible { outline-offset: -3px; }
.footer-top { position: relative; padding: 30px 0; display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 42px; }
.footer-phone { font-size: 16px; color: var(--brand); min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; }
.footer-nav { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 12px 28px; }
.footer-nav a { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; }
.footer-nav a:hover, .footer-phone:hover { color: var(--brand); text-decoration: underline; text-underline-offset: 5px; }
.footer-bottom { position: relative; padding-top: 20px; display: flex; justify-content: space-between; align-items: center; gap: 28px; }
.footer-bottom > p { font-size: 12px; color: var(--muted); }
.menu-utility { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-top: 30px; }
.mobile-panel .menu-contact { margin-top: 0; padding-top: 0; }
.menu-utility .language-switch { gap: 8px; }
.menu-utility .language-switch a { min-width: 44px; font-size: 14px; }
@media (min-width: 1021px) and (max-height: 820px) {
  .hero { padding-top: 44px; }
  .hero h1 { font-size: clamp(62px,5.1vw,78px); }
  .hero-mark { width: min(21vw,285px); top: 4px; }
  .hero-body { margin-top: 24px; font-size: 18px; max-width: 760px; }
  .hero-actions { margin-top: 28px; }
  .hero-main { padding-bottom: 32px; }
  .hero-foot { padding: 18px 0 22px; }
}
@media (max-width: 1250px) {
  .footer-top { grid-template-columns: auto 1fr; gap: 20px 36px; }
  .footer-phone { justify-self: end; }
  .footer-nav { grid-column: 1/-1; justify-content: flex-start; gap: 8px 28px; }
}
@media (max-width: 1020px) {
  .footer-bottom { flex-wrap: wrap; gap: 8px 28px; }
  .footer-links { order: 3; flex-basis: 100%; }
}
@media (max-width: 640px) {
  .header-tools { gap: 14px; }
  .header-tools > .language-switch > [aria-current], .header-tools > .language-switch > span { display: none; }
  .header-tools > .language-switch a { font-size: 12px; min-width: 44px; }
  .hero-main { display: grid; grid-template-columns: minmax(0,1fr) 84px; column-gap: 18px; padding-bottom: 38px; }
  .hero-copy { display: contents; }
  .hero h1, .hero-body { grid-column: 1/-1; }
  .hero-actions { grid-column: 1; grid-row: 3; padding-right: 0; margin-top: 28px; gap: 13px; }
  .hero-mark { position: static; grid-column: 2; grid-row: 3; align-self: end; width: 84px; height: auto; margin-bottom: 2px; }
  .hero-foot { margin-top: 16px; }
  .hero h1 { font-size: clamp(36px,9.3vw,58px); }
  .button { gap: 10px; padding-inline: 14px; white-space: nowrap; }
  .product .text-link { max-width: 100%; }
  .system-professional { width: 32%; }
  .system-client { width: 25%; }
  .system-person, .system-booking { font-size: 11px; }
  .system-booking { padding: 12px 4px; }
  .footer-top { padding: 26px 0 24px; gap: 14px 18px; }
  .footer-phone { font-size: 13px; }
  .footer-brand img { width: 25px; }
  .footer-nav { display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: 0 20px; }
  .footer-nav a { font-size: 13px; }
  .footer-bottom { padding-top: 18px; gap: 10px; }
  .footer-links { display: flex; flex-direction: column; gap: 0; }
  .footer-links a { font-size: 12px; }
  .footer-bottom .language-switch { gap: 6px; }
  .footer-bottom .language-switch a { min-width: 44px; font-size: 12px; }
}
@media (max-width: 360px) {
  .hero-main { grid-template-columns: minmax(0,1fr) 68px; column-gap: 14px; }
  .hero-mark { width: 68px; }
  .hero h1 { font-size: 36px; }
  .hero-actions .button { font-size: 12px; gap: 8px; padding-inline: 12px; }
  .hero-actions .text-link { font-size: 12px; gap: 12px; }
  .footer-top { grid-template-columns: 1fr; gap: 8px; }
  .footer-phone { justify-self: start; font-size: 14px; }
  .menu-utility { flex-wrap: wrap; gap: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .brand-reveal .mark-phases { display: none; }
  .brand-reveal .mark-whole { opacity: 1; animation: none; }
}
/* Local QA exercises the same immediate, settled presentation without changing OS settings. */
html.reduced-motion { scroll-behavior: auto; }
.reduced-motion *, .reduced-motion *::before, .reduced-motion *::after { animation: none !important; transition: none !important; }
.reduced-motion .reveal { opacity: 1; transform: none; }
.reduced-motion .brand-reveal .mark-phases { display: none; }
.reduced-motion .brand-reveal .mark-whole { opacity: 1; }

.registry-source .arrow { width: 16px; height: 16px; }
.back-link:hover .arrow-back { transform: translateX(-3px); }

/* V3: native routes, construction and restrained optical surfaces. */
.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; }
.site-header { transition: background 180ms ease,border-color 180ms ease,box-shadow 180ms ease; }
.site-header.is-scrolled { background:rgba(255,255,255,.92); border-color:rgba(57,49,133,.12); box-shadow:inset 0 1px rgba(255,255,255,.95); }
@supports (backdrop-filter:blur(12px)) { .site-header.is-scrolled { background:rgba(255,255,255,.82); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); } }
.language-switch { background:rgba(244,244,248,.75); border:1px solid rgba(57,49,133,.1); padding:0 4px; box-shadow:inset 0 1px #fff; }
.language-switch a { min-width:44px; }
.desktop-nav a[aria-current="page"]::after { right:12px; }
.desktop-nav a[aria-current="page"]::before { content:''; position:absolute; right:3px; bottom:4px; width:1px; height:9px; background:var(--brand); transform:rotate(calc(-1 * var(--artel-lean))); }
.glass-button,.optical-control { position:relative; overflow:hidden; isolation:isolate; }
.glass-button { background:var(--brand); box-shadow:inset 0 1px rgba(255,255,255,.3),inset 0 0 0 1px rgba(255,255,255,.18); }
.glass-button::before,.optical-control::before { content:''; position:absolute; z-index:-1; inset:-70% -25%; background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.16) 49%,transparent 57%); transform:translateX(-55%); transition:transform 440ms var(--ease); pointer-events:none; }
.glass-button:hover::before,.optical-control:hover::before { transform:translateX(35%); }
.glass-button:active,.optical-control:active { box-shadow:inset 0 0 0 2px rgba(255,255,255,.55); }
.button:focus-visible { outline:3px solid var(--brand); box-shadow:inset 0 0 0 3px white; }
.glass-button:hover { background:var(--brand); }
.text-link::after { content:''; height:1px; position:absolute; bottom:4px; left:0; right:100%; background:currentColor; transition:right 220ms var(--ease); }
.text-link:hover::after,.text-link:focus-visible::after { right:30px; }
.text-link:hover .arrow,.text-link:focus-visible .arrow,.button:hover .arrow { transform:translate(4px,-3.38px); }
.section-rule { transform-origin:left center; }
@keyframes construct-divider { from { transform:scaleX(.02); opacity:.3; } to { transform:scaleX(1); opacity:1; } }
.home-preview { padding:58px 0 66px; }
.home-preview .section-heading { margin-bottom:30px; }
.preview-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:90px; }
.preview-grid h2,.contact-movement h2 { font-size:clamp(36px,3.7vw,54px); line-height:1.13; letter-spacing:-.05em; }
.preview-grid p { max-width:530px; font-size:18px; color:var(--muted); }
.preview-grid .text-link { margin-top:20px; color:var(--brand); }
.product .preview-grid p { color:#f0eff8; }
.product .preview-grid .text-link { color:white; margin-top:20px; border-bottom:0; padding:0; }
.contact-movement { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:60px 0 70px; }
.internal-page .section { padding:64px 0 76px; }
.internal-page h1 { font-size:clamp(44px,5.2vw,76px); line-height:1.12; letter-spacing:-.052em; }
.internal-page .section-heading { margin-bottom:44px; }
.internal-page .company-grid { grid-template-columns:1.05fr 1fr; gap:90px; }
.internal-page .company-copy { padding-top:6px; }
.internal-page .principles { margin-top:60px; }
.company-details-link { padding-bottom:42px; color:var(--brand); }
.page-next { padding:26px 0 34px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--line); }
.page-next > span { font-size:12px; color:var(--muted); }
.page-next .text-link { color:var(--brand); }
.internal-page .product-grid { align-items:start; }
.internal-page .product h1 { font-size:clamp(44px,4.8vw,70px); }
.internal-page .product-system { padding-top:8px; }
.system-node { cursor:pointer; color:#fff; font-family:inherit; }
.system-node[aria-pressed="true"] { border-color:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.09); background:#49428e; }
.system-node:hover { border-color:#fff; }
.system-node:focus-visible { outline:3px solid #fff; outline-offset:5px; }
.system-hint { font-size:12px; color:#e1dff1; margin-top:26px; }
.system-description { font-size:14px; line-height:1.6; color:#f0eff8; min-height:90px; margin-top:12px; }
.system-later { margin-top:20px; }
@keyframes draw-system { to { stroke-dashoffset:0; } }
@keyframes resolve-node { from { opacity:0; } to { opacity:1; } }
.partner-row { position:relative; }
.partner-row::before { content:''; position:absolute; left:0; top:-1px; width:12px; height:1px; background:var(--brand); transform:scaleX(0); transform-origin:left; transition:transform 220ms var(--ease); }
.partner-row:hover::before,.partner-row:focus-visible::before { transform:scaleX(5); }
.partner-row:hover p { color:var(--text); }
.internal-page .partner-list { margin-top:44px; }
.internal-page .founders-grid { grid-template-columns:.75fr 1.25fr; gap:70px; }
.internal-page .portrait { max-height:420px; }
.internal-page .founders-intro h1 { font-size:clamp(40px,4.1vw,62px); }
.internal-page .contact-grid { align-items:start; }
.internal-page .contact h1 { font-size:clamp(42px,4.5vw,66px); }
.legal-hub-intro { font-size:18px; color:var(--muted); margin-top:24px; max-width:600px; }
.legal-hub-list { margin-top:48px; max-width:1100px; }
.legal-hub-row { padding:24px 0; border-top:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:90px; }
.legal-hub-row strong { display:block; font-size:22px; font-weight:550; line-height:1.35; letter-spacing:-.03em; }
.legal-hub-row small { display:block; font-size:13px; margin-top:9px; color:var(--muted); }
.legal-hub-row .arrow { color:var(--brand); }
.legal-hub-row:hover strong { color:var(--brand); }
/* The construction is separate; each mark phase references the exact immutable SVG. */
.construction-layer { display:none; }
@keyframes construction-draw { to { stroke-dashoffset:0; } }
@keyframes construction-collapse { from { opacity:1; } to { opacity:0; } }
@keyframes assembly-content { from { opacity:0; clip-path:polygon(0 0,0 0,0 100%,0 100%); transform:translateY(5px); } to { opacity:1; clip-path:polygon(0 0,100% 0,100% 100%,0 100%); transform:none; } }
.route-plane { display:none; position:fixed; z-index:40; top:0; bottom:0; left:calc(-.5 * 100vh); width:calc(100vw + 100vh); background:var(--brand); transform:translateX(-140%) skewX(var(--artel-lean)); pointer-events:none; }
.route-plane.is-active { display:block; will-change:transform; }
.plane-line { position:absolute; top:50%; left:30%; right:30%; height:1px; background:rgba(255,255,255,.6); }
.plane-line::after { content:''; width:16px; height:16px; border-left:1px solid rgba(255,255,255,.6); position:absolute; left:50%; top:-8px; transform:skewX(calc(-1 * var(--artel-lean))); }
@keyframes page-resolve { from { opacity:.8; transform:translateY(7px); } to { opacity:1; transform:none; } }
@keyframes type-resolve { from { opacity:.5; } to { opacity:1; } }
@media (hover:hover) and (pointer:fine) { .hero-mark { pointer-events:auto; } .hero-mark .construction-layer { transform:translate(var(--optical-x,0px),var(--optical-y,0px)); } .glass-button { background-image:radial-gradient(ellipse at var(--optical-p,50%) 0%,rgba(255,255,255,.11),transparent 65%); } }
@media (max-width:1020px) {
  .mobile-panel { background:rgba(249,249,253,.97); border-top:1px solid rgba(57,49,133,.12); box-shadow:inset 0 1px #fff; }
  @supports (backdrop-filter:blur(8px)) { .mobile-panel { background:rgba(249,249,253,.93); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); } }
  .mobile-panel nav a[aria-current="page"] { color:var(--brand); }
  .mobile-panel nav a { position:relative; }
  .mobile-panel nav a::before { content:''; position:absolute; left:-12px; height:12px; width:1px; background:var(--brand); transform:rotate(calc(-1 * var(--artel-lean))) scaleY(0); transition:transform 200ms var(--ease); }
  .mobile-panel nav a[aria-current="page"]::before,.mobile-panel nav a:focus-visible::before { transform:rotate(calc(-1 * var(--artel-lean))) scaleY(1); }
  @keyframes menu-resolve { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
  .preview-grid,.internal-page .company-grid { gap:42px; }
  .internal-page .founders-grid { grid-template-columns:1fr; gap:36px; }
  .internal-page .founders-intro h1 { max-width:750px; font-size:54px; }
  .internal-page .contact-grid { gap:38px; }
  .internal-page .product h1 { font-size:56px; }
  .internal-page .product-system { max-width:650px; }
  .system-description { min-height:66px; }
}
@media (max-width:640px) {
  .language-switch { padding:0; }
  .home-preview { padding:36px 0 42px; }
  .home-preview .section-heading { margin-bottom:24px; }
  .preview-grid { grid-template-columns:1fr; gap:20px; }
  .preview-grid h2,.contact-movement h2 { font-size:34px; }
  .preview-grid p { font-size:15px; }
  .preview-grid .text-link { margin-top:14px; font-size:14px; }
  .contact-movement { align-items:flex-start; flex-direction:column; gap:28px; padding:38px 0 46px; }
  .internal-page .section { padding:38px 0 48px; }
  .internal-page h1,.internal-page .product h1,.internal-page .contact h1,.internal-page .founders-intro h1 { font-size:clamp(34px,9.2vw,43px); }
  .internal-page .section-heading { margin-bottom:30px; }
  .internal-page .company-grid { grid-template-columns:1fr; gap:26px; }
  .internal-page .company-copy p { font-size:15px; }
  .internal-page .principles { margin-top:38px; }
  .internal-page .partners-top { grid-template-columns:1fr; gap:22px; }
  .internal-page .partner-list { margin-top:30px; }
  .internal-page .portrait { max-height:400px; }
  .home-preview .home-founder-portraits { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:18px; }
  .system-node { min-height:44px; }
  .system-hint { font-size:11px; margin-top:24px; }
  .system-description { font-size:13px; min-height:108px; }
  .system-booking { width:29%; }
  .company-details-link { padding-bottom:28px; }
  .page-next { padding:20px 0; }
  .legal-hub-intro { font-size:15px; }
  .legal-hub-row strong { font-size:20px; }
  .legal-hub-row small { font-size:12px; }
}
.reduced-motion .assembly .hero-copy,.reduced-motion .assembly .hero-foot { opacity:1; transform:none; clip-path:none; }
.reduced-motion .assembly .construction-layer { display:none; }
.reduced-motion .system-lines path { stroke-dashoffset:0!important; }
.mark-optical { opacity:0; pointer-events:none; }
@media (hover:hover) and (pointer:fine) { .hero-mark:hover .mark-optical { opacity:.07; transform:translateX(var(--optical-x,0px)); } }
.glass-button { background-color:rgba(57,49,133,.97); }
@supports (backdrop-filter:blur(4px)) { .glass-button { backdrop-filter:blur(4px); } }

/* V3.1 motion vocabulary. Settled geometry, typography and spacing remain V3. */
html { overflow-x:clip; }
:root {
  --artel-enter:cubic-bezier(.18,.82,.24,1);
  --artel-exit:cubic-bezier(.4,0,.8,.2);
  --artel-route:cubic-bezier(.76,0,.24,1);
  --artel-micro:cubic-bezier(.2,.7,.3,1);
  --artel-optical:cubic-bezier(.25,.6,.3,1);
  --motion-micro:150ms; --motion-interaction:220ms; --motion-content:400ms;
  --motion-route-cover:260ms; --motion-route-open:340ms; --assembly-step:1ms;
}
.assembly-stage { display:none; position:fixed; pointer-events:none; z-index:31; top:0; bottom:0; left:calc(-.5 * 100vh); width:calc(100vw + 100vh); background:var(--paper); transform:skewX(var(--artel-lean)); }
.assembly-active .assembly-stage { display:block; animation:interface-plane calc(460 * var(--assembly-step)) calc(1060 * var(--assembly-step)) var(--artel-route) both; }
.assembly .hero-mark { z-index:32; overflow:visible; transform-origin:center; }
.assembly .mark-phases { display:block; }
.assembly .mark-branch { animation:none; }
.assembly .growth-stem,.assembly .growth-leaf { opacity:0; stroke-dasharray:100; stroke-dashoffset:100; animation:growth-trace calc(340 * var(--assembly-step)) calc(420 * var(--assembly-step)) var(--artel-enter) forwards; }
.growth-leaf[data-leaf="0"] { --leaf:0; }.growth-leaf[data-leaf="1"] { --leaf:1; }.growth-leaf[data-leaf="2"] { --leaf:2; }.growth-leaf[data-leaf="3"] { --leaf:3; }.growth-leaf[data-leaf="4"] { --leaf:4; }
.assembly .growth-leaf { animation-duration:calc(230 * var(--assembly-step)); animation-delay:calc((530 + var(--leaf) * 40) * var(--assembly-step)); }
.assembly .mark-secondary { animation:secondary-reveal calc(350 * var(--assembly-step)) calc(580 * var(--assembly-step)) var(--artel-enter) both; }
.assembly .mark-primary { animation:branch-reveal calc(360 * var(--assembly-step)) calc(710 * var(--assembly-step)) var(--artel-enter) both; }
.assembly .mark-whole { opacity:0; animation:canonical-resolve calc(80 * var(--assembly-step)) calc(1000 * var(--assembly-step)) var(--artel-enter) forwards; }
.assembly .construction-layer { display:block; animation:construction-collapse calc(170 * var(--assembly-step)) calc(990 * var(--assembly-step)) var(--artel-exit) both; }
.assembly .construction-line,.assembly .construction-axis { stroke-dasharray:100; stroke-dashoffset:100; animation:growth-trace calc(370 * var(--assembly-step)) calc(110 * var(--assembly-step)) var(--artel-enter) forwards; }
.assembly .construction-axis { opacity:.32; animation-duration:calc(280 * var(--assembly-step)); animation-delay:calc(210 * var(--assembly-step)); }
.assembly .construction-ticks { opacity:0; animation:canonical-resolve calc(120 * var(--assembly-step)) calc(80 * var(--assembly-step)) both; }
.assembly .construction-layer circle { opacity:0; animation:canonical-resolve calc(120 * var(--assembly-step)) both; }
.assembly .construction-layer circle:nth-of-type(2) { animation-delay:calc(40 * var(--assembly-step)); }
.assembly .construction-layer circle:nth-of-type(3) { animation-delay:calc(70 * var(--assembly-step)); }
.assembly .construction-layer circle:nth-of-type(4) { animation-delay:calc(100 * var(--assembly-step)); }
.assembly .hero-copy { animation:none; }
.assembly .hero h1 { animation:none; }
.assembly .hero-copy .headline-line { animation:editorial-release calc(370 * var(--assembly-step)) calc(1140 * var(--assembly-step)) var(--artel-enter) both; }
.assembly .headline-line:nth-child(2) { animation-delay:calc(1170 * var(--assembly-step)); }
.assembly .headline-line:nth-child(3) { animation-delay:calc(1200 * var(--assembly-step)); }
.assembly .hero-body { animation:content-release calc(280 * var(--assembly-step)) calc(1260 * var(--assembly-step)) var(--artel-enter) both; }
.assembly .hero-actions { animation:optical-release calc(270 * var(--assembly-step)) calc(1330 * var(--assembly-step)) var(--artel-optical) both; }
.assembly .hero-foot { animation:content-release calc(260 * var(--assembly-step)) calc(1400 * var(--assembly-step)) var(--artel-enter) both; }
.assembly-active .site-header .brand { animation:optical-release calc(280 * var(--assembly-step)) calc(1100 * var(--assembly-step)) var(--artel-enter) both; }
.assembly-active .site-header nav,.assembly-active .header-tools { animation:content-release calc(300 * var(--assembly-step)) calc(1140 * var(--assembly-step)) var(--artel-enter) both; }
.assembly .mark-optical { animation:optical-settle calc(250 * var(--assembly-step)) calc(1420 * var(--assembly-step)) var(--artel-optical) both; }
.skip-link:focus { z-index:60; }
@keyframes growth-trace { from { opacity:0; stroke-dashoffset:100; } 12% { opacity:1; } to { opacity:1; stroke-dashoffset:0; } }
@keyframes canonical-resolve { from { opacity:0; } to { opacity:1; } }
@keyframes interface-plane { from { transform:translateX(0) skewX(var(--artel-lean)); } to { transform:translateX(140%) skewX(var(--artel-lean)); } }
@keyframes editorial-release { from { opacity:.12; clip-path:polygon(0 0,0 0,0 100%,0 100%); } to { opacity:1; clip-path:polygon(0 0,140% 0,100% 100%,0 100%); } }
@keyframes content-release { from { opacity:0; } to { opacity:1; } }
@keyframes optical-release { from { opacity:0; translate:0 2px; } to { opacity:1; translate:0 0; } }
@keyframes optical-settle { 0%,100% { opacity:0; } 45% { opacity:.08; } }
.site-header { transition:background var(--motion-interaction) var(--artel-optical),border-color var(--motion-interaction) var(--artel-optical),box-shadow var(--motion-interaction) var(--artel-optical),backdrop-filter var(--motion-interaction) var(--artel-optical); }
@supports (backdrop-filter:blur(12px)) { .site-header { backdrop-filter:blur(0); -webkit-backdrop-filter:blur(0); } }
.desktop-nav a::after,.text-link::after { transition:right var(--motion-interaction) var(--artel-micro); }
.arrow,.button .arrow,.phone .arrow,.partner-row .arrow { transition:transform var(--motion-micro) var(--artel-micro); }
.glass-button::before,.optical-control::before { transition:transform var(--motion-content) var(--artel-optical); }
.glass-button,.optical-control,.language-switch { transition:background var(--motion-interaction) var(--artel-optical),border-color var(--motion-interaction) var(--artel-optical),box-shadow var(--motion-micro) var(--artel-micro); }
.glass-button:active,.optical-control:active { translate:0 1px; }
.section-rule { transform-origin:left; }
.partner-row::after { content:''; pointer-events:none; position:absolute; top:-1px; left:0; right:0; height:1px; background:var(--line); transform-origin:left; }
.partner-row.line-enter { border-top-color:transparent; }
.partner-row.line-enter::after { animation:construct-divider 320ms var(--artel-enter) both; }
.partner-row h3 { transition:translate var(--motion-interaction) var(--artel-micro); }
.partner-row:hover h3,.partner-row:focus-visible h3 { translate:2px 0; }
.partner-row:focus-visible .arrow { transform:translate(4px,-3.38px); }
.partner-row:focus-visible::before { transform:scaleX(5); }
.system-connection { transition:stroke var(--motion-interaction) var(--artel-optical),stroke-width var(--motion-interaction) var(--artel-optical); }
[data-system][data-connection="0"] [data-connection="0"],[data-system][data-connection="1"] [data-connection="1"],[data-system][data-connection="both"] .system-connection { stroke:#fff; stroke-width:1.8; }
.system-node { transition:background var(--motion-interaction) var(--artel-optical),border-color var(--motion-interaction) var(--artel-optical),box-shadow var(--motion-interaction) var(--artel-optical); }
.menu-symbol i { transition:transform var(--motion-micro) var(--artel-micro); }
.partner-row { transition:color var(--motion-interaction) var(--artel-optical); }
.partner-row::before,.mobile-panel nav a::before { transition:transform var(--motion-interaction) var(--artel-micro); }
@media (max-width:1020px) { .mobile-panel { height:calc(100vh - var(--header-height)); height:calc(100dvh - var(--header-height)); bottom:auto; } }
.site-header:has(.mobile-menu[open]) { backdrop-filter:none; -webkit-backdrop-filter:none; background:var(--paper); }
@media (hover:hover) and (pointer:fine) { .hero-mark:hover .mark-optical { opacity:.055; } }
@media (max-width:640px) {
  :root { --assembly-step:.88ms; --motion-route-cover:200ms; --motion-route-open:270ms; }
  .assembly .construction-axis { display:none; }
  .assembly .construction-layer circle:nth-of-type(n+3) { display:none; }
  @supports (backdrop-filter:blur(8px)) { .site-header.is-scrolled { backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); } }
}
@media (prefers-reduced-motion:reduce) {
  .assembly-stage { display:none!important; }
  .assembly .hero-mark { transform:none!important; }
  .assembly .mark-whole { opacity:1!important; }
  .assembly .mark-phases,.assembly .construction-layer { display:none!important; }
  .assembly .headline-line,.assembly .hero-body,.assembly .hero-actions,.assembly .hero-foot { opacity:1; clip-path:none; translate:none; }
}
.reduced-motion .assembly-stage { display:none!important; }
.reduced-motion .assembly .hero-mark { transform:none!important; }

/* V3.3: presentation layers preserve the approved pixels and photo geometry. */
.portrait .portrait-frame { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; stroke:rgb(57 49 133 / .22); stroke-width:1; }
.portrait .portrait-anchor { position:absolute; top:12px; right:12px; width:22px; height:8px; padding:0; border-top:1px solid rgb(57 49 133 / .38); border-right:1px solid rgb(57 49 133 / .38); background:transparent; }
.home-founder-portraits { position:relative; }
.home-founder-portraits::before { content:''; position:absolute; width:32px; height:1px; left:calc(50% - 16px); top:18px; background:rgb(57 49 133 / .22); z-index:1; }
.home-founder-portraits .portrait-frame { stroke:rgb(57 49 133 / .45); }
.home-founder-portraits .portrait::after { content:''; position:absolute; left:0; bottom:0; width:30px; height:62px; border-right:1px solid rgb(57 49 133 / .48); transform:skewX(26.158229deg); transform-origin:bottom; pointer-events:none; }
.legal-prose { max-width:790px; }
.legal-version { max-width:790px; margin-top:28px; color:var(--muted); font-size:14px; line-height:1.7; }
.legal-prose .legal-notice { margin-top:38px; }
.legal-prose p { line-height:1.85; }
.legal-prose h2 { line-height:1.35; }
.footer-links { font-size:14px; gap:8px 24px; }
.footer-bottom { align-items:start; }
.privacy-notice { position:fixed; z-index:110; right:max(24px,env(safe-area-inset-right)); bottom:max(24px,env(safe-area-inset-bottom)); width:min(460px,calc(100vw - 40px)); padding:20px 22px; background:rgb(250 250 254 / .98); border:1px solid #d5d3e6; box-shadow:0 12px 40px rgb(26 22 61 / .1); animation:privacy-arrive .26s cubic-bezier(.22,1,.36,1); }
.privacy-notice[hidden] { display:none; }
.privacy-notice::before,.privacy-panel::before { content:''; position:absolute; top:-1px; left:-1px; width:42px; border-top:1px solid var(--brand); }
.privacy-notice h2 { font-size:18px; letter-spacing:-.03em; }
.privacy-notice p { font-size:14px; line-height:1.65; margin-top:8px; color:var(--text); }
.privacy-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.privacy-button { min-height:44px; padding:10px 14px; font:inherit; font-size:13px; line-height:1.5; cursor:pointer; border:1px solid #b8b4d3; background:linear-gradient(125deg,#fff,#f2f1f8); color:var(--brand); }
.privacy-button:hover { border-color:var(--brand); }
.privacy-button:focus-visible,.privacy-option:has(input:focus-visible) { outline:2px solid var(--brand); outline-offset:4px; }
.privacy-dialog { width:min(660px,calc(100vw - 32px)); max-height:calc(100svh - 48px - env(safe-area-inset-bottom)); margin:auto; padding:0; border:1px solid #c8c4df; color:var(--ink); background:#fafafe; overflow:auto; overscroll-behavior:contain; }
.privacy-dialog::backdrop { background:rgb(23 23 37 / .25); }
.privacy-dialog[open] { animation:privacy-arrive .26s cubic-bezier(.22,1,.36,1); }
.privacy-panel { position:relative; padding:28px; }
.privacy-heading { display:flex; align-items:start; gap:20px; justify-content:space-between; }
.privacy-heading h2 { font-size:26px; letter-spacing:-.035em; }
.privacy-panel p { font-size:14px; line-height:1.75; margin-top:12px; color:var(--text); }
.privacy-panel a { display:inline-flex; align-items:center; min-height:44px; margin-top:12px; color:var(--brand); text-decoration:underline; }
.privacy-status { padding:10px 12px; background:#f0eff8; }
.privacy-category { border-top:1px solid var(--line); margin-top:20px; padding-top:20px; }
.privacy-category h3 { font-size:16px; }
.privacy-option { display:flex; align-items:center; gap:12px; min-height:44px; cursor:pointer; font-size:16px; }
.privacy-option input { width:22px; height:22px; flex-shrink:0; accent-color:var(--brand); }
.privacy-feedback { min-height:1.75em; }
@keyframes privacy-arrive { from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)} }
@media(max-width:640px) { .privacy-notice { right:16px; bottom:max(16px,env(safe-area-inset-bottom)); width:calc(100vw - 32px); padding:16px; } .privacy-notice p{font-size:13px} .privacy-actions{gap:6px;margin-top:12px} .privacy-button{font-size:12px;padding:10px 12px} .privacy-panel{padding:20px} .privacy-heading{display:block} .privacy-heading .privacy-button{margin-top:12px} .privacy-dialog{max-height:calc(100svh - 32px - env(safe-area-inset-bottom))} }
@media(prefers-reduced-motion:reduce){.privacy-notice,.privacy-dialog[open]{animation:none}}

/* Published corporate contacts; no visitor data collection surface. */
.contact-details { border-left:1px solid var(--line); padding-left:40px; }
.contact-company { color:var(--brand); font-size:22px; font-weight:550; margin:0 0 30px; }
.contact-details dl { margin:0; }
.contact-details dl > div { margin-bottom:28px; }
.contact-details dt { color:var(--muted); font-size:13px; margin-bottom:10px; }
.contact-details dd { margin:0; color:var(--text); font-size:17px; line-height:1.7; overflow-wrap:anywhere; }
.contact-details address { font-style:normal; }
.contact-details .text-link { margin-top:10px; }
@media (max-width:1020px) { .contact-details { border-left:0; border-top:1px solid var(--line); padding:28px 0 0; max-width:680px; } }
@media (max-width:640px) { .contact-company { font-size:20px; margin-bottom:24px; } .contact-details dd { font-size:15px; } }
@media (max-width:640px) {
  html[lang="ru"] body[data-page="privacy"] .legal-main h1 { font-size:clamp(26px,8vw,38px); }
}

/* Approved published email; inherit the corporate contact layout. */
.footer-contact { min-width:0; display:flex; flex-direction:column; align-items:flex-start; }
.footer-email,.contact-email,.corporate-email { color:var(--brand); min-height:44px; display:inline-flex; align-items:center; max-width:100%; overflow-wrap:anywhere; }
.footer-email { font-size:14px; line-height:1.5; }
.contact-email-block { margin-top:10px !important; }
.contact-email { font-size:18px; line-height:1.5; }
.footer-email:hover,.contact-email:hover,.corporate-email:hover { text-decoration:underline; text-underline-offset:4px; }
@media (max-width:1020px) and (min-width:641px) { .footer-contact { justify-self:end; align-items:flex-end; } }
@media (max-width:640px) { .footer-contact { min-width:0; } .footer-email { font-size:13px; } .contact-email { font-size:16px; } }

/* V4.1: scoped identity and capability surfaces; existing corporate/motion tokens stay intact. */
.founders-v41 { padding-bottom:0; }
.executive-intro { display:grid; grid-template-columns:1.25fr 1fr; gap:72px; align-items:end; padding:10px 0 72px; }
.executive-intro h1 { max-width:940px; margin:0; }
.executive-intro > p { margin:0 0 10px; color:var(--muted); font-size:20px; }
.executive-profile { border-top:1px solid var(--line); padding:58px 0 70px; }
.profile-head { margin-bottom:34px; }
.profile-index { display:block; color:var(--brand); font-size:11px; letter-spacing:.07em; margin-bottom:20px; }
.profile-head h2 { font-size:clamp(30px,3vw,44px); line-height:1.15; letter-spacing:-.045em; margin:0 0 14px; }
.profile-title { margin:0; color:var(--muted); font-size:16px; line-height:1.6; }
.profile-ownership { margin:10px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
.executive-grid { display:grid; grid-template-columns:minmax(0,.84fr) minmax(0,1.16fr); gap:70px; align-items:start; }
.profile-visual { min-width:0; }
/* Presentation attributes are the independent static fallback; CSS only frames the vector. */
.identity-module { position:relative; overflow:hidden; border:1px solid #d8d6e8; background:linear-gradient(140deg,#fff,#f5f5fa); color:#393185; color-scheme:light; }
.identity-module::after { content:""; pointer-events:none; position:absolute; inset:5px; border:1px solid rgba(255,255,255,.8); }
.identity-meta,.identity-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 18px; padding:17px 20px; font-size:10px; line-height:1.6; letter-spacing:.045em; }
.identity-meta > span,.identity-footer > span { white-space:nowrap; }
.identity-footer { color:#666a7c; border-top:1px solid #e8e7f1; }
.identity-canvas { display:block; width:100%; height:auto; aspect-ratio:3 / 2; max-height:340px; }
.identity-compact .identity-canvas { max-height:none; }
@media (forced-colors:active) {
  .identity-module { forced-color-adjust:none; background:#fff; }
  .joint-line,.joint-line-mobile { forced-color-adjust:none; }
}
.capability-line { color:var(--muted); font-size:10px; line-height:1.9; letter-spacing:.035em; overflow-wrap:anywhere; margin:20px 0 0; }
.profile-positioning { margin:0 0 36px; max-width:720px; font-size:18px; line-height:1.7; color:var(--ink); }
.expertise-heading { display:flex; justify-content:space-between; gap:16px; align-items:center; padding-bottom:18px; border-bottom:1px solid var(--line); }
.expertise-heading h3 { font-size:12px; font-weight:500; line-height:1.4; letter-spacing:.02em; margin:0; }
.expertise-heading > span { color:var(--brand); font-size:10px; }
.expertise-matrix { display:grid; grid-template-columns:1fr 1fr; position:relative; gap:0 20px; }
.expertise-entry { min-width:0; border-bottom:1px solid var(--line); }
.expertise-entry summary { cursor:pointer; display:grid; grid-template-columns:20px minmax(0,1fr) 12px; align-items:center; gap:10px; min-height:64px; padding:14px 0; list-style:none; font-size:13px; font-weight:500; line-height:1.55; transition:color 180ms ease; }
.expertise-entry summary::-webkit-details-marker { display:none; }
.expertise-number { font-size:9px; color:var(--muted); font-weight:400; }
.expertise-symbol { color:var(--brand); font-size:15px; font-weight:400; justify-self:end; }
.expertise-entry[open] summary { color:var(--brand); }
.expertise-entry[open] .expertise-symbol { transform:rotate(45deg); }
.expertise-detail { padding:12px 0 22px; }
.expertise-detail p { margin:0; font-size:15px; line-height:1.65; color:var(--muted); }
.expertise-help { margin:12px 0 0; font-size:11px; line-height:1.6; color:var(--muted); }
.joint-block { padding:70px 0 82px; border-top:1px solid var(--line); text-align:center; }
.joint-block > .section-label { justify-content:center; margin-bottom:30px; }
.joint-block h2 { font-size:clamp(36px,4vw,64px); line-height:1.08; letter-spacing:-.05em; margin:0 0 56px; }
.joint-system { position:relative; display:grid; grid-template-columns:1fr 160px 1fr; min-height:170px; gap:20px; align-items:center; }
.joint-line { position:absolute; inset:0; width:100%; height:100%; fill:none; stroke:var(--brand); stroke-width:.7; opacity:.32; pointer-events:none; }
.joint-line-mobile { display:none; fill:none; stroke:var(--brand); stroke-width:.7; opacity:.32; pointer-events:none; }
.joint-signature { position:relative; align-self:start; padding-top:0; }
.joint-name { font-size:17px; font-weight:500; }
.joint-signature p { font-size:10px; letter-spacing:.05em; color:var(--muted); line-height:1.8; }
.joint-core { position:relative; display:flex; flex-direction:column; gap:13px; align-items:center; padding:14px; background:var(--cool); }
.joint-core > span { font-size:12px; letter-spacing:.08em; font-weight:600; }
.home-founder-identities .preview-grid { margin-bottom:38px; }
.home-identity-cards { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.home-identity-card { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:24px; align-items:center; }
.home-identity-caption { min-width:0; }
.home-identity-caption h3 { font-size:22px; font-weight:500; line-height:1.25; letter-spacing:-.03em; margin:0 0 12px; }
.home-identity-caption > p:not(.capability-line) { font-size:12px; color:var(--muted); line-height:1.65; margin:0; }
.home-identity-caption .capability-line { font-size:10px; line-height:1.9; margin-top:18px; }
@media (min-width:1021px) {
  .expertise-matrix.is-enhanced { padding-bottom:170px; }
  .expertise-matrix.is-enhanced .expertise-detail { position:absolute; bottom:0; left:0; right:0; padding:24px 0 0; min-height:144px; }
  .expertise-matrix.is-enhanced .expertise-entry[open] { border-bottom-color:var(--brand); }
}
@media (max-width:1280px) {
  .executive-grid { gap:42px; }
  .home-identity-cards { gap:28px; }
  .home-identity-card { gap:18px; }
}
@media (max-width:1020px) {
  .executive-intro { gap:32px; padding-bottom:50px; }
  .executive-grid { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:30px; }
  .profile-positioning { font-size:16px; }
  .expertise-matrix { grid-template-columns:1fr; }
  .expertise-entry summary { min-height:54px; }
  .home-identity-card { grid-template-columns:1fr; gap:20px; }
  .identity-compact .identity-canvas { max-height:220px; }
}
@media (max-width:640px) {
  .executive-intro { display:block; padding:4px 0 40px; }
  .executive-intro h1 { font-size:clamp(35px,9.5vw,47px); line-height:1.12; }
  .executive-intro > p { font-size:16px; margin:24px 0 0; }
  .executive-profile { padding:34px 0 42px; }
  .profile-head { margin-bottom:26px; }
  .profile-index { margin-bottom:16px; font-size:10px; }
  .profile-head h2 { font-size:29px; margin-bottom:12px; }
  .profile-title { font-size:13px; }
  .executive-grid { grid-template-columns:1fr; gap:28px; }
  .identity-meta,.identity-footer { padding:13px 15px; font-size:10px; gap:7px 14px; }
  .capability-line { font-size:8px; margin-top:14px; }
  .profile-positioning { font-size:15px; line-height:1.75; margin-bottom:28px; }
  .expertise-heading { padding-bottom:14px; }
  .expertise-entry summary { min-height:58px; font-size:13px; }
  .expertise-detail { padding:4px 30px 22px; }
  .expertise-detail p { font-size:14px; }
  .joint-block { padding:42px 0 48px; }
  .joint-block h2 { font-size:36px; margin-bottom:34px; }
  .joint-system { grid-template-columns:1fr; gap:36px; }
  .joint-line { display:none; }
  .joint-line-mobile { display:block; position:absolute; top:0; bottom:0; width:120px; height:100%; left:calc(50% - 60px); stroke-width:1.25; opacity:.45; }
  .joint-signature { padding:0; background:var(--cool); }
  .joint-name { font-size:16px; }
  .joint-signature p { font-size:9px; margin:10px 0 0; }
  .joint-core { justify-self:center; padding:12px 26px; }
  .joint-core img { width:42px; height:auto; }
  .home-identity-cards { grid-template-columns:1fr; gap:30px; }
  .home-identity-card { grid-template-columns:140px minmax(0,1fr); gap:20px; }
  .identity-compact .identity-meta { font-size:6px; padding:9px; }
  .identity-compact .identity-footer { display:none; }
  .home-identity-caption h3 { font-size:18px; }
  .home-identity-caption > p:not(.capability-line) { font-size:11px; }
  .home-identity-caption .capability-line { font-size:9px; line-height:1.85; margin-top:14px; }
}
@media (max-width:360px) {
  .home-identity-cards { grid-template-columns:1fr; gap:26px; }
  .home-identity-card { grid-template-columns:130px minmax(0,1fr); gap:16px; }
  .home-identity-caption h3 { font-size:16px; }
  .identity-compact .identity-meta { display:none; }
  .home-identity-caption .capability-line { font-size:9px; }
}
@media (prefers-reduced-motion:reduce) {
  .expertise-entry summary { transition:none; }
}
