:root{--motion-quick:120ms;--motion-standard:280ms;--motion-slow:560ms;--motion-enter:cubic-bezier(0.05,0.7,0.1,1);--motion-standard-ease:cubic-bezier(0.2,0,0,1);--motion-gentle:cubic-bezier(0.4,0,0.2,1);--scroll-progress:0;--hero-rail-offset:0px}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}.scroll-progress{position:fixed;z-index:70;top:calc(var(--header-height) - 2px);right:0;left:0;height:2px;background:var(--signal);pointer-events:none;transform:scaleX(var(--scroll-progress));transform-origin:left}.palette-switcher{position:relative}.palette-trigger{display:inline-grid;min-width:112px;min-height:44px;align-items:center;gap:9px;grid-template-columns:auto minmax(0,1fr) auto;border:1px solid var(--line-strong);border-radius:3px;padding:5px 9px;background:var(--terminal);color:var(--main);cursor:pointer;text-align:left;transition:border-color var(--motion-quick) ease,background-color var(--motion-quick) ease,transform var(--motion-quick) var(--motion-standard-ease)}.palette-trigger:hover{border-color:var(--signal);background:var(--panel-strong)}.palette-trigger:active{transform:scale(.98)}.palette-trigger-swatch{width:18px;height:18px;border:1px solid var(--swatch-signal);border-radius:50%;background:var(--swatch-canvas);box-shadow:inset 0 -5px 0 var(--swatch-signal)}.palette-trigger-copy{display:grid;line-height:1.1}.palette-trigger-copy small{color:var(--quiet);font-family:var(--font-code);font-size:8px;letter-spacing:.08em}.palette-trigger-copy strong{margin-top:3px;font-family:var(--font-code);font-size:11px;font-weight:600;white-space:nowrap}.palette-trigger-icon{color:var(--signal);font-family:var(--font-code);font-size:13px}.palette-console{position:absolute;z-index:80;top:calc(100% + 12px);right:0;width:min(390px,calc(100vw - 32px));max-height:calc(100vh - var(--header-height) - 24px);overflow-x:hidden;overflow-y:auto;border:1px solid var(--line-strong);border-radius:5px;background:var(--terminal);box-shadow:0 24px 80px var(--shadow-strong);opacity:0;pointer-events:none;transform:translateY(-8px) scale(.985);transform-origin:top right;transition:opacity var(--motion-quick) ease-in,transform var(--motion-quick) ease-in,visibility var(--motion-quick);visibility:hidden}.palette-console[data-open=true]{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity var(--motion-standard) var(--motion-enter),transform var(--motion-standard) var(--motion-enter);visibility:visible}.palette-console-header{display:flex;min-height:42px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-inline:14px;color:var(--quiet);font-family:var(--font-code);font-size:10px;letter-spacing:.06em}.palette-console-header span:first-child{color:var(--signal)}.palette-console-list{display:grid}.palette-console-option{display:grid;min-height:68px;align-items:center;gap:12px;grid-template-columns:24px 54px minmax(0,1fr) auto;border:0;border-bottom:1px solid var(--line);padding:10px 14px;background:transparent;color:var(--main);cursor:pointer;text-align:left;transition:background-color var(--motion-quick) ease,padding-left var(--motion-quick) var(--motion-standard-ease)}.palette-console-option:last-child{border-bottom:0}.palette-console-option:hover,.palette-console-option[data-active=true]{padding-left:18px;background:var(--panel)}.palette-option-index,.palette-option-state{color:var(--quiet);font-family:var(--font-code);font-size:9px;letter-spacing:.04em}.palette-console-option[data-active=true] .palette-option-state{color:var(--signal)}.palette-preview{display:grid;height:34px;overflow:hidden;border:1px solid var(--swatch-line);border-radius:2px;grid-template-columns:1.4fr .8fr .3fr}.palette-preview i:first-child{background:var(--swatch-canvas)}.palette-preview i:nth-child(2){background:var(--swatch-panel)}.palette-preview i:nth-child(3){background:var(--swatch-signal)}.palette-option-copy{display:grid}.palette-option-copy strong{font-size:12px;font-weight:620}.palette-option-copy small{margin-top:3px;color:var(--quiet);font-size:10px}[data-palette-id=indigo]{--swatch-canvas:#200c6e;--swatch-panel:#311d83;--swatch-line:#7d69be;--swatch-signal:#70d4a9}[data-palette-id=terminal]{--swatch-canvas:#0a0a0f;--swatch-panel:#16161f;--swatch-line:#3b3b49;--swatch-signal:#00ff9c}[data-palette-id=abyss]{--swatch-canvas:#061822;--swatch-panel:#10313d;--swatch-line:#287081;--swatch-signal:#37e6d1}[data-palette-id=graphite]{--swatch-canvas:#11110f;--swatch-panel:#24221d;--swatch-line:#625c4b;--swatch-signal:#f2b84b}[data-palette-id=cream]{--swatch-canvas:#f3efe4;--swatch-panel:#e9e2d3;--swatch-line:#a79d8c;--swatch-signal:#167a66}[data-palette-id=sky]{--swatch-canvas:#eaf4f8;--swatch-panel:#dcecf3;--swatch-line:#7ca6b9;--swatch-signal:#166a97}.hero-section:before{position:absolute;inset:0;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-position:50%;background-size:72px 72px;content:"";opacity:.62;pointer-events:none}.hero-section:after{position:absolute;top:50%;right:-22px;color:color-mix(in srgb,var(--main) 8%,transparent);content:"AI / APPLICATION";font-family:var(--font-code);font-size:10px;letter-spacing:.22em;pointer-events:none;transform:rotate(90deg) translateX(50%);transform-origin:right center}.hero-grid,.hero-stack-rail{position:relative;z-index:1}.hero-grid{grid-template-columns:minmax(0,1.32fr) minmax(390px,.68fr)}.hero-copy h1{max-width:990px;font-size:clamp(58px,6.35vw,110px)}.hero-highlight:after{height:.065em;opacity:1;transform-origin:left}.hero-terminal-column{filter:drop-shadow(0 30px 42px var(--shadow-soft))}.terminal-window{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--main) 2%,transparent)}.hero-stack-rail>div{transform:translateX(var(--hero-rail-offset))}.section-heading{position:relative;isolation:isolate}.section-heading:before{position:absolute;z-index:-1;top:-.38em;right:0;color:color-mix(in srgb,var(--main) 3.5%,transparent);content:attr(data-index);font-family:var(--font-code);font-size:clamp(118px,14vw,230px);font-weight:700;letter-spacing:-.09em;line-height:1;pointer-events:none}.project-card{isolation:isolate}.project-card:after{position:absolute;z-index:4;right:0;bottom:0;width:48px;height:3px;background:var(--line-strong);content:"";transition:width var(--motion-standard) var(--motion-standard-ease),background-color var(--motion-quick) ease}.project-card:hover:after{width:112px;background:var(--signal)}.project-card:hover{transform:translateY(-4px)}.project-card:hover .schematic-node{border-color:color-mix(in srgb,var(--signal) 62%,var(--line-strong))}.project-card:hover .schematic-node:nth-of-type(2n){background:var(--panel-strong)}.skill-row{transition:background-color var(--motion-quick) ease,transform var(--motion-quick) var(--motion-standard-ease)}.skill-row:hover{background:var(--panel-strong);transform:translateX(3px)}.skill-level>span{transform-origin:left;transition:background-color var(--motion-quick) ease,transform var(--motion-standard) var(--motion-enter),opacity var(--motion-standard) ease}.plus-skills{position:sticky;top:calc(var(--header-height) + 24px)}.learning-log{position:relative}.learning-log:after,.learning-log:before{position:absolute;z-index:1;top:0;bottom:0;left:55px;width:1px;content:"";pointer-events:none}.learning-log:before{background:var(--line-strong)}.learning-log:after{bottom:auto;height:34%;background:var(--signal);box-shadow:0 0 0 3px color-mix(in srgb,var(--signal) 8%,transparent);transform-origin:top}.learning-marker{position:relative;z-index:2}.learning-marker:before{width:9px;height:9px;flex:0 0 auto;order:-1;border:2px solid var(--canvas);border-radius:50%;background:var(--line-strong);box-shadow:0 0 0 1px var(--line-strong);content:""}.learning-log li:first-child .learning-marker:before{background:var(--signal);box-shadow:0 0 0 1px var(--signal),0 0 0 5px color-mix(in srgb,var(--signal) 9%,transparent)}.learning-log li{position:relative;z-index:2}.contact-panel{position:relative;isolation:isolate}.contact-panel:before{position:absolute;z-index:-1;bottom:-.28em;left:.02em;color:color-mix(in srgb,var(--main) 3.2%,transparent);content:"CONNECTION";font-family:var(--font-code);font-size:clamp(80px,12vw,190px);font-weight:700;letter-spacing:-.08em;line-height:1;pointer-events:none}.contact-statement h2{font-size:clamp(39px,4.65vw,76px)}.contact-list>div{overflow:hidden;transition:background-color var(--motion-quick) ease}.contact-list>div:before{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--signal);content:"";transform:scaleY(0);transform-origin:bottom;transition:transform var(--motion-standard) var(--motion-enter)}.contact-list>div:hover{background:var(--panel-strong)}.contact-list>div:hover:before{transform:scaleY(1)}.contact-list>div:hover .contact-status{color:var(--signal)}.button:active{transform:translateY(1px) scale(.985);transition-duration:var(--motion-quick)}.contact-page-copy h1,.page-hero h1,.project-detail-copy h1{text-wrap:balance}.back-link,.contact-page-links a,.story-index a{transition:color var(--motion-quick) ease,transform var(--motion-quick) var(--motion-standard-ease)}@media (max-width:1180px){.hero-grid{grid-template-columns:minmax(0,1.18fr) minmax(360px,.82fr)}}@media (max-width:1023px){.palette-switcher{margin-left:auto}.plus-skills{position:static}}@media (max-width:960px){.hero-grid{grid-template-columns:1fr}.hero-terminal-column{filter:none}}@media (max-width:720px){.scroll-progress{top:calc(var(--header-height) - 2px)}.palette-trigger{min-width:82px;padding-inline:7px}.palette-trigger-copy small{display:none}.palette-console{position:fixed;top:calc(var(--header-height) + 8px);right:16px;left:16px;width:auto;max-height:calc(100svh - var(--header-height) - 24px);overflow-y:auto;transform-origin:top center}.palette-console-option{grid-template-columns:20px 48px minmax(0,1fr)}.hero-section:after,.palette-option-state{display:none}.hero-section:before{background-size:48px 48px;opacity:.45}.hero-copy h1{font-size:clamp(44px,13.2vw,66px)}.section-heading:before{top:-.16em;font-size:104px}.learning-log:after,.learning-log:before{left:4px}.learning-marker{padding-left:22px}.learning-marker:before{position:absolute;left:0}.contact-panel:before{font-size:72px}}@keyframes hero-reveal{0%{clip-path:inset(0 0 100% 0);opacity:0;transform:translateY(34px)}to{clip-path:inset(0);opacity:1;transform:translateY(0)}}@keyframes hero-support-enter{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes terminal-enter{0%{opacity:0;transform:translate(24px,14px) scale(.985)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes underline-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes node-boot{0%{opacity:.22;scale:.92}to{opacity:1;scale:1}}@keyframes wire-draw-x{0%{opacity:.2;scale:0 1}to{opacity:1;scale:1}}@keyframes wire-draw-y{0%{opacity:.2;scale:1 0}to{opacity:1;scale:1}}@keyframes trace-draw{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes status-breathe{0%,to{opacity:.78;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}@keyframes palette-option-enter{0%{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}.hero-actions,.hero-eyebrow,.hero-facts,.hero-intro,.hero-role{animation:hero-support-enter .52s var(--motion-enter) both}.hero-eyebrow{animation-delay:80ms}.hero-copy h1>span{animation:hero-reveal .76s var(--motion-enter) both}.hero-copy h1>span:first-child{animation-delay:.13s}.hero-copy h1>span:nth-child(2){animation-delay:.24s}.hero-highlight:after{animation:underline-draw .62s var(--motion-enter) .76s both}.hero-role{animation-delay:.38s}.hero-intro{animation-delay:.44s}.hero-actions{animation-delay:.5s}.hero-facts{animation-delay:.57s}.hero-terminal-column{animation:terminal-enter .66s var(--motion-enter) .33s both}.availability-chip .status-dot,.hero-facts .status-dot{animation:status-breathe 3s var(--motion-gentle) infinite}.palette-console[data-open=true] .palette-console-option{animation:palette-option-enter .22s var(--motion-enter) both}.palette-console[data-open=true] .palette-console-option:nth-child(2){animation-delay:30ms}.palette-console[data-open=true] .palette-console-option:nth-child(3){animation-delay:60ms}.palette-console[data-open=true] .palette-console-option:nth-child(4){animation-delay:90ms}.palette-console[data-open=true] .palette-console-option:nth-child(5){animation-delay:.12s}.palette-console[data-open=true] .palette-console-option:nth-child(6){animation-delay:.15s}html[data-motion=ready] .contact-page-grid[data-reveal-state=pending],html[data-motion=ready] .content-section[data-reveal-state=pending]>.site-shell>*,html[data-motion=ready] .footer-main[data-reveal-state=pending],html[data-motion=ready] .not-found-terminal[data-reveal-state=pending],html[data-motion=ready] .page-hero-grid[data-reveal-state=pending],html[data-motion=ready] .project-detail-grid[data-reveal-state=pending],html[data-motion=ready] .project-story-layout[data-reveal-state=pending],html[data-motion=ready] .story-act[data-reveal-state=pending]{opacity:0;transform:translateY(28px)}html[data-motion=ready] .contact-page-grid[data-reveal-state=visible],html[data-motion=ready] .content-section[data-reveal-state=visible]>.site-shell>*,html[data-motion=ready] .footer-main[data-reveal-state=visible],html[data-motion=ready] .not-found-terminal[data-reveal-state=visible],html[data-motion=ready] .page-hero-grid[data-reveal-state=visible],html[data-motion=ready] .project-detail-grid[data-reveal-state=visible],html[data-motion=ready] .project-story-layout[data-reveal-state=visible],html[data-motion=ready] .story-act[data-reveal-state=visible]{opacity:1;transform:translateY(0);transition:opacity var(--motion-slow) ease-out,transform var(--motion-slow) var(--motion-enter)}html[data-motion=ready] .content-section[data-reveal-state=visible]>.site-shell>:nth-child(2){transition-delay:90ms}html[data-motion=ready] .content-section[data-reveal-state=visible]>.site-shell>:nth-child(3){transition-delay:.15s}html[data-motion=ready] .projects-section[data-reveal-state=pending] .project-card{opacity:0;transform:translateY(24px) scale(.99)}html[data-motion=ready] .projects-section[data-reveal-state=visible] .project-card{opacity:1;transform:translateY(0) scale(1);transition:border-color var(--motion-standard) ease,opacity .42s ease-out,transform .42s var(--motion-enter)}html[data-motion=ready] .projects-section[data-reveal-state=visible] .project-card:nth-child(2){transition-delay:70ms}html[data-motion=ready] .projects-section[data-reveal-state=visible] .project-card:nth-child(3){transition-delay:.14s}html[data-motion=ready] .projects-section[data-reveal-state=visible] .project-card:hover{transform:translateY(-4px) scale(1);transition-delay:0s}html[data-motion=ready] .project-detail-grid[data-reveal-state=pending] .schematic-node,html[data-motion=ready] .projects-section[data-reveal-state=pending] .schematic-node{opacity:.22;scale:.92}.project-detail-grid[data-reveal-state=visible] .schematic-node,.projects-section[data-reveal-state=visible] .schematic-node{animation:node-boot .28s var(--motion-enter) both}.project-detail-grid[data-reveal-state=visible] .node-1,.projects-section[data-reveal-state=visible] .node-1{animation-delay:90ms}.project-detail-grid[data-reveal-state=visible] .node-2,.projects-section[data-reveal-state=visible] .node-2{animation-delay:.15s}.project-detail-grid[data-reveal-state=visible] .node-3,.projects-section[data-reveal-state=visible] .node-3{animation-delay:.21s}.project-detail-grid[data-reveal-state=visible] .node-4,.projects-section[data-reveal-state=visible] .node-4{animation-delay:.27s}.project-detail-grid[data-reveal-state=visible] .node-5,.projects-section[data-reveal-state=visible] .node-5{animation-delay:.33s}.project-detail-grid[data-reveal-state=visible] .wire-1,.project-detail-grid[data-reveal-state=visible] .wire-4,.projects-section[data-reveal-state=visible] .wire-1,.projects-section[data-reveal-state=visible] .wire-4{animation:wire-draw-x .48s var(--motion-enter) .17s both;transform-origin:left}.project-detail-grid[data-reveal-state=visible] .wire-2,.project-detail-grid[data-reveal-state=visible] .wire-3,.projects-section[data-reveal-state=visible] .wire-2,.projects-section[data-reveal-state=visible] .wire-3{animation:wire-draw-y .48s var(--motion-enter) .25s both;transform-origin:top}.schematic-pulse{animation-duration:3.8s;animation-play-state:paused;animation-timing-function:var(--motion-gentle)}.project-card:hover .schematic-pulse,.project-detail-grid[data-reveal-state=visible] .schematic-pulse,.projects-section[data-reveal-state=visible] .project-card[data-featured=true] .schematic-pulse{animation-play-state:running}html[data-motion=ready] .compact-section[data-reveal-state=pending] .skill-level>span[data-active=true],html[data-motion=ready] .skills-section[data-reveal-state=pending] .skill-level>span[data-active=true]{opacity:.25;transform:scaleX(0)}.compact-section[data-reveal-state=visible] .skill-level>span[data-active=true],.skills-section[data-reveal-state=visible] .skill-level>span[data-active=true]{opacity:1;transform:scaleX(1)}.skill-level>span[data-active=true]:nth-child(2){transition-delay:45ms}.skill-level>span[data-active=true]:nth-child(3){transition-delay:90ms}.skill-level>span[data-active=true]:nth-child(4){transition-delay:135ms}.skill-level>span[data-active=true]:nth-child(5){transition-delay:.18s}html[data-motion=ready] .compact-section[data-reveal-state=pending] .learning-log:after,html[data-motion=ready] .learning-section[data-reveal-state=pending] .learning-log:after{transform:scaleY(0)}.compact-section[data-reveal-state=visible] .learning-log:after,.learning-section[data-reveal-state=visible] .learning-log:after{animation:trace-draw .72s var(--motion-enter) .12s both}html[data-motion=ready] .compact-section[data-reveal-state=pending] .learning-log li,html[data-motion=ready] .learning-section[data-reveal-state=pending] .learning-log li{opacity:0;transform:translateX(18px)}.compact-section[data-reveal-state=visible] .learning-log li,.learning-section[data-reveal-state=visible] .learning-log li{opacity:1;transform:translateX(0);transition:background var(--motion-quick) ease,opacity .36s ease-out,padding-inline var(--motion-quick) var(--motion-standard-ease),transform .36s var(--motion-enter)}.compact-section[data-reveal-state=visible] .learning-log li:nth-child(2),.learning-section[data-reveal-state=visible] .learning-log li:nth-child(2){transition-delay:70ms}.compact-section[data-reveal-state=visible] .learning-log li:nth-child(3),.learning-section[data-reveal-state=visible] .learning-log li:nth-child(3){transition-delay:.14s}.curated-resource-section,.notes-grid>li,.recommendation-grid>li{transition:opacity .36s ease-out,transform .36s var(--motion-enter)}html[data-motion=ready] .notes-section[data-reveal-state=pending] .notes-grid>li,html[data-motion=ready] .open-source-section[data-reveal-state=pending] .recommendation-grid>li,html[data-motion=ready] .resources-section[data-reveal-state=pending] .curated-resource-section{opacity:0;transform:translateY(18px) scale(.99)}.notes-section[data-reveal-state=visible] .notes-grid>li,.open-source-section[data-reveal-state=visible] .recommendation-grid>li,.resources-section[data-reveal-state=visible] .curated-resource-section{opacity:1;transform:translateY(0) scale(1)}.notes-section[data-reveal-state=visible] .notes-grid>li:nth-child(2),.notes-section[data-reveal-state=visible] .notes-grid>li:nth-child(5),.open-source-section[data-reveal-state=visible] .recommendation-grid>li:nth-child(2),.resources-section[data-reveal-state=visible] .curated-resource-section:nth-child(2){transition-delay:60ms}.notes-section[data-reveal-state=visible] .notes-grid>li:nth-child(3),.notes-section[data-reveal-state=visible] .notes-grid>li:nth-child(6),.open-source-section[data-reveal-state=visible] .recommendation-grid>li:nth-child(3){transition-delay:.12s}@media (max-width:960px){.hero-stack-rail>div{transform:none}.hero-copy h1>span{animation-duration:.61s}html[data-motion=ready] .contact-page-grid[data-reveal-state=pending],html[data-motion=ready] .content-section[data-reveal-state=pending]>.site-shell>*,html[data-motion=ready] .footer-main[data-reveal-state=pending],html[data-motion=ready] .not-found-terminal[data-reveal-state=pending],html[data-motion=ready] .page-hero-grid[data-reveal-state=pending],html[data-motion=ready] .project-detail-grid[data-reveal-state=pending],html[data-motion=ready] .project-story-layout[data-reveal-state=pending],html[data-motion=ready] .story-act[data-reveal-state=pending]{transform:translateY(18px)}}@media (prefers-reduced-motion:reduce){.hero-actions,.hero-copy h1>span,.hero-eyebrow,.hero-facts,.hero-highlight:after,.hero-intro,.hero-role,.hero-terminal-column,.learning-log:after,.palette-console-option,.schematic-node,.schematic-wire{animation:none!important;opacity:1!important;scale:1!important;transform:none!important}.node-5{transform:translateX(-50%)!important}.schematic-pulse,.status-dot{animation:none!important}.hero-stack-rail>div{transform:none!important}}