.project-portfolio{padding:1.25rem 0 4rem}.project-intro{grid-template-columns:minmax(0,1.35fr) minmax(250px,.65fr);align-items:end;gap:clamp(2rem,7vw,6rem);margin-bottom:3.5rem;display:grid}.project-intro p,.featured-projects>header p,.project-index>header p{color:var(--md-theme-primary);letter-spacing:var(--md-tracking-title,.1em);text-transform:uppercase;margin:0 0 .5rem;font-size:.72rem;font-weight:750}.project-intro h1{max-width:850px;color:var(--md-on-surface);letter-spacing:-.06em;margin:0;font-size:clamp(2.2rem,6vw,5.4rem);line-height:.92}.project-intro__aside>p{color:var(--md-on-surface-variant);margin:0 0 1.25rem;line-height:1.65}.project-intro__stats{border-top:1px solid var(--md-outline-variant);grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:0;padding-top:1rem;display:grid}.project-intro__stats div{border:1px solid color-mix(in srgb, var(--md-theme-primary) 22%, var(--md-outline-variant));border-radius:var(--md-radius-lg);background:color-mix(in srgb, var(--md-theme-primary) 8%, var(--md-surface));padding:.75rem .85rem}.project-intro__stats dt{color:var(--md-on-surface-variant);font-size:.7rem}.project-intro__stats dd{color:var(--md-theme-primary);margin:.12rem 0 0;font-size:1.45rem;font-weight:750}.featured-projects>header{margin-bottom:1rem}.featured-projects h2,.project-index h2{color:var(--md-on-surface);margin:0;font-size:clamp(1.4rem,3vw,2rem)}.featured-projects__grid{grid-template-rows:repeat(2,minmax(240px,1fr));grid-template-columns:1.15fr .85fr;gap:1rem;display:grid}.project-case{border:1px solid var(--md-outline-variant);border-radius:var(--md-radius-xl);min-height:0;color:inherit;background:var(--md-surface);transition:transform .28s var(--md-motion-easing-decelerated,ease), border-color .28s var(--md-motion-easing-standard,ease), box-shadow .28s var(--md-motion-easing-standard,ease);flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden}.project-case--lead{grid-row:1/3}.project-case:hover{border-color:color-mix(in srgb, var(--md-theme-primary) 50%, var(--md-outline-variant));box-shadow:var(--md-elevation-2);transform:translateY(-3px)}.project-case:focus-visible{outline:2px solid var(--md-theme-primary);outline-offset:3px}.project-case__image{background:var(--md-surface-container-low);flex:1;min-height:170px;position:relative;overflow:hidden}.project-case--lead .project-case__image{min-height:420px}.project-case__image:after{content:"";background:linear-gradient(to top, color-mix(in srgb, var(--md-shadow) 42%, transparent), transparent 55%);pointer-events:none;position:absolute;inset:0}.project-case__image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .5s var(--md-motion-easing-decelerated,ease)}.project-case:hover img{transform:scale(1.035)}.project-case__image>span{z-index:1;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--md-on-primary) 45%, transparent);background:color-mix(in srgb, var(--md-shadow) 35%, transparent);color:#fff;backdrop-filter:blur(8px);border-radius:50%;place-items:center;width:2.2rem;font-size:.7rem;display:grid;position:absolute;top:1rem;left:1rem}.project-case__copy{grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding:1.15rem;display:grid}.project-case__copy h3{color:var(--md-on-surface);margin:0;font-size:clamp(1.05rem,2vw,1.5rem)}.project-case__copy>span{color:var(--md-theme-primary);font-size:1.4rem}.project-case__copy>div{flex-wrap:wrap;grid-column:1/-1;gap:.4rem;display:flex}.project-case__copy small{color:var(--md-on-surface-variant);font-size:.7rem}.project-case__copy small+small:before{content:"·";color:var(--md-outline);margin-right:.4rem}.project-index{margin-top:3.5rem}.project-index>header{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;display:flex}.project-index>header>span{color:var(--md-on-surface-variant);font-size:.75rem}.project-index ol{border-top:1px solid var(--md-outline-variant);margin:0;padding:0;list-style:none}.project-index li{border-bottom:1px solid var(--md-outline-variant)}.project-index a{color:inherit;transition:padding .22s var(--md-motion-easing-standard,ease), background-color .22s var(--md-motion-easing-standard,ease);grid-template-columns:2.5rem 5rem minmax(180px,1fr) minmax(180px,.8fr) auto;align-items:center;gap:1rem;padding:.85rem .5rem;text-decoration:none;display:grid}.project-index a:hover{background:color-mix(in srgb, var(--md-theme-primary) 6%, transparent);padding-left:1rem}.project-index a:focus-visible{outline:2px solid var(--md-theme-primary);outline-offset:-2px}.project-index__number{color:var(--md-on-surface-variant);font-size:.7rem}.project-index img{aspect-ratio:16/10;border-radius:var(--md-radius-sm);-o-object-fit:cover;object-fit:cover;width:5rem}.project-index strong{color:var(--md-on-surface);font-size:.95rem}.project-index__skills{color:var(--md-on-surface-variant);font-size:.75rem}.project-index__arrow{color:var(--md-theme-primary);font-size:1.25rem}@media (width<=800px){.project-intro{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2.75rem}.featured-projects__grid{grid-template-rows:auto;grid-template-columns:1fr}.project-case--lead{grid-row:auto}.project-case--lead .project-case__image,.project-case__image{min-height:clamp(220px,55vw,380px)}.project-index a{grid-template-columns:2.5rem 4.25rem minmax(0,1fr) auto}.project-index img{width:4.25rem}.project-index__skills{display:none}}@media (width<=480px){.project-intro__stats{grid-template-columns:1fr 1fr}.project-index>header{flex-direction:column;align-items:start}.project-index__number{display:none}.project-index a{grid-template-columns:4rem minmax(0,1fr) auto;gap:.7rem}.project-index img{width:4rem}.project-case{border-radius:var(--md-radius-lg)}}@media (prefers-reduced-motion:reduce){.project-case,.project-case__image img,.project-index a{transition:none}.project-case:hover,.project-case:hover img{transform:none}}
