:root{--portfolio-bg:#6d92c2;--portfolio-lime:#b9ff66;--portfolio-wordmark:#f3f3f3;--portfolio-error:#7f1d1d;--portfolio-text:#000;--portfolio-muted-text:#000000b3;--portfolio-panel:#ffffff26;--portfolio-panel-strong:#ffffff40;--portfolio-focus:#000;--portfolio-font:"SF Pro Display", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif;--page-max-width:72rem}*{box-sizing:border-box}html{background:var(--portfolio-bg);min-width:320px}body{min-width:320px;font-family:var(--portfolio-font);color:var(--portfolio-text);background:var(--portfolio-bg);margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.screen-reader-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page{background:var(--portfolio-bg);min-height:100vh}.section{width:100%;max-width:var(--page-max-width);padding-inline:1rem;margin:0 auto;padding-bottom:3rem}.section-home{padding-top:2rem}.section-subpage{padding-top:3rem}.intro{max-width:42rem}.heading{max-width:42rem;color:var(--portfolio-lime);margin:0;font-size:clamp(2.5rem,9vw,3.75rem);font-weight:500;line-height:1.08}.copy{max-width:36rem;margin:1.5rem 0 0;font-size:1rem;line-height:1.65}.intro-skills{max-width:36rem;margin-top:2rem}@media (width>=640px){.section{padding-inline:1.5rem}.section-home{padding-top:3rem}.section-subpage{padding-top:5rem}.copy{margin-top:2rem;font-size:1.25rem}.intro-skills{margin-top:3rem}}@media (width>=1024px){.section{padding-inline:2rem}.section-home{padding-top:4rem}.section-subpage{padding-top:7rem}}.header{width:100%;max-width:var(--page-max-width);margin:0 auto;padding:1.25rem 1rem}.header-bar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.header-brand{color:var(--portfolio-wordmark);letter-spacing:0;filter:drop-shadow(0 4px 4px #00000059);font-size:1rem;font-weight:700}.header-menu-button{width:2.75rem;height:2.75rem;color:var(--portfolio-text);cursor:pointer;background:var(--portfolio-lime);border:2px solid var(--portfolio-text);border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:0;display:inline-flex}.menu-icon-line{background:currentColor;border-radius:999px;width:1.05rem;height:2px}.header-menu-button:focus-visible{outline:2px solid var(--portfolio-focus);outline-offset:3px}.header-nav{grid-template-columns:1fr;gap:.75rem;padding-top:1rem;display:none}.header-nav.is-open{display:grid}@media (width>=640px){.header{padding:1.5rem}.header-brand{font-size:1.125rem}}@media (width>=768px){.header{justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.header-bar{display:block}.header-menu-button{display:none}.header-nav,.header-nav.is-open{align-items:center;gap:1.25rem;padding-top:0;display:flex}}@media (width>=1024px){.header{padding-inline:2rem}}.nav-pill-wrap{flex-direction:column;align-items:center;gap:.25rem;min-width:0;display:inline-flex}.nav-pill{width:100%;min-height:2.75rem;color:var(--portfolio-text);white-space:nowrap;background:var(--portfolio-lime);border:2px solid var(--portfolio-text);border-radius:999px;justify-content:center;align-items:center;padding:.45rem 1rem;font-size:1rem;font-weight:500;line-height:1;transition:opacity .16s;display:inline-flex}.nav-pill:hover{opacity:.8}.nav-pill:focus-visible{outline:2px solid var(--portfolio-focus);outline-offset:3px}.nav-pill-active-line{background:var(--portfolio-lime);border-radius:999px;width:75%;height:3px}@media (width>=768px){.nav-pill{width:auto;min-height:2.5rem;padding:.5rem 1.75rem}}.skills-tile{background:var(--portfolio-panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:1rem;width:100%;padding:1rem}.skills-list{gap:1.5rem;margin-top:2rem;display:grid}.skills-row-header{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.skills-label{font-size:.875rem;font-weight:500}.skills-meta{color:var(--portfolio-muted-text);font-size:.75rem}.skills-bar{margin-top:.5rem}.skills-scale{color:var(--portfolio-muted-text);letter-spacing:0;text-transform:uppercase;justify-content:space-between;margin-top:.5rem;font-size:.625rem;display:flex}.skill-bar{background:#0003;width:100%;height:2px;position:relative}.skill-bar-fill{inset-block:0;background:var(--portfolio-lime);position:absolute;left:0}.skill-bar-marker{background:var(--portfolio-lime);border-radius:999px;width:.5rem;height:.5rem;position:absolute;top:50%;transform:translate(-50%,-50%)}@media (width>=640px){.skills-tile{padding:1.25rem}.skills-label{font-size:1rem}.skills-meta{font-size:.875rem}.skills-scale{font-size:.75rem}}.contact-panel{max-width:36rem}.contact-form{gap:1.25rem;margin-top:2rem;display:grid}.contact-field{width:100%;color:var(--portfolio-text);background:var(--portfolio-panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:0;border-radius:1rem;outline:none;padding:.75rem 1rem;font-size:1rem;transition:background-color .16s,box-shadow .16s}.contact-field::placeholder{color:#0009}.contact-field:focus{background:var(--portfolio-panel-strong)}.contact-field:focus-visible{box-shadow:0 0 0 2px var(--portfolio-focus)}.contact-field-error{box-shadow:0 0 0 2px var(--portfolio-error)}.contact-message{resize:none}.contact-error{color:var(--portfolio-error);margin:.5rem 0 0;font-size:.875rem;font-weight:500}.contact-submit{width:100%;min-height:2.75rem;color:var(--portfolio-text);cursor:pointer;background:var(--portfolio-lime);border:2px solid var(--portfolio-text);border-radius:999px;justify-content:center;align-items:center;padding:.5rem 1.75rem;font-size:1rem;font-weight:500;transition:opacity .16s;display:inline-flex}.contact-submit:hover{opacity:.8}.contact-submit:focus-visible{outline:2px solid var(--portfolio-focus);outline-offset:3px}@media (width>=640px){.contact-form{margin-top:2.5rem}}.feedback-page{color:#111;background:#fff;place-items:center;min-height:100vh;padding:1rem;display:grid}.feedback-card{text-align:center;width:100%;max-width:28rem}.feedback-code{margin:0;font-size:4.5rem;font-weight:700;line-height:1}.feedback-title{margin:1rem 0 0;font-size:1.25rem;font-weight:600}.feedback-copy{color:#555;margin:.5rem 0 0;font-size:.875rem;line-height:1.5}.feedback-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1.5rem;display:flex}.feedback-button{cursor:pointer;border-radius:.375rem;justify-content:center;align-items:center;min-height:2.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .16s;display:inline-flex}.feedback-button--primary{color:#fff;background:#111;border:1px solid #111}.feedback-button--secondary{color:#111;background:#fff;border:1px solid #ccc}
