/* Kharetah Software. Night violet from the mark, a light page, one live contour field. */
@font-face{font-family:Manrope;src:url("assets/manrope-variable-latin.woff2") format("woff2");font-style:normal;font-weight:200 800;font-display:swap}

:root{
  --night:#170827;--plum:#2c1048;--violet:#6635ba;--violet-deep:#532698;--lavender:#cbb4f4;
  --ink:#1d1828;--muted:#5f586b;--line:#e0dce7;--page:#fbfafd;--tint:#f1edf8;
  --radius:16px;
  font-family:Manrope,system-ui,sans-serif;color:var(--ink);background:var(--page);color-scheme:light;scrollbar-color:#bbb0cd var(--page)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:3px solid var(--violet);outline-offset:6px;border-radius:4px}
::selection{background:#ddd0f4;color:#2e184b}
p{font-size:1rem;line-height:1.7;margin:0;color:var(--muted)}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.035em;line-height:1.08;text-wrap:balance}
h2{font-size:clamp(2.15rem,4vw,3.3rem)}
.wrap{width:min(1180px,calc(100% - 80px));margin-inline:auto}
.skip{position:fixed;top:12px;left:12px;padding:12px 18px;background:#fff;z-index:10;transform:translateY(-160%)}
.skip:focus{transform:none}

/* Header sits over the dark hero */
.header{position:absolute;top:0;left:0;right:0;z-index:3;height:88px;display:flex;align-items:center;justify-content:space-between;color:#fff}
.brand{display:flex;align-items:center;gap:10px;font-size:1.3rem;font-weight:600;letter-spacing:-.035em;line-height:1}
.brand img{flex-shrink:0}
.brand-sub{display:block;font-size:.75rem;font-weight:400;letter-spacing:.09em;line-height:1.5;margin-top:5px;opacity:.8}
nav{display:flex;align-items:center;gap:32px;font-size:.9rem}
nav a{padding-block:12px;color:#ffffffd9;transition:color .2s}
nav a:hover{color:#fff}
.nav-contact{border:1px solid #ffffff40;border-radius:10px;padding:11px 20px;transition:background .2s,border-color .2s}
.nav-contact:hover{background:#ffffff14;border-color:#ffffff80}
.header a:focus-visible{outline-color:var(--lavender)}

/* Hero: live contour map of an illustrative model surface */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--night);color:#fff;min-height:min(100svh,880px);display:flex;flex-direction:column;padding-top:88px}
.contour-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-2;display:block}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#170827f2 0%,#170827cc 30%,#17082700 62%),linear-gradient(0deg,#170827e6 0%,#17082700 26%)}
.hero-body{flex:1;display:flex;align-items:center;padding-block:56px 72px}
.hero-content{max-width:700px}
.hero h1{font-size:clamp(3rem,6.6vw,6rem);font-weight:650;line-height:1.01;letter-spacing:-.05em;max-width:11.5ch}
.hero-copy{color:#e4d9f5;font-size:1.125rem;line-height:1.7;max-width:460px;margin:30px 0 36px}
.hero-actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:15px 30px;border-radius:10px;background:var(--violet);color:#fff;font-size:.95rem;font-weight:600;transition:background .2s,transform .2s,box-shadow .2s}
.button:hover{background:var(--violet-deep);transform:translateY(-2px);box-shadow:0 6px 16px #6635ba30}
.button:active{transform:translateY(0) scale(.98)}
.hero .button{background:#fff;color:var(--night)}
.hero .button:hover{background:var(--lavender);box-shadow:0 8px 24px #0006}
.hero-secondary{display:inline-flex;align-items:center;min-height:44px;font-size:.95rem;color:#fff;border-bottom:1px solid #ffffff59;transition:border-color .2s}
.hero-secondary:hover{border-color:#fff}
.hero a:focus-visible{outline-color:var(--lavender)}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;padding-bottom:34px}
.hero-areas{list-style:none;margin:0;padding:22px 0 0;display:flex;flex-wrap:wrap;gap:10px 34px;border-top:1px solid #ffffff26;flex:1}
.hero-areas a{display:inline-block;padding-block:6px;font-size:.9rem;color:#ffffffc7;transition:color .2s}
.hero-areas a:hover{color:#fff}
.hero-caption{font-size:.75rem;color:#ffffff73;white-space:nowrap}

/* Entrance: one orchestrated moment */
@media(prefers-reduced-motion:no-preference){
  .hero h1,.hero-copy,.hero-actions,.hero-foot{animation:arrive .9s cubic-bezier(.16,1,.3,1) both}
  .hero-copy{animation-delay:.1s}.hero-actions{animation-delay:.18s}.hero-foot{animation-delay:.3s}
  .contour-canvas{animation:fade 1.6s ease-out both}
  @keyframes arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
  @keyframes fade{from{opacity:0}to{opacity:1}}
}

/* About */
.about{padding-block:110px 90px}
.about-intro{max-width:860px}
.about-intro>p{max-width:720px;font-size:1.125rem;line-height:1.8;margin-top:28px}
.purpose-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:48px;padding-top:30px;border-top:1px solid var(--line)}
.purpose-grid h3{font-size:1.45rem;margin-bottom:14px;letter-spacing:-.03em}
.purpose-grid p{max-width:470px}

/* Services */
.services{padding-bottom:96px}
.section-heading{margin-bottom:40px}
.section-heading h2{max-width:14ch}
.section-heading p{max-width:500px;margin-top:20px}
.service-grid{display:grid;grid-template-columns:1.05fr 1.4fr;gap:18px}
.service{border:1px solid var(--line);border-radius:var(--radius);padding:38px;background:#fff}
.service-label{font-size:.9rem;font-weight:600;color:var(--violet)}
.service h3{font-size:1.9rem;line-height:1.15;margin:26px 0 16px;letter-spacing:-.03em}
.service p{max-width:380px}
.service-main{grid-row:span 2;display:flex;flex-direction:column;background:var(--tint);border-color:#e3daf0}
.service-main h3{font-size:2.6rem;margin-top:36px;max-width:11ch}
.service-terms{list-style:none;margin:auto 0 0;padding:70px 0 0;display:flex;flex-direction:column;gap:16px;font-size:.92rem;color:#51445f}
.service-terms li{border-top:1px solid #d4cbe5;padding-top:16px}
.service-wide{grid-column:1/-1;background:#f5f3f8}
.service-wide p{max-width:640px}

/* Expertise */
.expertise{padding-bottom:110px}
.expertise h2{max-width:12ch}
.expertise-list{display:grid;grid-template-columns:1fr 1fr;gap:36px 64px;margin:44px 0 0}
.expertise-list>div{border-top:1px solid var(--line);padding-top:24px}
.expertise-list dt{font-size:1.35rem;font-weight:600;letter-spacing:-.025em;margin-bottom:12px}
.expertise-list dd{margin:0;max-width:480px;line-height:1.7;color:var(--muted)}

/* ModelHub: the same contour language, static */
.modelhub{position:relative;isolation:isolate;overflow:hidden;background:var(--night);color:#fff;padding-block:96px}
.modelhub::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#170827f5 0%,#170827d9 45%,#17082740 100%)}
.modelhub h2{color:#fff}
.modelhub-intro>p{max-width:640px;font-size:1.0625rem;line-height:1.75;margin-top:24px;color:#e4d9f5}
.modelhub-features{display:grid;grid-template-columns:1fr 1fr;gap:32px 64px;margin:48px 0 0;max-width:860px}
.modelhub-features>div{border-top:1px solid #ffffff2e;padding-top:22px}
.modelhub-features dt{font-size:1.1rem;font-weight:600;margin-bottom:10px;letter-spacing:-.02em}
.modelhub-features dd{margin:0;line-height:1.7;color:#cfc3e3;max-width:380px}

/* Approach */
.approach{padding-block:110px}
.steps{list-style:none;padding:0;margin:44px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.steps li{border-top:1px solid var(--line);padding-top:24px}
.step-number{font-size:.85rem;font-weight:600;color:var(--violet)}
.steps h3{font-size:1.55rem;margin:22px 0 14px;letter-spacing:-.03em}

/* Contact */
.contact{padding-bottom:88px;scroll-margin-top:32px}
.contact-panel{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;padding:64px;background:var(--tint);border-radius:var(--radius)}
.contact h2{font-size:clamp(2.6rem,4.3vw,3.8rem);max-width:11ch}
.contact-intro>p{max-width:390px;margin-top:24px}
.contact-info{margin:44px 0 0;display:grid;gap:26px}
.contact-info dt{font-size:.8rem;font-weight:650;color:var(--muted);margin-bottom:8px}
.contact-info dd{margin:0;font-size:.95rem;line-height:1.7;max-width:340px}
.contact-email{color:var(--violet);text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere}
.contact-form{display:grid;gap:22px;align-content:start}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-field{display:grid;gap:9px}
.form-field label{font-size:.875rem;font-weight:600;line-height:1.5}
.form-field label span{color:var(--violet)}
.form-field input,.form-field select,.form-field textarea{width:100%;min-width:0;border:1px solid #c5bcd4;border-radius:8px;padding:13px 14px;background:#fff;color:var(--ink);font:inherit;font-size:.95rem;line-height:1.5;caret-color:var(--violet);transition:border-color .2s}
.form-field textarea{resize:vertical;min-height:130px}
.form-field input:hover,.form-field select:hover,.form-field textarea:hover{border-color:var(--violet)}
.form-field input:focus-visible,.form-field select:focus-visible,.form-field textarea:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
.form-field textarea::placeholder{color:var(--muted)}
.form-submit{display:grid;gap:12px;justify-items:start}
.form-submit .button{border:0;cursor:pointer;font-family:inherit;gap:20px}
.form-submit .button:focus-visible{outline:3px solid var(--violet);outline-offset:4px}
.form-submit .button:disabled{background:#ddd5e9;color:#625372;cursor:not-allowed;transform:none;box-shadow:none}
.form-note,.form-status{font-size:.8rem;line-height:1.6;max-width:420px}
.form-status:empty{display:none}
@media(max-width:1023px){.contact-panel{gap:40px;padding:40px}.form-row{grid-template-columns:1fr}}

/* Footer */
.footer{border-top:1px solid var(--line);padding-block:30px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.footer .brand{font-size:1.1rem}
.footer p{font-size:.875rem}

@media(max-width:1023px) and (min-width:768px){
  .hero h1{font-size:clamp(3rem,7.6vw,4.6rem)}
  .hero::before{background:linear-gradient(90deg,#170827f2 0%,#170827b3 45%,#17082700 85%),linear-gradient(0deg,#170827e6 0%,#17082700 26%)}
  .hero-caption{display:none}
}

@media(max-width:767px){
  .wrap{width:calc(100% - 40px)}
  .header{height:auto;flex-direction:column;gap:14px;padding-top:20px}
  nav{gap:18px;font-size:.85rem}
  nav a{padding-block:10px}
  .nav-contact{padding:9px 13px;min-height:44px;display:inline-flex;align-items:center}
  .hero{min-height:0;padding-top:128px}
  .hero::before{background:linear-gradient(180deg,#170827f0 0%,#170827cc 42%,#1708274d 78%,#170827b3 100%)}
  .hero-body{padding-bottom:150px}
  .hero-body{padding-top:28px}
  .hero h1{font-size:clamp(2.6rem,11.5vw,3.6rem)}
  .hero-copy{font-size:1rem;margin:22px 0 28px}
  .hero-actions{gap:22px}
  .hero-foot{padding-bottom:26px}
  .hero-areas{gap:4px 22px}
  .hero-areas a{font-size:.85rem}
  .hero-caption{display:none}
  .about{padding-block:64px 60px}
  .about-intro>p{font-size:1rem;margin-top:22px}
  .purpose-grid{grid-template-columns:1fr;gap:30px;margin-top:32px}
  .services{padding-bottom:64px}
  .service-grid{grid-template-columns:1fr;gap:16px}
  .service{padding:28px}
  .service-main{grid-row:auto}
  .service-main h3{font-size:2.2rem;margin-top:26px}
  .service h3{font-size:1.7rem}
  .service-terms{padding-top:30px}
  .service-wide{grid-column:auto}
  .expertise{padding-bottom:64px}
  .expertise-list{grid-template-columns:1fr;gap:28px;margin-top:30px}
  .expertise-list dt{font-size:1.25rem}
  .modelhub{padding-block:64px}
  .modelhub::before{background:#170827d9}
  .modelhub-intro>p{font-size:1rem}
  .modelhub-features{grid-template-columns:1fr;gap:26px;margin-top:36px}
  .approach{padding-block:64px}
  .steps{grid-template-columns:1fr;gap:30px;margin-top:30px}
  .contact{padding-bottom:45px}
  .contact-panel{grid-template-columns:1fr;padding:32px 22px;gap:36px}.contact-info{margin-top:28px;gap:20px}.contact h2{margin-inline:0}.form-row{grid-template-columns:1fr}
  .contact h2{font-size:2.6rem}
  .footer{flex-wrap:wrap;padding-block:26px}
  .footer .brand{width:100%}
  .footer p{width:100%}
  .contact-email{font-size:1rem;overflow-wrap:anywhere}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
  .button:hover{transform:none}
}

/* Approved full wordmark */
.brand .brand-logo{width:164px;height:auto;display:block}
.footer{background:var(--night);color:#fff;width:100%;padding-inline:max(40px,calc((100% - 1180px)/2));border-top:0}
.footer p{color:#e4d9f5}
.footer .brand .brand-logo{width:144px}
@media(max-width:767px){.brand .brand-logo{width:144px}.footer{padding-inline:20px}}
