@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800;900&family=Montserrat:wght@400;500;600;700;800;900&display=swap";
*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--ink:#000;--paper:#fff;--dither-50:#888;--dither-25:#bbb;--dither-12:#ddd;--gradient-1-start:#eeaeca;--gradient-1-end:#94bbe9;--gradient-2-start:#00e0ff;--gradient-2-end:#ebff00;--gradient-3-start:#667eea;--gradient-3-end:#764ba2;--accent-blue:#3498db;--accent-red:#e74c3c;--font-display:"Inter", "Montserrat", "Chicago", "Arial Black", sans-serif;--font-body:"IBM Plex Mono", "Geneva", "Monaco", monospace;--card-margin:16px;--card-padding:32px;--card-radius:6px;--border-width:2px}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-body);color:var(--ink);background:#0a0a0f;width:100vw;overflow-x:hidden}#__next{width:100%;height:100%}::selection{background:var(--ink);color:var(--paper)}.gradient-text-1{background:linear-gradient(90deg, var(--gradient-1-start) 0%, var(--gradient-1-end) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gradient-text-2{background:linear-gradient(133.64deg, var(--gradient-2-start) 25.59%, var(--gradient-2-end) 56.88%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.gradient-text-3{background:linear-gradient(to right, var(--gradient-3-start), var(--gradient-3-end));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.dither-50{background-image:url("data:image/svg+xml,%3Csvg width='4' height='4' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='0' width='2' height='2' fill='%23888'/%3E%3Crect x='2' y='2' width='2' height='2' fill='%23888'/%3E%3C/svg%3E");background-size:4px 4px}.dither-25{background-image:url("data:image/svg+xml,%3Csvg width='4' height='4' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='0' width='2' height='2' fill='%23bbb'/%3E%3C/svg%3E");background-size:4px 4px}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;font-weight:900;line-height:1.1}h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:clamp(1.5rem,3.5vw,2.5rem)}h3{font-size:clamp(1.1rem,2.5vw,1.5rem)}p,span,li,a{font-family:var(--font-body);font-weight:400;line-height:1.6}a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:600}.card{background:var(--paper);border:var(--border-width) solid #000c;border-radius:var(--card-radius);padding:var(--card-padding);flex-direction:column;display:flex;overflow:hidden auto;box-shadow:0 4px 6px #0000001a,0 10px 30px #00000026,inset 0 1px #ffffff1a}.card::-webkit-scrollbar{width:6px}.card::-webkit-scrollbar-track{background:0 0}.card::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.card::-webkit-scrollbar-thumb:hover{background:#999}.paint-btn{background:var(--paper);height:42px;color:var(--ink);border:var(--border-width) solid #00000026;border-radius:var(--card-radius);font-family:var(--font-body);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:.85rem;font-weight:700;text-decoration:none;transition:background .12s,border-color .12s,transform 60ms,box-shadow .12s;display:inline-flex;position:relative}.paint-btn:hover{background:#f5f5f5;border-color:#0000004d;box-shadow:0 2px 8px #00000014}.paint-btn:active{transform:translateY(1px)}.paint-btn svg{flex-shrink:0}.cta-btn{color:var(--paper);background:#1a1a2e;border-color:#1a1a2e}.cta-btn:hover{background:#2a2a3e;border-color:#2a2a3e;box-shadow:0 4px 16px #1a1a2e40}.paint-btn-ghost{color:#ffffff80;border:var(--border-width) solid #ffffff26;border-radius:var(--card-radius);height:42px;font-family:var(--font-body);cursor:pointer;white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:.85rem;font-weight:600;text-decoration:none;transition:background .1s,color .1s,border-color .1s,transform 60ms;display:inline-flex}.paint-btn-ghost:hover{color:#fff;background:#ffffff1a;border-color:#fff6}.paint-btn-ghost:active{transform:translateY(1px)}.tech-pill{border:1px solid var(--ink);font-family:var(--font-body);letter-spacing:.02em;border-radius:3px;padding:4px 10px;font-size:.7rem;font-weight:500;transition:background 80ms,color 80ms;display:inline-block}.tech-pill:hover{background:var(--ink);color:var(--paper)}.card-hr{border:none;border-top:var(--border-width) solid #00000026;margin-bottom:24px}.glass{-webkit-backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a}.grain:after{content:"";pointer-events:none;z-index:9998;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:256px 256px;position:fixed;inset:0}.skill-tag{border:1.5px solid var(--ink);font-family:var(--font-body);cursor:default;border-radius:3px;padding:6px 12px;font-size:.75rem;font-weight:500;transition:all 80ms;display:inline-block}.skill-tag:hover{background:var(--ink);color:var(--paper);transform:scale(1.02)}.page-container{background:#0a0a0f;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:relative}.page-card{width:calc(100vw - 32px);height:calc(100vh - 32px);padding:24px;overflow-y:auto}.page-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header-left{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.page-header-actions{gap:8px;display:flex}.hero-container{justify-content:center;align-items:center;width:100vw;transition:background 1.5s;display:flex;position:relative}.hero-grain{z-index:1;flex-direction:column;width:calc(100vw - 32px);min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-layout{flex:1;gap:24px;min-height:0;padding:24px;display:flex}.hero-left{flex-direction:column;flex:1;gap:16px;min-width:0;display:flex}.hero-terminal-wrap{background:#0a0a14;border:2px solid #ffffff14;border-radius:6px;flex-direction:column;flex:1;min-height:400px;max-height:650px;padding:16px;display:flex;overflow:hidden}.hero-terminal-dots{flex-shrink:0;gap:6px;margin-bottom:12px;display:flex}.hero-terminal-dot{border-radius:50%;width:12px;height:12px}.hero-name-section{flex-shrink:0}.hero-name-section h1{color:#fff;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:900;font-family:var(--font-display);margin-bottom:4px}.hero-name-section p{color:#ffffff80;font-size:.85rem;font-family:var(--font-body);margin-bottom:16px}.hero-buttons-row{flex-wrap:wrap;flex-shrink:0;gap:10px;display:flex}.hero-footer-wrap{border-top:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.hero-footer-copy{color:#ffffff40;font-size:.65rem;font-family:var(--font-body)}.hero-footer-links{gap:16px;display:flex}.hero-footer-links a{color:#ffffff4d;font-size:.65rem;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;text-decoration:none;transition:color .1s}.hero-footer-links a:hover{color:#fff}.project-hero-image{border:2px solid var(--ink);background:#f5f5f5;border-radius:4px;width:100%;max-width:600px;height:300px;margin-bottom:24px;position:relative;overflow:hidden}.project-info{max-width:600px;margin-bottom:24px}.project-info p{margin-bottom:16px;line-height:1.7}.project-tech-list{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.project-actions{flex-wrap:wrap;gap:10px;display:flex}.project-detail-card{border:2px solid var(--ink);border-radius:4px;padding:12px}.project-detail-card .label{color:#888;margin-bottom:4px}.project-detail-card p{font-size:.85rem}.project-detail-list{flex-direction:column;gap:12px;max-width:600px;margin-bottom:24px;display:flex}.project-other{border-top:2px solid #0000001a;flex-shrink:0;margin-top:auto;padding-top:20px}.project-other .label{color:#888;margin-bottom:10px}.project-other-list{flex-wrap:wrap;gap:8px;display:flex}.project-badge{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.06em;color:#666;background:#0000000a;border:1.5px solid #0003;border-radius:4px;margin-bottom:8px;padding:4px 12px;font-size:.65rem;font-weight:600;display:inline-block}.project-list{flex-direction:column;gap:28px;display:flex}.project-list-item{border-bottom:1px solid #eee;flex-wrap:wrap;align-items:flex-start;gap:20px;padding-bottom:24px;display:flex}.project-list-item:last-child{border-bottom:none}.project-list-image{aspect-ratio:3/2;border:2px solid var(--ink);background:#f5f5f5;border-radius:4px;flex-shrink:0;width:clamp(100px,22vw,180px);position:relative;overflow:hidden}.project-list-content{flex:1;min-width:200px}.project-list-content h3{margin-bottom:4px}.project-list-content>p{color:#555;margin-bottom:8px;font-size:.85rem}.project-list-actions{flex-wrap:wrap;gap:8px;display:flex}.project-list-actions .paint-btn{padding:10px 18px;font-size:.8rem}.about-bio{flex-wrap:wrap;gap:24px;margin-bottom:32px;display:flex}.about-bio-image{border:2px solid var(--ink);border-radius:4px;flex-shrink:0;width:clamp(100px,18vw,150px);height:clamp(100px,18vw,150px);position:relative;overflow:hidden}.about-bio-text{flex:1;min-width:250px}.about-bio-text p{margin-bottom:12px}.about-skills-section{flex-direction:column;gap:20px;margin-bottom:32px;display:flex}.about-skill-category .label{color:#888;margin-bottom:8px}.about-skill-tags{flex-wrap:wrap;gap:6px;display:flex}.about-certs-grid{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:12px;margin-bottom:32px;display:grid}.cert-card{border:2px solid var(--ink);border-radius:4px;align-items:center;gap:16px;padding:16px;display:flex}.cert-card-image{border:1px solid #ddd;border-radius:2px;flex-shrink:0;width:90px;height:60px;position:relative;overflow:hidden}.cert-card-info{flex:1;min-width:0}.cert-card-info p{margin-bottom:2px;font-size:.8rem;font-weight:600}.cert-card-info .label{color:#888;font-size:.6rem}.cert-card-verify{flex-shrink:0;padding:5px 10px;font-size:.65rem}.about-nav{border-top:2px solid #0000001a;flex-wrap:wrap;gap:10px;padding-top:20px;display:flex}.contact-content{flex-wrap:wrap;align-items:flex-start;gap:32px;margin-bottom:24px;display:flex}.contact-text{flex:1;min-width:280px}.contact-text p{margin-bottom:16px;line-height:1.7}.contact-list{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.contact-card-wrap{min-width:0;display:flex}.contact-card-wrap--wide{grid-column:1/-1}.contact-email-card,.contact-link-card{border:var(--border-width) solid var(--ink);border-radius:var(--card-radius);width:100%;color:var(--ink);font-family:var(--font-body);align-items:center;gap:14px;padding:14px 16px;text-decoration:none;transition:background .14s,color .14s,transform .14s,box-shadow .14s;display:flex}.contact-email-card:hover,.contact-link-card:hover{background:var(--ink);color:var(--paper);transform:translate(4px);box-shadow:0 4px 14px #0000002e}.contact-email-card:active,.contact-link-card:active{transform:translate(2px)translateY(1px)}.contact-email-card:focus-visible,.contact-link-card:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.contact-email-icon,.contact-link-icon{border:1px solid;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.contact-email-meta{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.contact-email-label{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.16em;font-size:.6rem;font-weight:600}.contact-email-address{font-family:var(--font-body);white-space:nowrap;text-overflow:ellipsis;font-size:.92rem;font-weight:600;overflow:hidden}.contact-email-sub{font-family:var(--font-body);opacity:.55;white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.contact-link-label{font-family:var(--font-body);flex:1;font-size:.9rem;font-weight:500}.contact-link-arrow{opacity:0;flex-shrink:0;transition:opacity .14s,transform .14s;transform:translate(-6px)}.contact-email-card:hover .contact-link-arrow,.contact-link-card:hover .contact-link-arrow{opacity:1;transform:translate(0)}.contact-back{margin-top:24px}.contact-footer{border-top:2px solid #0000001a;flex-shrink:0;margin-top:auto;padding-top:20px}@media (max-width:640px){.contact-list{grid-template-columns:1fr}}.gallery-mosaic-wrap{border-radius:4px;max-height:360px;margin-bottom:32px;overflow:hidden}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.gallery-item{border:2px solid var(--ink);aspect-ratio:3/2;border-radius:4px;position:relative;overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.gallery-item:hover img{transform:scale(1.06)}.gallery-item-label{font-size:.65rem;font-family:var(--font-body);color:#fff;text-transform:uppercase;letter-spacing:.05em;background:#0000008c;border-radius:3px;padding:2px 6px;font-weight:600;position:absolute;bottom:6px;left:8px}.typing-container{background:#0a0a0f;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.typing-inner{flex-direction:column;width:calc(100vw - 32px);height:calc(100vh - 32px);padding:24px;display:flex;overflow:hidden}.typing-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.typing-header h2{color:#fff;font-size:clamp(1.2rem,3vw,1.8rem)}.typing-header-controls{align-items:center;gap:8px;display:flex}.typing-timer-btn{color:#fff6;font-family:var(--font-body);cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:4px;padding:6px 14px;font-size:.75rem;font-weight:600;transition:all 80ms}.typing-timer-btn:hover,.typing-timer-btn.active{color:#fff;border-color:#ffffff80}.typing-focus-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;z-index:10;background:#0a0a0fd9;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.typing-focus-overlay span{color:#fff6;font-family:var(--font-body);font-size:.85rem;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.typing-word-area{flex:1;justify-content:center;align-items:center;min-height:0;margin-bottom:24px;display:flex;position:relative}.typing-word-display{font-family:var(--font-body);color:#ffffff26;text-align:center;white-space:pre-wrap;word-break:break-word;width:90%;max-width:1000px;margin:0 auto;font-size:clamp(1.1rem,2.5vw,1.6rem);line-height:2.2;position:relative}.typing-word-display .correct{color:#ffffffd9}.typing-word-display .incorrect{color:#e74c3c}.typing-word-display .cursor-char{border-left:2px solid #fff;margin-left:-1px;padding-left:1px;animation:1s step-end infinite blink}.typing-stats-panel{flex-shrink:0;justify-content:center;gap:12px;margin-bottom:20px;display:flex}.typing-stat-card{text-align:center;background:#ffffff05;border:1px solid #ffffff14;border-radius:6px;min-width:100px;padding:12px 20px}.typing-stat-card .stat-value{font-family:var(--font-display);color:#fff;margin-bottom:4px;font-size:1.8rem;font-weight:800;line-height:1}.typing-stat-card .stat-label{font-family:var(--font-body);color:#ffffff59;text-transform:uppercase;letter-spacing:.08em;font-size:.65rem}.typing-keyboard{flex-direction:column;flex-shrink:0;align-items:center;gap:4px;display:flex}.typing-key-row{gap:4px;display:flex}.typing-key{width:clamp(28px,4vw,42px);height:clamp(28px,4vw,42px);font-family:var(--font-body);color:#ffffff4d;text-transform:uppercase;background:#ffffff05;border:1px solid #ffffff1a;border-radius:4px;justify-content:center;align-items:center;font-size:.7rem;font-weight:500;transition:all 60ms;display:flex}.typing-key.active{color:#fff;background:#ffffff26;border-color:#ffffff4d}.typing-key.correct{color:#28c840cc;border-color:#28c84066}.typing-key.incorrect{color:#e74c3ccc;border-color:#e74c3c66}.typing-end-actions{justify-content:center;gap:10px;margin-top:24px;display:flex}.color-wash-overlay{z-index:10000;pointer-events:none;position:fixed;inset:0}.color-wash-panel{position:absolute;inset:0}.master-menu-btn{z-index:9999;color:#fff9;cursor:pointer;width:44px;height:44px;font-size:1.1rem;font-family:var(--font-body);background:#0a0a14;border:1px solid #ffffff26;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,border-color .15s,color .15s;display:flex;position:fixed;bottom:24px;right:50%;transform:translate(50%)}.master-menu-btn:hover{color:#fff;background:#1a1a2e;border-color:#ffffff4d}.master-menu-overlay{z-index:10001;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0feb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.master-menu-panel{flex-direction:column;gap:8px;width:90%;max-width:480px;display:flex}.master-menu-title{font-family:var(--font-display);color:#fff;letter-spacing:-.02em;margin-bottom:8px;font-size:1.2rem;font-weight:800}.master-menu-card{cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:6px;justify-content:space-between;align-items:center;padding:14px 18px;text-decoration:none;transition:background .12s,border-color .12s;display:flex}.master-menu-card:hover{background:#ffffff14;border-color:#fff3}.master-menu-card-name{font-family:var(--font-display);color:#fff;font-size:.9rem;font-weight:700}.master-menu-card-desc{font-family:var(--font-body);color:#fff6;margin-top:2px;font-size:.7rem}.master-menu-card-arrow{color:#ffffff40;flex-shrink:0;font-size:.85rem}.master-menu-close{color:#ffffff80;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;transition:all .1s;display:flex;position:absolute;top:24px;right:24px}.master-menu-close:hover{color:#fff;background:#ffffff14}.skill-logo-follower{pointer-events:none;z-index:10000;opacity:.85;filter:drop-shadow(0 2px 8px #0006);width:32px;height:32px;transition:opacity .15s;position:fixed}.nav-btn-wrap{display:inline-block}.nav-btn-sm{height:36px;padding:0 16px;font-size:.8rem}@media (max-width:768px){:root{--card-margin:8px;--card-padding:20px}.paint-btn{height:38px;padding:0 18px;font-size:.8rem}}@media (max-width:480px){:root{--card-margin:4px;--card-padding:14px}}.cursor{pointer-events:none;z-index:9999;mix-blend-mode:difference;will-change:transform;transition:none;animation:50s linear infinite cursorSpin;position:fixed}@keyframes cursorSpin{0%{transform:rotate(0)}to{transform:rotate(1080deg)}}@media (max-width:768px){.cursor{display:none}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-gradient-glow{pointer-events:none;z-index:0;background:radial-gradient(at 25% 35%,#1e123ce6 0%,#0000 55%),radial-gradient(at 75% 65%,#0f1932b3 0%,#0000 50%);animation:8s ease-in-out infinite glow-breathe;position:absolute;inset:0}@keyframes glow-breathe{0%,to{opacity:.4}50%{opacity:1}}@media (max-width:768px){.hero-layout{flex-direction:column!important;gap:16px!important}.hero-terminal{min-height:300px!important}.hero-footer-wrap{flex-direction:column!important;align-items:flex-start!important;gap:8px!important}.hero-footer-links{flex-wrap:wrap!important;gap:12px!important}}@media (max-width:480px){.hero-layout{padding:12px!important}.hero-terminal{min-height:250px!important;padding:12px!important}}@media (max-width:768px){:root{--card-margin:6px;--card-padding:16px}.cursor{display:none}.paint-btn{height:38px;padding:0 16px;font-size:.75rem}.skill-tag{padding:4px 8px;font-size:.65rem}.tech-pill{padding:3px 8px;font-size:.6rem}}@media (max-width:480px){:root{--card-margin:4px;--card-padding:12px}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1rem}}
@font-face{font-family:Orbitron;font-style:normal;font-weight:900;font-display:swap;src:url(../media/05d164d63d55d242-s.38h5_ige52hra.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Orbitron Fallback;src:local(Arial);ascent-override:81.5%;descent-override:19.59%;line-gap-override:0.0%;size-adjust:124.05%}.orbitron_e50bf075-module__xEw1jW__className{font-family:Orbitron,Orbitron Fallback;font-style:normal;font-weight:900}
