:root{--surface:#262626;--shade:#1c1c1c;--light:#303030;--text:#e6e6e6;--text-dim:#a8a8a8;--accent-1:#473481;--accent-2:#7a2f82;--accent-3:#c5387a;--accent-fill:linear-gradient(135deg, var(--accent-1), var(--accent-2) 55%, var(--accent-3));--accent-text:linear-gradient(90deg, #b3a0ff, #ff86bd);--accent-focus:#ff86bd;--radius-lg:28px;--radius-md:18px;--raised-lg:-10px -10px 22px var(--light), 10px 10px 22px var(--shade);--raised-md:-5px -5px 12px var(--light), 5px 5px 12px var(--shade);--raised-sm:-3px -3px 7px var(--light), 3px 3px 7px var(--shade);--inset-md:inset 4px 4px 9px var(--shade), inset -4px -4px 9px var(--light);--inset-sm:inset 2px 2px 5px var(--shade), inset -2px -2px 5px var(--light);--font:"Segoe UI Variable", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--max:1120px}*,:before,:after{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}body{background:var(--surface);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent-focus);outline-offset:3px}.wrap{width:min(var(--max), 100% - 3rem);margin-inline:auto}.grad-text{background:var(--accent-text);color:#0000;-webkit-background-clip:text;background-clip:text}.pill{background:var(--surface);box-shadow:var(--raised-sm);border-radius:999px;align-items:center;gap:.5rem;padding:.65rem 1.4rem;font-size:.95rem;font-weight:600;transition:box-shadow .15s,transform .15s;display:inline-flex}.pill:hover{box-shadow:var(--raised-md);transform:translateY(-1px)}.pill:active{box-shadow:var(--inset-sm);transform:none}.pill[aria-current=page]{box-shadow:var(--inset-sm)}.pill.primary{background:var(--accent-fill);color:#fff}.tag{background:var(--surface);box-shadow:var(--inset-sm);color:var(--text-dim);border-radius:999px;padding:.2rem .8rem;font-size:.8rem;display:inline-block}.site-header{padding:1.75rem 0}.site-header .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand{align-items:center;gap:.15rem;font-size:1.5rem;font-weight:800;line-height:1;display:inline-flex}.brand .infinity{width:2.1rem;height:1.4rem}.site-header nav{gap:.9rem;display:flex}.site-footer{color:var(--text-dim);text-align:center;padding:3rem 0 2.5rem;font-size:.9rem}.hero{grid-template-columns:1fr 1.15fr;align-items:center;gap:3rem;padding:3rem 0 2rem;display:grid}.hero h1{margin:0 0 1rem;font-size:clamp(2.3rem,5vw,3.6rem);line-height:1.1}.hero p{color:var(--text-dim);max-width:34rem;margin:0 0 2rem;font-size:1.15rem}.hero .actions{flex-wrap:wrap;gap:1rem;display:flex}.hero-shot{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--raised-lg);padding:12px;transition:box-shadow .2s;display:block}.hero-shot:hover{box-shadow:-12px -12px 26px var(--light), 12px 12px 26px var(--shade)}.hero-shot img{border-radius:var(--radius-md);width:100%;height:auto;display:block}.shot{border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--inset-md);margin:0;padding:10px}.shot img{border-radius:12px;width:100%;height:auto;display:block}.shot figcaption{color:var(--text-dim);padding:.6rem .4rem .2rem;font-size:.85rem}.shot-lg{border-radius:var(--radius-lg);margin:2rem 0;padding:14px}.shot-lg img{border-radius:var(--radius-md)}.section-title{margin:3rem 0 1.5rem;font-size:1.6rem}.grid{grid-template-columns:repeat(auto-fill,minmax(min(420px,100%),1fr));gap:2rem;padding-bottom:2rem;display:grid}.card{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--raised-md);flex-direction:column;gap:.9rem;padding:1.75rem;transition:box-shadow .2s,transform .2s;display:flex}.card:hover{box-shadow:var(--raised-lg);transform:translateY(-3px)}.card:active{box-shadow:var(--inset-md);transform:none}.card h3{margin:0;font-size:1.25rem}.card p{color:var(--text-dim);flex:1;margin:0}.card .tags{flex-wrap:wrap;gap:.5rem;display:flex}.card .more{font-size:.9rem;font-weight:600}.card .shot{aspect-ratio:16/9;position:relative}.card .shot img{object-fit:contain;width:calc(100% - 20px);height:calc(100% - 20px);position:absolute;inset:10px}.project{padding:2.5rem 0 3rem}.project h1{margin:1.5rem 0 .25rem;font-size:clamp(2rem,5vw,3rem);line-height:1.15}.project .lede{color:var(--text-dim);max-width:40rem;margin:0 0 1.25rem;font-size:1.2rem}.project .tags{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.project .links{flex-wrap:wrap;gap:1rem;display:flex}.project .body{max-width:46rem}.project .body h2{margin:2rem 0 .75rem;font-size:1.3rem}.project .body p{margin:0 0 1rem}.project .body ul{margin:0;padding-left:1.25rem}.project .body li{margin:.5rem 0}.project .body code{background:var(--shade);border-radius:6px;padding:.1em .4em;font-size:.9em}.gallery{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:1.75rem;display:grid}@media (width<=720px){.hero{grid-template-columns:minmax(0,1fr);gap:2rem;padding-top:1.5rem}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
