:root{--mint:#1ABC9C;--coral:#E67E73;--black:#1B1F23;--light:#F8F9FA;--ash:#BCD2CC;--lavender:#DBDFEA;--ink:#111316;--ink-2:#2a2f35;--gray:#e6e9ed;--radius:12px;--radius-sm:8px;--shadow:0 1px 2px rgba(0,0,0,.06), 0 8px 24px rgba(0,0,0,.08)}*{box-sizing:border-box}html,body,#root{height:100%}.app-container{min-height:100vh;display:flex;flex-direction:column}.content-wrapper{flex:1}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji",sans-serif;background:var(--light);color:var(--black);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;display:block}.skip-link{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}.skip-link:focus{left:16px;top:16px;width:auto;height:auto;background:#fff;color:#000;padding:.5rem .75rem;border-radius:var(--radius-sm);box-shadow:var(--shadow)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{max-width:1100px;margin-inline:auto;padding-inline:24px}.site-header{position:sticky;top:0;z-index:50;background:var(--ink);color:var(--light);-webkit-backdrop-filter:saturate(160%) blur(6px);backdrop-filter:saturate(160%) blur(6px);box-shadow:0 1px 3px #0000002e}.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:64px}.logo{color:var(--mint);font-weight:700;font-size:1.25rem;letter-spacing:.3px;text-decoration:none;display:flex;align-items:center;gap:.6rem}.logo-icon{width:32px;height:32px;flex-shrink:0;padding:3px;border-radius:7px;background:#f8f9faeb;border:1px solid rgba(188,210,204,.6);box-shadow:0 1px #0000000f}.site-nav{display:flex;gap:8px;align-items:center}.site-nav a{color:var(--light);text-decoration:none;padding:.45rem .65rem;border-radius:6px}.site-nav a:hover{background:#ffffff14}.site-nav .btn-accent{background:var(--coral);color:#fff!important;border:1px solid rgba(0,0,0,.15)}.site-nav .btn-accent:hover{filter:brightness(.96)}.nav-toggle{display:none;background:transparent;border:0;color:var(--light);font-size:1.5rem;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-decoration:none;font-weight:600;padding:.75rem 1rem;border-radius:var(--radius-sm);border:1px solid transparent}.btn:focus-visible{outline:2px solid var(--black);outline-offset:2px}.btn-primary{background:var(--mint);color:#fff}.btn-primary:hover{filter:brightness(.96)}.btn-accent{background:var(--coral);color:#fff!important}.btn-accent:hover{filter:brightness(.96)}.btn-ghost{background:transparent;color:var(--black);border-color:var(--ash);border:1px solid var(--ash)}.btn-ghost:hover{background:#fff}.btn-small{padding:.5rem .75rem;font-weight:600}.hero{background:var(--light);padding-block:clamp(3rem,6vw,6rem)}.hero-inner{text-align:center}.hero h1{font-size:clamp(2rem,4vw,3rem);margin:0 0 .5rem;letter-spacing:.2px;display:flex;align-items:center;justify-content:center;gap:.75rem}.hero-logo{width:clamp(2rem,4vw,3rem);height:clamp(2rem,4vw,3rem);flex-shrink:0}.hero .subhead{color:var(--ink-2);margin:0 auto 1.5rem;max-width:55ch}.hero .actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.section{padding-block:clamp(2rem,6vw,4rem)}.section-head{text-align:center;margin-bottom:1.5rem}.section-head h2{margin:0 0 .25rem}.section-head p{color:var(--ink-2);margin:0}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;align-items:stretch}.card{background:#fff;border:1px solid var(--ash);border-radius:var(--radius);padding:1.25rem;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-3px);border-color:var(--mint);box-shadow:var(--shadow)}.card h3{margin-top:0}.card-actions{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:32px;margin-top:2rem}.project-card{background:#fff;border:1px solid var(--ash);border-radius:var(--radius);padding:2rem;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.project-card:hover{transform:translateY(-3px);border-color:var(--mint);box-shadow:var(--shadow)}.project-card-clickable:hover{cursor:pointer}.project-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;gap:1rem}.project-title{margin:0 0 .5rem;font-size:1.5rem}.project-category{color:var(--ink-2);font-size:1rem;font-weight:500}.project-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}.project-year{color:var(--ink-2);font-size:1rem}.status-badge{padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-live{background:var(--mint);color:#fff}.status-development{background:var(--coral);color:#fff}.status-wip{background:#fbbf24;color:#000}.status-planning{background:var(--lavender);color:var(--black)}.project-description{color:var(--ink-2);line-height:1.6;margin-bottom:1.5rem;font-size:1.1rem}.tech-stack h4{margin:0 0 1rem;font-size:1rem;color:var(--ink-2);text-transform:uppercase;letter-spacing:.5px}.tech-tags{display:flex;flex-wrap:wrap;gap:.75rem}.tech-tag{background:var(--lavender);color:var(--black);padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;border:1px solid var(--ash)}.about-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:28px;align-items:flex-start}.about-right{display:flex;flex-direction:column;gap:16px;align-items:flex-end}.highlight{background:#fff;border:1px solid var(--ash);border-radius:var(--radius);padding:1.25rem 1.5rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:440px;align-items:center;justify-self:end;text-align:center}.highlight h3{text-align:center;margin:0}.highlight .btn{align-self:center}.about-meta{width:100%;max-width:440px;text-align:center;display:flex;flex-direction:column;gap:.5rem;align-items:center}.checks{padding-left:1.1rem}.checks li{margin:.25rem 0}.resume-link{margin:0 0 1rem;font-weight:600}.resume-link a{color:var(--ink);text-decoration:none}.resume-link a:hover{text-decoration:underline}.resume-note{margin-left:.35rem;color:var(--ink-2);font-weight:500}.contact-social{margin-top:1.5rem;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.social-links{display:flex;gap:.75rem;justify-content:center}.social-links a{color:var(--ink);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--ash);background:var(--gray);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.social-links a:hover{border-color:var(--mint);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.social-links svg{width:18px;height:18px;fill:currentColor}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.contact-form label{display:flex;flex-direction:column;gap:.4rem}.contact-form label.full{grid-column:1 / -1}.contact-form input,.contact-form textarea{font:inherit;padding:.7rem .8rem;border-radius:var(--radius-sm);border:1px solid var(--ash);background:var(--gray);color:var(--black)}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.form-actions{grid-column:1 / -1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.privacy{font-size:.9rem;color:var(--ink-2);margin:0}.site-footer{background:var(--ash);color:var(--black);padding-block:1rem;border-top:1px solid rgba(0,0,0,.06)}.footer-inner{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:12px}.footer-inner>p{justify-self:start}.footer-nav{display:flex;gap:12px;justify-self:end}.footer-nav a{color:var(--black);text-decoration:none}.footer-nav a:hover{text-decoration:underline}.footer-social{display:flex;gap:.5rem;justify-self:center}.footer-social a{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid rgba(0,0,0,.08);background:#fff;color:var(--black);transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.footer-social a:hover{border-color:var(--mint);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.footer-social svg{width:18px;height:18px;fill:currentColor}@media (max-width: 860px){.site-nav{position:absolute;right:16px;top:64px;background:var(--ink);padding:8px;border-radius:10px;border:1px solid rgba(255,255,255,.15);display:none;flex-direction:column;min-width:180px;box-shadow:var(--shadow)}.site-nav a{color:var(--light)}.site-nav.open{display:flex}.nav-toggle{display:inline-block}.about-grid,.contact-form{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
