:root{--background:#faf6f1;--foreground:#241a14;--surface:#fff;--hairline:#e9ddd1;--brand:#7b4b2a;--dark:#2e1b10;--muted:#665c54;--tint:#f3e9e0;--font-sans:"Geist",ui-sans-serif,system-ui,sans-serif;--font-display:"Fraunces",Georgia,serif;color-scheme:light;font:16px/1.7 var(--font-sans)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.4;background-image:radial-gradient(rgba(123,75,42,.04) .5px,transparent .5px);background-size:4px 4px}::selection{background:#e6d2c2;color:var(--dark)}a{color:var(--brand);text-underline-offset:.25em}a:hover{text-decoration-thickness:2px}a:focus-visible,summary:focus-visible{outline:3px solid var(--brand);outline-offset:5px}.wrap{max-width:1080px;margin:auto;padding:0 28px}.masthead{position:sticky;top:0;z-index:10;background:rgba(250,246,241,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--hairline)}.nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:inline-flex;align-items:center;gap:9px;font:600 1.3rem var(--font-display);text-decoration:none;color:var(--dark);white-space:nowrap}.brand>span .accent{margin-left:0}.accent{color:var(--brand)}.brand-divider{font:400 1.3rem var(--font-sans);color:#b8a99e;margin:0 6px}.brand-label{font:500 .9rem var(--font-sans);color:var(--muted)}.nav-links{display:flex;gap:25px}.nav-links a{font-size:.9rem;text-decoration:none;color:var(--muted)}h1,h2,h3{font-family:var(--font-display);font-weight:500;color:var(--dark)}h1{font-size:clamp(2.6rem,5.8vw,4.3rem);line-height:1.1;letter-spacing:-.04em;margin:22px 0 26px}h2{font-size:clamp(1.8rem,3.4vw,2.65rem);line-height:1.2;letter-spacing:-.025em;margin:14px 0 22px}h3{font-size:1.55rem;line-height:1.25;margin:15px 0}.hero{padding-top:75px;padding-bottom:64px;max-width:880px}.hero p.intro{max-width:670px}.eyebrow{font:500 .8rem/1.5 var(--font-sans);text-transform:uppercase;letter-spacing:.13em;color:var(--brand)}.intro{font-size:1.15rem;line-height:1.8;color:var(--muted);max-width:720px}.intro.small{font-size:1rem}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:11px 19px;border-radius:8px;text-decoration:none;font-size:.95rem;font-weight:600;background:var(--brand);color:white;border:1px solid var(--brand)}.button.secondary{background:transparent;color:var(--brand);border-color:#d4b39b}.button:hover{background:#623a20;color:white}.section{padding-top:54px;padding-bottom:60px}.section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;border-bottom:1px solid var(--hairline);padding-bottom:24px;margin-bottom:28px}.section-top h2{margin-bottom:0}.section-top p{margin:0}.projects{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--hairline);border-radius:12px;padding:27px;position:relative}.project-card:first-child{border-color:#bd8e6e;background:linear-gradient(135deg,#fff,#fbf7f4)}.card-top{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.category{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.license{display:inline-block;font:500 .75rem/1.6 var(--font-sans);border:1px solid var(--hairline);padding:2px 8px;border-radius:5px;white-space:nowrap;background:var(--background);color:var(--muted)}.project-card h3 a{text-decoration:none;color:var(--dark)}.project-card p{font-size:.95rem;color:var(--muted);margin:0 0 22px}.card-bottom{margin-top:auto;padding-top:18px;border-top:1px solid var(--hairline);display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:.875rem}.owner{color:var(--muted);font-size:.8rem}.text-link{text-decoration:none;font-weight:600}.note{font-size:.875rem;color:var(--muted)}.about{display:grid;grid-template-columns:1fr 1fr;gap:60px;border-top:1px solid var(--hairline);margin-top:20px}.about p{color:var(--muted)}.about h2{font-size:2rem}.footer{display:flex;justify-content:space-between;gap:30px;border-top:1px solid var(--hairline);padding-top:32px;padding-bottom:40px}.footer p{font-size:.8rem;color:var(--muted);margin:12px 0 0}.footer>div:last-child{text-align:right}.footer>div:last-child>a{font-size:.85rem;margin-left:20px;text-decoration:none}.breadcrumb{font-size:.85rem;color:var(--muted);margin-top:28px}.breadcrumb a{text-decoration:none}.project-hero{padding-top:38px;padding-bottom:36px}.project-hero h1{font-size:clamp(2.3rem,5vw,3.8rem);max-width:900px}.project-meta{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-top:22px;font-size:.875rem;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:44px}.panel{background:white;border:1px solid var(--hairline);border-radius:12px;padding:28px}.panel h2{font-size:1.8rem;margin-top:0}.panel p,.feature-list{color:var(--muted)}.feature-list{padding-left:22px}.feature-list li{padding:7px 0}.example{border-left:3px solid #bd8e6e;padding-left:23px;margin:27px 0;color:var(--dark);font-size:1.07rem}.example-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;color:var(--brand)}pre{padding:18px;border:1px solid var(--hairline);background:var(--background);border-radius:7px;overflow:auto;font: .85rem/1.7 "Geist Mono",ui-monospace,monospace}code{font-family:"Geist Mono",ui-monospace,monospace;font-size:.9em}.source-note{border-top:1px solid var(--hairline);padding-top:22px;margin-top:30px}.skills{border-top:1px solid var(--hairline)}.skill{display:grid;grid-template-columns:235px 1fr;gap:25px;padding:23px 0;border-bottom:1px solid var(--hairline)}.skill h3{font:500 .95rem "Geist Mono",ui-monospace,monospace;overflow-wrap:anywhere;margin:0}.skill p{color:var(--muted);font-size:.9rem;margin:0}.skill small{display:block;color:var(--muted);font-size:.75rem;margin-top:8px}details{margin-top:10px}summary{cursor:pointer;font-size:.85rem;color:var(--brand)}details pre{max-height:26rem;white-space:pre-wrap;overflow-wrap:anywhere}.skip{position:absolute;left:15px;top:-100px;background:white;padding:10px;z-index:20}.skip:focus{top:12px}.other-projects{display:flex;flex-wrap:wrap;gap:12px 24px;padding-top:18px}@media(max-width:760px){.wrap{padding-left:20px;padding-right:20px}.nav{flex-wrap:wrap;gap:12px;padding-top:15px;padding-bottom:15px}.nav-links{gap:23px;width:100%}.brand-label{font-size:.8rem}.hero{padding-top:48px;padding-bottom:38px}.projects,.about,.detail-grid{grid-template-columns:1fr}.about{gap:25px}.section{padding-top:35px;padding-bottom:40px}.section-top{align-items:flex-start;flex-direction:column;gap:10px}.project-card{padding:23px}.footer{flex-direction:column}.footer>div:last-child{text-align:left}.footer>div:last-child>a{margin:0 18px 0 0}.skill{grid-template-columns:1fr;gap:12px}.project-hero h1{overflow-wrap:anywhere}.panel{padding:23px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.star-badge{display:inline-flex;align-items:center;align-self:flex-start;line-height:1;margin:0 0 18px}.star-badge img{display:block;max-width:100%}.project-meta .star-badge{margin:0}

.card-bottom .star-it{padding:7px 12px;font-size:.85rem;gap:6px;white-space:nowrap}.card-bottom{flex-wrap:wrap}
