.index-hd{padding:80px 0 40px;border-bottom:1px solid var(--rule)}.index-hd .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--redwood);margin-bottom:20px}.index-hd h1{font-family:var(--serif);font-weight:500;font-size:clamp(48px,6.5vw,84px);line-height:1;letter-spacing:-1.2px;margin:0;max-width:18ch}.index-hd h1 em{font-style:italic;color:var(--redwood);font-weight:400}.index-hd .lede{font-family:var(--sans);font-size:16.5px;line-height:1.6;color:var(--ink-soft);margin-top:24px;max-width:56ch}.filters{padding:20px 0;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase}.filters .inner{display:flex;gap:18px;flex-wrap:wrap;color:var(--ink-mute)}.filters a{color:var(--ink-soft);text-decoration:none;padding:6px 12px;border:1px solid var(--rule-strong);border-radius:30px}.filters a.on{color:var(--paper);background:var(--ink);border-color:var(--ink)}html[data-theme=dark] .filters a.on{color:var(--ink);background:var(--ink);border-color:var(--ink)}.index-grid{padding:56px 0 96px;display:grid;grid-template-columns:repeat(12,1fr);gap:20px}.prj{grid-column:span 6;background:var(--paper-2);border:1px solid var(--rule-strong);border-radius:12px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .2s,border-color .2s;display:flex;flex-direction:column}.prj:hover{transform:translateY(-2px);border-color:var(--ink)}.prj.wide{grid-column:span 8}.prj.narrow{grid-column:span 4}.prj.hero{grid-column:span 12}.prj .mat{padding:20px 20px 0}.prj .thumb{aspect-ratio:16/10;border-radius:8px;border:1px solid var(--rule-strong);overflow:hidden;background:var(--paper-3);position:relative}.prj.hero .thumb{aspect-ratio:21/9}.prj .thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;filter:saturate(.58) contrast(.96)}html[data-theme=dark] .prj .thumb img{filter:saturate(.5) contrast(.95) brightness(.82)}.prj .body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:8px}.prj .tg{font-family:var(--mono);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--moss)}.prj h3{font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.15;letter-spacing:-.3px;margin:0}.prj.hero h3{font-size:36px;line-height:1.05;max-width:22ch}.prj p{font-family:var(--sans);font-size:13.5px;line-height:1.55;color:var(--ink-soft);margin:0}.prj .kpis{display:flex;gap:18px;margin-top:10px;padding-top:12px;border-top:1px dashed var(--rule-strong)}.prj .kpis .k{font-family:var(--mono);font-size:10.5px;color:var(--ink-soft)}.prj .kpis .k b{display:block;font-family:var(--serif);font-weight:500;font-size:17px;color:var(--ink);font-style:italic;letter-spacing:-.01em;margin-bottom:2px}.prj.placeholder .thumb{background:repeating-linear-gradient(45deg,var(--paper-3) 0 12px,var(--paper-2) 12px 24px)}.prj.placeholder .thumb:after{content:"— reserved —";font-family:var(--mono);font-size:11.5px;letter-spacing:.15em;color:var(--ink-soft);text-transform:uppercase;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--paper);padding:4px 10px;border:1px solid var(--rule-strong);border-radius:20px}.archive{padding:64px 0 96px;background:var(--paper-2);border-top:1px solid var(--rule)}.archive h2{font-family:var(--serif);font-weight:500;font-size:32px;letter-spacing:-.4px;margin:0 0 28px;line-height:1.02}.archive h2 em{font-style:italic;color:var(--moss);font-weight:400}.arch-row{display:grid;grid-template-columns:1fr 2fr 1fr 1fr;gap:20px;padding:18px 0;border-top:1px solid var(--rule-strong);font-family:var(--sans);font-size:14.5px;align-items:baseline}.arch-row .year{font-family:var(--mono);font-size:12px;color:var(--ink-mute);letter-spacing:.04em}.arch-row .name{font-family:var(--serif);font-weight:500;font-size:18px;letter-spacing:-.2px}.arch-row .name em{font-style:italic;color:var(--moss);font-weight:400}.arch-row .kind{color:var(--ink-soft);font-size:13.5px}.arch-row .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;color:var(--redwood);text-transform:uppercase;text-align:right}.arch-row.first{border-top:1.5px solid var(--ink)}@media(max-width:900px){.prj,.prj.wide,.prj.narrow,.prj.hero{grid-column:span 12}.arch-row{grid-template-columns:1fr 1fr}}
