:root,[data-theme=dark]{--black: #0c0e0e;--surface: #0c0e0e;--surface-raised: #141616;--border: #1a1c1c;--border-visible: #2a2d2d;--text-disabled: #5c5c5c;--text-secondary: #8f9494;--text-primary: #e0e4e4;--text-display: #f4f6f6;--accent: #576BFF;--accent-subtle: rgba(87, 107, 255, .15);--interactive: #5B9BF6;--space-2xs: .125rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--radius-xs: 3px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--dur-fast: 80ms;--dur-base: .11s;--ease: cubic-bezier(.25, .1, .25, 1)}[data-theme=light]{--black: #F5F5F5;--surface: #FFFFFF;--surface-raised: #F0F0F0;--border: #E8E8E8;--border-visible: #CCCCCC;--text-disabled: #999999;--text-secondary: #666666;--text-primary: #1A1A1A;--text-display: #000000;--interactive: #007AFF}*{box-sizing:border-box;margin:0;padding:0}html{font-family:Space Grotesk,system-ui,sans-serif;background:var(--black);color:var(--text-primary);line-height:1.5;scroll-behavior:smooth;font-size:clamp(14px,.45vw + 11.5px,20px)}body{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:var(--space-xl)}.dot-grid{background-image:radial-gradient(circle,var(--border-visible) 1px,transparent 1px);background-size:16px 16px;background-position:center top}.site-wrapper{width:100%;min-height:calc(100vh - (var(--space-xl) * 2));background:var(--black);border:1px solid var(--border-visible);border-radius:var(--radius-md);position:relative;display:grid;grid-template-columns:1fr}@media(min-width:1024px){.site-wrapper{grid-template-columns:350px 1fr;width:min(100%,calc((100vh - var(--space-xl) * 2) * 16 / 9));aspect-ratio:16 / 9;min-height:0}}.site-wrapper:before,.site-wrapper:after{content:"";position:absolute;width:8px;height:8px;border:1px solid var(--accent);z-index:10}.site-wrapper:before{top:6px;left:6px;border-right:none;border-bottom:none;border-top-left-radius:var(--radius-xs)}.site-wrapper:after{bottom:6px;right:6px;border-left:none;border-top:none;border-bottom-right-radius:var(--radius-xs)}h1,h2,h3,h4,h5,h6{color:var(--text-display);font-weight:500}.font-display{font-family:Doto,Geist Mono,monospace;font-weight:600;letter-spacing:-.03em}.font-serif-name{font-family:"Instrument Serif",serif;font-weight:400;font-style:normal;letter-spacing:.02em}.font-mono{font-family:Geist Mono,monospace;font-weight:500}.label-text{font-family:Geist Mono,monospace;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary)}a{color:var(--text-primary);text-decoration:none;transition:color var(--dur-base) var(--ease),opacity var(--dur-fast) var(--ease)}a:hover{color:var(--accent)}a:active{opacity:.7}button{cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius-xs)}::selection{background:var(--accent);color:#fff}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}.left-panel{padding:var(--space-xl);border-right:1px solid var(--border-visible);position:sticky;top:0;height:100%;overflow-y:auto;display:flex;flex-direction:column;scrollbar-width:none}.left-panel::-webkit-scrollbar{display:none}.right-panel{overflow-y:auto;height:100%;scrollbar-width:none;display:flex;flex-direction:column}.right-panel::-webkit-scrollbar{display:none}@media(max-width:1023px){.left-panel{border-right:none;border-bottom:1px solid var(--border-visible);position:static;height:auto;overflow-y:visible}.right-panel{height:auto;overflow-y:visible}}.header{display:flex;flex-direction:column;height:100%}.header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2xl)}.theme-toggle{background:none;border:none;display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;padding:var(--space-xs)}.toggle-track{width:32px;height:16px;background:var(--surface-raised);border:1px solid var(--border-visible);border-radius:999px;position:relative;transition:border-color var(--dur-base) var(--ease),background var(--dur-base) var(--ease)}.theme-toggle:hover .toggle-track{border-color:var(--accent)}.theme-toggle:active .toggle-track{background:var(--border-visible)}.toggle-thumb{width:10px;height:10px;background:var(--text-primary);border-radius:50%;position:absolute;top:2px;left:2px;transition:transform var(--dur-base) var(--ease),background var(--dur-base) var(--ease)}.theme-toggle:hover .toggle-thumb{background:var(--accent)}.theme-toggle:active .toggle-thumb{transform:scale(.8)}html[data-theme=light] .toggle-thumb{transform:translate(16px);background:var(--text-display)}html[data-theme=light] .theme-toggle:active .toggle-thumb{transform:translate(16px) scale(.8)}.hero{margin-bottom:var(--space-2xl)}.hero-avatar{border-radius:50%;display:block;margin-bottom:var(--space-md);transition:transform var(--dur-base) var(--ease),filter var(--dur-base) var(--ease)}.hero-avatar:hover{transform:scale(1.04) rotate(-2deg);filter:brightness(1.05)}.left-panel--compact .hero-avatar{width:48px;height:48px;margin-bottom:var(--space-sm)}h1{font-size:var(--space-3xl);line-height:1;margin-bottom:var(--space-sm)}.subtitle{font-size:1rem;line-height:1.5;color:var(--text-secondary)}.status-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--space-xl)}.status-item{background:var(--black);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.status-value{font-size:.8125rem;color:var(--text-primary)}.status-value.success{color:#4a9e5c}.status-item--button{background:var(--black);border:none;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background var(--dur-base) var(--ease)}.status-item--button:hover,.status-item--button:focus-visible{background:var(--surface-raised)}.status-item--button:hover .status-value,.status-item--button:focus-visible .status-value{color:var(--accent)}.status-item__arrow{display:inline-block;margin-left:var(--space-xs);color:var(--text-secondary);transition:transform var(--dur-base) var(--ease),color var(--dur-base) var(--ease)}.status-item--button:hover .status-item__arrow,.status-item--button:focus-visible .status-item__arrow{transform:translate(2px);color:var(--accent)}.contact-links{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-xl);font-size:.8125rem}.nav-links.vertical{display:flex;flex-direction:column;gap:var(--space-md);margin-top:auto;padding-top:var(--space-2xl)}.nav-link{font-size:.875rem;padding-bottom:var(--space-xs);border-bottom:1px solid transparent;width:fit-content;transition:color var(--dur-base) var(--ease),border-bottom-color var(--dur-base) var(--ease),transform var(--dur-base) var(--ease)}.nav-link:active{transform:translate(2px) scale(.98)}.nav-link--tooltip{position:relative}@media(hover:hover)and (pointer:fine){.nav-link--tooltip:after{content:attr(data-tooltip);position:absolute;left:calc(100% + var(--space-sm));top:50%;transform:translateY(-50%) translate(-4px);padding:6px 10px;border:1px solid var(--border-visible);background:var(--surface-raised);color:var(--text-display);font-family:Geist Mono,monospace;font-size:11px;line-height:1;letter-spacing:.04em;white-space:nowrap;border-radius:var(--radius-xs);opacity:0;pointer-events:none;transition:opacity var(--dur-fast) ease,transform var(--dur-fast) ease;z-index:20}.nav-link--tooltip:hover:after,.nav-link--tooltip:focus-visible:after{opacity:1;transform:translateY(-50%) translate(0)}}.nav-link:hover{color:var(--text-display);border-bottom-color:var(--accent);transform:translate(2px)}.socials{display:flex;gap:var(--space-md)}.social-link{color:var(--text-secondary);display:inline-flex;transition:color var(--dur-base) var(--ease),transform var(--dur-base) var(--ease)}.social-link:hover{color:var(--accent);transform:translateY(-2px)}.social-link:active{transform:translateY(0) scale(.94)}.content{padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-3xl);flex:1}.section-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl)}.line{flex:1;height:1px;background:var(--border)}.project-list,.exp-list,.skills-grid{display:flex;flex-direction:column;gap:var(--space-xl)}.project-card{display:grid;gap:var(--space-sm)}@media(min-width:640px){.project-card{grid-template-columns:200px 1fr;gap:var(--space-xl)}}.project-meta{display:flex;flex-direction:column;gap:var(--space-sm)}.tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.tag{font-family:Geist Mono,monospace;font-weight:500;font-size:10px;text-transform:uppercase;padding:2px 6px;border:1px solid var(--border-visible);border-radius:var(--radius-xs);color:var(--text-secondary);transition:border-color var(--dur-base) var(--ease),color var(--dur-base) var(--ease)}.project-card:hover .tag{border-color:var(--text-disabled);color:var(--text-primary)}.tag-highlight{border-color:var(--accent-subtle);color:var(--accent)}.project-content h3{font-size:1.125rem;margin-bottom:var(--space-xs)}.project-title{position:relative;display:inline-block}.project-title:after{content:"";position:absolute;width:100%;transform:scaleX(0);height:1px;bottom:0;left:0;background-color:var(--accent);transform-origin:bottom right;transition:transform var(--dur-base) ease-out}.project-title:hover:after{transform:scaleX(1);transform-origin:bottom left}.project-content p{color:var(--text-secondary);font-size:.9375rem}.exp-card{padding-left:var(--space-md);border-left:1px solid var(--border-visible);position:relative;transition:border-left-color var(--dur-base) var(--ease)}.exp-card:hover{border-left-color:var(--accent)}.exp-card:before{content:"";position:absolute;left:-4px;top:6px;width:7px;height:7px;background:var(--black);border:1px solid var(--text-disabled);border-radius:50%;transition:border-color var(--dur-base) var(--ease),background var(--dur-base) var(--ease),transform var(--dur-base) var(--ease)}.exp-card:hover:before{border-color:var(--accent);background:var(--accent);transform:scale(1.15)}.exp-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-xs);gap:var(--space-md)}.exp-header h3{font-size:1rem}.exp-at{color:var(--text-secondary);font-weight:400}.exp-card p{font-size:.9375rem;color:var(--text-secondary)}.skills-grid{display:grid;gap:var(--space-md)}.skill-group{display:grid;gap:var(--space-xs);padding-bottom:var(--space-sm);border-bottom:1px dotted var(--border)}@media(min-width:640px){.skill-group{grid-template-columns:150px 1fr;align-items:baseline}}.skill-items{font-size:.8125rem;color:var(--text-primary)}.footer{padding:0 var(--space-xl) var(--space-xl);margin-top:auto}.footer-content{display:flex;justify-content:space-between;padding-top:var(--space-md)}.nav-link.active{color:var(--text-display);border-bottom-color:var(--accent)}.nav-link--button{background:none;border:none;border-bottom:1px solid transparent;font:inherit;color:inherit;cursor:pointer;text-align:left}.nav-clip-indicator{position:sticky;bottom:0;margin-top:var(--space-sm);padding:6px 0;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);text-align:center;background:linear-gradient(to top,var(--black) 55%,transparent);opacity:0;transform:translateY(4px);transition:opacity var(--dur-base) ease,transform var(--dur-base) ease;pointer-events:none}.left-panel.is-clipped .nav-clip-indicator{opacity:1;transform:translateY(0)}.left-panel.is-clipped.is-at-bottom .nav-clip-indicator{opacity:0}.resume-dialog{padding:0;border:1px solid var(--border-visible);border-radius:var(--radius-lg);background:var(--black);color:var(--text-primary);max-width:min(440px,calc(100vw - var(--space-xl) * 2));width:100%;margin:auto;position:fixed;inset:0}.resume-dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}[data-theme=light] .resume-dialog::backdrop{background:#00000059}.resume-dialog__inner{position:relative;padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.resume-dialog__close{position:absolute;top:var(--space-sm);right:var(--space-sm);background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:11px;padding:4px 6px}.resume-dialog__close:hover{color:var(--accent)}.resume-dialog__header{display:flex;align-items:center;gap:var(--space-md)}.resume-dialog__title{font-family:"Instrument Serif",serif;font-weight:400;font-size:1.75rem;line-height:1.1;color:var(--text-display)}.resume-dialog__subtitle{font-size:.875rem;color:var(--text-secondary);margin-bottom:var(--space-sm)}.resume-dialog__link{color:var(--text-primary);border-bottom:1px dotted var(--border-visible)}.resume-dialog__link:hover{color:var(--accent);border-bottom-color:var(--accent)}.resume-dialog__options{display:flex;flex-direction:column;gap:var(--space-sm)}.resume-option{display:flex;flex-direction:column;gap:2px;padding:var(--space-md);border:1px solid var(--border-visible);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);transition:border-color var(--dur-base) ease,background var(--dur-base) ease,color var(--dur-base) ease,transform var(--dur-base) var(--ease)}.resume-option:hover,.resume-option:focus-visible{border-color:var(--accent);background:var(--surface-raised);color:var(--text-display);transform:translateY(-2px)}.resume-option:active{transform:translateY(0)}.resume-option__label{font-size:.8125rem;letter-spacing:.06em}.resume-option:hover .resume-option__label,.resume-option:focus-visible .resume-option__label{color:var(--accent)}.resume-option__desc{font-family:Space Grotesk,system-ui,sans-serif;font-size:12px;color:var(--text-secondary)}@media(max-width:1023px){body{padding:var(--space-md)}.site-wrapper{min-height:calc(100vh - (var(--space-md) * 2))}.left-panel--compact .header-top,.left-panel--compact .hero{margin-bottom:var(--space-md)}.left-panel--compact h1{font-size:var(--space-xl)}.left-panel--compact .subtitle{font-size:.8125rem}.left-panel--compact .header-details{display:none}.left-panel--compact .nav-links.vertical{flex-direction:row;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);padding-top:0;margin-top:0}}@media(max-width:480px){h1{font-size:var(--space-2xl)}.nav-links.vertical{flex-direction:row;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);padding-top:var(--space-lg)}}
