body[data-page=projects]{background:#1f241c}.projects-page{color:#f2f2f2}body[data-page=projects] .outro{background:#1f241c}.projects-hero{max-width:1100px;margin:0 auto;padding:calc(var(--vh, 1vh) * 12) 8vw calc(var(--vh, 1vh) * 8);display:flex;flex-direction:column;gap:1.25rem}.projects-hero h1{font-size:clamp(2.8rem,6vw,5rem);letter-spacing:-.04em}.projects-eyebrow{font-size:.75rem;letter-spacing:.32em;text-transform:uppercase;color:#f2f2f28c}.projects-lede{max-width:50ch;color:#f2f2f2bf}.projects-intro{padding:0 8vw calc(var(--vh, 1vh) * 8);height:calc(var(--vh, 1vh) * 75);display:flex;align-items:center;background:#f2f2f2}.projects-intro-inner{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:1rem;padding:2.5rem 2rem;border-radius:1.5rem;background:#ffffff0a;box-shadow:0 24px 60px #0003}.projects-intro h2{font-size:clamp(1.8rem,3.4vw,3rem);line-height:1.2}.projects-intro p{color:#f2f2f2bf}.projects-list{display:flex;flex-direction:column;gap:calc(var(--vh, 1vh) * 10);padding:calc(var(--vh, 1vh) * 34) 8vw calc(var(--vh, 1vh) * 14);height:auto;overflow:visible;background:#f2f2f2;scroll-margin-top:calc(var(--vh, 1vh) * 12)}.projects-list[data-position="1"]{padding-top:calc(var(--vh, 1vh) * 14)}.projects-list[data-position="2"]{background-color:#3a3059}.projects-list p,.projects-list h1,.projects-list h2{color:#1f241c}.projects-list[data-position="2"] p,.projects-list[data-position="2"] h1,.projects-list[data-position="2"] h2{color:#f0f0f0}.project-row{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(220px,1fr);gap:4vw}.project-row.reverse{grid-template-columns:minmax(220px,1fr) minmax(260px,1.2fr)}.project-row.reverse .project-media{order:2}.project-row.reverse .project-content{order:1}.project-media{position:relative;border-radius:1.25rem;overflow:hidden;background:#1c2319;box-shadow:0 24px 60px #00000059}.project-media img,.project-media video{width:100%;height:100%;display:block;object-fit:cover;aspect-ratio:4 / 3;transform:scale(1.02)}.project-meta{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:#f2f2f28c}.project-content{display:flex;flex-direction:column;gap:.75rem;color:#fff}.project-content h2{font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.1}.category-header{padding:calc(var(--vh, 1vh) * 14) 8vw calc(var(--vh, 1vh) * 6);display:flex;flex-direction:column;gap:.9rem}.category-header h2{font-size:clamp(2.4rem,7vw,5rem);letter-spacing:-.04em;line-height:.95}.category-index{font-size:.75rem;letter-spacing:.32em;text-transform:uppercase;color:#f2f2f28c}.category-section{height:auto;overflow:visible}.category-section--games{background:#1f241c}body[data-page=projects] .nav-center .nav-signature--white{opacity:1}body[data-page=projects] .nav-center .nav-signature--dark{opacity:0}.category-section--art{background:#241c2b}.category-section--photo{background:#15171b}.game-projects{padding:0 8vw calc(var(--vh, 1vh) * 14);display:grid;grid-template-columns:repeat(3,1fr);align-items:start;gap:1.25rem}.game-project{border-radius:1.25rem;overflow:hidden;background:#10130e;box-shadow:0 24px 60px #00000059}.game-project.is-open{grid-column:1 / -1}.game-project-toggle{position:relative;display:block;width:100%;padding:0;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;aspect-ratio:16 / 10.5;overflow:hidden}.game-project.is-open .game-project-toggle{aspect-ratio:16 / 7.5}.game-project-thumb{position:absolute;inset:0;width:100%;height:100%}.game-project-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.22,1,.36,1)}.game-project-toggle:hover .game-project-thumb img{transform:scale(1.05)}.game-project-text{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;flex-direction:column;gap:.3rem;padding:1.75rem;background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.1) 65%,transparent)}.game-project .project-meta{color:#f2f2f2b3}.game-project-title{font-size:clamp(1.6rem,3vw,2.8rem);line-height:1;letter-spacing:-.02em;color:#fff}.game-project-tag{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#f2f2f2b3}.game-project-icon{position:absolute;top:1.5rem;right:1.5rem;z-index:1;width:2.6rem;height:2.6rem;border-radius:999px;background:#0006;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .3s ease}.game-project-toggle:hover .game-project-icon{background:#0009}.game-project-icon:before,.game-project-icon:after{content:"";position:absolute;top:50%;left:50%;background:#fff;border-radius:2px;transform:translate(-50%,-50%)}.game-project-icon:before{width:1rem;height:2px}.game-project-icon:after{width:2px;height:1rem;transition:transform .4s ease}.game-project.is-open .game-project-icon:after{transform:translate(-50%,-50%) scaleY(0)}.game-project-detail{display:grid;grid-template-rows:0fr}.game-project.is-open .game-project-detail{grid-template-rows:1fr}.game-project-detail-inner{overflow:hidden;min-height:0}.game-detail-rows{display:flex;flex-direction:column;gap:calc(var(--vh, 1vh) * 8);padding:1.5rem 1.5rem calc(var(--vh, 1vh) * 5)}.media-grid{padding:0 8vw calc(var(--vh, 1vh) * 14);display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1.25rem}.media-card{position:relative;border-radius:1.25rem;overflow:hidden;background:#10130e;box-shadow:0 24px 60px #00000059;cursor:pointer}.media-card img{width:100%;height:100%;display:block;object-fit:cover;aspect-ratio:4 / 5;transition:transform .6s cubic-bezier(.22,1,.36,1)}.media-grid--photo .media-card img{aspect-ratio:3 / 4}.media-card:hover img{transform:scale(1.06)}.media-caption{position:absolute;left:0;right:0;bottom:0;padding:1.5rem 1.25rem 1.1rem;display:flex;flex-direction:column;gap:.15rem;background:linear-gradient(to top,#000000c7,#0000);pointer-events:none}.media-caption strong{font-size:1.05rem;font-weight:600;color:#f5f5f5}.media-caption span{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#f2f2f299}.section-nav{position:fixed;left:50%;bottom:calc(var(--vh, 1vh) * 3);transform:translate(-50%);z-index:110;display:flex;align-items:center;gap:.2rem;padding:.4rem;border-radius:999px;background:#1416128c;backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 44px #0006;transition:opacity .4s ease,transform .4s ease}.section-nav-indicator{position:absolute;top:0;left:0;width:0;height:0;border-radius:999px;background:#f2f2f2;z-index:0;pointer-events:none}.section-nav.is-ready .section-nav-indicator{transition:transform .45s cubic-bezier(.22,1,.36,1),width .45s cubic-bezier(.22,1,.36,1),height .45s cubic-bezier(.22,1,.36,1)}.section-nav-link{position:relative;z-index:1;padding:.55rem 1.15rem;border-radius:999px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#f2f2f2b3;white-space:nowrap;transition:color .35s ease;cursor:pointer}.section-nav-link:hover{color:#f2f2f2}.section-nav-link.is-active{color:#1f241c}body.nav-open .section-nav{opacity:0;pointer-events:none;transform:translate(-50%) translateY(20px)}@media(max-width:900px){.category-header{padding:calc(var(--vh, 1vh) * 12) 6vw calc(var(--vh, 1vh) * 5)}.game-projects{padding:0 6vw calc(var(--vh, 1vh) * 12);grid-template-columns:1fr}.game-project-toggle{aspect-ratio:16 / 10}.game-project.is-open .game-project-toggle{aspect-ratio:16 / 9}.game-project-text{padding:1.25rem}.game-detail-rows{padding:1rem 1rem calc(var(--vh, 1vh) * 4);gap:calc(var(--vh, 1vh) * 6)}.media-grid{padding:0 6vw calc(var(--vh, 1vh) * 12);grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:.85rem}.section-nav{gap:.1rem;padding:.3rem}.section-nav-link{padding:.5rem .85rem;font-size:.68rem;letter-spacing:.04em}}@media(max-width:900px){.projects-hero{padding:calc(var(--vh, 1vh) * 10) 6vw calc(var(--vh, 1vh) * 6)}.projects-intro{padding:0 6vw calc(var(--vh, 1vh) * 6)}.projects-intro-inner{padding:2rem 1.5rem}.projects-list{gap:calc(var(--vh, 1vh) * 8);padding:calc(var(--vh, 1vh) * 12) 6vw calc(var(--vh, 1vh) * 12);scroll-margin-top:calc(var(--vh, 1vh) * 14)}.project-row,.project-row.reverse{grid-template-columns:1fr}.project-row.reverse .project-media,.project-row.reverse .project-content{order:initial}}
