/* Shared surfaces keep every component coherent in both themes. */
:root {
  color-scheme: light;
  --paper: #f7f4ef;
  --white: #fffdf8;
  --green: #294d41;
  --dark: #233f35;
  --ink: #303b33;
  --muted: #626d5f;
  --line: #dce1d5;
  --sage: #eaece2;
  --rose: #946459;
  --rose-light: #eadbd2;
  --surface: #fffdf8;
  --surface-alt: #eeeee5;
  --surface-hover: #edf0e6;
  --header-bg: #f7f4efed;
  --action: #2d5343;
  --action-hover: #1e3e30;
  --on-action: #fffdf5;
  --selected: #2b4c3d;
  --on-selected: #f5f5eb;
  --selected-muted: #cfdbcc;
  --accent-soft: #e9ded4;
  --accent-ink: #80574d;
  --ambient: #d7dfc7;
  --caption-bg: #fffdf5ed;
  --shadow: 0 18px 55px -30px #273e2a45;
  --shadow-raised: 0 24px 64px -30px #293e354d;
  --ease: cubic-bezier(.22,1,.36,1);
}
html[data-theme="dark"] {
  color-scheme: dark;
  --paper: #101b17;
  --white: #1a2a22;
  --green: #c0d2b8;
  --dark: #e8eee2;
  --ink: #e3e9df;
  --muted: #a7b4a6;
  --line: #304238;
  --sage: #1b2c23;
  --rose: #d6ac9a;
  --rose-light: #493b32;
  --surface: #18281f;
  --surface-alt: #15241c;
  --surface-hover: #203428;
  --header-bg: #101b17ed;
  --action: #c1d1b5;
  --action-hover: #dbe5cf;
  --on-action: #183321;
  --selected: #2b4635;
  --on-selected: #f0f4e8;
  --selected-muted: #d1dccb;
  --accent-soft: #3e342b;
  --accent-ink: #e0baa4;
  --ambient: #34533a;
  --caption-bg: #1b2d22ee;
  --shadow: 0 18px 55px -25px #0008;
  --shadow-raised: 0 24px 64px -25px #000a;
}
html { scrollbar-color: var(--green) var(--paper); }
body { overflow-x: clip; }
.theme-changing body,.theme-changing .site-header,.theme-changing .expertise-bar,
.theme-changing .about-section,.theme-changing .contact-section,.theme-changing .concern-card,
.theme-changing .journal-card,.theme-changing .concern-result,.theme-changing .mobile-booking,
.theme-changing .portrait-caption,.theme-changing dialog {
  transition: background-color .4s ease,color .4s ease,border-color .4s ease;
}
::selection { background: var(--rose-light);color:var(--dark); }
h1,h2 { text-wrap:balance; }
.site-header { background:var(--header-bg);border-color:transparent;transition:box-shadow .4s,border-color .4s; }
.site-header.is-scrolled { border-color:var(--line);box-shadow:0 8px 30px #00000006; }
.header-inner { height:94px;gap:24px; }
.brand-symbol { border-color:var(--line);background:var(--surface);border-radius:24px 24px 10px 10px; }
.brand-type strong { font-weight:600;letter-spacing:-.035em; }
.desktop-nav { gap:24px; }
.desktop-nav a { color:var(--muted); }
.desktop-nav a[aria-current="location"] { color:var(--green); }
.desktop-nav a[aria-current="location"]:after { inset-inline:0; }
.header-actions { display:flex;align-items:center;gap:12px;flex-shrink:0; }
.theme-toggle { min-width:44px;height:44px;padding:0 12px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:30px;color:var(--green);background:var(--surface);transition:background .25s,box-shadow .25s; }
.theme-toggle:hover { background:var(--surface-hover);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 5%,transparent); }
.theme-toggle-label { font-size:.875rem;white-space:nowrap; }
.theme-icons { width:20px;height:20px;display:block;position:relative; }
.theme-icons .icon { width:20px;height:20px;position:absolute;inset:0;transition:transform .45s var(--ease),opacity .3s; }
.theme-sun { opacity:0;transform:rotate(110deg) scale(.3); }
[data-theme="dark"] .theme-moon { opacity:0;transform:rotate(-100deg) scale(.3); }
[data-theme="dark"] .theme-sun { opacity:1;transform:rotate(0) scale(1); }
.reading-progress { height:2px;position:absolute;bottom:-1px;inset-inline:0;overflow:hidden;pointer-events:none; }
.reading-progress span { display:block;height:100%;background:linear-gradient(90deg,var(--rose),var(--green));transform:scaleX(var(--page-progress,0));transform-origin:right; }
.button { background:var(--action);border-color:var(--action);color:var(--on-action);border-radius:50px;min-height:55px;transition:transform .35s var(--ease),box-shadow .35s,background .25s; }
.button:hover { background:var(--action-hover);border-color:var(--action-hover);box-shadow:var(--shadow);transform:translateY(-3px); }
.button:active { transform:translateY(0) scale(.98); }
.button .icon { transition:transform .35s var(--ease); }
.button:hover .icon:last-child { transform:translateX(-4px); }
.button-small { min-height:44px; }
.hero { position:relative;gap:clamp(40px,6vw,90px);padding-block:64px 82px;min-height:710px; }
.hero-copy { position:relative;z-index:2; }
.hero h1 { font-size:clamp(3.5rem,5.8vw,5.15rem);line-height:1.42;font-weight:500;letter-spacing:-.075em;margin-block:6px 18px; }
.title-line { display:block; }
.marked { color:var(--green); }
.marked:after { bottom:8px;height:17px;border-radius:0 70% 8% 70%;background:var(--rose-light);transform-origin:right; }
.hero-subtitle { font-size:clamp(1.06rem,1.55vw,1.3rem);color:var(--ink);margin-block:3px 12px; }
.hero-description { max-width:420px;color:var(--muted);font-size:1rem;line-height:2.1; }
.hero-actions { margin-top:28px;gap:23px; }
.hero-note { color:var(--muted);font-size:.8rem; }
.hero-visual { perspective:1100px; }
.portrait-frame { height:548px;border-radius:255px 255px 30px 30px;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .65s var(--ease),box-shadow .5s;box-shadow:var(--shadow-raised); }
.portrait-frame img { filter:saturate(.67) contrast(.96); }
[data-theme="dark"] .portrait-frame img { filter:saturate(.62) brightness(.84) contrast(1.05); }
.portrait-frame:after { background:linear-gradient(180deg,#dfdcc409,transparent 55%,#112a2870); }
.portrait-border { border-color:var(--rose);opacity:.6;inset:-16px 17px 19px -17px;border-radius:270px 270px 32px 32px; }
.portrait-halo { position:absolute;inset:5% -12% 0;border-radius:50%;background:radial-gradient(ellipse,var(--ambient),transparent 68%);opacity:.64;z-index:-2;pointer-events:none; }
.portrait-orbit { position:absolute;inset:12% -8% 4%;border:1px solid var(--line);border-radius:50%;transform:rotate(-16deg);z-index:-1;pointer-events:none; }
.portrait-caption { background:var(--caption-bg);backdrop-filter:blur(20px);border-color:var(--line);box-shadow:var(--shadow);border-radius:15px;bottom:31px;right:-32px; }
.portrait-caption span:not(.caption-mark) { color:var(--muted); }
.portrait-stamp { background:var(--accent-soft);color:var(--accent-ink);border-color:var(--paper);width:105px;height:105px;left:-28px;top:29px; }
.image-side-note { color:var(--muted);letter-spacing:.18em;left:-39px; }
.expertise-bar { background:var(--surface-alt); }
.expertise-inner { min-height:80px; }
.expertise-inner>span,.expertise-inner>div { color:var(--muted); }
.expertise-inner i { width:12px;height:1px;border-radius:0;background:var(--rose);opacity:.7; }
.section { padding-block:106px; }
.section-heading { margin-bottom:40px; }
.section-heading h2 { font-weight:500; }
.section-heading .eyebrow:before,.about-title>.eyebrow:before,.contact-inner>div>.eyebrow:before { content:'';display:block;width:18px;height:1px;background:var(--rose); }
.concern-grid { gap:18px; }
.concern-card { background:var(--surface);border-color:var(--line);border-radius:18px;padding:28px 24px 21px;position:relative;overflow:hidden;transition:transform .4s var(--ease),background .35s,border-color .35s,box-shadow .4s; }
.concern-card:after { content:'';position:absolute;inset:0;border-radius:inherit;border:1px solid transparent;pointer-events:none;transition:border-color .3s; }
.concern-card:hover { background:var(--surface-hover);border-color:var(--rose);box-shadow:var(--shadow);transform:translateY(-7px); }
.concern-card.active { background:var(--selected);border-color:var(--selected);color:var(--on-selected);box-shadow:var(--shadow); }
.card-top { color:var(--green);margin-bottom:31px; }
.card-top .icon { background:var(--surface-alt);box-sizing:content-box;padding:12px;border-radius:14px;width:25px;height:25px; }
.card-top>span,.card-description { color:var(--muted); }
.card-bottom { color:var(--green);font-size:.875rem;margin-top:28px; }
.active .card-top,.active .card-description,.active .card-bottom,.active .card-top>span { color:var(--selected-muted); }
.active .card-top .icon { background:#ffffff12; }
.concern-result { padding:28px 30px;border:1px solid var(--line);border-radius:15px;background:var(--surface-alt); }
.result-label { color:var(--muted); }
.concern-result h3 { font-size:1.1rem; }
.concern-result .text-link { padding:12px 19px;border:1px solid var(--line);border-radius:30px;background:var(--surface); }
.about-section { background:var(--surface-alt);border-color:var(--line);padding-block:87px;position:relative;overflow:hidden; }
.about-title { position:relative;isolation:isolate; }
.about-title:after { content:'Ψ';font:280px/1 Georgia,serif;color:var(--green);opacity:.045;position:absolute;left:-10px;top:14px;z-index:-1;pointer-events:none; }
.about-title h2 { font-weight:500; }
.about-title h2 span { color:var(--rose); }
.about-signature { color:var(--green);font-size:1.7rem; }
.about-features span { color:var(--muted); }
.about-content .large-copy { font-size:1.35rem; }
.steps { gap:54px; }
.steps article:not(:last-child):after { background:var(--line);transform-origin:right; }
.step-number { width:52px;height:52px;border:1px solid var(--line);background:var(--surface-alt);color:var(--green);font-size:1.4rem; }
.steps h3 { font-size:1.1rem; }
.podcast-feature { background:linear-gradient(135deg,#304e3d,#17382d 70%);border:1px solid #ffffff12;border-radius:24px;box-shadow:var(--shadow);padding:43px 38px; }
[data-theme="dark"] .podcast-feature { background:linear-gradient(135deg,#284030,#193024 72%);border-color:var(--line); }
.podcast-copy h2 { font-size:2.5rem;font-weight:500; }
.podcast-copy h2 span { color:#dedbc0;font-size:1.4rem; }
.button-light { background:#e7e9d5;border-color:#e7e9d5;color:#274332; }
.button-light:hover { background:#f5f4e6;border-color:#f5f4e6; }
.sound-orbit { border-color:#cbdab718; }
.sound-core { background:#ffffff06;border-color:#becba43d; }
.sound-bars i { transform-origin:center; }
.cinema-feature { background:var(--surface);border-radius:24px;transition:transform .5s var(--ease),box-shadow .5s; }
.cinema-feature:hover { box-shadow:var(--shadow-raised);transform:translateY(-5px); }
.cinema-content .eyebrow { color:var(--rose); }
.cinema-image img { transition:transform 1s var(--ease),filter .5s; }
.journal-grid { gap:22px; }
.journal-card { border:1px solid var(--line);border-radius:18px;padding:27px 25px;background:var(--surface);position:relative;overflow:hidden;transition:background .3s,transform .45s var(--ease),border-color .3s,box-shadow .45s; }
.journal-card:hover { background:var(--surface-hover);transform:translateY(-7px);box-shadow:var(--shadow); }
.journal-number { color:var(--green);margin-bottom:25px; }
.journal-number span:first-child { background:var(--surface-alt);border:1px solid var(--line);padding:4px 13px; }
.journal-number span:last-child { color:var(--rose);font-size:1.1rem; }
.journal-card h3 { font-weight:500;font-size:1.27rem; }
.journal-link { border-top:1px solid var(--line);padding-top:19px;margin-top:28px;justify-content:space-between; }
.faq-section { padding-bottom:106px; }
.faq-list details { border:1px solid var(--line);border-radius:12px;padding-inline:21px;margin-bottom:12px;background:var(--surface);transition:background .25s; }
.faq-list details[open] { background:var(--surface-alt); }
.faq-list summary { padding-block:18px; }
.faq-list details p { padding-bottom:22px; }
.contact-section { background:var(--surface-alt);border-color:var(--line);padding-block:82px; }
.contact-inner h2 { font-weight:500;font-size:2.65rem; }
.contact-details { border-color:var(--line); }
.contact-details .icon { color:var(--green); }
.site-footer>span { color:var(--muted); }
.footer-actions { display:flex;align-items:center;gap:24px; }
.motion-toggle { display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--muted);padding:9px 0;font-size:.875rem; }
.motion-toggle:hover { color:var(--green); }
.motion-toggle .icon { width:16px;height:16px; }
.mobile-booking { background:var(--header-bg); }
dialog { background:var(--paper);box-shadow:var(--shadow-raised); }
.dialog-symbol,.booking-topic { background:var(--surface-alt); }
.booking-topic>span,.booking-note { color:var(--muted); }
.dialog-address .icon { color:var(--green); }
.dialog-close:hover { background:var(--surface-hover); }

/* Motion is progressive enhancement; the complete page works without it. */
.reveal { opacity:0;transform:translate3d(0,24px,0);transition:opacity .8s var(--ease) var(--reveal-delay,0ms),transform .8s var(--ease) var(--reveal-delay,0ms); }
.reveal.is-visible,.reveal:focus-within { opacity:1;transform:translate3d(0,0,0); }
@keyframes enter-up { from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)} }
@keyframes image-arrive { from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes underline-arrive { from{transform:scaleX(0)}to{transform:scaleX(1)} }
@keyframes halo-breathe { 0%,100%{transform:scale(.94) translate(0,0);opacity:.42}50%{transform:scale(1.09) translate(7px,-8px);opacity:.74} }
@keyframes orbit-drift { 0%,100%{transform:rotate(-16deg) scale(1)}50%{transform:rotate(-7deg) scale(1.035)} }
@keyframes stamp-float { 0%,100%{transform:translateY(0) rotate(-10deg)}50%{transform:translateY(-8px) rotate(-6deg)} }
@keyframes sound-wave { 0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)} }
@keyframes sound-ring { 0%,100%{transform:scale(.96);opacity:.5}50%{transform:scale(1.04);opacity:1} }
@keyframes dialog-arrive { from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)} }
@media(prefers-reduced-motion:no-preference) {
  html[data-motion="on"] .hero-copy>.eyebrow { animation:enter-up .8s var(--ease) both; }
  html[data-motion="on"] .title-line:nth-child(1) { animation:enter-up 1s var(--ease) .08s both; }
  html[data-motion="on"] .title-line:nth-child(2) { animation:enter-up 1s var(--ease) .2s both; }
  html[data-motion="on"] .hero-subtitle { animation:enter-up 1s var(--ease) .32s both; }
  html[data-motion="on"] .hero-description { animation:enter-up 1s var(--ease) .4s both; }
  html[data-motion="on"] .hero-actions { animation:enter-up 1s var(--ease) .48s both; }
  html[data-motion="on"] .hero-note { animation:enter-up 1s var(--ease) .54s both; }
  html[data-motion="on"] .hero-visual { animation:image-arrive 1.2s var(--ease) .15s both; }
  html[data-motion="on"] .marked:after { animation:underline-arrive 1.1s var(--ease) .6s both; }
  html[data-motion="on"] .hero.is-in-view .portrait-halo { animation:halo-breathe 12s ease-in-out infinite; }
  html[data-motion="on"] .hero.is-in-view .portrait-orbit { animation:orbit-drift 16s ease-in-out infinite; }
  html[data-motion="on"] .hero.is-in-view .portrait-stamp { animation:stamp-float 8s ease-in-out infinite; }
  html[data-motion="on"] .podcast-feature.is-in-view .sound-bars i { animation:sound-wave var(--wave-duration,1.4s) ease-in-out var(--wave-delay,0s) infinite; }
  html[data-motion="on"] .podcast-feature.is-in-view .sound-orbit { animation:sound-ring 7s ease-in-out infinite; }
  html[data-motion="on"] .podcast-feature.is-in-view .orbit-two { animation-delay:-2s; }
  html[data-motion="on"] .podcast-feature.is-in-view .orbit-three { animation-delay:-4s; }
  html[data-motion="on"] dialog[open] { animation:dialog-arrive .35s var(--ease) both; }
  html[data-motion="on"] .faq-list details[open]>p { animation:enter-up .4s var(--ease); }
}
html[data-motion="off"] *,html[data-motion="off"] *:before,html[data-motion="off"] *:after { animation:none!important;transition-duration:0s!important;scroll-behavior:auto!important; }
html[data-motion="off"] { scroll-behavior:auto; }
html[data-motion="off"] .reveal { opacity:1;transform:none; }
html[data-motion="off"] .portrait-frame { transform:none; }
.page-idle *, .page-idle *:before,.page-idle *:after { animation-play-state:paused!important; }

@media(min-width:1500px) { .portrait-frame{height:582px}.hero{min-height:760px}.hero h1{font-size:5.45rem} }
@media(max-width:1150px) {
  .theme-toggle-label{display:none}.theme-toggle{width:44px;padding:0}.header-actions{gap:10px}
  .hero{gap:45px;min-height:660px;padding-block:52px 68px}.hero h1{font-size:4.4rem}.portrait-frame{height:495px}
  .concern-card{padding:24px 19px 20px}.card-top .icon{width:23px;height:23px;padding:10px}
  .podcast-feature{padding:35px 28px}.podcast-copy h2{font-size:2.2rem}.podcast-copy h2 span{font-size:1.3rem}
}
@media(max-width:1050px) {
  .desktop-nav{display:none}.menu-button{display:grid;border-radius:50%;width:44px;height:44px}.header-actions{margin-inline-start:auto}
  .mobile-menu{display:flex;flex-direction:column;padding:12px 36px 25px;background:var(--header-bg);border-top:1px solid var(--line)}
  .mobile-menu a{padding:10px 0;color:var(--green)}
}
@media(max-width:900px) {
  .header-inner{height:82px;gap:18px}.hero{gap:30px;min-height:605px;padding-block:42px 55px}.hero h1{font-size:3.7rem}
  .hero-subtitle{font-size:1.1rem}.portrait-frame{height:424px}.portrait-stamp{width:82px;height:82px;top:20px;left:-15px}
  .portrait-caption{right:-15px;min-width:236px;padding:15px;bottom:24px}.image-side-note{left:-25px}
  .section{padding-block:74px}.concern-card{padding:24px}.card-top{margin-bottom:26px}.concern-result{padding:23px;gap:25px}
  .about-section{padding-block:65px}.about-content .large-copy{font-size:1.17rem}.about-title:after{font-size:220px;left:-15px}
  .steps{gap:30px}.podcast-feature{padding:32px}.podcast-copy h2{font-size:2.25rem}
  .journal-grid{gap:15px}.journal-card{padding:23px 20px}.journal-card h3{font-size:1.1rem}
  .faq-section{padding-bottom:76px}.faq-list details{padding-inline:17px}.contact-section{padding-block:62px}.contact-inner h2{font-size:2rem}
}
@media(max-width:600px) {
  .header-inner{height:78px;gap:12px}.header-actions{gap:9px}.header-actions>.button{display:none}.theme-toggle,.menu-button{height:42px;width:42px;min-width:42px}
  .brand-type strong{font-size:1.02rem}.brand-type small{font-size:.75rem}.hero{gap:45px;padding-block:36px 49px;min-height:auto}
  .hero h1{font-size:clamp(3.8rem,13vw,5rem);line-height:1.38;letter-spacing:-.065em;margin-block:8px 18px}
  .hero .eyebrow{font-size:.8rem}.hero-subtitle{font-size:1.16rem;margin-bottom:12px}.hero-description{font-size:1rem;max-width:460px}
  .hero-actions{gap:19px;margin-top:24px}.hero-actions .button{font-size:.875rem;padding-inline:20px}.hero-note{font-size:.77rem}
  .hero-visual{width:calc(100% - 34px);max-width:405px}.portrait-frame{height:420px;border-radius:230px 230px 24px 24px}
  .portrait-caption{right:-13px;bottom:22px;min-width:258px;padding:17px 19px}.portrait-caption strong{font-size:1.1rem}
  .portrait-stamp{width:86px;height:86px;top:25px;left:-21px}.portrait-border{inset:-12px 12px 14px -12px}.portrait-orbit{inset:10% -5% 3%}
  .image-side-note{left:-25px}.expertise-inner{min-height:86px;gap:10px}.expertise-inner>div{gap:12px;font-size:.81rem}
  .section{padding-block:62px}.section-heading{margin-bottom:28px}.section-heading h2{font-size:2rem}.section-heading .eyebrow{font-size:.81rem}
  .concern-grid{gap:12px}.concern-card{padding:20px 15px 17px;border-radius:15px}.card-top{margin-bottom:27px}.card-top .icon{padding:9px;width:23px;height:23px}
  .concern-card strong{font-size:1rem}.card-description{font-size:.875rem}.card-bottom{font-size:.8rem;gap:7px;margin-top:20px}
  .concern-result{padding:23px 21px;gap:20px}.concern-result h3{font-size:1.08rem}.concern-result .text-link{font-size:.875rem;padding:10px 17px}
  .about-section{padding-block:53px}.about-title h2{font-size:2.8rem}.about-title:after{left:8px;font-size:240px;top:18px}
  .about-content{border-color:var(--line);padding-top:28px}.about-content .large-copy{font-size:1.19rem}
  .steps{gap:33px}.steps article{padding-right:67px}.step-number{width:45px;height:45px;font-size:1.2rem}.steps h3{font-size:1.08rem}
  .steps article:not(:last-child):after{right:22px}.podcast-feature{padding:34px 28px;min-height:370px}.podcast-copy h2{font-size:2.5rem}
  .podcast-copy h2 span{font-size:1.4rem}.cinema-feature{border-radius:20px}.cinema-content{padding:25px 20px}
  .journal-grid{gap:16px}.journal-card{padding:27px 25px}.journal-card h3{font-size:1.25rem}.journal-number{margin-bottom:19px}
  .journal-link{margin-top:23px}.faq-section{padding-bottom:62px}.faq-list details{padding-inline:18px}.faq-list summary{font-size:.95rem}
  .contact-section{padding-block:54px}.contact-inner h2{font-size:2.15rem}.contact-details{border-color:var(--line)}
  .site-footer{flex-wrap:wrap;row-gap:25px;padding-block:31px 107px}.footer-actions{width:100%;justify-content:space-between;border-top:1px solid var(--line);padding-top:13px}
  .site-footer>span{display:none}.motion-toggle,.back-top{font-size:.875rem}.mobile-booking{background:var(--header-bg)}
}
@media(max-width:380px) {
  .brand-type strong{font-size:.94rem}.header-actions{gap:7px}.theme-toggle,.menu-button{width:38px;height:42px;min-width:38px}
  .hero h1{font-size:3.7rem}.hero-subtitle{font-size:1.04rem}.hero-visual{width:calc(100% - 24px)}.portrait-frame{height:375px}
  .concern-grid{grid-template-columns:1fr}.concern-card{padding:23px}.card-description{min-height:auto}.card-bottom{font-size:.875rem}
  .contact-inner h2{font-size:1.92rem}.cinema-feature{display:flex}
}
@media(prefers-reduced-motion:reduce) {
  .reveal{opacity:1;transform:none}.portrait-frame{transform:none!important}html{scroll-behavior:auto}
}
@media print {
  .reveal{opacity:1;transform:none}.site-header{position:static}.mobile-booking,.theme-toggle,.motion-toggle{display:none}
}
