@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Playfair+Display:ital,wght@0,500&display=swap');
:root{--black:#080808;--cream:#f4f1eb;--line:#d7d1c7;--gold:#b49a68;--muted:#67635d}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--black);font-family:Inter,Arial,sans-serif}a{text-decoration:none;color:inherit}.site-header{height:82px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:rgba(244,241,235,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.logo{display:flex;flex-direction:column;letter-spacing:.11em}.logo strong{font-size:18px}.logo span{font-size:7px;letter-spacing:.26em;color:#716d66;margin-top:5px}.nav-links{display:flex;gap:30px;align-items:center;font-size:12px}.nav-links a:hover{opacity:.55}.nav-cta{border:1px solid #111;padding:12px 18px}.menu-toggle{display:none;border:0;background:none;font-size:23px}.hero{position:relative;min-height:calc(100vh - 82px);display:flex;align-items:center;padding:8vw 10vw;color:white;background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.28)),linear-gradient(135deg,#27241f,#7e7567 48%,#191817)}.hero-content{position:relative;z-index:1;max-width:800px}.kicker{font-size:10px;font-weight:600;letter-spacing:.28em;margin:0 0 20px;color:var(--gold)}.hero h1,h2{font-family:"Playfair Display",Georgia,serif;font-weight:500;line-height:1.03}.hero h1{font-size:clamp(54px,8vw,105px);margin:0 0 26px}.hero h1 i{color:#ddd}.hero-text{font-size:17px;line-height:1.75;max-width:590px;color:#e7e5e1}.hero-actions{display:flex;gap:28px;align-items:center;margin-top:34px}.button{display:inline-block;padding:15px 21px;border:1px solid transparent;font-size:11px;font-weight:600;letter-spacing:.03em;cursor:pointer}.button-light{background:#fff;color:#080808}.button-dark{background:#080808;color:#fff}.button-outline-light{border-color:#fff;color:#fff;margin-top:25px}.text-link{font-size:12px;color:#fff}.text-link span{margin-left:8px}.hero-note{position:absolute;right:5vw;bottom:35px;font-size:8px;letter-spacing:.24em;color:#c7c1b7}.section{padding:110px 10vw}.section-intro{max-width:720px}.section h2{font-size:clamp(42px,5vw,68px);margin:0 0 25px}.section-intro>p:last-child{line-height:1.8;color:var(--muted)}.service-list{display:grid;grid-template-columns:repeat(4,1fr);margin-top:65px;border-top:1px solid var(--line)}.service-list article{min-height:245px;padding:28px 24px 20px 0;border-right:1px solid var(--line)}.service-list article:not(:first-child){padding-left:24px}.service-list span{font-size:10px;color:var(--gold)}.service-list h3{font-size:18px;margin:30px 0 14px}.service-list p{font-size:13px;line-height:1.75;color:var(--muted);max-width:220px}.service-list a{display:inline-block;margin-top:16px;font-size:11px;font-weight:600}.eyewear{display:grid;grid-template-columns:1fr 1fr;min-height:650px;background:var(--black);color:#fff}.eyewear-copy{padding:100px 10vw;display:flex;flex-direction:column;justify-content:center}.eyewear-copy h2{font-size:clamp(45px,5.5vw,74px);margin:0 0 25px}.eyewear-copy p:not(.kicker){max-width:480px;color:#b9b6b0;line-height:1.8}.eyewear-visual{margin:55px 10vw 55px 0;border:1px solid #3c3b38;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,#48433b,#161615 60%)}.visual-label{text-align:center;letter-spacing:.25em;font-size:11px;color:#d1ccc2}.visual-label small{font-size:7px;color:#8e8b84}.about{display:grid;grid-template-columns:1fr 1fr;gap:90px}.about-copy{max-width:540px;font-size:16px;line-height:1.85;color:#4e4b46}.booking{padding:110px 10vw;background:#e9e3d9}.booking .section-intro{margin-bottom:45px}.booking form{max-width:850px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}label{display:flex;flex-direction:column;gap:9px;font-size:10px;font-weight:600;letter-spacing:.03em}input,select{width:100%;padding:15px 14px;border:1px solid #bdb6ab;background:#f8f5ef;font:inherit;font-size:13px;outline:none}input:focus,select:focus{border-color:#555}.booking-status{font-size:12px;margin-top:16px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:80px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;border-top:1px solid var(--line);padding-top:25px}.contact-grid span{font-size:9px;letter-spacing:.2em;color:#777}.contact-grid p{font-size:13px;line-height:1.6}.footer-logo strong{font-size:14px}footer{display:flex;justify-content:space-between;align-items:center;padding:35px 10vw;background:#080808;color:#fff;font-size:10px}footer p{color:#9c9993}
@media(max-width:800px){.site-header{height:72px;padding:0 7vw}.nav-links{display:none}.menu-toggle{display:block}.hero{min-height:78vh;padding:75px 7vw}.hero h1{font-size:54px}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.hero-note{display:none}.section{padding:75px 7vw}.service-list{grid-template-columns:1fr;margin-top:45px}.service-list article,.service-list article:not(:first-child){border-right:0;border-bottom:1px solid var(--line);padding:25px 0;min-height:auto}.eyewear{grid-template-columns:1fr}.eyewear-copy{padding:75px 7vw}.eyewear-visual{min-height:360px;margin:0 7vw 70px}.about,.contact{grid-template-columns:1fr;gap:45px}.form-row{grid-template-columns:1fr}footer{padding:30px 7vw;display:block}footer p{margin-top:20px}}

.booking-choice{margin-bottom:28px}.choice-title{font-size:11px;font-weight:600;letter-spacing:.03em;margin:0 0 12px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice-card{display:block;border:1px solid #c8c0b5;background:#f8f5ef;padding:18px;cursor:pointer;transition:.15s ease}.choice-card input{position:absolute;opacity:0;width:1px;height:1px}.choice-card.selected{border-color:#080808;box-shadow:inset 0 0 0 1px #080808}.choice-content{display:flex;flex-direction:column;gap:7px}.choice-content strong{font-size:13px}.choice-content small{font-size:11px;line-height:1.5;color:#777}.account-fields{margin-bottom:20px}.account-note{font-size:11px;line-height:1.6;color:#666;margin:0 0 14px;padding:12px 14px;border-left:2px solid var(--gold);background:rgba(255,255,255,.28)}.account-fields[hidden]{display:none}
@media(max-width:800px){.choice-grid{grid-template-columns:1fr}}

.nav-account{font-size:12px;font-weight:600}.account-section{padding:100px 10vw;background:#f0ebe2;border-top:1px solid var(--line)}.account-panels{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:1000px}.account-panel{background:#f8f5ef;border:1px solid #d2cbc0;padding:35px}.panel-kicker{font-size:9px;letter-spacing:.22em;color:var(--gold);font-weight:600;margin:0 0 12px}.account-panel h3{font-family:"Playfair Display",Georgia,serif;font-size:34px;font-weight:500;margin:0 0 25px}.account-panel form{display:flex;flex-direction:column;gap:17px}.account-panel label{display:flex;flex-direction:column;gap:8px;font-size:10px;font-weight:600}.account-panel .button{margin-top:4px}.account-status{font-size:11px;line-height:1.5;margin:0}.guest-note{font-size:11px;color:#777;line-height:1.6;margin-top:22px}.choice-grid.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:800px){.account-panels{grid-template-columns:1fr}.choice-grid.three{grid-template-columns:1fr}.account-section{padding:75px 7vw}.account-panel{padding:25px}.nav-account{display:none}}

.contact-grid a{text-decoration:underline;text-underline-offset:3px}.practice-hours{display:flex;gap:14px;align-items:center;margin-top:22px;font-size:11px;color:#625e57}.practice-hours strong{font-weight:600;color:#111}.practice-hours span{color:#777}
@media(max-width:800px){.practice-hours{align-items:flex-start;flex-direction:column;gap:5px}}

.booking-mode-fields{margin-bottom:22px}.small-link{font-size:11px;color:#777;margin:0}.small-link a{text-decoration:underline;color:#222}.choice-grid.two{grid-template-columns:1fr 1fr}
@media(max-width:800px){.choice-grid.two{grid-template-columns:1fr}}

.account-page{min-height:100vh}.account-screen{min-height:calc(100vh - 82px);display:grid;grid-template-columns:1fr minmax(360px,520px);gap:90px;align-items:center;padding:90px 10vw;background:#f0ebe2}.account-screen-copy{max-width:650px}.account-screen-copy h1{font-family:"Playfair Display",Georgia,serif;font-weight:500;font-size:clamp(52px,7vw,92px);line-height:1.02;margin:0 0 25px}.account-screen-copy>p:last-child{max-width:560px;font-size:15px;line-height:1.85;color:var(--muted)}.account-panel-main{background:#f8f5ef;border:1px solid #d2cbc0;padding:40px}.account-panel-main h2{font-family:"Playfair Display",Georgia,serif;font-size:42px;font-weight:500;margin:0 0 28px}.account-panel-main form{display:flex;flex-direction:column;gap:18px}.account-panel-main label{font-size:10px;font-weight:600}.account-status{font-size:11px;line-height:1.5;margin:0;color:#4f4b45}.account-switch{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line);font-size:11px;color:#777}.button-outline-dark{border-color:#111;color:#111;background:transparent;padding:11px 14px}.button-outline-dark:hover{background:#111;color:#fff}.nav-links a[aria-current="page"]{font-weight:600}.mobile-open{display:flex!important;position:absolute;top:72px;left:0;right:0;padding:18px 7vw;background:var(--cream);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:18px}.mobile-open .nav-cta{width:auto}
@media(max-width:800px){.account-screen{min-height:auto;grid-template-columns:1fr;gap:45px;padding:75px 7vw}.account-screen-copy h1{font-size:54px}.account-panel-main{padding:25px}.account-switch{align-items:flex-start;flex-direction:column}.account-screen .account-panel-main{order:2}}

/* Patient portal */
.portal-hero{max-width:1180px;margin:0 auto;padding:72px 24px 36px;display:grid;grid-template-columns:1.5fr .8fr;gap:32px;align-items:end}
.portal-hero h1{font-size:clamp(2.4rem,5vw,4.6rem);line-height:.98;margin:8px 0 18px;letter-spacing:-.04em}.portal-hero p:not(.kicker){max-width:680px;color:#5f5f5f;font-size:1.05rem;line-height:1.7}
.portal-profile{border:1px solid #ddd;background:#fff;padding:20px;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center}.portal-profile .avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-weight:700}.portal-profile small{display:block;color:#777;margin-top:3px}.portal-profile .button{grid-column:1/-1}
.portal-grid{max-width:1180px;margin:0 auto;padding:20px 24px 80px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.portal-card{border:1px solid #dedede;background:#fff;padding:28px}.portal-card-wide{grid-column:1/-1}.card-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;border-bottom:1px solid #e4e4e4;padding-bottom:18px}.portal-card h2{margin:5px 0 18px}.text-link{color:#111;font-weight:700}.empty-state{text-align:center;padding:44px 20px}.empty-icon{font-size:2rem;margin-bottom:10px}.empty-state h3{margin:5px 0}.empty-state p{max-width:540px;margin:0 auto;color:#777;line-height:1.6}.portal-details{margin:0 0 22px}.portal-details div{padding:11px 0;border-bottom:1px solid #eee;display:flex;justify-content:space-between;gap:20px}.portal-details dt{color:#777}.portal-details dd{margin:0;font-weight:600}.portal-list>div{padding:14px 0;border-bottom:1px solid #eee}.portal-list span,.portal-list small{display:block}.portal-list small{color:#777;margin-top:3px}.muted{color:#777;line-height:1.65;margin-bottom:22px}
@media(max-width:760px){.portal-hero{grid-template-columns:1fr;padding-top:48px}.portal-grid{grid-template-columns:1fr}.portal-card-wide{grid-column:auto}.card-heading{display:block}.text-link{display:inline-block;margin-top:5px}.portal-profile{margin-top:4px}}

/* AI Frame Fitting */
.ai-hero{max-width:1220px;margin:0 auto;padding:76px 24px 42px;display:flex;justify-content:space-between;gap:50px;align-items:end}.ai-hero h1{font-family:"Playfair Display",Georgia,serif;font-size:clamp(48px,7vw,88px);line-height:.98;margin:0 0 22px}.ai-hero h1 i{font-weight:500;color:#6b6254}.ai-hero>div:first-child>p:not(.kicker){max-width:620px;color:#666;line-height:1.7;font-size:17px}.ai-steps{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ai-steps span{border:1px solid #d9d4cc;padding:10px 13px;font-size:11px;color:#777}.ai-steps span.active{border-color:#111;color:#111}.ai-steps b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#111;color:#fff;margin-right:7px}.ai-workspace{max-width:1220px;margin:0 auto;padding:0 24px 50px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:20px}.capture-panel,.fit-info{background:#fff;border:1px solid #ddd8cf}.capture-panel{padding:28px}.fit-info{padding:30px;align-self:start}.panel-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.panel-heading h2,.fit-info h2,.fit-results h2{font-family:"Playfair Display",Georgia,serif;font-weight:500;margin:4px 0 10px}.capture-intro{color:#666;line-height:1.6}.capture-badge{font-size:10px;text-transform:uppercase;letter-spacing:.12em;padding:8px 10px;border:1px solid #d6d1c8}.capture-badge.ready{border-color:var(--gold);color:#8e753e}.capture-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(230px,.75fr);gap:18px;margin-top:24px}.camera-stage{min-height:470px;background:#20201e;position:relative;display:grid;place-items:center;overflow:hidden}.camera-stage video,.camera-stage img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.camera-placeholder{color:#fff;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;z-index:2}.camera-placeholder small{color:#c9c6c0}.face-guide{width:220px;height:310px;border:2px dashed rgba(255,255,255,.8);border-radius:48% 48% 44% 44%;position:relative}.face-guide:before,.face-guide:after{content:"";position:absolute;background:rgba(255,255,255,.65)}.face-guide:before{width:100%;height:1px;left:0;top:48%}.face-guide:after{height:100%;width:1px;top:0;left:50%}.camera-overlay{position:absolute;left:14px;right:14px;top:14px;display:flex;justify-content:space-between;gap:8px;z-index:3}.camera-overlay span{font-size:8px;letter-spacing:.12em;color:#fff;background:rgba(0,0,0,.45);padding:6px 8px}.capture-checklist{border:1px solid #e3dfd8;padding:20px}.capture-checklist h3{margin-top:0}.capture-checklist label{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.45;padding:10px 0;border-bottom:1px solid #eee}.capture-checklist input{accent-color:#111;margin-top:2px}.precision-note{background:#f4f1eb;margin-top:16px;padding:14px}.precision-note p{font-size:11px;line-height:1.6;color:#666;margin-bottom:0}.capture-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.button-gold{background:var(--gold);color:#fff}.upload-button{display:inline-flex;align-items:center}.capture-message{font-size:12px;color:#777;margin-bottom:0}.fit-info p:not(.kicker),.small-note{color:#666;line-height:1.7;font-size:13px}.info-rule{height:1px;background:#ddd;margin:25px 0 8px}.info-row{display:flex;gap:16px;padding:13px 0;border-bottom:1px solid #eee;font-size:12px}.info-row b{color:var(--gold)}.small-note{font-size:11px!important;margin-top:20px}.fit-results{max-width:1220px;margin:0 auto;padding:40px 24px 80px;border-top:1px solid #ddd8cf}.fit-preview-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:18px}.fit-preview{position:relative;background:#222;min-height:570px;overflow:hidden}.fit-preview>img{width:100%;height:100%;min-height:570px;object-fit:cover}.fit-caption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.9));color:#fff;padding:50px 24px 22px;display:grid;grid-template-columns:1fr auto;gap:4px}.fit-caption small{grid-column:1}.fit-caption b{grid-column:2;grid-row:1/3}.virtual-frame-demo{position:absolute;left:50%;top:43%;width:38%;height:16%;transform:translate(-50%,-50%);pointer-events:none}.virtual-frame-demo:before,.virtual-frame-demo:after{content:"";position:absolute;top:0;width:44%;height:70%;border:7px solid #111;border-radius:28% 28% 40% 40%}.virtual-frame-demo:before{left:0}.virtual-frame-demo:after{right:0}.virtual-frame-demo span{position:absolute;left:43%;top:8%;width:14%;height:5px;background:#111}.frame-list{display:grid;gap:10px;align-content:start}.frame-option{background:#fff;border:1px solid #ddd;padding:12px;text-align:left;cursor:pointer;display:grid;grid-template-columns:65px 1fr;gap:3px 10px;align-items:center}.frame-option.selected{border:2px solid var(--gold)}.frame-option strong{font-size:12px}.frame-option small{font-size:10px;color:#777}.frame-shape{grid-row:1/3;width:58px;height:30px;border:4px solid #111;border-radius:30% 30% 40% 40%;position:relative}.frame-shape:after{content:"";position:absolute;left:50%;top:7px;width:8px;height:3px;background:inherit;transform:translateX(-50%)}.frame-shape.gold{border-color:#b49a68}.frame-shape.tortoise{border-color:#5b4433}.frame-shape.clear{border-color:#aaa}.fit-actions{display:flex;gap:10px;margin-top:18px}.ai-disclaimer{max-width:1220px;margin:0 auto 70px;padding:18px 24px;background:#f4f1eb;border-top:1px solid #d8d1c6;border-bottom:1px solid #d8d1c6;display:flex;gap:25px;font-size:11px;color:#666;line-height:1.6}.ai-disclaimer strong{color:#111;white-space:nowrap}.ai-teaser{display:flex;justify-content:space-between;align-items:end;gap:30px}.ai-teaser h2{margin-top:0}.ai-teaser p:not(.kicker){max-width:620px;color:#666;line-height:1.7}@media(max-width:900px){.ai-hero{display:block}.ai-steps{margin-top:28px}.ai-workspace{grid-template-columns:1fr}.capture-layout{grid-template-columns:1fr}.fit-preview-grid{grid-template-columns:1fr}.frame-list{grid-template-columns:repeat(2,1fr)}.fit-preview{min-height:500px}.fit-preview>img{min-height:500px}}@media(max-width:600px){.ai-hero{padding-top:48px}.capture-panel,.fit-info{padding:20px}.camera-stage{min-height:390px}.face-guide{width:180px;height:260px}.capture-actions .button{width:100%;text-align:center}.fit-actions{flex-direction:column}.ai-disclaimer{display:block}.ai-disclaimer strong{display:block;margin-bottom:8px}.ai-teaser{display:block}.ai-teaser .button{margin-top:15px}.frame-list{grid-template-columns:1fr}}

/* MACASPECS premium homepage refinement */
.hero-refined {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.hero-refined::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 78% 45%, rgba(198, 166, 91, .13), transparent 30%),
    linear-gradient(90deg, rgba(0,0,0,.12), transparent 55%, rgba(0,0,0,.16));
  z-index: -1;
}
.hero-refined-kicker {
  margin: 0 0 14px;
  font-size: .68rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: #c8a85b;
  font-weight: 600;
}
.hero-refined h1 {
  letter-spacing: -.035em;
}
.hero-refined .hero-copy,
.hero-refined .hero-content {
  max-width: 620px;
}
@media (max-width: 800px) {
  .hero-refined-kicker {
    font-size: .6rem;
    letter-spacing: .18em;
  }
}

/* MACASPECS section transition refinement */
.hero-refined + section {
  position: relative;
  border-top: 1px solid rgba(200,168,91,.18);
}
.hero-refined + section::before {
  content: "MACASPECS";
  display: block;
  margin: 0 auto 10px;
  text-align: center;
  font-size: .62rem;
  letter-spacing: .28em;
  color: #b9964e;
  font-weight: 600;
  text-transform: uppercase;
}
.hero-refined + section h2 {
  letter-spacing: -.025em;
}
.hero-refined + section .section-intro,
.hero-refined + section > p {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}
