/* Reusable Phase 1 controls and rhythm; page-specific content remains intact. */
:root{--space-section:clamp(64px,7vw,112px);--control-radius:2px;--motion-fast:160ms;--motion-reveal:340ms}
.page-transition{display:none!important}.site-header,.site-header.scrolled{height:88px;box-shadow:none;border-bottom:1px solid var(--line);background:var(--paper);transition:background-color var(--motion-fast)}
.brand{font-size:1.0625rem;letter-spacing:-.035em;white-space:normal;line-height:1.1;flex-shrink:0}.brand>span{max-width:210px}.brand img{width:32px;height:32px}.brand-amp{font:inherit;margin:0;letter-spacing:inherit}.header-actions{gap:16px}.header-book,.button{border-radius:var(--control-radius);min-height:48px;font-size:1rem}.site-header nav>a{font-size:.9375rem}.language{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;font-size:.875rem}.footer-wordmark{font-size:clamp(2.8rem,5vw,5rem);letter-spacing:-.05em;line-height:1.04}.footer-top{padding:56px 0}.footer-top>div>a{font-size:1rem;min-height:36px}.footer-bottom{font-size:.875rem;overflow-wrap:anywhere}.reveal{transition:opacity var(--motion-reveal) cubic-bezier(.16,1,.3,1),transform var(--motion-reveal) cubic-bezier(.16,1,.3,1),filter var(--motion-reveal)}.reveal.pending{opacity:.82;filter:blur(1.5px);transform:translateY(8px)}a:focus-visible,button:focus-visible{outline:3px solid #c5a557;outline-offset:4px}.home-cover a:focus-visible,.home-cover button:focus-visible,.home-approach a:focus-visible{outline-color:white}html{scroll-padding-top:100px;scroll-behavior:smooth}body.page-ready main{animation:site-in .26s cubic-bezier(.16,1,.3,1) both}.button,.header-book,.language,summary:after{transition-duration:var(--motion-fast)}summary:after{transition-property:transform,background-color}details[open] summary:after{transform:rotate(180deg)}@keyframes site-in{from{opacity:.92;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:1150px){.site-header .header-book{display:none}}
@media(max-width:850px){.site-header,.site-header.scrolled{height:76px;padding:0 16px;gap:8px}.site-header .brand{font-size:1rem;flex:1 1 auto;overflow:visible;min-width:0;gap:8px}.brand>span{max-width:160px}.header-actions{gap:2px}.site-header .language,#menu-toggle{width:44px;min-width:44px;height:44px;min-height:44px;flex-basis:44px}.site-header #navigation{left:0;right:0;top:100%;height:calc(100svh - 76px);padding:24px 24px 105px}.site-header #navigation>a{font-size:1.8rem;padding:12px 0}.site-header.scrolled #navigation{height:calc(100svh - 76px)}.mobile-dock{border-radius:4px}.mobile-dock a{border-radius:2px}.footer-bottom{padding-bottom:125px}}
@media(max-width:360px){.site-header{padding:0 12px}.site-header .brand{font-size:.9375rem;gap:6px}.brand img{width:26px;height:26px;flex-basis:26px}.brand>span{max-width:135px}.footer-wordmark{font-size:2.7rem}}
/* Small spatial shifts give photography depth without adding a motion library. */
.spatial-media{--spatial-x:0px;--spatial-y:0px;--spatial-scroll:0px}.spatial-media img{transform:translate3d(var(--spatial-x),calc(var(--spatial-y) + var(--spatial-scroll)),0) scale(1.04);transition:transform .55s cubic-bezier(.16,1,.3,1),opacity .8s ease;will-change:transform}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal.pending{opacity:1;filter:none;transform:none}body.page-ready main{animation:none}.spatial-media img{transform:none!important;transition:none!important}}
@media(max-width:850px){html{overflow-x:visible}body{overflow-x:clip}.site-header{position:sticky;top:0}}
