:root{--bg: #04070a;--bg-rgb: 4, 7, 10;--bg-panel: rgba(10, 16, 22, .72);--line: #1a2530;--accent: #2dff9b;--accent-dim: #1db877;--accent-2: #45d8f0;--accent-3: #c77dff;--text: #c6d4d0;--text-bright: #ecf5f1;--text-dim: #78908a;--grid: rgba(69, 216, 240, .03);--glow: rgba(45, 255, 155, .18);--badge-text: #04070a;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}:root[data-theme=light]{--bg: #f2f6f5;--bg-rgb: 242, 246, 245;--bg-panel: rgba(255, 255, 255, .78);--line: #cbdad5;--accent: #047857;--accent-dim: #059669;--accent-2: #0369a1;--accent-3: #7c3aed;--text: #2c3d38;--text-bright: #10201b;--text-dim: #5d726c;--grid: rgba(3, 105, 161, .06);--glow: rgba(4, 120, 87, .15);--badge-text: #f2f6f5}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .3s,color .3s}.bg-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}.page{position:relative;z-index:1;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:48px 48px}::selection{background:var(--glow);color:var(--text-bright)}a{color:var(--accent-2);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1.25rem;background:rgba(var(--bg-rgb),.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);font-family:var(--mono);font-size:.8rem}.nav-logo{color:var(--accent);font-weight:700;letter-spacing:.04em;white-space:nowrap}.nav-right{display:flex;align-items:center;gap:1.1rem;min-width:0}.nav-links{display:flex;gap:1.1rem;list-style:none;overflow-x:auto;scrollbar-width:none}.nav-links::-webkit-scrollbar{display:none}.nav-links a{color:var(--text-dim);white-space:nowrap;transition:color .15s}.nav-links a:hover,.nav-links a:focus-visible{color:var(--accent);text-decoration:none}.theme-toggle{flex-shrink:0;font-family:var(--mono);font-size:.8rem;line-height:1;padding:.4rem .6rem;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--text);cursor:pointer;transition:border-color .15s,color .15s,box-shadow .15s}.theme-toggle:hover,.theme-toggle:focus-visible{border-color:var(--accent-dim);color:var(--accent);box-shadow:0 0 16px var(--glow)}.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.hero-fallback svg{width:min(70vmin,480px);height:auto;opacity:.5}.hero-inner{position:relative;z-index:2;width:100%;max-width:62rem;margin:0 auto;padding:5.5rem 1.25rem 3.5rem;display:flex}.dossier{position:relative;width:min(600px,100%);border:1px solid var(--line);border-radius:8px;background:rgba(var(--bg-rgb),.74);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 48px #00000059,0 0 32px var(--glow);overflow:hidden}.dossier:after{content:"";position:absolute;left:0;right:0;top:-20%;height:3.5rem;background:linear-gradient(180deg,transparent,var(--glow),transparent);animation:scanline 7s linear infinite;pointer-events:none}@keyframes scanline{to{top:120%}}@media (prefers-reduced-motion: reduce){.dossier:after{display:none}}.dossier-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 1rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--line);background:repeating-linear-gradient(-45deg,transparent 0 14px,var(--glow) 14px 20px)}.dossier-head .file-no{color:var(--text-dim);letter-spacing:.08em;white-space:nowrap}.dossier-body{padding:1.3rem 1.4rem 1.5rem}.dossier-id{display:flex;align-items:center;gap:1.1rem;margin-bottom:1.2rem}.field-label{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim)}.hero h1{margin-top:.1rem;font-family:var(--mono);font-size:clamp(1.9rem,5.6vw,2.8rem);letter-spacing:-.02em;line-height:1.05;background:linear-gradient(100deg,var(--accent),var(--accent-2) 55%,var(--accent-3));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 24px var(--glow))}.glitch{position:relative}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;background:none;-webkit-background-clip:initial;background-clip:initial;opacity:0;pointer-events:none}.glitch:before{color:var(--accent-2);-webkit-text-fill-color:var(--accent-2);animation:glitch-a 5s steps(1) infinite}.glitch:after{color:var(--accent-3);-webkit-text-fill-color:var(--accent-3);animation:glitch-b 5s steps(1) infinite}@keyframes glitch-a{0%,93%,to{opacity:0}94%{opacity:.8;transform:translate(-3px,1px);clip-path:inset(10% 0 55% 0)}96%{opacity:.8;transform:translate(2px,-1px);clip-path:inset(60% 0 15% 0)}97%{opacity:0}}@keyframes glitch-b{0%,94%,to{opacity:0}95%{opacity:.8;transform:translate(3px,-1px);clip-path:inset(45% 0 30% 0)}97%{opacity:.8;transform:translate(-2px,1px);clip-path:inset(5% 0 75% 0)}98%{opacity:0}}@media (prefers-reduced-motion: reduce){.glitch:before,.glitch:after{animation:none;opacity:0}}.dossier-fields{display:grid;gap:.45rem;margin:0}.dossier-fields .field{display:grid;grid-template-columns:4.5rem 1fr;gap:.8rem;align-items:baseline}.dossier-fields dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-dim);text-align:right}.dossier-fields dd{margin:0;font-family:var(--mono);font-size:.88rem;color:var(--text)}.hero-role{color:var(--accent-2);min-height:1.5em}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);margin-right:.3rem;animation:status-pulse 2s ease-in-out infinite}@keyframes status-pulse{50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.status-dot{animation:none}}.dossier-notes{margin-top:1.1rem;padding-top:.9rem;border-top:1px dashed var(--line)}.hero-role .cursor{display:inline-block;width:.55em;background:var(--accent);color:transparent;animation:blink 1.1s steps(1) infinite;-webkit-user-select:none;user-select:none}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.hero-role .cursor{animation:none}}.hero-pitch{margin-top:.3rem;color:var(--text);font-size:.98rem;max-width:34rem}.hero-actions{margin-top:1.5rem;display:flex;gap:.7rem;flex-wrap:wrap}.hero-stats{margin-top:1.3rem;padding-top:1rem;border-top:1px dashed var(--line);list-style:none;display:flex;flex-wrap:wrap;gap:.45rem}.hero-stats li{font-family:var(--mono);font-size:.72rem;color:var(--accent);border:1px solid var(--line);border-radius:999px;padding:.18rem .65rem;background:rgba(var(--bg-rgb),.5)}.btn{font-family:var(--mono);font-size:.85rem;padding:.65rem 1.3rem;border:1px solid var(--accent-dim);color:var(--accent);background:rgba(var(--bg-rgb),.4);border-radius:4px;cursor:pointer;transition:background .15s,box-shadow .15s}.btn:hover,.btn:focus-visible{background:rgba(var(--bg-rgb),.7);box-shadow:0 0 24px var(--glow);text-decoration:none}.btn.alt{border-color:var(--line);color:var(--text)}.btn.alt:hover,.btn.alt:focus-visible{border-color:var(--accent-2);color:var(--accent-2)}.btn.violet{border-color:var(--accent-3);color:var(--accent-3)}.scroll-hint{position:absolute;bottom:1.4rem;left:50%;transform:translate(-50%);font-family:var(--mono);font-size:.7rem;color:var(--text-dim);letter-spacing:.2em;z-index:2}.section{max-width:62rem;margin:0 auto;padding:5.5rem 1.25rem 1.5rem;scroll-margin-top:1rem}.section-head{font-family:var(--mono);display:flex;align-items:baseline;gap:.75rem;margin-bottom:2rem}.section-head .idx{color:var(--accent);font-size:.85rem}.section-head h2{color:var(--text-bright);font-size:clamp(1.3rem,4vw,1.7rem);letter-spacing:-.01em;white-space:nowrap}.section-head .rule{flex:1;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3),transparent);opacity:.5;min-width:2rem;border-radius:2px}.reveal{opacity:0;transform:translateY(24px) perspective(700px) rotateX(6deg);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}}.tilt{transform-style:preserve-3d;transition:transform .18s ease-out,border-color .2s;will-change:transform}.about-text{font-size:1.05rem;max-width:44rem;color:var(--text)}.about-text strong{color:var(--accent);font-weight:600}.skill-group,.project-card,.ach-panel,.contact-form{background:var(--bg-panel);border:1px solid var(--line);border-radius:6px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.skill-group{padding:1.2rem 1.3rem}.skill-group h3{font-family:var(--mono);font-size:.8rem;color:var(--accent-2);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.9rem}.skill-group ul{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.skill-group li{font-family:var(--mono);font-size:.8rem;color:var(--text);border:1px solid var(--line);border-radius:4px;padding:.25rem .6rem}.projects-grid{display:grid;gap:1.1rem}.project-card{padding:1.4rem 1.5rem}.project-card:hover{border-color:var(--accent-dim)}.project-meta{font-family:var(--mono);font-size:.75rem;color:var(--accent);display:flex;justify-content:space-between;gap:1rem;margin-bottom:.6rem}.project-card h3{color:var(--text-bright);font-size:1.15rem;margin-bottom:.5rem}.project-card p{color:var(--text-dim);font-size:.95rem}.project-tags{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.45rem;list-style:none}.project-tags li{font-family:var(--mono);font-size:.72rem;color:var(--accent-2);border:1px solid var(--line);border-radius:999px;padding:.15rem .6rem}.timeline{position:relative;margin-left:.4rem;padding-left:1.6rem;border-left:1px solid var(--line);display:grid;gap:1.8rem}.timeline-item{position:relative}.timeline-item:before{content:"";position:absolute;left:-1.6rem;top:.45rem;width:9px;height:9px;transform:translate(-5px);border-radius:50%;background:var(--bg);border:2px solid var(--accent);box-shadow:0 0 12px var(--glow)}.timeline-item .when{font-family:var(--mono);font-size:.75rem;color:var(--accent)}.timeline-item h3{color:var(--text-bright);font-size:1.05rem;margin:.2rem 0}.timeline-item .where{font-family:var(--mono);font-size:.8rem;color:var(--text-dim)}.timeline-item p{margin-top:.4rem;font-size:.92rem;color:var(--text-dim);max-width:40rem}.ach-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.ach-panel{padding:1.2rem 1.3rem}.ach-panel h3{font-family:var(--mono);font-size:.8rem;color:var(--accent-2);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.9rem}.ach-panel ul{list-style:none;display:grid;gap:.55rem}.ach-panel li{font-size:.92rem;padding-left:1.1rem;position:relative}.ach-panel li:before{content:"▹";position:absolute;left:0;color:var(--accent)}.badge-progress{font-family:var(--mono);font-size:.68rem;color:var(--badge-text);background:var(--accent-2);border-radius:3px;padding:.05rem .4rem;margin-left:.4rem;vertical-align:middle;white-space:nowrap}.blog-page{min-height:100svh;max-width:62rem;margin:0 auto;padding:7rem 1.25rem 3rem;position:relative;z-index:1}.blog-empty{border:1px dashed var(--line);border-radius:6px;background:var(--bg-panel);padding:3rem 1.5rem;text-align:center;font-family:var(--mono);color:var(--text-dim)}.blog-empty .prompt{color:var(--accent)}.post-header{margin-bottom:1.6rem}.post-meta{font-family:var(--mono);font-size:.78rem;color:var(--accent);letter-spacing:.06em}.post-title{margin-top:.4rem;font-size:clamp(1.7rem,5.5vw,2.6rem);line-height:1.15;letter-spacing:-.02em;background:linear-gradient(100deg,var(--accent),var(--accent-2) 55%,var(--accent-3));-webkit-background-clip:text;background-clip:text;color:transparent}.post-sub{margin-top:.5rem;color:var(--text-dim);max-width:40rem}.post-cover{position:relative;height:clamp(220px,38vw,340px);border:1px solid var(--line);border-radius:8px;background:var(--bg-panel);overflow:hidden;margin-bottom:.9rem}.post-cover canvas{display:block}.post-stages{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem .7rem;padding:.5rem .8rem;font-family:var(--mono);font-size:.72rem;color:var(--text-dim);background:rgba(var(--bg-rgb),.65);border-top:1px solid var(--line)}.post-stages .arrow{color:var(--accent)}.post{max-width:46rem;margin:2.5rem auto 0;font-size:1rem}.post h1{display:none}.post h2,.post h3,.post h4{color:var(--text-bright);line-height:1.3;margin:2.4rem 0 .8rem;scroll-margin-top:4.5rem}.post h2{font-size:1.45rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}.post h2:before{content:"## ";color:var(--accent);font-family:var(--mono);font-size:.9em}.post h3{font-size:1.15rem}.post h3:before{content:"### ";color:var(--accent-2);font-family:var(--mono);font-size:.85em}.post p{margin:.9rem 0}.post ul,.post ol{margin:.9rem 0;padding-left:1.4rem}.post li{margin:.3rem 0}.post li::marker{color:var(--accent)}.post a{color:var(--accent-2)}.post strong{color:var(--text-bright)}.post code{font-family:var(--mono);font-size:.86em;background:var(--bg-panel);border:1px solid var(--line);border-radius:4px;padding:.1em .35em;color:var(--accent)}.post pre{background:var(--bg-panel);border:1px solid var(--line);border-left:3px solid var(--accent-dim);border-radius:6px;padding:1rem 1.1rem;overflow-x:auto;margin:1.1rem 0;line-height:1.5}.post pre code{background:none;border:none;padding:0;color:var(--text);font-size:.82rem}.post blockquote{margin:1.1rem 0;padding:.6rem 1.1rem;border-left:3px solid var(--accent-3);background:var(--bg-panel);border-radius:0 6px 6px 0;color:var(--text-dim)}.post blockquote p{margin:.3rem 0}.post table{display:block;width:max-content;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:1.1rem 0;font-size:.88rem}.post th,.post td{border:1px solid var(--line);padding:.5rem .75rem;text-align:left;vertical-align:top}.post th{font-family:var(--mono);font-size:.76rem;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-2);background:var(--bg-panel)}.post tr:nth-child(2n) td{background:rgba(var(--bg-rgb),.45)}.post .diagram{margin:1.4rem 0;padding:1rem 1rem .6rem;border:1px solid var(--line);border-radius:6px;background:var(--bg-panel);overflow-x:auto}.post .diagram svg{display:block;width:100%;min-width:560px;height:auto}.post .diagram figcaption{margin-top:.5rem;text-align:center;font-family:var(--mono);font-size:.72rem;color:var(--text-dim)}.post hr{border:none;height:2px;margin:2.2rem 0;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3),transparent);opacity:.4;border-radius:2px}.contact-wrap{display:grid;gap:2rem;grid-template-columns:1fr}@media (min-width: 720px){.contact-wrap{grid-template-columns:1fr 1.2fr}}.contact-links{display:grid;gap:.8rem;align-content:start}.contact-links a{font-family:var(--mono);font-size:.9rem;display:flex;align-items:center;gap:.6rem;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:.75rem 1rem;background:var(--bg-panel);transition:border-color .15s,color .15s}.contact-links a:hover,.contact-links a:focus-visible{border-color:var(--accent-dim);color:var(--accent);text-decoration:none}.contact-links .icon{color:var(--accent);font-family:var(--mono)}.contact-form{display:grid;gap:.9rem;padding:1.4rem}.contact-form label{display:grid;gap:.35rem;font-family:var(--mono);font-size:.75rem;color:var(--text-dim);letter-spacing:.06em}.contact-form input,.contact-form textarea{font-family:var(--mono);font-size:.9rem;color:var(--text-bright);background:rgba(var(--bg-rgb),.6);border:1px solid var(--line);border-radius:4px;padding:.6rem .75rem;resize:vertical}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--accent-dim);box-shadow:0 0 0 1px var(--accent-dim)}.form-note{font-family:var(--mono);font-size:.72rem;color:var(--text-dim)}.footer{margin-top:4rem;border-top:1px solid var(--line);padding:1.6rem 1.25rem 2.2rem;text-align:center;font-family:var(--mono);font-size:.75rem;color:var(--text-dim);background:rgba(var(--bg-rgb),.5)}.footer .prompt{color:var(--accent)}
