:root{--bg:#00000085;--fg:#fff;--muted:#ffffff59;--border:#fff3;--dot-size:.8px;--dot-gap:22px;--gruvbox-yellow:#fabd2f;--gruvbox-aqua:#8ec07c;--gruvbox-orange:#fe8019;--gruvbox-blue:#83a598;--gruvbox-purple:#d3869b;--gruvbox-fg:#ebdbb2;--gruvbox-fg2:#d5c4a1}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg);color:var(--fg);font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:JetBrains Mono,Courier New,monospace}body:before{content:"";z-index:-1;pointer-events:none;background-color:#000;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='2' numOctaves='5' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.12'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;position:fixed;inset:0}a{color:var(--fg);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}::selection{background:var(--fg);color:var(--bg)}h1,h2,h3,h4,h5,h6{letter-spacing:-.02em}.app{flex-direction:column;min-height:100vh;display:flex}.navbar{z-index:100;background-color:var(--bg);border-bottom:1px solid var(--border);background-size:var(--dot-gap) var(--dot-gap);justify-content:space-between;align-items:center;height:56px;padding:0 2rem;display:flex;position:sticky;top:0}.navbar__brand{letter-spacing:.12em;text-transform:uppercase;color:var(--gruvbox-blue);cursor:default;-webkit-user-select:none;user-select:none;font-size:1rem;font-style:italic;font-weight:700}.navbar__brand:hover{color:var(--gruvbox-aqua);transform:scale(1.1)}.navbar__links{gap:2rem;list-style:none;display:flex}.navbar__links a{letter-spacing:.1em;text-transform:uppercase;color:var(--gruvbox-yellow);font-size:.75rem;font-weight:500;transition:color .15s;position:relative}.navbar__links a:after{content:"";background:var(--gruvbox-purple);width:0;height:1px;transition:width .2s;position:absolute;bottom:-3px;left:0}.navbar__links a:hover{color:var(--gruvbox-purple);text-decoration:none}.navbar__links a:hover:after{width:100%}.navbar__links a.active{color:var(--gruvbox-orange);text-decoration:none}.navbar__links a.active:after{background:var(--gruvbox-orange);width:100%}.page{flex:1;justify-content:center;align-items:center;padding:4rem 2rem;display:flex}.page__inner{width:100%;max-width:680px}.page__tag{letter-spacing:.2em;text-transform:uppercase;color:var(--gruvbox-aqua);margin-bottom:1rem;font-size:.65rem}.page__heading{letter-spacing:-.03em;color:var(--gruvbox-yellow);margin-bottom:1.5rem;font-size:clamp(2rem,6vw,3.5rem);font-weight:800;line-height:1.1}.page__body{color:var(--gruvbox-fg);max-width:480px;font-size:.875rem;line-height:1.8}.page__body p+p{margin-top:1rem}.page__divider{background:var(--border);width:40px;height:1px;margin:2rem 0}.skills{flex-direction:column;gap:1rem;margin-top:2rem;display:flex}.skills__group{grid-template-columns:90px 1fr;align-items:baseline;gap:1rem;display:grid}.skills__label{letter-spacing:.15em;text-transform:uppercase;color:var(--gruvbox-orange);white-space:nowrap;font-size:.65rem}.skills__items{color:var(--gruvbox-fg2);font-size:.875rem;line-height:1.6}.KSULogo{max-height:50px;margin-top:1.5rem;margin-bottom:1.5rem;transition:rotate .2s,scale .2s;display:block}.KSULogo:hover{rotate:5deg;scale:1.1}.project-block{border-bottom:1px solid var(--border);padding:1.5rem 0}.project-block:last-child{border-bottom:none}.project-block h2{color:var(--gruvbox-blue)}#githublogo{opacity:.6;width:24px;height:24px;margin-bottom:1rem;transition:opacity .15s}#githublogo:hover{opacity:1}.button-container{gap:.75rem;display:flex}.header-button{letter-spacing:.15em;text-transform:uppercase;color:var(--gruvbox-yellow);border:1px solid var(--gruvbox-yellow);cursor:pointer;background:0 0;padding:.4rem 1rem;font-family:inherit;font-size:.65rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.header-button:hover{background:var(--gruvbox-yellow);color:var(--bg);border-color:var(--gruvbox-yellow)}.cursor-spotlight{pointer-events:none;z-index:0;background:radial-gradient(180px circle at var(--x,-9999px) var(--y,-9999px), #fabd2f0e, transparent 70%);position:fixed;inset:0}@media (hover:none){.cursor-spotlight{display:none}}@keyframes cpIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.cp-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cp-box{border:1px solid var(--border);background:#0a0a0a;width:100%;max-width:380px;animation:.1s both cpIn;overflow:hidden}.cp-header{letter-spacing:.2em;text-transform:uppercase;color:var(--gruvbox-aqua);opacity:.5;border-bottom:1px solid var(--border);padding:.65rem 1rem;font-size:.6rem}.cp-list{padding:.3rem 0;list-style:none}.cp-item{cursor:pointer;border-left:2px solid #0000;align-items:center;gap:.75rem;padding:.5rem 1rem;transition:border-color 80ms,background 80ms;display:flex}.cp-item--active{border-left-color:var(--gruvbox-orange);background:#ffffff08}.cp-key{color:var(--gruvbox-orange);text-align:center;opacity:.6;min-width:18px;font-size:.6rem;transition:opacity 80ms}.cp-item--active .cp-key{opacity:1}.cp-label{color:var(--gruvbox-fg2);font-size:.8rem;transition:color 80ms}.cp-item--active .cp-label{color:var(--gruvbox-fg)}.cp-footer{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--border);padding:.55rem 1rem;font-size:.55rem}.navbar__cmd-hint{-webkit-user-select:none;user-select:none;align-items:center;gap:3px;display:flex}.navbar__cmd-hint kbd{color:var(--gruvbox-fg2);background:#ffffff0a;border:1px solid #ffffff1f;border-bottom:2px solid #ffffff14;border-radius:3px;padding:.15rem .45rem;font-family:inherit;font-size:.6rem;line-height:1;transition:color .15s,border-color .15s}.navbar__cmd-hint:hover kbd{color:var(--gruvbox-yellow);border-color:#fabd2f40 #fabd2f40 #fabd2f26}@media (width<=540px){.navbar__cmd-hint{display:none}}.cursor{opacity:1;color:var(--gruvbox-yellow);margin-left:1px;display:inline-block}.cursor--blink{animation:1s step-end infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.route-wrap{flex-direction:column;flex:1;display:flex}.route-wrap--exit{pointer-events:none;animation:.18s forwards pageFadeOut}@keyframes pageFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.page__inner>*{animation:.4s both fadeSlideUp}.page__inner>:first-child{animation-delay:0s}.page__inner>:nth-child(2){animation-delay:70ms}.page__inner>:nth-child(3){animation-delay:.14s}.page__inner>:nth-child(4){animation-delay:.21s}.page__inner>:nth-child(5){animation-delay:.28s}.page__inner>:nth-child(6){animation-delay:.35s}.dm-wrap{background:#000;border:1px solid #fabd2f1f;border-radius:6px;margin-bottom:2.5rem;padding:20px 16px 24px;position:relative;overflow:hidden}.dm-wrap:before{content:"";pointer-events:none;z-index:10;background:repeating-linear-gradient(0deg,#0000002e 0 1px,#0000 1px 4px);position:absolute;inset:0}.dm-label{color:#fabd2f33;letter-spacing:4px;text-align:center;text-transform:uppercase;margin-bottom:16px;font-size:9px}.dm-matrix{justify-content:center;gap:var(--dm-gap,2.5px);display:grid}.dm-dot{width:var(--dm-dot-size,8px);height:var(--dm-dot-size,8px);background:#1a1200;border-radius:50%}.dm-dot--on{background:#fabd2f;box-shadow:0 0 6px #fabd2f,0 0 14px #fabd2f55}@media (width<=768px){:root{--dm-dot-size:4px;--dm-gap:1.5px}.dm-dot--on{box-shadow:0 0 3px #fabd2f,0 0 7px #fabd2f55}}@media (width<=400px){:root{--dm-dot-size:3px;--dm-gap:1px}}.project-tags{flex-wrap:wrap;gap:.4rem;margin-bottom:1rem;display:flex}.project-desc{color:var(--gruvbox-fg2);max-width:520px;margin-bottom:1rem;font-size:.8rem;line-height:1.7}.project-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--gruvbox-aqua);border:1px solid #8ec07c40;padding:.15rem .5rem;font-size:.6rem}@media (width<=540px){.page{align-items:flex-start;padding:2rem 1.25rem}.navbar{padding:0 1.25rem}.navbar__links{gap:1rem}.footer{flex-direction:column;align-items:flex-start;gap:.4rem}}.footer{border-top:1px solid var(--border);letter-spacing:.1em;text-transform:uppercase;color:var(--gruvbox-fg2);background-color:var(--bg);justify-content:space-between;align-items:center;padding:1.25rem 2rem;font-size:.65rem;display:flex}
