/* Projects page: Orbit Index */
.pp2 .projects-hero{position:relative;overflow:hidden;padding:clamp(130px,18vh,190px) 0 clamp(40px,6vw,70px)}
.pp2 .projects-hero::before{content:"WORK";position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);font-size:clamp(120px,24vw,360px);font-weight:800;letter-spacing:-.04em;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(232,180,110,.16);pointer-events:none;white-space:nowrap}
.pp2 .projects-hero-inner{position:relative;z-index:1;text-align:center;display:flex;flex-direction:column;align-items:center}
.pp2 .projects-hero h1{font-size:clamp(40px,7vw,86px);line-height:1.02;letter-spacing:-.03em;margin:18px 0 16px}
.pp2 .projects-hero p{max-width:560px;margin:0 auto 28px}
.pp-orbits{position:absolute;inset:0;z-index:0;pointer-events:none;display:flex;align-items:center;justify-content:center;opacity:.9}
.pp-orbits svg{width:min(1100px,150vw);height:auto}
.pp-orbits ellipse{fill:none;stroke:rgba(232,180,110,.16);stroke-width:1}
.pp-orbits .pl{fill:url(#ppg);filter:drop-shadow(0 0 6px rgba(255,170,80,.7))}
.pp-orbits .spin{transform-origin:550px 300px;animation:ppSpin var(--d,60s) linear infinite}
@keyframes ppSpin{to{transform:rotate(360deg)}}

.pp2 .filter-wrap{overflow:visible!important}
.pp2 .filter-tabs{position:sticky;top:84px;z-index:20;width:max-content;max-width:100%;margin:0 auto;padding:6px;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-radius:999px;background:rgba(18,14,10,.55);border:1px solid rgba(255,220,170,.14);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 10px 40px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08)}
.pp2 .filter-tabs::-webkit-scrollbar{display:none}
.pp2 .filter-btn{border-radius:999px;white-space:nowrap;padding:10px 18px;border:0;background:transparent}
.pp2 .filter-btn.active{background:linear-gradient(135deg,#ffd08a,#e8873a);color:#1a1206;box-shadow:0 4px 18px rgba(232,135,58,.4)}
.pp2 .projects-count{text-align:center;letter-spacing:.14em;text-transform:uppercase;font-size:12px;opacity:.7;margin-bottom:28px}

/* featured stack */
.pp2 .projects-grid{gap:0;padding-bottom:40px}
.pp2 .proj-card{position:sticky;top:150px;display:block;min-height:min(78vh,640px);margin-bottom:9vh;border-radius:36px;overflow:hidden;border:1px solid rgba(255,220,170,.16);background:#0d0b09;box-shadow:0 30px 80px rgba(0,0,0,.55);transform-origin:50% 0;transform:scale(var(--s,1));filter:brightness(var(--b,1));transition:none;direction:ltr}
.pp2 .proj-card:hover{transform:scale(var(--s,1))}
.pp2 .proj-card[data-hidden="true"]{display:none}
.pp2 .proj-card .proj-img-wrap{position:absolute;inset:0;min-height:0}
.pp2 .proj-card .proj-gallery-img,.pp2 .proj-card .proj-img-wrap>img{object-position:top center}
.pp2 .proj-card .proj-img-overlay{background:linear-gradient(180deg,rgba(8,6,4,.05) 30%,rgba(8,6,4,.55) 62%,rgba(8,6,4,.92))}
.pp2 .proj-card .proj-number{top:auto;bottom:-.12em;right:.06em;left:auto;font-size:clamp(110px,16vw,220px);font-weight:800;line-height:1;background:none;border:0;padding:0;color:transparent;-webkit-text-stroke:1.5px rgba(255,208,138,.45);letter-spacing:-.04em;pointer-events:none}
.pp2 .proj-card .proj-badge{top:22px;left:22px}
.pp2 .proj-card .proj-body{position:absolute;left:22px;bottom:22px;width:min(560px,calc(100% - 44px));padding:26px 28px;border-radius:28px;background:rgba(16,12,9,.55);border:1px solid rgba(255,225,180,.16);backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 20px 50px rgba(0,0,0,.4)}
.pp2 .proj-card.pi-reverse .proj-body{left:auto;right:22px}
.pp2 .proj-card.pi-reverse .proj-number{right:auto;left:.06em}
.pp2 .proj-card .proj-body h2{font-size:clamp(28px,3.4vw,44px);letter-spacing:-.02em;margin:0 0 10px;background:linear-gradient(135deg,#fff3df,#ffc477 60%,#e8873a);-webkit-background-clip:text;background-clip:text;color:transparent}
.pp2 .proj-card .proj-body p{font-size:15px;line-height:1.6;margin:0 0 16px;color:rgba(255,244,228,.82)}
.pp2 .proj-card .proj-techs span{border-radius:999px}

/* bento */
.pp2 .projects-row-3{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:20px}
.pp2 .proj-card-sm{grid-column:span 2;border-radius:30px;overflow:hidden;display:flex;flex-direction:column;background:linear-gradient(160deg,rgba(255,220,170,.07),rgba(255,255,255,.015));border:1px solid rgba(255,220,170,.13);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.pp2 .proj-card-sm:nth-child(5n+1),.pp2 .proj-card-sm:nth-child(5n+2){grid-column:span 3}
.pp2 .proj-card-sm[data-hidden="true"]{display:none}
.pp2 .proj-sm-img{margin:10px 10px 0;border-radius:22px;aspect-ratio:16/10;min-height:0}
.pp2 .proj-card-sm .proj-number{border-radius:999px}
.pp2 .proj-card-sm .proj-badge{border-radius:999px}

/* orbit rail */
.pp-rail{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:30;display:flex;flex-direction:column;align-items:center;gap:16px;padding:16px 10px;border-radius:999px;background:rgba(18,14,10,.45);border:1px solid rgba(255,220,170,.12);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;transition:opacity .4s}
.pp-rail.on{opacity:1}
.pp-rail::before{content:"";position:absolute;top:22px;bottom:22px;left:50%;width:1px;background:linear-gradient(rgba(255,208,138,.0),rgba(255,208,138,.45),rgba(255,208,138,0))}
.pp-rail a{position:relative;width:10px;height:10px;border-radius:50%;background:rgba(255,220,170,.25);transition:transform .3s,background .3s,box-shadow .3s}
.pp-rail a.on{background:linear-gradient(135deg,#ffd08a,#e8873a);transform:scale(1.6);box-shadow:0 0 14px rgba(255,170,80,.8)}
.pp-rail a span{position:absolute;right:22px;top:50%;transform:translateY(-50%);white-space:nowrap;font-size:12px;padding:4px 10px;border-radius:999px;background:rgba(18,14,10,.7);color:#ffe3bd;opacity:0;pointer-events:none;transition:opacity .25s}
.pp-rail a.on span,.pp-rail a:hover span{opacity:1}

html:not([data-theme="dark"]) .pp2 .projects-hero::before{-webkit-text-stroke-color:rgba(160,100,40,.18)}

@media (max-width:900px){
  .pp2 .proj-card{position:relative;top:auto;transform:none;filter:none;min-height:auto;aspect-ratio:auto;display:flex;flex-direction:column;margin-bottom:6vh}
  .pp2 .proj-card .proj-img-wrap{position:relative;aspect-ratio:16/10}
  .pp2 .proj-card .proj-body,.pp2 .proj-card.pi-reverse .proj-body{position:relative;left:auto;right:auto;bottom:auto;width:auto;margin:-40px 12px 12px;padding:20px}
  .pp2 .proj-card .proj-number{font-size:96px;bottom:auto;top:-.1em}
  .pp2 .projects-row-3{grid-template-columns:1fr 1fr}
  .pp2 .proj-card-sm,.pp2 .proj-card-sm:nth-child(5n+1),.pp2 .proj-card-sm:nth-child(5n+2){grid-column:span 2}
  .pp-rail{display:none}
  .pp2 .filter-tabs{top:76px}
}
@media (min-width:640px) and (max-width:900px){.pp2 .proj-card-sm,.pp2 .proj-card-sm:nth-child(5n+1),.pp2 .proj-card-sm:nth-child(5n+2){grid-column:span 1}}
@media (prefers-reduced-motion:reduce){.pp-orbits .spin{animation:none}.pp2 .proj-card{position:relative;top:auto;transform:none;filter:none}}
.pp2 .proj-badge{bottom:auto!important;height:auto!important;max-width:calc(100% - 44px);width:max-content}
.pp2 .filter-tabs{flex-wrap:nowrap}
@media (min-width:901px){.pp2 .proj-card .proj-body{bottom:auto;top:76px}.pp2 .proj-card .proj-img-overlay{background:linear-gradient(90deg,rgba(8,6,4,.85),rgba(8,6,4,.35) 55%,rgba(8,6,4,.1))}.pp2 .proj-card.pi-reverse .proj-img-overlay{background:linear-gradient(270deg,rgba(8,6,4,.85),rgba(8,6,4,.35) 55%,rgba(8,6,4,.1))}}
.pp2 .proj-card .proj-body{z-index:5}.pp2 .proj-card .proj-img-wrap{z-index:1}

/* v5: picture-first split cards */
.pp2 [data-card]{cursor:pointer}
@media (min-width:901px){
  .pp2 .proj-card{display:grid;grid-template-columns:1.45fr 1fr;align-items:stretch;min-height:0;padding:14px;gap:14px;background:linear-gradient(150deg,rgba(255,220,170,.08),rgba(255,255,255,.015)),#0d0b09}
  .pp2 .proj-card.pi-reverse{grid-template-columns:1fr 1.45fr}
  .pp2 .proj-card.pi-reverse .proj-img-wrap{order:2}
  .pp2 .proj-card .proj-img-wrap{position:relative;inset:auto;aspect-ratio:16/10;border-radius:24px;overflow:hidden}
  .pp2 .proj-card .proj-body,.pp2 .proj-card.pi-reverse .proj-body{position:relative;top:auto;left:auto;right:auto;bottom:auto;width:auto;align-self:center;padding:28px 26px}
}
.pp2 .proj-card .proj-img-overlay,.pp2 .proj-card.pi-reverse .proj-img-overlay{background:none!important}
.pp2 .proj-card .proj-number{top:16px;right:16px;bottom:auto;left:auto!important;font-size:13px;-webkit-text-stroke:0;color:#ffe3bd;padding:6px 12px;border-radius:999px;background:rgba(14,11,8,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.pp2 .proj-card .proj-badge{top:16px;left:16px}
.pp-more{display:inline-flex;align-items:center;gap:6px;margin-right:8px;padding:12px 20px;border-radius:999px;border:1px solid rgba(255,220,170,.25);background:rgba(255,255,255,.04);color:inherit;font:inherit;font-size:14px;cursor:pointer}
.pp-more:hover{border-color:rgba(255,208,138,.6)}
.pp2 .proj-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* detail view */
.pd{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;background:rgba(5,4,3,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .3s}
.pd.on{opacity:1}
.pd-box{position:relative;width:min(1100px,100%);max-height:94vh;overflow-y:auto;overscroll-behavior:contain;border-radius:32px 32px 0 0;background:linear-gradient(160deg,rgba(255,220,170,.08),rgba(255,255,255,.02)),#0f0c09;border:1px solid rgba(255,220,170,.16);box-shadow:0 -20px 80px rgba(0,0,0,.6);transform:translateY(40px);transition:transform .35s cubic-bezier(.2,.8,.2,1);color:#f4ead9}
.pd.on .pd-box{transform:none}
@media (min-width:901px){.pd{align-items:center}.pd-box{border-radius:32px;max-height:90vh}}
.pd-x{position:sticky;top:14px;float:right;margin:14px 14px 0 0;z-index:3;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,220,170,.25);background:rgba(14,11,8,.7);color:#fff;font-size:18px;cursor:pointer;backdrop-filter:blur(10px)}
.pd-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:62px 18px 6px;scrollbar-width:none}
.pd-strip::-webkit-scrollbar{display:none}
.pd-strip figure{flex:0 0 auto;margin:0;scroll-snap-align:center;border-radius:22px;overflow:hidden;background:#000;border:1px solid rgba(255,220,170,.12)}
.pd-strip figure.wide{width:min(86%,820px)}
.pd-strip figure.tall{width:min(42%,260px)}
.pd-strip img{display:block;width:100%;height:auto;max-height:68vh;object-fit:contain}
.pd-nav{display:flex;justify-content:center;gap:10px;padding:8px 0 4px}
.pd-nav button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,220,170,.25);background:rgba(255,255,255,.04);color:#fff;cursor:pointer;font-size:16px}
.pd-body{padding:18px clamp(18px,4vw,40px) 34px}
.pd-body .proj-badge{position:static;display:inline-block;margin-bottom:12px}
.pd-body h2{font-size:clamp(30px,5vw,52px);margin:0 0 12px;letter-spacing:-.02em;background:linear-gradient(135deg,#fff3df,#ffc477 60%,#e8873a);-webkit-background-clip:text;background-clip:text;color:transparent}
.pd-body p{font-size:16px;line-height:1.7;color:rgba(255,244,228,.85);max-width:760px}
.pd-body .proj-techs{margin:16px 0 22px}
.pd-cta{display:flex;flex-wrap:wrap;gap:10px}
@media (max-width:640px){.pd-strip figure.wide{width:88%}.pd-strip figure.tall{width:62%}}
@media (prefers-reduced-motion:reduce){.pd,.pd-box{transition:none}}
