:root{--ink: #0a0a13;--ink-raised: #10101d;--paper: #e4e4f0;--muted: #8a8aa8;--line: rgba(150, 150, 220, .12);--line-strong: rgba(150, 150, 220, .26);--violet: #8b7cff;--blue: #5ac8ff;--accent: var(--violet);--accent-soft: rgba(139, 124, 255, .13);--gradient: linear-gradient(100deg, var(--violet), var(--blue));--font-display: "Space Grotesk", "Helvetica Neue", sans-serif;--font-body: "Inter", "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;overflow-y:scroll}body{background:var(--ink);color:var(--paper);font-family:var(--font-body);font-weight:300;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}::selection{background:var(--violet);color:var(--ink)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden}.stars{position:absolute;top:0;right:0;bottom:0;left:0}.grid-layer{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(139,124,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(139,124,255,.05) 1px,transparent 1px);background-size:46px 46px}.grid-layer.bright{background-image:linear-gradient(rgba(139,124,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(139,124,255,.22) 1px,transparent 1px);-webkit-mask-image:radial-gradient(280px circle at var(--mx, -400px) var(--my, -400px),black,transparent 72%);mask-image:radial-gradient(280px circle at var(--mx, -400px) var(--my, -400px),black,transparent 72%)}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(110% 90% at 50% 8%,transparent 55%,rgba(4,4,10,.55)),linear-gradient(rgba(4,4,10,.25),transparent 18%)}.page{max-width:960px;margin:0 auto;padding:0 28px 14vh}.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;position:relative;transition:min-height 1.25s cubic-bezier(.16,1,.3,1)}.hero.intro-complete{min-height:clamp(260px,42svh,390px)}.hero-title{--hero-rest-scale: .68;position:relative;left:50%;font-family:var(--font-display);font-weight:600;font-size:clamp(2.7rem,9vw,7rem);line-height:1.04;letter-spacing:-.035em;display:flex;flex-wrap:wrap;transform:translate(-50%) scale(1);transform-origin:left center;transition:left 1.25s cubic-bezier(.16,1,.3,1),transform 1.25s cubic-bezier(.16,1,.3,1)}.hero.intro-complete .hero-title{left:0;transform:translate(0) scale(var(--hero-rest-scale))}.hero-letter{display:inline-block;opacity:0;transform:translateY(.55em);filter:blur(6px);animation:letter-rise 1.15s cubic-bezier(.16,1,.3,1) forwards}.hero-letter.space{width:.26em}@keyframes letter-rise{to{opacity:1;transform:translateY(0);filter:blur(0)}}.rail{position:fixed;left:max(18px,calc(50vw - 620px));top:50%;transform:translate(-16px,-50%);display:flex;flex-direction:column;gap:16px;z-index:10;opacity:0;pointer-events:none;transition:opacity .5s ease,transform .5s cubic-bezier(.16,1,.3,1)}.rail.visible{opacity:1;transform:translateY(-50%);pointer-events:auto}.rail-item{display:flex;align-items:center;gap:9px;background:none;border:none;cursor:pointer;font-family:var(--font-mono);color:var(--muted);padding:0;transition:color .3s ease}.rail-num{font-size:.58rem;letter-spacing:.08em}.rail-tick{position:relative;width:28px;height:1px}.rail-tick:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:currentColor;transform:scaleX(.4286);transform-origin:left center;transition:transform .35s cubic-bezier(.16,1,.3,1)}.rail-label{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;opacity:0;transform:translate(-6px);transition:opacity .3s ease,transform .3s ease;white-space:nowrap}.rail-item:hover{color:var(--paper)}.rail-item.active{color:var(--accent)}.rail-item.active .rail-tick:before{transform:scaleX(1)}.rail-item.active .rail-label,.rail-item:hover .rail-label{opacity:1;transform:translate(0)}.site-content-shell{width:100%}.section{padding-top:clamp(64px,11vh,120px);position:relative;isolation:isolate}.site-content>.section:first-child{padding-top:clamp(24px,4vh,44px)}.section-head{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--line-strong);padding-bottom:12px;margin-bottom:28px;position:relative;transition:border-color .7s cubic-bezier(.16,1,.3,1)}.section-head:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:999px;background:var(--section-gradient, var(--gradient));box-shadow:0 0 18px rgba(var(--section-focus-rgb, 139, 124, 255),.55);transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.16,1,.3,1)}.section-num{display:inline-block;font-family:var(--font-mono);font-size:.7rem;color:var(--accent);letter-spacing:.1em;transform-origin:left center;transition:color .65s ease,transform .75s cubic-bezier(.16,1,.3,1),text-shadow .65s ease}.section-title{display:inline-block;font-family:var(--font-display);font-weight:600;font-size:clamp(1.5rem,3.4vw,2.2rem);letter-spacing:-.02em;line-height:1.1;transform-origin:left center;transition:color .65s ease,transform .8s cubic-bezier(.16,1,.3,1),text-shadow .65s ease}[data-reveal]{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),transform .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms)}[data-reveal][data-revealed]{opacity:1;transform:translateY(0)}.about-text{font-size:clamp(.98rem,1.5vw,1.14rem);line-height:1.65;width:100%;max-width:none;color:var(--paper)}.btn-row{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--paper);background:transparent;border:1px solid var(--line-strong);border-radius:999px;padding:10px 18px;cursor:pointer;text-decoration:none;transition:border-color .3s ease,background .3s ease,color .3s ease,transform .3s ease}.btn svg{width:13px;height:13px}.btn:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}.btn.primary{border-color:var(--accent);background:var(--accent);color:var(--ink)}.btn.primary:hover{background:transparent;color:var(--accent)}.btn.small{padding:7px 13px;font-size:.62rem}.education-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:100%}.education-card .t-card{height:100%;display:flex;align-items:center;gap:18px;padding:22px 24px;box-shadow:0 0 0 1px #5ac8ff1f,0 10px 34px #5ac8ff12}.education-card-icon.t-dot{position:relative;flex:0 0 auto;width:44px;height:44px;border-color:var(--blue);color:var(--blue);box-shadow:0 0 14px #5ac8ff59}.education-card-icon svg{width:22px;height:22px}.education-card .t-dates{display:block;margin-bottom:4px;font-size:.7rem}.education-card .t-title{font-size:1.12rem}.education-card .t-subtitle{margin-top:2px;font-size:.84rem}.education-card .t-org{margin-top:7px;font-family:var(--font-mono);font-size:.65rem}.timeline{position:relative;animation:t-fade .7s ease both}@keyframes t-fade{0%{opacity:0}to{opacity:1}}.t-line,.t-line-fill{position:absolute;border-radius:2px;z-index:0}.t-line{background:var(--line)}.t-line-fill{background:var(--gradient);box-shadow:0 0 10px #8b7cff80}.t-dot{width:26px;height:26px;border-radius:50%;background:var(--ink);border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;color:var(--muted);z-index:2;transition:border-color .45s ease,color .45s ease,box-shadow .45s ease,width .35s ease,height .35s ease}.t-dot svg{width:18px;height:18px}.t-item[data-lit] .t-dot{border-color:var(--violet);color:var(--violet);box-shadow:0 0 14px #8b7cff66}.t-item.education[data-lit] .t-dot{border-color:var(--blue);color:var(--blue);box-shadow:0 0 14px #5ac8ff59}.t-item.current[data-lit] .t-dot{box-shadow:0 0 20px #8b7cffb3}.t-item.current[data-lit] .t-dot:after{content:"";position:absolute;z-index:4;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:50%;border:2px solid var(--violet);animation:ring 1.8s ease-out infinite}.t-item.current[data-lit] .t-dot{z-index:3;isolation:isolate}@keyframes ring{0%{transform:scale(1);opacity:1}to{transform:scale(2.6);opacity:0}}.t-card{border:1px solid var(--line);border-radius:8px;background:#10101db8;padding:12px 16px;transition:border-color .4s ease}.t-item[data-lit] .t-card{border-color:var(--line-strong)}.t-dates{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;transition:color .45s ease}.t-item[data-lit] .t-dates{color:var(--violet)}.t-item.education[data-lit] .t-dates{color:var(--blue)}.t-org{color:var(--muted)}.t-title{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;line-height:1.25}.t-subtitle{color:var(--muted)}.t-more{margin-top:12px;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--violet);background:transparent;border:1px solid var(--line-strong);border-radius:999px;padding:6px 12px;cursor:pointer;transition:border-color .25s ease,background .25s ease,color .25s ease,transform .2s ease}.t-more svg{width:8px;height:8px}.t-more:hover{border-color:var(--violet);background:var(--accent-soft);transform:translateY(-1px)}.timeline.vertical{display:flex;flex-direction:column;gap:10px}.timeline.vertical .t-line,.timeline.vertical .t-line-fill{left:16px;width:2px}.timeline.vertical .t-line-fill{transform-origin:center top}.timeline.vertical .t-entry{position:relative;padding-left:44px}.timeline.vertical .t-head{position:relative}.timeline.vertical .t-dot{position:absolute;left:-44px;top:50%;transform:translate(-50%,-50%)}.timeline.vertical .t-meta{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;font-size:.62rem;margin-bottom:5px}.timeline.vertical .t-title{font-size:1rem}.timeline.vertical .t-subtitle{font-size:.8rem;margin-top:1px}.timeline.horizontal{display:flex;height:320px;margin-top:8px;width:min(920px,92vw);margin-left:calc(-.5*(min(920px,92vw) - 100%));padding:0 min(4vw,48px)}.timeline.horizontal .t-line,.timeline.horizontal .t-line-fill{top:50%;height:2px;transform:translateY(-50%)}.timeline.horizontal .t-col{position:relative;flex:1;min-width:0}.timeline.horizontal .t-col.featured{flex:1.2}.timeline.horizontal .t-col.small{flex:.95}.timeline.horizontal .t-dot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.timeline.horizontal .t-col.featured .t-dot{width:34px;height:34px}.timeline.horizontal .t-col.featured .t-dot svg{width:15px;height:15px}.timeline.horizontal .t-col.small .t-dot{width:20px;height:20px}.timeline.horizontal .t-col.small .t-dot svg{width:9px;height:9px}.timeline.horizontal .t-card{position:absolute;left:50%;transform:translate(-50%);width:max-content;max-width:min(26vw,270px)}.timeline.horizontal .t-col.featured .t-card{max-width:min(27vw,282px)}.timeline.horizontal .t-col.small .t-card{max-width:min(24vw,248px);padding:11px 14px}.timeline.horizontal .t-col.featured[data-lit] .t-card{box-shadow:0 0 0 1px #8b7cff29,0 10px 34px #8b7cff17}.timeline.horizontal .t-col.featured.education[data-lit] .t-card{box-shadow:0 0 0 1px #5ac8ff29,0 10px 34px #5ac8ff17}.timeline.horizontal .t-card:after{content:"";position:absolute;left:50%;width:1px;height:26px;background:var(--line-strong);transform:translate(-50%)}.timeline.horizontal .t-col.above .t-card{bottom:calc(50% + 26px)}.timeline.horizontal .t-col.above .t-card:after{bottom:-26px}.timeline.horizontal .t-col.below .t-card{top:calc(50% + 26px)}.timeline.horizontal .t-col.below .t-card:after{top:-26px}.timeline.horizontal .t-dates{display:block;font-size:.6rem}.timeline.horizontal .t-title{font-size:.9rem;margin-top:3px}.timeline.horizontal .t-col.featured .t-title{font-size:1.05rem}.timeline.horizontal .t-col.small .t-title{font-size:.78rem;color:var(--muted);font-weight:500}.timeline.horizontal .t-subtitle{font-size:.72rem;margin-top:2px}.timeline.horizontal .t-col.small .t-subtitle{font-size:.64rem}.timeline.horizontal .t-org{font-family:var(--font-mono);font-size:.58rem;letter-spacing:.04em;margin-top:6px}.timeline.horizontal .t-col.small .t-org{font-size:.54rem;margin-top:4px}.timeline.horizontal .t-col.small .t-more{font-size:.52rem;padding:5px 10px;margin-top:10px}.experience-timeline.horizontal{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,.95fr) minmax(0,1.1fr);column-gap:18px;height:205px;width:100%;margin-left:0;padding-inline:0}.experience-timeline.horizontal .t-line,.experience-timeline.horizontal .t-line-fill,.experience-timeline.horizontal .t-dot{top:calc(100% - 13px)}.experience-timeline.horizontal .t-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.experience-timeline.horizontal .t-connector{width:1px;height:26px;flex:0 0 26px;background:var(--line-strong)}.experience-timeline.horizontal .t-col.above .t-card{position:relative;top:auto;bottom:auto;left:auto;transform:none;flex:0 0 auto}.experience-timeline.horizontal .t-card:after{display:none}.experience-timeline.horizontal .t-col{flex:1}.experience-timeline.horizontal .t-dot{position:relative;top:auto;left:auto;transform:none;flex:0 0 auto;width:26px;height:26px}.experience-timeline.horizontal .t-dot svg{width:11px;height:11px}.experience-timeline.horizontal .t-card{width:100%;max-width:none;box-sizing:border-box;padding:14px 16px}.experience-timeline.horizontal .t-col:not(.current) .t-card{width:100%;padding:12px 14px}.experience-timeline.horizontal .t-title,.experience-timeline.horizontal .t-col.small .t-title{color:var(--paper);font-size:.9rem;font-weight:600}.experience-timeline.horizontal .t-subtitle,.experience-timeline.horizontal .t-col.small .t-subtitle{font-size:.7rem}.experience-timeline.horizontal .t-org,.experience-timeline.horizontal .t-col.small .t-org{margin-top:6px;font-size:.56rem}.experience-timeline.horizontal .t-more,.experience-timeline.horizontal .t-col.small .t-more{margin-top:11px;padding:6px 12px;font-size:.54rem}.experience-timeline.horizontal .t-col:not(.current) .t-dates{font-size:.52rem}.experience-timeline.horizontal .t-col:not(.current) .t-title{color:color-mix(in srgb,var(--paper) 68%,var(--muted));font-size:.76rem;font-weight:500}.experience-timeline.horizontal .t-col:not(.current) .t-subtitle{font-size:.6rem}.experience-timeline.horizontal .t-col:not(.current) .t-org{font-size:.49rem}.experience-timeline.horizontal .t-col:not(.current) .t-more{font-size:.47rem;padding:5px 10px}.experience-timeline .t-item.current[data-lit] .t-card{box-shadow:0 0 0 1px #8b7cff1f,0 8px 24px #8b7cff14}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:#06060ca8;animation:overlay-in .25s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{position:relative;width:min(560px,100%);max-height:85vh;overflow-y:auto;background:var(--ink-raised);border:1px solid var(--line-strong);border-radius:14px;padding:30px 32px 32px;animation:modal-in .32s cubic-bezier(.16,1,.3,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}.modal-close{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .25s ease,color .25s ease,transform .2s ease}.modal-close:hover{border-color:var(--accent);color:var(--paper);transform:rotate(90deg)}.modal-close svg{width:11px;height:11px}.modal-icon{width:42px;height:42px;border-radius:50%;border:1px solid var(--violet);color:var(--violet);display:flex;align-items:center;justify-content:center;margin-bottom:16px}.modal.education .modal-icon{border-color:var(--blue);color:var(--blue)}.modal-icon svg{width:17px;height:17px}.modal-dates{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;color:var(--violet)}.modal.education .modal-dates{color:var(--blue)}.modal-title{font-family:var(--font-display);font-weight:600;font-size:1.5rem;letter-spacing:-.01em;line-height:1.2;margin-top:6px}.modal-subtitle{font-size:.95rem;margin-top:3px}.modal-org{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.06em;color:var(--muted);margin-top:8px}.modal-bullets{margin-top:20px;padding-left:18px;display:flex;flex-direction:column;gap:9px;color:color-mix(in srgb,var(--paper) 82%,var(--muted));font-size:.9rem;line-height:1.55}.modal-bullets li::marker{color:var(--accent)}.work-intro{max-width:76ch;margin-bottom:24px;padding-left:17px;border-left:2px solid var(--line-strong);color:color-mix(in srgb,var(--paper) 84%,var(--muted));font-size:clamp(.94rem,1.35vw,1.06rem);line-height:1.7;transition:opacity .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),transform .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),border-color .65s ease,color .65s ease,text-shadow .65s ease}.work-system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"angular next" "spring extras";gap:14px}.work-system:nth-child(1){grid-area:angular}.work-system:nth-child(2){grid-area:spring}.work-system:nth-child(3){grid-area:next}.work-system{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:radial-gradient(280px circle at 100% 0%,rgba(90,200,255,.055),transparent 60%),#10101dad;padding:20px 21px 21px;transition:opacity .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),transform .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),border-color .65s ease}.work-system:before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:2px;background:linear-gradient(90deg,var(--violet),var(--blue));box-shadow:0 0 16px #5ac8ff7a;transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.16,1,.3,1)}.work-system:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,rgba(139,124,255,.06),transparent 45%,rgba(90,200,255,.055));opacity:0;pointer-events:none;transition:opacity .7s ease}.work-system>*{position:relative;z-index:1}.work-system-topline{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:14px}.work-system-index,.work-system-kind{font-family:var(--font-mono);font-size:.57rem;line-height:1.4;letter-spacing:.12em;text-transform:uppercase}.work-system-index{color:var(--blue)}.work-system-kind{color:var(--muted);text-align:right}.work-system-name{display:inline-block;width:fit-content;margin-bottom:8px;color:var(--paper);font-family:var(--font-display);font-size:1.18rem;font-weight:600;line-height:1.15;letter-spacing:-.015em;transform-origin:left center;transition:color .55s ease,transform .7s cubic-bezier(.16,1,.3,1),text-shadow .55s ease}.work-system-description{color:color-mix(in srgb,var(--paper) 76%,var(--muted));font-size:.84rem;line-height:1.62}.work-area-examples{display:flex;flex-direction:column;flex-grow:1;gap:9px;margin-top:16px;padding:14px 0 0 14px;border-top:1px solid var(--line);color:color-mix(in srgb,var(--paper) 72%,var(--muted));font-size:.73rem;line-height:1.55;transition:border-color .55s ease}.work-area-examples li::marker{color:var(--blue)}.work-footnotes{grid-area:extras;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(3,minmax(0,1fr));gap:8px;min-width:0}.work-footnote{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;min-width:0;border:1px solid var(--line);border-radius:7px;padding:12px 13px 13px;background:#10101d7a;transition:opacity .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),transform .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),border-color .55s ease,background .55s ease}.work-footnote-mark{color:var(--muted);font-family:var(--font-mono);font-size:.82rem;line-height:1;transform-origin:center;transition:color .5s ease,text-shadow .5s ease,transform .6s cubic-bezier(.16,1,.3,1)}.work-footnote-name{margin-bottom:5px;color:color-mix(in srgb,var(--paper) 86%,var(--muted));font-family:var(--font-mono);font-size:.58rem;font-weight:500;line-height:1.35;letter-spacing:.1em;text-transform:uppercase;transition:color .5s ease}.work-footnote-description{color:var(--muted);font-size:.7rem;line-height:1.5}.skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.skill-category{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:radial-gradient(260px circle at 100% 0%,rgba(139,124,255,.08),transparent 56%),#10101da8;padding:20px 21px 22px}.skill-category-wide{grid-column:1 / -1}.skill-category-head{margin-bottom:20px}.skill-category-name{font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--violet)}.skill-category-ai{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:32px;align-items:center;background:radial-gradient(360px circle at 88% 50%,rgba(90,200,255,.1),transparent 62%),radial-gradient(300px circle at 12% 20%,rgba(139,124,255,.1),transparent 64%),#10101db8}.skill-category-ai .skill-category-head{margin-bottom:8px}.skill-category-desc{max-width:64ch;color:color-mix(in srgb,var(--paper) 78%,var(--muted));font-size:.84rem;line-height:1.6}.skill-category-ai .chips{grid-column:2;grid-row:1 / span 2;justify-content:flex-end}.skill-category-ai .chip{padding:9px 14px;color:var(--paper)}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:.67rem;letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:6px;padding:6px 10px;background:#0a0a1361;transition:border-color .25s ease,background .25s ease,color .25s ease,transform .25s ease;cursor:default}.chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--paper);transform:translateY(-2px)}.project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.project{position:relative;display:flex;flex-direction:column;gap:5px;font-weight:300;border:1px solid var(--line);border-radius:10px;background:#10101da8;padding:13px 16px;overflow:hidden;transition:border-color .35s ease,transform .35s ease}.project:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),var(--accent-soft),transparent 45%);opacity:0;transition:opacity .4s ease;pointer-events:none}.project:hover{border-color:var(--line-strong);transform:translateY(-3px)}.project:hover:before{opacity:1}.project-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.project-title-group{display:flex;align-items:center;gap:8px;min-width:0}.tags{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:4px}.tag{font-family:var(--font-mono);font-weight:300;font-size:.52rem;letter-spacing:.06em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 6px}.project-year{flex:0 0 auto;border:1px solid var(--line-strong);border-radius:999px;padding:3px 9px;color:var(--accent);font-family:var(--font-mono);font-size:.64rem;font-weight:300;letter-spacing:.1em;line-height:1.45}.project-name{flex:0 1 auto;font-family:var(--font-display);font-weight:500;font-size:1.1rem;letter-spacing:-.01em;line-height:1.15}.project-desc{width:100%;max-width:none;font-size:.8rem;font-weight:300;line-height:1.5;color:color-mix(in srgb,var(--paper) 72%,var(--muted));flex-grow:1}.project-btns{display:flex;gap:5px;flex-wrap:wrap}#about{--section-focus: #a99cff;--section-focus-rgb: 169, 156, 255;--section-gradient: linear-gradient(90deg, #8b7cff, #5ac8ff)}#education{--section-focus: #69d2ff;--section-focus-rgb: 90, 200, 255;--section-gradient: linear-gradient(90deg, #5ac8ff, #8ee8ff)}#experience{--section-focus: #a58fff;--section-focus-rgb: 139, 124, 255;--section-gradient: linear-gradient(90deg, #8b7cff, #c08cff)}#work{--section-focus: #72dfd0;--section-focus-rgb: 114, 223, 208;--section-gradient: linear-gradient(90deg, #65d8c7, #5ac8ff)}#skills{--section-focus: #cb9cff;--section-focus-rgb: 192, 140, 255;--section-gradient: linear-gradient(90deg, #b178ff, #e39cff)}#projects{--section-focus: #6bd6ff;--section-focus-rgb: 90, 200, 255;--section-gradient: linear-gradient(90deg, #5ac8ff, #78a7ff)}.section:before{content:"";position:absolute;z-index:-1;top:calc(clamp(64px,11vh,120px) - 44px);right:-10vw;bottom:-52px;left:-10vw;background:radial-gradient(ellipse 48% 44% at 50% 48%,rgba(var(--section-focus-rgb),.09) 0%,rgba(var(--section-focus-rgb),.06) 44%,rgba(var(--section-focus-rgb),.025) 70%,transparent 100%);opacity:0;pointer-events:none;transition:opacity .75s ease}.site-content>.section:first-child:before{top:calc(clamp(24px,4vh,44px) - 44px)}.project .btn{gap:6px;padding:5px 11px;font-weight:300;font-size:.61rem}.project .btn svg{width:12px;height:12px}.site-content.content-expanded .section.is-focused:before{opacity:1}.section.is-focused .section-head{border-color:rgba(var(--section-focus-rgb),.4)}.site-content.section-lines-ready .section.is-focused .section-head:after{transform:scaleX(1)}.section.is-focused .section-title{color:var(--section-focus);text-shadow:0 0 28px rgba(var(--section-focus-rgb),.25);transform:translate(7px) scale(1.16)}.section.is-focused .section-num{color:var(--section-focus);text-shadow:0 0 18px rgba(var(--section-focus-rgb),.75);transform:translate(-3px,-3px) scale(1.2)}#about .about-text{transform-origin:left center;transition:opacity .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),transform .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),color .65s ease,text-shadow .65s ease}#about.is-focused .about-text[data-revealed]{color:#f4f4ff;text-shadow:0 10px 34px rgba(139,124,255,.14);transform:translate(10px) scale(1.035)}#about.is-focused .btn-row[data-revealed]{transform:translate(10px,-3px)}#about.is-focused .btn.primary{box-shadow:0 10px 30px #8b7cff4d}#education .education-card,#education .education-card-icon{transform-origin:center}#education .education-card-icon{transition:border-color .45s ease,color .45s ease,box-shadow .65s ease,width .35s ease,height .35s ease,transform .75s cubic-bezier(.16,1,.3,1)}#education .education-card .t-title{display:inline-block;transform-origin:left center;transition:color .6s ease,transform .75s cubic-bezier(.16,1,.3,1)}#education.is-focused .education-card[data-revealed]:first-child{transform:translate(-8px,-9px)}#education.is-focused .education-card[data-revealed]:last-child{transform:translate(8px,-9px);transition-delay:70ms}#education.is-focused .education-card .t-card{border-color:#5ac8ff6b;box-shadow:0 0 0 1px #5ac8ff29,0 18px 42px #5ac8ff29}#education.is-focused .education-card-icon{color:#8ee8ff;box-shadow:0 0 28px #5ac8ffa6;transform:rotate(-8deg) scale(1.12)}#education.is-focused .education-card .t-title{color:#f4fbff;transform:scale(1.07)}#experience .experience-timeline .t-card{transform-origin:center bottom;transition:border-color .4s ease,transform .72s cubic-bezier(.16,1,.3,1)}#experience .experience-timeline .t-title{display:inline-block;transform-origin:left center;transition:color .55s ease,transform .7s cubic-bezier(.16,1,.3,1)}#experience .experience-timeline .t-line-fill{transition:box-shadow .65s ease}#experience.is-focused .experience-timeline .t-card{transform:scale(1.015)}#experience.is-focused .experience-timeline .t-item:nth-child(4) .t-card{transition-delay:65ms}#experience.is-focused .experience-timeline .t-item:nth-child(5) .t-card{transition-delay:.13s}#experience.is-focused .experience-timeline .t-item.current .t-card{transform:scale(1.025)}#experience.is-focused .experience-timeline .t-title{color:#f3efff;transform:scale(1.045)}#experience.is-focused .experience-timeline .t-line-fill{box-shadow:0 0 12px #8b7cffcc,0 0 28px #5ac8ff6b}#work .work-system-index{display:inline-flex;align-items:center;gap:7px}#work .work-system-index:before{content:"";width:5px;height:5px;flex:0 0 auto;border-radius:50%;background:var(--muted);opacity:.6;transition:background .5s ease,box-shadow .5s ease,opacity .5s ease,transform .6s cubic-bezier(.16,1,.3,1)}#work.is-focused .work-intro{border-color:#72dfd0b3;color:#effffc;text-shadow:0 10px 30px rgba(90,200,255,.1)}#work.is-focused .work-system[data-revealed]{border-color:#72dfd04d;box-shadow:0 15px 38px #44b8b11a}#work.is-focused .work-system:before{transform:scaleX(1)}#work.is-focused .work-system:nth-child(2):before{transition-delay:70ms}#work.is-focused .work-system:nth-child(3):before{transition-delay:.14s}#work.is-focused .work-system:after{opacity:1}#work.is-focused .work-system-index:before{background:#72dfd0;box-shadow:0 0 12px #72dfd0cc;opacity:1;transform:scale(1.35)}#work.is-focused .work-system-name{color:#effffc;text-shadow:0 0 24px rgba(114,223,208,.18);transform:scale(1.055)}#work.is-focused .work-area-examples{border-color:#72dfd033}#work.is-focused .work-footnote[data-revealed]{border-color:#72dfd033;background:#2d696514;box-shadow:0 8px 22px #44b8b10f}#work.is-focused .work-footnote-mark{color:#72dfd0;text-shadow:0 0 11px rgba(114,223,208,.75);transform:scale(1.25)}#work.is-focused .work-footnote-name{color:#dffbf6}#work.is-focused .work-footnote:nth-child(2){transition-delay:55ms}#work.is-focused .work-footnote:nth-child(3){transition-delay:.11s}#skills .skill-category{transform-origin:center;transition:opacity .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),transform .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),border-color .65s ease}#skills .skill-category-name{display:inline-block;transform-origin:left center;transition:color .55s ease,letter-spacing .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}#skills .chip{transform-origin:center;transition:border-color .45s ease,background .45s ease,color .45s ease,transform .55s cubic-bezier(.16,1,.3,1)}#skills.is-focused .skill-category[data-revealed]{border-color:#c08cff57;box-shadow:0 16px 42px #8b7cff1f}#skills.is-focused .skill-category-name{color:#daf;letter-spacing:.22em;transform:scale(1.07)}#skills.is-focused .chip{color:#f2eaff;border-color:#c08cff75;background:#8b7cff1f;transform:translateY(-3px) scale(1.035)}#skills.is-focused .chip:nth-child(3n+2){transition-delay:55ms}#skills.is-focused .chip:nth-child(3n){transition-delay:.11s}#skills.is-focused .chip:hover{transform:translateY(-6px) scale(1.055)}#projects .project-grid{perspective:1000px}#projects .project{transform-origin:center;transition:opacity .8s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),transform .75s cubic-bezier(.16,1,.3,1) var(--reveal-delay, 0ms),border-color .55s ease}#projects .project-name{display:inline-block;transform-origin:left center;transition:color .55s ease,transform .7s cubic-bezier(.16,1,.3,1)}#projects.is-focused .project[data-revealed]:nth-child(odd){border-color:#5ac8ff52;box-shadow:0 20px 48px #5ac8ff1f;transform:translate(-4px,-8px)}#projects.is-focused .project[data-revealed]:nth-child(2n){border-color:#8b7cff52;box-shadow:0 20px 48px #8b7cff1f;transform:translate(4px,-8px);transition-delay:75ms}#projects.is-focused .project:before{opacity:.55}#projects.is-focused .project-name{color:#eefaff;transform:scale(1.09)}#projects.is-focused .project[data-revealed]:hover{border-color:#5ac8ff9e;transform:translateY(-12px)}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;background:var(--paper);color:var(--ink);border-radius:999px;padding:11px 20px;z-index:20;opacity:0;pointer-events:none;transition:opacity .35s ease,transform .45s cubic-bezier(.16,1,.3,1)}.toast.visible{opacity:1;transform:translate(-50%)}.toast svg{width:13px;height:13px;color:var(--violet)}@media(max-width:1240px){.rail{left:16px}.rail-label{display:none}}@media(max-width:820px){.rail,.grid-layer.bright{display:none}.education-grid{grid-template-columns:1fr}.work-system-grid{grid-template-columns:1fr;grid-template-areas:"angular" "spring" "next" "extras"}.work-footnotes{grid-template-columns:1fr}.timeline.vertical .t-meta{flex-direction:column;gap:2px}.timeline.vertical .t-hint{display:none}.timeline.vertical .t-details{grid-template-rows:1fr}.project-grid{grid-template-columns:1fr}.page{padding:0 20px 12vh}.section{padding-top:60px}.hero-title{--hero-rest-scale: .76}.section.is-focused .section-title{transform:translate(4px) scale(1.1)}.section.is-focused .section-num{transform:translate(-2px,-2px) scale(1.12)}#about.is-focused .about-text[data-revealed]{transform:translate(4px) scale(1.015)}#about.is-focused .btn-row[data-revealed]{transform:translate(4px,-2px)}#education.is-focused .education-card[data-revealed]:first-child{transform:translate(-3px,-5px)}#education.is-focused .education-card[data-revealed]:last-child{transform:translate(3px,-5px)}#experience.is-focused .experience-timeline .t-card,#experience.is-focused .experience-timeline .t-item.current .t-card{transform:scale(1.008)}#skills.is-focused .chip{transform:translateY(-2px) scale(1.03)}#projects.is-focused .project[data-revealed]:nth-child(odd),#projects.is-focused .project[data-revealed]:nth-child(2n){transform:translateY(-5px)}}@media(max-width:560px){.skill-grid{grid-template-columns:1fr}.skill-category-ai{display:block}.skill-category-ai .chips{margin-top:18px;justify-content:flex-start}}#about.is-focused .about-text[data-revealed],#about.is-focused .btn-row[data-revealed],#education.is-focused .education-card[data-revealed],#education.is-focused .education-card[data-revealed]:first-child,#education.is-focused .education-card[data-revealed]:last-child,#education.is-focused .education-card-icon,#education.is-focused .education-card .t-title,#experience.is-focused .experience-timeline .t-card,#experience.is-focused .experience-timeline .t-item.current .t-card,#experience.is-focused .experience-timeline .t-title,#work.is-focused .work-system-name,#work.is-focused .work-system-index:before,#work.is-focused .work-footnote-mark,#skills.is-focused .skill-category-name,#skills.is-focused .chip,#projects.is-focused .project[data-revealed],#projects.is-focused .project[data-revealed]:nth-child(odd),#projects.is-focused .project[data-revealed]:nth-child(2n),#projects.is-focused .project-name{transform:none}#projects.is-focused .project[data-revealed]:hover{transform:translateY(-3px)}
