@import url(https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,400&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&display=swap);:root{--bg-base:#0a0a0a;--bg-base-soft:#0a0a0ad1;--bg-surface:#141414;--bg-deep:#0f0f0fbf;--bg-alt:#141414ad;--bg-nav:#0a0a0aeb;--bg-input:#111;--bg-contact:#0a0a0a85;--border:#222;--border-subtle:#1a1a1a;--text-primary:#f0f0f0;--text-body:#d2d2d2;--text-muted:#acacac;--text-dim:#7a7a7a;--text-faint:#8c8c8c;--accent:#f0f0f0;--accent-soft:#444;--accent-hover:#fff;--gradient:linear-gradient(135deg,#fafafa,#161616);--particle-color-a:#fff;--particle-color-b:#333;--particle-opacity:0.7;--scrollbar-thumb:#222;--transition:background 0.35s ease,color 0.35s ease,border-color 0.35s ease;--font-mono:"DM Mono","JetBrains Mono","Courier New",monospace;--font-sans:"DM Sans",system-ui,sans-serif}html.light{--bg-base:#f7f7f5;--bg-base-soft:#f7f7f5d1;--bg-surface:#fff;--bg-deep:#f0f0eebf;--bg-alt:#f2f2efbd;--bg-nav:#f7f7f5eb;--bg-input:#fafafa;--bg-contact:#f7f7f594;--border:#e0e0e0;--border-subtle:#ebebeb;--text-primary:#0a0a0a;--text-body:#1e1e1e;--text-muted:#3f3f3f;--text-dim:#676767;--text-faint:#6f6f6f;--accent:#0a0a0a;--accent-soft:#ccc;--accent-hover:#000;--gradient:linear-gradient(135deg,#0a0a0a,#555);--particle-color-a:#bbb;--particle-color-b:#ccc;--particle-opacity:0.5;--scrollbar-thumb:#ccc}*,:after,:before{box-sizing:border-box}#root,body,html{background:#0a0a0a;background:var(--bg-base);margin:0;overflow-x:hidden;padding:0;scroll-behavior:smooth;transition:background .35s ease,color .35s ease,border-color .35s ease;transition:var(--transition)}html{font-size:158%}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#222;background:var(--scrollbar-thumb);border-radius:99px}.container{margin:0 auto;max-width:1300px;padding:0 36px}.section-flow{max-width:1080px;width:100%}.section-flow-wide{max-width:1240px}.section-h2{color:#f0f0f0;color:var(--text-primary);font-family:DM Mono,JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:3.08rem;font-weight:500;letter-spacing:0;line-height:1.05;margin:0 0 10px}.section-sub{color:#acacac;color:var(--text-muted);font-family:DM Sans,system-ui,sans-serif;font-family:var(--font-sans);font-size:.9rem;font-weight:300;letter-spacing:.01em;margin-bottom:44px}.typewriter-name{letter-spacing:0;min-height:1.05em;overflow-wrap:anywhere}.typewriter-caret{color:#acacac;color:var(--text-muted);display:inline-block}.terminal-caret,.typewriter-caret{animation:caretBlink .86s step-end infinite}.terminal-caret{color:#a9f3c4}.hero-reveal{opacity:1;transform:none}.about-notes-grid{grid-gap:14px;align-items:start;display:grid;gap:14px;grid-template-columns:1fr 1fr}.dna-skills{grid-gap:18px;align-items:stretch;display:grid;gap:18px;grid-auto-rows:1fr;grid-template-columns:repeat(2,minmax(0,1fr));position:relative}.dna-skills:before{display:none}.dna-skill-group{background:color-mix(in srgb,#141414 84%,#0000);background:color-mix(in srgb,var(--bg-surface) 84%,#0000);border:1px solid #222;border:1px solid var(--border);border-radius:8px;height:100%;overflow:hidden;padding:18px;position:relative;transition:background .35s ease,color .35s ease,border-color .35s ease,transform .2s ease;transition:var(--transition),transform .2s ease}.dna-skill-group:hover{border-color:#acacac;border-color:var(--text-muted);transform:translateY(-2px)}.dna-group-header{align-items:baseline;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px;min-height:2.5rem}.dna-pairs{display:flex;flex-direction:column;gap:10px}.dna-pair{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 74px minmax(0,1fr);position:relative}.dna-pair:after,.dna-pair:before{background:#acacac;background:var(--text-muted);border-radius:50%;content:"";height:10px;opacity:.72;position:absolute;top:50%;transform:translateY(-50%);width:10px}.dna-pair:before{left:calc(50% - 44px)}.dna-pair:after{right:calc(50% - 44px)}.dna-pair-flipped .dna-rung{transform:rotate(-10deg)}.dna-rung{align-items:center;display:flex;height:42px;justify-content:center;position:relative;transform:rotate(10deg)}.dna-rung:before{background:#222;background:var(--border);content:"";height:1px;width:calc(100% + 18px)}.dna-rung span{background:#0a0a0a;background:var(--bg-base);border:1px solid #222;border:1px solid var(--border);border-radius:50%;box-shadow:0 0 0 6px #141414;box-shadow:0 0 0 6px var(--bg-surface);height:22px;position:absolute;width:22px}.dna-skill-side{min-width:0}.project-exhibit-list{display:flex;flex-direction:column;gap:42px}.project-exhibit{grid-gap:32px;align-items:stretch;border-top:1px solid #222;border-top:1px solid var(--border);display:grid;gap:32px;grid-template-columns:minmax(0,.86fr) minmax(480px,1.14fr);padding-top:42px}.project-exhibit-reverse{grid-template-columns:minmax(480px,1.14fr) minmax(0,.86fr)}.project-exhibit-reverse .project-exhibit-copy{order:2}.project-exhibit-reverse .project-exhibit-media{order:1}.project-exhibit-copy{display:flex;flex-direction:column;justify-content:center}.project-exhibit-media{display:flex;min-height:460px}.project-exhibit-media>*{flex:1 1}.project-link-button{background:#f0f0f0;background:var(--text-primary);border-radius:5px;color:#0a0a0a;color:var(--bg-base);font-family:DM Mono,JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.72rem;padding:8px 14px;text-decoration:none}.project-link-button-secondary{background:#0000;border:1px solid #222;border:1px solid var(--border);color:#acacac;color:var(--text-muted)}.media-placeholder-label{bottom:22px;color:#acacac;color:var(--text-muted);font-family:DM Mono,JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.7rem;left:24px;position:absolute;right:24px}.publication-record{grid-gap:24px;align-items:stretch;background:#141414;background:var(--bg-surface);border:1px solid #222;border:1px solid var(--border);border-radius:8px;color:inherit;display:grid;gap:24px;grid-template-columns:minmax(280px,.86fr) minmax(0,1.14fr);overflow:hidden;text-decoration:none;transition:background .35s ease,color .35s ease,border-color .35s ease,transform .2s ease;transition:var(--transition),transform .2s ease}.publication-record:hover{border-color:#acacac;border-color:var(--text-muted);transform:translateY(-2px)}.publication-record .media-placeholder{border:0;border-radius:0;min-height:300px}.publication-copy{display:flex;flex-direction:column;justify-content:center;padding:28px 28px 28px 0}.publication-image-placeholder{background:radial-gradient(circle at 50% 38%,#ffffff17,#0000 26%),linear-gradient(135deg,#0a0a0a,#141414);background:radial-gradient(circle at 50% 38%,#ffffff17,#0000 26%),linear-gradient(135deg,var(--bg-base),var(--bg-surface));display:grid;min-height:inherit;place-items:center;width:100%}.publication-image{filter:grayscale(1) contrast(1.05) brightness(.68);height:100%;min-height:inherit;mix-blend-mode:luminosity;object-fit:cover;opacity:.78;width:100%}.publication-image-wrap{background:#0a0a0a;background:var(--bg-base);min-height:inherit;position:relative;width:100%}.publication-image-wrap:after{background:linear-gradient(90deg,#0a0a0a57,#0a0a0a14),radial-gradient(circle at 70% 30%,#ffffff14,#0000 34%);content:"";inset:0;pointer-events:none;position:absolute}.publication-image-placeholder span{border:1px solid #222;border:1px solid var(--border);border-radius:50%;color:#acacac;color:var(--text-muted);display:grid;font-family:DM Mono,JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.86rem;height:124px;place-items:center;width:124px}.reveal-block{opacity:0;transform:translateY(34px);transition:opacity .72s ease,transform .72s cubic-bezier(.2,.85,.25,1);transition-delay:0ms;transition-delay:var(--reveal-delay,0ms);will-change:opacity,transform}.reveal-block.is-visible{opacity:1;transform:translateY(0)}.lab-note{border:1px solid #222;border:1px solid var(--border);border-radius:7px;box-shadow:0 18px 50px #0000002e;color:#d2d2d2;color:var(--text-body);padding:18px;transition:background .35s ease,color .35s ease,border-color .35s ease,transform .2s ease;transition:var(--transition),transform .2s ease}.lab-note,.lab-note-default{background:#141414;background:var(--bg-surface)}.lab-note-soft{background:#0f0f0fbf;background:var(--bg-deep)}.lab-note-accent{background:linear-gradient(135deg,#141414,#0a0a0ad1);background:linear-gradient(135deg,var(--bg-surface),var(--bg-base-soft))}.media-placeholder{background:radial-gradient(circle at 22% 18%,#ffffff17,#0000 28%),linear-gradient(135deg,#141414,#0a0a0a);background:radial-gradient(circle at 22% 18%,#ffffff17,#0000 28%),linear-gradient(135deg,var(--bg-surface),var(--bg-base));border:1px solid #222;border:1px solid var(--border);border-radius:8px;height:100%;min-height:360px;overflow:hidden;position:relative}.media-placeholder-grid{background-image:linear-gradient(#222 1px,#0000 0),linear-gradient(90deg,#222 1px,#0000 0);background-image:linear-gradient(var(--border) 1px,#0000 1px),linear-gradient(90deg,var(--border) 1px,#0000 1px);background-size:34px 34px;inset:0;-webkit-mask-image:radial-gradient(circle at center,#000,#0000 82%);mask-image:radial-gradient(circle at center,#000,#0000 82%);opacity:.22;position:absolute}.media-placeholder-content{align-items:center;color:#acacac;color:var(--text-muted);display:flex;font-size:.78rem;justify-content:center;min-height:inherit;padding:24px;position:relative;text-align:center;z-index:1}.bio-terminal,.media-placeholder-content{font-family:DM Mono,JetBrains Mono,Courier New,monospace;font-family:var(--font-mono)}.bio-terminal{background:#060606;border:1px solid #222;border:1px solid var(--border);border-radius:8px;box-shadow:0 24px 70px #0000003d;color:#e8f7ef;height:100%;min-height:360px;overflow:hidden;width:100%}.bio-terminal-top{align-items:center;background:#ffffff0a;border-bottom:1px solid #ffffff1a;display:flex;gap:8px;padding:12px 14px}.bio-terminal-top span{background:#7d7d7d;border-radius:50%;height:9px;width:9px}.bio-terminal-top strong{color:#b7c7bd;font-size:.68rem;font-weight:400;margin-left:8px}.bio-terminal-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px 0}.bio-terminal-tabs button{background:#0000;border:1px solid #ffffff1f;border-radius:4px;color:#9baaa1;cursor:pointer;font-family:DM Mono,JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.64rem;padding:5px 9px}.bio-terminal-tabs button.is-active{background:#dcefe5;color:#06100b}.bio-terminal-body{font-size:.74rem;line-height:1.72;overflow:hidden;padding:18px}.bio-terminal-output{color:#dcefe5;font:inherit;line-height:1.72;margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.bio-terminal-output:first-line{color:#7fe3a2}.reg-network{-webkit-touch-callout:none;isolation:isolate;min-height:420px;position:relative;user-select:none;-webkit-user-select:none;width:100%}.reg-network-svg{height:100%;inset:0;overflow:visible;pointer-events:none;position:absolute;width:100%}.reg-network-svg marker path{fill:#acacac;fill:var(--text-muted)}.reg-edge line,.reg-edge path{stroke:#acacac;stroke:var(--text-muted);fill:none;stroke-width:.6;vector-effect:non-scaling-stroke}.reg-edge-represses path{stroke-dasharray:3 3}.reg-repressor{stroke:#f0f0f0!important;stroke:var(--text-primary)!important;stroke-width:1.4!important}.reg-edge-label{background:#0a0a0a;background:var(--bg-base);border:1px solid #222;border:1px solid var(--border);border-radius:50%;color:#f0f0f0;color:var(--text-primary);display:grid;font-family:DM Mono,JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.72rem;height:28px;place-items:center;pointer-events:none;position:absolute;transform:translate(-50%,-50%);width:28px;z-index:2}.reg-edge-label-represses{color:#acacac;color:var(--text-muted)}.reg-node{align-items:center;animation:regNodeFloat 4.5s ease-in-out infinite;background:color-mix(in srgb,#141414 92%,#0000);background:color-mix(in srgb,var(--bg-surface) 92%,#0000);border:1px solid #222;border:1px solid var(--border);border-radius:50%;box-shadow:0 18px 50px #00000038;color:#f0f0f0;color:var(--text-primary);cursor:grab;display:flex;flex-direction:column;gap:3px;height:118px;justify-content:center;padding:12px;position:absolute;text-align:center;touch-action:none;transform:translate(-50%,-50%);transition:transform .14s ease-out,border-color .2s,background .2s,box-shadow .2s;width:118px;z-index:3}.reg-node:active{cursor:grabbing}.reg-node.is-dragging{animation:none;border-color:#f0f0f0;border-color:var(--text-primary);box-shadow:0 22px 70px #00000057;transform:translate(-50%,-50%) scale(.93);transition:transform .12s ease-out,border-color .15s,background .2s,box-shadow .2s}.reg-node strong{font-family:DM Mono,JetBrains Mono,Courier New,monospace;font-family:var(--font-mono);font-size:.8rem;font-weight:500}.reg-node span{color:#acacac;color:var(--text-muted);font-family:DM Sans,system-ui,sans-serif;font-family:var(--font-sans);font-size:.68rem}.reg-node-sigE{border-color:color-mix(in srgb,#f0f0f0 36%,#222);border-color:color-mix(in srgb,var(--text-primary) 36%,var(--border))}.reg-node-spoIIIA{background:#0a0a0a;background:var(--bg-base)}.reg-node-sigE{animation-delay:-.7s}.reg-node-spoIIID{animation-delay:-2.1s}.reg-node-spoIIIA{animation-delay:-3.2s}.reg-node-clickup{animation-delay:-1.2s}.reg-node-sms{animation-delay:-2.8s}.reg-node-strapi{animation-delay:-.4s}.reg-node-dropbox{animation-delay:-3.5s}.reg-node-ocr{animation-delay:-1.9s}.reg-node-csv{animation-delay:-4.1s}@keyframes caretBlink{50%{opacity:0}}@keyframes regNodeFloat{0%,to{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-16px)}}@keyframes skillBarFill{0%{opacity:.92;transform:scaleX(0)}78%{opacity:.92;transform:scaleX(1)}to{opacity:.35;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.hero-reveal{animation:none;opacity:1;transform:none}.reveal-block{opacity:1;transform:none;transition:none}}@media (max-width:900px){.desktop-cv,.desktop-nav{display:none!important}}@media (max-width:767px){html{font-size:104%}.container{padding:0 16px}.section-flow{max-width:none}.section-h2{font-size:2.08rem}.about-notes-grid,.dna-skills{grid-template-columns:1fr}.dna-skills{align-items:start;grid-auto-rows:auto}.dna-skill-group{height:auto;padding:14px}.dna-pairs{padding-left:22px;position:relative}.dna-pairs:before{background:#222;background:var(--border);bottom:0;content:"";left:5px;position:absolute;top:0;width:1px}.dna-pair{gap:8px;grid-template-columns:1fr;padding-left:0}.dna-rung{align-items:center;bottom:auto;display:flex;height:12px;justify-content:center;left:-22px;position:absolute;top:50%;transform:translateY(-50%);width:12px}.dna-rung:before{display:none}.dna-rung span{box-shadow:0 0 0 3px #141414;box-shadow:0 0 0 3px var(--bg-surface);height:10px;left:auto;position:static;width:10px}.dna-pair:after,.dna-pair:before,.dna-skill-right:empty{display:none}.project-exhibit,.project-exhibit-reverse{gap:20px;grid-template-columns:1fr;padding-top:30px}.project-exhibit-reverse .project-exhibit-copy,.project-exhibit-reverse .project-exhibit-media{order:0}.publication-record{gap:0;grid-template-columns:1fr}.publication-record .media-placeholder{min-height:220px}.publication-copy{padding:22px}.reveal-block{transform:translateY(20px)}.bio-terminal,.media-placeholder{min-height:280px}.project-exhibit-media{min-height:0}.reg-network{min-height:300px}.reg-node{height:92px;padding:10px;width:92px}}@media (min-width:901px){.hamburger,.mobile-menu{display:none!important}}@media (min-width:1400px){.container{max-width:1400px}}.section-pad{align-items:stretch;display:flex;min-height:calc(100svh - 56px);padding:120px 0}@media (max-width:767px){.section-pad{min-height:auto;padding:88px 0}}.btn-primary{cursor:pointer;transition:opacity .2s}.btn-primary:hover{opacity:.85}.btn-ghost{cursor:pointer;transition:border-color .2s}.btn-ghost:hover{border-color:#f0f0f0;border-color:var(--text-primary)}.icon-btn{cursor:pointer;transition:border-color .2s,color .2s}.icon-btn:hover{border-color:#f0f0f0;border-color:var(--text-primary);color:#f0f0f0;color:var(--text-primary)}.nav-cv:hover{opacity:.85}.text-link{transition:opacity .2s}.text-link:hover{opacity:.7}
/*# sourceMappingURL=main.b97455f5.css.map*/