.vscode-shell{--bg-editor:#1e1e1e;--bg-sidebar:#252526;--bg-activitybar:#333333;--bg-tabbar:#252526;--bg-tab-active:#1e1e1e;--bg-tab-inactive:#2d2d2d;--bg-statusbar:#007acc;--border:#3c3c3c;--text-main:#d4d4d4;--text-dim:#858585;--text-bright:#ffffff;--accent-blue:#569cd6;--accent-lightblue:#9cdcfe;--accent-string:#ce9178;--accent-comment:#6a9955;--accent-func:#dcdcaa;--accent-type:#4ec9b0;--accent-orange:#d7ba7d;--accent-pink:#c586c0;--line-num:#858585;--selection:#264f78;--hover:#2a2d2e;--active-item:#37373d;--scrollbar:#424242;--focus-border:#007fd4;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;font-family:Fira Code,Cascadia Code,monospace;background:var(--bg-editor);color:var(--text-main);height:100vh;overflow:hidden;font-size:14px;cursor:default}.vscode-shell *{box-sizing:border-box}.vscode-shell a{color:inherit;text-decoration:none}.vscode-shell .app{display:flex;flex-direction:column;height:100vh;animation:vscode-boot .32s ease both}@keyframes vscode-boot{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.vscode-shell .titlebar{height:30px;background:var(--bg-activitybar);display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:12px;flex-shrink:0;position:relative;border-bottom:1px solid var(--border)}.vscode-shell .titlebar .dots{position:absolute;left:12px;display:flex;gap:8px}.vscode-shell .titlebar .dot{width:12px;height:12px;border-radius:50%;border:none;padding:0;cursor:pointer}.vscode-shell .dot.red{background:#ff5f56}.vscode-shell .dot.yellow{background:#ffbd2e}.vscode-shell .dot.green{background:#27c93f}.vscode-shell .titlebar-exit{position:absolute;left:70px;display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-dim);font-size:12px;font-family:inherit;cursor:pointer;padding:3px 8px;border-radius:4px}.vscode-shell .titlebar-exit:hover{color:var(--text-bright);background:#ffffff14}.vscode-shell .titlebar-exit svg{width:13px;height:13px}.vscode-shell .main{display:flex;flex:1;overflow:hidden;position:relative}.vscode-shell .activitybar{width:48px;background:var(--bg-activitybar);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:8px 0;flex-shrink:0}.vscode-shell .activitybar .top,.vscode-shell .activitybar .bottom{display:flex;flex-direction:column;align-items:center;gap:18px}.vscode-shell .activity-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#858585;cursor:pointer;position:relative;border-left:2px solid transparent;background:none;border-top:none;border-right:none;border-bottom:none;padding:0}.vscode-shell .activity-icon.active{color:#fff;border-left:2px solid #ffffff}.vscode-shell .activity-icon:hover{color:#fff}.vscode-shell .activity-icon svg{width:22px;height:22px}.vscode-shell .sidebar{width:260px;background:var(--bg-sidebar);flex-shrink:0;overflow-y:auto;transition:width .15s ease,min-width .15s ease;border-right:1px solid var(--border)}.vscode-shell .sidebar.collapsed{width:0;min-width:0;border-right:none;overflow:hidden}.vscode-shell .sidebar-header{padding:8px 20px 4px;font-size:11px;letter-spacing:.5px;color:var(--text-dim);text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}.vscode-shell .explorer-root{padding:2px 0}.vscode-shell .tree-item{display:flex;align-items:center;gap:6px;padding:3px 8px 3px 20px;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;color:var(--text-main);font-size:13px;background:none;border:none;width:100%;text-align:left;font-family:inherit}.vscode-shell .tree-item:hover{background:var(--hover)}.vscode-shell .tree-item.active{background:var(--active-item)}.vscode-shell .tree-item .chevron{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .1s ease;color:var(--text-dim)}.vscode-shell .tree-item.folder.open .chevron{transform:rotate(90deg)}.vscode-shell .tree-item .icon{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.vscode-shell .tree-item .name{overflow:hidden;text-overflow:ellipsis}.vscode-shell .folder-children{display:none}.vscode-shell .folder-children.open{display:block}.vscode-shell .indent-1 .tree-item{padding-left:36px}.vscode-shell .icon-md{color:#519aba}.vscode-shell .icon-js,.vscode-shell .icon-json{color:#cbcb41}.vscode-shell .icon-yaml{color:#a074c4}.vscode-shell .icon-ts{color:#3178c6}.vscode-shell .icon-folder{color:#dcb67a}.vscode-shell .editor-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.vscode-shell .tabbar{display:flex;background:var(--bg-tabbar);height:35px;flex-shrink:0;overflow-x:auto;border-bottom:1px solid var(--border)}.vscode-shell .tabbar::-webkit-scrollbar{height:0}.vscode-shell .tab{display:flex;align-items:center;gap:6px;padding:0 10px;height:35px;background:var(--bg-tab-inactive);border-right:1px solid var(--border);cursor:pointer;white-space:nowrap;color:var(--text-dim);font-size:13px;flex-shrink:0;position:relative}.vscode-shell .tab.active{background:var(--bg-tab-active);color:var(--text-bright)}.vscode-shell .tab.active:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--focus-border)}.vscode-shell .tab .icon{width:15px;height:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.vscode-shell .tab .close-btn{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;color:var(--text-dim);opacity:0;background:none;border:none;padding:0}.vscode-shell .tab:hover .close-btn{opacity:1}.vscode-shell .tab .close-btn:hover{background:#5a5a5a}.vscode-shell .tab .unsaved-dot{width:8px;height:8px;border-radius:50%;background:var(--text-bright);flex-shrink:0}.vscode-shell .tab:hover .unsaved-dot{display:none}.vscode-shell .breadcrumb{height:24px;display:flex;align-items:center;padding:0 12px;font-size:12px;color:var(--text-dim);background:var(--bg-editor);flex-shrink:0;gap:4px;border-bottom:1px solid transparent}.vscode-shell .breadcrumb span.sep{color:#5a5a5a}.vscode-shell .breadcrumb span.current{color:var(--text-main)}.vscode-shell .editor-scroll{flex:1;overflow-y:auto;overflow-x:auto;background:var(--bg-editor);position:relative}.vscode-shell .editor-scroll::-webkit-scrollbar{width:14px;height:14px}.vscode-shell .editor-scroll::-webkit-scrollbar-thumb{background:var(--scrollbar);border:3px solid var(--bg-editor);border-radius:7px}.vscode-shell .editor-scroll::-webkit-scrollbar-track{background:var(--bg-editor)}.vscode-shell .code-content{display:flex;min-height:100%;padding-bottom:40vh}.vscode-shell .line-numbers{text-align:right;color:var(--line-num);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:10px 16px;font-size:14px;line-height:21px}.vscode-shell .code-lines{padding:10px 16px;flex:1;font-size:14px;line-height:21px;white-space:pre;min-width:0}.vscode-shell .code-lines.wrap{white-space:pre-wrap;word-break:break-word}.vscode-shell .kw{color:var(--accent-blue)}.vscode-shell .str{color:var(--accent-string)}.vscode-shell .cmt{color:var(--accent-comment)}.vscode-shell .fn{color:var(--accent-func)}.vscode-shell .typ{color:var(--accent-type)}.vscode-shell .var{color:var(--accent-lightblue)}.vscode-shell .num{color:#b5cea8}.vscode-shell .punc{color:#d4d4d4}.vscode-shell .prop{color:var(--accent-lightblue)}.vscode-shell .link{color:var(--accent-lightblue);text-decoration:underline;cursor:pointer}.vscode-shell .link:hover{color:#fff}.vscode-shell .md-h{color:var(--accent-blue);font-weight:600}.vscode-shell .md-bold{color:var(--accent-orange);font-weight:600}.vscode-shell .key{color:var(--accent-lightblue)}.vscode-shell .terminal-panel{height:240px;background:var(--bg-editor);border-top:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;transition:height .15s ease}.vscode-shell .terminal-panel.collapsed{height:0;border-top:none}.vscode-shell .terminal-tabbar{height:30px;background:var(--bg-sidebar);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border-bottom:1px solid var(--border);padding-right:8px}.vscode-shell .terminal-tabs{display:flex;height:100%}.vscode-shell .terminal-tab{display:flex;align-items:center;gap:6px;padding:0 12px;height:100%;font-size:12px;color:var(--text-main);border-top:1px solid var(--focus-border);background:var(--bg-editor);cursor:default;text-transform:uppercase;letter-spacing:.3px}.vscode-shell .terminal-tab svg{width:14px;height:14px;flex-shrink:0}.vscode-shell .terminal-actions{display:flex;align-items:center;gap:10px;color:var(--text-dim)}.vscode-shell .terminal-actions button{background:none;border:none;padding:0;display:flex;color:inherit;cursor:pointer}.vscode-shell .terminal-actions svg{width:15px;height:15px}.vscode-shell .terminal-actions button:hover{color:var(--text-bright)}.vscode-shell .terminal-body{flex:1;overflow-y:auto;padding:8px 14px;font-size:13px;line-height:20px;color:#ccc}.vscode-shell .terminal-body::-webkit-scrollbar{width:14px}.vscode-shell .terminal-body::-webkit-scrollbar-thumb{background:var(--scrollbar);border:3px solid var(--bg-editor);border-radius:7px}.vscode-shell .term-line{white-space:pre-wrap;word-break:break-word}.vscode-shell .term-prompt-user{color:#4ec9b0}.vscode-shell .term-prompt-path{color:#569cd6}.vscode-shell .term-prompt-sym{color:#d4d4d4}.vscode-shell .term-output{color:#ccc}.vscode-shell .term-dim{color:#858585}.vscode-shell .term-accent{color:#ce9178}.vscode-shell .term-cursor{display:inline-block;width:7px;height:14px;background:#d4d4d4;vertical-align:middle;margin-left:2px;animation:vscode-blink 1s steps(1) infinite}@keyframes vscode-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.vscode-shell .vscode-term-input-row{display:flex;align-items:center}.vscode-shell .vscode-term-input{flex:1;background:transparent;border:none;outline:none;color:#ce9178;font-family:inherit;font-size:13px;padding:0;caret-color:#d4d4d4;min-width:20px}.vscode-shell .statusbar{height:22px;background:var(--bg-statusbar);display:flex;align-items:center;justify-content:space-between;padding:0 10px;font-size:12px;color:#fff;flex-shrink:0}.vscode-shell .statusbar .left,.vscode-shell .statusbar .right{display:flex;align-items:center;gap:14px;height:100%}.vscode-shell .statusbar .item{display:flex;align-items:center;gap:4px;height:100%;cursor:pointer;background:none;border:none;color:#fff;font-size:12px;font-family:inherit;padding:0 4px}.vscode-shell .statusbar .item:hover{background:#ffffff1f}.vscode-shell .statusbar .item.active-status{background:#ffffff2e}.vscode-shell .statusbar svg{width:14px;height:14px}@media (max-width: 768px){.vscode-shell .sidebar{position:absolute;top:30px;bottom:22px;left:48px;z-index:50;box-shadow:4px 0 12px #0006}.vscode-shell .sidebar.collapsed{width:0}.vscode-shell .sidebar:not(.collapsed){width:240px}.vscode-shell .breadcrumb{font-size:11px}.vscode-shell .statusbar .right .hide-mobile,.vscode-shell .titlebar-exit span{display:none}.vscode-shell .titlebar-exit{left:60px}}:root{--ink:#0E0F11;--ink-2:#15171A;--paper:#F6F4EE;--paper-dim:#C9C6BC;--graphite:#3A3D42;--graphite-soft:#26282C;--sage:#8C9A7E;--sage-dim:#5C6852;--clay:#D08552;--clay-soft:#C97B4A;--red-err:#C2604B;--display:"Fraunces", serif;--body:"Inter", sans-serif;--mono:"JetBrains Mono", monospace;--maxw:1180px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--paper);font-family:var(--body);overflow-x:hidden;-webkit-font-smoothing:antialiased;cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M7 2h2v12H7zM2 7h12v2H2z" fill="%238C9A7E"/></svg>') 8 8,auto}a,button,.nav-toggle,.project-view-toggle button{cursor:pointer}.terminal-input{cursor:text}::selection{background:var(--clay-soft);color:var(--ink)}a{color:inherit;text-decoration:none}code{font-family:var(--mono);background:var(--ink-2);border:1px solid var(--graphite-soft);padding:1px 6px;border-radius:3px;font-size:.92em;color:var(--sage)}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--clay);outline-offset:3px;border-radius:2px}header.site-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:linear-gradient(to bottom,#0e0f11eb,#0e0f1100);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.nav-inner{max-width:var(--maxw);margin:0 auto;padding:22px 32px;display:flex;align-items:center;justify-content:space-between}.nav-left{display:flex;align-items:center;gap:14px}.vscode-launch{position:fixed;bottom:32px;right:32px;z-index:100;display:flex;align-items:center;justify-content:center;width:50px;height:50px;padding:0;background:var(--ink-2);border:1px solid var(--graphite);border-radius:12px;cursor:pointer;box-shadow:0 8px 24px #0006;transition:all .3s ease;animation:float-pulse 2s infinite ease-in-out}@keyframes float-pulse{0%{box-shadow:0 0 #3574f066}70%{box-shadow:0 0 0 10px #3574f000}to{box-shadow:0 0 #3574f000}}.vscode-launch svg{width:26px;height:26px;transition:transform .3s ease}.vscode-launch:hover{border-color:#3574f0;background:#3574f01f;transform:translateY(-4px);animation:none}.vscode-launch:hover svg{transform:scale(1.1)}.vscode-launch:active{transform:translateY(0)}.vscode-launch-tip{position:absolute;right:calc(100% + 14px);top:50%;transform:translateY(-50%) translate(10px);white-space:nowrap;font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--ink);background:var(--paper);padding:8px 12px;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:5;box-shadow:0 4px 12px #0003}.vscode-launch-tip:before{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-left-color:var(--paper)}.vscode-launch:hover .vscode-launch-tip{opacity:1;transform:translateY(-50%) translate(0)}.nav-mark{font-family:var(--mono);font-size:14px;letter-spacing:.02em;color:var(--paper);display:flex;align-items:center;gap:8px}.nav-mark .dot{width:7px;height:7px;border-radius:50%;background:var(--sage);display:inline-block;box-shadow:0 0 8px var(--sage)}.nav-links{display:flex;gap:28px;font-family:var(--mono);font-size:13px;color:var(--paper-dim)}.nav-links a{transition:color .2s ease;position:relative}.nav-links a:hover{color:var(--paper)}.nav-links a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--clay);transition:width .25s ease}.nav-links a:hover:after{width:100%}.nav-cta{font-family:var(--mono);font-size:13px;border:1px solid var(--graphite);padding:8px 16px;border-radius:3px;transition:border-color .2s ease,color .2s ease}.nav-cta:hover{border-color:var(--sage);color:var(--sage)}.nav-toggle{display:none;font-family:var(--mono);font-size:13px;border:1px solid var(--graphite);padding:7px 12px;border-radius:3px;background:none;color:var(--paper);cursor:pointer}.nav-mobile-menu{display:none}@media (max-width:760px){.nav-links,.nav-cta-desktop{display:none}.nav-toggle{display:block}.nav-mobile-menu{display:flex;flex-direction:column;gap:2px;padding:0 32px 20px;font-family:var(--mono);font-size:14px}.nav-mobile-menu a{padding:14px 0;border-top:1px solid var(--graphite-soft);color:var(--paper-dim)}.nav-mobile-menu a:hover{color:var(--paper)}}.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding-top:90px;overflow:hidden}#hero-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;opacity:0;transition:opacity 1.6s ease}#hero-canvas.loaded{opacity:1}.hero-grain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 30% 20%,#0e0f1100,#0e0f114d 60%,#0e0f11bf)}.hero-content{position:relative;z-index:2;width:100%}.hero-eyebrow{font-family:var(--mono);font-size:13px;color:var(--sage);letter-spacing:.06em;display:flex;align-items:center;gap:10px;margin-bottom:26px}.hero-eyebrow .blink{display:inline-block;width:8px;height:8px;background:var(--clay-soft);animation:blink 1.4s steps(2) infinite}@keyframes blink{50%{opacity:0}}.hero h1{font-family:var(--display);font-weight:500;font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.04;letter-spacing:-.01em;max-width:880px;color:var(--paper)}.hero h1 em{font-style:italic;font-weight:400;color:var(--clay)}.hero-sub{margin-top:28px;font-size:clamp(1rem,1.6vw,1.2rem);color:var(--paper-dim);max-width:540px;line-height:1.6;font-weight:400}.hero-sub .stack-word{color:var(--paper);font-family:var(--mono);font-size:.92em;border-bottom:1px dashed var(--graphite)}.hero-actions{margin-top:44px;display:flex;gap:16px;flex-wrap:wrap}.btn{font-family:var(--mono);font-size:14px;padding:14px 26px;border-radius:3px;transition:all .25s ease;display:inline-flex;align-items:center;gap:10px;cursor:pointer;border:none}.btn-primary{background:var(--paper);color:var(--ink)}.btn-primary:hover{background:var(--clay);color:var(--ink);transform:translateY(-1px)}.btn-ghost{border:1px solid var(--graphite);color:var(--paper)}.btn-ghost:hover{border-color:var(--sage);color:var(--sage)}.scroll-cue{position:absolute;bottom:36px;left:32px;z-index:2;font-family:var(--mono);font-size:11px;color:var(--paper-dim);display:flex;align-items:center;gap:10px;letter-spacing:.08em}.scroll-cue .line{width:1px;height:30px;background:linear-gradient(to bottom,var(--paper-dim),transparent);position:relative;overflow:hidden}.scroll-cue .line:after{content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--clay);animation:scrollline 1.8s ease-in-out infinite}@keyframes scrollline{0%{top:-100%}to{top:100%}}@media (max-width:760px){.scroll-cue{display:none}}section{position:relative;padding:120px 0;border-top:1px solid var(--graphite-soft)}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:64px;flex-wrap:wrap;gap:16px}.section-path{font-family:var(--mono);font-size:13px;color:var(--sage);letter-spacing:.03em}.section-path:before{content:"~/";color:var(--graphite)}.section-title{font-family:var(--display);font-weight:500;font-size:clamp(2rem,4vw,2.8rem);color:var(--paper)}.section-count{font-family:var(--mono);font-size:13px;color:var(--paper-dim)}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:start}.about-text p{font-size:1.08rem;line-height:1.75;color:var(--paper-dim);margin-bottom:22px;max-width:560px}.about-text p strong{color:var(--paper);font-weight:600}.about-text a.inline-link{color:var(--clay);border-bottom:1px solid rgba(208,133,82,.4)}.about-text a.inline-link:hover{border-bottom-color:var(--clay)}.terminal-card{background:var(--ink-2);border:1px solid var(--graphite-soft);border-radius:6px;overflow:hidden;font-family:var(--mono);font-size:13.5px;cursor:text}.terminal-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--graphite-soft);background:#ffffff05}.terminal-bar span:not(.terminal-bar-label){width:10px;height:10px;border-radius:50%;background:var(--graphite);flex-shrink:0}.terminal-bar-label{margin-left:auto;font-size:11.5px;color:var(--graphite)}.terminal-body{padding:22px 20px;line-height:1.9;color:var(--paper-dim);max-height:380px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--graphite-soft) transparent}.terminal-body::-webkit-scrollbar{width:6px}.terminal-body::-webkit-scrollbar-thumb{background:var(--graphite-soft);border-radius:3px}.terminal-body .prompt{color:var(--sage)}.terminal-body .out{color:var(--paper)}.terminal-body .comment{color:var(--graphite)}.terminal-body .val-str{color:var(--clay)}.terminal-body .blink-cursor{color:var(--sage);animation:blink 1.1s steps(2) infinite}.terminal-input-row{display:flex;align-items:center;gap:8px;margin-top:4px}.terminal-input{flex:1;background:none;border:none;color:var(--paper);font-family:var(--mono);font-size:13.5px;caret-color:var(--sage)}.terminal-input:focus{outline:none}@media (max-width:880px){.about-grid{grid-template-columns:1fr;gap:48px}}.stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--graphite-soft);border:1px solid var(--graphite-soft)}.stack-card{background:var(--ink);padding:32px 28px;transition:background .3s ease;position:relative}.stack-card:hover{background:var(--ink-2)}.stack-card .stack-label{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--graphite);text-transform:uppercase;margin-bottom:14px}.stack-card h3{font-family:var(--display);font-size:1.4rem;font-weight:500;color:var(--paper);margin-bottom:10px}.stack-card p{font-size:.92rem;color:var(--paper-dim);line-height:1.6}.stack-card .stack-tags{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}.stack-card .stack-tags span{font-family:var(--mono);font-size:11px;color:var(--sage);border:1px solid var(--sage-dim);padding:3px 9px;border-radius:20px}.experience-list{display:flex;flex-direction:column}.experience-row{display:grid;grid-template-columns:180px 1.5fr 1fr;gap:32px;padding:36px 0;border-top:1px solid var(--graphite-soft);align-items:start}.experience-list .experience-row:first-child{border-top:none}.experience-duration{font-family:var(--mono);font-size:13px;color:var(--graphite);padding-top:6px}.experience-main h3{font-family:var(--display);font-size:1.5rem;font-weight:500;color:var(--paper);margin-bottom:8px}.experience-location{font-family:var(--mono);font-size:13px;color:var(--clay);margin-bottom:16px}.experience-highlights{list-style-type:none;padding:0;margin:0}.experience-highlights li{color:var(--paper-dim);line-height:1.65;font-size:.98rem;margin-bottom:10px;position:relative;padding-left:16px}.experience-highlights li:before{content:"▹";position:absolute;left:0;color:var(--sage)}@media (max-width:760px){.experience-row{grid-template-columns:1fr;gap:14px}.experience-duration{padding-top:0;margin-bottom:4px}}.project-list{display:flex;flex-direction:column}.project-row{display:grid;grid-template-columns:60px 1.3fr 1fr;gap:32px;padding:36px 0;border-top:1px solid var(--graphite-soft);align-items:start;transition:opacity .2s ease}.project-list .project-row:first-child{border-top:none}.project-num{font-family:var(--mono);font-size:13px;color:var(--graphite);padding-top:6px}.project-main h3{font-family:var(--display);font-size:1.7rem;font-weight:500;color:var(--paper);margin-bottom:10px;display:flex;align-items:center;gap:12px}.project-main h3 .arrow{font-family:var(--body);font-size:1.1rem;color:var(--clay);opacity:0;transform:translate(-6px);transition:all .25s ease}.project-row:hover .arrow{opacity:1;transform:translate(0)}.project-main p{color:var(--paper-dim);line-height:1.65;font-size:.98rem;max-width:520px}.project-meta{display:flex;flex-direction:column;gap:14px;padding-top:6px}.project-tags{display:flex;flex-wrap:wrap;gap:8px}.project-tags span{font-family:var(--mono);font-size:11px;color:var(--paper-dim);background:var(--ink-2);border:1px solid var(--graphite-soft);padding:4px 10px;border-radius:3px}.project-links{display:flex;gap:16px;font-family:var(--mono);font-size:12.5px}.project-links a{color:var(--sage);border-bottom:1px solid transparent}.project-links a:hover{border-bottom-color:var(--sage)}@media (max-width:760px){.project-row{grid-template-columns:1fr;gap:14px}.project-num{display:none}}.contact-section{border-bottom:none}.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:60px}.contact-big{font-family:var(--display);font-size:clamp(2.2rem,5vw,3.6rem);font-weight:500;line-height:1.15;color:var(--paper);max-width:620px}.contact-big em{font-style:italic;color:var(--clay);font-weight:400}.contact-channels{display:flex;flex-direction:column;gap:0}.channel-row{display:flex;justify-content:space-between;align-items:center;padding:20px 0;border-top:1px solid var(--graphite-soft);font-family:var(--mono);font-size:14px}.contact-channels .channel-row:last-child{border-bottom:1px solid var(--graphite-soft)}.channel-row .channel-label{color:var(--graphite)}.channel-row a{color:var(--paper);transition:color .2s ease}.channel-row a:hover{color:var(--clay)}.contact-cta-row{margin-top:48px}footer{padding:36px 0 50px;display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;color:var(--graphite);flex-wrap:wrap;gap:12px}@media (max-width:880px){.contact-grid{grid-template-columns:1fr;gap:40px}}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}.hero-eyebrow .blink{animation:none}.scroll-cue .line:after{animation:none}.blink-cursor{animation:none}}.boot-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--ink);display:flex;flex-direction:column;justify-content:center;padding:0 32px;font-family:var(--mono);font-size:14px;line-height:1.9;opacity:1;transition:opacity .5s ease}.boot-screen.boot-fade{opacity:0}.boot-lines{max-width:640px;margin:0 auto;width:100%}.boot-lines .out{color:var(--paper-dim)}.boot-lines .val-str{color:var(--clay)}.boot-lines .boot-prompt{color:var(--paper)}.boot-lines .blink-cursor{color:var(--sage)}.boot-skip{position:absolute;bottom:28px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:11px;color:var(--graphite);letter-spacing:.04em}.matrix-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;cursor:pointer;background:var(--ink)}.matrix-canvas{width:100%;height:100%;display:block}.matrix-hint{position:absolute;bottom:32px;left:0;right:0;text-align:center;font-family:var(--mono);font-size:12px;color:var(--paper-dim);letter-spacing:.05em;pointer-events:none}.project-view-controls{display:flex;align-items:center;gap:18px}.project-graph-wrap{display:grid;grid-template-columns:1fr 260px;gap:24px;align-items:start}.project-graph-svg{width:100%;height:auto;background:var(--ink-2);border:1px solid var(--graphite-soft);border-radius:6px;touch-action:none}.graph-edge{stroke:var(--graphite-soft);fill:none;cursor:pointer;transition:stroke .2s ease}.graph-edge-hover{stroke:var(--clay)}.graph-edge-label{font-family:var(--mono);font-size:10px;fill:var(--clay)}.graph-node{cursor:grab}.graph-node:active{cursor:grabbing}.graph-node-circle{fill:var(--ink);stroke:var(--sage);stroke-width:1.5;transition:r .15s ease,stroke .15s ease}.graph-node-circle-wip{stroke:var(--clay);stroke-dasharray:3 3}.graph-node-label{font-family:var(--mono);font-size:12px;fill:var(--paper);pointer-events:none}.graph-node-name{font-family:var(--mono);font-size:10.5px;fill:var(--paper-dim);pointer-events:none}.project-graph-detail{background:var(--ink-2);border:1px solid var(--graphite-soft);border-radius:6px;padding:20px;min-height:120px}.project-graph-detail h4{font-family:var(--display);font-size:1.2rem;font-weight:500;color:var(--paper);margin-bottom:12px}.project-graph-tags{display:flex;flex-wrap:wrap;gap:8px}.project-graph-tags span{font-family:var(--mono);font-size:11px;color:var(--sage);border:1px solid var(--sage-dim);padding:3px 9px;border-radius:20px}.graph-hint{font-size:.88rem;color:var(--paper-dim);line-height:1.6}@media (max-width:880px){.project-graph-wrap{grid-template-columns:1fr}}body.god-mode{filter:brightness(1.2) contrast(1.1) hue-rotate(90deg) saturate(.5);transition:filter .1s ease}.achievement-toast-container{position:fixed;bottom:24px;right:24px;display:flex;flex-direction:column;gap:12px;z-index:2000;pointer-events:none}.achievement-toast{background:var(--ink-2);border:1px solid var(--graphite-soft);border-radius:6px;padding:12px 16px;display:flex;align-items:center;gap:14px;pointer-events:auto;cursor:pointer;box-shadow:0 8px 24px #00000080}.achievement-icon{font-size:22px}.achievement-content{display:flex;flex-direction:column;gap:2px}.achievement-title{font-family:var(--mono);font-size:10px;color:var(--sage);text-transform:uppercase;letter-spacing:.08em}.achievement-label{font-family:var(--body);font-size:13px;color:var(--paper);font-weight:500}@keyframes text-glitch{0%{text-shadow:2px 0 0 var(--clay),-2px 0 0 var(--sage)}20%{text-shadow:-2px -1px 0 var(--clay),2px 1px 0 var(--sage)}40%{text-shadow:2px 1px 0 var(--clay),-2px -1px 0 var(--sage)}60%{text-shadow:-1px -2px 0 var(--clay),1px 2px 0 var(--sage)}80%{text-shadow:1px 2px 0 var(--clay),-1px -2px 0 var(--sage)}to{text-shadow:0 0 0 transparent,0 0 0 transparent}}.project-main h3:hover,.hero h1 em:hover,.project-main h3:focus,.hero h1 em:focus{animation:text-glitch .35s ease-in-out forwards}
