
*{box-sizing:border-box;margin:0;padding:0}
:root{--s-sm:clamp(12px,1.5vw,16px);--s-md:clamp(16px,2vw,24px);--s-lg:clamp(24px,3vw,40px);--s-xl:clamp(40px,5vw,64px);--s-2xl:clamp(64px,8vw,120px);--s-3xl:clamp(96px,12vw,180px);
--pad:clamp(20px,5vw,80px);--ease:cubic-bezier(.16,1,.3,1);
--paper:oklch(97.6% .009 85);--paper2:oklch(94.6% .014 80);--ink:oklch(25% .035 255);--ink2:oklch(40% .03 255);--mute:oklch(52% .02 255);--faint:oklch(66% .015 255);
--line:rgba(30,40,70,.10);--night:oklch(23% .035 255);--night2:oklch(29% .035 255);--pulse:oklch(58% .17 25);--serif:'Fraunces',Georgia,serif}
html{scroll-behavior:smooth;scroll-padding-top:84px}
html,body{overflow-x:clip}
body{font:18px/1.55 'Inter',system-ui,sans-serif;letter-spacing:-.01em;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
.w{width:min(1240px,100% - var(--pad)*2);margin-inline:auto}
.eye{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);display:flex;align-items:center;gap:10px}
.eye::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--pulse)}
.h2{font:350 clamp(38px,5.4vw,72px)/1 var(--serif);letter-spacing:-.025em;font-variation-settings:"opsz" 144}
.h2 em{font-style:italic;color:var(--ink2)}
.btn{display:inline-flex;align-items:center;gap:10px;border-radius:6px;padding:15px 22px;font-size:15px;font-weight:600;letter-spacing:-.005em;transition:transform .25s var(--ease),background .25s,box-shadow .25s}
.btn.dark{background:var(--ink);color:var(--paper)}
.btn.line{box-shadow:inset 0 0 0 1px rgba(30,40,70,.25)}
.btn svg{width:16px;height:16px}
@media (hover:hover){.btn:hover{transform:translateY(-2px)}.btn.dark:hover{background:var(--ink2)}.nav a:hover{color:var(--ink)}
 .svc:hover .n{color:var(--pulse)}.svc:hover h3{transform:translateX(6px)}.mate:hover img{transform:scale(1.03)}}

/* header */
.top{position:sticky;top:0;z-index:20;background:color-mix(in oklch,var(--paper) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.top .w{display:flex;align-items:center;gap:var(--s-lg);height:72px}
.logo{display:flex;align-items:center;gap:12px;font:450 21px/1 var(--serif);letter-spacing:-.02em}
.logo svg{width:34px;height:34px;color:var(--ink)}
.logo small{display:block;font:500 10.5px/1 'Inter';letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-top:5px}
.nav{display:flex;gap:var(--s-md);margin-left:auto;font-size:15px;color:var(--ink2)}
.nav a{transition:color .2s}
.top .tel{font-size:15px;font-weight:600;white-space:nowrap}
.top .btn{padding:11px 18px;font-size:14px}
@media (max-width:980px){.nav{display:none}.top .tel{margin-left:auto}}
@media (max-width:620px){.top .tel,.top .btn{display:none}}

/* hero */
.hero{padding:var(--s-xl) 0 0}
.hero .w{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s-xl);align-items:end}
.hero h1{font:330 clamp(46px,7.4vw,108px)/.95 var(--serif);letter-spacing:-.035em;font-variation-settings:"opsz" 144;margin:var(--s-md) 0 var(--s-lg)}
.hero h1 em{font-style:italic;font-weight:300}
.hero p.lead{font-size:clamp(18px,1.5vw,21px);color:var(--ink2);max-width:33ch}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:var(--s-lg)}
.hero figure{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:4/4.4}
.hero figure img{width:100%;height:100%;object-fit:cover;object-position:38% 50%}
.hero figcaption{position:absolute;left:14px;bottom:14px;background:color-mix(in oklch,var(--paper) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:6px;padding:12px 16px;font-size:14px;line-height:1.35;max-width:250px}
.hero figcaption b{display:block;font:450 17px/1.2 var(--serif)}
.facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:var(--s-xl)}
.facts div{padding:var(--s-md) var(--s-md) var(--s-md) 0;font-size:15px;color:var(--mute)}
.facts div+div{padding-left:var(--s-md);border-left:1px solid var(--line)}
.facts b{display:block;font:400 clamp(24px,2.4vw,32px)/1.1 var(--serif);color:var(--ink);letter-spacing:-.02em;margin-bottom:4px}
.ecg{display:block;width:100%;height:clamp(44px,6vw,80px);margin-top:var(--s-lg)}
.ecg path{fill:none;stroke:rgba(30,40,70,.13);stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.ecg .trace{stroke:var(--pulse);stroke-width:2;stroke-dasharray:.07 .93;animation:run 7s linear infinite}
@keyframes run{from{stroke-dashoffset:.07}to{stroke-dashoffset:-.93}}
@media (max-width:900px){.hero .w{grid-template-columns:1fr}.hero figure{aspect-ratio:4/3.2;order:-1}.facts{grid-template-columns:1fr}.facts div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}}

