:root{--paper:#f2efe7;--ink:#141410;--blue:#2147f5;--rule:rgba(20,20,16,.16)}
*,*::before,*::after{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Archivo,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--blue);text-underline-offset:4px}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.skip{position:fixed;top:-100px;left:10px;z-index:20;background:var(--paper);padding:12px}.skip:focus{top:8px}
.site-nav{position:sticky;top:0;z-index:10;min-height:56px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(242,239,231,.93);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--rule);font:12px 'Space Mono',monospace;text-transform:uppercase}.site-nav a{text-decoration:none;display:inline-flex;min-height:44px;align-items:center}.wordmark{color:var(--ink);font-weight:700;letter-spacing:.18em;white-space:nowrap}.nav-toggle{display:none}.nav-links{display:flex;gap:22px}.nav-links a{letter-spacing:.04em;min-width:44px;justify-content:center}
.project-main,.index-main{max-width:1200px;margin:auto;padding:0 28px}.project-intro{padding:100px 0 56px;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:end}h1{font:400 clamp(64px,8.3vw,126px)/.88 'Instrument Serif',Georgia,serif;letter-spacing:-.035em;margin:0;overflow-wrap:anywhere}.description{font-size:clamp(19px,2vw,26px);line-height:1.35;margin:0;max-width:620px}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.action{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:10px 15px;border:1px solid var(--ink);color:var(--ink);text-decoration:none;font:700 12px 'Space Mono',monospace;text-transform:uppercase}.action.primary{background:var(--blue);border-color:var(--blue);color:#fff}.action:hover{background:var(--ink);color:var(--paper)}.action.icon-action{width:48px;padding:0}.play{font:16px Arial,sans-serif}.github-icon{display:block;width:20px;height:20px;object-fit:cover;border-radius:50%}.book-icon{width:32px;height:32px;display:block;background:currentColor;mask:url('/assets/icons/book.png') center/contain no-repeat}
.project-image{margin:0 0 70px}.project-image img{display:block;width:100%;height:auto}.project-image.is-phone img{max-width:390px;margin:auto}.credit{font-size:12px;margin-top:8px}.details{padding:48px 0 64px;border-top:1px solid var(--rule)}.details h2{font:400 clamp(39px,5vw,65px)/1 'Instrument Serif',Georgia,serif;letter-spacing:-.02em;margin:0;max-width:800px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:28px;margin-top:36px}.detail-grid article{border-top:1px solid var(--rule);padding-top:19px}.detail-grid h3{font-size:19px;line-height:1.25;margin:0 0 12px}.detail-grid p,.section-copy{font-size:16px;line-height:1.6;margin:0;max-width:700px}.section-copy{margin-top:25px}.native-demo{display:block;width:min(390px,100%);height:650px;border:1px solid var(--rule);margin:32px auto 0;background:#fff}
.index-intro{padding:80px 0 55px}.index-intro h1{font-size:clamp(76px,10vw,142px)}.gallery{position:relative;width:100%;max-width:1000px;margin:0 auto 100px}.hardware-gallery{aspect-ratio:100/266.11}.gallery .ci{position:absolute;display:block;overflow:hidden;border-radius:2px;box-shadow:0 2px 14px #0002}.gallery .cm{display:block;width:100%;height:100%;object-fit:cover}.software-gallery{display:block;columns:2;column-gap:4%}.software-gallery .ci{position:relative;width:100%;overflow:visible;box-shadow:none;margin:0 0 28px;break-inside:avoid}.software-gallery .ci:nth-child(3n){width:72%;margin-left:20%}.gallery-project{display:block;overflow:hidden;box-shadow:0 2px 14px #0002;transition:transform .2s}.gallery-project:hover{transform:scale(1.02)}.software-gallery .cm{height:auto;object-fit:initial}.gallery-github{position:absolute;top:8px;right:8px;width:44px;height:44px;opacity:0;border-radius:50%;overflow:hidden;box-shadow:0 2px 10px #0004}.gallery-github img{width:100%;height:100%;object-fit:cover}.ci:hover .gallery-github,.ci:focus-within .gallery-github{opacity:1}
footer{border-top:1.5px solid var(--ink);padding:34px 28px;display:flex;justify-content:space-between;align-items:center;gap:14px;font:12px 'Space Mono',monospace}footer a{color:var(--ink);display:inline-flex;align-items:center;min-height:44px}
@media(max-width:650px){.site-nav{padding:0 14px;font-size:12px}.wordmark{letter-spacing:.12em}.nav-toggle{display:flex;width:44px;height:44px;align-items:center;justify-content:center;border:0;background:transparent;color:var(--ink);cursor:pointer}.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{display:block;width:20px;height:2px;background:currentColor;position:relative}.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0}.nav-toggle span::before{top:-6px}.nav-toggle span::after{top:6px}.nav-links{display:none;position:absolute;top:55px;right:0;left:0;background:var(--paper);border-bottom:1px solid var(--rule);padding:8px 14px 12px}.nav-links.is-open{display:flex;flex-direction:column;gap:0}.nav-links a{min-height:44px;justify-content:flex-start;letter-spacing:.04em}.actions{gap:8px}.action{padding:10px 10px;font-size:11px}.action.icon-action{padding:0;min-width:44px;width:44px}.project-main,.index-main{padding:0 20px}.project-intro{grid-template-columns:1fr;gap:24px;padding:60px 0 36px}.project-intro h1{font-size:clamp(59px,15vw,84px)}.description{font-size:19px}.project-image{margin-bottom:40px}.details{padding:38px 0 45px}.detail-grid{grid-template-columns:1fr;gap:22px;margin-top:28px}.index-intro{padding:55px 0 40px}.hardware-gallery{aspect-ratio:auto;display:flex;flex-wrap:wrap;gap:16px 4%}.hardware-gallery .ci{position:relative;inset:auto!important;width:48%!important;height:auto!important}.hardware-gallery .ci:nth-child(5n+1),.hardware-gallery .ci:nth-child(7n+3){width:80%!important}.hardware-gallery .ci:nth-child(5n+1){margin-right:20%}.hardware-gallery .ci:nth-child(7n+3){margin-left:20%}.hardware-gallery .cm{height:auto;aspect-ratio:var(--ratio,4/3);object-fit:cover}.software-gallery .ci{margin-bottom:16px}.software-gallery .ci:nth-child(3n){width:80%;margin-left:15%}.gallery-github{opacity:1}footer{flex-wrap:wrap}}
@media(hover:none){.gallery-github{opacity:1}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
