:root{--bg:#0b0a12;--bg-1:#100e1a;--bg-2:#181627;--bg-3:#221f33;--fg:#f3f0ff;--fg-2:#a8a4be;--fg-3:#716d87;--line:#ffffff12;--line-2:#ffffff24;--c-violet:#8b5cf6;--c-indigo:#6366f1;--c-cyan:#22d3ee;--c-teal:#14b8a6;--c-amber:#fbbf24;--c-rose:#fb7185;--c-lime:#a3e635;--accent:var(--c-violet);--accent-2:var(--c-cyan);--accent-3:var(--c-amber);--accent-ink:#0b0a12;--font-sans:"Inter Tight", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-serif:"Instrument Serif", ui-serif, Georgia, serif;--radius:14px;--radius-sm:8px;--max:1200px;--pad:clamp(20px, 3.5vw, 40px);--gap:clamp(80px, 10vw, 140px)}:root[data-theme=light]{--bg:#fff;--bg-1:#fafaf7;--bg-2:#f4f3ee;--bg-3:#eae8e0;--fg:#0d0b14;--fg-2:#4a4658;--fg-3:#8b8799;--line:#0d0b1412;--line-2:#0d0b1424;--accent:#5b2bd9;--accent-2:#0e7490;--accent-3:#b45309;--accent-ink:#fff}:root[data-palette=aurora]{--accent:#8b5cf6;--accent-2:#22d3ee;--accent-3:#fbbf24}:root[data-palette=sunset]{--accent:#fb7185;--accent-2:#fbbf24;--accent-3:#f97316}:root[data-palette=forest]{--accent:#14b8a6;--accent-2:#a3e635;--accent-3:#fbbf24}:root[data-palette=cobalt]{--accent:#3b82f6;--accent-2:#22d3ee;--accent-3:#a78bfa}:root[data-theme=light][data-palette=aurora]{--accent:#6d3ff5;--accent-2:#0891b2;--accent-3:#d97706}:root[data-theme=light][data-palette=sunset]{--accent:#e11d48;--accent-2:#d97706;--accent-3:#ea580c}:root[data-theme=light][data-palette=forest]{--accent:#0d9488;--accent-2:#65a30d;--accent-3:#d97706}:root[data-theme=light][data-palette=cobalt]{--accent:#2563eb;--accent-2:#0891b2;--accent-3:#7c3aed}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg, var(--accent), var(--accent-2));border-radius:100px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg, var(--accent-2), var(--accent))}*{scrollbar-width:thin;scrollbar-color:var(--accent) var(--bg)}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em;counter-reset:section;font-size:15px;line-height:1.5;position:relative;overflow-x:hidden}.section{counter-increment:section}.hero-bg{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.hero-blob{filter:blur(120px);will-change:transform;border-radius:50%;position:absolute}.hero-blob-1{opacity:.85;background:radial-gradient(circle,#a855f766 0%,#ec489933 50%,#0000 100%);width:500px;height:500px;animation:24s ease-in-out infinite drift1;top:-10%;right:-5%}.hero-blob-2{filter:blur(100px);opacity:.75;background:radial-gradient(circle,#fb923c4d 0%,#0000 70%);width:400px;height:400px;animation:28s ease-in-out infinite drift2;top:20%;left:-10%}@keyframes drift1{0%,to{transform:translate(0)}50%{transform:translate(30px,-20px)}}@keyframes drift2{0%,to{transform:translate(0)}50%{transform:translate(-20px,25px)}}.hero-noise{opacity:.025;mix-blend-mode:overlay;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/></svg>");background-size:200px 200px;position:absolute;inset:0}:root[data-theme=dark] .hero-blob-1{opacity:.6}:root[data-theme=dark] .hero-blob-2{opacity:.5}:root[data-theme=dark] .hero-noise{opacity:.04}:root[data-theme=light] .nav{-webkit-backdrop-filter:blur(20px)saturate(180%);background:#ffffffc7;border-bottom:1px solid #0d0b140f}:root[data-theme=light] .project,:root[data-theme=light] .quote,:root[data-theme=light] .xp-item,:root[data-theme=light] .stack-card,:root[data-theme=light] .contact-card{background:#fff;box-shadow:0 1px #0d0b140a,0 8px 24px -12px #0d0b140f}:root[data-theme=light] .project:hover,:root[data-theme=light] .quote:hover{box-shadow:0 1px #0d0b140f,0 24px 48px -16px #0d0b141f}:root[data-theme=light] .tag{color:var(--fg-2);background:#0d0b140a;border-color:#0d0b1414}:root[data-theme=light] .btn-primary{box-shadow:0 1px 2px #0d0b1414, 0 8px 24px -8px color-mix(in oklab, var(--accent) 50%, transparent)}:root[data-theme=light] .btn-secondary{background:#fff;border-color:#0d0b141f}:root[data-theme=light] .btn-secondary:hover{background:var(--bg-1);border-color:#0d0b1433}:root[data-theme=light] .status{background:#0d0b140a;border-color:#0d0b1414}:root[data-theme=light] .hero-photo{box-shadow:0 2px 8px #0d0b140f,0 32px 80px -32px #0d0b142e}::selection{background:var(--accent);color:#fff}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px;transition:outline-offset .15s}a:focus-visible,button:focus-visible{outline-offset:4px}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}main,header,footer,section{z-index:2;position:relative}.wrap{width:100%;max-width:var(--max);padding:0 var(--pad);margin:0 auto}.nav{z-index:40;background:color-mix(in oklab, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(24px)saturate(180%);border-bottom:1px solid var(--line);position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;height:64px;display:flex}.brand{letter-spacing:-.015em;white-space:nowrap;align-items:center;gap:12px;font-size:14px;font-weight:600;display:inline-flex}.brand-mark{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);width:26px;height:26px;box-shadow:0 0 20px color-mix(in oklab, var(--accent) 40%, transparent);border-radius:8px;position:relative}.brand-mark:after{content:"";background:var(--bg);border-radius:50%;width:6px;height:6px;position:absolute;inset:5px 5px auto auto}.nav-links{align-items:center;gap:2px;display:flex}.nav-link{color:var(--fg-2);border-radius:8px;padding:8px 14px;font-size:13px;font-weight:500;transition:color .15s,background .15s;position:relative}.nav-link:hover{color:var(--fg);background:var(--bg-2)}.nav-link.is-active{color:var(--fg)}.nav-link.is-active:after{content:"";background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:2px;height:1.5px;animation:.35s cubic-bezier(.2,.8,.2,1) both navUnderline;position:absolute;bottom:4px;left:14px;right:14px}@keyframes navUnderline{0%{transform-origin:0;transform:scaleX(0)}to{transform-origin:0;transform:scaleX(1)}}.nav-sep{background:var(--line);width:1px;height:18px;margin:0 8px}.theme-btn{width:34px;height:34px;color:var(--fg-2);border-radius:8px;place-items:center;transition:color .15s,background .15s;display:grid}.theme-btn:hover{color:var(--fg);background:var(--bg-2)}.theme-btn svg{width:15px;height:15px}.nav-cta{background:var(--fg);font-weight:500;color:var(--bg)!important;padding:8px 16px!important;transition:background .15s,color .15s,box-shadow .2s!important}.nav-cta:hover{box-shadow:0 0 24px color-mix(in oklab, var(--accent) 45%, transparent);background:var(--accent)!important;color:#fff!important}.nav-burger{width:38px;height:38px;color:var(--fg);border-radius:8px;place-items:center;transition:background .15s;display:none}.nav-burger:hover{background:var(--bg-2)}.nav-burger svg{width:20px;height:20px}.nav-burger .icon-close,body.menu-open .nav-burger .icon-open{display:none}body.menu-open .nav-burger .icon-close{display:block}.mobile-menu{background:color-mix(in oklab, var(--bg) 95%, transparent);-webkit-backdrop-filter:blur(24px)saturate(160%);z-index:39;padding:32px var(--pad) 40px;opacity:0;pointer-events:none;flex-direction:column;gap:4px;transition:opacity .25s;display:none;position:fixed;inset:64px 0 0;overflow-y:auto}body.menu-open .mobile-menu{opacity:1;pointer-events:auto}.mobile-menu .mm-link{border-bottom:1px solid var(--line);letter-spacing:-.02em;color:var(--fg);justify-content:space-between;align-items:center;padding:18px 4px;font-size:22px;font-weight:500;transition:padding-left .2s,color .2s;display:flex}.mobile-menu .mm-link:hover,.mobile-menu .mm-link:active{color:var(--accent);padding-left:12px}.mobile-menu .mm-num{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.06em;font-size:11px}.mobile-menu .mm-cta{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:24px;padding:14px 20px;font-size:15px;font-weight:500;display:inline-flex}@media (width<=720px){.nav-link:not(.nav-cta),.nav-sep,.theme-btn{display:none}.nav-cta{display:none!important}.nav-burger{display:grid}.mobile-menu{display:flex}}.hero{border-bottom:1px solid var(--line);padding-top:clamp(64px,10vw,120px);padding-bottom:clamp(80px,10vw,130px);position:relative}.hero-grid{grid-template-columns:1fr 360px;align-items:start;gap:clamp(40px,6vw,88px);padding-top:24px;display:grid}@media (width<=900px){.hero-grid{grid-template-columns:1fr}}.status{font-family:var(--font-mono);color:var(--fg);letter-spacing:0;background:color-mix(in oklab, var(--bg-2) 80%, transparent);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;border-radius:100px;align-items:center;gap:10px;max-width:100%;margin-bottom:32px;padding:7px 14px 7px 10px;font-size:11.5px;display:inline-flex}.status-dot{background:#22c55e;border-radius:50%;width:8px;height:8px;animation:2.2s ease-out infinite pulse;position:relative;box-shadow:0 0 #22c55e}@keyframes pulse{0%{box-shadow:0 0 #22c55eb3}70%{box-shadow:0 0 0 8px #22c55e00}to{box-shadow:0 0 #22c55e00}}h1.hero-title{letter-spacing:-.04em;text-wrap:balance;max-width:14ch;margin:0 0 28px;font-size:clamp(42px,6.6vw,92px);font-weight:600;line-height:.98}.hero-title .grad{background:linear-gradient(110deg, var(--accent) 0%, var(--accent-2) 50%, var(--accent-3) 100%);-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:10s ease-in-out infinite shimmer}@keyframes shimmer{0%,to{background-position:0%}50%{background-position:100%}}.hero-title .serif{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--accent);font-style:italic;font-weight:400}.hero-sub{color:var(--fg-2);text-wrap:pretty;max-width:50ch;margin:0 0 36px;font-size:clamp(16px,1.3vw,18px);line-height:1.6}.hero-sub strong{color:var(--fg);font-weight:500}.hero-meta{border-top:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px;padding-top:32px;display:grid}@media (width<=700px){.hero-meta{grid-template-columns:repeat(2,1fr)}}.hero-meta-item{flex-direction:column;gap:6px;display:flex}.hero-meta-label{font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;font-size:10.5px}.hero-meta-value{color:var(--fg);font-size:14px;font-weight:500}.hero-meta-item:first-child .hero-meta-label{color:var(--accent)}.hero-meta-item:nth-child(2) .hero-meta-label{color:var(--accent-2)}.hero-meta-item:nth-child(3) .hero-meta-label{color:var(--accent-3)}.hero-meta-item:nth-child(4) .hero-meta-label{color:var(--c-rose)}.btn{white-space:nowrap;letter-spacing:-.005em;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:500;transition:background .18s,border-color .18s,color .18s,transform .18s,box-shadow .24s;display:inline-flex;position:relative}.btn svg{width:14px;height:14px}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:0 0 0 1px color-mix(in oklab, var(--accent) 50%, transparent), 0 8px 24px -6px color-mix(in oklab, var(--accent) 55%, transparent)}.btn-primary:hover{box-shadow:0 0 0 1px color-mix(in oklab, var(--accent) 60%, transparent), 0 14px 36px -6px color-mix(in oklab, var(--accent) 65%, transparent);transform:translateY(-1px)}.btn-secondary{background:var(--bg-2);color:var(--fg);border-color:var(--line-2)}.btn-secondary:hover{background:var(--bg-3);border-color:var(--fg-3)}.btn-row{flex-wrap:wrap;gap:10px;display:flex}.hero-photo-wrap{aspect-ratio:4/5;position:relative}.hero-photo{border-radius:var(--radius);background:var(--bg-2);border:1px solid var(--line-2);width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000a,0 20px 60px -20px #0000002e}.hero-photo img{object-fit:cover;width:100%;height:100%;transition:transform .6s,filter .4s;display:block}.hero-photo:hover img{transform:scale(1.03)}.photo-spec{white-space:nowrap;background:color-mix(in oklab, var(--bg-1) 85%, transparent);-webkit-backdrop-filter:blur(14px)saturate(160%);backdrop-filter:blur(14px)saturate(160%);border:1px solid var(--line-2);font-family:var(--font-mono);color:var(--fg);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:11px;display:flex;position:absolute;bottom:28px;left:-16px;box-shadow:0 12px 30px -8px #0006}.photo-spec-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 10px var(--accent);border-radius:50%}.section{padding:var(--gap) 0;border-bottom:1px solid var(--line);position:relative}.section:last-of-type{border-bottom:0}.section-head{grid-template-columns:220px 1fr;align-items:baseline;gap:40px;margin-bottom:64px;display:grid}@media (width<=720px){.section-head{grid-template-columns:1fr;gap:16px}}.section-tag{font-family:var(--font-mono);color:var(--accent);letter-spacing:.04em;align-items:center;gap:10px;font-size:11.5px;display:inline-flex}.section-tag:before{content:counter(section, decimal-leading-zero) "  ";color:var(--accent);margin-right:4px;font-weight:600}.section-tag:after{content:"";background:currentColor;width:24px;height:1px}.section-title{letter-spacing:-.03em;text-wrap:balance;max-width:22ch;margin:0;font-size:clamp(30px,3.6vw,48px);font-weight:600;line-height:1.02}.section-title .serif{font-family:var(--font-serif);background:linear-gradient(120deg, var(--accent), var(--accent-2));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:400}.about-grid{grid-template-columns:220px 1fr;gap:40px;display:grid}@media (width<=720px){.about-grid{grid-template-columns:1fr;gap:24px}}.about-body{max-width:62ch;color:var(--fg-2);font-size:16.5px;line-height:1.7}.about-body p{margin:0 0 20px}.about-body p:last-child{margin-bottom:0}.about-body strong{color:var(--fg);font-weight:500}.about-body em{font-family:var(--font-serif);color:var(--accent);font-size:1.05em;font-style:italic}.timeline{padding-left:0;position:relative}.timeline:before{content:"";background:var(--line);width:1px;position:absolute;top:24px;bottom:24px;left:200px}@media (width<=720px){.timeline:before{left:8px}}.xp-item{border-top:1px solid var(--line);border-radius:4px;grid-template-columns:200px 1fr auto;align-items:start;gap:40px;margin:0 -16px;padding:32px 16px;transition:background .2s;display:grid;position:relative}.xp-dot{background:var(--bg);border:2px solid var(--accent);width:11px;height:11px;box-shadow:0 0 0 4px var(--bg), 0 0 14px color-mix(in oklab, var(--accent) 40%, transparent);z-index:2;border-radius:50%;position:absolute;top:38px;left:213px}@media (width<=720px){.xp-dot{top:38px;left:4px}}.xp-item:hover{background:color-mix(in oklab, var(--bg-2) 40%, transparent)}.xp-item:last-child{border-bottom:1px solid var(--line)}@media (width<=720px){.xp-item{grid-template-columns:1fr;gap:12px}}.xp-date{font-family:var(--font-mono);color:var(--fg-3);padding-top:4px;font-size:12px}.xp-role{letter-spacing:-.02em;margin:0 0 4px;font-size:22px;font-weight:500;line-height:1.2}.xp-company{color:var(--accent-2);margin-bottom:16px;font-size:14px;font-weight:500}.xp-desc{color:var(--fg-2);max-width:62ch;margin:0 0 16px;font-size:15px;line-height:1.65}.xp-stack{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--bg-2);border:1px solid var(--line);font-family:var(--font-mono);color:var(--fg-2);border-radius:6px;padding:4px 10px;font-size:11px;transition:color .15s,border-color .15s,background .15s}.tag:hover{color:var(--fg);border-color:var(--line-2)}.tag-primary{font-weight:500;background:var(--fg)!important;color:var(--bg)!important;border-color:var(--fg)!important}.tag-primary:hover{background:var(--fg)!important;color:var(--bg)!important}:root[data-theme=light] .tag-primary{color:#fff!important;background:#0d0b14!important;border-color:#0d0b14!important}.oss-star{color:var(--c-amber);margin-right:4px}.project-oss{border-color:color-mix(in oklab, var(--c-teal) 35%, var(--line-2))}.tag[data-c=violet]{color:#c4b5fd;border-color:color-mix(in oklab, var(--c-violet) 30%, var(--line));background:color-mix(in oklab, var(--c-violet) 10%, var(--bg-2))}.tag[data-c=cyan]{color:#a5f3fc;border-color:color-mix(in oklab, var(--c-cyan) 30%, var(--line));background:color-mix(in oklab, var(--c-cyan) 10%, var(--bg-2))}.tag[data-c=amber]{color:#fde68a;border-color:color-mix(in oklab, var(--c-amber) 30%, var(--line));background:color-mix(in oklab, var(--c-amber) 10%, var(--bg-2))}.tag[data-c=teal]{color:#99f6e4;border-color:color-mix(in oklab, var(--c-teal) 30%, var(--line));background:color-mix(in oklab, var(--c-teal) 10%, var(--bg-2))}.tag[data-c=rose]{color:#fecdd3;border-color:color-mix(in oklab, var(--c-rose) 30%, var(--line));background:color-mix(in oklab, var(--c-rose) 10%, var(--bg-2))}.tag[data-c=lime]{color:#d9f99d;border-color:color-mix(in oklab, var(--c-lime) 30%, var(--line));background:color-mix(in oklab, var(--c-lime) 10%, var(--bg-2))}:root[data-theme=light] .tag[data-c=violet]{color:#5b21b6}:root[data-theme=light] .tag[data-c=cyan]{color:#0e7490}:root[data-theme=light] .tag[data-c=amber]{color:#92400e}:root[data-theme=light] .tag[data-c=teal]{color:#0f766e}:root[data-theme=light] .tag[data-c=rose]{color:#9f1239}:root[data-theme=light] .tag[data-c=lime]{color:#3f6212}.xp-status{font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding-top:6px;font-size:11px}.xp-status.current{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));box-shadow:0 0 20px color-mix(in oklab, var(--accent) 40%, transparent);border-radius:100px;padding:4px 10px}@media (width<=720px){.xp-status{display:none}}.projects{grid-template-columns:1fr 1fr;gap:18px;display:grid}@media (width<=820px){.projects{grid-template-columns:1fr}}.project{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in oklab, var(--bg-1) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:28px;transition:border-color .25s,background .25s,transform .3s,box-shadow .3s;display:block;position:relative;overflow:hidden}.project:before{content:"";background:radial-gradient(circle at var(--mx,0%) var(--my,0%), color-mix(in oklab, var(--p-color) 18%, transparent), transparent 55%);opacity:0;pointer-events:none;transition:opacity .35s;position:absolute;inset:0}.project:hover{border-color:color-mix(in oklab, var(--p-color) 45%, var(--line-2));box-shadow:0 20px 60px -20px color-mix(in oklab, var(--p-color) 35%, transparent);transform:translateY(-2px)}.project:hover:before{opacity:1}.project[data-c=violet]{--p-color:var(--c-violet)}.project[data-c=cyan]{--p-color:var(--c-cyan)}.project[data-c=amber]{--p-color:var(--c-amber)}.project[data-c=teal]{--p-color:var(--c-teal)}.project[data-c=rose]{--p-color:var(--c-rose)}.project-top{justify-content:space-between;align-items:center;gap:16px;margin-bottom:36px;display:flex}.project-label{font-family:var(--font-mono);color:var(--p-color);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;align-items:center;gap:8px;font-size:11px;display:inline-flex}.project-year{white-space:nowrap}.project-label:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px}.project-year{font-family:var(--font-mono);color:var(--fg-3);font-size:11px}.project-title{letter-spacing:-.02em;margin:0 0 10px;font-size:24px;font-weight:500;line-height:1.2}.project-desc{color:var(--fg-2);max-width:52ch;margin:0 0 24px;font-size:14.5px;line-height:1.6}.project-foot{justify-content:space-between;align-items:center;gap:16px;display:flex}.project-link{font-family:var(--font-mono);color:var(--fg-2);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:6px;font-size:11px;transition:color .15s;display:inline-flex}.project:hover .project-link{color:var(--p-color)}.project-link svg{width:10px;height:10px;transition:transform .2s}.project:hover .project-link svg{transform:translate(3px,-3px)}.stack-pills{max-width:880px}.stack-note{font-family:var(--font-serif);color:var(--fg-3);margin:0 0 28px;font-size:18px;font-style:italic}.pill-grid{flex-wrap:wrap;gap:12px;display:flex}.pill{border:1px solid var(--line);background:color-mix(in oklab, var(--bg-1) 60%, transparent);-webkit-backdrop-filter:blur(8px);font-family:var(--font-mono);letter-spacing:-.005em;color:var(--fg-2);cursor:default;-webkit-user-select:none;user-select:none;border-radius:100px;align-items:center;padding:10px 18px;font-size:13px;font-weight:400;transition:transform .2s,border-color .2s,background-color .2s,color .2s;display:inline-flex}.pill:hover{border-color:var(--fg-3);background:color-mix(in oklab, var(--bg-1) 95%, transparent);color:var(--fg);transform:translateY(-2px)}.contact{padding:var(--gap) 0 calc(var(--gap) + 40px);position:relative}.contact-grid{grid-template-columns:220px 1fr;align-items:start;gap:40px;display:grid}@media (width<=720px){.contact-grid{grid-template-columns:1fr;gap:24px}}.contact-title{letter-spacing:-.04em;text-wrap:balance;max-width:14ch;margin:0 0 32px;font-size:clamp(44px,6.4vw,88px);font-weight:600;line-height:.98}.contact-title .serif{font-family:var(--font-serif);background:linear-gradient(120deg, var(--accent), var(--accent-2), var(--accent-3));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-style:italic;font-weight:400}.contact-links{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:0;margin-top:32px;display:grid}@media (width<=600px){.contact-links{grid-template-columns:1fr}}.clink{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:22px 0;transition:padding-left .25s,color .2s;display:flex;position:relative}.clink:nth-child(odd){padding-right:24px}.clink:nth-child(2n){border-left:1px solid var(--line);padding-left:24px}@media (width<=600px){.clink:nth-child(2n){border-left:0;padding-left:0}}.clink:hover{padding-left:10px}.clink:nth-child(2n):hover{padding-left:34px}.clink-l{font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:11px}.clink-v{letter-spacing:-.015em;color:var(--fg);font-size:18px;font-weight:500;transition:color .2s}.clink:hover .clink-v{color:var(--c-clr,var(--accent))}.clink[data-c=violet]{--c-clr:var(--c-violet)}.clink[data-c=cyan]{--c-clr:var(--c-cyan)}.clink[data-c=amber]{--c-clr:var(--c-amber)}.clink[data-c=rose]{--c-clr:var(--c-rose)}.clink-arrow{border:1px solid var(--line-2);width:32px;height:32px;color:var(--fg-2);border-radius:50%;flex-shrink:0;place-items:center;transition:transform .25s,background .25s,color .25s,border-color .25s;display:grid}.clink-arrow svg{width:11px;height:11px}.clink:hover .clink-arrow{background:var(--c-clr,var(--accent));color:#fff;border-color:var(--c-clr,var(--accent));box-shadow:0 0 20px color-mix(in oklab, var(--c-clr,var(--accent)) 50%, transparent);transform:rotate(-45deg)}footer{border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--fg-3);padding:32px 0;font-size:11px}.foot-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.foot-sig{align-items:center;gap:6px;display:inline-flex}.foot-dot{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:50%;width:6px;height:6px}.tweaks{z-index:60;background:color-mix(in oklab, var(--bg-1) 92%, transparent);-webkit-backdrop-filter:blur(20px)saturate(160%);backdrop-filter:blur(20px)saturate(160%);border:1px solid var(--line-2);border-radius:14px;width:310px;padding:20px;font-size:13px;display:none;position:fixed;bottom:20px;right:20px;box-shadow:0 30px 80px #00000080}.tweaks.open{display:block}.tweaks h4{letter-spacing:-.015em;margin:0 0 2px;font-size:15px;font-weight:600}.tw-sub{color:var(--fg-3);font-family:var(--font-mono);margin-bottom:18px;font-size:11px}.tweaks label{font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;margin:16px 0 10px;font-size:10px;display:block}.tw-row{flex-wrap:wrap;gap:6px;display:flex}.tw-chip{border:1px solid var(--line-2);color:var(--fg-2);cursor:pointer;background:0 0;border-radius:8px;padding:7px 12px;font-size:12px;transition:all .15s}.tw-chip:hover{color:var(--fg)}.tw-chip[data-active=true]{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border-color:#0000}.tw-swatches{gap:8px;display:flex}.tw-sw{cursor:pointer;border:2px solid #0000;border-radius:8px;width:34px;height:34px;transition:transform .15s;position:relative}.tw-sw:hover{transform:scale(1.08)}.tw-sw[data-active=true]{border-color:var(--fg);transform:scale(1.08)}.reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.2,.8,.2,1);transform:translateY(14px)}.reveal.in{opacity:1;transform:none}.section .reveal:first-child{transition-delay:0s}.section .reveal:nth-child(2){transition-delay:80ms}.section .reveal:nth-child(3){transition-delay:.16s}.marquee{width:100%;margin:-20px 0;padding:20px 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 8% 92%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 8% 92%,#0000 100%)}.marquee+.marquee{margin-top:-2px}.marquee-track{width:max-content;animation:marqueeScroll var(--dur,60s) linear infinite;will-change:transform;gap:18px;display:flex}.marquee[data-dir=right] .marquee-track{animation-direction:reverse}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes marqueeScroll{0%{transform:translate(0,0)}to{transform:translate(-50%)}}.quote{border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in oklab, var(--bg-1) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;flex:none;gap:14px;width:clamp(300px,30vw,380px);padding:24px 24px 20px;transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .35s;display:flex;position:relative;overflow:hidden}.quote:before{content:"";background:radial-gradient(circle at var(--mx,50%) var(--my,0%), color-mix(in oklab, var(--q-color) 14%, transparent) 0%, transparent 60%);opacity:0;pointer-events:none;transition:opacity .4s;position:absolute;inset:0}.quote:hover{border-color:color-mix(in oklab, var(--q-color) 40%, var(--line-2));box-shadow:0 18px 40px -16px color-mix(in oklab, var(--q-color) 30%, transparent);transform:translateY(-4px)}.quote:hover:before{opacity:1}.quote:hover .quote-mark{transform:translateY(-2px)rotate(-4deg)scale(1.08)}.quote[data-c=violet]{--q-color:var(--c-violet)}.quote[data-c=cyan]{--q-color:var(--c-cyan)}.quote[data-c=amber]{--q-color:var(--c-amber)}.quote[data-c=teal]{--q-color:var(--c-teal)}.quote[data-c=rose]{--q-color:var(--c-rose)}.quote[data-c=lime]{--q-color:var(--c-lime)}.quote[data-c=indigo]{--q-color:var(--c-indigo)}.quote-mark{font-family:var(--font-serif);color:var(--q-color);opacity:.9;transform-origin:0 100%;height:18px;font-size:56px;line-height:.5;transition:transform .4s cubic-bezier(.2,.8,.2,1)}.quote-body{color:var(--fg);text-wrap:pretty;-webkit-line-clamp:5;line-clamp:5;-webkit-box-orient:vertical;flex:1;margin:0;font-size:14.5px;line-height:1.55;display:-webkit-box;overflow:hidden}.quote-author{border-top:1px dashed var(--line-2);align-items:center;gap:12px;padding-top:14px;display:flex}.quote-avatar{background:linear-gradient(135deg, var(--q-color), var(--accent-2));width:36px;height:36px;font-family:var(--font-mono);color:#fff;box-shadow:0 0 16px color-mix(in oklab, var(--q-color) 40%, transparent);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:500;display:grid}.quote-name{font-size:13.5px;font-weight:500}.quote-role{font-family:var(--font-mono);color:var(--fg-3);letter-spacing:.04em;margin-top:2px;font-size:10.5px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none}}@media print{body{color:#000!important;background:#fff!important}body:before,body:after,.nav,.tweaks,footer,.photo-spec,.hero-photo-wrap:before{display:none!important}.hero-grid{grid-template-columns:1fr!important}h1.hero-title,.section-title,.contact-title{color:#000!important}.hero-title .grad,.hero-title .serif,.section-title .serif,.contact-title .serif{-webkit-text-fill-color:#000!important;color:#000!important;background:0 0!important}.hero-sub,.about-body,.xp-desc,.project-desc,.quote-body{color:#1a1a1a!important}.section,.hero,.contact{page-break-inside:avoid;border-color:#ddd!important;padding:24px 0!important}.project,.quote{break-inside:avoid;background:#fff!important;border-color:#ddd!important}.tag{color:#333!important;background:#f5f5f5!important;border-color:#ddd!important}.reveal{opacity:1!important;transform:none!important}a{text-decoration:none;color:#000!important}a[href]:after{content:" (" attr(href) ")";color:#666;font-size:.8em}.nav-link,.btn,.clink-arrow,.project-link svg,.clink-arrow svg{display:none!important}.hero-photo{box-shadow:none!important}}
