:root{--color-yellow:#ffe17c;--color-charcoal:#171e19;--color-sage:#b7c6c2;--color-white:#fff;--color-black:#000;--color-neutral:#f4f4f5;--color-dark-surface:#272727;--color-dark-subtle:#1f2722;--color-sage-light:#dce6e3;--color-yellow-light:#fff4d0;--font-display:"Cabinet Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body:"Satoshi", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace;--border-thick:2px solid #000;--border-subtle:1px solid #000;--shadow-sm:4px 4px 0 #000;--shadow-md:6px 6px 0 #000;--shadow-lg:8px 8px 0 #000;--shadow-xl:10px 10px 0 #000;--shadow-sage:6px 6px 0 #171e19;--max-width:1240px;--nav-height:72px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-asym:16px 4px 16px 4px;--transition-tactile:all .16s cubic-bezier(.2, 0, 0, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;overflow-x:hidden}body{font-family:var(--font-body);color:var(--color-charcoal);background-color:var(--color-yellow);width:100%;font-size:16px;line-height:1.6;position:relative;overflow-x:hidden}.portfolio-app{width:100%;max-width:100%;position:relative;overflow-x:hidden}img,svg,video,canvas{max-width:100%;height:auto}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;color:inherit;word-wrap:break-word;overflow-wrap:break-word;font-weight:800;line-height:1.1}a{color:inherit;outline-offset:3px;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #000}button{cursor:pointer;background:0 0;border:none;font-family:inherit}code,pre{font-family:var(--font-mono);max-width:100%}.container{width:100%;max-width:var(--max-width);box-sizing:border-box;margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem}.bg-yellow-dots{background-color:var(--color-yellow);background-image:radial-gradient(#0000001f 1.5px,#0000 1.5px);background-size:32px 32px}.bg-charcoal{background-color:var(--color-charcoal);color:var(--color-white)}.bg-white{background-color:var(--color-white);color:var(--color-charcoal)}.bg-sage{background-color:var(--color-sage);color:var(--color-charcoal)}.bg-neutral{background-color:var(--color-neutral);color:var(--color-charcoal)}.section-wrapper{border-bottom:var(--border-thick);box-sizing:border-box;width:100%;padding:5.5rem 0;position:relative;overflow-x:hidden}.section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;background:var(--color-black);color:var(--color-yellow);border:var(--border-thick);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);box-sizing:border-box;align-items:center;gap:.5rem;max-width:100%;margin-bottom:1.25rem;padding:.35rem .75rem;font-size:.85rem;font-weight:700;display:inline-flex}.section-label.light{background:var(--color-yellow);color:var(--color-black)}.section-headline{text-transform:uppercase;letter-spacing:-.025em;word-wrap:break-word;overflow-wrap:break-word;max-width:100%;margin-bottom:1.25rem;font-size:clamp(1.85rem,4vw,3.25rem);font-weight:850}.section-desc{opacity:.9;word-wrap:break-word;max-width:680px;font-size:1.15rem;line-height:1.6}.btn-brutal{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.03em;border:var(--border-thick);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);transition:var(--transition-tactile);-webkit-user-select:none;user-select:none;white-space:nowrap;box-sizing:border-box;justify-content:center;align-items:center;gap:.6rem;max-width:100%;padding:.85rem 1.6rem;font-size:.95rem;font-weight:800;display:inline-flex}.btn-brutal:hover{box-shadow:var(--shadow-sm);transform:translate(2px,2px)}.btn-brutal:active{transform:translate(6px,6px);box-shadow:0 0 #000}.btn-primary{background:var(--color-black);color:var(--color-yellow)}.btn-primary:hover{color:#fff;background:#111}.btn-secondary{background:var(--color-white);color:var(--color-black)}.btn-secondary:hover{background:#fafafa}.btn-yellow{background:var(--color-yellow);color:var(--color-black)}.btn-yellow:hover{background:#ffe896}.btn-sage{background:var(--color-sage);color:var(--color-charcoal)}.btn-sage:hover{background:#c4d3cf}.btn-outline{color:inherit;background:0 0}.btn-outline:hover{background:#0000000f}.brutal-card{border:var(--border-thick);border-radius:var(--radius-md);box-shadow:var(--shadow-md);transition:var(--transition-tactile);box-sizing:border-box;min-width:0;max-width:100%}.brutal-card:hover{box-shadow:var(--shadow-lg);transform:translate(-2px,-2px)}.brutal-card-lg{border:var(--border-thick);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transition:var(--transition-tactile);box-sizing:border-box;min-width:0;max-width:100%}.brutal-card-lg:hover{box-shadow:var(--shadow-xl);transform:translate(-2px,-2px)}.tech-chip{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-black);white-space:nowrap;box-sizing:border-box;border:1.5px solid #000;align-items:center;gap:.4rem;max-width:100%;padding:.3rem .65rem;font-size:.8rem;font-weight:600;display:inline-flex;box-shadow:2px 2px #000}.tech-chip.dark{background:var(--color-dark-surface);color:var(--color-white);border-color:#fff3;box-shadow:2px 2px #000}.tech-chip.sage{background:var(--color-sage);color:var(--color-charcoal);border-color:#000}@media (width<=768px){:root{--nav-height:64px}.container{padding-left:1.15rem;padding-right:1.15rem}.section-wrapper{padding:3.25rem 0}.section-headline{letter-spacing:-.02em;font-size:clamp(1.65rem,6.5vw,2.25rem);line-height:1.15}.section-desc{font-size:.98rem;line-height:1.55}.section-label{margin-bottom:.85rem;padding:.25rem .6rem;font-size:.72rem}.btn-brutal{padding:.7rem 1.15rem;font-size:.85rem;box-shadow:3px 3px #000}.btn-brutal:hover{transform:none;box-shadow:3px 3px #000}.brutal-card{box-shadow:4px 4px #000}.brutal-card:hover{transform:none;box-shadow:4px 4px #000}.brutal-card-lg{box-shadow:4px 4px #000}.brutal-card-lg:hover{transform:none;box-shadow:4px 4px #000}.developer-workspace{box-shadow:4px 4px #000!important}.tech-chip{padding:.2rem .5rem;font-size:.72rem}}@media (width<=480px){.container{padding-left:.9rem;padding-right:.9rem}.section-wrapper{padding:2.75rem 0}.btn-brutal{white-space:normal;text-align:center;padding:.65rem .95rem;font-size:.82rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-charcoal);border-left:var(--border-thick)}::-webkit-scrollbar-thumb{background:var(--color-yellow);border:2px solid #000;border-radius:0}::-webkit-scrollbar-thumb:hover{background:#fff0a8}::selection{background:var(--color-black);color:var(--color-yellow)}
