:root{--color-bg:#000505;--color-ink:#fff6e2;--color-surface:#171310;--color-accent:#ff8200;--color-accent-2:#a71127;--color-muted:#629677;--color-highlight-bg:var(--color-accent);--color-highlight-text:var(--color-ink);--font-display:Helvetica, Arial, sans-serif;--font-mono:"Courier New", Courier, Monaco, monospace;--border-width:2px;--radius:0px;--space-page:clamp(1.25rem, 4vw, 3rem);--max-width:72rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-mono);color:var(--color-ink);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;font-weight:700;line-height:1.55}h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:700}a{color:inherit;text-decoration:none}::selection{background:var(--color-highlight-bg);color:var(--color-highlight-text)}:focus-visible{outline:var(--border-width) solid var(--color-accent);outline-offset:2px}.nav-card{border:var(--border-width) solid var(--color-ink);background:var(--color-surface);width:100%}.nav-card ul{margin:0;padding:0;list-style:none}.nav-card li+li{border-top:var(--border-width) solid var(--color-ink)}.nav-card a{font-family:var(--font-mono);text-transform:lowercase;letter-spacing:.04em;padding:.85rem 1.25rem;font-weight:700;transition:background .12s,color .12s;display:block}.nav-card a:hover,.nav-card a:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);outline:none}.social-links{justify-content:center;gap:.85rem;display:flex}.social-links a{color:var(--color-ink);opacity:.8;transition:opacity .12s,color .12s;display:flex}.social-links a:hover,.social-links a:focus-visible{opacity:1;color:var(--color-accent);outline:none}.site-footer{z-index:30;background:var(--color-bg);padding:clamp(.65rem, 2vw, 1rem) var(--space-page);position:fixed;bottom:0;left:0;right:0}.site-footer nav{max-width:var(--max-width);flex-wrap:wrap;justify-content:center;gap:.5rem clamp(.75rem,2vw,1.5rem);margin:0 auto;display:flex}.site-footer a{font-family:var(--font-mono);text-transform:lowercase;padding:.15rem .3rem;font-size:.8125rem;font-weight:700;transition:background .12s,color .12s}.site-footer a:hover,.site-footer a:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);outline:none}.hub{min-height:100vh;padding:var(--space-page);justify-content:center;align-items:center;display:flex}.hub__card{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:24rem;display:flex}.hub__name{font-size:clamp(1.5rem,5vw,2.25rem);font-weight:700}.hub__tagline{color:var(--color-muted);margin:0;font-size:.875rem}.back-link{font-family:var(--font-mono);text-transform:lowercase;margin-bottom:2rem;font-weight:700;transition:background .12s,color .12s;display:inline-block}.back-link:hover,.back-link:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);outline:none}.about{min-height:100vh;padding:var(--space-page);max-width:var(--max-width);margin:0 auto}.about__intro{flex-wrap:wrap;align-items:center;gap:clamp(1.5rem,4vw,3rem);display:flex}.about__photo{border:var(--border-width) solid var(--color-ink);width:auto;height:clamp(16rem,40vh,24rem);display:block}.about__content{flex:1;min-width:16rem}.about__heading{margin-bottom:1rem;font-size:clamp(2rem,6vw,3.5rem)}.about__lead{font-family:var(--font-mono);max-width:32ch;margin:0;font-size:clamp(1rem,2vw,1.25rem);font-weight:700}.project-card{flex-direction:column;gap:.5rem;display:flex}.project-card__thumb{aspect-ratio:16/10;border:var(--border-width) solid var(--color-ink);background:var(--color-surface)}.project-card__title{font-family:var(--font-mono);text-transform:lowercase;margin:0;font-size:.875rem;font-weight:700}.project-card__description{font-family:var(--font-mono);color:var(--color-muted);margin:0;font-size:.8rem}.project-card--featured .project-card__thumb{aspect-ratio:16/9}.project-card--featured .project-card__title{font-size:1.1rem}.filter-section{border-bottom:1px solid var(--color-muted);padding:1rem 0}.filter-section__header{width:100%;color:var(--color-ink);font-family:var(--font-mono);text-transform:lowercase;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;font-size:.9rem;font-weight:700;display:flex}.filter-section__list{flex-direction:column;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.filter-option{font-family:var(--font-mono);cursor:pointer;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.filter-option input[type=checkbox]{accent-color:var(--color-accent);width:1rem;height:1rem}.filter-option__count{color:var(--color-muted);margin-left:auto}.filter-drawer-overlay{z-index:40;background:#00050599;justify-content:flex-end;display:flex;position:fixed;inset:0}.filter-drawer{background:var(--color-bg);border-left:var(--border-width) solid var(--color-ink);flex-direction:column;width:min(20rem,100%);height:100%;display:flex;overflow-y:auto}.filter-drawer__header{border-bottom:var(--border-width) solid var(--color-ink);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.filter-drawer__title{font-family:var(--font-mono);text-transform:lowercase;letter-spacing:.05em;font-weight:700}.filter-drawer__close{color:var(--color-ink);cursor:pointer;background:0 0;border:none;padding:.15rem .5rem;font-size:1.25rem;line-height:1}.filter-drawer__close:hover,.filter-drawer__close:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);outline:none}.filter-drawer__body{flex:1;padding:0 1.25rem}.filter-drawer__dates{flex-direction:column;gap:.65rem;margin-top:.75rem;display:flex}.filter-drawer__dates label{font-family:var(--font-mono);text-transform:lowercase;flex-direction:column;gap:.3rem;font-size:.8rem;display:flex}.filter-drawer__dates input[type=month]{font-family:var(--font-mono);background:var(--color-surface);color:var(--color-ink);border:var(--border-width) solid var(--color-ink);padding:.4rem .6rem;font-weight:700}.filter-drawer__footer{border-top:var(--border-width) solid var(--color-ink);gap:.75rem;padding:1rem 1.25rem;display:flex}.filter-drawer__footer button{font-family:var(--font-mono);text-transform:lowercase;border:var(--border-width) solid var(--color-ink);color:var(--color-ink);cursor:pointer;background:0 0;flex:1;padding:.65rem;font-weight:700}.filter-drawer__footer button:hover,.filter-drawer__footer button:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);border-color:var(--color-highlight-bg);outline:none}.filter-drawer__apply{background:var(--color-ink);color:var(--color-bg)}.projects{min-height:100vh;padding:var(--space-page);max-width:var(--max-width);margin:0 auto}.projects__toolbar{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:2rem;display:flex}.projects__heading{text-transform:initial;margin:0 0 2rem;font-size:clamp(2rem,6vw,3.5rem)}.projects__section-label{font-family:var(--font-mono);text-transform:lowercase;letter-spacing:.08em;color:var(--color-muted);margin:0;font-size:.85rem;font-weight:700}.projects__featured{margin-bottom:clamp(2rem,5vw,3rem)}.projects__featured-grid{grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem);margin-top:1rem;display:grid}@media (width<=48rem){.projects__featured-grid{grid-template-columns:1fr}}.projects__filter-btn{font-family:var(--font-mono);text-transform:lowercase;color:var(--color-ink);border:var(--border-width) solid var(--color-ink);cursor:pointer;background:0 0;padding:.5rem 1rem;font-weight:700}.projects__filter-btn:hover,.projects__filter-btn:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);border-color:var(--color-highlight-bg);outline:none}.projects__empty{font-family:var(--font-mono);color:var(--color-muted);grid-column:1/-1}.projects__grid{grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem);display:grid}@media (width<=48rem){.projects__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=30rem){.projects__grid{grid-template-columns:1fr}}.contribution-card{border:var(--border-width) solid var(--color-ink);background:var(--color-surface);padding:1rem 1.25rem;transition:background .12s,color .12s;display:block}a.contribution-card:hover,a.contribution-card:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);outline:none}.contribution-card__row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.contribution-card__title{font-family:var(--font-mono);text-transform:lowercase;margin:0;font-size:1rem;font-weight:700}.contribution-card__meta{font-family:var(--font-mono);text-transform:lowercase;color:var(--color-muted);white-space:nowrap;font-size:.75rem}.contribution-card__description{font-family:var(--font-mono);margin:.5rem 0 0;font-size:.85rem}.contributions{min-height:100vh;padding:var(--space-page);max-width:var(--max-width);margin:0 auto}.contributions__heading{text-transform:none;margin-bottom:2rem;font-size:clamp(2rem,6vw,3.5rem)}.contributions__section+.contributions__section{margin-top:2.5rem}.contributions__subheading{font-family:var(--font-mono);text-transform:capitalize;letter-spacing:.08em;color:var(--color-muted);margin:0 0 1rem;font-size:.85rem;font-weight:700}.contributions__list{text-transform:initial;flex-direction:column;gap:.85rem;display:flex}.like-btn,.comment-btn{font-family:var(--font-mono);border:var(--border-width) solid var(--color-ink);color:var(--color-ink);cursor:pointer;background:0 0;align-items:center;gap:.4rem;padding:.4rem .7rem;font-size:.85rem;display:inline-flex}.like-btn--active{color:var(--color-accent-2);border-color:var(--color-accent-2)}.like-btn:hover,.comment-btn:hover,.like-btn:focus-visible,.comment-btn:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);border-color:var(--color-highlight-bg);outline:none}.post-card{scroll-snap-align:start;border:var(--border-width) solid var(--color-ink);background:var(--color-surface);cursor:pointer;flex-direction:column;flex:0 0 clamp(13rem,30%,18rem);transition:transform .12s;display:flex}.post-card:hover{transform:translateY(-3px)}.post-card__cover{aspect-ratio:16/10;border-bottom:var(--border-width) solid var(--color-ink);background-position:50%;background-size:cover}.post-card__body{flex-direction:column;flex:1;gap:.35rem;padding:.85rem 1rem;display:flex}.post-card__date{font-family:var(--font-mono);text-transform:lowercase;color:var(--color-muted);font-size:.7rem}.post-card__title{margin:0;font-size:1rem}.post-card__excerpt{font-family:var(--font-mono);color:var(--color-ink);opacity:.85;margin:0;font-size:.8rem}.post-card__actions{gap:.5rem;padding:0 1rem .85rem;display:flex}.modal-overlay{z-index:50;background:#000505b3;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg);border:var(--border-width) solid var(--color-ink);width:min(28rem,100%);max-height:90vh;padding:1.75rem;position:relative;overflow-y:auto}.modal__title{margin:0 0 .5rem;font-size:1.25rem}.modal__desc{font-family:var(--font-mono);color:var(--color-muted);margin:0 0 1.25rem;font-size:.85rem}.modal__form{flex-direction:column;gap:.5rem;display:flex}.modal__form label{font-family:var(--font-mono);text-transform:lowercase;color:var(--color-muted);font-size:.75rem}.modal__form input,.modal__form textarea{font-family:var(--font-mono);background:var(--color-surface);color:var(--color-ink);border:var(--border-width) solid var(--color-ink);width:100%;padding:.5rem .65rem;font-weight:700}.modal__error{font-family:var(--font-mono);color:var(--color-accent-2);margin:0;font-size:.8rem}.modal__actions{gap:.75rem;margin-top:.5rem;display:flex}.btn{font-family:var(--font-mono);text-transform:lowercase;border:var(--border-width) solid var(--color-ink);cursor:pointer;color:var(--color-ink);background:0 0;padding:.6rem 1rem;font-weight:700}.btn--primary{background:var(--color-ink);color:var(--color-bg)}.btn--ghost{background:0 0}.btn:hover,.btn:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);border-color:var(--color-highlight-bg);outline:none}.btn--sm{padding:.45rem .85rem;font-size:.8rem}.modal--post{padding:2rem}.modal__close{color:var(--color-ink);cursor:pointer;background:0 0;border:none;padding:.25rem .6rem;font-size:1.5rem;line-height:1;position:absolute;top:.75rem;right:.75rem}.modal__close:hover,.modal__close:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);outline:none}.post-detail__cover{border:var(--border-width) solid var(--color-ink);width:100%;height:auto;margin-bottom:1rem}.post-detail__date{font-family:var(--font-mono);color:var(--color-muted);text-transform:lowercase;font-size:.75rem}.post-detail__title{margin:.35rem 0 .5rem;font-size:1.5rem}.post-detail__excerpt{font-family:var(--font-mono);color:var(--color-muted);margin:0 0 1.25rem;font-size:.95rem;font-weight:700}.post-detail__body{font-family:var(--font-mono);color:var(--color-ink);margin-bottom:1.25rem;font-size:.9rem;line-height:1.6}.post-detail__interactions{margin-bottom:1.5rem}.post-detail__comments-heading{font-family:var(--font-mono);text-transform:lowercase;color:var(--color-muted);margin:0 0 .85rem;font-size:.85rem}.post-detail__no-comments{font-family:var(--font-mono);color:var(--color-muted);font-size:.85rem}.comment{border-top:1px solid var(--color-muted);padding:.75rem 0}.comment__header{font-family:var(--font-mono);justify-content:space-between;font-size:.75rem;display:flex}.comment__name{color:var(--color-ink)}.comment__date{color:var(--color-muted)}.comment__body{font-family:var(--font-mono);margin:.3rem 0 0;font-size:.85rem}.comment-form{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.post-detail__login-prompt{font-family:var(--font-mono);color:var(--color-muted);margin-top:1rem;font-size:.8rem}.feed{min-height:100vh;padding:var(--space-page);max-width:var(--max-width);margin:0 auto}.feed__header{margin-bottom:2rem}.feed__title{margin:0 0 .5rem;font-size:clamp(2rem,6vw,3.5rem)}.feed__subtitle{font-family:var(--font-mono);color:var(--color-muted);margin:0}.feed__carousel{align-items:center;gap:.75rem;display:flex}.feed__arrow{border:var(--border-width) solid var(--color-ink);width:2.5rem;height:2.5rem;color:var(--color-ink);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.feed__arrow:hover,.feed__arrow:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);border-color:var(--color-highlight-bg);outline:none}.feed__track{scroll-snap-type:x mandatory;scroll-behavior:smooth;flex:1;gap:1rem;min-width:0;padding:.25rem 0;display:flex;overflow-x:auto}.feed__loading{font-family:var(--font-mono);color:var(--color-muted)}.contact{min-height:100vh;padding:var(--space-page);flex-direction:column;display:flex}.contact__content{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;display:flex}.contact__heading{margin:0;font-size:clamp(2rem,6vw,3.5rem)}.contact__email{font-family:var(--font-mono);padding:.4rem .2rem;font-size:clamp(1rem,2vw,1.25rem);font-weight:700;transition:background .12s,color .12s}.contact__email:hover,.contact__email:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);outline:none}.contact__form{text-align:left;flex-direction:column;gap:.5rem;width:100%;max-width:24rem;display:flex}.contact__form label{font-family:var(--font-mono);text-transform:lowercase;color:var(--color-muted);font-size:.75rem}.contact__form input,.contact__form textarea{font-family:var(--font-mono);background:var(--color-surface);color:var(--color-ink);border:var(--border-width) solid var(--color-ink);width:100%;padding:.5rem .65rem;font-weight:700}.contact__submit{font-family:var(--font-mono);text-transform:lowercase;border:var(--border-width) solid var(--color-ink);background:var(--color-ink);color:var(--color-bg);cursor:pointer;align-self:flex-start;margin-top:.5rem;padding:.6rem 1.2rem;font-weight:700}.contact__submit:hover,.contact__submit:focus-visible{background:var(--color-highlight-bg);color:var(--color-highlight-text);border-color:var(--color-highlight-bg);outline:none}