/* intro */
.intro{padding:var(--s-2xl) 0 var(--s-xl)}
.intro .w{display:grid;grid-template-columns:1fr 2.2fr;gap:var(--s-xl)}
.intro p.st{font:330 clamp(28px,3.4vw,46px)/1.18 var(--serif);letter-spacing:-.02em;text-wrap:pretty}
.intro p.st span{color:var(--faint)}
@media (max-width:800px){.intro .w{grid-template-columns:1fr;gap:var(--s-md)}}

/* services */
.svcs{padding:var(--s-xl) 0 var(--s-3xl)}
.svcs .w{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--s-2xl);align-items:start}
.svcs aside{position:sticky;top:110px}
.svcs aside p{color:var(--ink2);margin:var(--s-md) 0 var(--s-lg);max-width:36ch}
.svcs aside img{border-radius:8px;aspect-ratio:4/3;object-fit:cover;width:100%}
.svc{display:grid;grid-template-columns:56px 1fr;gap:0 var(--s-md);padding:var(--s-lg) 0;border-top:1px solid var(--line)}
.svc:last-child{border-bottom:1px solid var(--line)}
.svc .n{font:500 13px/2.4 'Inter';letter-spacing:.06em;color:var(--faint);transition:color .25s}
.svc h3{font:400 clamp(25px,2.4vw,32px)/1.15 var(--serif);letter-spacing:-.02em;transition:transform .4s var(--ease)}
.svc p{color:var(--ink2);margin-top:8px;max-width:52ch}
.svc small{display:block;margin-top:12px;font-size:14px;color:var(--mute)}
.svc small b{font-weight:600;color:var(--ink2)}
@media (max-width:900px){.svcs .w{grid-template-columns:1fr;gap:var(--s-lg)}.svcs aside{position:static}.svc{grid-template-columns:40px 1fr}}

/* doctor */
.doc{background:var(--paper2);padding:var(--s-2xl) 0}
.doc .w{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--s-2xl);align-items:center}
.doc figure img{border-radius:8px;aspect-ratio:4/5;object-fit:cover;width:100%}
.doc figure figcaption{font-size:14px;color:var(--mute);margin-top:12px}
.doc blockquote{font:300 italic clamp(24px,2.6vw,34px)/1.3 var(--serif);letter-spacing:-.015em;margin:var(--s-lg) 0;padding-left:var(--s-md);border-left:2px solid var(--pulse);text-wrap:pretty}
.doc .bio{color:var(--ink2);max-width:58ch}
.doc .bio+.bio{margin-top:1em}
.creds{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-md) var(--s-lg);margin-top:var(--s-lg);padding-top:var(--s-lg);border-top:1px solid var(--line)}
.creds dt{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.creds dd{font-size:16px;margin-top:4px}
@media (max-width:900px){.doc .w{grid-template-columns:1fr;gap:var(--s-lg)}.doc figure{max-width:440px}}
@media (max-width:520px){.creds{grid-template-columns:1fr}}

/* team */
.team{background:var(--night);color:oklch(94% .01 85);padding:var(--s-2xl) 0 var(--s-3xl)}
.team .eye{color:oklch(72% .02 255)}
.team .head{display:flex;justify-content:space-between;align-items:end;gap:var(--s-lg);flex-wrap:wrap;margin-bottom:var(--s-xl)}
.team .head p{max-width:40ch;color:oklch(78% .02 255)}
.team .h2 em{color:oklch(78% .03 255)}
.mates{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-lg)}
.mate .ph{border-radius:8px;overflow:hidden;aspect-ratio:4/5;background:var(--night2)}
.mate img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.mate h3{font:400 26px/1.15 var(--serif);letter-spacing:-.02em;margin-top:var(--s-md)}
.mate h3 span{font:500 13px 'Inter';letter-spacing:.04em;color:oklch(70% .02 255);margin-left:6px}
.mate .role{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:oklch(72% .09 25);margin-top:6px}
.mate p{font-size:16px;color:oklch(80% .015 255);margin-top:10px}
@media (max-width:900px){.mates{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);margin-inline:calc(var(--pad)*-1);padding-inline:var(--pad);scrollbar-width:none}.mate{scroll-snap-align:start}.mates::-webkit-scrollbar{display:none}}

