@font-face{font-family:Satoshi-fallback;src:local("Arial"),local("Helvetica Neue");size-adjust:100%;ascent-override:100%;descent-override:25%;line-gap-override:0%}@font-face{font-family:ClashDisplay-fallback;src:local("Arial"),local("Helvetica Neue");size-adjust:103%;ascent-override:94%;descent-override:23%;line-gap-override:0%}:root{--bg-primary: #05050a;--bg-secondary: #0a0a12;--bg-card: #0f0f18;--accent: #00c4b0;--accent-hover: #00e5cc;--text-primary: #f0f0f8;--text-body: #a0a0b8;--text-muted: #52526e;--border-default: #1a1a28;--border-hover: #00c4b0;--accent-dim: rgba(0, 196, 176, .15);--glow: rgba(0, 196, 176, .12);--code-bg: #0a0a18;--code-border: #1e1e30;--code-text: #a0a0b8;--vis-line: #3a3a4a;--vis-fill: #1a1a26;--card-shadow: 0 -18px 50px rgba(0, 0, 0, .55);--card-shadow-hover: 0 -18px 50px rgba(0, 0, 0, .55), 0 0 0 1px var(--border-hover), 0 0 20px var(--glow);--nav-bg: rgba(5, 5, 10, .8);--accent-secondary: #7c3aed;--spotlight: rgba(0, 196, 176, .03);--gradient-text: linear-gradient(90deg, #00c4b0, #7c3aed, #00c4b0);--z-background: -1;--z-base: 0;--z-cards: 10;--z-nav: 100;--z-cursor: 200;--z-tooltip: 300;--bg: var(--bg-primary);--bg-raise: var(--bg-secondary);--surface: var(--bg-card);--line: var(--border-default);--text: var(--text-primary);--muted: var(--text-body);--font-display: "Clash Display", "ClashDisplay-fallback", "Georgia", serif;--font-body: "Satoshi", "Satoshi-fallback", -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", ui-monospace, monospace;--max: 1100px}[data-theme=light]{--bg-primary: #f2f0eb;--bg-secondary: #ebe8e1;--bg-card: #ffffff;--accent: #007166;--accent-hover: #00564c;--text-primary: #0a0a0f;--text-body: #3a3a4a;--text-muted: #8a8a9a;--border-default: #d8d4cc;--border-hover: #007166;--accent-dim: rgba(0, 113, 102, .13);--glow: rgba(0, 113, 102, .18);--code-bg: #0f0f18;--code-border: #1e1e30;--code-text: #a0f0e0;--vis-line: #c8c8bc;--vis-fill: #f0f0e8;--card-shadow: 0 2px 12px rgba(0, 0, 0, .06);--card-shadow-hover: 0 0 0 1px var(--border-hover), 0 8px 32px rgba(0, 0, 0, .1);--nav-bg: rgba(255, 255, 255, .88);--accent-secondary: #6d28d9;--spotlight: rgba(0, 158, 142, .03);--gradient-text: linear-gradient(135deg, #007166 0%, #007166 35%, #5b21b6 50%, #007166 65%, #007166 100%)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px 200px}body,.nav,.stats,.project-card,.project-visual,.about-terminal,.about-terminal pre,.tech-card,.certs li,.footer,.status-badge,.avail-badge,.btn-ghost,.filter-btn,.tl-card,.theme-toggle{transition:background-color .3s ease,color .3s ease,border-color .3s ease}@media (pointer: fine){body,a,button,[data-hover]{cursor:none}}::selection{background:#00c4b040;color:var(--text)}.mono{font-family:var(--font-mono)}a{color:inherit;text-decoration:none}em{font-style:normal;color:var(--muted)}.cursor{position:fixed;top:0;left:0;pointer-events:none;z-index:var(--z-cursor)}.cursor-dot{display:block;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--accent);opacity:.85;transition:transform .25s ease,opacity .25s ease}.cursor-dot.is-active{transform:scale(3.33);background:transparent;border:1px solid var(--accent);opacity:.9}.cursor-spotlight{position:fixed;top:0;left:0;width:400px;height:400px;margin:-200px 0 0 -200px;border-radius:50%;background:radial-gradient(circle,var(--spotlight),transparent 70%);pointer-events:none;z-index:var(--z-background);mix-blend-mode:screen}[data-theme=light] .cursor-spotlight{mix-blend-mode:multiply}@media (hover: none),(pointer: coarse){.cursor,.cursor-spotlight{display:none}}.gradient-text,.gradient-text .word{background-image:var(--gradient-text);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:gradient-shift 4s linear infinite}@keyframes gradient-shift{to{background-position:200% 0}}.word-mask,.word{display:inline-block}.scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--accent);transform-origin:0 50%;z-index:calc(var(--z-nav) + 10)}.theme-toggle{position:fixed;top:.95rem;right:clamp(1.25rem,4vw,3rem);z-index:150;display:flex;align-items:center;justify-content:center;width:44px;height:36px;border-radius:99px;border:1px solid var(--line);background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--text);padding:0}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle-icon{display:flex;width:17px;height:17px}.theme-toggle-icon svg{width:100%;height:100%}.nav{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);display:flex;align-items:center;gap:2.5rem;padding:1.1rem clamp(1.25rem,4vw,3rem);padding-right:calc(clamp(1.25rem,4vw,3rem) + 3.6rem);transition:background .3s ease,border-color .3s ease;border-bottom:1px solid transparent}.nav.is-scrolled{background:var(--nav-bg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line)}.nav-logo{display:flex;flex-direction:column;align-items:flex-start}.logo-mark{font-weight:700;font-size:18px;letter-spacing:.05em;color:var(--text-primary);line-height:1.1;transition:color .2s ease}.nav-logo:hover .logo-mark{color:var(--accent)}.logo-sub{font-weight:400;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);line-height:1.3;white-space:nowrap}.nav-links{display:flex;gap:2rem;margin-left:auto}.nav-links a{position:relative;font-family:var(--font-mono);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:color .2s ease}.nav-links a:after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform .2s ease}.nav-links a:hover,.nav-links a.is-active{color:var(--accent)}.nav-links a:hover:after,.nav-links a.is-active:after{transform:scaleX(1)}.status-badge{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;color:var(--text);border:1px solid var(--line);border-radius:99px;padding:.45rem .95rem;transition:border-color .2s ease}.status-badge:hover{border-color:var(--accent)}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#2ee06a;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #2ee06a80}50%{box-shadow:0 0 0 7px #2ee06a00}}.nav-burger{display:none;flex-direction:column;gap:7px;background:none;border:0;padding:6px;z-index:110}.nav-burger span{width:26px;height:1.5px;background:var(--text);transition:transform .3s ease}.nav-burger.is-open span:first-child{transform:translateY(4.25px) rotate(45deg)}.nav-burger.is-open span:last-child{transform:translateY(-4.25px) rotate(-45deg)}.nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:#06060af7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.2rem}.nav-overlay a{font-family:var(--font-display);font-size:clamp(2rem,8vw,3rem);font-weight:600}.overlay-badge{margin-top:1.5rem}@media (max-width: 768px){.nav-links,.nav .status-badge{display:none}}.hero{position:relative;min-height:100svh;display:flex;align-items:flex-start;overflow:hidden}.particle-field{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.5}.hero-mesh{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.mesh-blob{position:absolute;width:55vw;height:55vw;max-width:720px;max-height:720px;border-radius:50%;transform:translate(-50%,-50%)}.mesh-1{left:20%;top:50%;background:radial-gradient(circle,rgba(0,196,176,.08),transparent 70%);animation:drift-1 12s ease-in-out infinite alternate}.mesh-2{left:80%;top:20%;background:radial-gradient(circle,rgba(124,58,237,.06),transparent 70%);animation:drift-2 12s ease-in-out infinite alternate}.mesh-3{left:60%;top:80%;background:radial-gradient(circle,rgba(0,196,176,.04),transparent 70%);animation:drift-3 12s ease-in-out infinite alternate}@keyframes drift-1{to{transform:translate(calc(-50% + 60px),calc(-50% - 40px))}}@keyframes drift-2{to{transform:translate(calc(-50% - 50px),calc(-50% + 60px))}}@keyframes drift-3{to{transform:translate(calc(-50% + 40px),calc(-50% + 50px))}}.hero-orbs{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.orb{position:absolute;left:var(--ox);top:var(--oy);padding:.35rem .75rem;border:1px solid var(--accent);border-radius:99px;font-size:10px;letter-spacing:.06em;color:var(--muted);background:color-mix(in srgb,var(--bg-card) 55%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:.5;pointer-events:auto;transition:opacity .2s ease;animation:orb-0 var(--odur) ease-in-out infinite alternate;will-change:transform}.orb:nth-child(2n){border-color:var(--accent-secondary)}.orb:hover{opacity:1}.orb[data-float="1"]{animation-name:orb-1}.orb[data-float="2"]{animation-name:orb-2}.orb[data-float="3"]{animation-name:orb-3}@keyframes orb-0{to{transform:translate(14px,-20px)}}@keyframes orb-1{to{transform:translate(-16px,14px)}}@keyframes orb-2{to{transform:translate(10px,18px)}}@keyframes orb-3{to{transform:translate(-12px,-14px)}}@media (max-width: 1023px){.hero-orbs{display:none}}.hero-inner{position:relative;z-index:1;width:100%;max-width:var(--max);margin:0 auto;padding:clamp(7rem,20vh,12rem) clamp(20px,4vw,3rem) 5rem}.hero-kicker{font-size:clamp(.62rem,1.9vw,.85rem);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.hero-headline{font-family:var(--font-display);font-weight:600;font-size:clamp(2.6rem,7.5vw,5.4rem);line-height:1.06;letter-spacing:-.015em;max-width:14ch}.hero-line{display:block}.hero-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em;margin-right:.28em}.hero-mask>span{display:inline-block}.hero-headline .accent{color:var(--accent)}.role-cycler{display:flex;align-items:center;gap:.6rem;margin-top:1.6rem;font-size:clamp(.78rem,2.6vw,1rem);white-space:nowrap;letter-spacing:.06em;color:var(--accent);height:1.7em;overflow:hidden}.role-prompt{color:var(--muted)}.type-caret{display:inline-block;width:9px;height:1.15em;background:var(--accent);animation:caret-blink 1s steps(1) infinite}@keyframes caret-blink{50%{opacity:0}}.avail-badge{display:inline-flex;align-items:center;gap:.65rem;margin-top:1.6rem;padding:.5rem 1rem;border:1px solid var(--line);border-radius:99px;font-size:.78rem;letter-spacing:.05em;background:var(--accent-dim)}.avail-sep{width:1px;height:.95em;background:var(--line)}.avail-locs{color:var(--muted)}.hero-sub{margin-top:2.2rem;max-width:46ch;color:var(--muted);font-size:1.08rem}.hero-ctas{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.8rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;font-family:var(--font-mono);font-size:.88rem;letter-spacing:.04em;padding:.6rem 1.8rem;border-radius:99px;border:1px solid var(--accent);transition:background .2s ease,color .2s ease,box-shadow .2s ease,border-color .2s ease}.resume-wrap{position:relative;display:inline-block}.action-tip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);white-space:nowrap;background:var(--accent);color:var(--bg);font-size:.72rem;padding:.45rem .8rem;border-radius:8px;z-index:var(--z-tooltip)}.btn-primary{background:var(--accent);color:var(--bg);font-weight:500}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:0 0 32px var(--glow)}.btn-ghost{color:var(--text);border-color:var(--line)}.btn-ghost:hover{border-color:var(--accent-hover);color:var(--accent-hover)}.scroll-cue-wrap{position:absolute;bottom:2.2rem;left:50%;transform:translate(-50%);z-index:1}.scroll-cue{display:block}.scroll-cue-line{display:block;width:1px;height:48px;background:var(--muted);overflow:hidden;position:relative}.scroll-cue-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);animation:cue 1.8s ease-in-out infinite}@keyframes cue{0%{transform:translateY(-100%)}60%,to{transform:translateY(100%)}}.section{max-width:var(--max);margin:0 auto;padding:clamp(60px,9vw,100px) clamp(20px,4vw,3rem)}.section,.stats{scroll-margin-top:4.5rem}.work,.journey,.contact{position:relative;z-index:0}.work:before,.journey:before,.contact:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:100vw;background:var(--bg-secondary);z-index:-1;transition:background-color .3s ease}.section-kicker{font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}.section-kicker:before{content:"— "}.section-title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.8rem,4.5vw,3rem);line-height:1.15;letter-spacing:-.01em;max-width:22ch;margin-bottom:clamp(2.5rem,6vw,4.5rem)}.marquee{display:flex;flex-direction:column;gap:1.4rem;padding:1.8rem 0;overflow:hidden;mask-image:linear-gradient(to right,transparent 0%,black 8%,black 92%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0%,black 8%,black 92%,transparent 100%)}.marquee-row{display:flex;align-items:center;gap:3rem;width:max-content;color:var(--text);animation:marquee 35s linear infinite;will-change:transform;transform:translateZ(0)}.marquee-row.is-reverse{animation-direction:reverse;animation-duration:40s}.marquee-row:hover{animation-play-state:paused}.marquee-icon{position:relative;display:flex;opacity:.5;transition:opacity .2s ease}.marquee-icon:hover{opacity:1}@keyframes marquee{to{transform:translate(-50%)}}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-raise)}.stats-strip{max-width:var(--max);margin:0 auto;padding:3.2rem clamp(1.25rem,4vw,3rem);display:grid;grid-template-columns:repeat(5,1fr);gap:2rem}.stat{display:flex;flex-direction:column;gap:.5rem}.stat-number{font-family:var(--font-display);font-weight:700;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1}.stat-suffix{color:var(--accent);display:inline-block;transform-origin:left bottom}.stat-number{cursor:default}.cred-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.4rem;max-width:var(--max);margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem) 2.4rem;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.cred-label{color:var(--accent)}.cred-divider{width:1px;height:1em;background:var(--line)}.stat-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}@media (max-width: 900px){.stats-strip{grid-template-columns:repeat(2,1fr);gap:2.5rem 1.5rem}.stats-strip .stat:last-child{grid-column:span 2}}.cap-list{display:flex;flex-direction:column}.cap-row{display:grid;grid-template-columns:140px 1fr;gap:2rem;padding:20px 0;border-top:1px solid var(--line);transition:background .3s ease}.cap-row.is-flipped{grid-template-columns:1fr 140px}.cap-row.is-flipped .cap-meta{order:2;align-items:flex-end}.cap-row:hover{background:linear-gradient(90deg,transparent,var(--accent-dim) 50%,transparent)}.cap-meta{display:flex;flex-direction:column;gap:1rem}.cap-icon{width:38px;height:38px;color:var(--accent)}.cap-icon svg{width:100%;height:100%}.cap-num{color:var(--accent-secondary);font-size:.85rem}.cap-body h3{font-family:var(--font-display);font-weight:600;font-size:clamp(1.3rem,2.6vw,1.7rem);margin-bottom:.8rem}.cap-body p{color:var(--muted);max-width:62ch}.tag-row{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;margin-top:1.2rem;font-size:.78rem;color:var(--accent);letter-spacing:.04em}.tag-row span+span:before{content:"· ";color:var(--muted)}@media (max-width: 700px){.cap-row,.cap-row.is-flipped{grid-template-columns:1fr;gap:1.2rem}.cap-row.is-flipped .cap-meta{order:0;align-items:flex-start}.cap-meta{flex-direction:row;align-items:center}}.filter-bar{display:flex;gap:.6rem;margin-bottom:2.2rem;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}.filter-bar::-webkit-scrollbar{display:none}.filter-btn{flex-shrink:0;font-size:.8rem;letter-spacing:.04em;padding:.5rem 1.1rem;border-radius:99px;border:1px solid var(--line);background:transparent;color:var(--muted)}.filter-btn:hover{border-color:var(--accent);color:var(--accent)}.filter-btn.is-active{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:500}.work-stack{display:flex;flex-direction:column;gap:2.5rem}.work-sticky{position:sticky;top:calc(5.5rem + var(--i) * .9rem);z-index:var(--z-cards)}.project-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:clamp(1.6rem,4vw,3rem);box-shadow:var(--card-shadow);transition:.2s ease-out;transition-property:border-color,transform,box-shadow,background-color}.project-card:hover{transform:translateY(-4px);border-color:var(--border-hover);box-shadow:var(--card-shadow-hover),0 8px 30px #00c4b01f}.project-head{display:flex;align-items:baseline;gap:1.6rem;margin-bottom:2rem;border-bottom:1px solid var(--line);padding-bottom:1.4rem}.project-num{font-size:.95rem;color:var(--accent)}.project-head h3{font-family:var(--font-display);font-weight:600;font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.1}.project-context{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-secondary);margin-top:.45rem}.project-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}.project-copy p{margin-bottom:1.3rem;color:var(--muted)}.project-copy .label{display:block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:.3rem}.project-outcome{color:var(--text)!important;border-left:2px solid var(--accent);padding-left:1rem}.project-visual{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:1.2rem}.project-visual svg{width:100%;height:auto;display:block}.project-visual .flow{stroke-dasharray:6 6;animation:flow 1.4s linear infinite}@keyframes flow{to{stroke-dashoffset:-12}}@media (max-width: 860px){.project-grid{grid-template-columns:1fr}.work-sticky{position:static}}.tech-groups{display:flex;flex-direction:column;gap:32px}.tech-group{display:grid;grid-template-columns:200px 1fr;gap:1.5rem;align-items:start;border-top:1px solid var(--line);padding-top:1.8rem}.tech-group-name{font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:400}.tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:12px;min-height:100px}@media (max-width: 520px){.tech-grid{grid-template-columns:repeat(2,1fr)}}.tech-grid-fallback{display:flex;flex-wrap:wrap;gap:.6rem}.fallback-pill{font-size:.8rem;padding:.45rem .9rem;border:1px solid var(--line);border-radius:99px;color:var(--text)}.tech-cell{display:flex}.tech-cell.is-primary,.tech-grid>.tech-card.is-primary{grid-column:span 2}.tech-card{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:88px;width:100%;padding:12px 8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;transition:border-color .2s ease,box-shadow .2s ease,background-color .3s ease}[data-theme=light] .tech-card{box-shadow:var(--card-shadow)}.tech-card:hover,.tech-card:focus-visible{outline:none;border-color:var(--cat);box-shadow:0 0 16px color-mix(in srgb,var(--cat) 25%,transparent)}.tech-card-icon{display:flex;transition:transform .2s ease}.tech-card:hover .tech-card-icon,.tech-card:focus-visible .tech-card-icon{transform:scale(1.15)}.tech-card .icon-concept{color:var(--accent)}.tech-card-name{font-size:12px;font-weight:600;line-height:1.2;text-align:center}.cat-dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--cat)}.cat-dot-inline{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cat);margin-right:.55rem;vertical-align:1px}.tech-card:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(4px);width:max-content;max-width:140px;white-space:normal;text-align:center;background:var(--surface);border:1px solid var(--line);color:var(--text);font-family:var(--font-mono);font-size:.72rem;line-height:1.4;padding:.45rem .75rem;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:var(--z-tooltip)}.tech-card:hover:after,.tech-card:focus-visible:after{opacity:1;transform:translate(-50%) translateY(0)}@media (max-width: 700px){.tech-group{grid-template-columns:1fr;gap:1rem}.tech-card:after{display:none}}.timeline{position:relative;display:flex;gap:1.4rem;overflow-x:auto;padding:2.2rem 0 1rem;scrollbar-width:none}.timeline::-webkit-scrollbar{display:none}.journey div:has(>.timeline){position:relative}.journey div:has(>.timeline):after{content:"";position:absolute;top:0;right:0;bottom:0;width:80px;pointer-events:none;background-image:linear-gradient(to right,transparent,var(--glow)),linear-gradient(to right,transparent,var(--bg-secondary) 85%)}@media (max-width: 768px){.journey div:has(>.timeline):after{display:none}}.timeline:before{content:"";position:absolute;top:.95rem;left:0;right:0;border-top:1px dashed var(--line);display:none}.tl-line{position:absolute;top:calc(.95rem - 1px);left:0;width:100%;height:2px;overflow:visible}.tl-line line{stroke:var(--line);stroke-width:1.5}.timeline.will-draw .tl-line line{stroke-dasharray:1;stroke-dashoffset:1}.timeline.will-draw.is-drawn .tl-line line{animation:line-draw 2s ease forwards}@keyframes line-draw{to{stroke-dashoffset:0}}.timeline.will-draw .tl-card{opacity:0}.timeline.will-draw.is-drawn .tl-card{animation:tl-card-in .3s ease-out forwards;animation-delay:var(--d)}@keyframes tl-card-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.tl-card{position:relative;flex:0 0 290px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.5rem 1.4rem;transition:.25s ease;transition-property:border-color,transform,box-shadow,background-color}.tl-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:0 0 0 1px var(--border-hover),0 0 20px var(--glow)}.tl-dot{position:absolute;top:-1.45rem;left:1.4rem;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--glow)}.tl-year{display:block;font-size:1.7rem;color:var(--accent-secondary);margin-bottom:.6rem}.tl-card h3{font-family:var(--font-display);font-weight:600;font-size:1.05rem;margin-bottom:.5rem}.tl-card p{font-size:.88rem;color:var(--muted)}@media (max-width: 768px){.timeline{flex-direction:column;overflow-x:visible;padding:0 0 0 1.4rem}.tl-line{display:none}.timeline:before{display:block;top:0;bottom:0;left:.2rem;right:auto;border-top:0;border-left:1px dashed var(--line)}.tl-card{flex:1 1 auto}.tl-dot{top:1.6rem;left:-1.45rem}}.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,4.5rem);align-items:start}.about-visual{position:sticky;top:6rem}.about-terminal{background:var(--code-bg);border:1px solid var(--code-border);border-radius:14px;overflow:hidden}.terminal-bar{display:flex;gap:7px;padding:.9rem 1.1rem;border-bottom:1px solid var(--code-border)}.terminal-bar span{width:10px;height:10px;border-radius:50%;background:var(--code-border)}.terminal-bar span:first-child{background:#00e5cc99}.about-terminal pre{padding:1.4rem 1.3rem;font-family:var(--font-mono);font-size:.82rem;line-height:1.8;color:var(--code-text);overflow-x:auto}@media (max-width: 700px){.about-terminal pre{font-size:11px}}.about-copy p{color:var(--muted);margin-bottom:1.5rem;max-width:58ch}.certs{margin-top:2.4rem;border-top:1px solid var(--line);padding-top:1.8rem}.certs h3{font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);font-weight:400;margin-bottom:1.1rem}.certs ul{list-style:none;display:flex;flex-direction:column;gap:.7rem}.certs li{display:flex;align-items:center;gap:.7rem;font-size:.85rem;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:.7rem 1rem;transition:border-color .2s ease;width:fit-content}.certs li:hover{border-color:var(--accent)}.certs li svg{width:16px;height:16px;color:var(--accent);flex-shrink:0}@media (max-width: 860px){.about-grid{grid-template-columns:1fr}.about-visual{position:static}}.building{position:relative;z-index:0;padding-top:clamp(3rem,6vw,4.5rem);padding-bottom:clamp(3rem,6vw,4.5rem)}.building:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:100vw;background:var(--surface);z-index:-1;transition:background-color .3s ease}.building-list{display:flex;flex-direction:column;gap:1rem;margin-top:.6rem}.building-item{font-size:15px;color:var(--muted);border-left:2px solid var(--accent);padding:.3rem 0 .3rem 1.1rem;max-width:62ch}.building-item span{color:var(--accent)}.contact{text-align:left;border-top:1px solid var(--line);padding-bottom:1rem}.contact-headline{font-family:var(--font-display);font-weight:600;font-size:clamp(2.4rem,7vw,4.5rem);line-height:1.08;letter-spacing:-.015em;max-width:16ch}.contact-headline em{color:var(--accent)}.contact-sub{color:var(--muted);max-width:52ch;margin-top:1.6rem;margin-bottom:2.8rem}.contact-actions{display:flex;flex-wrap:wrap;gap:1rem}.contact-status{display:inline-flex;align-items:center;gap:.6rem;margin-top:2.2rem;font-size:.8rem;color:var(--muted)}.footer{border-top:1px solid var(--accent);background:var(--surface);max-width:100%;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;padding:1.6rem clamp(1.25rem,4vw,3rem);font-size:.75rem;color:var(--muted)}.footer-links{display:flex;gap:1.4rem}.footer-links a:hover{color:var(--accent-hover)}.footer-meta{color:var(--muted)}.mobile-dock{display:none;position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:95;gap:.35rem;padding:.45rem .65rem;border-radius:99px;border:1px solid var(--line);background:var(--nav-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 10px 32px #00000047;transition:background-color .3s ease,border-color .3s ease}.dock-btn{position:relative;display:flex;align-items:center;justify-content:center;width:46px;height:42px;border-radius:99px;color:var(--muted);transition:color .2s ease}.dock-btn.is-active{color:var(--accent)}.dock-dot{position:absolute;top:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:0;transition:opacity .2s ease}.dock-btn.is-active .dock-dot{opacity:1}@media (max-width: 768px){.mobile-dock{display:flex}.nav-burger{display:none}.footer{padding-bottom:6rem}}@media (pointer: coarse){.filter-btn,.theme-toggle,.dock-btn{min-height:44px;min-width:44px}.footer-links a{padding:.7rem .3rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.marquee-row,.orb,.mesh-blob,.gradient-text,.gradient-text .word{animation:none!important}}
