*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);font-size:var(--fs-body);line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .4s ease,color .4s ease}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}:root{--paper: #F5F1EA;--paper-deep: #ECE6DB;--ink: #1A1D1E;--ink-soft: #4A4F52;--ink-mute: #7B8084;--rule: #C8BFAE;--rule-soft: #DED5C3;--accent: #6B2C2C;--accent-soft: #8B4545;--field: #FBF8F2;--font-serif: "Cormorant Garamond", "Times New Roman", serif;--font-body: "Inter", -apple-system, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--font-num: "Fraunces", "Cormorant Garamond", serif;--fs-body: 17px;--lh-body: 1.65;--pad-x: clamp(24px, 5vw, 80px);--pad-y: clamp(80px, 10vh, 140px);--stack: 22px;--gap: 40px;--h1: clamp(44px, 6vw, 88px);--h2: clamp(32px, 4vw, 52px);--h3: clamp(20px, 1.7vw, 24px);--label: 12px}body[data-density=airy]{--pad-y: clamp(120px, 14vh, 200px);--stack: 32px;--gap: 56px;--lh-body: 1.75}body[data-density=compact]{--pad-y: clamp(56px, 7vh, 96px);--stack: 16px;--gap: 28px;--lh-body: 1.55}body[data-tone=official] .tone-warm,body[data-tone=warm] .tone-official{display:none}.serif{font-family:var(--font-serif);font-weight:500;letter-spacing:-.01em}.num{font-family:var(--font-num);font-feature-settings:"tnum","lnum"}.mono{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute)}.label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}h1,h2,h3,h4{margin:0;font-weight:500}h1{font-family:var(--font-serif);font-size:var(--h1);line-height:1.02;letter-spacing:-.02em;font-weight:500}h2{font-family:var(--font-serif);font-size:var(--h2);line-height:1.08;letter-spacing:-.015em;font-weight:500}h3{font-family:var(--font-body);font-size:var(--h3);line-height:1.3;font-weight:500}.wrap{padding:0 var(--pad-x);max-width:1440px;margin:0 auto}section{padding-top:var(--pad-y);padding-bottom:var(--pad-y);border-top:1px solid var(--rule-soft)}section:first-of-type{border-top:none}.kicker{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:28px}.kicker:before{content:"";width:28px;height:1px;background:var(--ink-mute)}.grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gap)}@media (max-width: 860px){.grid-12{grid-template-columns:1fr;gap:32px}}.rule{height:1px;background:var(--rule-soft);border:none;margin:0}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;padding:18px var(--pad-x);background:color-mix(in oklab,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--rule-soft)}.brand{display:flex;align-items:baseline;gap:14px;font-family:var(--font-serif);font-size:20px;letter-spacing:.02em}.brand .mark{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--ink);border-radius:50%;font-family:var(--font-serif);font-size:15px;font-style:italic;margin-right:4px;transform:translateY(2px)}.brand small{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}.nav{display:flex;gap:28px}.nav a{font-size:14px;color:var(--ink-soft);transition:color .2s}.nav a:hover{color:var(--accent)}.nav .active{color:var(--ink)}@media (max-width: 760px){.nav{display:none}}.cta-top{border:1px solid var(--ink);padding:10px 18px;font-size:13px;transition:background .2s,color .2s}.cta-top:hover{background:var(--ink);color:var(--paper)}.hero{padding-top:clamp(60px,8vh,110px);padding-bottom:clamp(80px,10vh,140px);border-top:none}.hero .grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(32px,5vw,80px);align-items:end}@media (max-width: 900px){.hero .grid{grid-template-columns:1fr}}.hero-meta{display:flex;gap:28px;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:32px}.hero-meta span{display:flex;gap:8px;align-items:center}.hero-meta .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}.hero h1 .italic{font-style:italic;color:var(--accent)}.hero-sub{margin-top:32px;font-size:19px;line-height:1.6;color:var(--ink-soft);max-width:52ch;font-weight:300}.hero-signature{margin-top:clamp(32px,4vw,56px);display:flex;align-items:center;gap:18px;font-family:var(--font-serif);font-size:22px;font-style:italic;color:var(--ink-soft)}.hero-signature:before{content:"";width:40px;height:1px;background:var(--ink-mute)}.portrait{aspect-ratio:3/4;background:repeating-linear-gradient(135deg,color-mix(in oklab,var(--paper-deep) 90%,var(--ink) 4%) 0px,color-mix(in oklab,var(--paper-deep) 90%,var(--ink) 4%) 14px,var(--paper-deep) 14px,var(--paper-deep) 28px);border:1px solid var(--rule);position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:20px}.portrait:after{content:"";position:absolute;top:28px;right:28px;bottom:28px;left:28px;border:1px dashed var(--rule)}.portrait .plabel{position:relative;z-index:1;font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}.portrait .pfoot{position:relative;z-index:1;font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);display:flex;justify-content:space-between}.about .content{grid-column:3 / 11}@media (max-width: 860px){.about .content{grid-column:1 / -1}}.lede{font-family:var(--font-serif);font-size:clamp(26px,2.4vw,34px);line-height:1.3;letter-spacing:-.005em;color:var(--ink);margin-bottom:40px;max-width:40ch}.prose p{margin:0 0 18px;max-width:62ch;color:var(--ink-soft)}.prose p strong{color:var(--ink);font-weight:500}.approach-grid{grid-template-columns:repeat(12,1fr)}.approach-intro{grid-column:1 / 5}.approach-cards{grid-column:6 / 13;display:grid;grid-template-columns:1fr;gap:0}@media (max-width: 860px){.approach-intro,.approach-cards{grid-column:1 / -1}}.apr-card{display:grid;grid-template-columns:60px 1fr;gap:28px;padding:28px 0;border-top:1px solid var(--rule-soft)}.apr-card:last-child{border-bottom:1px solid var(--rule-soft)}.apr-num{font-family:var(--font-num);font-size:28px;color:var(--ink-mute);font-weight:400;font-feature-settings:"tnum"}.apr-card h3{margin-bottom:10px}.apr-card p{color:var(--ink-soft);margin:0;max-width:52ch}.req-grid{grid-template-columns:repeat(3,1fr);gap:0}@media (max-width: 860px){.req-grid{grid-template-columns:1fr}}.req{padding:32px 28px 40px;border-left:1px solid var(--rule-soft);border-top:1px solid var(--rule-soft)}.req:first-child{border-left:none}@media (max-width: 860px){.req{border-left:none}}.req-num{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--ink-mute);margin-bottom:14px}.req h3{font-family:var(--font-serif);font-size:24px;margin-bottom:14px;font-weight:500}.req ul{list-style:none;padding:0;margin:0;color:var(--ink-soft);font-size:15px}.req li{padding:6px 0;border-top:1px dotted var(--rule-soft)}.req li:first-child{border-top:none}.edu-list{margin-top:20px;border-top:1px solid var(--rule-soft)}.edu-row{display:grid;grid-template-columns:100px 1fr auto;gap:32px;padding:22px 0;border-bottom:1px solid var(--rule-soft);align-items:baseline}.edu-row .year{font-family:var(--font-num);font-size:18px;color:var(--ink-mute);font-weight:500}.edu-row .place{color:var(--ink)}.edu-row .place small{display:block;font-family:var(--font-body);font-size:13px;color:var(--ink-mute);margin-top:4px}.edu-row .hours{font-family:var(--font-mono);font-size:11px;color:var(--ink-mute);letter-spacing:.1em}@media (max-width: 640px){.edu-row{grid-template-columns:70px 1fr}.edu-row .hours{grid-column:2;padding-top:2px}}.format-grid{grid-template-columns:1fr 1fr}@media (max-width: 860px){.format-grid{grid-template-columns:1fr}}.fcard{padding:40px;border:1px solid var(--rule);background:var(--paper-deep);position:relative}.fcard h3{font-family:var(--font-serif);font-size:28px;margin-bottom:8px}.fcard .flabel{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:24px}.fcard ul{list-style:none;padding:0;margin:0 0 24px;color:var(--ink-soft)}.fcard ul li{padding:8px 0;border-top:1px solid var(--rule-soft);font-size:15px}.fcard ul li:first-child{border-top:none}.price-row{display:flex;align-items:baseline;justify-content:space-between;padding-top:20px;border-top:1px solid var(--rule)}.price-row .price{font-family:var(--font-num);font-size:32px;color:var(--ink);font-weight:500}.price-row .per{font-size:13px;color:var(--ink-mute)}.faq-grid{grid-template-columns:1fr 2fr}@media (max-width: 860px){.faq-grid{grid-template-columns:1fr}}details.faq{border-top:1px solid var(--rule-soft);padding:22px 0}details.faq[open]{padding-bottom:10px}details.faq:last-of-type{border-bottom:1px solid var(--rule-soft)}details.faq summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:18px;font-family:var(--font-serif);font-size:clamp(19px,1.5vw,22px);color:var(--ink);font-weight:500}details.faq summary::-webkit-details-marker{display:none}details.faq summary:before{content:"+";font-family:var(--font-mono);font-size:16px;color:var(--ink-mute);transition:transform .25s;display:inline-block;min-width:20px}details.faq[open] summary:before{content:"—";color:var(--accent)}details.faq .ans{padding:14px 0 6px 38px;color:var(--ink-soft);max-width:62ch}.booking{background:var(--paper-deep);border-top:1px solid var(--rule)}.booking-grid{grid-template-columns:1fr 1.1fr}@media (max-width: 860px){.booking-grid{grid-template-columns:1fr}}.booking h2{margin-bottom:18px}.booking-note{color:var(--ink-soft);max-width:42ch;margin-bottom:36px}.msgr-block{margin-top:32px;padding-top:28px;border-top:1px solid var(--rule)}.msgr-block .label{margin-bottom:14px}.msgr{display:flex;flex-direction:column;gap:10px}.msgr a{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border:1px solid var(--rule);background:var(--field);font-size:15px;transition:border-color .2s,color .2s}.msgr a:hover{border-color:var(--ink);color:var(--accent)}.msgr a .m-label{display:flex;gap:14px;align-items:center}.msgr a .m-handle{font-family:var(--font-mono);font-size:12px;color:var(--ink-mute);letter-spacing:.06em}form.book{display:grid;gap:18px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}.field input,.field select,.field textarea{font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--rule);padding:14px 16px;border-radius:0;outline:none;transition:border-color .2s}.field textarea{min-height:110px;resize:vertical;font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 540px){.field-row{grid-template-columns:1fr}}.submit{margin-top:12px;background:var(--ink);color:var(--paper);padding:18px 24px;font-size:14px;letter-spacing:.06em;text-transform:uppercase;transition:background .2s;display:flex;align-items:center;justify-content:space-between;font-family:var(--font-body);font-weight:500}.submit:hover{background:var(--accent);color:var(--paper)}.submit .arr{font-family:var(--font-mono)}.consent{font-size:12px;color:var(--ink-mute);line-height:1.5;max-width:52ch}.consent a{color:var(--accent);border-bottom:1px solid var(--accent)}.thankyou{padding:40px;background:var(--paper);border:1px solid var(--rule)}.thankyou h3{font-family:var(--font-serif);font-size:28px;margin-bottom:12px}.contact-grid{grid-template-columns:1.1fr 1fr}@media (max-width: 860px){.contact-grid{grid-template-columns:1fr}}.schedule{border-top:1px solid var(--rule-soft);margin-top:18px}.schedule .row{display:grid;grid-template-columns:160px 1fr auto;padding:14px 0;border-bottom:1px solid var(--rule-soft);align-items:baseline;gap:20px}.schedule .day{color:var(--ink);font-size:15px}.schedule .hours{font-family:var(--font-num);color:var(--ink-soft);font-size:17px}.schedule .mode{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;color:var(--ink-mute);text-transform:uppercase}.schedule .closed .day,.schedule .closed .hours{color:var(--ink-mute)}.addr p{margin:6px 0;color:var(--ink-soft)}.addr strong{color:var(--ink);font-weight:500}footer{padding:48px var(--pad-x);border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--ink-mute);text-transform:uppercase}footer .foot-brand{font-family:var(--font-serif);font-size:18px;text-transform:none;color:var(--ink);letter-spacing:.01em}.lock-row{margin-top:20px;padding-top:18px;border-top:1px solid var(--rule-soft);display:flex;gap:12px;align-items:flex-start;color:var(--ink-mute);font-size:12px;line-height:1.55;max-width:52ch}.lock-row .icn{width:20px;height:20px;flex-shrink:0;border:1px solid var(--ink-mute);border-radius:3px;margin-top:2px;position:relative}.lock-row .icn:before{content:"";position:absolute;right:5px;bottom:5px;left:5px;border:1px solid var(--ink-mute);border-bottom:none;border-radius:4px 4px 0 0;top:-4px;height:8px}
