.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:4rem;display:grid}.project-intro p,.featured-projects>header p,.project-index>header p{color:var(--md-theme-primary);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .5rem;font-size:.72rem;font-weight:750}.project-intro h1{letter-spacing:-.06em;max-width:850px;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__aside>div{border-top:1px solid var(--md-outline-variant);grid-template-columns:auto 1fr auto 1fr;align-items:baseline;gap:.4rem .55rem;padding-top:1rem;display:grid}.project-intro__aside strong{color:var(--md-theme-primary);font-size:1.5rem}.project-intro__aside span{color:var(--md-on-surface-variant);font-size:.72rem}.featured-projects>header{margin-bottom:1rem}.featured-projects h2,.project-index h2{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);min-height:0;color:inherit;background:0 0;border-radius:1.5rem;flex-direction:column;text-decoration:none;transition:transform .3s,border-color .3s;display:flex;position:relative;overflow:hidden}.project-case--lead{grid-row:1/3}.project-case:hover{border-color:var(--md-theme-primary);transform:translateY(-4px)}.project-case__image{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(#0000 45%,#00047);position:absolute;inset:0}.project-case__image img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;transition:transform .6s}.project-case:hover img{transform:scale(1.035)}.project-case__image>span{z-index:1;aspect-ratio:1;color:#fff;backdrop-filter:blur(8px);background:#00040;border:1px solid #fff80;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{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:4rem}.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;grid-template-columns:2.5rem 5rem minmax(180px,1fr) minmax(180px,.8fr) auto;align-items:center;gap:1rem;padding:.85rem .5rem;text-decoration:none;transition:padding .25s,background .25s;display:grid}.project-index a:hover{background:color-mix(in srgb,var(--md-theme-primary) 5%,transparent);padding-left:1rem}.project-index__number{color:var(--md-on-surface-variant);font-size:.7rem}.project-index img{aspect-ratio:16/10;-o-object-fit:cover;object-fit:cover;border-radius:.55rem;width:5rem}.project-index strong{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:3rem}.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__aside>div{grid-template-columns:auto 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:1.1rem}}