:root{--bg:#0c0c0b;--bg-soft:#141413;--text:#eceae4;--muted:#8d887e;--line:#eceae41a;--line-strong:#eceae42e;--gold:#cbb48a;--serif:"Instrument Serif", Georgia, "Times New Roman", serif;--sans:"Instrument Sans", system-ui, sans-serif;--pad:clamp(1.25rem, 4vw, 3.5rem);--max:1120px;--header:4.25rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header)}body{background:var(--bg);min-width:320px;color:var(--text);font-family:var(--sans);letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;font-weight:400;line-height:1.55}#root{min-height:100svh}img,video,svg{max-width:100%;display:block}button,a{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}a{text-decoration:none}h1,h2,h3,p{margin:0}::selection{background:color-mix(in srgb, var(--gold) 55%, transparent);color:var(--bg)}.grain{pointer-events:none;z-index:40;opacity:.045;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}main{padding:calc(var(--header) + 1.5rem) var(--pad) 0}.site-header__inner,.hero,.work,.about,.contact,.site-footer__inner{width:min(var(--max), 100%);margin-inline:auto}.site-header{z-index:20;padding:0 var(--pad);background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(16px);position:fixed;top:0;left:0;right:0}.site-header__inner{height:var(--header);justify-content:space-between;align-items:center;display:flex}.site-header.is-scrolled{border-bottom:1px solid var(--line)}.wordmark{letter-spacing:.02em;font-size:.95rem;font-weight:500}.site-header nav{gap:1.5rem;display:flex}.site-header nav a{color:var(--muted);font-size:.92rem;transition:color .2s}.site-header nav a:hover,.wordmark:hover,.text-link:hover,.contact__email:hover{color:var(--text)}.hero{padding:clamp(2.5rem,8vh,6.5rem) 0 clamp(4rem,10vh,8rem)}.eyebrow{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:.65rem;margin-bottom:1.75rem;font-size:.78rem;font-weight:500;display:flex}.dot{background:currentColor;border-radius:50%;width:4px;height:4px}.hero h1{font-family:var(--serif);letter-spacing:-.03em;font-size:clamp(2.6rem,7vw,4.6rem);font-weight:400;line-height:1.08}.hero h1 em{color:color-mix(in srgb, var(--text) 82%, var(--gold));font-style:italic}.hero__intro{max-width:34rem;color:var(--muted);margin:1.75rem 0 2.25rem;font-size:1.05rem}.text-link{color:var(--gold);border-bottom:1px solid color-mix(in srgb, var(--gold) 40%, transparent);align-items:center;gap:.35rem;width:fit-content;padding-bottom:.12rem;font-size:.95rem;transition:color .2s,border-color .2s;display:inline-flex}.text-link:hover{border-color:var(--gold)}.section-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.75rem;padding-bottom:1rem;display:flex}.section-head h2,.about__services h3,.about__skills h3,.project-card h3,.modal__body h2{font-family:var(--serif);font-weight:400}.section-head h2{letter-spacing:-.02em;font-size:1.35rem}.filters{flex-wrap:wrap;gap:.35rem 1.1rem;display:flex}.filters button{color:var(--muted);font-size:.88rem}.filters button.is-active,.filters button:hover{color:var(--text)}.filters button.is-active{box-shadow:inset 0 -1px 0 var(--gold)}.work,.about,.contact{padding:1.5rem 0 4.5rem}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 1.5rem;margin:0;padding:0;list-style:none;display:grid}.project-card{text-align:left;gap:.85rem;width:100%;display:grid}.project-card__media{aspect-ratio:16/10;background:var(--bg-soft);border:1px solid var(--line);position:relative;overflow:hidden}.project-card__media .poster,.modal__poster{width:100%;height:100%}.poster--photo img{object-fit:cover;object-position:top center;width:100%;height:100%}.project-card:hover .poster,.project-card:focus-visible .poster{transform:scale(1.03)}.project-card__meta{gap:.2rem;display:grid}.project-card__meta span,.meta{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.project-card h3{letter-spacing:-.02em;font-size:1.45rem}.badge,.play{z-index:2;position:absolute}.badge{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--bg) 55%, transparent);color:var(--text);letter-spacing:.12em;text-transform:uppercase;padding:.2rem .45rem;font-size:.68rem;top:.75rem;left:.75rem}.play{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--bg) 60%, transparent);width:2.6rem;height:2.6rem;color:var(--text);border-radius:999px;place-items:center;line-height:0;display:grid;bottom:.85rem;right:.85rem}.play svg{display:block}.poster{isolation:isolate;background:linear-gradient(155deg, var(--from), var(--to));transition:transform .6s;position:relative;overflow:hidden}.poster__wash,.poster__motif,.poster__caption{position:absolute;inset:0}.poster__wash{background:radial-gradient(120% 80% at 80% 0%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 55%), linear-gradient(180deg, transparent 40%, #00000047)}.poster__caption{display:none}.poster--grid .poster__browser{border:1px solid color-mix(in srgb, var(--accent) 55%, white 10%);border-radius:6px 6px 2px 2px;position:absolute;inset:18% 12% 28%;box-shadow:0 18px 40px #00000059}.poster--grid .poster__browser:before{content:"";border-bottom:1px solid color-mix(in srgb, var(--accent) 40%, transparent);background:color-mix(in srgb, var(--accent) 12%, transparent);width:100%;height:14%;position:absolute;inset:0 auto auto 0}.poster__block{background:color-mix(in srgb, var(--accent) 22%, transparent);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);position:absolute}.poster__block--a{width:28%;height:28%;top:34%;left:16%}.poster__block--b{width:36%;height:12%;top:34%;right:16%}.poster__block--c{width:22%;height:18%;top:50%;right:16%}.poster__orb{border-radius:50%;position:absolute}.poster__orb--back{aspect-ratio:1;background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--accent) 55%, white), transparent 62%);filter:blur(8px);opacity:.7;width:58%;top:12%;right:8%}.poster__orb--main{aspect-ratio:1;background:radial-gradient(circle at 32% 28%, color-mix(in srgb, white 70%, var(--accent)), var(--accent) 42%, #1a1a1a 72%);width:38%;top:26%;left:28%;box-shadow:0 20px 50px #00000073}.poster__orb--spec{aspect-ratio:1;filter:blur(2px);opacity:.7;background:#fff;width:8%;top:32%;left:36%}.poster__bar{background:#050505;height:16%;position:absolute;left:0;right:0}.poster__bar--top{top:0}.poster__bar--bottom{bottom:0}.poster__horizon{background:linear-gradient(90deg, transparent, var(--accent), transparent);height:1px;box-shadow:0 0 24px var(--accent);position:absolute;top:58%;left:8%;right:8%}.poster__horizon:after{content:"";background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 70%, white), transparent);opacity:.55;width:28%;height:36px;position:absolute;bottom:8px;left:50%;translate:-50%}.about__grid{grid-template-columns:1.15fr .85fr;gap:3rem;display:grid}.about__copy{max-width:38rem;color:var(--muted);gap:1rem;font-size:1.05rem;display:grid}.about__services{gap:1.35rem;margin:0;padding:0;list-style:none;display:grid}.about__services h3{margin-bottom:.25rem;font-size:1.2rem}.about__services p,.about__skills p{color:var(--muted)}.about__skills{border-top:1px solid var(--line);margin:3rem 0 0;padding:2rem 0 0}.about__skills ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.75rem 1.5rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.about__skills h3{margin-bottom:.3rem;font-size:1.15rem}.contact__lead{color:var(--muted);margin-bottom:1.25rem}.contact__email{font-family:var(--serif);letter-spacing:-.03em;color:var(--text);font-size:clamp(1.8rem,5vw,3rem);line-height:1.15}.site-footer{padding:0 var(--pad) 2.5rem;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}.site-footer__inner{justify-content:space-between;padding-top:1.5rem;display:flex}.modal{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000009e;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.modal__dialog{background:var(--bg-soft);border:1px solid var(--line-strong);width:min(860px,100%);max-height:calc(100svh - 2.5rem);position:relative;overflow:auto}.modal__close{z-index:2;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;position:absolute;top:.55rem;right:.7rem}.modal__close:hover,.modal__close:focus-visible{color:var(--text)}.modal__media{aspect-ratio:16/9;background:#000;margin-top:2.35rem}.modal__media.is-square{aspect-ratio:1;width:min(560px,100%);margin-inline:auto}.modal__frame{object-fit:cover;background:#000;border:0;width:100%;height:100%}.modal__media.is-square .modal__frame{object-fit:contain}.clip-switch{gap:.85rem;display:flex}.clip-switch button{color:var(--muted);font-size:.88rem}.clip-switch button.is-active,.clip-switch button:hover{color:var(--text)}.clip-switch button.is-active{box-shadow:inset 0 -1px 0 var(--gold)}.still-grid{grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.55rem;margin:.4rem 0 0;padding:0;list-style:none;display:grid}.still-grid button{aspect-ratio:1;border:1px solid var(--line);background:#000;width:100%;display:block;overflow:hidden}.still-grid button.is-active{border-color:var(--gold)}.still-grid img{object-fit:cover;width:100%;height:100%}.modal__body{gap:.7rem;padding:1.35rem 1.4rem 1.6rem;display:grid}.modal__body h2{letter-spacing:-.03em;font-size:2rem}.modal__body p:not(.meta){color:var(--muted);max-width:40rem}:focus-visible{outline:1px solid var(--gold);outline-offset:3px}@media (width<=980px){.about__skills ul{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=800px){.work-grid,.about__grid,.about__skills ul{grid-template-columns:1fr}.still-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{flex-direction:column;align-items:flex-start}.hero h1{font-size:clamp(2.2rem,11vw,3.2rem)}.site-header nav{gap:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.poster,.site-header nav a,.text-link,.contact__email{transition:none}.project-card:hover .poster,.project-card:focus-visible .poster{transform:none}}
