:root{color:#1f2933;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:#f7f9f7;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0;overflow-x:hidden}:root{--primary:#006400;--primary-foreground:#fff;--primary-strong:#004b00;--surface:#fff;--surface-muted:#f7f9f7;--text:#1f2933;--text-muted:#52615a;--border:#b8c8bd;--focus:#b8860b;--background-light:#f7f9f7;--background-dark:#101611}.portfolio{min-height:100dvh;color:var(--text);background:var(--surface-muted);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;transition:color .16s,background-color .16s}.portfolio.theme-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--primary:#75cf85;--primary-foreground:#101611;--primary-strong:#a3e3ad;--surface:#18211c;--surface-muted:#101611;--text:#edf4ee;--text-muted:#c0cec3;--border:#58705e;--focus:#f1c453}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background-color:var(--background-light)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background-color:var(--background-dark)}.portfolio>:not(.skip-link,.modal-backdrop){width:min(960px,100%);margin-inline:auto}.portfolio>.hero,.portfolio>main,.portfolio>footer{padding-inline:max(1.25rem, env(safe-area-inset-left), env(safe-area-inset-right))}.skip-link{color:var(--primary-foreground);background:var(--primary);z-index:2;padding:.65rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{left:1rem}.hero{border-bottom:2px solid var(--primary);padding-top:2rem;padding-bottom:0}.hero-main{grid-template-columns:minmax(0,1fr) minmax(220px,.72fr);align-items:end;gap:2rem;padding-bottom:2.5rem;display:grid}.hero-header,.experience-heading,footer{justify-content:space-between;align-items:center;gap:1rem;display:flex}.eyebrow{color:var(--primary);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.875rem;font-weight:700}.theme-toggle{border:1px solid var(--border);width:2.25rem;height:2.25rem;color:var(--primary);cursor:pointer;background:0 0;border-radius:4px;place-items:center;padding:0;display:grid}.theme-toggle:hover{color:var(--primary-foreground);background:var(--primary)}.theme-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.25rem;height:1.25rem}.hero-copy{max-width:720px}.hero-profile{aspect-ratio:1000/990;background-color:var(--primary-strong);justify-self:end;width:min(100%,320px);margin-bottom:-2.5rem;display:block;-webkit-mask:url(/assets/neil-profile-I4QR8t3_.svg) 50%/contain no-repeat;mask:url(/assets/neil-profile-I4QR8t3_.svg) 50%/contain no-repeat}.theme-dark .hero-profile{background-color:var(--primary);-webkit-mask-image:url(/assets/neil-profile-dark-D0-AW983.svg);mask-image:url(/assets/neil-profile-dark-D0-AW983.svg)}h1{overflow-wrap:anywhere;letter-spacing:-.04em;margin:3.5rem 0 1rem;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1}.intro{max-width:60ch;color:var(--text-muted);font-size:1.1rem}.technology{color:var(--primary);white-space:nowrap;border-radius:4px;font-size:.9em;font-weight:700;line-height:1.5;display:inline-block}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.hero-actions a{border:1px solid var(--primary);color:var(--primary-foreground);background:var(--primary);border-radius:4px;padding:.65rem 1rem;font-weight:700;text-decoration:none}.hero-actions .secondary{color:var(--primary);background:0 0}.section{margin-top:2.5rem}.section h2{color:var(--primary);margin-bottom:.75rem;font-size:1.5rem}.experience-list,.project-grid{gap:1rem;margin-top:1.25rem;display:grid}.experience-card,.project-card{border:1px solid var(--border);background:var(--surface);border-radius:4px}.experience-card{grid-template-columns:3.5rem minmax(0,1fr);align-items:start;gap:1rem;padding:1.25rem;display:grid}.company-logo{border:2px solid var(--primary);width:3.5rem;height:3.5rem;color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, var(--surface));border-radius:4px;place-items:center;display:grid}.company-logo svg{object-fit:contain;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px;width:2.25rem;height:2.25rem}.san-pablo-seal{background-color:currentColor;width:2.25rem;height:2.25rem;-webkit-mask:url(/assets/spc2-BI1oR4P_.svg) 50%/contain no-repeat;mask:url(/assets/spc2-BI1oR4P_.svg) 50%/contain no-repeat}.experience-heading{flex-wrap:wrap}.experience-heading h3,.project-card h3{margin:0;font-size:1.1rem}.experience-title,.experience-dates,.experience-summary,.project-card p{color:var(--text-muted);margin:.25rem 0 0}.experience-dates{flex:none;font-size:.9rem}.experience-summary{margin-top:.75rem}.project-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.project-card{flex-direction:column;min-width:0;padding:1rem;display:flex}.project-card h3,.project-card p{overflow-wrap:anywhere}.project-card p{margin-top:.5rem;margin-bottom:.75rem}.tech{margin-bottom:.75rem}.tech-label{color:var(--text-muted);margin-bottom:.35rem;font-size:.85rem;display:block}.tech-list{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.tech-list li{border:1px solid var(--border);color:var(--primary);border-radius:4px;padding:.1rem .5rem;font-size:.8rem;font-weight:700}.project-button{background:var(--primary);color:var(--primary-foreground);font:inherit;cursor:pointer;border:0;border-radius:4px;align-self:flex-start;margin-top:auto;padding:.5rem .9rem;font-weight:600}.project-button:hover{background:var(--primary-strong)}.modal-backdrop{z-index:100;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));background:#0009;place-items:center;display:grid;position:fixed;inset:0}.modal{overscroll-behavior:contain;border:1px solid var(--border);background:var(--surface);width:min(560px,100%);max-height:90dvh;color:var(--text);border-radius:4px;padding:1.25rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.modal-header h3{margin:0}.modal-close{color:var(--text);cursor:pointer;background:0 0;border:0;font-size:1.5rem;line-height:1}.modal-body{color:var(--text-muted);margin-top:.75rem}.contact-list{flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.contact-list a{border:1px solid var(--border);background:var(--surface);border-radius:4px;place-items:center;width:2.75rem;height:2.75rem;transition:color .16s,background-color .16s,border-color .16s;display:grid}.contact-list a:hover{border-color:var(--primary);color:var(--primary-foreground);background:var(--primary)}.contact-list svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.35rem;height:1.35rem}.contact-list li:nth-child(3) svg,.contact-list .github-icon{fill:currentColor;stroke:none}a{color:var(--primary)}#contact a,footer a{font-weight:700}footer{padding-top:1.25rem;padding-bottom:max(2rem, env(safe-area-inset-bottom));border-top:1px solid var(--border);color:var(--text-muted);margin-top:3rem}footer p{margin:0}footer a{text-underline-offset:3px}:is(a,button):focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media (width<=540px){.hero-header,.experience-heading,footer{flex-direction:column;align-items:flex-start}h1{margin-top:2.5rem}.hero-main{grid-template-columns:1fr;gap:1.5rem}.hero-profile{justify-self:center;width:min(72%,260px)}.experience-card{grid-template-columns:2.75rem minmax(0,1fr);gap:.75rem;padding:1rem}.company-logo{width:2.75rem;height:2.75rem}.company-logo svg,.san-pablo-seal{width:1.8rem;height:1.8rem}}@media (prefers-reduced-motion:reduce){.portfolio{transition:none}}.modal-list{padding-left:1.25rem}.modal-list li{margin-bottom:.4rem}.phone-sim{flex-direction:column;align-items:center;gap:.75rem;display:flex}.phone-sim-screen{border:8px solid var(--text);background:var(--surface-muted);border-radius:24px;width:260px;max-width:100%;min-height:340px;overflow:hidden}.phone-sim-bar{background:var(--primary);color:var(--primary-foreground);padding:.6rem;font-weight:600}.phone-sim-list{margin:0;padding:0;list-style:none}.phone-sim-list button{text-align:left;background:var(--surface);width:100%;color:var(--text);border:0;border-bottom:1px solid var(--border);cursor:pointer;flex-direction:column;gap:.15rem;padding:.7rem;display:flex}.phone-sim-list span,.phone-sim-list em{color:var(--text-muted);font-size:.8rem}.phone-sim-detail{color:var(--text);flex-direction:column;gap:.5rem;padding:.8rem;display:flex}.phone-sim-detail button,.phone-sim-reset{border:1px solid var(--border);background:var(--primary);color:var(--primary-foreground);cursor:pointer;border-radius:6px;padding:.5rem}.phone-sim-detail button:disabled{opacity:.6;cursor:wait}.phone-sim button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.phone-sim-screen{flex-direction:column;min-height:420px;display:flex}.phone-sim-body{flex:1;overflow-y:auto}.phone-sim-counts{background:var(--surface);color:var(--text);justify-content:space-between;padding:.4rem .7rem;font-size:.8rem;font-weight:700;display:flex}.phone-sim-message{color:var(--text);min-height:1.5rem;margin:0;padding:.4rem .7rem;font-size:.8rem}.phone-sim-nav{border-top:1px solid var(--border);display:flex}.phone-sim-nav button{background:var(--surface);color:var(--text-muted);cursor:pointer;border:0;flex:1;padding:.6rem .2rem;font-size:.7rem}.phone-sim-nav button[aria-current=page]{color:var(--primary);font-weight:700}.phone-sim-link{color:var(--primary);cursor:pointer;text-align:left;background:0 0;border:0;margin:.5rem .7rem}.wf-demo{flex-direction:column;gap:.75rem;display:flex}.wf-code{background:var(--surface-muted);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.6rem;font-size:.85rem;overflow-x:auto}.wf-code pre{margin:0}.wf-annot{color:var(--primary);font-weight:700}.wf-controls{color:var(--text);flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.wf-controls button{border:1px solid var(--border);background:var(--primary);color:var(--primary-foreground);cursor:pointer;border-radius:6px;padding:.4rem .8rem}.wf-controls button:disabled{opacity:.5;cursor:default}.wf-instance{border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.6rem}.wf-steps{flex-wrap:wrap;gap:.4rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.wf-step{border:1px solid var(--border);border-radius:999px;padding:.3rem .6rem;font-family:monospace;font-size:.8rem}.wf-step:not(:last-child):after{content:" →";color:var(--text-muted)}.wf-done{background:var(--primary);color:var(--primary-foreground)}.wf-active{border-color:var(--focus);box-shadow:0 0 0 2px var(--focus)}.wf-pending{color:var(--text-muted)}.wf-controls button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.dtr-demo{border:1px solid var(--border);color:var(--text);border-radius:6px;flex-direction:column;gap:.6rem;padding:.8rem;display:flex}.dtr-demo label{flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.dtr-demo select,.dtr-demo input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:4px;padding:.35rem}.dtr-demo button{border:1px solid var(--border);background:var(--primary);color:var(--primary-foreground);cursor:pointer;border-radius:6px;padding:.4rem .8rem}.dtr-demo button:disabled{opacity:.5;cursor:default}.dtr-demo button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.dtr-head{flex-wrap:wrap;justify-content:space-between;gap:.5rem;display:flex}.dtr-form{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));align-items:end;gap:.5rem;display:grid}.dtr-logs{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.dtr-logs li{background:var(--surface-muted);border-radius:4px;justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem .5rem;font-size:.85rem;display:flex}.dtr-actions{flex-wrap:wrap;gap:.5rem;display:flex}.dtr-sheet{flex-direction:column;gap:.6rem;display:flex;overflow-x:auto}.dtr-sheet table{border-collapse:collapse;background:var(--surface);width:100%;font-size:.85rem}.dtr-sheet th,.dtr-sheet td{border:1px solid var(--border);text-align:center;padding:.3rem}@media (width>=768px){.modal-backdrop{padding:0}.modal:has(.modal-split){border-radius:0;flex-direction:column;width:100%;height:100%;max-height:none;display:flex;overflow:hidden}.modal-split{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.5rem;min-height:0;display:grid}.modal-split>.modal-details,.modal-split>.modal-demo{min-height:0;padding-right:.5rem;overflow-y:auto}.modal-split>.modal-demo{border-left:1px solid var(--border);padding-left:1.5rem;padding-right:0}}.dtr-demo button[aria-pressed=true]{background:var(--primary-strong);outline:2px solid var(--primary)}.dtr-wide{grid-column:1/-1}.dtr-cell-list{text-align:left;margin:0;padding-left:1rem}@media (pointer:coarse){.theme-toggle{width:2.75rem;height:2.75rem}.modal-close{min-width:2.75rem;min-height:2.75rem}.project-button,.hero-actions a{align-items:center;min-height:2.75rem;display:inline-flex}}@media (width<=360px){.portfolio>.hero,.portfolio>main,.portfolio>footer{padding-inline:1rem}.hero-actions a{text-align:center;flex:100%;justify-content:center}.modal{padding:1rem}}@media (height<=480px) and (orientation:landscape) and (width<=767px){.modal{max-height:100dvh}.hero-profile{width:min(40%,200px)}}@media (width>=1440px){.portfolio>:not(.skip-link,.modal-backdrop){width:min(1080px,100%)}html{font-size:112.5%}}
