:root { --ink:#102942; --ink-deep:#071a2c; --paper:#f4f0e8; --warm:#e5ddcf; --gold:#c79552; --line:rgba(16,41,66,.17); --light-line:rgba(244,240,232,.18); --body:'Manrope',sans-serif; --display:'Playfair Display',serif; --mono:'DM Mono',monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--body); font-size:16px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:20; left:1rem; top:-4rem; padding:.75rem 1rem; background:var(--gold); color:var(--ink-deep); font-weight:700; transition:top .2s; }
.skip-link:focus { top:1rem; }
.site-header { position:fixed; top:0; left:0; z-index:100; display:flex; align-items:center; justify-content:space-between; width:100%; padding:1.4rem clamp(1.4rem,4vw,5rem); color:var(--paper); transition:background .25s ease,box-shadow .25s ease,backdrop-filter .25s ease; }.site-header.is-scrolled { background:rgba(7,26,44,.96); box-shadow:0 1px 0 rgba(229,221,207,.13); backdrop-filter:blur(14px); }
.brand { display:inline-flex; align-items:center; color:inherit; font-family:var(--display); font-size:clamp(1.1rem,1.65vw,1.55rem); font-weight:600; letter-spacing:-.055em; line-height:1; }
.main-nav { display:flex; align-items:center; gap:2rem; font-size:.71rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.main-nav a { transition:color .2s; }.main-nav a:hover { color:var(--gold); }
.nav-cta { border-bottom:1px solid var(--gold); padding-bottom:.35rem; color:var(--gold); }
.language-switcher { display:inline-flex; gap:.25rem; align-items:center; margin-left:-.7rem; }.language-button { display:grid; width:1.65rem; height:1.65rem; place-items:center; border:1px solid transparent; border-radius:50%; padding:0; background:transparent; cursor:pointer; }.language-button img { display:block; width:1rem; height:auto; border-radius:1px; box-shadow:0 0 0 1px rgba(244,240,232,.18); }.language-button.is-active { border-color:var(--gold); background:rgba(199,149,82,.16); }
.menu-button { display:none; }
.hero { position:relative; display:grid; min-height:100svh; grid-template-columns:minmax(0,1fr) minmax(260px,30vw); align-items:center; overflow:hidden; padding:8rem clamp(1.4rem,11vw,12rem) 5.5rem; background:var(--ink); color:var(--paper); }
.hero-grid { position:absolute; inset:0; background-image:linear-gradient(rgba(229,221,207,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(229,221,207,.06) 1px,transparent 1px); background-size:6.2rem 6.2rem; mask-image:linear-gradient(90deg,#000,transparent 85%); }
.hero-copy,.hero-side,.scroll-cue { position:relative; }
.eyebrow,.section-label { display:flex; align-items:center; gap:.65rem; margin:0; font-family:var(--mono); font-size:.63rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase; }
.eyebrow span { width:1.8rem; height:1px; background:currentColor; }.hero .eyebrow { color:var(--gold); }
h1,h2,h3,p { margin-top:0; }.hero h1 { max-width:800px; margin:.9rem 0 1.55rem; font-family:var(--display); font-size:clamp(3.6rem,7.6vw,7.7rem); font-weight:500; letter-spacing:-.06em; line-height:.91; }.hero h1 em,.advisory h2 em,.contact h2 em { color:var(--gold); font-weight:500; }.hero-text { max-width:34rem; margin-bottom:2.2rem; color:rgba(244,240,232,.76); font-size:clamp(1rem,1.4vw,1.15rem); line-height:1.8; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.4rem; }.button { display:inline-flex; align-items:center; gap:2.5rem; padding:1rem 1.2rem 1rem 1.4rem; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; transition:transform .2s,background .2s; }.button:hover { transform:translateY(-3px); }.button span { font-size:1.1rem; }.button-primary { background:var(--gold); color:var(--ink-deep); }.text-link { border-bottom:1px solid rgba(244,240,232,.45); padding-bottom:.25rem; font-size:.71rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }.text-link span { margin-left:.6rem; color:var(--gold); }
.hero-side { position:relative; align-self:stretch; overflow:hidden; border-left:1px solid rgba(229,221,207,.18); }.hero-portrait { position:absolute; inset:0; margin:0; }.hero-portrait::after { position:absolute; inset:0; content:""; background:linear-gradient(180deg,rgba(7,26,44,.08) 30%,rgba(7,26,44,.28) 62%,rgba(7,26,44,.92) 100%); }.hero-portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:center top; filter:saturate(.84) contrast(1.04); }.hero-side-content { position:absolute; z-index:1; right:clamp(1.5rem,4vw,4.5rem); bottom:clamp(2.5rem,6vw,5.5rem); left:clamp(1.5rem,4vw,4.5rem); text-shadow:0 2px 12px rgba(0,0,0,.32); }.hero-side p { margin:0; font-family:var(--mono); font-size:.62rem; letter-spacing:.08em; line-height:1.55; text-transform:uppercase; }.hero-side strong { display:block; margin:.3rem 0 -.1rem; font-family:var(--display); font-size:clamp(6rem,13vw,12rem); font-weight:500; letter-spacing:-.1em; line-height:.9; color:var(--gold); }.hero-orbit { position:absolute; z-index:1; top:15%; right:-4.5rem; width:9rem; height:9rem; border:1px solid rgba(229,221,207,.34); border-radius:50%; animation:spin 16s linear infinite; }.hero-orbit span { position:absolute; font-family:var(--mono); font-size:.5rem; letter-spacing:.06em; text-transform:uppercase; }.hero-orbit span:nth-child(1){top:-.55rem;left:2.5rem}.hero-orbit span:nth-child(2){right:-.4rem;top:4.2rem}.hero-orbit span:nth-child(3){bottom:-.55rem;left:2.35rem}@keyframes spin{to{transform:rotate(360deg)}}
.hero-side strong { transform:translateY(-1.15rem); }
.scroll-cue { position:absolute; bottom:1.5rem; left:clamp(1.4rem,4vw,5rem); font-family:var(--mono); font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; }.scroll-cue span { margin-left:.7rem; color:var(--gold); }
.section { padding:clamp(5rem,10vw,10rem) clamp(1.4rem,11vw,12rem); }.section-label { color:var(--ink); }.section-label span { color:var(--gold); }.intro { min-height:78vh; }.intro-content { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(250px,.65fr); gap:clamp(2rem,9vw,11rem); margin:clamp(4rem,9vw,8rem) 0 5rem; }.intro-lead { margin:0; font-family:var(--display); font-size:clamp(2.2rem,4.5vw,4.9rem); letter-spacing:-.05em; line-height:1.07; }.intro-lead em { color:var(--gold); }.intro-detail { padding-top:.55rem; font-size:.9rem; line-height:1.85; }.intro-detail p + p { margin-top:1.4rem; }.career-strip { display:flex; flex-wrap:wrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.career-strip span { flex:1 0 auto; padding:1.15rem 1.1rem; border-right:1px solid var(--line); font-family:var(--mono); font-size:.6rem; letter-spacing:.045em; text-align:center; text-transform:uppercase; }.career-strip span:last-child { border:0; }
.section-dark { color:var(--paper); background:var(--ink-deep); }.section-dark .section-label { color:var(--paper); }.advisory-heading { display:grid; grid-template-columns:1.25fr .6fr; align-items:end; gap:2rem; margin:clamp(4rem,9vw,8rem) 0 4rem; }.advisory h2,.book h2,.contact h2 { margin:0; font-family:var(--display); font-size:clamp(2.6rem,5vw,5.5rem); font-weight:500; letter-spacing:-.055em; line-height:1; }.advisory-heading p { margin:0; color:rgba(244,240,232,.67); font-size:.9rem; line-height:1.85; }.services-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--light-line); }.service-card { min-height:22rem; padding:1.5rem 1.6rem 1.5rem 0; border-right:1px solid var(--light-line); display:flex; flex-direction:column; }.service-card + .service-card { padding-left:1.6rem; }.service-card:last-child { border-right:0; }.service-number { color:var(--gold); font-family:var(--mono); font-size:.62rem; }.service-card h3 { margin:3rem 0 1.3rem; font-family:var(--display); font-size:clamp(1.8rem,3vw,3.15rem); font-weight:500; letter-spacing:-.04em; line-height:1; }.service-card p { max-width:18rem; margin:auto 0 0; color:rgba(244,240,232,.64); font-size:.82rem; line-height:1.8; }.quote-row { display:flex; align-items:flex-start; gap:1.2rem; margin-top:5rem; padding-top:2rem; border-top:1px solid var(--light-line); }.quote-mark { color:var(--gold); font-family:var(--display); font-size:4rem; line-height:.8; }.quote-row blockquote { max-width:43rem; margin:0; font-family:var(--display); font-size:clamp(1.4rem,2.7vw,2.6rem); font-style:italic; letter-spacing:-.04em; line-height:1.2; }
.book { overflow:hidden; }.book-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:clamp(3rem,9vw,9rem); max-width:1160px; margin:clamp(4rem,8vw,7rem) auto 0; }.book-cover { position:relative; width:min(100%,29rem); margin:0; justify-self:start; padding:0; background:#0a1929; box-shadow:1.5rem 1.7rem 0 #d8cebd, 2.2rem 2.5rem 4rem rgba(5,23,37,.25); }.book-cover::after { position:absolute; right:-.75rem; bottom:-.75rem; width:40%; height:40%; border-right:1px solid var(--gold); border-bottom:1px solid var(--gold); content:""; }.book-cover img { position:relative; z-index:1; display:block; width:100%; aspect-ratio:2 / 3; object-fit:cover; filter:contrast(1.02) saturate(.93); }.book-copy { padding-top:.25rem; }.book-copy > p:not(.eyebrow):not(.book-note) { max-width:37rem; margin:1.5rem 0 2rem; font-size:.96rem; line-height:1.9; }.book-copy .eyebrow { color:var(--gold); }.framework { display:flex; width:max-content; max-width:100%; margin:2.3rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.framework div { display:flex; align-items:center; gap:.8rem; padding:1rem 1.5rem 1rem 0; }.framework div + div { padding-left:1.5rem; border-left:1px solid var(--line); }.framework strong { color:var(--gold); font-family:var(--display); font-size:2.9rem; font-weight:500; line-height:1; }.framework span { font-family:var(--mono); font-size:.57rem; letter-spacing:.06em; line-height:1.5; text-transform:uppercase; }.book-note { font-family:var(--display); font-size:1.2rem; font-style:italic; }.button-dark { color:var(--paper); background:var(--ink); }.book-video { max-width:1160px; margin:clamp(5rem,10vw,9rem) auto 0; padding-top:1.4rem; border-top:1px solid var(--line); }.book-video-intro { display:grid; grid-template-columns:minmax(12rem,.5fr) minmax(0,1fr); gap:clamp(1.5rem,6vw,6rem); align-items:start; margin-bottom:2.5rem; }.book-video-intro h3 { margin:0; font-family:var(--display); font-size:clamp(2rem,4vw,4.2rem); font-weight:500; letter-spacing:-.05em; line-height:1; }.book-video-intro h3 em { color:var(--gold); font-weight:500; }.book-video-intro div > p { margin:1rem 0 0; font-size:.9rem; }.book-video-player { display:grid; min-height:20rem; place-items:center; padding:clamp(1rem,3vw,2.5rem); background:var(--ink-deep); box-shadow:1.2rem 1.2rem 0 #d8cebd, 2rem 2rem 3.5rem rgba(5,23,37,.18); }.book-video video { display:block; width:min(100%,38rem); max-height:34rem; background:#000; }
.cv { background:#e9e2d6; }.cv-heading { display:grid; grid-template-columns:1.1fr .65fr; align-items:end; gap:2rem; margin:clamp(4rem,8vw,7rem) 0 3.6rem; }.cv-heading h2 { margin:0; font-family:var(--display); font-size:clamp(2.6rem,5vw,5.4rem); font-weight:500; letter-spacing:-.055em; line-height:1; }.cv-heading h2 em { color:var(--gold); font-weight:500; }.cv-heading p { max-width:29rem; margin:0; font-size:.9rem; line-height:1.85; }.cv-list { border-top:1px solid var(--line); }.cv-item { display:grid; grid-template-columns:9% minmax(12rem,.85fr) 1fr; gap:1rem; align-items:center; min-height:8.5rem; border-bottom:1px solid var(--line); }.cv-item > span { color:var(--gold); font-family:var(--mono); font-size:.62rem; }.cv-item h3 { margin:0; font-family:var(--display); font-size:clamp(1.5rem,2.7vw,2.5rem); font-weight:500; letter-spacing:-.04em; line-height:1.1; }.cv-item p { max-width:25rem; margin:0; font-size:.82rem; line-height:1.7; }
.principles { padding-bottom:clamp(5rem,10vw,10rem); }.principles-top { display:flex; justify-content:space-between; align-items:flex-end; gap:3rem; }.principles-top > p { max-width:29rem; margin:0; font-family:var(--display); font-size:clamp(1.5rem,2.8vw,2.65rem); font-style:italic; letter-spacing:-.04em; line-height:1.1; }.principles-list { margin-top:4rem; border-top:1px solid var(--line); }.principle { display:grid; grid-template-columns:12% 1fr; align-items:center; min-height:9rem; border-bottom:1px solid var(--line); transition:padding .25s,background .25s; }.principle:hover { padding-left:1rem; background:rgba(199,149,82,.09); }.principle span { color:var(--gold); font-family:var(--mono); font-size:.62rem; }.principle p { margin:0; font-family:var(--display); font-size:clamp(1.6rem,3.5vw,3.75rem); letter-spacing:-.045em; line-height:1.04; }
.contact { position:relative; overflow:hidden; min-height:70vh; }.contact .section-label,.contact-content { position:relative; z-index:1; }.contact-content { margin-top:clamp(5rem,10vw,9rem); }.contact h2 { margin:1rem 0 2.4rem; font-size:clamp(3.4rem,7vw,7.5rem); }.contact-email { display:inline-flex; align-items:center; gap:1.5rem; border-bottom:1px solid var(--gold); padding-bottom:.6rem; color:var(--gold); font-family:var(--mono); font-size:clamp(.72rem,1.2vw,.9rem); letter-spacing:.04em; }.contact-email span { font-size:1.2rem; }.contact-orbit { position:absolute; z-index:0; right:-12rem; top:50%; width:min(55vw,48rem); aspect-ratio:1; margin:0; overflow:hidden; transform:translateY(-50%); border:1px solid rgba(199,149,82,.55); border-radius:50%; box-shadow:0 0 0 4rem rgba(199,149,82,.035),0 0 0 9rem rgba(199,149,82,.025); }.contact-orbit::after { position:absolute; inset:0; content:""; background:linear-gradient(135deg,rgba(7,26,44,.08),rgba(7,26,44,.45)); }.contact-orbit img { display:block; width:100%; height:100%; object-fit:cover; object-position:51% 36%; filter:saturate(.78) contrast(1.06); }.site-footer { display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:1rem; padding:1.6rem clamp(1.4rem,4vw,5rem); color:var(--ink); background:var(--gold); }.site-footer p { margin:0; font-family:var(--mono); font-size:.58rem; letter-spacing:.06em; text-align:center; text-transform:uppercase; }.site-footer p:last-child { text-align:right; }.footer-credit { border-bottom:1px solid rgba(16,41,66,.45); }.footer-credit:hover { border-bottom-color:var(--ink); }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s ease; transition-delay:var(--delay,0ms); }.reveal.is-visible { opacity:1; transform:none; }
@media (max-width:720px) { .site-header { padding:1.1rem 1.25rem; }.brand { font-size:1.2rem; }.menu-button { position:relative; z-index:11; display:grid; gap:.35rem; width:2.8rem; height:2.8rem; place-content:center; border:1px solid rgba(244,240,232,.4); border-radius:50%; color:var(--paper); background:transparent; }.menu-button span:not(.sr-only) { display:block; width:1rem; height:1px; background:currentColor; transition:transform .2s; }.menu-button[aria-expanded="true"] span:nth-of-type(2){transform:translateY(3px) rotate(45deg)}.menu-button[aria-expanded="true"] span:nth-of-type(3){transform:translateY(-3px) rotate(-45deg)}.main-nav { position:fixed; inset:0 0 0 auto; display:flex; width:min(85vw,24rem); height:100dvh; flex-direction:column; align-items:flex-start; justify-content:center; gap:2rem; padding:3rem; color:var(--ink); background:var(--paper); font-size:.85rem; transform:translateX(100%); transition:transform .3s ease; }.main-nav.is-open { transform:translateX(0); }.hero { min-height:48rem; grid-template-columns:1fr; padding:7rem 1.4rem 5rem; }.hero h1 { font-size:clamp(3.35rem,14vw,5rem); }.hero-side { position:absolute; right:1.4rem; bottom:3.8rem; width:8.4rem; height:10.6rem; border:1px solid rgba(229,221,207,.24); }.hero-side-content { right:.7rem; bottom:.65rem; left:.7rem; }.hero-side strong { font-size:3.6rem; }.hero-side p { font-size:.45rem; line-height:1.4; }.hero-side p:first-child { display:none; }.hero-orbit { display:none; }.hero-copy { padding-bottom:7rem; }.scroll-cue { left:1.4rem; }.section { padding:4.7rem 1.4rem; }.intro-content,.advisory-heading,.book-layout,.cv-heading,.book-video-intro { grid-template-columns:1fr; }.intro-content { gap:2rem; margin:3.2rem 0; }.career-strip span { flex-basis:33.33%; border-bottom:1px solid var(--line); }.advisory-heading,.cv-heading { margin:3.2rem 0; }.services-grid { grid-template-columns:1fr; }.service-card,.service-card + .service-card { min-height:14rem; padding:1.5rem 0; border-right:0; border-bottom:1px solid var(--light-line); }.service-card h3 { margin:2rem 0; }.quote-row { margin-top:3.5rem; }.book-layout { gap:4rem; }.book-cover { width:min(100%,25rem); }.book-video-intro { gap:1rem; margin-bottom:1.8rem; }.book-video-player { min-height:0; padding:1rem; box-shadow:.7rem .7rem 0 #d8cebd, 1.2rem 1.2rem 2.5rem rgba(5,23,37,.18); }.book-video video { width:100%; max-height:none; }.cv-item { grid-template-columns:2.5rem 1fr; gap:.6rem; padding:1.25rem 0; }.cv-item p { grid-column:2; }.principles-top { display:block; }.principles-top > p { margin-top:2.5rem; }.principle { grid-template-columns:3rem 1fr; min-height:7rem; }.contact { min-height:36rem; }.site-footer { grid-template-columns:1fr; padding:2rem 1.4rem; }.site-footer p,.site-footer p:last-child { text-align:left; }.site-footer p { margin-top:.4rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.reveal { opacity:1; transform:none; transition:none; }.hero-orbit { animation:none; } }
@media (max-width:720px) { .language-switcher { margin:0; }.language-button { color:var(--ink); } }
@media (max-width:720px) { .hero { min-height:100svh; align-items:end; padding-top:7rem; }.hero-copy { z-index:2; padding:0 0 6rem; }.hero .eyebrow { width:max-content; max-width:100%; padding:.35rem .55rem; background:rgba(7,26,44,.58); box-shadow:0 .35rem 1.2rem rgba(0,0,0,.38); text-shadow:0 1px 5px rgba(0,0,0,.8); }.hero-side { position:absolute; inset:0; width:auto; height:auto; border:0; }.hero-portrait::after { background:linear-gradient(180deg,rgba(7,26,44,.2) 10%,rgba(7,26,44,.28) 37%,rgba(7,26,44,.92) 78%,rgba(7,26,44,.98) 100%); }.hero-portrait img { object-position:center 12%; }.hero-side-content { right:1.4rem; bottom:1.5rem; left:auto; width:7rem; }.hero-side strong { font-size:3.9rem; }.scroll-cue { z-index:2; } }
@media (max-width:720px) { .contact-orbit { top:46%; right:-2.5rem; width:14rem; transform:translateY(-50%); box-shadow:0 0 0 1.5rem rgba(199,149,82,.04); }.contact-orbit img { object-position:50% 32%; } }
@media (max-width:720px) { .menu-button[aria-expanded="true"] { color:var(--ink); border-color:rgba(16,41,66,.35); }.menu-button[aria-expanded="true"] span:nth-of-type(2) { transform:translateY(3px) rotate(45deg); }.menu-button[aria-expanded="true"] span:nth-of-type(3) { transform:translateY(-3px) rotate(-45deg); } }
@media (max-width:720px) { .footer-credit { display:table; margin-top:.45rem; } }
@media (max-width:720px) { .footer-separator { display:none; } }
.footer-cookie-settings { border:0; border-bottom:1px solid rgba(16,41,66,.45); padding:0; color:inherit; background:transparent; font:inherit; letter-spacing:inherit; text-transform:inherit; cursor:pointer; }.footer-cookie-settings:hover { border-bottom-color:var(--ink); }.cookie-banner { position:fixed; z-index:30; right:clamp(1rem,3vw,2rem); bottom:clamp(1rem,3vw,2rem); left:clamp(1rem,3vw,2rem); display:flex; max-width:68rem; margin:0 auto; align-items:flex-end; justify-content:space-between; gap:2rem; padding:1.5rem; border:1px solid rgba(229,221,207,.24); background:rgba(7,26,44,.98); box-shadow:0 1.5rem 4rem rgba(0,0,0,.34); color:var(--paper); }.cookie-banner[hidden] { display:none; }.cookie-banner__content { max-width:46rem; }.cookie-banner h2,.cookie-banner h3 { margin:0; font-family:var(--display); font-weight:500; letter-spacing:-.025em; }.cookie-banner h2 { font-size:1.65rem; }.cookie-banner h3 { font-size:1.1rem; }.cookie-banner p { margin:.45rem 0 0; color:rgba(244,240,232,.73); font-size:.78rem; line-height:1.65; }.cookie-banner__actions { display:flex; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; gap:.6rem; }.cookie-button,.cookie-details-toggle { min-height:2.65rem; border:1px solid var(--gold); padding:.65rem .9rem; font-family:var(--mono); font-size:.62rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }.cookie-button { min-width:7.4rem; }.cookie-button--primary { color:var(--ink-deep); background:var(--gold); }.cookie-button--secondary,.cookie-details-toggle { color:var(--paper); background:transparent; }.cookie-button:hover,.cookie-details-toggle:hover { background:rgba(199,149,82,.16); }.cookie-button--primary:hover { background:#d5a25e; }.cookie-details-toggle { min-height:auto; margin-top:.8rem; padding:.35rem 0; border-width:0 0 1px; }.cookie-details { margin-top:1rem; border-top:1px solid var(--light-line); }.cookie-option { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem 0; }.cookie-option + .cookie-option { border-top:1px solid var(--light-line); }.cookie-option p { max-width:36rem; margin-top:.15rem; }.cookie-status { color:var(--gold); font-family:var(--mono); font-size:.57rem; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }.cookie-switch { position:relative; display:inline-flex; flex:0 0 auto; cursor:pointer; }.cookie-switch input { position:absolute; width:1px; height:1px; opacity:0; }.cookie-switch__control { width:2.8rem; height:1.5rem; border:1px solid rgba(244,240,232,.55); border-radius:2rem; background:transparent; transition:background .2s; }.cookie-switch__control::after { display:block; width:1rem; height:1rem; margin:.18rem; border-radius:50%; background:var(--paper); content:""; transition:transform .2s; }.cookie-switch input:checked + .cookie-switch__control { border-color:var(--gold); background:var(--gold); }.cookie-switch input:checked + .cookie-switch__control::after { transform:translateX(1.25rem); background:var(--ink-deep); }.cookie-switch input:focus-visible + .cookie-switch__control,.cookie-button:focus-visible,.cookie-details-toggle:focus-visible,.footer-cookie-settings:focus-visible { outline:2px solid var(--paper); outline-offset:3px; }
@media (max-width:720px) { .cookie-banner { display:block; padding:1.25rem; }.cookie-banner__actions { justify-content:stretch; margin-top:1.2rem; }.cookie-button { flex:1 1 42%; }.cookie-option { align-items:flex-start; }.cookie-status { padding-top:.25rem; }.cookie-switch { margin-top:.45rem; } }
.cookie-policy-link { display:table; margin-top:.7rem; border-bottom:1px solid var(--gold); color:var(--gold); font-family:var(--mono); font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; }.cookie-floating-button { position:fixed; z-index:29; right:1.25rem; bottom:1.25rem; display:grid; width:3rem; height:3rem; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--paper); background:var(--ink-deep); box-shadow:0 .5rem 1.5rem rgba(0,0,0,.3); cursor:pointer; }.cookie-floating-button:hover { color:var(--ink-deep); background:var(--gold); }.cookie-floating-button svg { width:1.35rem; height:1.35rem; }.cookie-floating-button:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.policy-page { min-height:100vh; display:flex; flex-direction:column; }.policy-header { display:flex; align-items:center; justify-content:space-between; padding:1.4rem clamp(1.4rem,4vw,5rem); color:var(--paper); background:var(--ink-deep); }.policy-back { border-bottom:1px solid var(--gold); color:var(--gold); font-family:var(--mono); font-size:.65rem; letter-spacing:.07em; text-transform:uppercase; }.policy-back span { margin-left:.4rem; }.policy-content { width:min(100% - 2.8rem,52rem); margin:0 auto; padding:clamp(4rem,9vw,8rem) 0; }.policy-content .eyebrow { color:var(--gold); }.policy-content h1 { margin:.8rem 0 1rem; font-family:var(--display); font-size:clamp(3.5rem,8vw,6.5rem); font-weight:500; letter-spacing:-.06em; line-height:.9; }.policy-content h1 em { color:var(--gold); font-weight:500; }.policy-updated { color:rgba(16,41,66,.7); font-family:var(--mono); font-size:.64rem; letter-spacing:.06em; text-transform:uppercase; }.policy-intro { max-width:42rem; margin:3rem 0 4rem; font-family:var(--display); font-size:clamp(1.45rem,2.7vw,2rem); letter-spacing:-.03em; line-height:1.25; }.policy-content section { padding:2.1rem 0; border-top:1px solid var(--line); }.policy-content h2 { margin:0 0 1rem; font-family:var(--display); font-size:clamp(1.8rem,3.2vw,2.6rem); font-weight:500; letter-spacing:-.04em; line-height:1.1; }.policy-content h3 { margin:1.5rem 0 .25rem; font-size:1rem; }.policy-content p { max-width:45rem; margin:0; font-size:.94rem; line-height:1.85; }.policy-content p + p { margin-top:1rem; }.policy-content a { border-bottom:1px solid var(--gold); color:var(--ink); }.policy-footer { margin-top:auto; }
@media (max-width:720px) { .policy-header { padding:1.1rem 1.4rem; }.policy-back { font-size:.56rem; }.policy-content { width:min(100% - 2.8rem,52rem); }.policy-intro { margin:2.5rem 0 3rem; }.policy-content section { padding:1.7rem 0; } }
.hero-side { border-radius:1.5rem; box-shadow:-1.4rem 1.6rem 3.5rem rgba(0,0,0,.18); }.book-cover { border-radius:1rem; }.book-cover img { border-radius:1rem; box-shadow:0 1.4rem 2.8rem rgba(5,23,37,.34); }
@media (max-width:720px) { .hero-side { border-radius:0; box-shadow:none; } }

/* Scala tipografica generale leggermente più compatta. */
body { font-size:15px; }
body .hero h1 { font-size:clamp(3rem,5.3vw,5.3rem); }
.intro-lead { font-size:clamp(2rem,4.05vw,4.4rem); }
.advisory h2,.book h2 { font-size:clamp(2.35rem,4.5vw,5rem); }
.contact h2 { font-size:clamp(3rem,6.2vw,6.6rem); }
.service-card h3 { font-size:clamp(1.65rem,2.7vw,2.85rem); }
.quote-row blockquote { font-size:clamp(1.3rem,2.45vw,2.35rem); }
.cv-heading h2 { font-size:clamp(2.35rem,4.5vw,4.9rem); }
.cv-item h3 { font-size:clamp(1.4rem,2.45vw,2.3rem); }
.principles-top > p { font-size:clamp(1.4rem,2.55vw,2.4rem); }
.principle p { font-size:clamp(1.45rem,3.15vw,3.4rem); }
body .page-hero h1 { font-size:clamp(2.6rem,4.9vw,4.9rem); }
body .editorial-section h2 { font-size:clamp(2.2rem,4.55vw,4.35rem); }
body .editorial-card h3 { font-size:clamp(1.35rem,2.55vw,2.15rem); }
body .quote-editorial { font-size:clamp(1.55rem,3.2vw,2.7rem); }
.policy-content h1 { font-size:clamp(3rem,7vw,5.8rem); }
.policy-content h2 { font-size:clamp(1.65rem,2.9vw,2.35rem); }
@media (max-width:720px) {
  body .hero h1 { font-size:clamp(2.8rem,11vw,4rem); }
  .intro-lead { font-size:clamp(1.9rem,9.5vw,3.4rem); }
  .contact h2 { font-size:clamp(2.7rem,11vw,4.6rem); }
}

/* Riduzione della scala tipografica degli hero, home inclusa. */
.hero h1 { font-size:clamp(3.2rem,5.8vw,5.8rem); }
@media (max-width:720px) { .hero h1 { font-size:clamp(3rem,12vw,4.3rem); line-height:1.08; } }

/* Mantiene leggibile l'accento dell'hero sopra il ritratto a pieno schermo. */
@media (max-width:720px) {
  .hero h1 em {
    color:var(--paper);
    text-shadow:0 1px 3px rgba(0,0,0,.55);
  }
}

/* Pagine editoriali */
.page-hero { padding:clamp(9rem,16vw,13rem) clamp(1.4rem,11vw,12rem) clamp(4rem,9vw,7rem); background:var(--ink); color:var(--paper); }.page-hero__inner,.editorial-content { max-width:76rem; margin:auto; }.page-hero h1 { max-width:58rem; margin:.9rem 0 1.4rem; font-family:var(--display); font-size:clamp(2.8rem,5.4vw,5.4rem); font-weight:500; letter-spacing:-.06em; line-height:.92; }.page-hero h1 em { color:var(--gold); font-weight:500; }.page-hero p { max-width:43rem; color:rgba(244,240,232,.78); font-size:clamp(1.05rem,1.6vw,1.25rem); }.editorial-content { padding:clamp(4rem,9vw,8rem) clamp(1.4rem,6vw,6rem); }.editorial-section { padding:clamp(3rem,7vw,6rem) 0; border-top:1px solid var(--line); }.editorial-section:first-child { border-top:0; padding-top:0; }.editorial-section h2 { max-width:52rem; margin:0 0 1.4rem; font-family:var(--display); font-size:clamp(2.4rem,5vw,4.8rem); font-weight:500; letter-spacing:-.055em; line-height:1; }.editorial-section h2 em { color:var(--gold); }.editorial-section p { max-width:46rem; font-size:1.02rem; line-height:1.85; }.editorial-section p + p { margin-top:1rem; }.editorial-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:2.5rem; background:var(--line); }.editorial-card { padding:clamp(1.5rem,4vw,3rem); background:var(--paper); }.editorial-card h3 { margin:0 0 .7rem; font-family:var(--display); font-size:clamp(1.45rem,2.8vw,2.35rem); font-weight:500; letter-spacing:-.04em; line-height:1.05; }.editorial-card p { margin:0; font-size:.9rem; }.editorial-card span { display:block; margin-bottom:1.5rem; color:var(--gold); font-family:var(--mono); font-size:.65rem; letter-spacing:.08em; }.quote-editorial { max-width:58rem; margin:2.5rem 0; padding:2rem 0 2rem 2rem; border-left:2px solid var(--gold); font-family:var(--display); font-size:clamp(1.7rem,3.6vw,3rem); letter-spacing:-.045em; line-height:1.16; }.quote-editorial cite { display:block; margin-top:1rem; font-family:var(--mono); font-size:.65rem; font-style:normal; letter-spacing:.08em; }.editorial-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:2rem 0 0; padding:0; list-style:none; border-top:1px solid var(--line); }.editorial-list li { position:relative; padding:1.2rem 1rem 1.2rem 1.5rem; border-bottom:1px solid var(--line); font-family:var(--display); font-size:1.35rem; }.editorial-list li::before { position:absolute; top:50%; left:0; transform:translateY(-50%); color:var(--gold); font-family:var(--mono); font-size:.65rem; content:"—"; }.page-footer { background:var(--ink-deep); }.page-footer .site-footer { margin-top:0; } @media (max-width:900px) { .main-nav { gap:1rem; font-size:.6rem; }.editorial-grid,.editorial-list { grid-template-columns:1fr; } }
