/* Interior pages share the cover's type, palette, and restrained geometry. */
@font-face{font-family:"DM Sans";src:url("../fonts/dm-sans-latin.woff2") format("woff2");font-weight:100 1000;font-display:swap}
:root{color-scheme:dark;--bg:#08090a;--ink:#eeefef;--muted:#9ca3ab;--line:#242629;--card:#101215;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
html[data-theme=light]{color-scheme:light;--bg:#f5f4f0;--ink:#222931;--muted:#626d77;--line:#d5d6d3;--card:#fff}
*{box-sizing:border-box}
body.interior-page{background:var(--bg);color:var(--muted);font-family:"DM Sans",Arial,sans-serif;font-size:15px;line-height:1.8;-webkit-font-smoothing:antialiased}
.interior-page a,.interior-page strong{color:var(--ink)}
.interior-page a:hover{opacity:1;text-underline-offset:4px}
.interior-page :focus-visible{outline:2px solid var(--muted);outline-offset:5px}
.skip-link{position:fixed;top:10px;left:10px;z-index:20;padding:12px;background:var(--ink);color:var(--bg)!important;transform:translateY(-150%)}.skip-link:focus{transform:none}
.interior-page .container{max-width:1150px;padding:0 50px;width:100%}
.interior-page .page-header{border:0;margin:0 0 60px;padding:0}
.interior-masthead{min-height:100px;margin:0 4.2%;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line)}
.interior-page .site-title{display:flex;margin:0;padding:0;line-height:1;flex-shrink:0}
.interior-page .site-mark{display:block;width:36px;height:40px;margin:0;object-fit:contain}
.interior-page .interior-nav{display:flex;gap:30px;align-items:center;justify-content:center;line-height:1.4;flex-wrap:nowrap}
.interior-page .interior-nav a{position:relative;padding:10px 0;margin:0;border:0;font-size:12px;font-weight:400;white-space:nowrap;color:var(--muted);opacity:1;text-decoration:none}
.interior-page .interior-nav a:hover,.interior-page .interior-nav a[aria-current]{color:var(--ink)}
.interior-nav a[aria-current]:after{content:"";width:3px;height:3px;border-radius:50%;background:var(--ink);position:absolute;bottom:0;left:50%}
.interior-actions{display:flex;align-items:center;gap:25px;flex-shrink:0}
.theme-toggle{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid var(--line);border-radius:30px;padding:8px 12px;font:10px var(--mono);color:var(--ink);cursor:pointer}
.theme-toggle:hover{border-color:var(--muted)}.theme-icon{font-size:15px;line-height:1}
.interior-page .contact-link{font-size:12px;display:flex;gap:25px;align-items:center;border-bottom:1px solid var(--muted);padding:8px 0;white-space:nowrap;text-decoration:none}
.interior-page .contact-link span{font-size:16px}
.interior-page .page-content{padding-bottom:90px}
.interior-page h1,.interior-page h2,.interior-page h3,.interior-page h4,.interior-page h5,.interior-page h6{font-family:"DM Sans",Arial,sans-serif;color:var(--ink);font-weight:500;letter-spacing:-.035em}
.interior-page h1{font-size:clamp(38px,4.6vw,60px);line-height:1.12;margin:0 0 23px;max-width:950px}
.interior-page h2{font-size:28px;line-height:1.3;margin-top:48px}.interior-page h2:after{display:none}
.interior-page .page-kicker{font:10px var(--mono);letter-spacing:.14em;margin:0 0 22px;color:var(--muted)}
.interior-page .lead{font-size:16px;line-height:1.9;max-width:700px;margin:0 0 56px;color:var(--muted)}
.interior-page .lead a{text-decoration:underline;text-underline-offset:4px}
.interior-page .year-divider{margin-bottom:22px}.interior-page .year-divider .year{font:14px var(--mono);color:var(--ink)}
.interior-page .year-divider .rule{border-color:var(--line)}.interior-page .year-divider .count{color:var(--muted);font-size:10px}
.interior-page .project,.interior-page .work{background:var(--card);border-color:var(--line);border-radius:10px;color:var(--muted);box-shadow:none}
.interior-page .project:hover,.interior-page .work:hover{border-color:var(--muted);box-shadow:none}
.interior-page .project .body{padding:22px;border-top:0}.interior-page .project .thumb{padding-top:62.5%}
.interior-page .project .badge{padding:0;border-radius:0;background:none;color:var(--muted);font-weight:400;font-size:9px;margin-bottom:17px}
.interior-page .project .title{font-family:inherit;color:var(--ink);font-weight:500;font-size:20px;letter-spacing:-.03em;line-height:1.3;margin-bottom:12px}
.interior-page .project .desc{color:var(--muted);font-size:12px;line-height:1.75;-webkit-line-clamp:4}
.interior-page .project .cta{color:var(--ink);font-size:10px;font-weight:400;text-transform:none;letter-spacing:0;margin-top:24px}
.interior-page .pubs{max-width:1050px}.interior-page #ft-search,.interior-page .page-search input[type=text]{width:100%;max-width:460px;background:var(--card);border:1px solid var(--line);border-radius:7px;color:var(--ink);font:14px "DM Sans",Arial,sans-serif;padding:14px 17px}
.interior-page input::placeholder{color:var(--muted)}
.interior-page .pubs .year{font:12px var(--mono);letter-spacing:.08em;margin:45px 0 0;color:var(--muted)}
.interior-page .pubs .publication{padding:25px 0;margin:0;border-bottom:1px solid var(--line)}
.interior-page .pubs .publication h3{font-size:21px;font-weight:500;line-height:1.4;margin:0 0 12px;letter-spacing:-.025em}
.interior-page .pubs .authors,.interior-page .pubs .authors a{font-size:13px;color:var(--muted);font-weight:400}
.interior-page .pubs .venue,.interior-page .pubs .venue a{font:11px var(--mono);line-height:1.8;color:var(--muted)}
.interior-page .pubs .extra-links{margin-top:17px;display:flex;gap:10px;flex-wrap:wrap}
.interior-page .pubs .extra-links a{font:10px var(--mono);border:1px solid var(--line);border-radius:5px;padding:8px 10px;margin:0;color:var(--ink)}
.interior-page .pubs .extra-links a:hover{border-color:var(--muted)}
.interior-page .pubs .publication.hidden,.interior-page .pubs .year.hidden{padding:0;margin:0;border:0;visibility:hidden}
.interior-page .work{padding:28px}.interior-page .work .company{font-family:inherit;font-weight:500;color:var(--ink)}
.interior-page .work .role,.interior-page .work .dates,.interior-page .work .location,.interior-page .work .summary p,.interior-page .work .highlights li,.interior-page .work .eyebrow{color:var(--muted)}
.interior-page .work .rule{border-color:var(--line)}.interior-page .work .skills li{background:var(--bg);color:var(--muted);border:1px solid var(--line);font-weight:400}
.interior-page .work .highlights li:before{color:var(--muted)}
.interior-page .post{max-width:960px}.interior-page .post-header{border-color:var(--line);padding-bottom:30px;margin-bottom:35px}
.interior-page .post-crumb{font-size:10px;font-weight:400;color:var(--muted);margin:0 0 24px;letter-spacing:.08em}
.interior-page .post-subtitle,.interior-page .post-meta,.interior-page figcaption{color:var(--muted)}
.interior-page .post-content img{border-color:var(--line)}.interior-page .post-content a{text-decoration:underline;text-underline-offset:4px}
.interior-page hr,.interior-page blockquote{border-color:var(--line)}.interior-page blockquote{color:var(--muted)}
.interior-page code,.interior-page pre,.interior-page .highlight{background:var(--card);border-color:var(--line)}
.interior-page .cv-page{max-width:1150px;padding:0 50px}.interior-page .cv-bar{margin-bottom:30px;gap:24px}.interior-page .cv-bar__title{font-size:38px}
.interior-page .cv-btn{border-color:var(--line);color:var(--ink);background:var(--card);font-size:11px;font-weight:400;padding:12px 16px}
.interior-page .cv-btn:hover{border-color:var(--muted)}.interior-page .cv-btn--primary{color:var(--bg);background:var(--ink)}.interior-page .cv-frame{border-color:var(--line)}
.interior-page>footer{background:var(--bg);border-top:1px solid var(--line);padding:32px 0;color:var(--muted);font-size:11px}
.interior-page>footer a{color:var(--ink);font-weight:400}.interior-page>footer abbr{text-decoration:none}.interior-page>footer .site-desc{max-width:330px}
@media(max-width:1050px){.interior-page .interior-nav{gap:20px}.interior-masthead{gap:20px}.interior-actions{gap:16px}.interior-page .contact-link{gap:12px}}
@media(max-width:760px){.interior-masthead{display:grid;grid-template-columns:1fr auto;gap:0;padding:23px 0 17px;margin:0 6%}.interior-page .site-mark{width:29px;height:34px}.interior-nav{grid-row:2;grid-column:1/-1;margin-top:18px}.interior-page .interior-nav{width:100%;justify-content:space-between;gap:12px}.interior-page .interior-nav a{font-size:11px}.interior-actions{grid-column:2;grid-row:1}.interior-page .page-header{margin-bottom:40px}.interior-page .container,.interior-page .cv-page{padding-left:7%;padding-right:7%}.interior-page .lead{font-size:14px;margin-bottom:40px}.interior-page .page-content{padding-bottom:55px}.interior-page .project .body{padding:20px}.interior-page .work{padding:22px}.interior-page .work-head .line{flex-wrap:wrap;gap:7px}.interior-page .pubs .publication h3{font-size:19px}.interior-page .cv-bar__title{font-size:32px}.interior-page .cv-btn{white-space:normal}.interior-page>footer .container{gap:20px}}
@media(prefers-reduced-motion:reduce){.interior-page *{scroll-behavior:auto;transition:none!important}}

/* Neutralize the legacy mobile active-link fill and style search feedback. */
.interior-page .interior-nav a,.interior-page .interior-nav a:hover,.interior-page .interior-nav a[aria-current]{background:transparent}
.interior-page #clear-filters{font:11px var(--mono);color:var(--muted);background:none;border:0;padding:12px 0;cursor:pointer;text-align:left}
.interior-page #clear-filters:hover{color:var(--ink)}
.interior-page #clear-filters.hidden{visibility:hidden}
.interior-page #only-highlight{font-size:12px;color:var(--muted);margin-top:16px}

/* Let the project introduction follow the full content width. */
.interior-page .projects .lead{max-width:none;hyphens:none;word-break:normal}

/* Reserve thumbnail space; decode images separately from rendering the page. */
.interior-page .project .thumb{position:relative;background:var(--card);overflow:hidden}
.interior-page .project .thumb img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
