:root{--bg:#12110f;--bg-deep:#07060a;--bg-elev:#1a1815;--bg-card:#1f1c18;--ink:#f2ebdd;--ink-dim:#a8a096;--ink-mute:#6b655c;--line:#2a2621;--line-bright:#3a342d;--accent:oklch(72% .13 55);--accent-soft:oklch(72% .13 55/.14);--accent-ink:#12110f;--ok:oklch(72% .13 150);--warn:oklch(72% .13 65);--danger:oklch(68% .18 25);--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--serif:"Instrument Serif", "Source Serif Pro", Georgia, serif;--sans:"Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display:"Orbitron", sans-serif}html[data-theme=light]{--bg:#f4efe4;--bg-deep:#d8ceb6;--bg-elev:#ebe5d6;--bg-card:oklch(99% .005 280);--ink:#1a1713;--ink-dim:#5b5347;--ink-mute:#8c8476;--line:#ddd5c3;--line-bright:#c8bfa9;--accent-ink:#f4efe4}html[data-accent=rust]{--accent:oklch(64% .15 35);--accent-soft:oklch(64% .15 35/.14)}html[data-accent=amber]{--accent:oklch(75% .14 70);--accent-soft:oklch(75% .14 70/.14)}html[data-accent=olive]{--accent:oklch(70% .13 115);--accent-soft:oklch(70% .13 115/.14)}html[data-accent=cyan]{--accent:oklch(72% .13 195);--accent-soft:oklch(72% .13 195/.14)}html[data-accent=violet]{--accent:oklch(70% .14 300);--accent-soft:oklch(70% .14 300/.14)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0;font-size:16px;line-height:1.55;overflow-x:clip}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background-image:radial-gradient(ellipse 1200px 600px at 20% -10%, var(--accent-soft), transparent 60%), radial-gradient(ellipse 800px 400px at 110% 110%, var(--accent-soft), transparent 70%)}html:not([data-vibe=cyberpunk]) body:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(ellipse 900px 600px at 15% 20%, var(--accent-soft), transparent 65%), radial-gradient(ellipse 750px 500px at 50% 110%, var(--accent-soft), transparent 70%);will-change:transform;animation:72s ease-in-out infinite auroraA;position:fixed;inset:-15%}html:not([data-vibe=cyberpunk]) body:after{content:"";z-index:-1;pointer-events:none;will-change:transform;background-image:radial-gradient(800px 550px at 85% 60%,oklch(70% .14 300/.12),#0000 65%),radial-gradient(600px 500px at 30% 75%,oklch(65% .15 200/.08),#0000 68%);animation:95s ease-in-out infinite auroraB;position:fixed;inset:-15%}@keyframes auroraA{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(-3%,2%)scale(1.06)}}@keyframes auroraB{0%,to{transform:translate(0,0)scale(1)rotate(0)}50%{transform:translate(3%,-2.5%)scale(1.08)rotate(2deg)}}@media (prefers-reduced-motion:reduce){html:not([data-vibe=cyberpunk]) body:before,html:not([data-vibe=cyberpunk]) body:after{animation:none}}@property --shimmer-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.commit,.feature,.contact-form{--shimmer-angle:0deg}.commit:after,.feature:after,.contact-form:after{content:"";border-radius:inherit;background:conic-gradient(from var(--shimmer-angle), transparent 0deg, oklch(70% .14 300/.6) 50deg, oklch(70% .14 300) 90deg, oklch(70% .14 300/.6) 130deg, transparent 200deg, transparent 360deg);-webkit-mask-composite:xor;opacity:0;pointer-events:none;z-index:2;padding:1px;transition:opacity .3s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.commit:hover:after,.feature:hover:after,.contact-form:focus-within:after{opacity:1;animation:2.6s linear infinite shimmerTrace}@keyframes shimmerTrace{to{--shimmer-angle:360deg}}@media (prefers-reduced-motion:reduce){.commit:hover:after,.feature:hover:after,.contact-form:focus-within:after{animation:none}}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}::selection{background:var(--accent);color:var(--accent-ink)}.mono{font-family:var(--mono)}.serif{font-family:var(--serif);font-style:italic;font-weight:400}.caps{text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:500}.dim{color:var(--ink-dim)}.mute{color:var(--ink-mute)}.accent{color:var(--accent)}.wrap{max-width:1240px;margin:0 auto;padding:0 32px}@media (width<=700px){.wrap{padding:0 20px}}section{padding:80px 0;position:relative}section.flow{padding:120px 0 80px}@media (width<=700px){section{padding:60px 0}section.flow{padding:100px 0 60px}}.section-label{color:var(--ink-mute);font-family:var(--mono);letter-spacing:.08em;align-items:center;gap:14px;margin-bottom:28px;font-size:12px;display:flex}.section-label:before{content:"";background:var(--line-bright);width:40px;height:1px}.section-label .num{color:var(--accent)}.section-headline{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 20px;font-size:clamp(26px,3.2vw,42px);font-weight:400;line-height:1.08}.section-headline.tight{margin-bottom:16px}.section-headline em{color:var(--accent);font-style:italic}.reveal{opacity:0;transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transform:translateY(24px)}.reveal.in-view{opacity:1;transform:none}.reveal[data-delay="1"]{transition-delay:80ms}.reveal[data-delay="2"]{transition-delay:.16s}.reveal[data-delay="3"]{transition-delay:.24s}.reveal[data-delay="4"]{transition-delay:.32s}.reveal[data-delay="5"]{transition-delay:.4s}.reveal[data-delay="6"]{transition-delay:.48s}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none!important}*{animation-duration:1ms!important;animation-iteration-count:1!important}}.nav{z-index:100;background:color-mix(in oklab, var(--bg) 62%, transparent);-webkit-backdrop-filter:blur(22px)saturate(160%);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:18px 32px;transition:border-color .2s,box-shadow .3s,background .3s;display:flex;position:fixed;top:0;left:0;right:0;box-shadow:inset 0 1px #ffffff0a}.nav.scrolled{border-bottom-color:var(--line);background:color-mix(in oklab, var(--bg) 72%, transparent)}.nav .brand{font-family:var(--mono);align-items:center;gap:10px;font-size:13px;display:flex}.nav .brand .dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}.nav-links{font-family:var(--mono);align-items:center;gap:28px;font-size:12px;display:flex}.nav-links a{color:var(--ink-dim);align-items:baseline;gap:6px;transition:color .15s;display:flex;position:relative}.nav-links a:not(.cta):after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .3s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}.nav-links a:hover:after,.nav-links a.active:after,.nav-links a:focus-visible:after{transform:scaleX(1)}.nav-links a:hover,.nav-links a.active,.nav-links a:focus-visible{color:var(--ink);outline:none}.nav-links a .idx{color:var(--ink-mute);font-size:10px}.nav-links a.active .idx,.nav-links a:focus-visible .idx{color:var(--accent)}@media (width<=780px){.nav-links a:not(.cta){display:none}}.cta{border:1px solid var(--line-bright);border-radius:2px;padding:8px 14px;transition:all .2s;color:var(--ink)!important}.cta:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)!important}.cta:focus-visible{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent), 0 0 16px var(--accent-soft);outline:none}.hero{isolation:isolate;flex-direction:column;justify-content:center;min-height:100vh;padding:110px 0 40px;display:flex;position:relative}.hero-grid{grid-template-columns:1.3fr 1fr;align-items:center;gap:64px;display:grid}@media (width<=1040px){.hero-grid{grid-template-columns:1fr;gap:40px}}.hero-headline{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 24px;font-size:clamp(32px,4vw,60px);font-weight:400;line-height:1.05}.hero-headline .italic{color:var(--accent);font-style:italic}.hero-headline .sub{font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:16px;font-size:.22em;font-weight:500;display:block}.hero-lede{max-width:520px;color:var(--ink-dim);margin:0 0 24px;font-size:16px;line-height:1.5}.hero-lede strong{color:var(--ink);font-weight:500}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.btn{font-family:var(--mono);border:1px solid var(--line-bright);border-radius:2px;align-items:center;gap:10px;padding:14px 22px;font-size:13px;transition:all .2s cubic-bezier(.2,.7,.2,1);display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";background:linear-gradient(90deg, transparent, var(--accent-soft), transparent);transition:transform .6s;position:absolute;inset:0;transform:translate(-100%)}.btn:hover:before{transform:translate(100%)}.btn:hover{border-color:var(--accent);transform:translateY(-2px)}.btn:focus-visible{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 28px var(--accent-soft);outline:none}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-primary:hover{color:var(--accent);background:0 0}.btn-primary:focus-visible{box-shadow:0 0 0 2px var(--accent-ink), 0 0 0 4px var(--accent), 0 0 32px var(--accent-soft)}.btn .arrow{transition:transform .2s}.btn:hover .arrow,.btn:focus-visible .arrow{transform:translate(4px)}.mtg-card{aspect-ratio:2.5/3.5;border:1px solid var(--line-bright);width:100%;max-width:420px;box-shadow:0 40px 80px -20px #0009, 0 0 0 1px var(--line-bright), 0 0 60px -20px var(--accent-soft);transform-style:preserve-3d;will-change:transform;background:#0d0b0a linear-gradient(135deg,#1a1815,#0d0b0a) padding-box padding-box;border-radius:14px;margin:0 auto;padding:14px;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s;position:relative}.mtg-card:hover{box-shadow:0 60px 100px -20px #000000b3, 0 0 0 1px var(--accent), 0 0 80px -10px var(--accent-soft)}.mtg-frame{grid-template-rows:auto 1fr auto auto auto;gap:8px;height:100%;display:grid}.mtg-titlebar{border:1px solid var(--line-bright);background:linear-gradient(90deg,#2a2621,#1a1815);border-radius:4px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.mtg-name{font-family:var(--serif);letter-spacing:-.01em;font-size:17px;font-weight:500}.mtg-mana{gap:4px;display:flex}.mtg-pip{width:22px;height:22px;font-family:var(--mono);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex;box-shadow:inset 0 -2px #0003,0 0 0 1px #0000004d}.pip-gen{color:#1a1713;background:#d8d0bc}.pip-u{color:#1a3b5c;background:#a9d0f5}.pip-u svg{width:12px;height:12px}.pip-r{color:#5c1a1a;background:#f0a39b}.pip-r svg{width:13px;height:13px}.mtg-art{border:1px solid var(--line-bright);background:linear-gradient(135deg,oklch(35% .08 55),oklch(18% .04 30));border-radius:4px;min-height:0;position:relative;overflow:hidden}.mtg-art:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 3px,#ffffff05 3px 4px);position:absolute;inset:0}.mtg-art img{object-fit:cover;width:100%;height:100%;display:block}.mtg-typebar{border:1px solid var(--line-bright);font-family:var(--mono);background:linear-gradient(90deg,#2a2621,#1a1815);border-radius:3px;justify-content:space-between;align-items:center;padding:6px 12px;font-size:11px;display:flex}.mtg-type{color:var(--ink-dim)}.mtg-setsymbol{color:var(--accent);font-size:13px}.mtg-textbox{border:1px solid var(--line-bright);background:linear-gradient(#1f1c18,#15120f);border-radius:4px;min-height:110px;padding:10px 14px;font-size:13px;line-height:1.5}.mtg-rule{color:var(--ink-dim);margin:0 0 6px}.mtg-rule:first-of-type{color:var(--accent);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;font-size:11px}.mtg-flavor{color:var(--ink-mute);border-top:1px solid var(--line);margin:8px 0 0;padding-top:8px;font-size:12px;font-style:italic}.mtg-bottom{justify-content:flex-end;padding:0 8px;display:flex}.mtg-pt{font-family:var(--serif);border:1px solid var(--line-bright);letter-spacing:-.01em;background:#1a1815;border-radius:3px;padding:3px 14px;font-size:18px}.mtg-stage{opacity:0;animation:.9s cubic-bezier(.2,.7,.2,1) forwards mtgIn;animation-delay:var(--d,0s);transform:translateY(8px)}@keyframes mtgIn{to{opacity:1;transform:none}}.hero-signature{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);max-width:560px;margin:0 0 28px;font-size:12px;font-weight:500;line-height:1.7}.hero-signature .sep{color:var(--accent);opacity:.6;margin:0 .55em}@media (width<=540px){.hero-signature{font-size:11px;line-height:1.8}.hero-signature .sep{margin:0 .4em}}.about-grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}@media (width<=900px){.about-grid{grid-template-columns:1fr;gap:32px}}.about h2{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 20px;font-size:clamp(26px,3.2vw,42px);font-weight:400;line-height:1.08}.about h2 em{color:var(--accent);font-style:italic}.about p{color:var(--ink-dim);max-width:520px;margin:0 0 14px;font-size:15px;line-height:1.55}.about p strong{color:var(--ink);font-weight:500}.fact-list{border-top:1px solid var(--line);margin-top:24px}.fact-list .fact{border-bottom:1px solid var(--line);font-family:var(--mono);flex-wrap:nowrap;align-items:baseline;gap:20px;padding:12px 0;font-size:12px;transition:background .3s;display:flex;position:relative}.fact-list .fact:before{content:"";background:var(--accent);transform-origin:0;width:8px;height:1px;transition:transform .3s;position:absolute;top:50%;left:0;transform:scaleX(0)}.fact-list .fact>*{will-change:transform;transition:transform .3s}.fact-list .fact:hover>*{transform:translate(12px)}.fact-list .fact:hover:before{transform:scaleX(1)}.fact-list .fact>:first-child{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.08em;flex:0 0 120px;font-size:11px}.fact-list .fact>:nth-child(2){word-break:break-word;flex:auto;min-width:0}.fact-list .fact a{color:var(--accent);border-bottom:1px dotted var(--accent)}.fact-list .fact a:focus-visible{outline:1px solid var(--accent);outline-offset:4px;border-radius:1px}.skills-grid{grid-template-columns:1fr 1.6fr;align-items:start;gap:64px;display:grid}.skills-grid>*{min-width:0}@media (width<=1040px){.skills-grid{grid-template-columns:minmax(0,1fr);gap:32px}}.skills-table{border:1px solid color-mix(in oklab, var(--line-bright) 45%, transparent);background:color-mix(in oklab, var(--bg-card) 55%, transparent);-webkit-backdrop-filter:blur(18px)saturate(140%);font-family:var(--mono);border-radius:4px;font-size:13px;overflow:hidden;box-shadow:inset 0 1px #ffffff0d}.skills-head{background:color-mix(in oklab, var(--bg-elev) 65%, transparent);color:var(--ink-mute);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid color-mix(in oklab, var(--line) 60%, transparent);grid-template-columns:60px 1.2fr 1fr 80px 100px;padding:12px 20px;font-size:11px;display:grid}.skill-row{border-bottom:1px solid var(--line);grid-template-columns:60px 1.2fr 1fr 80px 100px;align-items:center;padding:16px 20px;transition:background .2s;display:grid;position:relative}.skill-row:last-child{border-bottom:none}.skill-row:hover{background:var(--bg-elev)}.skill-row .idx{color:var(--ink-mute)}.skill-row .name{color:var(--ink);font-weight:500}.skill-row .use{color:var(--ink-dim);font-size:12px}.skill-row .yrs{color:var(--accent)}.skill-bar{background:var(--line);border-radius:3px;height:6px;position:relative;overflow:hidden}.skill-bar-fill{background:var(--accent);width:100%;transform:scaleX(var(--depth,0));transform-origin:0;will-change:transform;box-shadow:0 0 12px var(--accent-soft);border-radius:3px;transition:transform 1.2s cubic-bezier(.2,.8,.2,1);position:absolute;top:0;bottom:0;left:0}.skill-bar-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff73,#0000);animation:2.6s ease-in-out infinite paused shimmer;position:absolute;inset:0}.skill-row.in-view .skill-bar-fill:after{animation-play-state:running}@keyframes shimmer{0%{transform:translate(-100%)}60%,to{transform:translate(300%)}}@media (prefers-reduced-motion:reduce){.skill-bar-fill{transition:none}.skill-bar-fill:after{animation:none!important}}@media (width<=700px){.skills-head{grid-template-columns:40px 1fr 80px}.skills-head .use-col,.skills-head .bar-col{display:none}.skill-row{grid-template-columns:40px 1fr 80px}.skill-row .use,.skill-row .skill-bar{display:none}}.projects-tabs{border-bottom:1px solid var(--line);font-family:var(--mono);-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;min-width:0;margin-bottom:40px;font-size:12px;display:flex;overflow:auto hidden}.projects-tabs::-webkit-scrollbar{display:none}.projects-tabs button{color:var(--ink-mute);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:14px 18px;transition:all .2s}.projects-tabs button:hover{color:var(--ink-dim)}.projects-tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}.projects-tabs button:focus-visible{color:var(--ink);border-bottom-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-soft);outline:none}.projects-tabs .count{color:var(--ink-mute);margin-left:6px;font-size:10px}.project-list{background:color-mix(in oklab, var(--line) 50%, transparent);border:1px solid color-mix(in oklab, var(--line-bright) 45%, transparent);-webkit-backdrop-filter:blur(2px);border-radius:6px;gap:1px;display:grid;overflow:hidden}.project-row{background:color-mix(in oklab, var(--bg-card) 55%, transparent);-webkit-backdrop-filter:blur(18px)saturate(140%);cursor:pointer;grid-template-columns:48px 1fr auto;align-items:center;gap:24px;padding:20px 28px;transition:background .25s,transform .25s,box-shadow .25s;display:grid;position:relative}.project-row:before{content:"";background:var(--accent);transform-origin:top;width:2px;transition:transform .3s cubic-bezier(.2,.7,.2,1);position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.project-row:hover:before,.project-row.expanded:before,.project-row:focus-visible:before{transform:scaleY(1)}.project-row:focus-visible{outline:1px solid var(--accent);outline-offset:-1px;box-shadow:0 0 0 1px var(--accent-soft), 0 0 24px var(--accent-soft)}.project-row:hover{background:color-mix(in oklab, var(--bg-elev) 75%, transparent);box-shadow:inset 0 1px #ffffff0f}.project-row.expanded{background:color-mix(in oklab, var(--bg-elev) 85%, transparent);box-shadow:inset 0 1px #ffffff0f}.project-row .pidx{font-family:var(--mono);color:var(--ink-mute);font-size:12px;transition:color .2s}.project-row:hover .pidx{color:var(--accent)}.project-row .ptitle{font-family:var(--serif);letter-spacing:-.015em;color:var(--ink);font-size:22px;transition:color .2s}.project-row:hover .ptitle{color:var(--accent)}.project-row .pdesc{font-family:var(--mono);color:var(--ink-mute);margin-top:6px;font-size:12px}.project-row .pmeta{font-family:var(--mono);color:var(--ink-dim);align-items:center;gap:10px;font-size:11px;display:flex}.project-row .pmeta .tag{border:1px solid var(--line-bright);border-radius:2px;padding:4px 8px}.project-row .pchevron{color:var(--ink-mute);transition:transform .3s cubic-bezier(.2,.7,.2,1),color .2s}.project-row.expanded .pchevron{color:var(--accent);transform:rotate(90deg)}.project-detail{background:var(--bg-elev);border-top:1px solid var(--line);grid-template-columns:1.2fr 1fr;gap:40px;padding:0 32px 32px 104px;animation:.4s cubic-bezier(.2,.7,.2,1) detailIn;display:grid;overflow:hidden}@keyframes detailIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.project-detail .block h4{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);margin:24px 0 10px;font-size:11px}.project-detail .block p{color:var(--ink-dim);margin:0 0 12px;font-size:15px}.project-detail .stack{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.project-detail .stack span{font-family:var(--mono);background:var(--bg);border:1px solid var(--line-bright);border-radius:2px;padding:4px 10px;font-size:11px;transition:all .2s}.project-detail .stack span:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}.project-detail .metrics{background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-top:20px;display:grid}.project-detail .metrics>div{background:var(--bg);padding:16px;transition:background .2s}.project-detail .metrics>div:hover{background:var(--bg-elev)}.project-detail .metrics .v{font-family:var(--serif);color:var(--accent);font-size:32px;line-height:1}.project-detail .metrics .k{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mute);margin-top:8px;font-size:11px}@media (width<=900px){.project-row{grid-template-columns:32px 1fr 24px;gap:16px;padding:20px}.project-row .pmeta{display:none}.project-row .ptitle{font-size:22px}.project-detail{grid-template-columns:1fr;gap:24px;padding:0 20px 24px}}.feature{border:1px solid color-mix(in oklab, var(--line-bright) 45%, transparent);background:color-mix(in oklab, var(--bg-card) 60%, transparent);-webkit-backdrop-filter:blur(20px)saturate(140%);border-radius:6px;margin-top:0;padding:36px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d}.feature:before{content:"";background:radial-gradient(ellipse 600px 300px at 100% 0%, var(--accent-soft), transparent 60%);pointer-events:none;position:absolute;inset:0}.feature-grid{grid-template-columns:1fr 1.2fr;gap:48px;display:grid;position:relative}@media (width<=900px){.feature-grid{grid-template-columns:1fr;gap:32px}.feature{padding:28px}}.feature .tag{font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;background:var(--accent-soft);border-radius:2px;align-items:center;gap:6px;margin-bottom:16px;padding:4px 10px;font-size:11px;display:inline-flex}.feature h3{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 16px;font-size:clamp(24px,2.8vw,36px);font-weight:400;line-height:1.08}.feature h3 em{color:var(--accent)}.feature p{color:var(--ink-dim);margin:0 0 16px}.feature .kpis{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px;display:grid}.feature .kpi .v{font-family:var(--serif);color:var(--ink);font-size:32px;line-height:1}.feature .kpi .v .u{font-family:var(--mono);color:var(--accent);font-size:15px}.feature .kpi .k{font-family:var(--mono);color:var(--ink-mute);text-transform:uppercase;letter-spacing:.08em;margin-top:6px;font-size:10px}.pipe{font-family:var(--mono);background:var(--bg);border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:10px;padding:20px;font-size:12px;display:flex;position:relative}.pipe-node{background:var(--bg-card);border:1px solid var(--line);border-radius:3px;grid-template-columns:24px 1fr auto;align-items:center;gap:12px;padding:10px 14px;transition:all .3s;display:grid;position:relative}.pipe-node.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft), 0 0 24px var(--accent-soft);transform:translate(4px)}.pipe-node.active:after{content:"";background:var(--accent);width:3px;box-shadow:0 0 8px var(--accent);position:absolute;top:0;bottom:0;left:0}.pipe-node .glyph{color:var(--accent);font-size:14px;transition:text-shadow .3s}.pipe-node.active .glyph{text-shadow:0 0 12px var(--accent)}.pipe-node .nm{color:var(--ink)}.pipe-node .ss{color:var(--ink-mute);font-size:11px}.pipe-arrow{color:var(--ink-mute);height:12px;padding-left:30px;font-size:14px;line-height:1}.gitlog{--commit-h:200px;--connector-h:180px;--commit-overlap:calc(var(--connector-h) + 70px);flex-direction:column;width:100%;display:flex;position:relative}.gitlog.serpentine{gap:0}.gitlog.serpentine .commit:nth-child(n+2){margin-top:calc(-1 * var(--commit-overlap))}.commit{background:color-mix(in oklab, var(--bg-card) 55%, transparent);-webkit-backdrop-filter:blur(18px)saturate(140%);border:1px solid color-mix(in oklab, var(--line-bright) 40%, transparent);width:100%;max-width:500px;min-height:var(--commit-h);box-sizing:border-box;z-index:1;border-radius:4px;padding:18px 22px;transition:border-color .3s,box-shadow .3s,background .3s;position:relative;box-shadow:inset 0 1px #ffffff0d}.commit:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft), 0 0 40px var(--accent-soft)}.commit.side-left{align-self:flex-start}.commit.side-right{align-self:flex-end}.commit:before{content:"";background:var(--bg);border:2px solid var(--line-bright);border-radius:50%;width:10px;height:10px;transition:all .3s;position:absolute;top:20px}.commit.side-left:before{left:-6px}.commit.side-right:before{left:auto;right:-6px}.commit:hover:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px var(--accent)}.commit.current:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft), 0 0 12px var(--accent);animation:2.4s ease-in-out infinite pulse}.commit .hash{font-family:var(--mono);color:var(--ink-mute);letter-spacing:.04em;font-size:10px}.commit .role{font-family:var(--serif);letter-spacing:-.01em;margin:2px 0;font-size:20px;line-height:1.15}.commit .company{font-family:var(--mono);color:var(--accent);margin-bottom:6px;font-size:12px}.commit .when{font-family:var(--mono);color:var(--ink-mute);margin-bottom:8px;font-size:10px}.commit ul{margin:0;padding:0;list-style:none}.commit ul li{color:var(--ink-dim);padding:2px 0 2px 18px;font-size:13px;line-height:1.5;position:relative}.git-connector{width:100%;height:var(--connector-h,180px);fill:none;stroke:var(--line-bright);stroke-width:1.5px;display:block;overflow:visible}.git-connector .glow-path{fill:none;stroke-linecap:round;stroke-dasharray:.1 9999;stroke-dashoffset:2000px;visibility:hidden;vector-effect:non-scaling-stroke;animation:14s linear infinite gitFlow;animation-delay:calc(var(--i,0) * 2s)}.git-connector .glow-core{stroke:#c8ff3d;stroke-width:14px}.git-connector .glow-mid{stroke:oklch(93% .24 135/.45);stroke-width:44px;animation:14s linear infinite gitFlow,1.2s ease-in-out infinite gitDotPulse;animation-delay:calc(var(--i,0) * 2s), 0s}.git-connector .glow-outer{stroke:oklch(93% .24 135/.18);stroke-width:120px;animation:14s linear infinite gitFlow,1.2s ease-in-out infinite gitDotPulse;animation-delay:calc(var(--i,0) * 2s), 0s}@keyframes gitFlow{0%{stroke-dashoffset:0;visibility:visible}14.28%{stroke-dashoffset:-1000px;visibility:visible}14.29%{stroke-dashoffset:2000px;visibility:hidden}to{stroke-dashoffset:2000px;visibility:hidden}}@keyframes gitDotPulse{0%,to{opacity:.45}50%{opacity:1}}@media (width<=780px){.commit{max-width:100%}.commit.side-right{align-self:flex-start}.commit.side-right:before{left:-6px;right:auto}.git-connector{display:none}.gitlog.serpentine .commit:nth-child(n+2){margin-top:24px}}.commit ul li:before{content:"+";color:oklch(72% .13 150);font-family:var(--mono);position:absolute;left:0}.commit ul li strong{color:var(--ink);font-weight:500}.resume-toggle{border:1px solid var(--line-bright);font-family:var(--mono);border-radius:4px;gap:2px;margin-bottom:32px;padding:4px;font-size:12px;display:inline-flex}.resume-toggle button{color:var(--ink-mute);border-radius:2px;padding:8px 16px;transition:all .2s}.resume-toggle button.active{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 16px var(--accent-soft)}.resume-toggle button:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.writing-grid{grid-template-columns:repeat(3,1fr);grid-auto-flow:dense;background:var(--line);border:1px solid var(--line);border-radius:4px;gap:1px;display:grid;overflow:hidden}@media (width<=1040px){.writing-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=780px){.writing-grid{grid-template-columns:1fr}}.writing-grid .featured{grid-area:span 2/span 2}@media (width<=780px){.writing-grid .featured{grid-area:auto/1;min-height:320px}}.article{background:var(--bg);cursor:pointer;flex-direction:column;gap:8px;padding:20px 22px;transition:background .25s;display:flex;position:relative;overflow:hidden}.article:before{content:"";background:radial-gradient(circle 180px at var(--mx,50%) var(--my,50%), var(--accent-soft), transparent 70%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.article:hover:before{opacity:1}.article:hover{background:var(--bg-elev)}.article .cats{font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:10px;position:relative}.article h4{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:400;line-height:1.25;transition:color .2s;position:relative}.article:hover h4{color:var(--accent)}.article .meta{font-family:var(--mono);color:var(--ink-mute);gap:14px;margin-top:auto;padding-top:10px;font-size:10px;display:flex;position:relative}.article:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@keyframes articleBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes articleModalIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.article-modal-backdrop{background:color-mix(in oklab, var(--bg-deep) 94%, transparent);-webkit-backdrop-filter:blur(10px);z-index:500;justify-content:center;align-items:flex-start;padding:64px 20px 40px;animation:.28s cubic-bezier(.2,.7,.2,1) articleBackdropIn;display:flex;position:fixed;inset:0;overflow-y:auto}.article-modal-panel{background:color-mix(in oklab, var(--bg-card) 96%, transparent);-webkit-backdrop-filter:blur(24px);border:1px solid color-mix(in oklab, var(--line-bright) 55%, transparent);width:100%;max-width:820px;box-shadow:0 0 0 1px var(--accent), 0 0 80px -10px var(--accent-soft), inset 0 1px 0 #ffffff0f;border-radius:8px;outline:none;animation:.32s cubic-bezier(.2,.7,.2,1) articleModalIn;position:relative}.article-modal-close{background:color-mix(in oklab, var(--bg-elev) 70%, transparent);border:1px solid color-mix(in oklab, var(--line-bright) 50%, transparent);width:36px;height:36px;color:var(--ink-dim);font-family:var(--mono);cursor:pointer;z-index:5;border-radius:50%;justify-content:center;align-items:center;font-size:22px;line-height:1;transition:background .2s,color .2s,border-color .2s,transform .25s,box-shadow .25s;display:flex;position:absolute;top:14px;right:14px}.article-modal-close:hover,.article-modal-close:focus-visible{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 24px var(--accent-soft);outline:none;transform:rotate(90deg)}.article-shell{min-height:70vh;padding:96px 20px 80px;position:relative}.article-shell:before{content:"";background:radial-gradient(ellipse 80% 60% at 50% 0%, var(--accent-soft), transparent 60%);opacity:.35;pointer-events:none;z-index:-1;position:absolute;inset:0}.article-doc{outline:none;display:block}.article-doc--page{max-width:760px;margin:0 auto}.article-doc--modal{padding:8px 0}.article-head{border-bottom:1px solid color-mix(in oklab, var(--line-bright) 35%, transparent);padding:36px clamp(28px,5vw,64px) 28px}.article-doc--page .article-head{padding:0 0 32px}.article-back{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;margin-bottom:28px;padding:4px 0;font-size:11px;text-decoration:none;transition:color .2s;display:inline-flex}.article-back .back-arrow{transition:transform .25s cubic-bezier(.2,.7,.2,1);display:inline-block}.article-back:hover{color:var(--ink)}.article-back:hover .back-arrow{transform:translate(-3px)}.article-back:focus-visible{color:var(--accent);outline:none}.article-eyebrow{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:12px;margin-bottom:16px;font-size:11px;display:inline-flex}.article-eyebrow:after{content:"";background:color-mix(in oklab, var(--line-bright) 60%, transparent);width:32px;height:1px}.article-title{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink);text-wrap:balance;margin:0 0 24px;font-size:clamp(30px,4vw,52px);font-weight:400;line-height:1.06}.article-title em{color:var(--accent);font-style:italic}.article-lede{max-width:60ch;margin:0 0 16px;font-size:17px;line-height:1.55}.article-meta{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.article-chip{letter-spacing:.08em;text-transform:uppercase;background:color-mix(in oklab, var(--bg-elev) 70%, transparent);color:var(--ink-dim);border:1px solid color-mix(in oklab, var(--line-bright) 35%, transparent);padding:4px 10px;font-size:11px}.article-content{color:var(--ink);max-width:75ch;padding:36px clamp(28px,5vw,64px) 32px;font-size:17px;line-height:1.72}.article-doc--page .article-content{padding:36px 0 32px}.article-content>*+*{margin-top:1.05em}.article-content h2,.article-content h3,.article-content h4{font-family:var(--serif);color:var(--ink);letter-spacing:-.015em;text-wrap:balance;margin:1.6em 0 .4em;font-weight:400}.article-content h2{font-size:clamp(22px,2.4vw,30px);line-height:1.2}.article-content h3{font-size:clamp(18px,1.9vw,23px);line-height:1.25}.article-content h4{font-size:18px}.article-content p{margin:1em 0}.article-content a{color:var(--accent);border-bottom:1px dotted color-mix(in oklab, var(--accent) 70%, transparent);transition:border-color .2s,color .2s}.article-content a:hover{border-bottom-color:var(--accent);color:var(--ink)}.article-content code{font-family:var(--mono);background:color-mix(in oklab, var(--bg-deep) 75%, transparent);color:var(--accent);border:1px solid color-mix(in oklab, var(--line-bright) 35%, transparent);border-radius:3px;padding:2px 6px;font-size:.86em}.article-content pre{background:color-mix(in oklab, var(--bg-deep) 80%, transparent);border:1px solid color-mix(in oklab, var(--line-bright) 45%, transparent);border-radius:4px;margin:1.4em 0;padding:18px 20px;font-size:13.5px;line-height:1.55;overflow-x:auto}.article-content pre code{color:var(--ink-dim);background:0 0;border:none;padding:0}.article-content blockquote{border-left:1px solid color-mix(in oklab, var(--accent) 60%, transparent);color:var(--ink-dim);margin:1.4em 0;padding:4px 0 4px 20px;font-style:italic}.article-content ul,.article-content ol{padding-left:22px}.article-content ul li,.article-content ol li{margin:.4em 0}.article-content img{border:1px solid color-mix(in oklab, var(--line-bright) 35%, transparent);border-radius:4px;max-width:100%;height:auto;margin:1.4em 0}.article-content table{border-collapse:collapse;border:1px solid color-mix(in oklab, var(--line-bright) 40%, transparent);width:100%;margin:1.4em 0;font-size:14px}.article-content th,.article-content td{text-align:left;border-bottom:1px solid color-mix(in oklab, var(--line-quiet) 80%, transparent);padding:10px 12px}.article-content th{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mute);background:color-mix(in oklab, var(--bg-elev) 50%, transparent);font-size:11px;font-weight:500}.article-content hr{border:none;border-top:1px solid color-mix(in oklab, var(--line-quiet) 70%, transparent);margin:2em 0}.article-foot{border-top:1px solid color-mix(in oklab, var(--line-bright) 35%, transparent);gap:24px;padding:24px clamp(28px,5vw,64px) 36px;display:grid}.article-doc--page .article-foot{padding:28px 0 0}.article-foot-back{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-mute);align-items:center;gap:8px;width:max-content;font-size:11px;text-decoration:none;transition:color .2s;display:inline-flex}.article-foot-back:hover{color:var(--ink)}.article-adjacent{grid-template-columns:1fr 1fr;gap:16px;margin-top:4px;display:grid}@media (width<=700px){.article-adjacent{grid-template-columns:1fr}}.article-adj{background:color-mix(in oklab, var(--bg-card) 50%, transparent);border:1px solid color-mix(in oklab, var(--line-bright) 35%, transparent);border-radius:4px;flex-direction:column;gap:8px;padding:18px 20px;text-decoration:none;transition:border-color .25s,background .25s,box-shadow .25s;display:flex}.article-adj:hover{border-color:var(--accent);background:color-mix(in oklab, var(--bg-elev) 70%, transparent);box-shadow:0 0 0 1px var(--accent-soft), 0 0 32px -8px var(--accent-soft)}.article-adj-next{text-align:right;align-items:flex-end}.article-adj-label{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.article-adj-title{font-family:var(--serif);color:var(--ink);letter-spacing:-.01em;font-size:17px;line-height:1.25}.article-adj:hover .article-adj-title{color:var(--accent)}.notfound-suggest{background:color-mix(in oklab, var(--line-bright) 30%, transparent);border:1px solid color-mix(in oklab, var(--line-bright) 35%, transparent);border-radius:4px;gap:1px;margin:24px clamp(28px,5vw,64px) 36px;display:grid;overflow:hidden}.article-doc--page .notfound-suggest{margin:24px 0 36px}.notfound-row{background:color-mix(in oklab, var(--bg-card) 55%, transparent);grid-template-columns:auto 1fr auto;align-items:baseline;gap:18px;padding:18px 22px;text-decoration:none;transition:background .25s;display:grid}.notfound-row:hover{background:color-mix(in oklab, var(--bg-elev) 75%, transparent)}.notfound-meta{color:var(--ink-mute);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.notfound-title{font-family:var(--serif);color:var(--ink);font-size:18px;line-height:1.25}.notfound-row:hover .notfound-title{color:var(--accent)}.notfound-arrow{color:var(--accent);font-family:var(--mono);transition:transform .25s}.notfound-row:hover .notfound-arrow{transform:translate(4px)}@media (width<=700px){.article-modal-backdrop{padding:24px 0 0}.article-modal-panel{border-radius:8px 8px 0 0;min-height:calc(100vh - 24px)}.article-head{padding:28px 22px 24px}.article-content{padding:28px 22px;font-size:16px}.article-foot{padding:22px 22px 28px}.article-shell{padding:80px 18px 60px}.article-doc--page{max-width:100%}}@media (prefers-reduced-motion:reduce){.article-modal-backdrop,.article-modal-panel{animation-duration:1ms}.article-modal-close,.article-back .back-arrow,.notfound-arrow,.article-adj{transition-duration:1ms}}.contact{border-top:1px solid var(--line);padding:120px 0 40px}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}@media (width<=900px){.contact-grid{grid-template-columns:1fr;gap:40px}}.contact h2{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 20px;font-size:clamp(26px,3.2vw,42px);font-weight:400;line-height:1.08}.contact h2 em{color:var(--accent)}.contact-form{background:color-mix(in oklab, var(--bg-card) 58%, transparent);-webkit-backdrop-filter:blur(20px)saturate(140%);border:1px solid color-mix(in oklab, var(--line-bright) 45%, transparent);border-radius:6px;gap:12px;padding:28px;transition:border-color .3s,box-shadow .3s;display:grid;position:relative;box-shadow:inset 0 1px #ffffff0d}.contact-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 40px var(--accent-soft)}.contact-form label{font-family:var(--mono);color:var(--ink-mute);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.contact-form input,.contact-form textarea{background:var(--bg);border:1px solid var(--line-bright);color:var(--ink);font:inherit;border-radius:3px;padding:12px 14px;font-size:14px;transition:border-color .2s,box-shadow .2s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft);outline:none}.contact-form textarea{resize:vertical;min-height:120px;font-family:var(--sans)}.contact-form button{justify-self:start;margin-top:8px}.footer{border-top:1px solid var(--line);font-family:var(--mono);color:var(--ink-mute);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:32px 0;font-size:12px;display:flex}html[data-vibe=cyberpunk]{--bg:#07060d;--bg-elev:#0d0b18;--bg-card:#0f0d1f;--ink:#e8ecff;--ink-dim:#8b95c4;--ink-mute:#4a5178;--line:#1a1832;--line-bright:#2a2852;--accent:oklch(82% .21 195);--accent-soft:oklch(82% .21 195/.22);--accent-ink:#07060d;--accent-2:oklch(72% .28 340);--accent-3:oklch(88% .2 125)}html[data-vibe=cyberpunk][data-accent=rust]{--accent:oklch(72% .28 20);--accent-2:oklch(82% .21 195);--accent-soft:oklch(72% .28 20/.22)}html[data-vibe=cyberpunk][data-accent=amber]{--accent:oklch(85% .19 85);--accent-2:oklch(72% .28 340);--accent-soft:oklch(85% .19 85/.22)}html[data-vibe=cyberpunk][data-accent=olive]{--accent:oklch(88% .2 125);--accent-2:oklch(72% .28 340);--accent-soft:oklch(88% .2 125/.22)}html[data-vibe=cyberpunk][data-accent=cyan]{--accent:oklch(82% .21 195);--accent-2:oklch(72% .28 340);--accent-soft:oklch(82% .21 195/.22)}html[data-vibe=cyberpunk][data-accent=violet]{--accent:oklch(70% .26 300);--accent-2:oklch(82% .21 195);--accent-soft:oklch(70% .26 300/.22)}html[data-vibe=cyberpunk] body{background-color:var(--bg);background-image:radial-gradient(ellipse 1000px 500px at 15% 0%, oklch(82% .21 195/.22), transparent 55%), radial-gradient(ellipse 900px 500px at 100% 30%, oklch(72% .28 340/.2), transparent 55%), radial-gradient(ellipse 700px 400px at 50% 100%, oklch(70% .26 300/.16), transparent 55%), linear-gradient(var(--bg), var(--bg));background-attachment:fixed}html[data-vibe=cyberpunk] body:before{content:"";pointer-events:none;z-index:1;transform:translate3d(calc(var(--px,0) * -12px), calc(var(--py,0) * -12px + var(--scrolly,0px) * .12), 0);background-image:linear-gradient(oklch(82% .21 195/.08) 1px,#0000 1px),linear-gradient(90deg,oklch(82% .21 195/.08) 1px,#0000 1px);background-size:56px 56px;transition:transform .6s cubic-bezier(.2,.7,.2,1);position:fixed;inset:-10%;-webkit-mask-image:radial-gradient(#000 20%,#0000 80%);mask-image:radial-gradient(#000 20%,#0000 80%)}.particles{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.particles .p{background:var(--accent);width:2px;height:2px;box-shadow:0 0 6px var(--accent), 0 0 12px var(--accent-soft);opacity:.6;border-radius:50%;animation:linear infinite drift;position:absolute}@keyframes drift{0%{opacity:0;transform:translateY(100vh)}8%{opacity:.7}92%{opacity:.6}to{transform:translate3d(var(--dx,30px), -10vh, 0);opacity:0}}html[data-vibe=cyberpunk] .nav,html[data-vibe=cyberpunk] .tweaks{z-index:100;position:relative}html[data-vibe=cyberpunk] section{z-index:3;position:relative}html[data-vibe=cyberpunk] .nav{z-index:100;position:fixed}html[data-vibe=cyberpunk] .hero-headline .sub{text-shadow:0 0 12px var(--accent-soft);font-family:var(--mono)!important;text-transform:uppercase!important;letter-spacing:.22em!important;color:var(--accent)!important;font-size:.22em!important;font-weight:500!important}html[data-vibe=cyberpunk] .hero-headline,html[data-vibe=cyberpunk] .about h2,html[data-vibe=cyberpunk] .feature h3,html[data-vibe=cyberpunk] .contact h2,html[data-vibe=cyberpunk] .commit .role,html[data-vibe=cyberpunk] .article h4,html[data-vibe=cyberpunk] section h2{letter-spacing:-.005em;text-transform:uppercase;font-weight:600;font-family:var(--display)!important;font-style:normal!important}html[data-vibe=cyberpunk] .hero-headline .italic,html[data-vibe=cyberpunk] .about h2 em,html[data-vibe=cyberpunk] .feature h3 em,html[data-vibe=cyberpunk] .contact h2 em,html[data-vibe=cyberpunk] section h2 em{color:var(--accent);text-shadow:0 0 28px var(--accent), 0 0 10px var(--accent);font-style:normal!important}html[data-vibe=cyberpunk] .hero-headline{text-shadow:-1px 0 oklch(72% .28 340/.65),1px 0 oklch(82% .21 195/.65),0 0 36px oklch(82% .21 195/.3)}html[data-vibe=cyberpunk] .nav{background:color-mix(in oklab, var(--bg) 78%, transparent)}html[data-vibe=cyberpunk] .nav.scrolled{border-bottom-color:oklch(82% .21 195/.3);box-shadow:0 1px oklch(82% .21 195/.3),0 0 32px oklch(82% .21 195/.14)}html[data-vibe=cyberpunk] .nav .brand .dot{background:var(--accent);box-shadow:0 0 14px var(--accent), 0 0 28px var(--accent)}html[data-vibe=cyberpunk] .nav-links a:not(.cta):after{background:var(--accent);box-shadow:0 0 6px var(--accent)}html[data-vibe=cyberpunk] .nav-links a.active .idx{color:var(--accent-2);text-shadow:0 0 8px var(--accent-2)}html[data-vibe=cyberpunk] .cta:hover{box-shadow:0 0 0 1px var(--accent), 0 0 28px var(--accent-soft)}html[data-vibe=cyberpunk] .btn{background:var(--bg-elev);clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);border-radius:0}html[data-vibe=cyberpunk] .btn:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 28px var(--accent-soft);color:var(--accent)}html[data-vibe=cyberpunk] .btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 1px var(--accent), 0 0 32px var(--accent-soft)}html[data-vibe=cyberpunk] .btn-primary:hover{background:var(--bg);color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 48px var(--accent)}html[data-vibe=cyberpunk] .mtg-card{border-color:var(--accent);box-shadow:0 40px 80px -20px #0009, 0 0 0 1px var(--accent);isolation:isolate;background:#0d0b0a linear-gradient(135deg,#1a1815,#0d0b0a) padding-box padding-box}html[data-vibe=cyberpunk] .mtg-card:before,html[data-vibe=cyberpunk] .mtg-card:after{content:"";z-index:-1;pointer-events:none;filter:blur(40px);opacity:.95;border-radius:28px;transition:opacity .5s;position:absolute;inset:-40px}html[data-vibe=cyberpunk] .mtg-card:before{background:linear-gradient(45deg,oklch(70% .22 250/.95) 0%,oklch(70% .22 250/.9) 44%,oklch(68% .25 28/.9) 56%,oklch(68% .25 28/.95) 100%);animation:7s ease-in-out infinite mtgAuraA}html[data-vibe=cyberpunk] .mtg-card:after{filter:blur(18px);background:radial-gradient(#0000 42%,oklch(70% .14 300/.9) 52%,oklch(70% .14 300/.4) 62%,#0000 78%);animation:9s ease-out infinite mtgRipple}@keyframes mtgAuraA{0%{opacity:.7;transform:scale(1)}30%{opacity:.88;transform:scale(1)}47%{opacity:.98;transform:scale(1)}49%{opacity:1;transform:scale(1.035)}52%{opacity:1;transform:scale(1)}70%{opacity:.88;transform:scale(1)}to{opacity:.7;transform:scale(1)}}@keyframes mtgRipple{0%{opacity:.9;transform:scale(1)}60%{opacity:.4;transform:scale(1.45)}to{opacity:0;transform:scale(1.9)}}html[data-vibe=cyberpunk] .mtg-card:hover{box-shadow:0 60px 100px -20px #000000b3, 0 0 0 1px var(--accent), 0 0 120px -10px var(--accent);animation:none}@media (prefers-reduced-motion:reduce){html[data-vibe=cyberpunk] .mtg-card{animation:none}}html[data-vibe=cyberpunk] .mtg-type,html[data-vibe=cyberpunk] .mtg-setsymbol,html[data-vibe=cyberpunk] .mtg-rule,html[data-vibe=cyberpunk] .mtg-flavor{color:#0000;text-shadow:none;background-image:linear-gradient(90deg,oklch(72% .22 250) 0%,oklch(72% .25 28) 100%);-webkit-background-clip:text;background-clip:text}html[data-vibe=cyberpunk] .mtg-name{color:oklch(70% .14 300);text-shadow:0 0 10px oklch(70% .14 300/.4);background-image:none;-webkit-background-clip:border-box;background-clip:border-box}html[data-vibe=cyberpunk] .mtg-titlebar,html[data-vibe=cyberpunk] .mtg-typebar,html[data-vibe=cyberpunk] .mtg-textbox,html[data-vibe=cyberpunk] .mtg-art,html[data-vibe=cyberpunk] .mtg-pt{border-color:oklch(82% .21 195/.55);box-shadow:inset 0 0 0 1px oklch(82% .21 195/.15),0 0 12px -4px oklch(82% .21 195/.3)}html[data-vibe=cyberpunk] .mtg-titlebar,html[data-vibe=cyberpunk] .mtg-typebar{background:linear-gradient(90deg,oklch(22% .04 260),oklch(14% .03 260))}html[data-vibe=cyberpunk] .mtg-textbox{background:linear-gradient(oklch(16% .03 260),oklch(11% .02 260))}html[data-vibe=cyberpunk] .mtg-flavor{border-top-color:oklch(82% .21 195/.35)}html[data-vibe=cyberpunk] .mtg-pt{color:oklch(70% .14 300);text-shadow:0 0 10px oklch(70% .14 300/.4);background-image:linear-gradient(135deg,oklch(22% .04 260),oklch(14% .03 260));-webkit-background-clip:padding-box;background-clip:padding-box;border-color:oklch(70% .14 300/.55);box-shadow:inset 0 0 0 1px oklch(70% .14 300/.2),0 0 14px -4px oklch(70% .14 300/.35)}html[data-vibe=cyberpunk] .hero-signature{color:var(--ink-cool)}html[data-vibe=cyberpunk] .hero-signature .sep{color:var(--accent-2);text-shadow:0 0 6px var(--accent-2);opacity:.85}html[data-vibe=cyberpunk] .skills-table{border-color:oklch(82% .21 195/.3);border-radius:0}html[data-vibe=cyberpunk] .skills-head{border-bottom-color:oklch(82% .21 195/.3)}html[data-vibe=cyberpunk] .skill-row{border-bottom-color:oklch(82% .21 195/.14)}html[data-vibe=cyberpunk] .skill-row:hover{background:color-mix(in oklab, var(--accent) 6%, var(--bg-card))}html[data-vibe=cyberpunk] .skill-bar{background:oklch(82% .21 195/.1)}html[data-vibe=cyberpunk] .skill-bar-fill{background:linear-gradient(90deg, var(--accent-2), var(--accent));box-shadow:0 0 12px var(--accent), 0 0 24px var(--accent-soft)}html[data-vibe=cyberpunk] .skill-row .yrs{color:var(--accent);text-shadow:0 0 8px var(--accent-soft)}html[data-vibe=cyberpunk] .feature{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 80px oklch(82% .21 195/.25);border-radius:0}html[data-vibe=cyberpunk] .feature:before{background:radial-gradient(700px 350px at 100% 0,oklch(72% .28 340/.28),#0000 60%),radial-gradient(500px 250px at 0 100%,oklch(82% .21 195/.22),#0000 60%)}html[data-vibe=cyberpunk] .feature .tag{color:var(--accent-3);background:color-mix(in oklab, var(--accent-3) 14%, transparent);box-shadow:inset 0 0 0 1px var(--accent-3);border-radius:0}html[data-vibe=cyberpunk] .feature .tag:before{background:var(--accent-3);box-shadow:0 0 10px var(--accent-3)}html[data-vibe=cyberpunk] .feature .kpi .v{color:var(--accent);text-shadow:0 0 14px var(--accent-soft);font-family:var(--display)}html[data-vibe=cyberpunk] .feature .kpi .v .u{color:var(--accent-2);text-shadow:0 0 10px var(--accent-2)}html[data-vibe=cyberpunk] .pipe{background:var(--bg);border-radius:0}html[data-vibe=cyberpunk] .pipe-node{background:var(--bg-elev);border-radius:0}html[data-vibe=cyberpunk] .pipe-node.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 28px var(--accent-soft)}html[data-vibe=cyberpunk] .pipe-node .glyph{color:var(--accent);text-shadow:0 0 10px var(--accent)}html[data-vibe=cyberpunk] .projects-tabs{border-bottom-color:oklch(82% .21 195/.25)}html[data-vibe=cyberpunk] .projects-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);text-shadow:0 0 8px var(--accent-soft)}html[data-vibe=cyberpunk] .project-list{background:oklch(82% .21 195/.18);border-color:oklch(82% .21 195/.25);border-radius:0}html[data-vibe=cyberpunk] .project-row:hover{background:color-mix(in oklab, var(--accent) 5%, var(--bg))}html[data-vibe=cyberpunk] .project-row.expanded{background:color-mix(in oklab, var(--accent-2) 7%, var(--bg-elev))}html[data-vibe=cyberpunk] .project-row:before{background:var(--accent);box-shadow:0 0 12px var(--accent)}html[data-vibe=cyberpunk] .project-row .ptitle{font-family:var(--display);text-transform:uppercase;font-size:20px}html[data-vibe=cyberpunk] .project-row:hover .ptitle{color:var(--accent);text-shadow:0 0 10px var(--accent-soft)}html[data-vibe=cyberpunk] .project-row .pmeta .tag{background:var(--bg-elev);border-radius:0}html[data-vibe=cyberpunk] .project-detail{border-top-color:var(--accent)}html[data-vibe=cyberpunk] .project-detail .stack span{border-radius:0}html[data-vibe=cyberpunk] .project-detail .stack span:hover{box-shadow:0 0 0 1px var(--accent), 0 0 16px var(--accent-soft)}html[data-vibe=cyberpunk] .project-detail .metrics .v{color:var(--accent);text-shadow:0 0 12px var(--accent-soft);font-family:var(--display)}html[data-vibe=cyberpunk] .git-connector{stroke:var(--accent);filter:drop-shadow(0 0 6px var(--accent-soft))}html[data-vibe=cyberpunk] .commit{background:color-mix(in oklab, var(--accent) 3%, var(--bg-card));border-color:oklch(82% .21 195/.3);border-radius:0}html[data-vibe=cyberpunk] .commit:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 48px var(--accent-soft)}html[data-vibe=cyberpunk] .commit:before{border-color:var(--accent);box-shadow:0 0 10px var(--accent)}html[data-vibe=cyberpunk] .commit.current:before{background:var(--accent-2);border-color:var(--accent-2);box-shadow:0 0 14px var(--accent-2), 0 0 0 4px oklch(72% .28 340/.28)}html[data-vibe=cyberpunk] .commit .role{font-size:20px}html[data-vibe=cyberpunk] .commit .company{color:var(--accent);text-shadow:0 0 8px var(--accent-soft)}html[data-vibe=cyberpunk] .commit ul li:before{color:var(--accent-3);text-shadow:0 0 8px var(--accent-3)}html[data-vibe=cyberpunk] .commit ul li strong{color:var(--accent-2);text-shadow:0 0 8px var(--accent-2)}html[data-vibe=cyberpunk] .resume-toggle{border-radius:0}html[data-vibe=cyberpunk] .resume-toggle button.active{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 16px var(--accent-soft)}html[data-vibe=cyberpunk] .writing-grid{background:oklch(82% .21 195/.14);border-color:oklch(82% .21 195/.25);border-radius:0}html[data-vibe=cyberpunk] .article:hover{background:color-mix(in oklab, var(--accent) 6%, var(--bg))}html[data-vibe=cyberpunk] .article .cats{color:var(--accent-3);text-shadow:0 0 8px var(--accent-3)}html[data-vibe=cyberpunk] .article h4{letter-spacing:0;font-size:16px}html[data-vibe=cyberpunk] .contact{border-top-color:var(--accent);box-shadow:0 -1px 0 var(--accent)}html[data-vibe=cyberpunk] .contact-form{border-color:oklch(82% .21 195/.4);border-radius:0}html[data-vibe=cyberpunk] .contact-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 56px var(--accent-soft)}html[data-vibe=cyberpunk] .contact-form input,html[data-vibe=cyberpunk] .contact-form textarea{background:var(--bg);border-radius:0}html[data-vibe=cyberpunk] .contact-form input:focus,html[data-vibe=cyberpunk] .contact-form textarea:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent), 0 0 20px var(--accent-soft)}html[data-vibe=cyberpunk] .fact-list{border-top-color:oklch(82% .21 195/.25)}html[data-vibe=cyberpunk] .fact-list .fact{border-bottom-color:oklch(82% .21 195/.14)}html[data-vibe=cyberpunk] .fact-list .fact:before{background:var(--accent);box-shadow:0 0 6px var(--accent)}html[data-vibe=cyberpunk] .fact-list .fact a{color:var(--accent);border-bottom-color:var(--accent);text-shadow:0 0 8px var(--accent-soft)}html[data-vibe=cyberpunk] .section-label{color:var(--accent);text-shadow:0 0 8px var(--accent-soft)}html[data-vibe=cyberpunk] .section-label:before{background:var(--accent);box-shadow:0 0 8px var(--accent)}html[data-vibe=cyberpunk] .section-label .num{color:var(--accent-2);text-shadow:0 0 8px var(--accent-2)}.izzet-card{border:1px solid var(--line-bright);isolation:isolate;background:linear-gradient(135deg,#0e0b09 0%,#15120f 100%);border-radius:8px;padding:56px clamp(28px,4vw,64px);position:relative;overflow:visible;box-shadow:0 40px 80px -20px #0009,0 0 180px 12px oklch(60% .14 305/.18),0 0 300px 40px oklch(55% .1 300/.09)}@media (width<=700px){.izzet-card{padding:36px 22px;box-shadow:0 24px 50px -18px #0000008c,0 0 60px oklch(60% .14 305/.18)}.izzet-card:before,.izzet-card:after{filter:blur(22px);border-radius:12px;inset:-18px}}.izzet-card:before,.izzet-card:after{content:"";z-index:-1;pointer-events:none;filter:blur(46px);border-radius:20px;transition:opacity .6s;position:absolute;inset:-56px}.izzet-card.izzet-blue:before{opacity:.42;background:linear-gradient(135deg,oklch(70% .22 250/.8) 0%,oklch(70% .22 250/.65) 40%,oklch(66% .19 280/.55) 62%,oklch(62% .16 300/.42) 82%,oklch(58% .13 310/.22) 100%);animation:7s ease-in-out infinite izzetBreath}.izzet-card.izzet-blue:after{filter:blur(30px);opacity:.45;background:radial-gradient(at 95% 5%,oklch(70% .22 250/.55) 0%,oklch(68% .18 285/.28) 45%,oklch(60% .14 305/.1) 75%,#0000 90%);animation:9s ease-out infinite izzetPulse}.izzet-card.izzet-red:before{opacity:.48;background:linear-gradient(135deg,oklch(68% .25 28/.5) 0%,oklch(66% .18 320/.6) 22%,oklch(68% .25 28/.85) 48%,oklch(64% .17 310/.55) 78%,oklch(58% .13 305/.28) 100%);animation:7s ease-in-out -3.5s infinite izzetBreath}.izzet-card.izzet-red:after{filter:blur(30px);opacity:.52;background:radial-gradient(at 5% 95%,oklch(68% .25 28/.6) 0%,oklch(65% .18 320/.28) 40%,oklch(60% .14 305/.12) 72%,#0000 90%);animation:9s ease-out -4.5s infinite izzetPulse}@keyframes izzetBreath{0%{opacity:.7;transform:scale(1)}30%{opacity:.86;transform:scale(1)}47%{opacity:.96;transform:scale(1)}49%{opacity:1;transform:scale(1.012)}52%{opacity:1;transform:scale(1)}70%{opacity:.86;transform:scale(1)}to{opacity:.7;transform:scale(1)}}@keyframes izzetPulse{0%{opacity:.75;transform:scale(1)}60%{opacity:.35;transform:scale(1.28)}to{opacity:0;transform:scale(1.5)}}.izzet-card .izzet-seal{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.izzet-card .izzet-seal rect{fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;transition:stroke-dashoffset 2.2s cubic-bezier(.4,0,.2,1),opacity .8s}.izzet-card.izzet-blue .izzet-seal rect{stroke:oklch(72% .22 250);filter:drop-shadow(0 0 10px oklch(72% .22 250/.6))}.izzet-card.izzet-red .izzet-seal rect{stroke:oklch(72% .25 28);filter:drop-shadow(0 0 10px oklch(72% .25 28/.6))}.izzet-card.in-view .izzet-seal rect{stroke-dashoffset:0;opacity:.9}.izzet-card .izzet-corner{pointer-events:none;z-index:1;opacity:0;width:14px;height:14px;transition:opacity .5s 1.8s,transform .6s cubic-bezier(.4,0,.2,1) 1.8s;position:absolute;transform:scale(.2)}.izzet-card .izzet-corner.tl{border-top:1.5px solid;border-left:1.5px solid;top:-6px;left:-6px}.izzet-card .izzet-corner.tr{border-top:1.5px solid;border-right:1.5px solid;top:-6px;right:-6px}.izzet-card .izzet-corner.bl{border-bottom:1.5px solid;border-left:1.5px solid;bottom:-6px;left:-6px}.izzet-card .izzet-corner.br{border-bottom:1.5px solid;border-right:1.5px solid;bottom:-6px;right:-6px}.izzet-card.izzet-blue .izzet-corner{color:oklch(78% .22 250);filter:drop-shadow(0 0 6px oklch(72% .22 250/.7))}.izzet-card.izzet-red .izzet-corner{color:oklch(78% .25 28);filter:drop-shadow(0 0 6px oklch(72% .25 28/.7))}.izzet-card.in-view .izzet-corner{opacity:1;transform:scale(1)}html[data-vibe=cyberpunk] .izzet-card .izzet-split .izzet-text-left,html[data-vibe=cyberpunk] .izzet-card .izzet-split .izzet-text-right{color:#0000;-webkit-background-clip:text;background-clip:text}html[data-vibe=cyberpunk] .izzet-card .izzet-split .izzet-text-left{background-image:linear-gradient(90deg,oklch(82% .21 250) 0%,oklch(72% .22 250) 100%)}html[data-vibe=cyberpunk] .izzet-card .izzet-split .izzet-text-right{background-image:linear-gradient(90deg,oklch(72% .25 28) 0%,oklch(82% .21 28) 100%)}html[data-vibe=cyberpunk] .izzet-card .izzet-split em{color:oklch(78% .15 300);text-shadow:0 0 24px oklch(70% .14 300/.8),0 0 48px oklch(70% .14 300/.4)}html[data-vibe=cyberpunk] .izzet-card.izzet-blue .fact-list .fact:before{background:oklch(72% .22 250);box-shadow:0 0 10px oklch(72% .22 250)}html[data-vibe=cyberpunk] .izzet-card.izzet-red .fact-list .fact:before{background:oklch(72% .25 28);box-shadow:0 0 10px oklch(72% .25 28)}html[data-vibe=cyberpunk] .izzet-card.izzet-blue .fact-list .fact:hover{color:oklch(88% .12 250)}html[data-vibe=cyberpunk] .izzet-card.izzet-red .fact-list .fact:hover{color:oklch(88% .14 28)}.about .izzet-card,section .izzet-card{margin-top:8px}@media (prefers-reduced-motion:reduce){.izzet-card:before,.izzet-card:after{animation:none!important}.izzet-card .izzet-seal rect{stroke-dashoffset:0;opacity:.9;transition:none}.izzet-card .izzet-corner{opacity:1;transition:none;transform:none}}html[data-vibe=cyberpunk] .izzet-card.izzet-red .izzet-split .izzet-text-left{background-image:linear-gradient(90deg,oklch(82% .21 28) 0%,oklch(72% .25 28) 100%)}html[data-vibe=cyberpunk] .izzet-card.izzet-red .izzet-split .izzet-text-right{background-image:linear-gradient(90deg,oklch(72% .22 250) 0%,oklch(82% .21 250) 100%)}html[data-vibe=cyberpunk] .izzet-card .skills-table{background:oklab(13.6182% .00207824 .0061563/.72);border:1px solid oklch(72% .25 28/.35);border-radius:6px;padding:10px 16px;box-shadow:inset 0 0 0 1px oklch(72% .25 28/.08),0 0 42px oklch(68% .25 28/.15)}html[data-vibe=cyberpunk] .izzet-card .skills-head{color:oklch(92% .14 55);text-shadow:0 0 10px oklch(80% .22 28/.35);background:oklab(22% .0529769 .0281683/.85);border-bottom-color:oklch(72% .25 28/.3)}html[data-vibe=cyberpunk] .izzet-card .skills-head>div{color:oklch(92% .14 55)}html[data-vibe=cyberpunk] .izzet-card .skill-row{border-bottom-color:oklch(72% .25 28/.12);transition:background .3s,box-shadow .3s}html[data-vibe=cyberpunk] .izzet-card .skill-row .name{color:oklch(96% .03 60)}html[data-vibe=cyberpunk] .izzet-card .skill-row .use{color:oklch(82% .04 60)}html[data-vibe=cyberpunk] .izzet-card .skill-row .yrs{color:oklch(88% .16 28);text-shadow:0 0 8px oklch(80% .22 28/.5)}html[data-vibe=cyberpunk] .izzet-card .skill-row:hover{background:linear-gradient(90deg,oklch(72% .22 250/.08) 0%,oklch(72% .25 28/.08) 100%);box-shadow:inset 0 0 0 1px oklch(72% .25 28/.2),0 0 22px -8px oklch(72% .25 28/.5)}html[data-vibe=cyberpunk] .izzet-card .skill-row .idx{color:oklch(72% .22 250)}html[data-vibe=cyberpunk] .izzet-card .skill-row .name .accent{color:oklch(78% .25 28);text-shadow:0 0 10px oklch(72% .25 28/.8)}html[data-vibe=cyberpunk] .izzet-card .skill-bar{background:oklch(25% .03 260/.6);border-radius:0}html[data-vibe=cyberpunk] .izzet-card .skill-bar-fill{background:linear-gradient(90deg,oklch(74% .22 250) 0%,oklch(72% .22 260) 30%,oklch(70% .18 310) 55%,oklch(72% .25 28) 85%,oklch(80% .22 28) 100%);position:relative;box-shadow:0 0 18px oklch(72% .25 28/.55),inset 0 0 8px oklch(80% .22 28/.3)}html[data-vibe=cyberpunk] .izzet-card .skill-bar-fill:after{content:"";opacity:.85;background:linear-gradient(90deg,#0000 0%,oklch(92% .18 28) 100%);width:6px;height:100%;position:absolute;top:0;right:0;box-shadow:0 0 10px oklch(92% .18 28),0 0 22px oklch(80% .22 28/.7)}.izzet-card.izzet-blue:hover:before{opacity:.72}.izzet-card.izzet-blue:hover:after{opacity:.65}.izzet-card.izzet-red:hover:before{opacity:1}.izzet-card.izzet-red:hover:after{opacity:.6}html[data-vibe=cyberpunk] .izzet-card p{color:oklch(94% .02 60)}html[data-vibe=cyberpunk] .izzet-card p strong{color:oklch(98% .03 60);font-weight:500}html[data-vibe=cyberpunk] .izzet-card p.dim{color:oklch(90% .02 60)}html[data-vibe=cyberpunk] .izzet-card.izzet-blue .fact-list .fact>:first-child{color:oklch(82% .03 60)}html[data-vibe=cyberpunk] .izzet-card.izzet-blue .fact-list .fact>:nth-child(2){color:oklch(94% .02 60)}html[data-vibe=cyberpunk] .izzet-card.izzet-blue .fact-list .fact .accent{color:oklch(82% .18 250);text-shadow:0 0 10px oklch(72% .22 250/.5)}.featured-tile{background:var(--bg);cursor:pointer;min-height:100%;color:inherit;flex-direction:column;gap:10px;padding:28px 30px;transition:background .25s;display:flex;position:relative;overflow:hidden}.featured-tile:hover{background:var(--bg-elev)}.featured-tile .cats{font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;z-index:2;font-size:10px;position:relative}.featured-tile h4{font-family:var(--serif);letter-spacing:-.01em;z-index:2;margin:0;font-size:clamp(20px,2.2vw,26px);font-weight:400;line-height:1.2;transition:color .2s;position:relative}.featured-tile:hover h4{color:var(--accent)}.featured-tile .meta{font-family:var(--mono);color:var(--ink-mute);z-index:2;gap:14px;margin-top:auto;padding-top:14px;font-size:10px;display:flex;position:relative}.featured-tile .flair-bg{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.featured-tile .badge{font-family:var(--mono);letter-spacing:.12em;color:var(--ink-mute);text-transform:uppercase;z-index:3;border:1px solid var(--line-bright);background:color-mix(in oklab, var(--bg) 70%, transparent);padding:4px 8px;font-size:9px;position:absolute;top:14px;right:16px}.featured-tile:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (prefers-reduced-motion:reduce){.featured-tile *,.featured-tile :before,.featured-tile :after{transition-duration:.15s!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.research-loop-card .loop-svg{opacity:.55;width:100%;height:100%;position:absolute;inset:0}.research-loop-card .loop-path{fill:none;stroke:var(--accent);stroke-width:.8px;stroke-dasharray:3 4;opacity:.55}.research-loop-card .loop-node circle{fill:var(--ink-mute);transition:fill .25s}.research-loop-card .loop-node.active circle{fill:var(--accent);filter:drop-shadow(0 0 6px var(--accent))}.research-loop-card .loop-node .loop-label{font-family:var(--mono);fill:var(--ink-mute);letter-spacing:.08em;text-transform:uppercase;font-size:7px;transition:fill .25s}.research-loop-card .loop-node.active .loop-label{fill:var(--ink)}.research-loop-card .loop-dot{fill:var(--accent);filter:drop-shadow(0 0 8px var(--accent));transition:cx .6s cubic-bezier(.4,0,.2,1),cy .6s cubic-bezier(.4,0,.2,1)}.research-loop-card.is-hover .loop-dot{transition-duration:.2s}.research-loop-card .loop-adv-pulse{stroke:oklch(68% .18 25);stroke-width:0;opacity:0}.research-loop-card.is-hover .loop-adv-pulse{animation:.9s ease-out 50ms loop-adv}@keyframes loop-adv{0%{stroke-width:0;opacity:0}30%{stroke-width:2px;opacity:.8}to{stroke-width:0;opacity:0}}.research-loop-card .loop-replication{fill:none;stroke:oklch(72% .13 150);stroke-width:0;opacity:0}.research-loop-card.is-hover .loop-replication{animation:1.1s ease-out .5s loop-rep}@keyframes loop-rep{0%{stroke-width:0;opacity:0;transform-origin:50%;transform:scale(.85)}40%{stroke-width:1.5px;opacity:.7}to{stroke-width:0;opacity:0;transform:scale(1.05)}}.research-loop-card .iter-counter{font-family:var(--mono);color:var(--ink-mute);z-index:2;align-items:baseline;gap:6px;font-size:10px;display:flex;position:absolute;bottom:56px;left:24px}.research-loop-card .iter-counter .iter-label{text-transform:uppercase;letter-spacing:.1em}.research-loop-card .iter-counter .iter-num{color:var(--accent);font-size:14px;font-weight:600}@media (prefers-reduced-motion:reduce){.research-loop-card .loop-dot{transition:none}.research-loop-card.is-hover .loop-adv-pulse,.research-loop-card.is-hover .loop-replication{animation:none}}.at-home-media-card{--accent:oklch(75% .14 70);--accent-soft:oklch(75% .14 70/.14)}.at-home-media-card .vignette{background:radial-gradient(#0000 55%,#00000073 100%);position:absolute;inset:0}.at-home-media-card .amh-title{position:relative}.at-home-media-card .amh-title:before,.at-home-media-card .amh-title:after{content:attr(data-text);pointer-events:none;opacity:.45;transition:transform .3s,opacity .3s;position:absolute;top:0;left:0}.at-home-media-card .amh-title:before{color:oklch(68% .18 25);transform:translate(-1.5px)}.at-home-media-card .amh-title:after{color:oklch(72% .13 195);transform:translate(1.5px)}.at-home-media-card.is-hover .amh-title:before,.at-home-media-card.is-hover .amh-title:after{opacity:0;transform:translate(0)}.at-home-media-card .now-playing{font-family:var(--mono);z-index:2;align-items:baseline;gap:10px;margin-top:6px;font-size:11px;display:flex;position:relative}.at-home-media-card .np-label{color:var(--accent);letter-spacing:.12em}.at-home-media-card .np-current{color:var(--ink-dim);transition:opacity .3s}.at-home-media-card .progress-row{z-index:2;align-items:center;gap:10px;display:flex;position:relative}.at-home-media-card .progress-bar{background:var(--line);flex:1;height:3px;position:relative;overflow:hidden}.at-home-media-card .progress-fill{background:var(--accent);height:100%;box-shadow:0 0 8px var(--accent-soft);transition:width .6s linear}.at-home-media-card .timecode{font-family:var(--mono);color:var(--ink-mute);min-width:36px;font-size:10px}.at-home-media-card .chips{z-index:2;gap:6px;margin-top:2px;display:flex;position:relative}.at-home-media-card .chip{font-family:var(--mono);letter-spacing:.1em;border:1px solid color-mix(in oklab, var(--accent) 50%, var(--line));color:var(--accent);padding:2px 6px;font-size:9px}.at-home-media-card .play-overlay{color:var(--accent);opacity:0;pointer-events:none;z-index:3;text-shadow:0 0 24px var(--accent);justify-content:center;align-items:center;font-size:64px;transition:opacity .25s ease-out,transform .25s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;inset:0;transform:scale(.5)}.at-home-media-card.is-hover .play-overlay{opacity:.9;transform:scale(1)}@media (prefers-reduced-motion:reduce){.at-home-media-card .progress-fill{transition:none}.at-home-media-card .play-overlay{transition:opacity .15s}}.obsidian-wiki-card .graph-svg{opacity:.55;width:100%;height:100%;transition:opacity .3s;position:absolute;inset:0}.obsidian-wiki-card.is-hover .graph-svg{opacity:.85}.obsidian-wiki-card .graph-edge{stroke:var(--accent);stroke-width:.6px}.obsidian-wiki-card .graph-node{fill:var(--accent);filter:drop-shadow(0 0 4px var(--accent-soft))}.obsidian-wiki-card .graph-counter{z-index:2;pointer-events:none;position:absolute;top:50%;left:28px;transform:translateY(-50%)}.obsidian-wiki-card .count-num{font-family:var(--display,var(--mono));color:var(--ink);letter-spacing:-.02em;text-shadow:0 0 16px var(--accent-soft);font-size:clamp(56px,8vw,96px);font-weight:700;line-height:1}.obsidian-wiki-card .count-sub{font-family:var(--mono);color:var(--ink-mute);letter-spacing:.12em;text-transform:uppercase;max-width:60%;margin-top:8px;font-size:10px}@media (prefers-reduced-motion:reduce){.obsidian-wiki-card .graph-edge{opacity:.4!important}}:root{--izzet-u:oklch(72% .18 245);--izzet-r:oklch(68% .22 25);--izzet-hot:oklch(92% .14 90);--izzet-mx:50vw;--izzet-my:50vh}html[data-izzet-cursor=on],html[data-izzet-cursor=on] *,html[data-izzet-cursor=on] a,html[data-izzet-cursor=on] button{cursor:none!important}html[data-izzet-cursor=on] input,html[data-izzet-cursor=on] textarea,html[data-izzet-cursor=on] [contenteditable=true]{cursor:text!important}.izzet-cursor-root{pointer-events:none;z-index:2147483646;contain:layout paint;position:fixed;inset:0}.izzet-shock-layer,.izzet-arrival-layer{pointer-events:none;position:absolute;inset:0}.izzet-cursor-dot,.izzet-cursor-ring{pointer-events:none;will-change:transform;border-radius:50%;position:absolute;top:0;left:0}.izzet-cursor-hidden{opacity:0}.izzet-cursor-live{opacity:1}.izzet-cursor-dot{background:var(--accent);width:6px;height:6px;margin-top:-3px;margin-left:-3px;transition:background .2s,opacity .2s,box-shadow .2s;box-shadow:0 0 #0000}.izzet-cursor-ring{border:1px solid color-mix(in oklch, var(--accent) 55%, transparent);background:0 0;width:30px;height:30px;margin-top:-15px;margin-left:-15px;transition:transform .22s cubic-bezier(.2,.7,.2,1),width .2s cubic-bezier(.2,.7,.2,1),height .2s cubic-bezier(.2,.7,.2,1),margin .2s cubic-bezier(.2,.7,.2,1),border-color .2s,background .2s,opacity .2s}.izzet-cursor-ring.izzet-cursor-active{border-color:var(--accent);background:color-mix(in oklch, var(--accent) 6%, transparent);width:46px;height:46px;margin-top:-23px;margin-left:-23px}.izzet-cursor-dot.izzet-cursor-active{opacity:.35}.izzet-cursor-dot.izzet-cursor-down{opacity:1;box-shadow:0 0 10px 2px var(--accent)}.izzet-cursor-ring.izzet-cursor-down{border-color:var(--accent);width:22px;height:22px;margin-top:-11px;margin-left:-11px}.izzet-shock{border:2px solid var(--izzet-u);pointer-events:none;will-change:transform, opacity;border-radius:50%;width:10px;height:10px;margin-top:-5px;margin-left:-5px;animation:.7s cubic-bezier(.2,.7,.2,1) forwards izzetShock;position:absolute}.izzet-shock-r{border-color:var(--izzet-r);border-style:dashed;animation-duration:.9s}@keyframes izzetShock{0%{opacity:1;border-width:3px;transform:scale(.4)}40%{opacity:.8;border-width:2px}to{opacity:0;border-width:.5px;transform:scale(14)}}@media (prefers-reduced-motion:reduce){.izzet-cursor-dot,.izzet-cursor-ring,.izzet-shock{transition:none!important;animation:none!important}}html[data-izzet-cursor=on] .izzet-ignite{--izzet-cx:-600px;--izzet-cy:-600px;background-image:radial-gradient(circle 260px at var(--izzet-cx) var(--izzet-cy), var(--izzet-hot) 0%, var(--izzet-u) 22%, var(--izzet-r) 48%, var(--ink) 78%, var(--ink) 100%);color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}html[data-izzet-cursor=on] .izzet-ignite em,html[data-izzet-cursor=on] .izzet-ignite .italic{color:var(--accent);-webkit-text-fill-color:var(--accent);background:0 0;-webkit-background-clip:initial;background-clip:initial}html[data-izzet-cursor=on] .izzet-magnetic{--izzet-px:0px;--izzet-py:0px;transform:translate(var(--izzet-px), var(--izzet-py));transition:transform .22s cubic-bezier(.2,.7,.2,1),box-shadow .22s}html[data-izzet-cursor=on] .izzet-magnetic.izzet-magnet-on{box-shadow:0 0 24px oklch(72% .18 245/.5),0 0 48px oklch(68% .22 25/.3)}html[data-izzet-cursor=on] .project-row{position:relative;overflow:hidden}html[data-izzet-cursor=on] .project-row:before{content:"";pointer-events:none;z-index:1;mix-blend-mode:screen;background:linear-gradient(110deg,#0000 30%,oklch(85% .18 245/.14) 45%,oklch(85% .18 90/.18) 50%,oklch(82% .2 25/.14) 55%,#0000 70%);transition:transform .75s cubic-bezier(.2,.7,.2,1);position:absolute;inset:0;transform:translate(-110%)}html[data-izzet-cursor=on] .project-row:hover:before{transform:translate(110%)}html[data-izzet-cursor=on] .article{isolation:isolate;position:relative}html[data-izzet-cursor=on] .article:after{content:"";border-radius:inherit;background:linear-gradient(135deg, var(--izzet-u), transparent 40%, transparent 60%, var(--izzet-r));-webkit-mask-composite:xor;opacity:0;pointer-events:none;z-index:2;padding:1px;transition:opacity .3s;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}html[data-izzet-cursor=on] .article:hover:after{opacity:1;animation:1.4s linear infinite izzetBorderCrackle}@keyframes izzetBorderCrackle{0%,to{filter:hue-rotate()brightness()}33%{filter:hue-rotate(40deg)brightness(1.35)}66%{filter:hue-rotate(-30deg)brightness(1.15)}}html[data-izzet-cursor=on] #skills-table:hover .skill-bar-fill:after,html[data-izzet-cursor=on] #skills-table:focus-within .skill-bar-fill:after{content:"";mix-blend-mode:screen;background:linear-gradient(90deg,#0000,oklch(95% .15 245/.6),#0000);animation:1.8s ease-in-out infinite izzetSkillSweep;position:absolute;inset:0}@keyframes izzetSkillSweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}html[data-izzet-cursor=on] .skill-bar-fill{position:relative;overflow:hidden}
