@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-paper:oklch(99% .003 260);--color-paper-2:oklch(96.5% .005 260);--color-paper-3:oklch(93% .007 260);--color-ink:oklch(20% .012 260);--color-ink-2:oklch(44% .014 260);--color-ink-3:oklch(58% .012 260);--color-rule:oklch(88% .008 260);--color-rule-strong:oklch(76% .012 260);--color-accent:oklch(55% .19 265);--color-danger:oklch(54% .2 25);--color-success:oklch(52% .14 150);--color-on-ink:oklch(99% .003 260);--color-overlay:oklch(20% .012 260/.08);--font-display:"Geist Variable", ui-sans-serif, sans-serif;--font-body:"Geist Variable", ui-sans-serif, sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:clamp(2rem, 4vw, 3.25rem);--text-display:clamp(2.6rem, 6vw, 5.2rem);--radius-sm:.375rem;--radius-md:.625rem;--radius-lg:1rem;--radius-pill:999px;--rule-hair:1px;--shadow-nav:0 .75rem 2.5rem -1.25rem var(--color-overlay);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-short:.12s;--dur-medium:.22s;--dur-long:.36s}*,:before,:after{box-sizing:border-box}html,body{min-width:0;margin:0;overflow-x:clip}html{background:var(--color-paper);color:var(--color-ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body);scroll-behavior:smooth}body{text-rendering:optimizelegibility;min-height:100vh;line-height:1.55}main{min-height:70vh;padding-top:var(--space-4xl);display:block}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration-thickness:var(--rule-hair);text-underline-offset:.2em}button,input,select,textarea{color:inherit;font:inherit}button,.button{background:var(--color-ink);border:var(--rule-hair) solid var(--color-ink);border-radius:var(--radius-pill);color:var(--color-on-ink);cursor:pointer;font-size:var(--text-sm);align-items:center;gap:var(--space-xs);min-height:2.75rem;padding:var(--space-sm) var(--space-lg);white-space:nowrap;transition:transform var(--dur-short) var(--ease-out), opacity var(--dur-short) var(--ease-out), background-color var(--dur-short) var(--ease-out);justify-content:center;font-weight:650;text-decoration:none;display:inline-flex}button:hover,.button:hover,button.is-hover,.button.is-hover{opacity:.82}button:focus-visible,.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}button:active,.button:active,button.is-active,.button.is-active{transform:translateY(1px)}button:disabled,.button[aria-disabled=true],button[data-state=loading]{cursor:not-allowed;opacity:.45;pointer-events:none}button[data-state=error]{background:var(--color-danger);border-color:var(--color-danger)}button[data-state=success]{background:var(--color-success);border-color:var(--color-success)}.button.secondary,button.secondary{background:var(--color-paper);border-color:var(--color-rule-strong);color:var(--color-ink)}.shell{width:100%;min-width:0;max-width:82rem;margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}.nav-pill{background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-pill);box-shadow:var(--shadow-nav);align-items:center;gap:var(--space-lg);inset:var(--space-md) auto auto 50%;max-width:45rem;padding:var(--space-xs) var(--space-xs) var(--space-xs) var(--space-lg);z-index:50;justify-content:space-between;width:calc(100% - 2rem);display:flex;position:fixed;transform:translate(-50%)}.wordmark{align-items:center;gap:var(--space-xs);letter-spacing:-.035em;white-space:nowrap;font-weight:780;text-decoration:none;display:inline-flex}.wordmark-mark{background:var(--color-ink);color:var(--color-on-ink);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:-.08em;border-radius:50%;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:inline-flex}.nav-links{align-items:center;gap:var(--space-lg);margin:0 0 0 auto;padding:0;list-style:none;display:flex}.nav-links a:not(.button){font-size:var(--text-sm);white-space:nowrap;font-weight:580;text-decoration:none}.mobile-nav{margin-left:auto;display:none;position:relative}.mobile-nav summary{cursor:pointer;min-height:2.75rem;padding-inline:var(--space-md);white-space:nowrap;align-items:center;font-weight:650;display:flex}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav-panel{background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-md);box-shadow:var(--shadow-nav);gap:var(--space-xs);min-width:12rem;padding:var(--space-sm);right:0;top:calc(100% + var(--space-xs));display:grid;position:absolute}.mobile-nav-panel a{min-height:2.75rem;padding:var(--space-sm);white-space:nowrap;text-decoration:none}.page-head{align-items:end;gap:var(--space-2xl);padding-block:var(--space-3xl) var(--space-2xl);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);display:grid}.page-head h1,.display-title{font-family:var(--font-display);font-size:var(--text-3xl);letter-spacing:-.045em;overflow-wrap:anywhere;min-width:0;margin:0;line-height:1.02}.page-head p{color:var(--color-ink-2);font-size:var(--text-lg);max-width:60ch;margin:0}.directory-summary{color:var(--color-ink-3);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;margin:0 0 var(--space-md);text-transform:uppercase}.search-band{background:var(--color-paper-2);border-block:var(--rule-hair) solid var(--color-rule);padding-block:var(--space-lg)}.search-form{align-items:end;gap:var(--space-sm);grid-template-columns:minmax(0,1fr) minmax(10rem,.28fr) auto;display:grid}.search-form-wide{grid-template-columns:minmax(0,1fr) minmax(10rem,.28fr) minmax(8rem,.2fr) auto}.field{gap:var(--space-xs);min-width:0;display:grid}.field label,.field-label{font-size:var(--text-sm);font-weight:650}input,select,textarea{background:var(--color-paper);border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-md);min-height:2.875rem;padding:var(--space-sm) var(--space-md);transition:border-color var(--dur-short) var(--ease-out);width:100%}textarea{resize:vertical;min-height:10rem}input:hover,select:hover,textarea:hover{border-color:var(--color-ink-3)}input:disabled,select:disabled,textarea:disabled{background:var(--color-paper-3);color:var(--color-ink-3);cursor:not-allowed}input:invalid:not(:placeholder-shown),textarea:invalid:not(:placeholder-shown){border-color:var(--color-danger)}input:valid:not(:placeholder-shown),textarea:valid:not(:placeholder-shown){border-color:var(--color-success)}.section-band{padding-block:var(--space-3xl)}.section-band+.section-band{border-top:var(--rule-hair) solid var(--color-rule)}.section-head{align-items:baseline;gap:var(--space-lg);margin-bottom:var(--space-xl);justify-content:space-between;display:flex}.section-head h2{font-size:var(--text-2xl);letter-spacing:-.035em;overflow-wrap:anywhere;min-width:0;margin:0}.section-head a{font-size:var(--text-sm);white-space:nowrap;font-weight:650}.category-grid{gap:var(--rule-hair);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.category-link{background:var(--color-paper-2);gap:var(--space-lg);min-height:10rem;padding:var(--space-lg);text-decoration:none;display:grid}.category-link:hover{background:var(--color-paper-3)}.category-link strong{font-size:var(--text-xl);letter-spacing:-.025em}.category-link span{color:var(--color-ink-2);font-size:var(--text-sm)}.category-count{color:var(--color-ink-3);font-family:var(--font-mono);font-size:var(--text-xs);align-self:end}.project-grid{gap:var(--space-xl) var(--space-lg);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.project-card{gap:var(--space-sm);min-width:0;display:grid;position:relative}.project-card-media{aspect-ratio:4/3;background:var(--color-paper-2);border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-md);justify-content:center;align-items:center;text-decoration:none;display:flex;overflow:hidden}.project-card-media img{object-fit:contain;height:100%;padding:var(--space-xl);transition:transform var(--dur-medium) var(--ease-out);width:100%}.project-card-media:hover img{transform:scale(1.02)}.project-initials{font-family:var(--font-display);font-size:var(--text-3xl);letter-spacing:-.06em;font-weight:780}.project-card-title-row{align-items:baseline;gap:var(--space-sm);justify-content:space-between;display:flex}.project-card h3{font-size:var(--text-md);min-width:0;margin:0}.project-card h3 a{text-decoration:none}.project-card p{color:var(--color-ink-2);font-size:var(--text-sm);margin:0}.project-meta{color:var(--color-ink-3);font-family:var(--font-mono);font-size:var(--text-xs);align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.vote-form{margin:0}.vote-button,.vote-link{background:var(--color-paper);border-color:var(--color-rule-strong);color:var(--color-ink);font-family:var(--font-mono);font-size:var(--text-xs);min-width:3.25rem;min-height:2.25rem;padding:var(--space-xs) var(--space-sm)}.vote-button[aria-pressed=true]{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-on-ink)}.notice{background:var(--color-paper-2);border-left:3px solid var(--color-ink);margin-bottom:var(--space-lg);padding:var(--space-md)}.notice.error{border-color:var(--color-danger)}.form-card,.content-card{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-lg);max-width:44rem;margin-inline:auto;padding:clamp(1.25rem,5vw,3rem)}.form-stack{gap:var(--space-lg);display:grid}.form-note{color:var(--color-ink-2);font-size:var(--text-sm)}.honeypot{position:absolute;left:-9999px}.empty-state{border:var(--rule-hair) dashed var(--color-rule-strong);color:var(--color-ink-2);padding:var(--space-2xl);text-align:center}.project-detail{gap:var(--space-3xl);padding-block:var(--space-3xl);grid-template-columns:minmax(0,1fr) minmax(15rem,.34fr);display:grid}.project-detail h1{font-size:var(--text-display);letter-spacing:-.06em;margin:0 0 var(--space-lg);overflow-wrap:anywhere;min-width:0;line-height:.95}.project-detail-lede{color:var(--color-ink-2);font-size:var(--text-xl);margin:0 0 var(--space-2xl)}.project-description{font-size:var(--text-lg);white-space:pre-line;max-width:65ch}.project-aside{background:var(--color-paper-2);border-radius:var(--radius-md);align-self:start;gap:var(--space-lg);padding:var(--space-lg);display:grid}.project-aside dl{gap:var(--space-md);margin:0;display:grid}.project-aside dt{color:var(--color-ink-3);font-size:var(--text-xs);text-transform:uppercase;font-weight:650}.project-aside dd{margin:var(--space-2xs) 0 0}.account-list{border-top:var(--rule-hair) solid var(--color-rule)}.account-row{border-bottom:var(--rule-hair) solid var(--color-rule);align-items:center;gap:var(--space-lg);padding-block:var(--space-lg);grid-template-columns:minmax(0,1fr) auto auto;display:grid}.status{border:var(--rule-hair) solid var(--color-rule-strong);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-2xs) var(--space-sm);white-space:nowrap}.account-actions{margin-top:var(--space-2xl)}.site-footer{margin-top:var(--space-4xl);padding-bottom:var(--space-xl)}.footer-line{border-top:var(--rule-hair) solid var(--color-rule);color:var(--color-ink-2);font-size:var(--text-xs);align-items:center;gap:var(--space-md);padding-top:var(--space-lg);justify-content:space-between;display:flex}.footer-links{gap:var(--space-md);display:flex}.footer-links a{white-space:nowrap}@media (width<=64rem){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=48rem){.nav-links{display:none}.mobile-nav{display:block}.nav-pill{max-width:calc(100% - 2rem);padding-left:var(--space-sm);width:auto}.page-head,.project-detail{grid-template-columns:minmax(0,1fr)}.page-head{align-items:start;gap:var(--space-lg)}.search-form{grid-template-columns:minmax(0,1fr);align-items:stretch}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{flex-direction:column;align-items:start}.account-row{grid-template-columns:minmax(0,1fr);align-items:start}}@media (width<=32rem){main{padding-top:var(--space-3xl)}.wordmark-name{display:none}.project-grid,.category-grid{grid-template-columns:minmax(0,1fr)}.project-card-media{aspect-ratio:16/9}.footer-line,.footer-links{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