/* first visit */
.visit{padding:var(--s-3xl) 0 var(--s-2xl)}
.visit .h2{max-width:14ch}
.steps{display:grid;grid-template-columns:repeat(4,1fr);margin-top:var(--s-xl);counter-reset:s}
.step{padding:var(--s-lg) var(--s-md) 0 0;border-top:1px solid var(--ink);position:relative}
.step::before{counter-increment:s;content:"0" counter(s);font:500 13px 'Inter';letter-spacing:.06em;color:var(--pulse)}
.step h3{font:400 23px/1.2 var(--serif);letter-spacing:-.015em;margin:var(--s-sm) 0 8px}
.step p{font-size:16px;color:var(--ink2)}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr;gap:var(--s-lg) var(--s-md)}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* faq */
.faq{padding:var(--s-xl) 0 var(--s-2xl)}
.faq .w{display:grid;grid-template-columns:1fr 1.6fr;gap:var(--s-xl)}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:var(--s-md);padding:var(--s-md) 0;font:400 clamp(20px,1.8vw,24px)/1.3 var(--serif);letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:300 26px/1 'Inter';color:var(--mute);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--ink2);padding:0 0 var(--s-md);max-width:60ch}
@media (max-width:800px){.faq .w{grid-template-columns:1fr;gap:var(--s-md)}}

/* contact */
.contact{background:var(--paper2);padding:var(--s-2xl) 0}
.contact .w{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--s-2xl)}
.alert{display:flex;gap:12px;align-items:flex-start;background:oklch(95% .03 25);color:oklch(38% .12 25);border-radius:6px;padding:14px 16px;font-size:15px;margin:var(--s-lg) 0}
.alert b{font-weight:600}
.info{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-lg)}
.info h4{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.info p,.info td{font-size:16px}
.info td{padding:2px 14px 2px 0}
.info a{border-bottom:1px solid var(--line)}
form{background:var(--paper);border-radius:8px;padding:var(--s-lg);display:grid;grid-template-columns:1fr 1fr;gap:var(--s-md);border:1px solid var(--line)}
form h3{grid-column:1/-1;font:400 26px/1.2 var(--serif);letter-spacing:-.015em}
form label{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--ink2)}
form .full{grid-column:1/-1}
form input,form select,form textarea{width:100%;border:1px solid rgba(30,40,70,.18);border-radius:6px;background:oklch(99% .004 85);padding:12px 14px;font-size:16px;font-weight:400}
form input:focus,form select:focus,form textarea:focus{outline:2px solid color-mix(in oklch,var(--ink) 35%,transparent);outline-offset:1px}
form textarea{min-height:110px;resize:vertical}
form small{grid-column:1/-1;font-size:13px;color:var(--mute)}
form .btn{border:0;cursor:pointer;justify-self:start}
form .ok{grid-column:1/-1;display:none;font-size:15px;color:var(--ink2)}
form.sent .ok{display:block}
@media (max-width:900px){.contact .w{grid-template-columns:1fr;gap:var(--s-xl)}}
@media (max-width:520px){form,.info{grid-template-columns:1fr}}

/* footer */
footer{background:var(--night);color:oklch(80% .015 255);padding:var(--s-xl) 0 calc(var(--s-lg) + env(safe-area-inset-bottom));font-size:15px}
footer .g{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--s-lg);padding-bottom:var(--s-lg);border-bottom:1px solid rgba(255,255,255,.10)}
footer .logo{color:oklch(95% .01 85)}footer .logo svg{color:oklch(95% .01 85)}footer .logo small{color:oklch(70% .02 255)}
footer h4{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:oklch(65% .02 255);margin-bottom:10px}
footer li{list-style:none;margin:4px 0}
footer .legal{padding-top:var(--s-md);font-size:13px;line-height:1.6;color:oklch(68% .02 255);display:grid;gap:8px}
footer .legal a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:800px){footer .g{grid-template-columns:1fr}}

/* phone dock */
.dock{display:none}
@media (max-width:620px){.dock{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px;border-radius:10px;background:color-mix(in oklch,var(--paper) 90%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(20,30,60,.16)}
 .dock .btn{justify-content:center;padding:13px}body{padding-bottom:84px}}

/* legal page */
.doc-page{padding:var(--s-2xl) 0 var(--s-3xl)}
.doc-page .w{max-width:760px}
.doc-page h1{font:330 clamp(40px,5.5vw,68px)/1 var(--serif);letter-spacing:-.03em;margin:var(--s-md) 0 var(--s-sm)}
.doc-page h2{font:400 26px/1.2 var(--serif);letter-spacing:-.015em;margin:var(--s-xl) 0 var(--s-sm)}
.doc-page p,.doc-page li{color:var(--ink2);margin-bottom:.9em}
.doc-page ul{padding-left:1.2em}
.doc-page .upd{font-size:14px;color:var(--mute)}

/* reveals: below-the-fold only */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}.ecg .trace{animation:none;stroke-dasharray:none;opacity:.5}html{scroll-behavior:auto}}
