.project-shell{width:min(var(--content-width),calc(100% - 2rem));margin-inline:auto;padding-bottom:5rem;overflow-wrap:anywhere}
.project-intro{padding:3.5rem 0 2.5rem;max-width:1050px}
.project-intro h1{font-size:clamp(2.35rem,6vw,5.8rem);line-height:1.12;letter-spacing:-.045em;margin:.8rem 0 1.5rem}
.project-intro h1 span{color:var(--muted)}
.project-lead{font-size:clamp(1rem,1.8vw,1.3rem);max-width:720px;color:var(--muted);line-height:1.7}
.project-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);padding:1.25rem}
.project-filters label{display:flex;flex-direction:column;gap:.4rem;min-width:0;font-size:.85rem;font-weight:600}
.project-filters input,.project-filters select{width:100%;min-width:0;min-height:46px;font:inherit;font-size:1rem;color:var(--fg);background:var(--bg);border:1px solid var(--color-control-border);border-radius:var(--radius-control);padding:.65rem}
.project-filters .featured-check{flex-direction:row;align-items:center;min-height:44px;gap:.65rem}
.featured-check input{width:20px;min-height:20px;height:20px;accent-color:var(--accent)}
.filter-actions{display:flex;flex-wrap:wrap;gap:.6rem;align-items:end}
.project-filters button{font:inherit;cursor:pointer}
.project-results{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:2.5rem 0 1.25rem}
.project-results h2{margin:0;font-size:1.5rem;letter-spacing:-.03em}
.project-results span{color:var(--muted);font-size:.9rem}
.project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}
.project-card{min-width:0;border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden;background:var(--bg);transition:transform var(--motion-duration) var(--motion-easing),box-shadow var(--motion-duration) var(--motion-easing)}
.card-media{display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;background:var(--card);padding:.75rem}
.card-media img{display:block;width:100%;height:100%;object-fit:contain;border-radius:10px}
.card-copy{padding:1.5rem}
.project-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;font-size:.8rem;color:var(--muted)}
.featured-badge{color:var(--fg);border-left:2px solid var(--accent);padding-left:.5rem}
.card-copy h3{font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.25;margin:1rem 0 .75rem;letter-spacing:-.025em}
.card-copy h3 a{display:inline-flex;align-items:center;min-height:44px;color:var(--fg);text-decoration:none}
.card-copy p{color:var(--muted);line-height:1.7}
.status-badge{display:inline-block;font-size:.78rem;border:1px solid var(--border);border-radius:999px;padding:.25rem .65rem;color:var(--fg)}
.technology-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0}
.technology-list li{font-size:.78rem;background:var(--card);border-radius:6px;padding:.3rem .55rem;max-width:100%}
.project-links{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin-top:1rem}
.project-links a,.back-link,.case-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--fg);text-underline-offset:5px;text-decoration-color:var(--accent);text-decoration-thickness:2px;gap:.35rem}
.project-pagination{margin:2.5rem 0 0;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;align-items:center}
.projects-page .project-pagination a,.projects-page .case-nav a{display:inline-flex}
.project-empty{grid-column:1/-1;padding:3rem 1.5rem;border:1px dashed var(--border);border-radius:var(--radius-card);background:var(--card);text-align:center}
.project-empty h3{font-size:1.3rem}
.project-empty p,.gallery-hint{color:var(--muted)}
.project-detail .back-link{margin-top:1.5rem}
.project-detail .project-intro{padding-top:2rem}
.detail-cover{margin:0;background:var(--card);padding:clamp(.5rem,2vw,2rem);border-radius:var(--radius-card)}
.detail-cover img{display:block;max-width:100%;width:auto;height:auto;max-height:85vh;object-fit:contain;margin:auto;border-radius:10px}
.project-prose{max-width:var(--reading-width);padding-top:3rem;scroll-margin-top:2rem}
.project-prose h2,.gallery-section h2{font-size:clamp(1.5rem,3vw,2.35rem);letter-spacing:-.03em;line-height:1.2}
.plain-text{white-space:pre-wrap;font-size:clamp(1rem,1.3vw,1.15rem);line-height:1.85;color:var(--muted)}
.case-nav{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:2rem 0 0;padding-block:1rem;border-block:1px solid var(--border);font-size:.9rem}
.gallery-section{margin-top:4rem}
.project-gallery{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;margin-top:1.5rem;align-items:start}
.project-gallery figure{min-width:0;margin:0}
.project-gallery a{display:block;background:var(--card);border-radius:14px;padding:.5rem}
.project-gallery img{display:block;width:100%;height:auto;border-radius:10px}
.project-gallery figcaption{padding:.8rem .25rem;font-size:.9rem;color:var(--muted);white-space:pre-wrap}
@media(min-width:600px){.project-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.search-field{grid-column:1/-1}.project-grid,.project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.project-shell{width:min(var(--content-width),calc(100% - 5rem))}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.search-field{grid-column:span 2}.filter-actions{grid-column:span 2;justify-content:flex-end}.project-intro{padding-block:5rem 3rem}}
@media(min-width:1600px){.project-shell{padding-bottom:7rem}.project-grid{gap:2rem}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}.project-links a:hover,.back-link:hover,.case-nav a:hover{text-decoration-thickness:3px}}
@media(prefers-reduced-motion:reduce){.projects-page *, .projects-page *::before, .projects-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
