@font-face{font-family:Archivo;src:url('fonts/Archivo-Latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{color-scheme:light;--paper:#fafcff;--ink:#132c54;--slate:#4c5e78;--ice:#e7effc;--review:#344e6d;--review-ink:#f5f8ff;--review-soft:#d8e4f5;--line:#c3d1e6;--cobalt:#173ea5;--product-ink:#fff;--product-soft:#dbe6ff;--focus:#173ea5;--span-offset:112px;--page-width:1376px;--page-inset:48px;--band-inset:44px;--band-gap:18px;--motion-travel:32px}
@media(prefers-color-scheme:dark){html[data-theme=system]{color-scheme:dark;--paper:#101d36;--ink:#e8f0ff;--slate:#b7c6df;--ice:#1b3052;--review:#314d70;--review-ink:#f5f8ff;--review-soft:#d9e6f8;--line:#3a5278;--cobalt:#b6cdff;--product-ink:#142e60;--product-soft:#244570;--focus:#b6cdff}}
html[data-theme=dark],html:has(#theme-dark:checked){color-scheme:dark;--paper:#101d36;--ink:#e8f0ff;--slate:#b7c6df;--ice:#1b3052;--review:#314d70;--review-ink:#f5f8ff;--review-soft:#d9e6f8;--line:#3a5278;--cobalt:#b6cdff;--product-ink:#142e60;--product-soft:#244570;--focus:#b6cdff}
html[data-theme=light],html:has(#theme-light:checked){color-scheme:light;--paper:#fafcff;--ink:#132c54;--slate:#4c5e78;--ice:#e7effc;--review:#344e6d;--review-ink:#f5f8ff;--review-soft:#d8e4f5;--line:#c3d1e6;--cobalt:#173ea5;--product-ink:#fff;--product-soft:#dbe6ff;--focus:#173ea5}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);font:400 17px/1.6 Archivo,Arial,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,p{margin:0}
h1,h2{font-weight:550;letter-spacing:-.045em}
h2{font-size:29px;line-height:1.16}
h1 span,h2 span{display:block}
p+p{margin-top:17px}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}
a,summary,label{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
input,summary{font:inherit}
a:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:5px}
a:hover{text-decoration-thickness:2px}
::selection{background:var(--ink);color:var(--paper)}
.product ::selection{background:var(--product-ink);color:var(--cobalt)}
[hidden]{display:none!important}

/* One masthead; the theme icon, value and arrow form a single control. */
.masthead,main,footer{width:100%;max-width:var(--page-width);margin:0 auto}
.masthead,footer{flex:none}
.masthead{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:32px;padding:30px var(--page-inset) 28px;font-size:14px}
.identity{display:inline-flex;align-items:center;gap:13px;width:max-content;min-height:44px;font-size:20px;font-weight:600;letter-spacing:-.04em;text-decoration:none}
.identity svg{width:32px;height:32px;fill:currentColor}
.masthead nav{display:flex;gap:26px}
.masthead nav a{display:flex;align-items:center;min-height:44px;min-width:44px;text-decoration:none;position:relative}
.masthead nav a:after{content:'';height:1px;position:absolute;bottom:7px;left:0;right:0;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.masthead nav a:hover:after,.masthead nav a:focus-visible:after{transform:scaleX(1)}
.appearance{position:relative;z-index:5;font-size:13px}
.appearance summary{display:flex;align-items:center;gap:9px;min-height:44px;padding:0 12px;list-style:none;cursor:pointer;white-space:nowrap;border:1px solid var(--line);border-radius:4px;background:var(--paper);transition:border-color .16s ease}
summary::-webkit-details-marker{display:none}
.appearance summary:hover,.appearance[open] summary{background:var(--ice);border-color:var(--slate)}
.appearance-label,.appearance legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.appearance-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.3;flex:none}
.appearance-icon .half{fill:currentColor;stroke:none}
.appearance-state{min-width:43px;font-weight:500}
.appearance-state span{display:none}
html:has(#theme-system:checked) .theme-system,html:has(#theme-light:checked) .theme-light,html:has(#theme-dark:checked) .theme-dark{display:inline}
.chevron{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.4;flex:none;transition:transform .18s ease}
.appearance[open] .chevron{transform:rotate(180deg)}
.appearance fieldset{position:absolute;right:0;top:calc(100% + 8px);width:180px;margin:0;padding:6px;border:1px solid var(--line);border-radius:5px;background:var(--paper);box-shadow:0 8px 24px #00000016}
.appearance label{display:grid;grid-template-columns:18px 1fr 16px;align-items:center;gap:12px;min-height:44px;padding:0 11px;border-radius:2px;cursor:pointer}
.appearance label+label{margin-top:2px}
.appearance label:hover,.appearance label:has(input:checked){background:var(--ice)}
.appearance label:has(input:checked){font-weight:550}
.choice-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.appearance input{appearance:none;position:relative;width:16px;height:16px;margin:0;border:0;background:transparent;color:var(--ink);cursor:pointer}
.appearance input:checked:after{content:'';position:absolute;left:5px;top:3px;width:5px;height:9px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.appearance input:focus-visible{outline:none}
.appearance label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:-2px}
.appearance[open] fieldset{animation:menu-in .18s cubic-bezier(.2,.7,.2,1)}
@keyframes menu-in{from{transform:translateY(-4px)}to{transform:none}}

.skip-link{position:fixed;top:8px;left:8px;transform:translateY(-180%);background:var(--paper);padding:12px 18px;z-index:20}
.skip-link:focus{transform:none}
main{padding:0 var(--page-inset);flex:1 0 auto;display:flex;flex-direction:column;justify-content:center}
main:focus{outline:none}
.band{flex:none;width:calc(100% - var(--span-offset));padding:38px var(--band-inset);margin-bottom:var(--band-gap)}
.band:nth-child(even){margin-left:var(--span-offset)}
.company{display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:end;width:100%;padding:32px 0 50px}
.company h1{font-size:clamp(48px,4.8vw,68px);line-height:1.035;letter-spacing:-.055em;text-wrap:balance}
.company-lifecycle{display:block;margin-top:13px;font-size:16px;line-height:1.5;color:var(--slate);text-wrap:balance}
.company>p{font-size:19px;line-height:1.5;max-width:370px;margin-bottom:3px;text-wrap:pretty}

/* The product name and status share a row; there is no separate metadata shelf. */
.product{background:var(--cobalt);color:var(--product-ink);padding-top:34px;padding-bottom:38px;--panel:var(--cobalt);--panel-edge:color-mix(in srgb,var(--cobalt) 78%,var(--product-ink))}
.product-heading{display:flex;align-items:center;gap:16px 24px}
.product h2{font-size:clamp(38px,4.1vw,58px);line-height:1.1;font-weight:500;letter-spacing:-.055em}
.status{display:inline-flex;align-items:center;gap:7px;flex:none;white-space:nowrap;color:var(--product-soft);font-size:12px;line-height:1.5}
.status:before{content:'';width:6px;height:6px;border:1px solid currentColor;border-radius:50%;flex:none}
.product-description{max-width:660px;margin-top:18px;font-size:22px;line-height:1.4;text-wrap:pretty}
.direction,.practice,.contact{display:grid;grid-template-columns:1fr 1.35fr;column-gap:48px}
.direction{background:var(--ice);--panel:var(--ice)}
.direction p,.practice p{max-width:540px;color:var(--slate);text-wrap:pretty}
.practice{background:var(--review);color:var(--review-ink);--panel:var(--review);--panel-edge:#7893b5}
.practice p{color:var(--review-soft)}
.practice ::selection{background:var(--review-ink);color:var(--review)}
.review-register{display:block;position:relative;width:132px;height:22px;margin-top:29px;overflow:hidden;color:var(--review-soft)}
.review-register:before,.review-register:after{content:'';position:absolute;left:0;right:0;height:2px;background:currentColor;transform-origin:left}
.review-register:before{top:3px;transform:translateX(0) scaleX(.76)}
.review-register:after{top:16px;transform:translateX(24px) scaleX(.65);opacity:.55}
@media(max-width:900px),(max-width:1100px) and (orientation:portrait){.practice-heading{margin-bottom:22px}.practice .practice-heading h2{margin-bottom:0}.review-register{width:110px;height:15px;margin-top:19px}.review-register:before{top:1px}.review-register:after{top:12px}}

.contact{background:var(--ice);--panel:var(--ice);align-items:center;margin-bottom:0;padding-block:29px}
.contact p{font-size:13px;color:var(--slate);margin-bottom:3px}
.contact a{display:inline-flex;align-items:center;min-height:44px;font-size:clamp(19px,1.9vw,25px);letter-spacing:-.03em;white-space:nowrap}
footer{padding:25px var(--page-inset) 32px;color:var(--slate);font-size:12px;line-height:1.5}
footer small{font:inherit}


@media(min-width:1600px){
  :root{--span-offset:136px}
  .company{padding-top:40px;padding-bottom:58px}
}
@media(max-width:1080px){
  :root{--motion-travel:22px;--span-offset:56px;--page-inset:28px;--band-inset:30px}
  .masthead{gap:24px;padding-top:23px;padding-bottom:23px}
  .masthead nav{gap:20px}
  .identity{font-size:18px}
  .company{grid-template-columns:1.2fr 1fr;gap:35px;padding:28px 0 38px}
  .company h1{font-size:49px}
  .company>p{font-size:18px}
  .band{padding-top:31px;padding-bottom:31px}
  .direction,.practice,.contact{grid-template-columns:1fr 1.22fr;gap:30px}
  h2{font-size:27px}
  .product h2{font-size:44px}
  .product-description{font-size:20px}
}
@media(max-width:900px),(max-width:1100px) and (orientation:portrait){
  :root{--span-offset:32px}
  .company{grid-template-columns:1fr;gap:23px;align-items:start}
  .company>p{max-width:520px;margin:0}
  .direction,.practice,.contact{display:block}
  .direction h2,.practice h2{margin-bottom:19px}
  .direction h2 span,.practice h2 span{display:inline-block}
  .direction p,.practice p{max-width:620px}
  .contact h2{margin-bottom:13px}
}
@media(max-width:760px){
  .masthead{grid-template-columns:1fr auto;gap:3px 14px;padding-top:16px;padding-bottom:12px}
  .masthead nav{grid-column:1/-1;grid-row:2;gap:26px;font-size:13px}
  .appearance{grid-column:2;grid-row:1}
  .company h1{font-size:44px}
  .company>p{font-size:17px}
  h2{font-size:26px}
  .product h2{font-size:40px}
  .contact a{font-size:22px}
}
@media(max-width:600px){
  :root{--motion-travel:0px;--span-offset:0px;--page-inset:16px;--band-inset:22px;--band-gap:12px}
  body{font-size:16px}
  .masthead{padding-left:22px;padding-right:22px}
  .identity{font-size:18px;gap:10px}
  .identity svg{width:27px;height:27px}
  .appearance{font-size:12px}
  .appearance summary{gap:7px;padding-inline:10px}
  .appearance-state{min-width:40px}
  .appearance-icon{width:16px;height:16px}
  .band{padding-top:26px;padding-bottom:26px}
  .company{display:block;padding:15px 6px 28px}
  .company h1{font-size:clamp(31px,8.7vw,48px);line-height:1.075}
  .company>p{margin-top:22px;font-size:17px;max-width:390px;line-height:1.55}
  .product-heading{flex-direction:column;align-items:flex-start;gap:10px}
  .status{order:-1;font-size:11px;gap:6px}
  .product h2{font-size:clamp(29px,8.2vw,44px)}
  .product-description{margin-top:14px;font-size:18px;line-height:1.5}
  .direction h2,.practice h2{margin-bottom:18px}
  .direction p,.practice p{font-size:16px;line-height:1.65}
  .contact p{font-size:12px;line-height:1.5}
  .contact a{font-size:clamp(17px,5.3vw,23px)}
  footer{padding:22px 22px 28px;font-size:12px}
}
@media(max-width:350px){
  :root{--page-inset:12px;--band-inset:20px}
  .masthead{padding-inline:18px;column-gap:10px}
  .identity{font-size:17px;gap:8px}
  .company{padding-inline:6px}
  .product h2{font-size:28px}
  .product-description{font-size:17px}
  .contact a{font-size:17px}
  footer{padding-inline:18px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none!important;transition:none!important}
}

/* Scroll-driven registration: fixed text, moving surfaces, paired review strokes.
   The small controller also works without CSS scroll-timeline support. */
@media(prefers-reduced-motion:no-preference){
  .logo-bar{animation:mark-register .7s cubic-bezier(.22,.7,.22,1) both;animation-delay:calc(var(--bar)*45ms)}
  @keyframes mark-register{from{transform:translateX(calc(var(--bar-travel)*2))}to{transform:none}}
  html[data-motion=on] .band:not(.company){position:relative;isolation:isolate;background:transparent}
  html[data-motion=on] .band:not(.company)::before,html[data-motion=on] .band:not(.company)::after{content:'';position:absolute;inset:0;pointer-events:none}
  html[data-motion=on] .band:not(.company)::before{z-index:-1;background:var(--panel);transform:translate3d(var(--surface-shift,0px),0,0)}
  html[data-motion=on] .band:not(.company)::after{z-index:-2;background:var(--panel-edge,color-mix(in srgb,var(--panel) 76%,var(--ink)));transform:translate3d(var(--echo-shift,0px),0,0)}
  html[data-motion=on] .review-register:before{transform:translate3d(var(--stroke-a,0px),0,0) scaleX(var(--stroke-scale-a,.76))}
  html[data-motion=on] .review-register:after{transform:translate3d(var(--stroke-b,24px),0,0) scaleX(var(--stroke-scale-b,.65))}
  /* Keep the reading surface intact on phones and touch devices. Only the
     decorative strokes inside the review panel continue to follow scrolling. */
  @media(max-width:900px),(max-width:1100px) and (orientation:portrait),(pointer:coarse){
    html[data-motion=on] .band:not(.company){background:var(--panel)}
    html[data-motion=on] .band:not(.company)::before,html[data-motion=on] .band:not(.company)::after{content:none}
  }
  @media(hover:hover){.identity:hover .logo-bar{animation:mark-hover .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--bar)*25ms)}
    @keyframes mark-hover{0%,100%{transform:none}45%{transform:translateX(calc(var(--bar-travel)*2))}}
  }
}
@media(max-width:600px){.company-lifecycle{font-size:15px;margin-top:11px;max-width:34ch}}
