:root{--ink:#1c1230;--purple:#6a2c9c;--purple-d:#431b66;--lav:#efe8f6;--sand:#f6f2ea;--film:#0f0a1c;--amber:#f0b35a;--mute:#5d5570;--line:#d9cfe6}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{overflow-x:clip;font-family:'Figtree',system-ui,sans-serif;font-size:1.08rem;line-height:1.65;color:var(--ink);background:var(--sand)}
h1,h2,h3,h4{font-family:'Instrument Serif',Georgia,serif;font-weight:400;line-height:1.05;color:var(--ink)}
h2{font-size:clamp(2.3rem,5vw,3.6rem)}
h3{font-size:1.7rem}
a{color:var(--purple)}
.eyebrow{font-family:'DM Mono',monospace;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--purple);margin-bottom:.6rem}
.util{background:var(--film);color:#e9e1f5;font-size:.88rem;padding:.4rem 0}
.util a{color:var(--amber);text-decoration:none;font-weight:700}
.navbar{background:var(--sand);border-bottom:1px solid var(--line)}
.navbar-brand{font-family:'Instrument Serif',serif;font-size:1.7rem;line-height:1;color:var(--purple-d)!important;display:flex;flex-direction:column}
.navbar-brand small{font-family:'DM Mono',monospace;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-top:.25rem}
.nav-link{font-weight:600;color:var(--ink)!important;font-size:.95rem}
.nav-link:hover{color:var(--purple)!important}
.btn-pur{background:var(--purple);color:#fff;border:2px solid var(--purple);border-radius:999px;font-weight:700;padding:.7rem 1.6rem}
.btn-pur:hover{background:var(--purple-d);border-color:var(--purple-d);color:#fff}
.btn-out{background:transparent;color:#fff;border:2px solid #fff;border-radius:999px;font-weight:700;padding:.7rem 1.6rem}
.btn-out:hover{background:#fff;color:var(--ink)}
.btn-ink{background:transparent;color:var(--purple-d);border:2px solid var(--purple-d);border-radius:999px;font-weight:700;padding:.7rem 1.6rem}
.btn-ink:hover{background:var(--purple-d);color:#fff}
/* hero: x-ray light box */
.hero{background:var(--film);color:#fff;padding:4.5rem 0 5rem;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 78% 40%,rgba(106,44,156,.55),transparent 70%)}
.hero .container{position:relative}
.hero h1{color:#fff;font-size:clamp(2.8rem,7vw,5.2rem);text-shadow:0 2px 20px rgba(0,0,0,.6)}
.hero h1 em{color:var(--amber)}
.hero .lead{color:#e7def3;max-width:34rem;text-shadow:0 1px 12px rgba(0,0,0,.7)}
.hero .eyebrow{color:var(--amber)}
.film{position:relative;background:#000;border:10px solid #1a1430;border-radius:14px;box-shadow:0 0 0 2px #3a2d5c,0 24px 60px rgba(0,0,0,.55)}
.film img{display:block;width:100%;height:auto;border-radius:4px}
.film .mark{position:absolute;top:10px;left:14px;font-family:'DM Mono',monospace;font-size:.8rem;color:#fff;opacity:.85;letter-spacing:.1em}
.film .mark.r{left:auto;right:14px}
.film-cap{font-family:'DM Mono',monospace;font-size:.72rem;letter-spacing:.14em;color:#b9aad2;text-transform:uppercase;margin-top:.8rem}
.ins-strip{background:var(--purple-d);color:#fff;font-size:.95rem}
.ins-strip .container{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;justify-content:center;padding-top:.8rem;padding-bottom:.8rem;text-align:center}
.ins-strip b{color:var(--amber)}
/* vertebrae divider */
.spine{display:flex;justify-content:center;gap:6px;align-items:flex-end;padding:1.6rem 0 0;opacity:.9}
.spine i{display:block;background:var(--purple);border-radius:8px 8px 14px 14px;opacity:.85}
.spine i:nth-child(1){width:16px;height:12px}.spine i:nth-child(2){width:20px;height:14px}.spine i:nth-child(3){width:24px;height:16px}.spine i:nth-child(4){width:28px;height:18px}.spine i:nth-child(5){width:32px;height:20px}.spine i:nth-child(6){width:28px;height:18px}.spine i:nth-child(7){width:24px;height:16px}.spine i:nth-child(8){width:20px;height:14px}.spine i:nth-child(9){width:16px;height:12px}
section{padding:5rem 0}
.alt{background:var(--lav)}
.cond-list{list-style:none;padding:0;margin:0;columns:2;column-gap:2rem}
.cond-list li{padding:.45rem 0;border-bottom:1px dashed var(--line);break-inside:avoid;font-weight:600}
.cond-list li::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--purple);margin-right:.7rem}
.steps{counter-reset:s;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr);margin-top:2rem}
.step{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.2rem}
.step b{font-family:'DM Mono',monospace;color:var(--purple);font-size:.8rem;letter-spacing:.12em}
.doc{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;height:100%}
.doc .portrait{background:var(--film);padding:1rem}
.doc .portrait img{width:100%;aspect-ratio:4/4.6;object-fit:cover;object-position:50% 25%;border-radius:6px;display:block}
.doc .body{padding:1.5rem}
.cred{font-size:.92rem;color:var(--mute);columns:1}
.cred li{margin-bottom:.15rem}
.modal-free summary{cursor:pointer;font-weight:700;color:var(--purple)}
.svc{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;height:100%}
.svc img{width:100%;height:190px;object-fit:cover;display:block}
.svc div{padding:1.3rem}
.svc h3{font-size:1.5rem;margin-bottom:.4rem}
.svc p{font-size:.98rem;margin:0}
.price-row{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px dashed #b9a6d0;padding:.55rem 0;font-weight:600}
.price-row span:last-child{font-family:'Instrument Serif',serif;font-size:1.7rem;color:var(--purple-d)}
.panel{background:#fff;border-radius:18px;padding:2rem;border:1px solid var(--line)}
.glass{border-radius:120px 120px 14px 14px;width:100%;max-width:210px;height:auto;display:block;border:6px solid var(--purple-d)}
.accordion-button:not(.collapsed){background:var(--lav);color:var(--purple-d)}
.accordion-button:focus{box-shadow:0 0 0 .2rem rgba(106,44,156,.25)}
.accordion-item{border-color:var(--line)}
.quote-band{background:var(--purple-d);color:#fff;padding:4.5rem 0}
.quote-band blockquote{font-family:'Instrument Serif',serif;font-size:clamp(1.8rem,4vw,2.9rem);line-height:1.15;max-width:52rem;margin:0 auto 1rem;text-align:center;color:#fff}
.quote-band cite{display:block;text-align:center;font-family:'DM Mono',monospace;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);font-style:normal}
.tcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.5rem;height:100%}
.tcard p{margin-bottom:.8rem}
.tcard cite{font-style:normal;font-weight:700;color:var(--purple)}
.hours{width:100%;border-collapse:collapse}
.hours td{padding:.45rem 0;border-bottom:1px dashed var(--line)}
.hours td:last-child{text-align:right;font-weight:600}
.map{width:100%;height:100%;min-height:340px;border:0;border-radius:16px}
.big-phone{font-family:'Instrument Serif',serif;font-size:clamp(2.2rem,5vw,3.2rem);color:var(--purple-d);text-decoration:none;line-height:1}
footer{background:var(--film);color:#cfc3e3;padding:3.5rem 0 2rem;font-size:.95rem}
footer a{color:var(--amber)}
footer .flogo{background:#fff;border-radius:10px;padding:.6rem .9rem;display:inline-block}
footer .flogo img{height:44px;width:auto;display:block}
.ip-logo{height:150px;width:auto}
@media(max-width:991px){.steps{grid-template-columns:1fr 1fr}section{padding:3.6rem 0}.cond-list{columns:1}}
@media(max-width:575px){.steps{grid-template-columns:1fr}.hero{padding:3rem 0 3.5rem}.navbar-brand{font-size:1.35rem}}
