@font-face{font-family:Oswald;src:url('/fonts/Oswald.ttf') format('truetype');font-style:normal;font-weight:200 700;font-display:swap}
:root{color-scheme:dark;--bg:#10130f;--panel:#191e17;--text:#f2f5ec;--muted:#b8c0af;--lime:#c5f648;--line:#384131;--radius:8px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--bg);color:var(--text);font:400 16px/1.6 Arial,Helvetica,sans-serif;-webkit-text-size-adjust:100%}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button,a,input,summary{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;color:inherit}
button:disabled{cursor:default;opacity:.35}
:focus-visible{outline:3px solid var(--lime);outline-offset:5px}
[hidden]{display:none!important}
.container{width:min(1240px,calc(100% - 64px));margin-inline:auto}
h1,h2,h3,p,figure,blockquote{margin:0}
h1,h2,h3{font-family:Oswald,Arial,sans-serif;font-weight:600;line-height:1.12;letter-spacing:-.025em;overflow-wrap:anywhere}
h1{font-size:clamp(2.7rem,5.8vw,5.25rem);max-width:17ch}
h1 span{color:var(--lime)}
h2{font-size:clamp(2rem,3.4vw,3.1rem)}
h3{font-size:clamp(1.55rem,2.5vw,2rem);line-height:1.2}
p{max-width:65ch}
p+p{margin-top:1em}
.eyebrow{font-size:.875rem;letter-spacing:.09em;line-height:1.5;color:var(--muted);font-weight:600;margin-bottom:18px}
.skip{position:absolute;left:16px;top:0;z-index:30;padding:12px 18px;background:var(--lime);color:var(--bg);transform:translateY(-120%)}
.skip:focus{transform:translateY(0)}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-block:22px;border-bottom:1px solid var(--line)}
.brand{display:block;width:210px;flex:0 0 210px;max-width:100%}
.brand img{width:100%;height:auto;filter:brightness(0) invert(1)}
.site-header nav{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center}
.site-header nav a{font-size:.9375rem;min-height:44px;display:flex;align-items:center;border-bottom:2px solid transparent;padding-block:8px;color:var(--muted)}
.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--lime);border-color:var(--lime)}
.home-intro{padding:52px 0 38px}
.home-intro h1{max-width:none;font-size:clamp(2.8rem,5.3vw,4.6rem)}
.direction-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-bottom:60px;align-items:start}
.direction-card{min-width:0;display:block;border-top:2px solid var(--line);transition:border-color .25s}
.direction-card:hover{border-color:var(--lime)}
.direction-image{position:relative;margin-top:14px;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius);isolation:isolate;background:var(--panel)}
.direction-image img{width:100%;height:100%;object-fit:cover;transition:filter .3s,transform .45s ease}
.direction-image::after{content:"";position:absolute;inset:-30% -70%;z-index:1;pointer-events:none;background:linear-gradient(108deg,transparent 43%,#ffffff08 46%,#efffd080 50%,#ffffff25 54%,transparent 59%);mix-blend-mode:screen;transform:translateX(-48%) rotate(1deg);animation:glass-sweep 8s cubic-bezier(.4,0,.2,1) infinite}
.direction-card:nth-child(2) .direction-image::after{animation-delay:-2.7s}.direction-card:nth-child(3) .direction-image::after{animation-delay:-5.3s}
.direction-card:hover img{filter:brightness(1.08)}
.direction-card:hover .direction-image img{transform:scale(1.025)}
.direction-copy{padding-top:20px}
.direction-copy .eyebrow{margin-bottom:8px;color:var(--lime)}
.direction-copy h2{font-size:clamp(1.8rem,2.65vw,2.5rem)}
.direction-copy p{color:var(--muted);margin-top:12px;font-size:1rem}
.direction-link{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:14px;margin-top:22px;font-size:.9375rem}
.direction-link span{color:var(--lime)}
.page-hero{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:48px;padding-block:60px 56px}
.page-hero>*{min-width:0}
.page-hero .lead{margin-top:26px;color:var(--muted);font-size:1.125rem;max-width:40ch}
.page-hero figure{width:100%}
figcaption{color:var(--muted);font-size:.875rem;line-height:1.5;padding-top:13px;overflow-wrap:anywhere}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:48px;max-width:100%;padding:13px 20px;border:1px solid var(--lime);border-radius:5px;background:var(--lime);color:var(--bg);font-size:1rem;font-weight:600;line-height:1.35;transition:background .2s,color .2s}
.button span{flex:none;font-size:1.3rem;line-height:1}
.button:hover{background:#defc91;border-color:#defc91}
.button.secondary{color:var(--text);background:transparent;border-color:var(--line)}
.button.secondary:hover{color:var(--lime);border-color:var(--lime)}
.media{display:block;position:relative;width:100%;border-radius:var(--radius);overflow:hidden;background:transparent;isolation:isolate}
.media img{width:100%;height:auto}
.zoom-label{position:absolute;right:10px;bottom:10px;padding:6px 10px;background:#10130feb;color:var(--text);border:1px solid #ffffff30;border-radius:4px;font-size:.8125rem;line-height:1.4;opacity:0;transition:opacity .2s}
.media:hover .zoom-label,.media:focus-visible .zoom-label{opacity:1}
.section{padding-block:56px;border-top:1px solid var(--line)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}
.section-heading>*{min-width:0}
.section-heading h2{max-width:24ch}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px;align-items:start}
.service-card{min-width:0;display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1fr);gap:24px;align-items:start;padding-top:22px;border-top:1px solid var(--line);scroll-margin-top:30px}
.service-copy{min-width:0}
.service-copy .eyebrow{margin-bottom:8px;color:var(--lime)}
.service-copy h3{font-size:clamp(1.45rem,2vw,1.9rem)}
.service-copy>p:not(.eyebrow):not(.price){color:var(--muted);margin-top:14px;line-height:1.55}
.service-copy .price{font-family:Oswald,sans-serif;font-weight:500;font-size:1.5rem;margin-top:16px}
.service-copy .button{font-size:.9375rem;margin-top:20px;padding:11px 14px}
.note{font-size:.9375rem;color:var(--muted);margin:0 0 40px;max-width:76ch}
.note a,.text-link{color:var(--lime);text-decoration:underline;text-underline-offset:5px}
.rail-controls{display:flex;gap:8px;flex-shrink:0}
.rail-controls button,.lightbox-bottom button{width:48px;height:48px;flex:none;display:grid;place-items:center;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:1.3rem}
.rail-controls button:not(:disabled):hover{background:var(--lime);color:var(--bg)}
.gallery-rail{display:flex;align-items:flex-start;gap:22px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--lime) var(--panel);padding-bottom:24px;scroll-behavior:smooth}
.gallery-item{flex:0 0 min(420px,76%);min-width:0;scroll-snap-align:start}
.gallery-item.portrait{flex-basis:min(290px,67%)}
.gallery-item.panorama{flex-basis:min(680px,88%)}
.contact-band{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:56px 0}
.contact-band>div{min-width:0}
.contact-band p:not(.eyebrow){color:var(--muted);margin-bottom:24px}
.phone{display:block;font-size:1.125rem;margin-top:20px;overflow-wrap:anywhere}
.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 24px;border-top:1px solid var(--line);padding-block:26px;color:var(--muted);font-size:.875rem}
.site-footer a:hover{color:var(--lime)}
.comparison-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:center}
.comparison-section p:not(.eyebrow){color:var(--muted);margin-top:22px}
.comparison{position:relative;width:100%;max-width:640px;isolation:isolate;border-radius:var(--radius);overflow:hidden;--split:50%}
.comparison .compare-after{width:100%;height:auto}
.comparison .compare-before{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(0 calc(100% - var(--split)) 0 0)}
.compare-label{position:absolute;top:14px;background:#10130fdd;padding:6px 10px;font-size:.875rem;border-radius:4px;pointer-events:none}
.label-before{left:14px}.label-after{right:14px}
.compare-divider{position:absolute;top:0;bottom:0;left:var(--split);width:2px;background:white;transform:translateX(-1px);pointer-events:none}
.compare-divider>span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:44px;height:44px;background:var(--lime);color:var(--bg);border:2px solid var(--bg);border-radius:50%}
.compare-divider svg{width:25px;height:25px}
.comparison input{position:absolute;inset:0;margin:0;width:100%;height:100%;opacity:0;cursor:ew-resize;touch-action:pan-y}
.comparison:focus-within{outline:3px solid var(--lime);outline-offset:5px}
.glass-stage{position:relative;padding-block:22px 48px;min-width:0;perspective:900px}
.glass-emblem{width:100%;height:auto;mix-blend-mode:lighten;animation:float-glass 7s ease-in-out infinite;will-change:transform}
@keyframes float-glass{0%,100%{transform:translateY(6px) rotateY(-3deg)}50%{transform:translateY(-9px) rotateY(3deg)}}
@keyframes glass-sweep{0%,35%{transform:translateX(-48%) rotate(1deg);opacity:0}43%{opacity:.75}64%{transform:translateX(48%) rotate(1deg);opacity:.75}73%,100%{transform:translateX(48%) rotate(1deg);opacity:0}}
.about-school{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:64px;align-items:center}
.about-school p:not(.eyebrow){color:var(--muted);margin:24px 0}
.about-school figure{max-width:330px;justify-self:center;width:100%}
.page-heading{padding-block:60px 48px}
.reviews-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-bottom:60px;align-items:start}
.review{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px;min-width:0}
.review blockquote{font-size:1.0625rem;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.review footer{display:grid;gap:5px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.review footer span{font-size:.875rem;color:var(--muted)}
.review footer strong{font-size:1rem;font-weight:600;overflow-wrap:anywhere}
.contact-details{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;padding-bottom:64px}
.contact-details>div{min-width:0}
.contact-details h2{margin-bottom:24px}
.contact-details p{color:var(--muted)}
.contact-links{display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.contact-links a:not(.button){text-decoration:underline;text-underline-offset:5px;overflow-wrap:anywhere;max-width:100%}
.contact-links .phone{margin:0;font-size:1.4rem}
details{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}
summary{cursor:pointer;color:var(--lime);padding-block:4px 18px}
.lightbox{width:calc(100% - 24px);max-width:1500px;height:calc(100dvh - 24px);max-height:100dvh;padding:18px 22px;border:1px solid var(--line);border-radius:8px;background:#10130f;color:var(--text)}
.lightbox::backdrop{background:#000e;backdrop-filter:blur(6px)}
.lightbox[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px}
.lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:44px;font-size:.9375rem}
.lightbox-close{background:transparent;border:1px solid var(--line);border-radius:4px;padding:9px 14px;min-height:44px}
.lightbox-image{min-height:0;min-width:0;display:flex;justify-content:center;align-items:center}
.lightbox-image img{width:100%;height:100%;object-fit:contain}
.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px}
.lightbox-caption{text-align:center;font-size:.9375rem;max-width:70ch;line-height:1.4;overflow-wrap:anywhere}
body.modal-open{overflow:hidden}
@media(min-width:1600px){.container{width:min(1360px,calc(100% - 96px))}}
@media(max-width:1050px){.site-header{gap:16px}.site-header nav{gap:4px 17px}.page-hero{gap:30px}.service-card{grid-template-columns:1fr;gap:20px}.service-copy h3{font-size:1.8rem}.service-card>.media{max-width:100%}.comparison-section{gap:30px}.direction-grid{gap:20px}}
@media(max-width:720px){.container{width:calc(100% - 36px)}.site-header{padding-block:16px;gap:14px}.brand{width:180px;flex-basis:180px}.site-header nav{width:100%;gap:2px 19px}.site-header nav a{font-size:.875rem;min-height:40px}.home-intro,.page-heading{padding-block:32px}.home-intro h1{font-size:clamp(2.55rem,10vw,4rem)}.eyebrow{margin-bottom:13px}.direction-grid{grid-template-columns:1fr;gap:36px;padding-bottom:40px}.direction-copy h2{font-size:2.1rem}.direction-copy{padding-top:16px}.direction-copy p{margin-top:9px}.direction-link{margin-top:16px}.page-hero{grid-template-columns:1fr;gap:28px;padding-block:34px 38px}.page-hero h1{font-size:clamp(2.65rem,10.4vw,4rem)}.page-hero .lead{font-size:1.0625rem;margin-top:20px}.actions{margin-top:24px}.section{padding-block:36px}.section-heading{margin-bottom:24px;gap:16px}.section-heading h2{font-size:clamp(1.9rem,7.5vw,2.5rem)}.service-grid{grid-template-columns:1fr;gap:30px}.service-card{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:20px;padding-top:20px}.service-copy h3{font-size:1.55rem}.service-copy .button{padding:11px 12px}.service-copy>p:not(.eyebrow):not(.price){font-size:1rem}.contact-band,.contact-details,.comparison-section,.about-school{grid-template-columns:1fr;gap:28px}.contact-band{padding-block:36px}.contact-details{padding-bottom:40px}.reviews-grid{grid-template-columns:1fr;gap:18px;padding-bottom:38px}.review{padding:23px}.rail-controls{gap:6px}.rail-controls button{width:42px;height:42px}.gallery-rail{gap:16px}.gallery-item{flex-basis:82%}.gallery-item.portrait{flex-basis:68%}.gallery-item.panorama{flex-basis:94%}.site-footer{padding-block:22px;gap:12px 20px}.glass-stage{padding-block:12px 10px;max-width:540px;margin-inline:auto}.about-school figure{justify-self:start;max-width:280px}.note{margin-bottom:28px}.lightbox{padding:10px;height:calc(100dvh - 16px);width:calc(100% - 16px)}.lightbox-toolbar{gap:10px}.lightbox-bottom{gap:10px}.lightbox-caption{font-size:.875rem}.lightbox-bottom button{width:42px;height:42px}}
@media(max-width:420px){.service-card{grid-template-columns:1fr;gap:18px}.service-copy h3{font-size:1.8rem}.button{padding-inline:16px}.actions{flex-direction:column;align-items:stretch}.rail-controls button{width:40px;height:40px}.section-heading{align-items:center}.review blockquote{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html,.gallery-rail{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.glass-emblem{will-change:auto}}
