:root { --navy:#102b4b; --paper:#fafafa; --mist:#eef1f4; --ink:#132235; --muted:#596879; --line:#d9e0e7; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",Arial,sans-serif; font-size:16px; line-height:1.6; }
.site-header { height:96px; display:flex; align-items:center; justify-content:space-between; padding:0 clamp(24px,5.8vw,92px); border-bottom:1px solid var(--line); background:rgba(250,250,250,.94); }
.brand { display:flex; align-items:center; width:270px; }.brand img { display:block; width:100%; height:auto; mix-blend-mode:multiply; }
nav { display:flex; align-items:center; gap:38px; } nav a, footer>a { color:var(--navy); text-decoration:none; font-size:13px; font-weight:500; } nav a:hover, footer>a:hover { text-decoration:underline; text-underline-offset:5px; }
.menu-button { display:none; background:none; border:0; color:var(--navy); font:inherit; }
.hero { min-height:calc(100vh - 96px); display:grid; grid-template-columns:1.16fr .84fr; }.hero-content { display:flex; flex-direction:column; justify-content:center; padding:clamp(90px,13vw,170px) clamp(24px,9vw,145px); }.eyebrow,.section-label { margin:0; color:var(--navy); font-size:11px; font-weight:600; letter-spacing:.15em; }
h1,h2,h3,p { margin-top:0; } h1,h2,h3 { font-family:"Cormorant Garamond",Garamond,Georgia,serif; font-weight:500; line-height:1.05; letter-spacing:-.025em; } h1 { max-width:750px; margin:17px 0 30px; font-size:clamp(54px,6.3vw,89px); color:var(--navy); } h1 i,h2 i { font-style:italic; font-weight:500; }
.intro { max-width:495px; color:var(--muted); font-size:17px; }.button { width:max-content; display:inline-flex; align-items:center; gap:31px; margin-top:16px; padding:15px 20px; border:1px solid var(--navy); color:var(--navy); text-decoration:none; font-size:13px; font-weight:500; transition:.2s ease; }.button:hover { background:var(--navy); color:#fff; }.button span { font-size:20px; line-height:0; }
.hero-art { position:relative; min-height:470px; overflow:hidden; background:var(--navy); }.hero-art .line { position:absolute; width:150%; height:1px; background:rgba(255,255,255,.19); transform:rotate(-39deg); transform-origin:left center; }.line-one { top:22%; left:-25%; }.line-two { top:52%; left:-25%; }.line-three { top:82%; left:-25%; }.hero-art span { position:absolute; bottom:42px; left:clamp(28px,5vw,75px); color:#fff; font-family:"Cormorant Garamond",Garamond,Georgia,serif; font-size:clamp(34px,4.4vw,70px); font-weight:500; line-height:.88; letter-spacing:-.035em; }
.introduction { display:grid; grid-template-columns:1fr 2fr; gap:70px; padding:clamp(85px,10vw,140px) clamp(24px,12vw,190px); background:var(--mist); }.introduction>div { max-width:760px; }.introduction h2,.practice h2,.contact h2 { margin:0 0 32px; color:var(--navy); font-size:clamp(42px,4.5vw,65px); }.introduction>div>p { max-width:690px; margin:0; color:var(--muted); font-size:17px; }.academic-checkbox { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }.highlights { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:48px; background:var(--line); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.highlights>div,.academic-toggle { min-height:125px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:6px; padding:20px; background:var(--mist); }.academic-toggle { position:relative; width:100%; border:0; color:inherit; font:inherit; text-align:left; cursor:pointer; }.academic-toggle:hover,.academic-checkbox:checked~.highlights .academic-toggle { background:#e4e9ee; }.academic-checkbox:focus-visible~.highlights .academic-toggle { outline:2px solid var(--navy); outline-offset:-2px; }.academic-toggle b { position:absolute; top:18px; right:18px; color:var(--navy); font-size:22px; font-weight:400; line-height:1; }.academic-toggle b::before { content:"+"; }.academic-checkbox:checked~.highlights .academic-toggle b::before { content:"−"; }.highlights strong { color:var(--navy); font-family:"Cormorant Garamond",Garamond,Georgia,serif; font-size:28px; font-weight:600; }.highlights span { max-width:165px; color:var(--muted); font-size:11px; line-height:1.4; }.academic-panel { display:none; border-bottom:1px solid var(--line); padding:35px 0 8px; }.academic-checkbox:checked~.academic-panel { display:block; }.academic-panel-heading { display:flex; justify-content:space-between; align-items:baseline; gap:25px; padding-bottom:22px; border-bottom:1px solid var(--navy); }.academic-panel-heading>p { margin:0; }.academic-panel-heading>p:last-child { color:var(--muted); font-size:12px; }.academic-list { display:grid; grid-template-columns:1fr 1fr; }.academic-list article { min-height:175px; padding:25px 25px 25px 0; border-bottom:1px solid var(--line); }.academic-list article:nth-child(even) { padding-left:25px; border-left:1px solid var(--line); }.academic-list h3 { margin:8px 0 10px; color:var(--navy); font-size:23px; }.academic-list article>p { margin:0; color:var(--muted); font-size:13px; line-height:1.55; }.academic-list .academic-date { color:var(--navy); font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.practice { padding:clamp(85px,10vw,140px) clamp(24px,5.8vw,92px); background:var(--paper); }.practice-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:72px; }.practice-heading h2 { margin:0; }.practice-list { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--navy); }.practice article { min-height:285px; padding:27px 30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.practice article:nth-child(3n) { border-right:0; }.practice article span { font-size:12px; color:var(--muted); }.practice h3 { max-width:310px; margin:42px 0 15px; font-size:27px; color:var(--navy); }.practice article p { max-width:310px; margin:0; color:var(--muted); font-size:14px; }.practice-note { margin:34px 0 0; color:var(--muted); font-size:12px; }
.publications { padding:clamp(85px,10vw,140px) clamp(24px,5.8vw,92px); background:var(--mist); }.publications-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:60px; margin-bottom:70px; }.publications-heading h2 { margin:0; color:var(--navy); font-size:clamp(42px,4.5vw,65px); }.publication-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--navy); }.publication-card { min-height:300px; padding:28px 30px 30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.publication-card:last-child { border-right:0; }.publication-date { margin:0 0 34px; color:var(--muted); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }.publication-card h2,.publication-card h3 { margin:0 0 18px; color:var(--navy); font-size:clamp(25px,2.1vw,33px); }.publication-card h2 a,.publication-card h3 a { color:inherit; text-decoration:none; }.publication-card h2 a:hover,.publication-card h3 a:hover { text-decoration:underline; text-underline-offset:5px; }.publication-card>p:not(.publication-date) { color:var(--muted); font-size:14px; }.publication-link,.back-link { color:var(--navy); font-size:12px; font-weight:600; text-decoration:none; }.publication-link:hover,.back-link:hover { text-decoration:underline; text-underline-offset:4px; }.publications>.button { margin-top:38px; }
.publications-page,.article-page { min-height:calc(100vh - 96px); padding:clamp(72px,9vw,130px) clamp(24px,12vw,190px); }.page-intro { max-width:900px; margin-bottom:75px; }.page-intro h1,.article-header h1 { max-width:900px; margin:18px 0 28px; font-size:clamp(48px,6vw,82px); }.page-intro>p:last-child,.article-summary { max-width:650px; color:var(--muted); font-size:17px; }.publication-grid-all { grid-template-columns:repeat(2,1fr); }.publication-grid-all .publication-card:nth-child(2n) { border-right:0; }.publication-grid-all .publication-card:nth-child(2n+1) { border-right:1px solid var(--line); }
.article-page>article { max-width:960px; margin:0 auto; }.article-header { padding-bottom:50px; border-bottom:1px solid var(--line); }.article-header .back-link { display:inline-block; margin-bottom:60px; }.article-header .publication-date { margin-bottom:18px; }.article-summary { margin-bottom:0; }.article-cover { display:block; width:100%; max-height:580px; margin:60px 0; object-fit:cover; }.article-content { max-width:740px; margin:60px auto 0; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:18px; line-height:1.85; }.article-content h2,.article-content h3,.article-content h4 { margin:2.2em 0 .65em; color:var(--navy); }.article-content h2 { font-size:38px; }.article-content h3 { font-size:30px; }.article-content h4 { font-size:24px; }.article-content a { color:var(--navy); }.article-content blockquote { margin:2em 0; padding:8px 0 8px 25px; border-left:2px solid var(--navy); color:var(--muted); font-style:italic; }.article-content img { display:block; max-width:100%; height:auto; margin:35px auto; }.article-content code { padding:2px 5px; background:var(--mist); font-size:.9em; }.article-disclaimer { max-width:740px; margin:70px auto 0; padding-top:22px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:70px; padding:clamp(85px,10vw,140px) clamp(24px,12vw,190px); background:var(--navy); }.contact .section-label { color:#e0e7ee; }.contact h2 { margin:20px 0 0; color:#fff; }.contact h2 i { color:#c9d7e5; }.contact-card { align-self:end; border-top:1px solid rgba(255,255,255,.45); padding-top:25px; color:#e0e7ee; }.contact-card>p:first-child { max-width:370px; }.contact-card a { display:flex; justify-content:space-between; align-items:center; margin-top:33px; padding:17px 0; border-bottom:1px solid rgba(255,255,255,.55); color:#fff; text-decoration:none; font-family:"Cormorant Garamond",Garamond,Georgia,serif; font-size:clamp(22px,2.1vw,31px); }.contact-note { margin:15px 0 0; font-size:12px; color:#c1cbd5; }
footer { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:28px clamp(24px,5.8vw,92px); background:#fff; } footer img { display:block; width:180px; height:auto; mix-blend-mode:multiply; } footer p { margin:0; color:var(--muted); font-size:12px; }
@media (max-width:720px) { .site-header { height:76px; }.brand { width:210px; }.menu-button { display:block; } nav { position:absolute; top:76px; left:0; right:0; z-index:4; display:none; flex-direction:column; align-items:flex-start; gap:20px; padding:24px; background:var(--paper); border-bottom:1px solid var(--line); } nav.open { display:flex; }.hero { grid-template-columns:1fr; }.hero-content { min-height:520px; padding:82px 24px; }.hero-art { min-height:360px; }.introduction,.contact { grid-template-columns:1fr; gap:35px; padding-left:24px; padding-right:24px; }.highlights { grid-template-columns:1fr; }.highlights>div,.academic-toggle { min-height:95px; }.academic-panel-heading { display:block; }.academic-panel-heading>p:last-child { margin-top:7px; }.academic-list { grid-template-columns:1fr; }.academic-list article,.academic-list article:nth-child(even) { min-height:0; padding:24px 0; border-left:0; }.practice-heading { display:block; }.practice-heading h2 { margin-top:27px; }.practice-list { grid-template-columns:1fr; }.practice article,.practice article:nth-child(3n) { min-height:0; margin:0; padding:26px 0; border-right:0; border-bottom:1px solid var(--line); }.practice h3 { margin:23px 0 10px; } footer { flex-wrap:wrap; } footer img { width:165px; } }
@media (max-width:720px) { .publications-heading { display:block; margin-bottom:45px; }.publications-heading h2 { margin-top:27px; }.publication-grid,.publication-grid-all { grid-template-columns:1fr; }.publication-card,.publication-grid-all .publication-card:nth-child(2n),.publication-grid-all .publication-card:nth-child(2n+1) { min-height:0; padding:28px 0; border-right:0; }.publications-page,.article-page { min-height:calc(100vh - 76px); padding:70px 24px 90px; }.page-intro { margin-bottom:50px; }.article-header .back-link { margin-bottom:42px; }.article-content { font-size:17px; }.article-content h2 { font-size:32px; }.article-content h3 { font-size:27px; } }
