:root{--paper:#F4F1EA;--emerald:#1B3B2B;--green:#2D5A40;--ink:#273c31;--muted:#697468;--line:#d5d9cd;--white:#fffdf7;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Inter',Arial,sans-serif;--container:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}html.intro-locked,html.intro-locked body{overflow:hidden}html.dialog-locked,html.dialog-locked body{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}svg{display:block}button{color:inherit}h1,h2,h3,p,blockquote{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.04}em{font-weight:400}::selection{background:#2D5A40;color:var(--paper)}:focus-visible{outline:2px solid var(--green);outline-offset:6px}.container{width:min(var(--container),calc(100% - 40px));margin-inline:auto}.section{position:relative}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:fixed;top:10px;left:10px;z-index:1001;background:var(--paper);padding:12px 20px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.eyebrow{font-size:12px;line-height:1.6;font-weight:500;letter-spacing:.16em}.section-number{margin-right:15px;opacity:.52}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:56px;padding:15px 25px;font-size:14px;font-weight:500;border:1px solid transparent;border-radius:2px;transition:background .25s,color .25s,transform .25s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--emerald);color:var(--paper)}.button-primary:hover{background:var(--green)}.button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.little-line{width:28px;height:1px;background:var(--green);display:inline-block;vertical-align:middle;margin-right:12px}
/* The doorway fills both narrow and wide screens, without stretching the video. */
.door-intro{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;z-index:999;overflow:hidden;background:var(--emerald);color:var(--white);opacity:1;transition:opacity 1.5s ease}.door-background,.door-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.door-background{object-position:center}.door-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,29,15,.2),rgba(8,29,15,.05) 25%,rgba(8,29,15,.4) 100%)}.door-top{position:absolute;left:25px;right:25px;top:25px;display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.18em}.intro-monogram{font-family:var(--serif);font-size:30px;letter-spacing:-.12em}.door-content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:radial-gradient(ellipse at center,rgba(9,26,14,.16),transparent 60%);transition:opacity .4s}.door-content .eyebrow{font-size:12px;margin-bottom:25px}.door-content h1{font-size:clamp(46px,7vw,88px);text-shadow:0 2px 35px rgba(0,0,0,.3)}.door-open{margin-top:38px;min-width:178px;min-height:56px;background:rgba(22,41,28,.18);color:white;border:1px solid rgba(255,255,255,.8);font-family:var(--serif);font-size:19px;font-weight:500;letter-spacing:.19em;backdrop-filter:blur(4px);animation:door-pulse 3s ease-in-out infinite;transition:background .3s}.door-open:hover{background:rgba(255,255,255,.2)}.door-open:focus-visible,.door-skip:focus-visible{outline-color:white}.door-skip{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);background:transparent;color:white;border:0;border-bottom:1px solid rgba(255,255,255,.5);padding:6px 3px;font-size:12px;z-index:2;white-space:nowrap}.door-video{z-index:3;visibility:hidden;opacity:0;transition:opacity .25s}.door-intro.is-playing .door-video{visibility:visible;opacity:1}.door-intro.is-playing .door-content,.door-intro.is-playing .door-top{opacity:0;pointer-events:none}.door-intro.is-playing .door-skip{z-index:4;opacity:.75}.door-intro.is-leaving{opacity:0;pointer-events:none}@keyframes door-pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.12)}50%{box-shadow:0 0 0 8px rgba(255,255,255,0)}}
/* Navigation */
.site-header{position:relative;z-index:10;border-bottom:1px solid var(--line)}.header-inner{min-height:88px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:11px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;border:1px solid #a8b4a4;border-radius:50%;font-family:var(--serif);font-size:25px;letter-spacing:-.11em;padding-right:3px}.brand-name{font-family:var(--serif);font-size:21px;line-height:1.25}.brand-name>span{display:block;font-family:var(--sans);font-size:12px;letter-spacing:0;margin-top:4px}.menu-toggle{width:44px;height:44px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;border:1px solid var(--line);background:transparent;border-radius:50%}.menu-toggle>span:not(.sr-only){width:18px;height:1px;background:var(--emerald);transition:transform .25s}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}.site-nav{display:none;position:absolute;left:0;right:0;top:100%;padding:22px 25px;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 12px 20px rgba(22,41,28,.05);flex-direction:column;gap:17px;font-size:14px}.site-nav.is-open{display:flex}.site-nav a{padding:4px 0;transition:color .2s}.site-nav a:hover{color:#78916b}.nav-contact{font-weight:500}
/* Hero */
main{position:relative}.hero{padding-top:42px}.hero-grid{display:grid;gap:45px;position:relative;z-index:1}.hero-copy h1{font-size:clamp(66px,15vw,108px);letter-spacing:-.04em;margin-top:22px;line-height:.92}.hero-copy h1 em{letter-spacing:-.055em}.name-period{color:#779267}.hero-profession{font-size:15px;line-height:1.7;margin-top:25px}.hero-quote{font-size:15px;line-height:1.85;color:var(--muted);max-width:440px;margin-top:22px}.hero-copy .button{margin-top:28px}.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin-top:18px}.meta-divider{height:11px;width:1px;background:#b5bfb0}.hero-visual{position:relative;width:100%;padding-bottom:62px;max-width:510px;margin-inline:auto}.portrait-frame{width:92%;aspect-ratio:4/5.2;border-radius:49% 49% 2px 2px;overflow:hidden;margin-left:auto;background:#d1d6c9;position:relative}.portrait-frame img{height:100%;width:100%;object-fit:cover;object-position:center 32%}.hero-visual::before{content:'';position:absolute;top:-12px;left:4%;width:92%;height:calc(100% - 64px);border:1px solid #b3bea9;border-radius:50% 50% 2px 2px;pointer-events:none}.portrait-note{position:absolute;bottom:20px;left:0;display:flex;gap:16px;align-items:flex-start;background:var(--paper);padding:18px 25px 18px 0;min-width:180px}.note-line{height:45px;width:1px;background:#9bab90;margin-top:3px}.portrait-note p{font-family:var(--serif);font-size:28px;line-height:1.15}.portrait-label{position:absolute;right:0;bottom:8px;font-size:12px;letter-spacing:.12em;color:var(--muted)}.hero-bottom{border-bottom:1px solid var(--line);margin-top:30px;padding:23px 0;display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--muted)}.hero-bottom>span{display:none}.hero-bottom>a{display:flex;align-items:center;gap:15px}.scroll-mark{height:24px;width:15px;border:1px solid #92a187;border-radius:12px;position:relative}.scroll-mark::before{content:'';position:absolute;top:5px;left:6px;width:1px;height:5px;background:#74876b;animation:scroll-cue 2s infinite}@keyframes scroll-cue{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(6px);opacity:1}}
/* A vine grows at the outside edge as the page is read. */
.growing-vine{position:absolute;top:0;right:3px;width:30px;height:100%;pointer-events:none;z-index:0;opacity:.3;overflow:hidden}.growing-vine svg{width:100%;height:100%}#vine-stem{stroke:#64805b;stroke-width:1.2;stroke-linecap:round}.vine-leaf{fill:#6a855e;opacity:0;transition:opacity .6s}.vine-leaf.is-grown{opacity:.7}
/* About */
.about{padding:76px 0 80px}.section-heading{margin-bottom:38px}.section-heading h2,.support-heading h2,.education-heading h2{margin-top:17px;font-size:clamp(42px,9vw,64px);letter-spacing:-.035em}.about-grid{display:grid;gap:40px;position:relative;z-index:1}.about-images{position:relative;max-width:500px;padding:0 45px 55px 0;align-self:start}.about-photo-main{width:88%;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;border-radius:2px 2px 90px 2px}.about-photo-small{width:45%;aspect-ratio:4/5;position:absolute;bottom:18px;right:0;object-fit:cover;border:7px solid var(--paper);border-radius:90px 90px 2px 2px;object-position:center 25%}.photo-caption{position:absolute;bottom:0;left:0;font-size:12px;letter-spacing:.16em;color:var(--muted)}.about-copy h3{font-size:31px;margin-bottom:20px}.about-copy>p{margin-bottom:20px;color:var(--muted);font-size:15px;line-height:1.9}.about-copy strong{font-weight:550;color:var(--emerald)}.personal-note{position:relative;margin-top:28px;padding:22px 0 0 23px;border-left:1px solid #b5c2aa}.personal-note p{font-family:var(--serif);font-size:26px;line-height:1.32}.quote-sign{position:absolute;top:-23px;left:19px;font-family:var(--serif);font-size:65px;color:#a1b094;line-height:1}.method-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.method-tags span{font-size:12px;padding:4px 11px;background:#e7eadd;border-radius:2px}
/* Support */
.support{padding:62px 0;background:#e9ebdf}.support-heading,.education-heading{display:flex;flex-direction:column;gap:25px;margin-bottom:35px}.section-intro{font-size:14px;color:var(--muted);line-height:1.9}.support-grid{display:grid;gap:1px;border:1px solid #ced4c3;background:#ced4c3;position:relative;z-index:1}.support-card{padding:27px;background:#e9ebdf;transition:background .3s}.support-card:hover{background:#f1f1e8}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px}.card-top>span{font-size:12px;color:#829178}.service-icon{width:40px;height:40px;fill:none;stroke:var(--green);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.support-card h3{font-size:29px;line-height:1.1;letter-spacing:-.015em}.support-card>p{font-size:14px;line-height:1.8;color:var(--muted);margin-top:20px;max-width:280px}.audience{display:flex;flex-direction:column;gap:15px;margin-top:30px}.audience>p{font-size:12px;color:var(--muted);white-space:nowrap}.audience-tags{display:flex;flex-wrap:wrap;gap:8px}.audience-tags span{padding:6px 13px;border:1px solid #bdc6b3;border-radius:100px;font-size:12px}
/* Personal quotation */
.approach{background:var(--emerald);color:var(--paper);overflow:hidden}.approach-grid{display:grid;gap:35px}.approach-copy{padding:60px 0 20px}.approach .eyebrow{color:#b7c3a9}.approach-quote{font-family:var(--serif);font-size:clamp(34px,7.8vw,53px);line-height:1.13;letter-spacing:-.025em;margin-top:30px}.approach-quote em{color:#b5c79b}.signature{display:block;font-family:var(--serif);font-size:24px;font-style:italic;margin-top:30px;color:#b5c79b}.approach-image{width:100%;max-width:480px;margin-left:auto;height:380px;overflow:hidden;border-radius:160px 160px 0 0}.approach-image img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
/* Education */
.education{padding:76px 0}.education-layout{display:grid;gap:25px;margin-top:45px;position:relative;z-index:1}.education-label>span{font-size:12px;letter-spacing:.13em;line-height:1.8;display:block}.education-label>p{display:none}.education-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.education-list>li{display:grid;gap:8px;border-bottom:1px solid var(--line);padding:22px 0}.education-date{font-size:12px;color:var(--green);line-height:1.8}.education-date small{font-size:12px;display:inline;margin-left:8px;color:var(--muted)}.education-list h3{font-family:var(--sans);font-weight:500;font-size:15px;line-height:1.6;max-width:590px}.education-list p{font-size:14px;line-height:1.7;color:var(--muted);margin-top:5px}.gallery-heading{margin-top:57px;margin-bottom:25px}.gallery-heading h3{font-size:31px}.gallery-heading p{font-size:12px;color:var(--muted);margin-top:10px}.diploma-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;position:relative;z-index:1}.diploma-card{display:block;text-align:left;background:transparent;border:0;padding:0;min-width:0}.diploma-image-wrap{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:4/3.2;border:1px solid var(--line);background:#e9e9df;padding:13px;overflow:hidden;transition:background .3s,border-color .3s}.diploma-card img{height:100%;width:100%;object-fit:contain;box-shadow:0 3px 10px rgba(21,42,30,.07);transition:transform .4s}.diploma-card:hover img{transform:scale(1.045)}.diploma-card:hover .diploma-image-wrap{border-color:#97ab87;background:#e2e6d8}.diploma-zoom{position:absolute;right:8px;bottom:8px;width:26px;height:26px;background:var(--paper);border:1px solid #c5cdbb;border-radius:50%;display:grid;place-items:center;font-size:19px;line-height:1}.diploma-caption{display:block;font-size:12px;line-height:1.5;padding:10px 2px;color:var(--muted)}.diploma-fallback{display:none;grid-template-columns:repeat(2,1fr);gap:15px}.gallery-empty{font-size:14px;color:var(--muted);grid-column:1/-1}
/* Contact */
.contacts{padding:65px 0 62px;background:var(--emerald);color:var(--paper);text-align:center}.contacts-inner{position:relative;z-index:1}.contacts .eyebrow{color:#bdc9b1}.contacts h2{font-size:clamp(66px,15vw,98px);margin-top:23px;line-height:.97;letter-spacing:-.045em}.contacts h2 em{color:#b6c79d}.contacts-intro{color:#c4cdbd;font-size:14px;line-height:1.9;margin-top:26px}.consultation-formats{display:flex;flex-direction:column;align-items:center;gap:13px;margin-top:28px;font-size:12px;color:#c4cdbd}.consultation-formats>span{display:flex;align-items:center;gap:10px}.consultation-formats svg{height:20px;width:20px;fill:none;stroke:#a7bb92;stroke-width:1.2}.contact-buttons{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:32px}.contact-buttons .button{width:100%;max-width:300px}.button-light{background:var(--paper);color:var(--emerald)}.button-light:hover{background:white}.button-outline-light{border-color:#8c9f7d;color:var(--paper)}.button-outline-light:hover{background:#284b34}.contact-link[aria-disabled=true]{opacity:.48;cursor:default;transform:none}.contact-status{margin-top:20px;font-size:12px;color:#c4cdbd}.contact-status:empty{display:none}.contact-link:focus-visible{outline-color:var(--paper)}.site-footer{background:var(--paper)}.footer-inner{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap;padding:30px 0}.footer-brand{font-family:var(--serif);font-size:23px;line-height:1.3;flex:1 1 230px}.footer-brand>span{display:block;font-family:var(--sans);font-size:12px;color:var(--muted);margin-top:5px}.footer-note{display:none;font-size:12px;color:var(--muted)}.copyright{font-size:12px;color:var(--muted)}
.office-address{margin-top:11px;color:#c4cdbd;font-size:13px;font-style:normal}.directions-open{display:inline-flex;gap:10px;align-items:center;justify-content:center;min-height:44px;margin-top:22px;padding:7px 1px;border:0;border-bottom:1px solid #839975;background:transparent;color:var(--paper);font-size:12px;transition:color .25s,border-color .25s}.directions-open:hover{color:#b6c79d;border-color:#b6c79d}.directions-open:focus-visible{outline-color:var(--paper)}.video-play-icon{display:grid;place-items:center;border:1px solid #8ba27c;border-radius:50%;width:23px;height:23px;font-size:15px;line-height:1;padding-left:2px}.directions-dialog{width:min(720px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:22px;border:1px solid #c4cfb7;border-radius:4px;background:var(--paper);color:var(--emerald);overflow:auto}.directions-dialog::backdrop{background:rgba(9,25,16,.8);backdrop-filter:blur(5px)}.directions-header{display:flex;gap:15px;align-items:flex-start;justify-content:space-between}.directions-header .eyebrow{font-size:12px;margin-bottom:7px}.directions-header h2{font-size:30px;line-height:1.1}.directions-close{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;background:transparent;border:1px solid #b8c5ab;border-radius:50%;font-size:29px;line-height:1}.directions-address{font-size:12px;color:var(--muted);margin-top:13px;margin-bottom:20px}.directions-dialog video{display:block;width:100%;max-height:65dvh;background:#102519;border-radius:2px;object-fit:contain}.directions-dialog>p[role=status]{font-size:13px;line-height:1.8;margin-top:15px}.directions-dialog>p[role=status] a{text-decoration:underline;text-underline-offset:3px}
/* Native fullscreen dialog keeps keyboard focus inside the gallery. */
.lightbox{position:fixed;inset:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:rgba(13,27,20,.98);color:var(--paper);overflow:hidden}.lightbox::backdrop{background:rgba(13,27,20,.9)}.lightbox[open]{display:flex;flex-direction:column}.lightbox-toolbar{display:flex;align-items:center;gap:14px;padding:16px 20px;min-height:75px;flex-shrink:0}.lightbox-toolbar h2{font-size:22px;line-height:1.2;margin-right:auto}.lightbox-counter{font-size:12px;color:#c2cbb9;white-space:nowrap}.lightbox-close{width:44px;height:44px;border:1px solid #4f6152;border-radius:50%;background:transparent;color:var(--paper);font-size:30px;line-height:1;flex-shrink:0}.lightbox-stage{position:relative;display:flex;justify-content:center;align-items:center;flex:1;min-height:0;padding:10px 48px;touch-action:pan-y}.lightbox-stage img{max-width:100%;max-height:100%;object-fit:contain;user-select:none}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:55px;border:0;background:transparent;color:var(--paper);font-family:Georgia,serif;font-size:45px;line-height:1}.lightbox-prev{left:3px}.lightbox-next{right:3px}.lightbox-hint{font-size:12px;color:#a6b39e;text-align:center;padding:18px 20px;flex-shrink:0}.lightbox button:focus-visible{outline-color:var(--paper)}
/* Reveal only when JavaScript has installed the observer. */
.reveal-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal-ready .reveal.is-visible{opacity:1;transform:translateY(0)}
@media(min-width:600px){.container{width:min(var(--container),calc(100% - 64px))}.hero-grid{grid-template-columns:1.08fr .92fr;gap:25px;align-items:center}.hero-copy h1{font-size:clamp(65px,9vw,102px)}.hero-eyebrow{font-size:12px}.hero-visual{padding-bottom:52px}.portrait-frame{width:95%}.hero-visual::before{left:0;width:95%;height:calc(100% - 53px)}.portrait-note{padding-right:13px;min-width:145px}.portrait-note p{font-size:25px}.portrait-label{font-size:12px}.hero-meta{font-size:12px}.support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.diploma-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.education-list>li{grid-template-columns:135px 1fr;gap:25px}.education-date small{display:block;margin-left:0}.contact-buttons{flex-direction:row;justify-content:center}.contact-buttons .button{width:auto}.consultation-formats{flex-direction:row;justify-content:center;gap:25px}.lightbox-stage{padding:10px 70px}.lightbox-prev{left:15px}.lightbox-next{right:15px}}
@media(min-width:900px){.container{width:min(var(--container),calc(100% - 112px))}.header-inner{min-height:103px}.brand-mark{width:48px;height:48px;font-size:29px}.brand-name{font-size:25px}.brand-name>span{font-size:12px}.menu-toggle{display:none}.site-nav{display:flex;position:static;padding:0;background:transparent;border:0;box-shadow:none;flex-direction:row;align-items:center;gap:31px;font-size:12px}.site-nav .nav-contact{border-bottom:1px solid #9caf8f;padding-bottom:5px;margin-left:7px}.hero{padding-top:62px}.hero-grid{grid-template-columns:1.1fr 1fr;gap:65px;min-height:625px}.hero-eyebrow{font-size:12px}.hero-copy h1{font-size:clamp(90px,8.6vw,120px);margin-top:28px}.hero-profession{font-size:17px;margin-top:27px}.hero-quote{font-size:14px;max-width:410px;margin-top:24px}.hero-copy .button{margin-top:28px;padding-inline:28px}.hero-meta{font-size:12px;margin-top:23px;gap:14px}.hero-visual{padding-bottom:67px}.portrait-frame{width:93%;aspect-ratio:4/5.2}.hero-visual::before{top:-17px;left:2%;width:93%;height:calc(100% - 65px)}.portrait-note{left:-18px;bottom:18px;padding:23px 32px 17px 0;min-width:220px}.portrait-note p{font-size:32px}.portrait-label{font-size:12px;bottom:0}.hero-bottom{margin-top:40px;padding:25px 0;font-size:12px}.hero-bottom>span{display:block}.growing-vine{right:8px;width:45px}.about{padding:100px 0 110px}.section-heading{margin-bottom:52px}.section-heading h2,.support-heading h2,.education-heading h2{font-size:65px}.about-grid{grid-template-columns:1fr 1.05fr;gap:85px;align-items:center}.about-images{padding-right:50px;padding-bottom:70px}.about-photo-main{width:87%;aspect-ratio:4/5.1}.about-photo-small{width:43%;bottom:28px;border-width:9px}.photo-caption{font-size:12px}.about-copy h3{font-size:35px}.about-copy>p{font-size:15px;margin-bottom:25px;line-height:1.95}.personal-note p{font-size:28px}.method-tags span{font-size:12px;padding:4px 13px}.support{padding:82px 0 67px}.support-heading,.education-heading{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:45px}.support-heading .section-intro,.education-heading .section-intro{max-width:240px;font-size:13px;padding-bottom:6px}.support-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.support-card{padding:27px 24px 30px}.card-top{margin-bottom:49px}.support-card h3{font-size:28px}.support-card>p{font-size:12px;line-height:1.85}.audience{flex-direction:row;align-items:center;gap:25px;margin-top:34px}.audience-tags{gap:10px}.audience-tags span{font-size:12px;padding:7px 15px}.approach-grid{grid-template-columns:1.2fr 1fr;align-items:center;gap:70px}.approach-copy{padding:78px 0}.approach-quote{font-size:55px}.approach-image{height:490px;width:100%;margin-top:45px;border-radius:200px 200px 0 0;align-self:end}.education{padding:100px 0 90px}.education-layout{grid-template-columns:240px 1fr;gap:65px;margin-top:65px}.education-label{padding-top:28px}.education-label>span{font-size:12px}.education-label>p{display:block;font-size:12px;line-height:1.9;color:var(--muted);margin-top:20px}.education-list>li{grid-template-columns:140px 1fr;padding:25px 0;gap:25px}.education-list h3{font-size:15px}.education-list p{font-size:13px}.gallery-heading{margin-top:70px;display:flex;justify-content:space-between;align-items:center}.gallery-heading h3{font-size:35px}.gallery-heading p{margin:0;font-size:12px}.diploma-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.diploma-image-wrap{padding:20px;aspect-ratio:4/3.1}.diploma-caption{font-size:12px;padding-top:12px}.contacts{padding:85px 0 78px}.contacts h2{font-size:105px;margin-top:25px}.contacts-intro{font-size:14px;margin-top:25px}.consultation-formats{margin-top:30px;font-size:12px;gap:30px}.contact-buttons{margin-top:35px}.footer-inner{padding:33px 0;align-items:center}.footer-brand{font-size:26px}.footer-brand>span{font-size:12px}.footer-note{display:block;margin-right:35px}.lightbox-toolbar{padding:20px 35px}.lightbox-toolbar h2{font-size:28px}.lightbox-hint{font-size:12px}.lightbox-stage{padding:15px 90px}.lightbox-prev,.lightbox-next{font-size:55px;width:55px}.lightbox-prev{left:20px}.lightbox-next{right:20px}}
@media(min-width:1400px){.hero-grid{gap:90px}.hero-copy h1{font-size:125px}.hero{padding-top:70px}.growing-vine{right:max(10px,calc((100vw - 1380px)/2));width:60px}}
@media(max-width:359px){.container{width:calc(100% - 32px)}.brand-name{font-size:19px}.hero-copy h1{font-size:60px}.hero-meta{font-size:12px}.hero-eyebrow{font-size:12px}.button{padding-inline:17px;font-size:13px}.lightbox-toolbar h2{font-size:18px}.lightbox-toolbar{padding-inline:12px}.consultation-formats{font-size:12px}}
/* Text stays comfortable to read, including the mobile version. */
#main:focus{outline:none}.hero-quote,.about-copy>p,.education-list h3,.education-list p,.contacts-intro{font-size:16px}.support-card>p,.section-intro{font-size:16px}.site-nav{font-size:14px}.brand-name>span{letter-spacing:0}.portrait-label,.photo-caption{font-size:12px;letter-spacing:.04em}.button,.directions-open,.consultation-formats,.office-address{font-size:14px}.hero-eyebrow{letter-spacing:.12em}
@media(min-width:900px){.support-heading .section-intro,.education-heading .section-intro{font-size:16px}.support-card{padding-inline:20px}.support-card>p{font-size:15px}.hero-quote{max-width:450px}}
@media(max-width:359px){.brand-name>span{font-size:11px}.hero-eyebrow{font-size:12px;letter-spacing:.07em}.consultation-formats{font-size:13px}}
/* The initial position is reset instantly before the longer, softer doorway dissolve. */
html.intro-locked{scroll-behavior:auto}.door-intro{transition:opacity 2.3s cubic-bezier(.25,.46,.45,.94)}
/* Independent translate and transform layers prevent reveal, tilt and parallax fighting. */
.reveal-ready .reveal{opacity:0;translate:0 30px;transform:none;transition:opacity 1.15s ease,translate 1.15s cubic-bezier(.22,1,.36,1)}.reveal-ready .reveal.is-visible{opacity:1;translate:0 0;transform:none}.hero-copy .reveal:nth-child(2){transition-delay:.07s}.hero-copy .reveal:nth-child(3){transition-delay:.12s}.hero-copy .reveal:nth-child(4){transition-delay:.17s}.hero-copy .reveal:nth-child(5){transition-delay:.22s}.hero-copy .reveal:nth-child(6){transition-delay:.27s}
.tilt-card{position:relative;transform-style:preserve-3d;backface-visibility:hidden;touch-action:pan-y pinch-zoom;transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateZ(var(--tilt-lift,0px));transition:transform .55s cubic-bezier(.22,1,.36,1),box-shadow .55s ease}.reveal-ready .reveal.tilt-card,.reveal-ready .reveal.tilt-card.is-visible{transform:perspective(1000px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateZ(var(--tilt-lift,0px));transition:opacity 1.15s ease,translate 1.15s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1),box-shadow .55s ease}.support-card::after,.tilt-card .diploma-image-wrap::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--glare-x,50%) var(--glare-y,50%),rgba(255,255,255,.43),transparent 65%);opacity:var(--glare-opacity,0);transition:opacity .5s ease}.tilt-card:hover{z-index:2;box-shadow:0 16px 32px -21px rgba(21,48,31,.3)}.support-card h3,.support-card>p,.support-card .card-top{position:relative;z-index:1}.parallax-photo{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.08);will-change:transform}.hero-visual::before{transform:translate3d(0,var(--parallax-bg-y,0px),0);will-change:transform}
/* Warm motes and slow background light, painted behind the content. */
main,.site-footer{z-index:1}.site-footer{position:relative}.ambient-background{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:strict}.ambient-orb{position:absolute;border-radius:50%;transform:translate3d(0,var(--ambient-y,0px),0);will-change:transform}.ambient-orb-one{width:600px;height:600px;top:-150px;right:-230px;background:radial-gradient(circle,rgba(174,182,128,.11),transparent 68%)}.ambient-orb-two{width:700px;height:700px;bottom:-250px;left:-270px;background:radial-gradient(circle,rgba(212,189,126,.1),transparent 66%)}.fireflies{position:absolute;inset:0}.firefly{position:absolute;left:var(--left);top:var(--top);width:var(--size);height:var(--size);border-radius:50%;background:#c7af6c;box-shadow:0 0 9px 2px rgba(205,177,98,.15);opacity:var(--particle-opacity);animation:firefly-drift var(--duration) var(--delay) ease-in-out infinite alternate;will-change:transform,opacity}.page-inactive .firefly{animation-play-state:paused}@keyframes firefly-drift{0%{transform:translate3d(0,35px,0);opacity:calc(var(--particle-opacity)*.3)}45%{opacity:var(--particle-opacity)}100%{transform:translate3d(var(--drift),-155px,0);opacity:calc(var(--particle-opacity)*.5)}}
/* A quiet place for the requested map and route copy. */
.office-route{padding:70px 0 80px;border-top:1px solid var(--line)}.route-heading{margin-bottom:35px}.route-heading h2{font-size:clamp(42px,9vw,64px);letter-spacing:-.035em;margin-top:17px}.route-grid{display:grid;gap:32px;position:relative;z-index:1}.route-map{position:relative;border:1px solid #cbd4bd;background:#e8ebdd;aspect-ratio:14/9;overflow:hidden;border-radius:2px}.route-map>img{width:100%;height:100%;object-fit:cover}.map-placeholder-note{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#5b7450;background:radial-gradient(ellipse,rgba(244,241,234,.2),transparent 65%)}.map-placeholder-note svg{width:35px;height:35px;fill:none;stroke:currentColor;stroke-width:1.1;margin-bottom:5px}.map-placeholder-note>span{font-family:var(--serif);font-size:32px}.map-placeholder-note>small{font-size:12px;letter-spacing:.04em}.route-copy h3{font-size:35px;line-height:1.16;margin-top:15px}.route-copy>p:not(.eyebrow){font-size:16px;line-height:1.85;color:var(--muted);margin-top:18px}.route-copy .route-office{color:var(--green)!important;font-size:14px!important;margin-top:8px!important}.route-video-button{margin-top:25px;text-align:left}.route-video-button .video-play-icon{border-color:#a5b695;flex-shrink:0}.route-copy .eyebrow{color:var(--green)}#contacts{scroll-margin-top:20px}#contacts-title:focus{outline:none}
@media(min-width:900px){.office-route{padding:85px 0 100px}.route-heading{margin-bottom:45px}.route-grid{grid-template-columns:1.15fr 1fr;gap:65px;align-items:center}.route-map{aspect-ratio:1.15}.route-copy h3{font-size:40px}.route-copy>p:not(.eyebrow){max-width:430px}}
@media(max-width:600px){.firefly:nth-child(n+13){display:none}.ambient-orb-one{right:-400px}.route-video-button{padding-inline:17px}.route-copy h3{font-size:33px}}
.route-map{display:flex;flex-direction:column;aspect-ratio:auto;min-height:330px}.route-map iframe{display:block;width:100%;height:360px;border:0;flex:1;background:#e8ebdd}.map-fallback-link{display:block;text-align:center;background:var(--paper);padding:10px 16px;font-size:12px;text-decoration:underline;text-underline-offset:3px;border-top:1px solid var(--line)}.map-directions-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.map-directions-buttons .button{flex:1;min-width:125px}.button-map-outline{border-color:#9cad8f;background:transparent;color:var(--emerald)}.button-map-outline:hover{background:#e6eadb}.route-copy .directions-open{color:var(--emerald);font-size:14px;text-align:left}.route-copy .directions-open:hover{color:var(--green)}.route-copy .directions-open:focus-visible{outline-color:var(--green)}.route-copy .map-source{font-size:12px!important;margin-top:14px}.map-source a{text-decoration:underline;text-underline-offset:3px}@media(min-width:900px){.route-map iframe{height:480px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}.door-intro{transition:opacity .2s ease!important}.reveal-ready .reveal{opacity:1;translate:0 0;transform:none}.reveal-ready .reveal.tilt-card,.reveal-ready .reveal.tilt-card.is-visible,.tilt-card{transform:none}.parallax-photo{transform:none;will-change:auto}.hero-visual::before,.ambient-orb{transform:none;will-change:auto}.fireflies{display:none}.vine-leaf{transition:none}}
