@font-face{font-family:Noto Sans SC;src:url(/assets/fonts/NotoSansSC-Thin.woff) format("woff");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/assets/fonts/NotoSansSC-ExtraThin.woff) format("woff");font-weight:200;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/assets/fonts/NotoSansSC-Light.woff) format("woff");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/assets/fonts/NotoSansSC-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/assets/fonts/NotoSansSC-Medium.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/assets/fonts/NotoSansSC-SemiBold.woff) format("woff");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/assets/fonts/NotoSansSC-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/assets/fonts/NotoSansSC-Heavy.woff) format("woff");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans SC;src:url(/assets/fonts/NotoSansSC-ExtraHeavy.woff) format("woff");font-weight:900;font-style:normal;font-display:swap}:root{--onyx:#0a0a0b;--white:#fdfdfd;--neon-pink:#ff007f;--shadow-grey:#1e222a;--rosy-granite:#8e8e93;--onyx-raised:#12141a;--onyx-line:#26292f;--pink-dim:#7a1046;--pink-glow:rgba(255,0,127,.35);--bg-page:var(--onyx);--bg-surface:var(--shadow-grey);--bg-raised:var(--onyx-raised);--fg-primary:var(--white);--fg-secondary:var(--rosy-granite);--fg-on-accent:var(--onyx);--border-hairline:var(--onyx-line);--accent:var(--neon-pink);--accent-hover:#ff3d99;--accent-active:#d10068;--focus-ring:var(--neon-pink);--link:var(--white);--link-hover:var(--neon-pink)}:root{--font-display:"Noto Sans SC",sans-serif;--font-body:"Noto Sans SC",sans-serif;--weight-thin:100;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-heavy:800;--weight-black:900;--display-weight:var(--weight-heavy);--tagline-weight:var(--weight-light);--size-tagline:.9375rem;--size-body:1rem;--size-body-lg:1.125rem;--size-eyebrow:.8125rem;--size-h3:1.5rem;--size-h2:2.25rem;--size-h1:3.5rem;--size-display:6rem;--lh-tight:1.02;--lh-heading:1.1;--lh-body:1.6;--tracking-display:-.01em;--tracking-eyebrow:.14em;--tracking-tagline:.01em;--dot-scale:1.35}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:144px;--radius-sm:2px;--radius-md:4px;--radius-none:0px;--border-width:1px;--container-max:1280px;--container-pad:var(--space-6)}:root{--ease-reveal:cubic-bezier(.16,1,.3,1);--ease-standard:cubic-bezier(.4,0,.2,1);--ease-stage:cubic-bezier(.65,0,.35,1);--dur-fast:.15s;--dur-standard:.32s;--dur-reveal:.7s;--dur-curtain:.9s}*{box-sizing:border-box}html,body{margin:0;background:var(--bg-page);color:var(--fg-primary);font-family:var(--font-body);font-size:var(--size-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--tracking-display);line-height:var(--lh-heading);margin:0;text-transform:uppercase}a{color:var(--link);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:4px;transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}a:hover{color:var(--accent)}a.bare,a.bare:hover{border-bottom:none;box-shadow:none;padding-bottom:0}::selection{background:var(--accent);color:var(--onyx)}html,body{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar,*::-webkit-scrollbar{width:0;height:0;display:none}*{scrollbar-width:none}.subhead{align-self:flex-start;font-family:var(--font-display);font-weight:800;font-size:28px;letter-spacing:.12em;text-transform:uppercase;color:var(--white);text-shadow:var(--subhead-shadow, 3px 3px 0 var(--accent));padding-bottom:5px}.page{padding:72px clamp(48px,10vw,220px) 96px;display:flex;flex-direction:column;gap:56px}.nav-link{color:var(--white);cursor:pointer;border-bottom:2px solid transparent;box-shadow:none;padding-bottom:4px;transition:color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}.nav-link:hover{color:var(--accent);border-bottom-color:var(--accent);box-shadow:0 2px 0 var(--bg-page),0 4px 0 var(--accent)}.nav-link.active,.nav-link.active:hover{color:var(--rosy-granite);cursor:default;border-bottom-color:transparent;box-shadow:none}.footer-link{color:var(--white)}.footer-link:hover{color:var(--accent)}.arrow{position:absolute;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--white);opacity:.45;font-size:38px;line-height:1;cursor:pointer;padding:10px;transition:opacity .15s,color .15s;z-index:3}.arrow:hover{opacity:1;color:var(--accent)}.arrow-left{left:10px}.arrow-right{right:10px}.title-hover{cursor:pointer}.title-hover:hover>span{color:var(--accent)}.lb-close:hover{opacity:1!important;color:var(--accent)!important}.btn{font-family:var(--font-display);font-weight:800;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:0;text-decoration:none;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}.btn-primary{background:transparent;color:var(--white);border:1px solid var(--white)}.btn-primary:hover{background:var(--accent);color:var(--onyx);border-color:var(--accent)}.btn-ghost{background:transparent;color:var(--white);border:none;font-size:13px;font-weight:700;letter-spacing:.08em;line-height:1;border-bottom:2px solid transparent;padding:0 0 4px}.btn-ghost:hover{border-bottom-color:var(--accent);box-shadow:0 2px 0 var(--bg-page),0 4px 0 var(--accent)}.btn:disabled{cursor:default}.logo .logo-pink{display:none}.logo:not(.bare):hover .logo-white{display:none}.logo:not(.bare):hover .logo-pink{display:block}.menu-btn,.mobile-menu{display:none}.resume-meta-line{display:contents}.tile{position:relative;border:none;padding:0;cursor:pointer;aspect-ratio:1/1;overflow:hidden;background:var(--bg-surface);text-align:left;container-type:inline-size;display:block}.tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--dur-standard) var(--ease-standard),filter var(--dur-standard) var(--ease-standard)}.tile .scrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(10,10,11,.92));opacity:0;transition:opacity var(--dur-standard) var(--ease-standard)}.tile .reveal{position:absolute;top:14px;left:14px;right:14px;opacity:0;transform:translateY(-6px);transition:opacity var(--dur-standard) var(--ease-standard),transform var(--dur-standard) var(--ease-standard)}.tile .tile-title{font-family:var(--font-display);font-weight:800;font-size:clamp(15px,8cqw,28px);letter-spacing:.05em;text-transform:uppercase;color:var(--white);line-height:1.35;display:block}.tile .reveal2{position:absolute;bottom:14px;left:14px;right:14px;display:flex;flex-direction:column;gap:2px;opacity:0;transition:opacity var(--dur-fast) var(--ease-standard)}.tile:hover img{transform:scale(1.06);filter:brightness(.6)}.tile:hover .scrim,.tile:hover .reveal,.tile:hover .reveal2{opacity:1}.tile:hover .reveal{transform:translateY(0)}.field{background:transparent;border:1px solid var(--border-hairline);color:var(--white);font-family:var(--font-body);font-size:15px;padding:12px 14px;outline:none;width:100%;box-sizing:border-box;transition:border-color var(--dur-fast) var(--ease-standard)}.field:focus{border-color:var(--accent)}.field-label{font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--rosy-granite);display:block;margin-bottom:6px}@media(max-width:1023px){.site-nav{font-size:13px!important;gap:10px!important}.site-header{padding:16px 32px!important}.logo img{height:52px!important}.lb-caption,.hero-caption{left:32px!important}}@media(max-width:720px){html{font-size:calc(16px * var(--m-font-scale, 1))}.site-header{padding:14px 20px!important;background:var(--onyx)!important;opacity:1!important;pointer-events:auto!important;align-items:center!important}.site-header.home{background:linear-gradient(180deg,rgba(10,10,11,.85),transparent)!important}.logo img{height:44px!important}.site-nav{display:none!important}.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:none;color:var(--white);font-size:26px;cursor:pointer}.mobile-menu{display:flex;position:fixed;inset:0;z-index:19;background:var(--onyx);flex-direction:column;justify-content:center;align-items:center;gap:28px;opacity:0;pointer-events:none;transition:opacity var(--dur-standard) var(--ease-standard)}.mobile-menu.open{opacity:1;pointer-events:auto}.mobile-menu a{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:.12em;text-transform:uppercase;color:var(--white);padding:8px 16px;min-height:44px;display:flex;align-items:center;border-bottom:none}.mobile-menu a.active{color:var(--accent)}.page-top{padding-top:72px!important}.page{padding:40px 20px 64px!important;gap:40px!important}.subhead{font-size:22px}.hero{height:var(--m-hero-h, 70vh)!important;min-height:360px!important}.hero-caption{left:16px!important;bottom:16px!important}.arrow{font-size:30px;padding:7px}.tile-grid{grid-template-columns:repeat(var(--m-tile-cols, 2),1fr)!important}.tile .scrim,.tile .reveal2{opacity:1}.tile .reveal{opacity:1;transform:none}.tile .tile-title{font-size:clamp(13px,8cqw,20px)}.tile img{transition:none}.tile:hover img{transform:none;filter:none}.gallery-row{flex-direction:column;justify-content:flex-start!important}.gallery-row>*{width:100%!important;flex:0 0 auto!important}.gallery-photo{height:auto!important}.gallery-note{height:auto!important;min-height:0;padding:28px 20px!important}.lb-caption{left:16px!important}.resume-head{flex-direction:column;align-items:flex-start!important;gap:16px!important;margin-bottom:-20px!important}.resume-cols{display:none!important}.resume-row{grid-template-columns:1fr!important;gap:4px!important}.resume-row .resume-meta-line{display:flex!important;gap:4px}.resume-row .resume-meta{font-size:13px!important}.resume-row .resume-meta+.resume-meta:before{content:"· ";color:var(--white)}.bio-grid{grid-template-columns:1fr!important;gap:24px!important}.headshot{width:min(60vw,260px)!important}.bio-text{margin-top:0!important}.bio-text .btn,.about .btn{width:100%}.contact{padding:48px 20px 80px!important}.contact-grid{grid-template-columns:1fr!important}.site-footer{padding:28px 20px!important;justify-content:center!important;flex-wrap:wrap;text-align:center}}
