:root { --ink:#102034; --navy:#122842; --blue:#7eafc8; --paper:#f5f1e9; --cream:#fdfbf7; --gold:#c69f58; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:"DM Sans",sans-serif; line-height:1.6; }
.site-header { height:82px; padding:0 clamp(24px,6vw,100px); display:flex; justify-content:space-between; align-items:center; background:var(--cream); border-bottom:1px solid #e5ded1; }
.brand { color:var(--ink); text-decoration:none; letter-spacing:.13em; font-size:15px; font-weight:700; }.brand span { color:var(--gold); }
nav { display:flex; gap:26px; } nav a { color:var(--ink); font-size:14px; text-decoration:none; } nav a:hover,.text-link:hover { color:#786133; }
.hero { min-height:650px; display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; padding:74px clamp(24px,8vw,140px); background:linear-gradient(114deg,#f7f3eb 0%,#ece7dc 58%,#dee2e4 100%); overflow:hidden; }
.eyebrow { text-transform:uppercase; letter-spacing:.14em; font-size:12px; font-weight:700; color:#6f5a32; margin:0 0 18px; }.hero h1,.section h2 { font-family:"Playfair Display",serif; line-height:1.07; letter-spacing:-.03em; margin:0; }.hero h1 { font-size:clamp(44px,5.4vw,78px); max-width:760px; }.lead { max-width:560px; margin:24px 0 30px; font-size:19px; }
.actions { display:flex; flex-wrap:wrap; gap:12px; }.button { display:inline-flex; align-items:center; min-height:49px; padding:11px 19px; border-radius:2px; font-weight:700; font-size:14px; text-decoration:none; transition:.2s transform; }.button:hover { transform:translateY(-2px); }.button-primary { color:white; background:var(--navy); }.button-quiet { color:var(--ink); border:1px solid #a7a59f; background:transparent; }
.portrait-frame { align-self:center; max-width:460px; justify-self:center; overflow:hidden; position:relative; border-radius:18px; background:linear-gradient(145deg,#203957,#0b1728); box-shadow:0 28px 55px #56637055; }.portrait-frame::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,#ffffff10 0%,transparent 25%,transparent 75%,#ffffff08 100%); }.portrait-frame img { display:block; width:100%; height:auto; }
.section { padding:100px clamp(24px,8vw,140px); }.intro { background:var(--cream); }.two-column { display:grid; grid-template-columns:1fr 1fr; gap:70px; }.section h2 { font-size:clamp(34px,4vw,56px); }.two-column p { margin-top:0; font-size:17px; }.focus-list { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin-top:30px; }.focus-list div { padding:16px 0 0; border-top:2px solid var(--gold); }.focus-list strong,.focus-list span { display:block; }.focus-list strong { font-size:14px; }.focus-list span { margin-top:5px; color:#5f5b54; font-size:12px; line-height:1.45; }.books { color:#fff; background:var(--navy); }.books .eyebrow { color:#d4b97b; }.books h2 { max-width:760px; }.book-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:46px 0 0; }.book-card { min-height:280px; padding:27px; display:flex; flex-direction:column; border:1px solid #ffffff30; background:#ffffff0a; color:inherit; text-decoration:none; transition:transform .25s ease,background .25s ease,box-shadow .25s ease; }.book-card:hover { transform:translateY(-8px); background:#ffffff16; box-shadow:0 18px 30px #00000025; }.book-card.featured { background:#c69f58; color:#102034; }.book-card.featured:hover { background:#d6ae61; }.book-index { font-size:13px; letter-spacing:.12em; }.book-card h3 { margin:auto 0 10px; font-family:"Playfair Display",serif; font-size:28px; line-height:1.13; }.book-card p { margin:0; font-size:14px; }.book-cta { margin-top:20px; font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; opacity:0; transform:translateY(5px); transition:.25s ease; }.book-card:hover .book-cta { opacity:1; transform:translateY(0); }.book-cta b { margin-left:5px; font-size:16px; }.academy { background:#f3eee5; overflow:hidden; }.academy-intro { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:end; }.academy-intro p:not(.eyebrow) { max-width:520px; margin:0 0 24px; font-size:17px; }.academy-gallery { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(235px,280px); gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; padding:44px 2px 18px; scrollbar-color:var(--gold) transparent; }.academy-card { display:block; position:relative; padding:0; border:1px solid #d8c59e; background:#102034; cursor:zoom-in; scroll-snap-align:start; box-shadow:0 14px 30px #10203422; transition:transform .25s ease,box-shadow .25s ease; }.academy-card:hover { transform:translateY(-7px); box-shadow:0 20px 35px #10203433; }.academy-card img { display:block; width:100%; height:auto; }.academy-card span { position:absolute; right:10px; bottom:10px; padding:5px 8px; color:white; background:#102034de; font-size:11px; font-weight:700; opacity:0; transform:translateY(4px); transition:.2s ease; }.academy-card:hover span,.academy-card:focus-visible span { opacity:1; transform:none; }.academy-note { margin:10px 0 0; color:#655d50; font-size:13px; }.image-dialog { width:min(94vw,720px); max-height:92vh; padding:0; overflow:visible; border:0; background:transparent; }.image-dialog::backdrop { background:#071321d9; }.image-dialog img { display:block; max-width:100%; max-height:90vh; margin:auto; box-shadow:0 25px 70px #00000088; }.dialog-close { position:absolute; top:-16px; right:-16px; width:38px; height:38px; border:0; border-radius:50%; color:white; background:#102034; font-size:28px; line-height:1; cursor:pointer; }.text-link { color:inherit; text-underline-offset:5px; font-weight:700; }.text-link span { margin-left:7px; }.credentials { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; background:var(--paper); }.credential-card { padding:42px; border-left:4px solid var(--gold); background:var(--cream); box-shadow:0 10px 30px #10203411; }.credential-label { margin:0 0 8px; color:#6d6659; font-size:13px; text-transform:uppercase; letter-spacing:.08em; }.credential-number { margin:0 0 14px; color:var(--navy); font-family:"Playfair Display",serif; font-size:35px; }.contact { text-align:center; padding-top:115px; padding-bottom:110px; }.contact h2 { font-size:clamp(43px,5vw,68px); }.contact > p:not(.eyebrow) { max-width:650px; margin:22px auto 32px; }.contact .actions { justify-content:center; }.social-links { margin-top:42px; display:flex; justify-content:center; gap:25px; }.social-links a { color:var(--ink); text-decoration:none; border-bottom:1px solid var(--gold); font-size:14px; } footer { padding:36px clamp(24px,8vw,140px); color:#d8e0e7; background:#0c1928; display:flex; justify-content:space-between; gap:40px; font-size:12px; } footer p { margin:0; }.disclaimer { max-width:600px; text-align:right; }
@media (max-width:780px) { .site-header { height:auto; min-height:70px; padding-top:18px; padding-bottom:18px; } nav { display:none; }.hero { grid-template-columns:1fr; padding-top:60px; }.portrait-frame { width:min(100%,420px); }.two-column,.credentials,.academy-intro { grid-template-columns:1fr; gap:35px; }.section { padding-top:76px; padding-bottom:76px; }.focus-list { grid-template-columns:1fr; gap:14px; }.book-grid { grid-template-columns:1fr; }.book-card { min-height:215px; }.book-cta { opacity:1; transform:none; }.academy-gallery { grid-auto-columns:minmax(240px,78vw); padding-top:34px; } footer { display:block; }.disclaimer { margin-top:14px; text-align:left; } }
