@font-face{font-family:DM Sans;src:url(assets/font-0.woff) format('woff');font-weight:400;font-display:swap}@font-face{font-family:Manrope;src:url(assets/font-4.woff) format('woff');font-weight:400;font-display:swap}@font-face{font-family:Manrope;src:url(assets/font-7.woff) format('woff');font-weight:700;font-display:swap}
:root{--bg:#202020;--surface:#292824;--text:#f5f1e8;--muted:#ccc5b8;--gold:#dec078;--line:#514b40;--space:clamp(64px,8vw,120px);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);font:17px/1.65 'DM Sans',sans-serif}::selection{background:var(--gold);color:var(--bg)}a{color:inherit;text-underline-offset:6px}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:6px}img{display:block;max-width:100%}figure,p,h1,h2,h3{margin:0}h1,h2,h3,.brand{font-family:Manrope,sans-serif}h1,h2{font-weight:400;line-height:1.06;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(52px,6.1vw,88px);color:var(--gold)}h2{font-size:clamp(42px,5vw,68px);color:var(--gold)}h3{font-size:22px;font-weight:700;line-height:1.4}.wrap{width:min(1320px,calc(100% - 112px));margin-inline:auto}.skip{position:fixed;top:-100px;left:16px;z-index:20;background:var(--gold);color:var(--bg);padding:12px}.skip:focus{top:12px}.header{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:130px;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:16px;text-decoration:none;font-size:23px;line-height:1.25;white-space:nowrap}.brand-copy>span{display:block;font-family:DM Sans,sans-serif;font-size:13px;color:var(--muted);margin-top:8px}.brand-cat{width:46px;height:auto;flex:none}.header nav{display:flex;gap:30px}.header nav a{text-decoration:none;font-size:14px}.header nav a:hover{color:var(--gold)}.languages{display:flex;gap:3px}.languages button{background:none;border:0;color:var(--muted);padding:10px;font-size:13px;min-height:44px}.languages button[aria-pressed=true]{color:var(--gold);box-shadow:inset 0 -2px var(--gold)}.hero{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:8%;padding-top:65px;padding-bottom:85px;min-height:680px}.hero-copy{padding-block:24px}.intro{max-width:440px;margin-top:30px;color:var(--muted);font-size:19px}.actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin-top:38px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:50px;padding:12px 23px;background:var(--gold);color:var(--bg);text-decoration:none;font-size:15px;border:1px solid var(--gold);transition:background .25s,color .25s}.button:hover{background:var(--text);border-color:var(--text)}.outline{background:transparent;color:var(--gold)}.outline:hover{color:var(--bg)}.text-link{font-size:14px}.text-link:hover{color:var(--gold)}.location{font-size:13px;color:var(--muted);margin-top:54px}.hero-portrait{width:min(100%,385px);justify-self:end}.hero-portrait img{width:100%;height:auto}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:25px}.work-section{padding-block:45px var(--space)}.section-intro{color:var(--muted);max-width:580px;margin:25px 0 45px}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;align-items:start}.photo{min-width:0}.photo-frame{position:relative;display:block;width:var(--thumb-width,100%);aspect-ratio:var(--thumb-aspect,4/3)}.photo-button{position:relative;background:none;border:0;padding:0;width:100%;display:grid;place-items:start;aspect-ratio:4/3;overflow:hidden}.photo-frame>img:not(.photo-watermark){width:100%;height:auto;transition:transform .5s cubic-bezier(.16,1,.3,1)}.photo-button:hover .photo-frame>img:not(.photo-watermark){transform:scale(1.035)}.photo figcaption{display:flex;justify-content:space-between;gap:10px;margin-top:13px;color:var(--muted);font-size:13px}.photo figcaption{overflow-wrap:anywhere}.film-section{background:var(--surface);padding-block:var(--space)}.film-layout{display:grid;grid-template-columns:1fr 1fr;gap:13%}.film-layout>div>p{max-width:420px;color:var(--muted);margin:30px 0}.film-list article{padding:28px 0;border-bottom:1px solid var(--line)}.film-list article:first-child{padding-top:0}.film-list p{color:var(--muted);margin-top:12px;font-size:16px}.about-section{padding-block:var(--space)}.about-top{display:grid;grid-template-columns:1fr 1.25fr;gap:12%}.about-top p{max-width:640px;margin-bottom:22px;color:var(--muted)}.about-top .about-lead{color:var(--text);font-size:25px;line-height:1.5}.skills{display:grid;grid-template-columns:1fr 1.25fr;gap:12%;border-top:1px solid var(--line);margin-top:60px;padding-top:30px}.skills p{color:var(--muted);max-width:640px}.resume-section{padding-block:0 var(--space)}.experience-list{margin-top:45px}.experience-list article{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:30px 0;border-top:1px solid var(--line)}.dates{font-size:14px;color:var(--gold);font-variant-numeric:tabular-nums}.employer{color:var(--muted);font-size:14px;margin:9px 0 14px}.experience-list article div>p:last-child{max-width:680px;color:var(--muted);font-size:16px}.education{display:grid;grid-template-columns:1fr 2fr;gap:40px;padding:30px 0;border-top:1px solid var(--line)}.muted{color:var(--muted);font-size:14px;margin-top:8px}.resume-note{font-size:13px;color:var(--muted);margin-top:15px}.contact-section{background:var(--gold);color:var(--bg);padding-block:90px}.contact-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:12%}.contact-section h2{color:var(--bg)}.contact-section p{max-width:410px;margin-top:25px}.contact-details>a{display:block;width:fit-content;margin-bottom:15px}.email{font-family:Manrope,sans-serif;font-size:clamp(18px,2vw,27px);overflow-wrap:anywhere}.contact-details p{font-size:14px}.contact-links{display:flex;gap:25px;margin-top:30px;font-size:14px}footer{display:flex;justify-content:space-between;gap:20px;padding-block:28px;font-size:12px;color:var(--muted)}footer a{text-decoration:none}dialog{width:min(1200px,96vw);max-height:96dvh;border:1px solid var(--line);padding:20px;background:var(--bg);color:var(--text)}dialog::backdrop{background:#000c}dialog img{max-height:75dvh;max-width:100%;width:auto;object-fit:contain;margin:auto}.viewer-top,.viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 0}.viewer-top p{font-size:15px}.viewer-bottom{padding-top:20px}dialog button{background:var(--surface);color:var(--text);border:1px solid var(--line);padding:8px 16px;min-height:44px}.viewer-bottom span{font-size:13px;color:var(--muted)}body:has(dialog[open]){overflow:hidden}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line);border:2px solid var(--bg)}
.contact-section a:focus-visible{outline-color:var(--bg)}
@media(min-width:1600px){.hero{min-height:760px}.hero-portrait{width:420px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.header{gap:20px}.header{flex-wrap:wrap;padding-block:24px;min-height:0}.header nav{order:3;width:100%;flex-wrap:wrap;gap:4px 20px}.header nav a{min-height:44px;display:flex;align-items:center}.languages{margin-left:auto}.hero{gap:5%;min-height:590px}.film-layout,.about-top,.skills,.contact-layout{gap:7%}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.header{flex-wrap:wrap;min-height:0;padding:24px 0 17px;gap:20px}.brand{font-size:20px;gap:12px}.brand-cat{width:38px}.languages{margin-left:auto}.header nav{order:3;width:100%;justify-content:flex-start;flex-wrap:wrap;gap:4px 20px}.header nav a{min-height:44px;display:flex;align-items:center}.hero{grid-template-columns:1fr;padding-top:42px;padding-bottom:54px;gap:35px;min-height:0}.hero-copy{padding:0}h1{font-size:clamp(47px,10vw,70px)}.intro{font-size:17px;margin-top:25px}.actions{gap:22px;margin-top:28px}.location{margin-top:30px}.hero-portrait{width:60%;max-width:270px;justify-self:end;margin-right:6px}.section-heading{display:block}.section-heading>.text-link{display:inline-block;margin-top:22px;min-height:44px}.work-section{padding-top:25px}.section-intro{margin:14px 0 25px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.film-layout,.about-top,.skills,.contact-layout{grid-template-columns:1fr;gap:40px}.film-layout>div>p{margin:25px 0}.about-top .about-lead{font-size:22px}.skills{gap:18px;margin-top:30px}.experience-list{margin-top:20px}.experience-list article{grid-template-columns:1fr;gap:12px;padding:25px 0}.education{grid-template-columns:1fr;gap:16px}.contact-section{padding-block:64px}.contact-layout{gap:35px}.contact-details p{margin-top:15px}dialog{padding:12px}dialog img{max-height:65dvh}.viewer-top{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.certificates-section{padding-block:0 var(--space)}.certificate-entry{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:35px;border-top:1px solid var(--line);padding-top:30px}.certificate-level{color:var(--gold);margin-top:12px;font-variant-numeric:tabular-nums}@media(max-width:760px){.certificate-entry{display:block}}

.personal-photos{max-width:380px;margin:45px auto 0}.personal-photos img{width:100%;height:auto}.certificate-preview{display:block;flex:0 1 240px;min-width:0;max-width:240px}.certificate-preview img{width:100%;height:auto}.certificate-record{display:inline-block;margin-top:24px}@media(max-width:760px){.certificate-preview{margin-top:30px;max-width:220px}}

.photo-watermark{position:absolute;right:1.2%;bottom:1.6%;width:clamp(56px,13%,115px);height:auto;max-width:30%;pointer-events:none;opacity:.72;filter:drop-shadow(0 1px 1px #0008)}.photo-watermark[hidden]{display:none}.viewer-figure{position:relative;width:min(100%,calc(75dvh * var(--photo-aspect,1.5)));margin-inline:auto}.viewer-figure>#viewer-image{width:100%;height:auto;max-height:none}.viewer-figure>.photo-watermark{max-height:none;margin:0;width:clamp(56px,13%,130px)}@media(max-width:760px){.viewer-figure{width:min(100%,calc(65dvh * var(--photo-aspect,1.5)))}}

.film-work{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 50px}.film-piece>p:not(.film-meta){max-width:58ch;color:var(--muted);margin-top:12px}.film-piece>.text-link{display:inline-flex;align-items:center;min-height:44px;margin-top:8px}.film-work{margin-top:64px}.film-feature{grid-column:1/-1;max-width:88%}.film-thumbnail{display:block;position:relative}.film-thumbnail img{width:100%;height:auto}.film-watch{display:block;background:var(--bg);color:var(--gold);font-size:14px;line-height:1.5;padding:10px 16px;min-height:44px}.film-thumbnail:hover .film-watch{color:var(--text)}.film-piece h3{margin-top:20px}.film-meta{font-size:13px;color:var(--gold);font-variant-numeric:tabular-nums;margin-top:8px}.film-project-links{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:12px;font-size:14px}.film-project-links a{display:inline-flex;align-items:center;min-height:44px}.languages button{min-width:44px}.hero-copy,.film-layout>div{min-width:0}.viewer-figure{aspect-ratio:var(--photo-aspect,1.5)}#photo-status{margin-bottom:12px;color:var(--muted);font-size:14px}#photo-retry{margin-bottom:12px}#photo-status[hidden],#photo-retry[hidden]{display:none}.contact-links{flex-wrap:wrap}.contact-links a,footer a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:1050px){.film-work{gap:35px}.film-feature{max-width:100%}}@media(max-width:760px){.film-work{grid-template-columns:1fr;gap:35px}.film-work{margin-top:45px}.film-feature{grid-column:auto}}


.admin-preview-banner{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:var(--gold);color:#202020;padding:12px 24px;border-bottom:1px solid #202020;font-size:14px}.admin-preview-banner a{color:#202020;min-height:44px;display:inline-flex;align-items:center}.admin-edit-link{display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--gold);padding:8px 16px;margin-top:12px;color:var(--gold)}
