:root{--accent-dark: #5eead4;--accent-dark-ink: #0b1f1b;--accent-light: #0d9488;--accent-light-ink: #ffffff;--mono: ui-monospace, "SF Mono", "Cascadia Code", "Consolas", monospace}[data-theme=dark]{--bg: #16181d;--surface: #21242c;--surface-2: #2a2e38;--text: #f4f4f5;--text-dim: rgba(255, 255, 255, .6);--text-faint: rgba(255, 255, 255, .32);--border: rgba(255, 255, 255, .2);--accent: var(--accent-dark);--accent-ink: var(--accent-dark-ink);--ghost-text: #f4f4f5;--ghost-border: rgba(255, 255, 255, .35);--grid-dot: rgba(255, 255, 255, .12);--card-shadow: rgba(0, 0, 0, .35)}[data-theme=light]{--bg: #fbfaf8;--surface: #ffffff;--surface-2: #f2f1ee;--text: #1a1a1a;--text-dim: #5f5f5a;--text-faint: #9a9a94;--border: rgba(0, 0, 0, .12);--accent: var(--accent-light);--accent-ink: var(--accent-light-ink);--ghost-text: #1a1a1a;--ghost-border: rgba(0, 0, 0, .28);--grid-dot: rgba(0, 0, 0, .12);--card-shadow: rgba(0, 0, 0, .12)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background .25s ease,color .25s ease}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(circle,var(--grid-dot) 1px,transparent 1px);background-size:26px 26px;-webkit-mask-image:radial-gradient(ellipse 90% 85% at 50% -5%,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse 90% 85% at 50% -5%,#000 30%,transparent 80%)}.wrap{position:relative;z-index:1;max-width:920px;margin:0 auto}@media(min-width:681px){.wrap{zoom:1.15}}a{color:inherit;text-decoration:none}a:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:.5px solid var(--border);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px)}.nav-logo{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.nav-right{display:flex;align-items:center;gap:22px}.nav-links{display:flex;gap:20px}.nav-link{font-size:13px;color:var(--text-dim);transition:color .15s;text-transform:uppercase;letter-spacing:.08em}.nav-link:hover{color:var(--text)}.theme-toggle{background:var(--surface-2);border:.5px solid var(--border);color:var(--text);width:34px;height:34px;border-radius:99px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:background .15s}.theme-toggle:hover{background:var(--border)}.hero{padding:64px 28px 0;text-align:center;border-bottom:.5px solid var(--border)}.hero-eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.hero-name{font-size:50px;font-weight:600;line-height:1.05;letter-spacing:-.01em;margin-bottom:10px}.hero-role{font-size:17px;color:var(--text-dim);margin-bottom:20px}.tech-pills{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}.cta-band{margin-top:28px;padding:0 0 44px;display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.pill{font-size:12px;padding:4px 11px;border-radius:99px;border:.5px solid var(--border);color:var(--text-dim)}.pill.accent{border-color:transparent;color:var(--accent-ink);background:var(--accent)}.btn-solid{font-size:13px;padding:10px 18px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:opacity .15s}.btn-solid:hover{opacity:.88}.btn-ghost{font-size:13px;padding:10px 18px;border-radius:8px;background:transparent;color:var(--ghost-text);border:1px solid var(--ghost-border);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:border-color .15s}.btn-ghost:hover{border-color:var(--accent)}.about-photo{width:135px;height:162px;border-radius:18px;background:linear-gradient(160deg,var(--surface-2),var(--surface));border:.5px solid var(--border);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent);display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}.about-photo img{width:100%;height:100%;object-fit:cover}.about-photo .placeholder{font-size:40px;color:var(--text-faint)}.section{padding:48px 28px;border-bottom:.5px solid var(--border)}.section-label{font-family:var(--mono);font-size:14.52px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.section-label:before{content:"[ ";color:var(--accent)}.section-label:after{content:" ]";color:var(--accent)}.section-sub{font-size:13px;color:var(--text-faint);margin:6px 0 24px}.section-sub:first-letter{text-transform:uppercase}.about-grid{margin-top:18px;display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center}.about-text{font-size:15px;color:var(--text-dim);line-height:1.75;max-width:600px}.about-text+.about-text{margin-top:14px}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px}.work-card{position:relative;background:var(--surface);border:.5px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .18s,transform .18s,box-shadow .18s}.work-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:0 12px 30px var(--card-shadow)}.work-card.wide{grid-column:span 2}.work-card:not(.wide){display:flex;flex-direction:column}.work-card:not(.wide) .work-body{flex:1;display:flex;flex-direction:column}.work-card:not(.wide) .work-desc{margin-bottom:16px}.work-card:not(.wide) .work-footer{margin-top:auto}.work-thumb{width:100%;aspect-ratio:16 / 9;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}.work-card.wide .work-thumb{aspect-ratio:2.5 / 1}.work-thumb img{width:100%;height:100%;object-fit:cover;object-position:center}.thumb-ph{font-size:11px;color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:6px}.thumb-ph i{font-size:22px}.work-body{padding:16px 18px}.work-tags{display:flex;gap:6px;margin-bottom:9px;flex-wrap:wrap}.work-tag{font-size:11px;padding:2px 8px;border-radius:99px;border:.5px solid var(--border);color:var(--accent)}.work-tag.neutral{color:var(--text-faint)}.work-name{font-size:16px;font-weight:600;margin-bottom:5px;color:var(--accent)}.work-desc{font-size:13px;color:var(--text-dim);line-height:1.6}.ww-titles{display:flex;flex-direction:column;gap:9px;margin-top:14px;padding-top:14px;border-top:.5px solid var(--border)}.ttl-group{display:flex;gap:12px;align-items:baseline}.ttl-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);min-width:90px;white-space:nowrap}.ttl-label.dim{color:var(--text-faint)}.ttl-items{font-size:14px}.ttl-name{color:var(--text)}.ttl-sep{color:var(--text-faint);margin:0 7px}.ttl-press{font-size:11px;color:var(--text-faint);margin-left:7px;border-bottom:1px dotted var(--text-faint);transition:color .15s,border-color .15s}.ttl-press:hover{color:var(--accent);border-color:var(--accent)}.work-footer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:16px -18px -16px;padding:7px 18px;border-top:.5px solid var(--border);background:color-mix(in srgb,var(--text) 4%,transparent)}.work-footer-label{font-size:12px;color:var(--text-faint);margin-right:2px}.work-link{position:relative;overflow:hidden;font-size:12px;color:var(--text-dim);display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:7px;background:var(--surface-2);border:.5px solid transparent;transition:color .15s,border-color .15s,background .15s}.work-link>*{position:relative;z-index:1}.work-link:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:linear-gradient(115deg,transparent 15%,color-mix(in srgb,var(--accent) 45%,transparent) 50%,transparent 65%);transform:translate(-130%)}@keyframes glow-sweep{0%{transform:translate(-130%)}45%,to{transform:translate(130%)}}.work-card:hover .work-link:before{animation:glow-sweep 1.45s ease-in infinite}.work-card:hover .work-link{border-color:var(--accent)}.work-link:hover{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface-2))}.lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px}.lab-card{position:relative;background:var(--surface);border:.5px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .18s,transform .18s,box-shadow .18s}.lab-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:0 12px 30px var(--card-shadow)}.work-card:hover:before,.lab-card:hover:before{opacity:1}.lab-thumb{width:100%;min-height:120px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}.lab-thumb img{width:100%;height:auto;display:block}.lab-body{padding:14px 16px}.lab-name{font-size:14px;font-weight:500;margin-bottom:3px}.lab-desc{font-size:12px;color:var(--text-dim);line-height:1.55}.lab-meta{font-size:11px;color:var(--text-faint);margin-top:8px}.lab-card{display:flex;flex-direction:column}.lab-body{flex:1;display:flex;flex-direction:column}.lab-card .work-footer{margin:auto 0 0;padding:8px 16px}.lab-card:hover .work-link:before{animation:glow-sweep 1.45s ease-in infinite}.lab-card:hover .work-link{border-color:var(--accent)}.contact-section{padding:52px 28px 60px}.contact-heading{font-size:26px;font-weight:500;margin:6px 0 8px}.contact-sub{font-size:15px;color:var(--text-dim);margin-bottom:26px}.contact-links{display:flex;gap:10px;flex-wrap:wrap}.contact-link{font-size:13px;padding:10px 18px;border-radius:8px;border:.5px solid var(--border);color:var(--text-dim);display:flex;align-items:center;gap:7px;transition:border-color .15s,color .15s}.contact-link:hover{border-color:var(--accent);color:var(--text)}.contact-link.primary{border-color:transparent;background:var(--accent);color:var(--accent-ink);font-weight:500}.contact-link.primary:hover{opacity:.88;color:var(--accent-ink)}.footer{padding:20px 28px;display:flex;justify-content:space-between}.footer-copy,.footer-link{font-size:12px;color:var(--text-faint)}@media(max-width:680px){.hero-name{font-size:36px}.about-grid{grid-template-columns:1fr}.about-photo{display:none}.work-grid,.lab-grid{grid-template-columns:1fr}.work-card.wide{grid-column:span 1}.nav-links{display:none}}:root{--accent-dark: var(--accentDark);--accent-dark-ink: var(--accentDarkInk);--accent-light: var(--accentLight);--accent-light-ink: var(--accentLightInk)}
