:root{--bg:#141614;--paper:#eeeee5;--muted:#a9ada5;--accent:#d1df7c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--paper);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}header{height:86px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:#141614;position:sticky;top:0;z-index:10;border-bottom:1px solid #ffffff18}.brand{font-weight:800;font-size:30px;letter-spacing:-2px;display:flex;gap:20px;align-items:center}.brand span{font-size:11px;letter-spacing:2px}nav{display:flex;gap:35px;font-size:13px}.languages{display:flex;gap:10px;align-items:center;font-size:12px}.languages button{background:none;border:0;color:var(--muted);padding:10px 0}.languages button.active{color:var(--accent)}.hero{position:relative;min-height:720px;height:calc(100svh - 86px);max-height:1000px;display:flex;align-items:center;overflow:hidden}.hero-image{position:absolute;inset:0;background:url('assets/photo-2.jpg') center/cover;filter:brightness(.68)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#101710e8,#10171020),linear-gradient(0deg,#141614b0,transparent 45%)}.hero-copy{position:relative;padding:65px 8%;max-width:850px}.eyebrow{font-size:11px;letter-spacing:2.5px;font-weight:600;margin:0 0 30px;color:var(--accent)}h1{font-size:clamp(65px,8.5vw,130px);line-height:.99;letter-spacing:-6px;font-weight:500;margin:0 0 32px}.intro{font-size:18px;line-height:1.7;max-width:425px;color:#e1e3d9}.button{display:inline-block;background:var(--accent);color:#20241c;font-size:13px;font-weight:600;padding:19px 24px;margin-top:20px}.hero-bottom{position:absolute;bottom:30px;left:5%;right:5%;display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px}.hero-bottom a{font-size:30px}.section{padding:100px 8%}.section-top,.title-row{display:flex;justify-content:space-between;align-items:center;gap:20px}.section-top>span{font-size:12px;color:var(--muted)}h2{font-size:clamp(36px,4.4vw,66px);font-weight:500;letter-spacing:-2px;line-height:1.12;margin:0 0 40px}.filters{display:flex;gap:8px;margin-bottom:40px}.filters button{border:1px solid #ffffff30;background:none;color:var(--paper);padding:10px 16px;border-radius:30px;font-size:12px}.filters button.active{background:var(--accent);border-color:var(--accent);color:#20241c}.projects{display:grid;grid-template-columns:1fr 1fr;gap:40px 28px}.project button,.project>a{display:block;width:100%;text-align:left;background:transparent;color:inherit;border:0;padding:0}.project-image{position:relative;height:300px;overflow:hidden;background:#242c26}.project img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.project:hover img{transform:scale(1.035)}.play{position:absolute;right:20px;bottom:20px;background:var(--paper);color:var(--bg);width:42px;height:42px;display:grid;place-items:center;border-radius:50%}.project h3{font-size:23px;font-weight:500;margin:18px 0 7px}.project p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.project .number{float:right;color:var(--muted);font-size:11px}.text-link{display:inline-block;margin-top:35px;padding-bottom:7px;border-bottom:1px solid currentColor;font-size:13px}.film{background:var(--paper);color:var(--bg)}.film .eyebrow{color:#616c3a}.film-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}.film h2{font-size:85px}.film h2 span{display:block;font-family:Georgia,serif;font-size:30px;font-style:italic;color:#72776c;margin-top:15px}.large{font-size:24px;line-height:1.5;margin:0 0 25px}p{line-height:1.8}.credit{font-size:12px;border-top:1px solid #14161430;padding-top:22px;margin-top:25px}.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px}.about-grid>div>p:not(.large){color:var(--muted)}.skills{display:flex;flex-wrap:wrap;gap:9px;margin:28px 0}.skills span{border:1px solid #ffffff30;padding:10px 14px;font-size:12px}.small{font-size:12px}.experience{margin-top:90px;display:grid;grid-template-columns:1fr 2fr;gap:40px}.experience h3{font-size:18px;font-weight:500}.experience article{border-top:1px solid #ffffff25;display:grid;grid-template-columns:30px 1fr 1fr;gap:20px;padding:26px 0}.experience article>span{font-size:11px;color:var(--accent)}h4{font-size:21px;font-weight:500;margin:0}.experience p{font-size:12px;color:var(--muted);margin:6px 0}.contact{background:var(--accent);color:#20241c}.contact .eyebrow{color:#505a31}.contact h2{font-size:clamp(40px,6vw,90px)}.email{font-size:clamp(18px,3vw,38px);border-bottom:1px solid #20241c;padding-bottom:8px}.contact-bottom{display:flex;gap:40px;font-size:13px;margin-top:55px}footer{padding:30px 5%;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}dialog{background:#141614;color:var(--paper);border:1px solid #ffffff30;padding:24px;max-width:90vw;max-height:92vh}dialog::backdrop{background:#000d}dialog img{max-width:80vw;max-height:72vh;object-fit:contain}dialog p{margin-bottom:0;font-size:13px}.close{position:absolute;right:8px;top:8px;border:0;background:var(--paper);color:var(--bg);font-size:27px;width:35px;height:35px}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.contact a:focus-visible{outline-color:var(--bg)}@media(max-width:750px){header{height:72px}.brand span{display:none}nav{gap:18px;font-size:12px}.hero{min-height:640px;height:85svh}.hero-copy{padding:50px 7%}h1{letter-spacing:-3px}.hero-bottom{font-size:8px;letter-spacing:1px}.section{padding:65px 7%}.section-top>span{display:none}.title-row{align-items:flex-start;flex-direction:column;gap:0}h2{letter-spacing:-1px}.filters{margin-bottom:25px}.projects{grid-template-columns:1fr;gap:30px}.project-image{height:260px}.film-grid,.about-grid,.experience{grid-template-columns:1fr;gap:25px}.film h2{font-size:65px}.large{font-size:21px}.experience{margin-top:55px}.experience article{grid-template-columns:20px 1fr}.experience article>p{grid-column:2}.contact-bottom{justify-content:space-between;gap:15px}dialog img{max-width:75vw}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Motion and production identity */
:root{--ease:cubic-bezier(.22,1,.36,1)}
header{transition:height .5s var(--ease),background .5s,box-shadow .5s}header.scrolled{background:#141614ed;box-shadow:0 8px 35px #0003;backdrop-filter:blur(14px)}
.brand small{display:block;font-size:9px;letter-spacing:3.8px;margin-top:5px;color:var(--accent)}
nav a{position:relative;padding:10px 0}nav a:after{content:'';position:absolute;bottom:2px;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}nav a:hover:after{transform:scaleX(1)}
.button{transition:transform .45s var(--ease),box-shadow .45s,background .3s}.button:hover{transform:translateY(-4px);box-shadow:0 10px 30px #0003;background:#e0eba5}
.project img{transition:transform .85s var(--ease),filter .7s}.project:hover img{transform:scale(1.06)}.play{transition:transform .5s var(--ease),background .3s}.project:hover .play{transform:rotate(-12deg);background:var(--accent)}
.filters button{transition:background .35s,color .35s,transform .35s var(--ease)}.filters button:hover{transform:translateY(-2px)}
.skills{gap:12px}.skills span{display:flex;align-items:center;gap:12px;padding:14px 18px;transition:transform .45s var(--ease),border-color .4s,background .4s}.skills span:hover{transform:translateY(-4px);border-color:var(--accent);background:#ffffff06}.skills img{object-fit:contain;flex-shrink:0}.skills .office-logo{width:100px}.skills b{font-weight:400}.skills span:has(.office-logo){flex-direction:column;align-items:flex-start;gap:6px}
.text-link{transition:color .3s,transform .4s var(--ease)}.text-link:hover{transform:translateX(5px);color:var(--accent)}.email{display:inline-block;transition:transform .5s var(--ease)}.email:hover{transform:translateX(8px)}
.motion .reveal{opacity:0;transform:translateY(28px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.motion .reveal.is-visible{opacity:1;transform:translateY(0)}
.motion .hero-copy>.eyebrow{animation:entrance .8s var(--ease) both}.motion .hero-copy>h1{animation:entrance 1.1s .1s var(--ease) both}.motion .hero-copy>.intro{animation:entrance 1.1s .22s var(--ease) both}.motion .hero-copy>.button{animation:entrance 1.1s .35s var(--ease) both}.motion .hero-image{animation:hero-drift 16s var(--ease) both}.motion .hero-bottom>a{animation:arrow-float 2.4s ease-in-out infinite}
dialog[open]{animation:dialog-enter .4s var(--ease)}dialog::backdrop{animation:fade-in .35s ease-out}
@keyframes entrance{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-drift{from{transform:scale(1.05)}to{transform:scale(1)}}@keyframes arrow-float{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}@keyframes dialog-enter{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.motion .reveal{opacity:1;transform:none}}
.skills .office-logo{width:36px;height:36px;object-fit:cover;object-position:left}.skills span:has(.office-logo){flex-direction:row;align-items:center;gap:12px}
