
:root{--text-xs:clamp(.75rem,.7rem + .25vw,.875rem);--text-sm:clamp(.875rem,.8rem + .35vw,1rem);--text-base:clamp(1rem,.95rem + .25vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .75vw,1.5rem);--text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);--text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--font-display:'DM Serif Display',Georgia,serif;--font-body:'Inter','Helvetica Neue',sans-serif;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--transition-interactive:180ms cubic-bezier(.16,1,.3,1);--content-narrow:640px;--content-default:960px}
:root,[data-theme=light]{--color-bg:#f7f6f2;--color-surface:#fff;--color-surface-offset:#f0ede8;--color-divider:#dcd9d5;--color-border:#d4d1ca;--color-text:#1a1a18;--color-text-muted:#6b6a66;--color-text-faint:#a3a29e;--color-primary:#8b2040;--color-primary-hover:#6e1833;--color-primary-active:#521228;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 12px rgba(0,0,0,.07)}
[data-theme=dark]{--color-bg:#111110;--color-surface:#1a1918;--color-surface-offset:#222120;--color-divider:#2a2928;--color-border:#3a3938;--color-text:#e0dfdd;--color-text-muted:#8a8987;--color-text-faint:#5a5957;--color-primary:#c45a78;--color-primary-hover:#d4758f;--color-primary-active:#e090a5;--shadow-sm:0 1px 2px rgba(0,0,0,.2);--shadow-md:0 4px 12px rgba(0,0,0,.3)}
@media(prefers-color-scheme:dark){:root:not([data-theme]){--color-bg:#111110;--color-surface:#1a1918;--color-surface-offset:#222120;--color-divider:#2a2928;--color-border:#3a3938;--color-text:#e0dfdd;--color-text-muted:#8a8987;--color-text-faint:#5a5957;--color-primary:#c45a78;--color-primary-hover:#d4758f;--color-primary-active:#e090a5;--shadow-sm:0 1px 2px rgba(0,0,0,.2);--shadow-md:0 4px 12px rgba(0,0,0,.3)}}
*,::before,::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:var(--space-16)}
body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg)}
img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}
input,button,textarea,select{font:inherit;color:inherit}
h1,h2,h3{text-wrap:balance;line-height:1.15}
p{text-wrap:pretty;max-width:72ch}
::selection{background:rgba(139,32,64,.2);color:var(--color-text)}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
@media(prefers-reduced-motion:reduce){*,::before,::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
a,button,input,textarea,select{transition:color var(--transition-interactive),background var(--transition-interactive),border-color var(--transition-interactive),box-shadow var(--transition-interactive)}
button{cursor:pointer;background:none;border:none}
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(from var(--color-bg) r g b/.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-divider)}
.header-inner{max-width:var(--content-default);margin:0 auto;padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--color-text);font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.01em}
.logo svg{flex-shrink:0}
.theme-toggle{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-muted)}
.theme-toggle:hover{color:var(--color-text);background:var(--color-surface-offset)}
.hero{position:relative;width:100%;height:clamp(400px,60vh,700px);overflow:hidden;display:flex;align-items:center;justify-content:center}
.hero-image-wrap{position:absolute;inset:0}
.hero-image-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.3) 0%,rgba(0,0,0,.45) 100%)}
.hero-content{position:relative;z-index:2;text-align:center;padding:var(--space-6)}
.hero h1{font-family:var(--font-display);font-size:var(--text-2xl);color:#fff;letter-spacing:-.02em;margin-bottom:var(--space-3);font-weight:400}
.hero-tagline{font-size:var(--text-lg);color:rgba(255,255,255,.85);font-weight:300;letter-spacing:.02em;max-width:100%}
.section{padding:clamp(var(--space-12),6vw,var(--space-24)) var(--space-6)}
.container{max-width:var(--content-default);margin:0 auto}
.container-narrow{max-width:var(--content-narrow);margin:0 auto}
.section h2{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:var(--space-4);font-weight:400;letter-spacing:-.01em}
.section .container p,.section .container-narrow p{color:var(--color-text-muted);margin-bottom:var(--space-8);line-height:1.7}
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--space-6);margin-top:var(--space-8)}
.pillar{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6)}
.pillar h3{font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:var(--space-3);font-weight:400;color:var(--color-primary)}
.pillar p{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.65}
.contact{background:var(--color-surface-offset)}
.contact-form{display:flex;flex-direction:column;gap:var(--space-5)}
.form-group{display:flex;flex-direction:column;gap:var(--space-2)}
.form-group label{font-size:var(--text-sm);font-weight:500;color:var(--color-text)}
.form-group input,.form-group textarea{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-base);color:var(--color-text);width:100%;resize:vertical}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-faint)}
.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(139,32,64,.12)}
.btn-submit{display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-size:var(--text-sm);font-weight:500;padding:var(--space-3) var(--space-8);border:none;border-radius:var(--radius-md);cursor:pointer;align-self:flex-start;letter-spacing:.01em;min-height:44px}
.btn-submit:hover{background:var(--color-primary-hover)}
.btn-submit:active{background:var(--color-primary-active)}
.site-footer{border-top:1px solid var(--color-divider);padding:var(--space-10) var(--space-6);text-align:center}
.footer-inner{max-width:var(--content-default);margin:0 auto;display:flex;flex-direction:column;gap:var(--space-2)}
.footer-address{font-size:var(--text-sm);color:var(--color-text-muted)}
.footer-copy{font-size:var(--text-xs);color:var(--color-text-faint)}
.footer-attr{font-size:var(--text-xs);margin-top:var(--space-2)}
.footer-attr a{color:var(--color-text-faint);text-decoration:none}
.footer-attr a:hover{color:var(--color-text-muted)}
@media(max-width:640px){.header-inner{padding:var(--space-3) var(--space-4)}.hero{height:clamp(300px,50vh,500px)}.hero h1{font-size:clamp(1.75rem,1rem + 3vw,2.5rem)}.pillars{grid-template-columns:1fr}.section{padding:var(--space-12) var(--space-4)}.btn-submit{width:100%}}
