@import url(https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=VT323&display=swap);@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:300;src:url(/static/media/barlow-condensed-vietnamese-300-normal.b14bbeed99a142708de4.woff2) format("woff2"),url(/static/media/barlow-condensed-vietnamese-300-normal.9a56c126fd5fc11acc51.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:300;src:url(/static/media/barlow-condensed-latin-ext-300-normal.37019dfd4cef34d32e65.woff2) format("woff2"),url(/static/media/barlow-condensed-latin-ext-300-normal.8263418a6daa0a5c0429.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:300;src:url(/static/media/barlow-condensed-latin-300-normal.7d9f702280552b6c4198.woff2) format("woff2"),url(/static/media/barlow-condensed-latin-300-normal.0c811237acac4e372ae8.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:400;src:url(/static/media/barlow-condensed-vietnamese-400-normal.e27355db09e5b1d00652.woff2) format("woff2"),url(/static/media/barlow-condensed-vietnamese-400-normal.1e5954e07a5d4770a7c2.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:400;src:url(/static/media/barlow-condensed-latin-ext-400-normal.3df88ab89b02cd1f75fa.woff2) format("woff2"),url(/static/media/barlow-condensed-latin-ext-400-normal.25430aca9d0f3b8bca1b.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:400;src:url(/static/media/barlow-condensed-latin-400-normal.bcf8c5473a52498074ac.woff2) format("woff2"),url(/static/media/barlow-condensed-latin-400-normal.a1dc19fd852775cf3632.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:500;src:url(/static/media/barlow-condensed-vietnamese-500-normal.6ffb58af85195209f43c.woff2) format("woff2"),url(/static/media/barlow-condensed-vietnamese-500-normal.db95d199c2a02ab59a81.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:500;src:url(/static/media/barlow-condensed-latin-ext-500-normal.47ca98f22f6bdc62503d.woff2) format("woff2"),url(/static/media/barlow-condensed-latin-ext-500-normal.1b3e56437f7e838c6ebb.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:500;src:url(/static/media/barlow-condensed-latin-500-normal.a0ec31288bb0577497b1.woff2) format("woff2"),url(/static/media/barlow-condensed-latin-500-normal.11e9ce9f053f0bfdb138.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:700;src:url(/static/media/barlow-condensed-vietnamese-700-normal.e7a7da3a83032d34390a.woff2) format("woff2"),url(/static/media/barlow-condensed-vietnamese-700-normal.f170c3304d7b58d40dc7.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:700;src:url(/static/media/barlow-condensed-latin-ext-700-normal.6b7539981e4a80672e0a.woff2) format("woff2"),url(/static/media/barlow-condensed-latin-ext-700-normal.0cd82e33c76f5f477561.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Barlow Condensed;font-style:normal;font-weight:700;src:url(/static/media/barlow-condensed-latin-700-normal.2e72cf1959b6b0fe5802.woff2) format("woff2"),url(/static/media/barlow-condensed-latin-700-normal.e195a02e0fe8e9d579e6.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}*{box-sizing:border-box}#root,body,html{margin:0;min-height:100%}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Share Tech Mono,Lucida Console,monospace;overflow:hidden;text-rendering:optimizeLegibility;width:100%}.hero-label,.panel-command,.window-title,h1,h2,h3{font-family:VT323,Courier New,monospace;font-weight:400}a{transition:color .14s ease}:root{--bg-0:#04070a;--bg-1:#07111a;--bg-2:#0c1d2b;--panel:#060e16d1;--panel-border:#6effdb38;--text-main:#d3e8d9;--text-soft:#8fb7a4;--terminal-green:#79f7c7;--terminal-cyan:#4edaff;--terminal-amber:#ffd37b;--warn:#ff8f7b;--shadow:#0000008c}.portfolio-shell{background:radial-gradient(circle at 12% -5%,#4edaff1f,#0000 28%),radial-gradient(circle at 82% 0,#79f7c724,#0000 34%),linear-gradient(170deg,#04070a,#07111a 60%,#0c1d2b);background:radial-gradient(circle at 12% -5%,#4edaff1f,#0000 28%),radial-gradient(circle at 82% 0,#79f7c724,#0000 34%),linear-gradient(170deg,var(--bg-0) 0,var(--bg-1) 60%,var(--bg-2) 100%);color:#d3e8d9;color:var(--text-main);height:100vh;overflow:hidden;position:relative}.shell-scroll{height:100vh;overflow-x:hidden;overflow-y:auto;padding:2rem 1.1rem 2.8rem;position:relative;scrollbar-gutter:stable;z-index:1}.ambient-grid,.ambient-noise{inset:0;pointer-events:none;position:absolute;z-index:0}.ambient-grid{background-image:linear-gradient(#6effdb14 1px,#0000 0),linear-gradient(90deg,#6effdb14 1px,#0000 0);background-size:36px 36px;opacity:.22}.ambient-noise{animation:scan 7s linear infinite;background-image:repeating-linear-gradient(0deg,#0000,#0000 2px,#ffffff29 3px,#0000 4px);opacity:.08}.terminal-content,.terminal-footer,.terminal-window{margin:0 auto;position:relative;width:min(1080px,100%)}.terminal-window{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#060e16d1;background:var(--panel);border:1px solid #6effdb38;border:1px solid var(--panel-border);border-radius:18px;box-shadow:0 24px 40px #0000008c,0 0 0 1px #79f7c714,inset 0 1px 0 #ffffff0d;box-shadow:0 24px 40px var(--shadow),0 0 0 1px #79f7c714,inset 0 1px 0 #ffffff0d}.window-chrome{align-items:center;background:linear-gradient(180deg,#122230db,#08121ae6);border-bottom:1px solid #79f7c733;display:flex;gap:.55rem;padding:.75rem 1rem}.dot{border-radius:50%;display:inline-block;height:10px;width:10px}.dot-red{background:#ff695f}.dot-yellow{background:#ffc648}.dot-green{background:#2cd96b}.window-title{color:#8fb7a4;color:var(--text-soft);font-size:.9rem;letter-spacing:.05em;margin:0 0 0 .5rem}.hero-block{padding:1.5rem 1.25rem 1.7rem}.hero-logo{filter:drop-shadow(0 0 12px rgba(78,218,255,.3));height:auto;width:min(88px,26vw)}.hero-label{color:#79f7c7;color:var(--terminal-green);margin:1rem 0 0}.hero-block h1{color:#eaf9f0;font-size:clamp(2.15rem,7vw,4.4rem);letter-spacing:.04em;line-height:1;margin:.15rem 0;text-shadow:0 0 16px #79f7c740}.hero-subtitle{color:#4edaff;color:var(--terminal-cyan);font-size:clamp(1rem,3.6vw,1.35rem);margin:0}.hero-description{color:#bad7c8;margin:1rem 0 0;max-width:74ch}.typed-terminal{background:#00000059;border:1px solid #6effdb33;border-radius:10px;margin-top:1.05rem;padding:.9rem}.typed-terminal p{margin:.24rem 0;word-break:break-word}.prompt{color:#ffd37b;color:var(--terminal-amber)}.cursor{animation:blink .88s steps(1) infinite;background:#79f7c7;background:var(--terminal-green);display:inline-block;height:1em;margin-left:.13rem;vertical-align:-.12em;width:.58ch}.hero-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.terminal-btn{align-items:center;background:#122e2757;border:1px solid #79f7c773;border-radius:999px;color:#79f7c7;color:var(--terminal-green);display:inline-flex;justify-content:center;padding:.52rem .88rem;text-decoration:none;transition:background .18s ease,transform .18s ease,border-color .18s ease}.terminal-btn:hover{background:#0c435166;border-color:#4edaffcc;transform:translateY(-1px)}.terminal-btn.primary{background:linear-gradient(140deg,#79f7c7,#53d7ff);background:linear-gradient(140deg,var(--terminal-green),#53d7ff);border-color:#79f7c7e6;color:#032521;font-weight:700}.hero-links{grid-gap:.4rem;color:#8fb7a4;color:var(--text-soft);display:grid;gap:.4rem;list-style:none;margin:1rem 0 0;padding:0}.hero-links a{color:#b7f3de}.terminal-content{grid-gap:1rem;display:grid;gap:1rem;margin-top:1rem}.section-nav{background:#061018d6;border:1px solid #79f7c738;border-radius:12px;display:flex;flex-wrap:wrap;gap:.45rem;padding:.6rem}.section-nav a{border:1px solid #4edaff59;border-radius:999px;color:#4edaff;color:var(--terminal-cyan);font-size:.89rem;padding:.36rem .7rem;text-decoration:none}.section-nav a:hover{border-color:#79f7c7bf;color:#e5fbff}.terminal-panel{animation:panel-in .6s ease both;background:#060f18d6;border:1px solid #79f7c733;border-radius:14px;box-shadow:0 14px 24px #00000054;padding:1rem}.terminal-panel:nth-of-type(3){animation-delay:80ms}.terminal-panel:nth-of-type(4){animation-delay:.14s}.terminal-panel:nth-of-type(5){animation-delay:.22s}.terminal-panel:nth-of-type(6){animation-delay:.28s}.panel-command{color:#ffd37b;color:var(--terminal-amber);font-size:.93rem;margin-bottom:.45rem}.terminal-panel h2{color:#e9fff0;font-size:clamp(1.4rem,4vw,2rem);margin:0}.stats-grid{grid-gap:.66rem;display:grid;gap:.66rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:.8rem}.stats-grid article{background:linear-gradient(160deg,#0a272485,#070e1499);border:1px solid #79f7c740;border-radius:10px;padding:.75rem}.stat-value{color:#79f7c7;color:var(--terminal-green);font-size:1.3rem;margin:0}.stat-label{color:#8fb7a4;color:var(--text-soft);font-size:.9rem;margin:.25rem 0 0}.experience-entry+.experience-entry{border-top:1px dashed #79f7c745;margin-top:1rem;padding-top:1rem}.experience-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between}.experience-head h3{color:#edfff6;margin:0}.experience-head p{color:#4edaff;color:var(--terminal-cyan);margin:0}.experience-meta{color:#b0d6c5;margin:.25rem 0 0}.experience-summary{color:#c7dfd1;margin:.65rem 0 0}.terminal-panel ul{grid-gap:.5rem;color:#c9e4d6;display:grid;gap:.5rem;margin:.6rem 0 0;padding-left:1rem}.project-grid{grid-gap:.7rem;display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:.8rem}.project-card{background:radial-gradient(circle at 105% -30%,#4edaff26,#0000 35%),#050d13e0;border:1px solid #79f7c738;border-radius:11px;padding:.85rem}.project-tag{color:#ffd37b;color:var(--terminal-amber);font-size:.82rem;letter-spacing:.04em;margin:0}.project-card h3{color:#e9fff2;margin:.36rem 0}.project-card p{color:#bfd9ca;margin:0}.private-note,.project-repo,.project-stack{color:#8fb7a4;font-size:.92rem;margin-top:.5rem}.project-card a{color:#79f7c7;color:var(--terminal-green);display:inline-block;margin-top:.65rem;text-decoration:none}.project-card a:hover{color:#deffef}.private-note{color:#ff8f7b;color:var(--warn)}.skills-grid{grid-gap:.64rem;display:grid;gap:.64rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:.75rem}.skills-grid article{background:#08131fbf;border:1px solid #4edaff3d;border-radius:10px;padding:.75rem}.skills-grid h3{color:#4edaff;color:var(--terminal-cyan);margin:0}.skills-grid p{color:#bedfd2;margin:.45rem 0 0}.terminal-footer{background:#040b10e0;border:1px solid #79f7c733;border-radius:14px;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-top:1.15rem;padding:.85rem 1rem}.terminal-footer p{color:#bfe9d5;margin:0}.terminal-footer a{color:#4edaff;color:var(--terminal-cyan);text-decoration:none}.terminal-footer a:hover{color:#e5fbff}.footer-links{display:flex;gap:.85rem}@keyframes blink{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes panel-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes scan{0%{transform:translateY(0)}to{transform:translateY(8px)}}@media (max-width:800px){.shell-scroll{padding:1.2rem .7rem 1.6rem}.hero-block{padding:.95rem .85rem 1rem}.terminal-panel{padding:.85rem}.section-nav{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap}.hero-actions,.project-grid,.skills-grid,.stats-grid{grid-template-columns:1fr}.hero-actions{display:grid}.terminal-btn{width:100%}.window-title{font-size:.82rem}}@media (max-width:480px){.shell-scroll{padding:.75rem .5rem 1.25rem}.section-nav,.terminal-footer,.terminal-panel,.terminal-window{border-radius:10px}.window-chrome{padding:.62rem .72rem}.dot{height:8px;width:8px}.hero-block h1{font-size:clamp(1.8rem,10vw,2.5rem)}.hero-description,.terminal-panel li,.terminal-panel p,.typed-terminal p{font-size:.92rem}.typed-terminal{padding:.7rem}.section-nav{padding:.42rem}.section-nav a{font-size:.8rem;padding:.3rem .55rem}}.circuit-backdrop{inset:0;opacity:.58;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.circuit-svg{height:100%;width:100%}.trace-layer{filter:drop-shadow(0 0 4px rgba(121,247,199,.2))}.circuit-path{fill:none;stroke:#79f7c740;stroke-width:.9;stroke-linecap:round;stroke-linejoin:round}.mother-board{fill:#061017c2;stroke:#4edaff3d;stroke-width:1}.board-label{fill:#79f7c770;font-family:Share Tech Mono,monospace;font-size:20px}.circuit-node{fill:#79f7c761;stroke:#4edaff6b;stroke-width:.5;animation:node-pulse 1.6s ease-in-out infinite;animation-delay:0ms;animation-delay:var(--node-delay,0ms)}@media (max-width:700px){.circuit-backdrop{opacity:.4}}@keyframes node-pulse{0%,to{opacity:.28}50%{opacity:.85}}@media (prefers-reduced-motion:reduce){.circuit-node{animation:none}}
/*# sourceMappingURL=main.627313d4.css.map*/