:root{color-scheme:light;--paper:#f4f2ed;--ink:#111110;--muted:#6b6862;--line:#ddd8cb;--accent:#ff3b1f}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'Space Grotesk',system-ui,sans-serif}
a{color:inherit}
a:hover{opacity:.72}
a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
img{max-width:100%}
button,input{font:inherit}
button{cursor:pointer}
.skip,.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}
.skip:focus{width:auto;height:auto;clip:auto;left:12px;top:8px;margin:0;padding:10px 14px;z-index:10;background:var(--ink);color:var(--paper)}
.ask-row{display:flex;flex-wrap:wrap;gap:8px}
.ask-row input{flex:1 1 280px;min-width:0;min-height:52px;padding:0 16px;background:#fff;color:var(--ink);border:1px solid var(--ink);font-family:'Space Grotesk',sans-serif;font-size:16px}
.ask-row button{min-height:52px;padding:0 24px;background:var(--ink);color:var(--paper);border:0;font-family:'IBM Plex Mono',monospace;font-size:14px}
.ask-row button:hover{background:var(--accent)}
.ask-row button:disabled{opacity:.55;cursor:wait}
.ask-status,.ask-answer{margin:12px 0 0;padding:16px 18px;background:#e9e5dc;border-left:2px solid var(--accent);font-size:15px;white-space:pre-wrap}
[hidden]{display:none!important}
@media(max-width:640px){body>div>header{padding-top:16px!important;padding-bottom:12px!important}body>div>main>section:first-child{padding-top:12px!important}h1{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:640px){.hero-gallery{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;flex-basis:100%!important}.hero-gallery img{width:100%!important;aspect-ratio:3 / 4!important;object-fit:cover!important}}
.github-link{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.github-icon{display:block;width:14px;height:14px;flex:none}
/* Vertical scroll drives the project row sideways on wide viewports. */
.projects-section{margin-top:24px;margin-bottom:0}
.projects-content{max-width:1240px;margin:0 auto;padding:0 clamp(16px,4vw,48px);width:100%}
.project-window{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#9a958b transparent}
.project-track{width:max-content}
.project-group{display:flex;gap:32px}
.project-card{width:min(350px,78vw);flex:none}
.project-card>a:first-child,.project-card>.unibox-visual,.project-card>.barrapp-visual{height:auto;aspect-ratio:4 / 3}
.projects-section.has-scroll .projects-sticky{position:sticky;top:0}
.projects-section.has-scroll .project-window{overflow:hidden}
.projects-section.has-scroll .project-track{will-change:transform}
.barrapp-visual{display:flex;align-items:center;justify-content:center;gap:10px;aspect-ratio:4 / 3;overflow:hidden;background:#e9e5dc;padding:12px;box-sizing:border-box}
.barrapp-visual video{display:block;height:100%;width:auto;max-width:calc(50% - 5px);object-fit:contain;border-radius:18px;box-shadow:0 0 0 1px #d5d0c5,0 10px 24px #11111014;background:#f4f2ed}
.unibox-visual{aspect-ratio:4 / 3;display:block;overflow:hidden;background:#eceae4}
.unibox-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
