@layer reset,tokens,base,layout,components,utilities;@layer reset{*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;}img,video{display:block;max-width:100%;}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit;}a{color:inherit;text-decoration:none;}ul,ol{list-style:none;}details>summary{cursor:pointer;list-style:none;}details>summary::-webkit-details-marker{display:none;}h1,h2,h3,h4,h5,h6{font-weight:inherit;font-size:inherit;}}@layer tokens{:root{--clr-bg:oklch(97.5% 0.007 65);--clr-bg-alt:oklch(94.5% 0.009 65);--clr-bg-card:oklch(99% 0.004 65);--clr-text:oklch(18% 0.02 50);--clr-text-muted:oklch(48% 0.015 55);--clr-accent:oklch(50% 0.09 55);--clr-accent-dark:oklch(42% 0.09 55);--clr-accent-light:oklch(90% 0.03 65);--clr-border:oklch(87% 0.012 65);--clr-border-faint:oklch(92% 0.007 65);--clr-shadow-sm:oklch(18% 0.02 50 / 0.06);--clr-shadow-md:oklch(18% 0.02 50 / 0.1);--clr-shadow-lg:oklch(18% 0.02 50 / 0.16);--clr-header-bg:oklch(97.5% 0.007 65 / 0.84);--font-serif:'Cormorant Garamond',Georgia,serif;--font-sans:'Inter',system-ui,-apple-system,sans-serif;--text-xs:clamp(0.75rem,1.2vw,0.8125rem);--text-sm:clamp(0.875rem,1.5vw,0.9375rem);--text-base:clamp(1rem,2vw,1.0625rem);--text-lg:clamp(1.125rem,2.5vw,1.25rem);--text-xl:clamp(1.25rem,3vw,1.5rem);--text-2xl:clamp(1.5rem,4vw,2rem);--text-3xl:clamp(2rem,5vw,3rem);--text-4xl:clamp(2.75rem,7.5vw,5rem);--sp-1:0.25rem;--sp-2:0.5rem;--sp-3:0.75rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-8:2rem;--sp-10:2.5rem;--sp-12:3rem;--sp-16:4rem;--sp-20:5rem;--sp-28:7rem;--container-max:1140px;--container-pad:clamp(1.25rem,5vw,2.5rem);--header-h:64px;--r-sm:8px;--r-md:16px;--r-lg:24px;--r-xl:32px;--r-full:9999px;--ease-expo:cubic-bezier(0.16,1,0.3,1);--ease-inout:cubic-bezier(0.4,0,0.2,1);--dur-fast:180ms;--dur-base:300ms;--dur-slow:600ms;}[data-theme="dark"]{--clr-bg:oklch(13% 0.01 50);--clr-bg-alt:oklch(17% 0.012 50);--clr-bg-card:oklch(17% 0.012 50);--clr-text:oklch(92% 0.007 65);--clr-text-muted:oklch(62% 0.01 55);--clr-accent:oklch(73% 0.085 65);--clr-accent-dark:oklch(80% 0.075 65);--clr-accent-light:oklch(24% 0.04 55);--clr-border:oklch(27% 0.015 50);--clr-border-faint:oklch(21% 0.01 50);--clr-shadow-sm:oklch(0% 0 0 / 0.2);--clr-shadow-md:oklch(0% 0 0 / 0.3);--clr-shadow-lg:oklch(0% 0 0 / 0.45);--clr-header-bg:oklch(13% 0.01 50 / 0.88);}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--clr-bg:oklch(13% 0.01 50);--clr-bg-alt:oklch(17% 0.012 50);--clr-bg-card:oklch(17% 0.012 50);--clr-text:oklch(92% 0.007 65);--clr-text-muted:oklch(62% 0.01 55);--clr-accent:oklch(73% 0.085 65);--clr-accent-dark:oklch(80% 0.075 65);--clr-accent-light:oklch(24% 0.04 55);--clr-border:oklch(27% 0.015 50);--clr-border-faint:oklch(21% 0.01 50);--clr-shadow-sm:oklch(0% 0 0 / 0.2);--clr-shadow-md:oklch(0% 0 0 / 0.3);--clr-shadow-lg:oklch(0% 0 0 / 0.45);--clr-header-bg:oklch(13% 0.01 50 / 0.88);}}}@layer base{body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.7;color:var(--clr-text);background-color:var(--clr-bg);transition:background-color var(--dur-base) var(--ease-inout),color var(--dur-base) var(--ease-inout);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}body.no-transition *{transition:none !important;}}@layer layout{.container{width:min(100%,var(--container-max));margin-inline:auto;padding-inline:var(--container-pad);}.section-label{display:inline-block;font-size:var(--text-xs);font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--clr-accent);margin-bottom:var(--sp-2);}.section-title{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:500;line-height:1.1;color:var(--clr-text);}.section-header{margin-bottom:var(--sp-12);}}@layer components{.header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--header-h);background:var(--clr-header-bg);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border-bottom:1px solid var(--clr-border-faint);transition:background var(--dur-base) var(--ease-inout),border-color var(--dur-base) var(--ease-inout),box-shadow var(--dur-base) var(--ease-inout);}.header.scrolled{box-shadow:0 1px 24px var(--clr-shadow-md);}.nav{display:flex;align-items:center;justify-content:space-between;height:100%;gap:var(--sp-6);}.nav-logo{font-family:var(--font-serif);font-size:1.2rem;font-weight:500;color:var(--clr-text);white-space:nowrap;flex-shrink:0;transition:color var(--dur-fast);}.nav-logo:hover{color:var(--clr-accent);}.nav-links{display:none;align-items:center;gap:var(--sp-8);}.nav-link{font-size:var(--text-sm);font-weight:400;color:var(--clr-text-muted);position:relative;padding-bottom:2px;transition:color var(--dur-fast);}.nav-link::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:1px;background:var(--clr-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-base) var(--ease-expo);}.nav-link:hover,.nav-link.active{color:var(--clr-text);}.nav-link:hover::after,.nav-link.active::after{transform:scaleX(1);}.nav-actions{display:flex;align-items:center;gap:var(--sp-3);}.theme-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--r-full);background:var(--clr-bg-alt);color:var(--clr-text-muted);transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-base) var(--ease-expo);}.theme-toggle:hover{background:var(--clr-accent-light);color:var(--clr-accent);transform:rotate(20deg);}.theme-toggle svg{width:17px;height:17px;}.icon-moon{display:none;}[data-theme="dark"] .icon-sun{display:none;}[data-theme="dark"] .icon-moon{display:block;}.nav-burger{display:flex;flex-direction:column;gap:5px;width:38px;height:38px;align-items:center;justify-content:center;border-radius:var(--r-sm);padding:8px;transition:background var(--dur-fast);}.nav-burger:hover{background:var(--clr-bg-alt);}.nav-burger span{display:block;width:20px;height:1.5px;background:var(--clr-text);border-radius:2px;transition:transform var(--dur-base) var(--ease-expo),opacity var(--dur-fast);}.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(0);}.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}@media (max-width:767px){.nav-links{position:fixed;inset:var(--header-h) 0 0 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-10);background:var(--clr-bg);transform:translateX(100%);transition:transform var(--dur-slow) var(--ease-expo);z-index:99;}.nav-links.open{transform:translateX(0);}.nav-link{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:500;color:var(--clr-text);}.nav-link::after{height:2px;bottom:-4px;}}@media (min-width:768px){.nav-links{display:flex;}.nav-burger{display:none;}}.btn{display:inline-flex;align-items:center;gap:0.5em;padding:0.65em 1.5em;border-radius:var(--r-full);font-size:var(--text-sm);font-weight:500;letter-spacing:0.02em;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-expo),box-shadow var(--dur-fast),background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);}.btn:hover{transform:translateY(-2px);}.btn:active{transform:translateY(0);}.btn-primary{background:var(--clr-accent);color:oklch(98% 0.005 65);box-shadow:0 2px 12px color-mix(in oklch,var(--clr-accent) 35%,transparent);}.btn-primary:hover{background:var(--clr-accent-dark);box-shadow:0 6px 20px color-mix(in oklch,var(--clr-accent) 45%,transparent);}.btn-outline{background:transparent;color:var(--clr-text);border:1.5px solid var(--clr-border);}.btn-outline:hover{border-color:var(--clr-accent);color:var(--clr-accent);}.btn-large{padding:0.8em 2em;font-size:var(--text-base);}.btn svg{width:1.1em;height:1.1em;flex-shrink:0;}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-top:var(--header-h);position:relative;overflow:hidden;}.hero::before{content:'';position:absolute;top:-20%;right:-10%;width:70%;height:80%;background:radial-gradient( ellipse at center,var(--clr-accent-light) 0%,transparent 70% );pointer-events:none;z-index:0;}.hero-content{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:var(--sp-12);align-items:center;padding-block:var(--sp-16);}.hero-eyebrow{font-size:var(--text-sm);font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--clr-accent);margin-bottom:var(--sp-4);}.hero-title{font-family:var(--font-serif);font-size:var(--text-4xl);font-weight:500;line-height:1.02;color:var(--clr-text);margin-bottom:var(--sp-6);text-wrap:balance;}.hero-desc{font-size:var(--text-lg);color:var(--clr-text-muted);max-width:44ch;line-height:1.7;margin-bottom:var(--sp-10);text-wrap:pretty;}.hero-photo{position:relative;display:flex;justify-content:center;}.hero-photo img{width:min(100%,380px);aspect-ratio:3 / 4;object-fit:cover;object-position:center top;border-radius:var(--r-xl);box-shadow:0 24px 64px var(--clr-shadow-lg);position:relative;z-index:1;transition:box-shadow var(--dur-base);}.hero-photo::before{content:'';position:absolute;inset:14px -14px -14px 14px;border:1.5px solid var(--clr-border);border-radius:var(--r-xl);z-index:0;transition:border-color var(--dur-base);}.hero-photo:hover img{box-shadow:0 32px 80px var(--clr-shadow-lg);}.hero-photo:hover::before{border-color:var(--clr-accent);}.hero-scroll-hint{position:absolute;bottom:var(--sp-8);left:50%;transform:translateX(-50%);color:var(--clr-text-muted);animation:hint-bounce 2.8s ease-in-out infinite;}.hero-scroll-hint svg{width:22px;height:22px;display:block;}@keyframes hint-bounce{0%,100%{transform:translateX(-50%) translateY(0);opacity:0.5;}50%{transform:translateX(-50%) translateY(8px);opacity:1;}}@media (min-width:640px){.hero-photo img{width:min(100%,420px);}}@media (min-width:768px){.hero-content{grid-template-columns:1fr 1fr;}}@media (min-width:1024px){.hero-content{grid-template-columns:1.15fr 0.85fr;gap:var(--sp-20);}.hero-photo{justify-content:flex-end;}}.about{padding-block:var(--sp-28);background:var(--clr-bg-alt);}.about-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-12);align-items:start;}.about-text{display:flex;flex-direction:column;gap:var(--sp-5);}.lead{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:400;line-height:1.55;color:var(--clr-text);}.about-text p:not(.lead){color:var(--clr-text-muted);}.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);}.stat-card{background:var(--clr-bg-card);border:1px solid var(--clr-border);border-radius:var(--r-md);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-1);transition:border-color var(--dur-fast),box-shadow var(--dur-base) var(--ease-expo),transform var(--dur-base) var(--ease-expo);}.stat-card:hover{border-color:var(--clr-accent);box-shadow:0 4px 20px var(--clr-shadow-sm);transform:translateY(-3px);}.stat-number{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:600;line-height:1;color:var(--clr-accent);}.stat-label{font-size:var(--text-sm);color:var(--clr-text-muted);line-height:1.3;}@media (min-width:768px){.about-grid{grid-template-columns:1.1fr 0.9fr;align-items:center;}}.approach{padding-block:var(--sp-28);}.approach-intro{font-family:var(--font-serif);font-size:var(--text-xl);line-height:1.6;color:var(--clr-text);max-width:68ch;margin-bottom:var(--sp-12);text-wrap:pretty;}.approach-intro em{font-style:italic;color:var(--clr-accent);}.approach-pillars{display:grid;grid-template-columns:1fr;gap:var(--sp-5);}.pillar{padding:var(--sp-8);background:var(--clr-bg-alt);border:1px solid var(--clr-border);border-radius:var(--r-lg);transition:border-color var(--dur-base),transform var(--dur-base) var(--ease-expo),box-shadow var(--dur-base);}.pillar:hover{border-color:var(--clr-accent);transform:translateY(-5px);box-shadow:0 8px 32px var(--clr-shadow-sm);}.pillar-icon{color:var(--clr-accent);margin-bottom:var(--sp-4);line-height:1;}.pillar-icon svg{display:block;width:40px;height:48px;}.pillar h3{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:500;color:var(--clr-text);margin-bottom:var(--sp-3);}.pillar p{color:var(--clr-text-muted);line-height:1.65;font-size:var(--text-sm);}@media (min-width:640px){.approach-pillars{grid-template-columns:1fr 1fr;}}@media (min-width:1024px){.approach-pillars{grid-template-columns:repeat(3,1fr);}}.who{padding-block:var(--sp-28);background:var(--clr-bg-alt);}.who-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-3);}.who-card{background:var(--clr-bg-card);border:1px solid var(--clr-border);border-radius:var(--r-md);padding:var(--sp-6) var(--sp-8);border-left:3px solid transparent;transition:border-color var(--dur-fast),border-left-color var(--dur-fast),transform var(--dur-base) var(--ease-expo),box-shadow var(--dur-base);}.who-card:hover{border-left-color:var(--clr-accent);border-color:var(--clr-border);transform:translateX(4px);box-shadow:0 4px 16px var(--clr-shadow-sm);}.who-card h3{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:500;color:var(--clr-text);margin-bottom:var(--sp-2);}.who-card p{color:var(--clr-text-muted);font-size:var(--text-sm);line-height:1.6;}@media (min-width:600px){.who-grid{grid-template-columns:1fr 1fr;}.who-card:hover{transform:translateY(-3px) translateX(0);}}@media (min-width:1024px){.who-grid{grid-template-columns:repeat(3,1fr);}}.services{padding-block:var(--sp-28);}.services-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-5);margin-bottom:var(--sp-8);}.service-card{position:relative;background:var(--clr-bg-alt);border:1px solid var(--clr-border);border-radius:var(--r-lg);padding:var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-4);transition:box-shadow var(--dur-base),transform var(--dur-base) var(--ease-expo);}.service-card:hover{box-shadow:0 10px 40px var(--clr-shadow-md);transform:translateY(-4px);}.service-card--featured{background:var(--clr-accent-light);border-color:color-mix(in oklch,var(--clr-accent) 30%,transparent);}.service-badge{display:inline-flex;align-self:flex-start;padding:0.2em 0.85em;background:var(--clr-accent);color:oklch(98% 0.005 65);border-radius:var(--r-full);font-size:var(--text-xs);font-weight:500;letter-spacing:0.05em;}.service-card h3{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:500;color:var(--clr-text);line-height:1.2;}.service-duration{font-size:var(--text-sm);font-weight:500;color:var(--clr-accent);}.service-card>p{color:var(--clr-text-muted);font-size:var(--text-sm);line-height:1.65;flex:1;}.services-grid--single{grid-template-columns:1fr;}.services-grid--single .service-card{align-items:flex-start;}.services-note{text-align:center;color:var(--clr-text-muted);font-size:var(--text-sm);}@media (min-width:600px){.services-grid{grid-template-columns:1fr 1fr;}.services-grid--single{grid-template-columns:1fr;}}.faq{padding-block:var(--sp-28);background:var(--clr-bg-alt);}.faq-list{border:1px solid var(--clr-border);border-radius:var(--r-lg);overflow:hidden;}.faq-item{background:var(--clr-bg-card);border-bottom:1px solid var(--clr-border);transition:background var(--dur-fast);}.faq-item:last-child{border-bottom:none;}.faq-item[open]{background:var(--clr-bg-alt);}.faq-question{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-6) var(--sp-8);font-size:var(--text-base);font-weight:500;color:var(--clr-text);transition:color var(--dur-fast);}.faq-question:hover{color:var(--clr-accent);}.faq-item[open] .faq-question{color:var(--clr-accent);}.faq-icon{width:20px;height:20px;flex-shrink:0;color:var(--clr-accent);transition:transform var(--dur-base) var(--ease-expo);}.faq-item[open] .faq-icon{transform:rotate(180deg);}.faq-answer{padding:0 var(--sp-8) var(--sp-6);color:var(--clr-text-muted);line-height:1.75;animation:faq-slide 0.28s var(--ease-expo);}@keyframes faq-slide{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:translateY(0);}}.contact{padding-block:var(--sp-28);position:relative;overflow:hidden;}.contact::before{content:'';position:absolute;inset:0;background:radial-gradient( ellipse 80% 90% at 50% 50%,var(--clr-accent-light),transparent 70% );pointer-events:none;}.contact-inner{position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--sp-6);}.contact-title{font-family:var(--font-serif);font-size:clamp(2.5rem,8vw,5rem);font-weight:500;line-height:1.08;color:var(--clr-text);text-wrap:balance;}.contact-desc{font-size:var(--text-lg);color:var(--clr-text-muted);max-width:44ch;text-wrap:pretty;}.contact-actions{display:flex;flex-wrap:wrap;gap:var(--sp-4);justify-content:center;margin-top:var(--sp-2);}.footer{padding-block:var(--sp-8);border-top:1px solid var(--clr-border-faint);}.footer-inner{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;}.footer-name{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--clr-text);}.footer-copy,.footer-year{font-size:var(--text-sm);color:var(--clr-text-muted);}@media (min-width:600px){.footer-inner{flex-direction:row;justify-content:space-between;}}.reveal{opacity:0;transform:translateY(22px);transition:opacity var(--dur-slow) var(--ease-expo),transform var(--dur-slow) var(--ease-expo);}.reveal.visible{opacity:1;transform:translateY(0);}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}}