@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-italic-Y14P-dkT.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-italic-DhNIfkTX.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff)format("woff")}@font-face{font-family:Manrope Variable;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2)format("woff2")}:root{font-synthesis:none;text-rendering:optimizelegibility;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--display:"Cormorant Garamond", Georgia, serif;--mono:"IBM Plex Mono", ui-monospace, monospace;--bg:#07090d;--bg-soft:#0b0e14;--surface:#0d1119;--surface-raised:#121721;--text:#eeeef0;--muted:#9298a5;--blue:#668fd4;--blue-strong:#3869b8;--blue-soft:#668fd429;--line:#eeeef01f;--line-soft:#eeeef012;--page-pad:clamp(1.2rem, 4vw, 4.25rem);--content:1180px;--header-height:82px;--ease:cubic-bezier(.16, 1, .3, 1);font-family:Manrope Variable,system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px);background:var(--bg)}body{min-width:320px;min-height:100%;color:var(--text);background:var(--bg);margin:0}button,a{-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}a{color:inherit}img,video{max-width:100%;display:block}h1,h2,h3,p,figure,ul{margin:0}button:focus-visible,a:focus-visible,video:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.site-shell{background:radial-gradient(circle at 50% 9%, #2a46762e, transparent 29rem), var(--bg);min-height:100dvh;position:relative;overflow:clip}.grain{z-index:3;pointer-events:none;opacity:.19;mix-blend-mode:soft-light;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='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");position:fixed;inset:0}.scroll-progress{z-index:8;transform-origin:0;background:var(--blue);width:100%;height:2px;position:fixed;top:0;left:0}.skip-link{z-index:10;color:#07090d;background:var(--blue);font-family:var(--mono);text-transform:uppercase;padding:.75rem 1rem;font-size:.72rem;font-weight:600;text-decoration:none;transition:transform .2s;position:fixed;top:.7rem;left:.7rem;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}#portfolio-content:focus{outline:none}.site-header{z-index:5;height:var(--header-height);padding-inline:var(--page-pad);border-bottom:1px solid var(--line-soft);-webkit-backdrop-filter:blur(18px)saturate(120%);background:#07090dc7;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.wordmark{font-family:var(--display);letter-spacing:-.03em;font-size:1.55rem;font-weight:600;line-height:1;text-decoration:none}.wordmark em{color:var(--blue);font-weight:500}.nav-links{align-items:center;gap:clamp(1.4rem,3vw,3rem);display:flex}.nav-links a{color:#b3b7c1;font-family:var(--mono);letter-spacing:.2em;text-transform:uppercase;font-size:.69rem;font-weight:600;text-decoration:none;transition:color .26s,border-color .26s,background .26s;position:relative}.nav-links a:not(.nav-contact):after{content:"";background:var(--blue);transform-origin:100%;height:1px;transition:transform .32s var(--ease);position:absolute;bottom:-8px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover{color:var(--text)}.nav-links a:not(.nav-contact):hover:after{transform-origin:0;transform:scaleX(1)}.nav-contact{border:1px solid var(--line);align-items:center;min-height:42px;padding-inline:1.3rem;display:inline-flex}.nav-contact:hover{border-color:var(--blue);background:var(--blue-soft)}.hero{min-height:calc(100dvh - var(--header-height));padding:5rem var(--page-pad) 6.5rem;border-bottom:1px solid var(--line-soft);isolation:isolate;place-items:center;display:grid;position:relative;overflow:hidden}.hero:before{content:"";z-index:-2;background:linear-gradient(90deg, var(--bg) 0%, transparent 27%, transparent 73%, var(--bg) 100%), radial-gradient(ellipse at 50% 43%, #3661aa33, transparent 43%);position:absolute;inset:0}.hero-media{z-index:-3;pointer-events:none;position:absolute;inset:0}.hero-poster{aspect-ratio:9/16;filter:grayscale(.8)contrast(1.05)brightness(.58);border:1px solid #ffffff17;width:min(25vw,330px);position:absolute;top:50%;overflow:hidden;box-shadow:0 35px 90px #0000008c;opacity:.22!important}.hero-poster img{object-fit:cover;width:100%;height:100%}.hero-poster-left{left:clamp(-5rem,5vw,6rem);transform:translateY(-50%)rotate(-4deg)}.hero-poster-right{right:clamp(-5rem,5vw,6rem);transform:translateY(-50%)rotate(4deg)}.hero-content{text-align:center;flex-direction:column;align-items:center;width:min(100%,820px);display:flex}.kicker{color:var(--blue);font-family:var(--mono);letter-spacing:.34em;text-transform:uppercase;font-size:.7rem;font-weight:600;line-height:1.4}.hero h1{font-family:var(--display);letter-spacing:-.07em;margin-top:.35rem;font-size:clamp(6rem,12.6vw,11.5rem);font-weight:600;line-height:.68}.hero-line{padding-inline:.12em;display:block;overflow:hidden}.hero-line>span{display:inline-block}.hero-name-accent{color:var(--blue);padding-block:.12em .08em;font-style:italic;font-weight:500}.hero-tagline{color:#a2a8b4;max-width:64ch;font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;margin-top:2.3rem;font-size:.69rem;font-weight:500;line-height:1.8}.hero-actions{flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:2rem;display:flex}.button{min-height:54px;color:var(--text);font-family:var(--mono);letter-spacing:.17em;text-transform:uppercase;transition:transform .28s var(--ease), background .28s ease, border-color .28s ease;border:1px solid #0000;justify-content:center;align-items:center;gap:2rem;padding-inline:1.55rem;font-size:.7rem;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{transform:translateY(-3px)}.button:active{transform:translateY(0)scale(.98)}.button-primary{color:#f5f7fb;background:var(--blue-strong);border-color:var(--blue-strong)}.button-primary:hover{background:#487ac8;border-color:#487ac8}.button-secondary{border-color:var(--line);background:#07090d8a}.button-secondary:hover{border-color:var(--blue);background:var(--blue-soft)}.scroll-cue{color:var(--muted);font-family:var(--mono);letter-spacing:.25em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.7rem;font-size:.58rem;text-decoration:none;display:flex;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}.scroll-cue i{background:var(--line);width:1px;height:32px;display:block;position:relative;overflow:hidden}.scroll-cue i:after{content:"";background:var(--blue);width:1px;height:100%;animation:2s ease-in-out infinite scroll-line;position:absolute;top:-100%;left:0}@keyframes scroll-line{0%{transform:translateY(0)}60%,to{transform:translateY(200%)}}.section{width:min(100%, calc(var(--content) + var(--page-pad) * 2));padding:clamp(6.5rem, 11vw, 10rem) var(--page-pad) clamp(7rem, 12vw, 11rem);margin-inline:auto}.section-heading{max-width:760px}.section-heading h2,.contact-inner h2{font-family:var(--display);letter-spacing:-.055em;text-wrap:balance;margin-top:1rem;font-size:clamp(4rem,8vw,7.2rem);font-weight:500;line-height:.86}.section-heading h2 em,.contact-inner h2 em{color:var(--blue);font-weight:500}.section-description{max-width:55ch;color:var(--muted);margin-top:1.5rem;font-size:clamp(1rem,1.25vw,1.08rem);line-height:1.75}.work-section{border-bottom:1px solid var(--line-soft)}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.3rem,3vw,2.6rem);margin-top:clamp(3.5rem,7vw,6rem);display:grid}.projects-grid>:nth-child(2n){margin-top:clamp(1.8rem,5vw,4.5rem)}.project-card{flex-direction:column;display:flex}.project-media{aspect-ratio:16/9;border:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden}.media-trigger{cursor:pointer;background:0 0;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.media-trigger:after{content:"";pointer-events:none;transition:opacity .42s var(--ease);background:linear-gradient(#0000 42%,#030407b8);position:absolute;inset:0}.media-trigger img,.youtube-frame iframe{object-fit:cover;border:0;width:100%;height:100%}.media-trigger img{filter:saturate(.72)contrast(1.04)brightness(.86);transition:transform .85s var(--ease), filter .6s ease}.project-card:hover .media-trigger img,.reel-card:hover .media-trigger img{filter:saturate()contrast(1.03)brightness();transform:scale(1.045)}.play-button{z-index:1;color:#fff;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);width:64px;height:64px;transition:transform .35s var(--ease), border-color .3s ease, background .3s ease;background:#07090d8c;border:1px solid #fff6;border-radius:50%;place-items:center;padding-left:3px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.media-trigger:hover .play-button{border-color:var(--blue);background:var(--blue-strong);transform:translate(-50%,-50%)scale(1.08)}.media-trigger:active .play-button{transform:translate(-50%,-50%)scale(.95)}.project-label{border-bottom:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;grid-template-columns:auto 1fr auto;align-items:center;gap:.9rem;margin-top:1.4rem;padding-bottom:1rem;font-size:.67rem;font-weight:600;display:grid}.project-label span:first-child{color:var(--blue)}.project-card h3{font-family:var(--display);margin-top:1.1rem;font-size:clamp(2rem,3.2vw,3rem);font-weight:500;line-height:.98}.project-card>p{max-width:54ch;color:var(--muted);margin-top:.9rem;font-size:.95rem;line-height:1.72}.text-link{color:#c7cad2;font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;transition:color .25s ease, transform .25s var(--ease);align-self:flex-start;align-items:center;gap:.45rem;margin-top:1.25rem;font-size:.67rem;font-weight:600;text-decoration:none;display:inline-flex}.text-link:hover{color:var(--blue);transform:translate(3px)}.media-loading,.media-error{z-index:2;color:var(--muted);background:var(--surface);font-family:var(--mono);letter-spacing:.1em;text-align:center;text-transform:uppercase;place-content:center;justify-items:center;gap:.8rem;padding:1rem;font-size:.7rem;display:grid;position:absolute;inset:0}.image-error{width:100%;height:100%;min-height:160px;color:var(--muted);background:var(--surface);place-items:center;font-size:.85rem;display:grid}.retry-button{border:1px solid var(--line);min-height:42px;color:var(--text);cursor:pointer;font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;background:0 0;padding-inline:1rem;font-size:.66rem}.retry-button:hover{border-color:var(--blue);color:var(--blue)}.reels-section{max-width:calc(980px + var(--page-pad) * 2)}.reels-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,4.5rem);margin-top:clamp(3.5rem,7vw,6rem);display:grid}.reel-offset{margin-top:clamp(2.5rem,8vw,7rem)}.reel-frame{aspect-ratio:9/16;border:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden}.reel-frame video{object-fit:cover;width:100%;height:100%}.reel-title-row{align-items:baseline;gap:1rem;margin-top:1rem;display:flex}.reel-title-row>span{color:var(--blue);font-family:var(--mono);font-size:.68rem;font-weight:600}.reel-title-row h3{font-family:var(--display);font-size:clamp(1.7rem,3vw,2.5rem);font-weight:500}.about-section{width:100%;max-width:none;padding-inline:max(var(--page-pad), calc((100vw - var(--content)) / 2));border-block:1px solid var(--line-soft);background:var(--bg-soft)}.about-grid{grid-template-columns:minmax(0,1fr) minmax(340px,.82fr);gap:clamp(3rem,8vw,8rem);margin-top:clamp(3rem,6vw,5rem);display:grid}.about-copy p{color:#a6abb6;max-width:54ch;font-family:var(--display);font-size:clamp(1.65rem,2.5vw,2.25rem);line-height:1.32}.about-copy p+p{color:var(--muted);margin-top:1.5rem;font-family:Manrope Variable,system-ui,sans-serif;font-size:1rem;line-height:1.75}.skills-panel{border:1px solid var(--line);align-self:start}.tool-block{grid-template-columns:auto 1fr;align-items:center;gap:1.35rem;padding:1.5rem;display:grid}.tool-block+.tool-block{border-top:1px solid var(--line)}.tool-mark{width:58px;height:58px;color:var(--blue);background:var(--blue-soft);font-family:var(--display);border:1px solid #668fd45c;place-items:center;font-size:1.6rem;font-weight:600;display:grid}.tool-block h3{font-size:1rem;font-weight:700}.tool-block p{color:var(--muted);margin-top:.35rem;font-size:.9rem;line-height:1.6}.skills-list{border-top:1px solid var(--line);border-left:1px solid var(--line);flex-wrap:wrap;margin-top:clamp(4rem,7vw,6rem);padding:0;list-style:none;display:flex}.skills-list li{border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:#b3b7c1;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;flex:250px;padding:1.3rem 1.5rem;font-size:.69rem;font-weight:600;transition:color .25s,background .25s}.skills-list li:hover{color:var(--text);background:var(--blue-soft)}.contact-section{padding:clamp(7rem, 13vw, 12rem) var(--page-pad) 2.2rem;background:radial-gradient(circle at 50% 55%, #2e518b38, transparent 34rem), var(--bg);position:relative;overflow:hidden}.contact-inner{text-align:center;flex-direction:column;align-items:center;max-width:900px;margin-inline:auto;display:flex}.contact-inner>p:not(.kicker){max-width:54ch;color:var(--muted);margin-top:1.8rem;font-size:1rem;line-height:1.75}.contact-inner .button{margin-top:2.4rem}.site-footer{width:min(100%, var(--content));border-top:1px solid var(--line);color:var(--muted);font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;margin:clamp(6rem,12vw,10rem) auto 0;padding-top:1.6rem;font-size:.64rem;display:grid;position:relative}.site-footer span:nth-child(2){text-align:center}.site-footer a{justify-self:end;text-decoration:none;transition:color .25s}.site-footer a:hover{color:var(--blue)}@media (width<=900px){.projects-grid{grid-template-columns:1fr}.projects-grid>:nth-child(2n){margin-top:1.2rem}.about-grid{grid-template-columns:1fr;gap:3rem}.skills-panel{max-width:620px}}@media (width<=680px){:root{--header-height:70px}.site-header{padding-inline:1rem}.wordmark{font-size:1.35rem}.nav-links{gap:.75rem}.nav-links a:not(.nav-contact){display:none}.nav-contact{min-height:40px;padding-inline:1rem}.hero{min-height:calc(100svh - var(--header-height));padding:4rem 1rem 6rem}.hero h1{font-size:clamp(5rem,25vw,7.4rem);line-height:.7}.hero-poster{width:43vw;top:53%;opacity:.12!important}.hero-poster-left{left:-16vw}.hero-poster-right{right:-16vw}.hero-tagline{max-width:38ch;margin-top:2rem;font-size:.63rem;line-height:1.75}.hero-actions{width:min(100%,340px)}.button{flex:auto;gap:1.2rem;padding-inline:1.1rem}.section{padding-inline:1rem}.section-heading h2,.contact-inner h2{font-size:clamp(3.4rem,18vw,5.1rem)}.reels-grid{grid-template-columns:1fr;width:min(100%,390px);margin-inline:auto}.reel-offset{margin-top:1.5rem}.about-section{padding-inline:1rem}.about-copy p{font-size:1.55rem}.tool-block{grid-template-columns:1fr;gap:1rem}.skills-list li{flex-basis:50%;min-width:0;padding-inline:.85rem;font-size:.61rem}.contact-section{padding-inline:1rem}.site-footer{grid-template-columns:1fr;justify-items:start;gap:.8rem}.site-footer span:nth-child(2),.site-footer a{text-align:left;justify-self:start}}@media (width<=380px){.hero h1{font-size:4.65rem}.hero-actions{flex-direction:column}.button{width:100%}.project-label{grid-template-columns:auto 1fr}.project-label svg{display:none}}@media (prefers-reduced-transparency:reduce){.site-header{background:var(--bg);-webkit-backdrop-filter:none}.play-button{-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.scroll-cue i:after{animation:none}}
