.projects-hero{background:var(--ink);color:var(--bone);text-align:center;padding-block:var(--space-14) var(--space-12)}.projects-hero h1{letter-spacing:-.02em;margin-top:var(--space-4);font-size:clamp(2.1rem,4.6vw,3.2rem);font-weight:700}.projects-hero p{color:var(--bone-muted);max-width:60ch;margin:var(--space-5) auto 0;font-size:1.05rem}.projects-stats{max-width:720px;padding-top:var(--space-9);border-top:1px solid var(--ink-line);grid-template-columns:repeat(4,1fr);margin:44px auto 0;display:grid}.projects-stat{border-left:1px solid var(--ink-line);flex-direction:column;align-items:center;gap:6px;display:flex}.projects-stat:first-child{border-left:none}.projects-stat b{letter-spacing:-.01em;color:var(--bone);font-size:clamp(1.5rem,3vw,2rem);font-weight:700}.projects-stat span{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--bone-muted);font-size:.64rem}.projects-featured-section{background:var(--ink);padding-bottom:var(--space-13)}.featured-project{aspect-ratio:21/9;border-radius:var(--radius-soft);border:1px solid var(--ink-line);text-decoration:none;display:block;position:relative;overflow:hidden}.featured-project img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.featured-project:hover img{transform:scale(1.03)}.featured-project-overlay{background:linear-gradient(90deg,#080706e0 0%,#08070659 55%,#0000 100%);flex-direction:column;justify-content:flex-end;padding:44px;display:flex;position:absolute;inset:0}.featured-project-cat{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--cyan-on-ink);font-size:.68rem}.featured-project-overlay h2{color:var(--bone);letter-spacing:-.02em;max-width:20ch;margin-top:10px;font-size:clamp(1.6rem,3.6vw,2.4rem);font-weight:700}.featured-project-link{margin-top:var(--space-4);color:var(--accent);align-items:center;gap:6px;font-size:.9rem;font-weight:600;display:inline-flex}.category-showcase-section{padding-block:var(--space-12)}.category-showcase-section:nth-of-type(2n){background:var(--surface-2)}.category-showcase-head{justify-content:space-between;align-items:center;gap:var(--space-6);flex-wrap:wrap;margin-bottom:30px;display:flex}.category-showcase-title{align-items:center;gap:var(--space-4);display:flex}.category-showcase-icon{background:var(--surface);border:1px solid var(--line);width:52px;height:52px;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.category-showcase-title h2{letter-spacing:-.01em;font-size:1.5rem;font-weight:700}.category-showcase-title p{color:var(--text-muted);margin-top:var(--space-1);font-size:.9rem}.category-bento{grid-template-columns:repeat(4,1fr);grid-auto-rows:130px;grid-auto-flow:dense;gap:var(--space-3);display:grid}.gallery-view-more{margin-top:var(--space-6);justify-content:center;display:flex}.bento-tile{border-radius:var(--radius-soft);border:1px solid var(--line);background:var(--surface);display:block;position:relative;overflow:hidden}.bento-tile.bento-feature{grid-area:span 2/span 2}.bento-tile img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.bento-tile:hover img{transform:scale(1.08)}.bento-tile-overlay{padding:14px var(--space-3) 10px;opacity:0;background:linear-gradient(#0000 0%,#080706e0 100%);transition:opacity .2s;position:absolute;inset:auto 0 0}.bento-tile:hover .bento-tile-overlay{opacity:1}.bento-tile-overlay span{color:var(--bone);font-size:.8rem;font-weight:700}.projects-testimonials-section{background:var(--ink);padding-block:var(--space-12);overflow:hidden}.projects-testimonials-section .section-head h2,.projects-testimonials-section .eyebrow{color:var(--bone)}.projects-testimonials-section .section-head p{color:var(--bone-muted)}.review-marquee{margin-top:var(--space-10);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.review-marquee-track{gap:var(--space-4);width:max-content;animation:42s linear infinite marquee;display:flex}.review-marquee:hover .review-marquee-track{animation-play-state:paused}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.mini-review-card{background:var(--ink-surface);border:1px solid var(--ink-line);border-radius:var(--radius-soft);width:300px;padding:var(--space-5);flex:none}.mini-review-card .stars{color:var(--accent);letter-spacing:1px;margin-bottom:10px;font-size:.8rem}.mini-review-card p{color:var(--bone);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin:0 0 14px;font-size:.86rem;line-height:1.55;display:-webkit-box;overflow:hidden}.mini-review-card footer{border-top:1px dashed var(--ink-line);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--bone-muted);flex-direction:column;gap:2px;padding-top:10px;font-size:.64rem;display:flex}.mini-review-tag{color:var(--accent-text)}.projects-quote-section{background:var(--surface)}.projects-quote-section .wrap{max-width:620px}@media (width<=900px){.featured-project{aspect-ratio:4/3}.featured-project-overlay{background:linear-gradient(#0000 0%,#08070633 40%,#080706eb 100%);padding:26px}.category-bento{grid-template-columns:repeat(2,1fr)}.bento-tile-overlay{opacity:1}}@media (width<=700px){.projects-stats{row-gap:var(--space-6);grid-template-columns:1fr 1fr}.projects-stat:nth-child(3){border-left:none}.category-showcase-head{flex-direction:column;align-items:flex-start}}@media (width<=480px){.projects-stats{grid-template-columns:1fr}.projects-stat{border-left:none;border-top:1px solid var(--ink-line);padding-top:var(--space-4)}.projects-stat:first-child{border-top:none;padding-top:0}.category-bento{grid-template-columns:1fr 1fr;grid-auto-rows:110px}.bento-tile.bento-feature{grid-area:span 2/span 2}}@media (width>=901px){:is(.category-bento:has(>.bento-tile:last-child:nth-child(4n))>.bento-tile:last-child,.category-bento:has(>.bento-tile:last-child:nth-child(4n+3))>.bento-tile:nth-last-child(-n+2)){grid-column:span 2}}@media (width<=900px){.category-bento:has(>.bento-tile:last-child:nth-child(2n))>.bento-tile:last-child{grid-column:span 2}}
