/* Vitalis editorial redesign — source remains in refine-vitalis.mjs. */
:root{--font-display:'Inter Tight',Arial,sans-serif;--font-body:Inter,Arial,sans-serif;--font-technical:'IBM Plex Mono',Consolas,monospace;--surface-offwhite:#f4f4f2;--bg:#090e10;--panel:#11191c;--panel-light:#192427;--ink:#e9eeeb;--muted:#a2afad;--accent:#d3e8d8;--dark:#0b1613;--gutter:clamp(22px,3.2vw,62px);--body:clamp(17px,1.28vw,20px);--heading:clamp(48px,7vw,118px);--display:clamp(105px,20vw,360px);--ease:cubic-bezier(.2,.8,.1,1)}
/* Neutral text-selection colors: light gray on dark sections, charcoal on off-white sections. */
::selection{background:#b3b9be;color:#0c1115}
::-moz-selection{background:#b3b9be;color:#0c1115}
.encounter ::selection,.contact ::selection{background:#586067;color:#fff}
.encounter ::-moz-selection,.contact ::-moz-selection{background:#586067;color:#fff}
html{scroll-behavior:smooth;scroll-padding-top:95px}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--body);line-height:1.52}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:8;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.10'/%3E%3C/svg%3E");opacity:.095}
h1,h2,h3{font-family:var(--font-display);letter-spacing:-.052em;font-weight:600;line-height:.95}
h2{font-size:var(--heading);text-wrap:balance}
h3{font-size:clamp(32px,3.4vw,55px)}
p{max-width:68ch}p+p{margin-top:20px}
a:focus-visible,button:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
header{height:92px;min-height:92px;padding:0 var(--gutter);position:relative;display:flex;justify-content:space-between;align-items:center;background:transparent;z-index:5}
header .brand,footer .brand{font-family:var(--font-display);font-size:clamp(23px,2.2vw,30px);font-weight:700;letter-spacing:.015em;line-height:1}
header nav{display:flex;align-items:center;gap:clamp(20px,3vw,52px);font-size:15px;letter-spacing:.015em;font-weight:500}
header nav a{color:var(--muted);text-decoration:none;transition:color .2s}
header nav a:hover{color:var(--ink)}
.section{margin:0;padding:clamp(95px,9vw,135px) var(--gutter)}
.opening{min-height:calc(100svh - 92px);position:relative;padding:clamp(45px,8vh,90px) var(--gutter) clamp(45px,8vh,95px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;background:#0b1011}

.opening h1{font-size:clamp(100px,19vw,345px);font-weight:800;line-height:.82;letter-spacing:-.073em;white-space:nowrap;margin-left:-.015em;align-self:start;max-width:100%;text-transform:uppercase;transform-origin:left center;animation:hero-arrive 1s var(--ease) both}
.opening-bottom{display:flex;gap:clamp(28px,7vw,120px);align-items:flex-end;justify-content:space-between;position:relative;z-index:1}
.opening-bottom>div{max-width:57%;color:var(--muted);font-size:clamp(17px,1.5vw,23px)}
.opening-bottom .product-definition{font-size:clamp(29px,3.6vw,59px);font-family:var(--font-display);color:var(--ink);line-height:1;letter-spacing:-.025em;margin:0 0 17px}
.opening-bottom p:not(.product-definition){line-height:1.45}
.button{padding:17px 28px;display:inline-flex;align-items:center;justify-content:center;min-width:185px;min-height:56px;background:var(--accent);color:var(--dark);font-weight:700;font-size:15px;letter-spacing:.03em;border:0;border-radius:0;line-height:1.2;transition:background .25s,color .25s,transform .25s;white-space:nowrap}
.button:hover{background:transparent;color:var(--accent);transform:translateY(-3px)}
.button span,.contact-address span{display:none}
.section-heading{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:start;gap:clamp(40px,9vw,145px);margin:0 0 clamp(60px,9vw,135px)}
.section-heading>div,.section-heading>p{max-width:550px}
.section-heading p{color:var(--muted);max-width:46ch;font-size:clamp(18px,1.5vw,23px)}
.product{padding-top:clamp(105px,10vw,160px);padding-bottom:clamp(100px,9vw,150px)}
.product .section-heading{margin-bottom:68px}
.product .section-heading h2{max-width:none}
.model-workspace{display:block;position:relative;min-height:620px;height:min(74vw,780px);background:#111b1d;overflow:hidden;isolation:isolate;margin:0;width:100%}
#model-stage{width:100%;height:100%;min-height:100%;position:relative;overflow:hidden;cursor:grab}
#model-stage:active{cursor:grabbing}
#model-stage canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px}
.viewer-labels{position:absolute;left:clamp(24px,3vw,52px);top:clamp(24px,3vw,48px);z-index:2;pointer-events:none}
#model-selection{font-size:clamp(25px,3.2vw,44px);font-family:var(--font-display);font-weight:600;max-width:26ch;margin:0 0 8px;color:var(--ink);line-height:1.03}
#model-status{font-size:15px;color:var(--muted);max-width:32ch;line-height:1.45;margin:0}
.viewer-motion-note{font-family:var(--font-technical);position:absolute;right:clamp(24px,3vw,52px);bottom:clamp(24px,3vw,44px);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);z-index:2;pointer-events:none}
.viewer-caption{display:flex;justify-content:space-between;gap:35px;margin-top:20px;color:var(--muted);font-size:14px;line-height:1.45}
.viewer-caption p{max-width:51ch;margin:0}
.encounter{background:var(--surface-offwhite);color:#0b1515;padding-bottom:clamp(120px,12vw,210px)}
.encounter .section-heading p{color:#465957}
.encounter .encounter-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8vw;counter-reset:encounter}
.encounter .encounter-flow li{padding:42px 0 48px;counter-increment:encounter;background:transparent;color:#0b1515;box-shadow:none;border:0;border-radius:0}
.encounter-flow li::before{font-family:var(--font-technical);content:"0" counter(encounter);font-size:13px;font-weight:700;letter-spacing:.16em;display:block;margin-bottom:55px;color:#435653}
.encounter .encounter-flow h3{font-size:clamp(58px,6vw,105px);margin:0 0 24px;color:#0b1515}
.encounter .encounter-flow p{font-size:clamp(17px,1.45vw,23px);max-width:42ch;line-height:1.45;color:#304542}
.encounter-flow p.workflow-detail{font-size:13px;letter-spacing:.075em;text-transform:uppercase;color:#4a5e5b;margin-top:45px}
.medication{background:var(--bg);padding-top:clamp(105px,9vw,140px);padding-bottom:clamp(110px,9vw,145px)}
.medication-intro{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:9vw;align-items:end;margin-bottom:95px}
.medication-intro h2{max-width:11ch}
.medication-intro p{color:var(--muted);font-size:clamp(19px,1.7vw,26px)}
.dose-flow{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.dose-flow>div{border-top:2px solid var(--accent);padding-top:22px;min-height:245px}
.dose-flow dt{font-family:var(--font-display);font-size:clamp(29px,2.8vw,48px);line-height:1.04;margin-bottom:25px}
.dose-flow dd{margin:0;color:var(--muted);font-size:clamp(16px,1.14vw,19px);line-height:1.5}
.engineering-note{font-family:var(--font-technical);margin-top:65px;color:var(--muted);font-size:15px}
.development{background:#10191b}
.development .section-heading{margin-bottom:60px}
.development table{width:100%;border-collapse:collapse;text-align:left}
.development caption{text-align:left;color:var(--muted);font-size:14px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 20px}
.development th,.development td{padding:30px 15px 30px 0;border-bottom:1px solid rgba(211,232,216,.19);vertical-align:top}
.development th{width:30%;font-family:var(--font-display);font-size:clamp(27px,2.5vw,40px);font-weight:500;line-height:1.1}
.development td{color:var(--muted);font-size:clamp(16px,1.25vw,20px);max-width:60ch}
.development-notes{display:grid;grid-template-columns:1fr 1fr;gap:9vw;margin-top:50px}
.development-notes p{font-size:15px;color:var(--muted)}
.mission{display:grid;grid-template-columns:.6fr 1.4fr;gap:7vw;align-items:start;background:var(--bg);padding-top:clamp(110px,10vw,155px);padding-bottom:clamp(110px,10vw,155px)}
.mission h2{font-size:clamp(43px,5vw,80px);max-width:9ch;color:var(--muted)}
.mission>div{max-width:900px}
.mission .mission-statement{font-family:var(--font-display);font-size:clamp(48px,5.5vw,95px);line-height:.99;letter-spacing:-.02em;max-width:17ch;margin-bottom:75px;color:var(--ink)}
.mission>div>p:not(.mission-statement){color:var(--muted);font-size:clamp(19px,1.55vw,25px);max-width:48ch}
.contact{background:var(--surface-offwhite);color:var(--dark);padding-top:clamp(100px,8vw,135px);padding-bottom:clamp(100px,9vw,150px)}
.contact .section-heading{margin-bottom:clamp(85px,9vw,135px)}
.contact h2{font-size:clamp(75px,9vw,145px)}
.contact .section-heading p{color:#34514b}
.contact-address{display:block;font-family:var(--font-display);font-size:clamp(44px,7.7vw,140px);font-weight:600;letter-spacing:-.035em;line-height:1.06;width:max-content;max-width:100%;overflow-wrap:anywhere;transition:opacity .25s,transform .25s}
.contact-address:hover{opacity:.65;transform:translateY(-5px)}
footer{padding:55px var(--gutter) 50px;background:#080c0e;display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:145px;font-size:15px;color:var(--muted)}
footer p{margin:0}
footer .brand{color:var(--ink);font-size:23px}
.reveal{opacity:1;transform:none;transition:opacity .7s ease,transform .8s var(--ease)}
@media (prefers-reduced-motion:no-preference){.reveal:not(.is-visible){opacity:.001;transform:translateY(25px)}}
@keyframes hero-arrive{from{opacity:.05;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.product .section-heading{grid-template-columns:1fr;gap:30px}.product .section-heading h2{font-size:clamp(57px,7.7vw,85px)}.opening{min-height:660px}.opening h1{font-size:clamp(85px,18.7vw,238px)}.dose-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}.mission{grid-template-columns:.55fr 1.45fr}.model-workspace{min-height:530px;height:65vw}}
@media(max-width:700px){
:root{--gutter:20px;--heading:clamp(48px,14vw,83px);--body:17px}
header{height:75px;min-height:75px;padding:0 var(--gutter)}
header nav{gap:18px;font-size:12px}
header .brand{font-size:23px}
.opening{min-height:0;padding:65px var(--gutter) 65px;gap:60px}
.opening h1{font-size:19vw;line-height:.87;letter-spacing:-.072em}
.opening-bottom{display:block}
.opening-bottom>div{max-width:100%}
.opening-bottom .product-definition{font-size:36px;margin-bottom:17px}
.opening-bottom p:not(.product-definition){font-size:17px}
.opening-bottom .button{margin-top:38px;width:100%}
.section{padding:95px var(--gutter)}
.section-heading{display:block;margin-bottom:60px}
.section-heading>p,.section-heading>div{max-width:100%;margin-top:26px}
.section-heading p{font-size:18px}
.product .section-heading{margin-bottom:40px}
.product .section-heading h2{font-size:clamp(37px,10vw,48px);letter-spacing:-.055em}
.model-workspace{height:510px;min-height:510px;margin:0}
.viewer-labels{left:19px;top:24px}
#model-selection{font-size:30px}
#model-status{font-size:13px;max-width:24ch}
.viewer-motion-note{font-size:11px;right:18px;bottom:20px}
.viewer-caption{display:block;font-size:13px}
.viewer-caption p+p{margin-top:10px}
.encounter .encounter-flow{grid-template-columns:1fr}
.encounter-flow li{padding:32px 0 42px}
.encounter-flow li::before{margin-bottom:25px}
.encounter .encounter-flow h3{font-size:66px}
.encounter-flow p.workflow-detail{margin-top:27px}
.medication-intro{display:block;margin-bottom:58px}
.medication-intro p{margin-top:26px;font-size:18px}
.dose-flow{grid-template-columns:1fr;gap:0}
.dose-flow>div{min-height:auto;padding:20px 0 35px}
.dose-flow dt{font-size:37px;margin-bottom:13px}
.dose-flow dd{font-size:16px}
.engineering-note{margin-top:38px}
.development th{width:38%;font-size:26px}
.development td{font-size:15px}
.development th,.development td{padding-top:23px;padding-bottom:23px}
.development-notes{grid-template-columns:1fr;gap:20px}
.mission{display:block}
.mission h2{font-size:45px;margin-bottom:55px}
.mission-statement{font-size:clamp(43px,10vw,68px);margin-bottom:45px}
.mission>div>p:not(.mission-statement){font-size:18px}
.contact .section-heading{margin-bottom:150px}
.contact h2{font-size:85px}
.contact-address{font-size:clamp(43px,11vw,78px)}
footer{flex-wrap:wrap;align-items:flex-start;padding:48px var(--gutter);gap:25px}
footer .brand{width:100%}
}
@media(max-width:390px){header nav{gap:12px;font-size:11px}.opening h1{font-size:18.7vw}.contact-address{font-size:10.2vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.opening h1,.reveal{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}
