@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:#060e16e6;--panel-border:#6effdb29;--text-main:#d3e8d9;--text-soft:#8fb7a4;--terminal-green:#83e7c0;--terminal-cyan:#75cce4;--terminal-amber:#ffd37b;--warn:#ff8f7b;--shadow:#0000008c}*,:after,:before{box-sizing:border-box}.portfolio-shell{background:radial-gradient(circle at 12% -5%,#4edaff12,#0000 28%),radial-gradient(circle at 82% 0,#79f7c714,#0000 34%),linear-gradient(170deg,#04070a,#07111a 60%,#0c1d2b);background:radial-gradient(circle at 12% -5%,#4edaff12,#0000 28%),radial-gradient(circle at 82% 0,#79f7c714,#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(rgba(110,255,219,.045) 1px,#0000 0),linear-gradient(90deg,rgba(110,255,219,.045) 1px,#0000 0);background-size:36px 36px;opacity:.14}.ambient-noise{animation:scan 7s linear infinite;background-image:repeating-linear-gradient(0deg,#0000,#0000 2px,#ffffff29 3px,#0000 4px);opacity:.035}.terminal-content,.terminal-footer,.terminal-window{margin:0 auto;position:relative;width:min(960px,100%)}.terminal-window{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#060e16e6;background:var(--panel);border:1px solid #6effdb29;border:1px solid var(--panel-border);border-radius:18px;box-shadow:0 24px 42px #00000075,0 0 0 1px #79f7c70a,inset 0 1px 0 #ffffff0d}.window-chrome{align-items:center;background:linear-gradient(180deg,#122230b8,#08121adb);border-bottom:1px solid #79f7c724;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 10px rgba(78,218,255,.18));height:auto;width:min(88px,26vw)}.hero-label{color:#83e7c0;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 12px #79f7c724}.hero-subtitle{color:#75cce4;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:#0000003d;border:1px solid #6effdb24;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:#83e7c0;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:#122e273d;border:1px solid #79f7c757;border-radius:999px;color:#83e7c0;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:#0c43514d;border-color:#4edaff94;transform:translateY(-1px)}.terminal-btn.primary{background:linear-gradient(140deg,#83e7c0,#78d7ee);background:linear-gradient(140deg,var(--terminal-green),#78d7ee);border-color:#79f7c7c2;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:#061018b8;border:1px solid #79f7c724;border-radius:12px;display:flex;flex-wrap:wrap;gap:.45rem;padding:.6rem}.section-nav a{border:1px solid #4edaff3d;border-radius:999px;color:#75cce4;color:var(--terminal-cyan);font-size:.89rem;padding:.36rem .7rem;text-decoration:none}.section-nav a:hover{border-color:#79f7c785;color:#e5fbff}.terminal-panel{animation:panel-in .6s ease both;background:#060f18c7;border:1px solid #79f7c724;border-radius:14px;box-shadow:0 14px 24px #0000003d;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}.section-intro{color:#bfd9ca;margin:.5rem 0 0;max-width:74ch}.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,#0a272452,#070e148c);border:1px solid #79f7c726;border-radius:10px;padding:.75rem}.stat-value{color:#83e7c0;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 #79f7c72e;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:#75cce4;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:.85rem;display:grid;gap:.85rem;grid-template-columns:1fr;margin-top:.8rem}.project-card{background:#050d13e6;border:1px solid #79f7c729;border-radius:11px;overflow-wrap:break-word;padding:1rem}.project-brand-row{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.9rem}.project-brand-lockup{align-items:flex-start;display:flex;flex-direction:column;gap:.55rem;min-width:0}.project-logo{display:block;height:auto;max-height:64px;max-width:min(250px,58vw);object-fit:contain;width:auto}.project-logo-vertical{max-height:76px;max-width:min(170px,46vw)}.project-logo-icon{border-radius:12px;box-shadow:0 10px 22px #00000052;height:46px;width:46px}.project-baldwin-lockup{align-items:center;display:inline-flex;gap:.75rem}.project-baldwin-mark{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:radial-gradient(circle at 30% 30%,#ffffff38,#ffffff0a),#ffffff14;border:1px solid #ffffff2e;border-radius:999px;box-shadow:inset 0 1px 0 #ffffff1f;color:#ffffffe0;display:inline-flex;font-size:.82rem;font-weight:700;height:44px;justify-content:center;letter-spacing:.06em;line-height:1;padding:.14rem;width:44px}.project-baldwin-wordmark{color:#ffffffeb;font-size:1.05rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}.project-wordmark{color:#f5f1e8;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.18rem,3vw,1.6rem);letter-spacing:.01em}.project-brand-link{color:#83e7c0;color:var(--terminal-green);flex:0 0 auto;font-size:.88rem;margin:0!important;text-decoration:none}.project-media-link{aspect-ratio:21/9;background:#02080cb3;border:1px solid #4edaff2e;border-radius:8px;box-shadow:0 14px 28px #00000057;display:block!important;margin:0 0 .9rem!important;overflow:hidden;position:relative;width:100%}.project-media-link-gallery{aspect-ratio:auto;background:#0000;border:0;box-shadow:none}.project-image{aspect-ratio:21/9;display:block;object-fit:cover;object-position:top center;width:100%}.project-gallery{grid-gap:.65rem;align-items:start;display:grid;gap:.65rem;grid-template-columns:repeat(4,minmax(0,1fr));justify-items:center}.project-gallery-image{aspect-ratio:1179/2556;background:#02080c75;border:1px solid #4edaff29;border-radius:28px;box-shadow:0 14px 28px #00000057;display:block;height:auto;width:100%}.project-preview-frame{border:0;height:100%;height:138.889%;pointer-events:none;transform:scale(.72);transform-origin:top left;width:100%;width:138.889%}.project-media-overlay{background:#02080c80;color:#e5fff2;display:grid;inset:0;opacity:0;place-items:center;position:absolute;transition:opacity .18s ease}.project-media-link:focus-visible .project-media-overlay,.project-media-link:hover .project-media-overlay{opacity:1}.project-tag{color:#ffd37b;color:var(--terminal-amber);font-size:.82rem;letter-spacing:.04em;margin:0;overflow-wrap:normal;word-break:normal}.project-card p{color:#bfd9ca;margin:0}.project-case-study{grid-gap:.6rem;display:grid;gap:.6rem;margin:.65rem 0 0}.project-case-study div{grid-gap:.75rem;border-top:1px solid #79f7c71c;display:grid;gap:.75rem;grid-template-columns:6.5rem minmax(0,1fr);padding-top:.6rem}.project-case-study dt{color:#ffd37b;color:var(--terminal-amber);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.project-case-study dd{color:#c8dfd2;line-height:1.5;margin:0;overflow-wrap:normal;word-break:normal}.project-card .private-note,.project-card .project-stack{color:#8fb7a4;font-size:.92rem;margin-top:1.25rem}.project-card a{color:#83e7c0;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:#08131fa3;border:1px solid #4edaff29;border-radius:10px;padding:.75rem}.skills-grid h3{color:#75cce4;color:var(--terminal-cyan);margin:0}.skills-grid p{color:#bedfd2;margin:.45rem 0 0}.terminal-footer{background:#040b10d1;border:1px solid #79f7c724;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:#75cce4;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}.project-case-study div{gap:.28rem;grid-template-columns:1fr}.project-card{padding:.85rem}.project-brand-row{align-items:flex-start}.project-image{aspect-ratio:16/9}.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.project-gallery-image{max-width:260px}.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}.project-brand-row{display:grid}.project-brand-link{justify-self:start}.project-logo{max-width:min(190px,68vw)}.project-logo-vertical{max-width:min(160px,58vw)}.project-baldwin-wordmark{font-size:.92rem}.project-gallery{grid-template-columns:1fr}.project-gallery-image{max-width:280px}}.circuit-backdrop{inset:0;opacity:.34;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.circuit-svg{height:100%;width:100%}.trace-layer{filter:drop-shadow(0 0 3px rgba(121,247,199,.12))}.circuit-path{fill:none;stroke:#79f7c729;stroke-width:.9;stroke-linecap:round;stroke-linejoin:round}.mother-board{fill:#06101794;stroke:#4edaff26;stroke-width:1}.board-label{fill:#79f7c742;font-family:Share Tech Mono,monospace;font-size:20px}.circuit-node{fill:#79f7c73d;stroke:#4edaff42;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:.24}}@keyframes node-pulse{0%,to{opacity:.18}50%{opacity:.56}}@media (prefers-reduced-motion:reduce){.circuit-node{animation:none}}
/*# sourceMappingURL=main.477beadc.css.map*/