*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--bg-charcoal:#121614;--accent-lime:#CCFF00;--text-clay:#E5E5E5;--text-muted:#8a8f8c;--border-dark:#2a2f2c;--border-brutal:#CCFF00;--font-display:'Syne', system-ui, sans-serif;--font-mono:'JetBrains Mono', 'Fira Code', monospace;--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:3rem;--space-xl:5rem;--space-2xl:8rem;--max-width:1400px;--brutal-shadow:4px 4px 0 var(--accent-lime);--brutal-shadow-dark:4px 4px 0 var(--border-dark);--transition-spring:cubic-bezier(0.34, 1.56, 0.64, 1);--transition-smooth:cubic-bezier(0.22, 1, 0.36, 1)}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-mono);background:var(--bg-charcoal);color:var(--text-clay);line-height:1.6;overflow-x:hidden;cursor:none}body.is-loaded{overflow-y:auto}body.no-cursor{cursor:auto}::selection{background:var(--accent-lime);color:var(--bg-charcoal)}a{color:inherit;text-decoration:none}ul{list-style:none}img,canvas{display:block;max-width:100%}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100%;left:var(--space-sm);z-index:10000;padding:var(--space-xs)var(--space-sm);background:var(--accent-lime);color:var(--bg-charcoal);font-family:var(--font-mono);font-weight:600;border:2px solid var(--bg-charcoal)}.skip-link:focus{top:var(--space-sm)}.cursor,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s var(--transition-spring),height .3s var(--transition-spring),background .2s ease,border-color .2s ease;will-change:transform}.cursor{width:8px;height:8px;background:var(--accent-lime)}.cursor-ring{width:36px;height:36px;border:1px solid var(--accent-lime);background:0 0}.cursor.is-hover{width:14px;height:14px;background:var(--bg-charcoal)}.cursor-ring.is-hover{width:56px;height:56px;background:var(--accent-lime);border-color:var(--bg-charcoal);mix-blend-mode:difference}.reveal{opacity:0;transform:translateY(24px)scale(.98);transition:opacity .7s var(--transition-smooth),transform .7s var(--transition-smooth),clip-path .8s var(--transition-smooth)}.reveal.is-visible{opacity:1;transform:translateY(0)scale(1)}.hero-title-line.reveal{clip-path:inset(0 100% 0 0)}.hero-title-line.reveal.is-visible{clip-path:inset(0 0 0 0)}.btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:.875rem 1.5rem;font-family:var(--font-mono);font-size:.875rem;font-weight:500;letter-spacing:.02em;border:2px solid var(--border-dark);transition:transform .25s var(--transition-spring),box-shadow .25s ease,background .2s ease,color .2s ease}.btn--primary{background:var(--accent-lime);color:var(--bg-charcoal);border-color:var(--accent-lime);box-shadow:var(--brutal-shadow-dark)}.btn--primary:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--border-dark)}.btn--ghost{background:0 0;color:var(--text-clay)}.btn--ghost:hover{border-color:var(--accent-lime);color:var(--accent-lime)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}body{cursor:auto}.cursor,.cursor-ring{display:none}.reveal{opacity:1;transform:none;clip-path:none}.loader{display:none!important}}@media(max-width:768px){body,body.no-cursor{cursor:auto}.cursor,.cursor-ring{display:none}}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:var(--space-sm)var(--space-md);mix-blend-mode:difference}.site-nav{display:flex;align-items:center;justify-content:space-between;max-width:var(--max-width);margin:0 auto}.nav-logo{font-family:var(--font-display);font-size:1.25rem;font-weight:800;color:var(--accent-lime);letter-spacing:-.02em}.nav-links{display:flex;gap:var(--space-md)}.nav-links a{font-size:.8125rem;letter-spacing:.05em;text-transform:uppercase;color:var(--text-clay);transition:color .2s ease}.nav-links a:hover{color:var(--accent-lime)}.section{padding:var(--space-xl)var(--space-md);max-width:var(--max-width);margin:0 auto}.section-header{margin-bottom:var(--space-lg)}.section-header--asymmetric{display:grid;grid-template-columns:auto 1fr;gap:var(--space-md);align-items:end}.section-index{font-family:var(--font-display);font-size:clamp(3rem,8vw,6rem);font-weight:800;line-height:.85;color:var(--border-dark);letter-spacing:-.04em}.section-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.03em;line-height:1}.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:calc(var(--space-xl) + 3rem);position:relative}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);align-items:center}.hero-eyebrow{font-size:.8125rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-sm)}.hero-title{font-family:var(--font-display);font-weight:800;line-height:.9;letter-spacing:-.04em;margin-bottom:var(--space-md)}.hero-title-line{display:block;font-size:clamp(3.5rem,10vw,7rem)}.hero-title-line--accent{color:var(--accent-lime);margin-left:clamp(1rem,8vw,4rem)}.hero-desc{max-width:32ch;font-size:.9375rem;color:var(--text-muted);margin-bottom:var(--space-lg);line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.hero-canvas-wrap{position:relative;aspect-ratio:1;border:2px solid var(--border-dark);box-shadow:var(--brutal-shadow);overflow:hidden}.hero-canvas{width:100%;height:100%}.hero-scroll-hint{position:absolute;bottom:var(--space-lg);left:var(--space-md);display:flex;align-items:center;gap:var(--space-sm);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted)}.hero-scroll-line{display:block;width:48px;height:1px;background:var(--accent-lime);animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.5);opacity:.4}}.about-lead{font-size:clamp(1.125rem,2.5vw,1.5rem);max-width:55ch;line-height:1.5;margin-bottom:var(--space-xl);font-family:var(--font-display);font-weight:700}.about-lead em{color:var(--accent-lime);font-style:normal}.competency-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-md)}.competency-card{grid-column:span 4;padding:var(--space-lg);border:2px solid var(--border-dark);background:rgba(255,255,255,2%);transition:transform .3s var(--transition-spring),border-color .2s ease}.competency-card:hover{border-color:var(--accent-lime);transform:translateY(-4px)}.competency-card--offset{margin-top:var(--space-lg)}.competency-index{display:block;font-family:var(--font-display);font-size:2rem;font-weight:800;color:var(--accent-lime);margin-bottom:var(--space-sm)}.competency-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;margin-bottom:var(--space-sm)}.competency-desc{font-size:.875rem;color:var(--text-muted);margin-bottom:var(--space-md);line-height:1.7}.competency-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.competency-tags li{font-size:.75rem;padding:.25rem .625rem;border:1px solid var(--border-dark);color:var(--text-muted)}.timeline-intro{font-size:.875rem;color:var(--text-muted);margin-bottom:var(--space-lg);max-width:40ch}.timeline-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.timeline-folder{border:2px solid var(--border-dark);background:rgba(255,255,255,.015);transition:border-color .2s ease}.timeline-folder.is-open{border-color:var(--accent-lime)}.timeline-folder-trigger{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-md);align-items:center;width:100%;padding:var(--space-md);background:0 0;border:none;color:inherit;font-family:inherit;text-align:left;cursor:none}.no-cursor .timeline-folder-trigger{cursor:pointer}.timeline-folder-trigger:focus-visible{outline:2px solid var(--accent-lime);outline-offset:-2px}.timeline-folder-index{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--border-dark);transition:color .2s ease}.timeline-folder.is-open .timeline-folder-index,.timeline-folder-trigger:hover .timeline-folder-index{color:var(--accent-lime)}.timeline-folder-meta{display:flex;flex-direction:column;gap:.25rem}.timeline-folder-title{font-family:var(--font-display);font-size:1.125rem;font-weight:700}.timeline-folder-org{font-size:.8125rem;color:var(--text-muted)}.timeline-folder-period{font-size:.75rem;color:var(--accent-lime);letter-spacing:.05em}.timeline-folder-icon{font-size:1.5rem;font-weight:300;color:var(--accent-lime);transition:transform .3s var(--transition-spring)}.timeline-folder.is-open .timeline-folder-icon{transform:rotate(45deg)}.timeline-folder-panel{overflow:hidden;max-height:0;transition:max-height .5s var(--transition-smooth)}.timeline-folder.is-open .timeline-folder-panel{max-height:600px}.timeline-folder-panel[hidden]{display:block}.timeline-folder-summary{padding:0 var(--space-md)var(--space-md);font-size:.875rem;color:var(--text-muted);line-height:1.7;border-top:1px solid var(--border-dark);padding-top:var(--space-md);margin:0 var(--space-md)}.timeline-folder-details{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);padding:var(--space-md);border-top:1px solid var(--border-dark);margin:0 var(--space-md)var(--space-md)}.timeline-detail-label{font-size:.6875rem;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-lime);margin-bottom:var(--space-xs)}.timeline-achievements li{font-size:.8125rem;color:var(--text-muted);padding-left:1rem;position:relative;margin-bottom:.375rem}.timeline-achievements li::before{content:'→';position:absolute;left:0;color:var(--accent-lime)}.timeline-stack{display:flex;flex-wrap:wrap;gap:.375rem}.timeline-stack li{font-size:.75rem;padding:.2rem .5rem;border:1px solid var(--border-dark)}.timeline-detail-block--metrics{grid-column:1/-1}.timeline-metrics{display:flex;gap:var(--space-lg)}.timeline-metric dt{font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.timeline-metric dd{font-family:var(--font-display);font-size:1.75rem;font-weight:800;color:var(--accent-lime)}.projects-intro{font-size:.875rem;color:var(--text-muted);margin-bottom:var(--space-lg);max-width:50ch}.projects-intro a{color:var(--accent-lime);text-decoration:underline;text-underline-offset:3px}.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(180px,auto);gap:var(--space-md)}.bento-card{display:block;border:2px solid var(--border-dark);background:rgba(255,255,255,2%);overflow:hidden;transition:border-color .2s ease,transform .3s var(--transition-spring);cursor:none}.no-cursor .bento-card{cursor:pointer}.bento-card--large{grid-column:span 2;grid-row:span 2}.bento-card--medium{grid-column:span 2}.bento-card--small{grid-column:span 1}.bento-card-inner{padding:var(--space-md);height:100%;display:flex;flex-direction:column;position:relative}.bento-card-index{font-family:var(--font-display);font-size:.75rem;font-weight:800;color:var(--border-dark);letter-spacing:.1em}.bento-card-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700;margin:var(--space-xs)0}.bento-card-desc{font-size:.8125rem;color:var(--text-muted);line-height:1.6;flex:1}.bento-card-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:var(--space-sm)}.bento-card-tags li{font-size:.6875rem;padding:.15rem .4rem;border:1px solid var(--border-dark);color:var(--text-muted)}.bento-card-arrow{position:absolute;top:var(--space-md);right:var(--space-md);font-size:1.25rem;color:var(--accent-lime);opacity:0;transform:translate(-4px,4px);transition:opacity .2s ease,transform .3s var(--transition-spring)}.bento-card:hover .bento-card-arrow{opacity:1;transform:translate(0,0)}.contact{max-width:none;padding:0;padding-bottom:var(--space-lg)}.contact-body{max-width:var(--max-width);margin:0 auto;padding:var(--space-xl)var(--space-md)0}.contact-lead{font-family:var(--font-display);font-size:clamp(1.25rem,3vw,2rem);font-weight:700;max-width:40ch;margin-bottom:var(--space-lg)}.contact-links{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl)}.contact-link{display:grid;grid-template-columns:120px 1fr;gap:var(--space-sm);padding:var(--space-md);border:2px solid var(--border-dark);transition:border-color .2s ease,transform .25s var(--transition-spring)}.contact-link:hover{border-color:var(--accent-lime);transform:translateX(4px)}.contact-link-label{font-size:.6875rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted)}.contact-link-value{font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:var(--accent-lime)}.contact-footer-meta{display:flex;justify-content:space-between;padding-top:var(--space-lg);border-top:1px solid var(--border-dark);font-size:.75rem;color:var(--text-muted)}.contact-footer-tag{color:var(--accent-lime)}@media(max-width:1024px){.hero-grid{grid-template-columns:1fr}.hero-canvas-wrap{max-height:400px}.hero-title-line--accent{margin-left:2rem}.competency-card{grid-column:span 6}.competency-card--offset{margin-top:0}.bento-grid{grid-template-columns:repeat(2,1fr)}.bento-card--large{grid-column:span 2;grid-row:span 1}.bento-card--medium{grid-column:span 2}}@media(max-width:768px){.nav-links{display:none}.section{padding:var(--space-lg)var(--space-sm)}.competency-grid{grid-template-columns:1fr}.competency-card{grid-column:span 1}.timeline-grid{grid-template-columns:1fr}.timeline-folder-details{grid-template-columns:1fr}.bento-grid{grid-template-columns:1fr}.bento-card--large,.bento-card--medium,.bento-card--small{grid-column:span 1;grid-row:span 1}.contact-link{grid-template-columns:1fr;gap:.25rem}.hero-scroll-hint{display:none}}.loader{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:var(--bg-charcoal);transition:clip-path .8s var(--transition-smooth),opacity .4s ease .6s;clip-path:inset(0 0 0 0)}.loader.is-done{clip-path:inset(0 0 100% 0);opacity:0;pointer-events:none}.loader-inner{position:relative;width:min(90vw,560px)}.loader-terminal{font-family:var(--font-mono);font-size:clamp(.75rem,2vw,.9375rem);line-height:2}.loader-line{opacity:0;transform:translateX(-8px);color:var(--text-muted);transition:opacity .3s ease,transform .3s ease}.loader-line.is-visible{opacity:1;transform:translateX(0)}.loader-line--accent{color:var(--accent-lime);font-weight:600}.loader-glitch{position:absolute;inset:-20px;background:repeating-linear-gradient( 0,transparent,transparent 2px,rgba(204,255,0,3%) 2px,rgba(204,255,0,3%) 4px );opacity:0;pointer-events:none}.loader.is-glitching .loader-glitch{animation:loaderGlitch .3s steps(4)forwards}@keyframes loaderGlitch{0%{opacity:0;transform:translateX(0)}25%{opacity:1;transform:translateX(-4px)}50%{opacity:.8;transform:translateX(4px)}75%{opacity:1;transform:translateX(-2px)}100%{opacity:0;transform:translateX(0)}}.bento-card--tilt{perspective:800px}.bento-card--tilt .bento-card-inner{transition:transform .4s var(--transition-spring);transform-style:preserve-3d}.bento-card--tilt:hover{border-color:var(--accent-lime)}.bento-card--tilt:hover .bento-card-inner{transform:rotateY(-4deg)rotateX(4deg)translateZ(10px)}.bento-card--clip .bento-card-desc{clip-path:inset(0 0 100% 0);transition:clip-path .5s var(--transition-smooth)}.bento-card--clip:hover{border-color:var(--accent-lime)}.bento-card--clip:hover .bento-card-desc{clip-path:inset(0 0 0 0)}.bento-card--stat:hover{border-color:var(--accent-lime)}.bento-card-stats{display:flex;gap:var(--space-md);margin-top:var(--space-sm);font-size:.8125rem;color:var(--text-muted)}.bento-stat-value{color:var(--accent-lime);font-weight:600}.bento-card--stat.is-counted .bento-stat-value{animation:statPop .4s var(--transition-spring)}@keyframes statPop{0%{transform:scale(1)}50%{transform:scale(1.2)}100%{transform:scale(1)}}.marquee-wrap{overflow:hidden;border-top:2px solid var(--border-dark);border-bottom:2px solid var(--border-dark);padding:var(--space-md)0;background:rgba(204,255,0,3%)}.marquee{overflow:hidden;white-space:nowrap}.marquee-track{display:inline-flex;gap:var(--space-xl);will-change:transform}.marquee-track span{font-family:var(--font-display);font-size:clamp(3rem,12vw,8rem);font-weight:800;letter-spacing:-.04em;color:var(--accent-lime);text-transform:uppercase;flex-shrink:0}@media(prefers-reduced-motion:reduce){.marquee-track{animation:none!important;transform:none!important}}@media(max-width:768px){.marquee-track span{font-size:clamp(2rem,10vw,4rem)}}