.portfolio-page .container{padding-bottom:20em}.project-media-reveal{width:100%;height:100%;opacity:0;transform:scale(1.03);transition:opacity .7s ease,transform 1.1s cubic-bezier(.22,1,.36,1)}.project-media-reveal.is-revealed{opacity:1;transform:scale(1)}.project-counter{position:fixed;right:2rem;bottom:2rem;z-index:3;pointer-events:none;padding:10px 14px;border:1px solid var(--text-darker);border-radius:99px;background:var(--bg);color:var(--text-secondary);font:11px ui-monospace,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:opacity .2s ease}.project-counter[data-visible=false]{opacity:0}.project-counter-current{display:inline-block;color:var(--accent);animation:counter-enter .22s ease both}@keyframes counter-enter{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.project-media-reveal{transition:none;transform:none}.project-counter{transition:none}.project-counter-current{animation:none}}.portfolio-header{width:50%;margin:2em auto 4em;text-align:center;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.portfolio-header h1{position:relative;transform:translateY(64px);will-change:transform}.portfolio-row{width:100%;display:flex;gap:2em}.portfolio-row .col{position:relative;width:100%;height:380px;margin-bottom:2em;perspective:1000px;-webkit-clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}.portfolio-row .col.lg{flex:2 1}.portfolio-row .col.sm{flex:1.25 1}.portfolio-row .card-3d{display:block;color:inherit;text-decoration:none;transform-style:preserve-3d;will-change:transform}.portfolio-row .card-3d,.portfolio-row .layer{position:absolute;inset:0}.portfolio-row .layer-media{border-radius:28px;overflow:hidden;transform:translateZ(0);z-index:1}.portfolio-row .layer-media img,.portfolio-row .layer-media video{width:100%;height:100%;object-fit:cover;will-change:transform}.portfolio-row .layer-icon{display:grid;place-items:center;pointer-events:none;transform:translateZ(20px);z-index:3;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.portfolio-row .col:hover .layer-icon{transform:translateZ(95px) scale(1.06)}.portfolio-row .layer-icon img,.portfolio-row .layer-icon video{width:38%;max-width:170px;max-height:60%;height:auto;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.35));transition:filter .7s ease}.portfolio-row .col:hover .layer-icon img,.portfolio-row .col:hover .layer-icon video{filter:drop-shadow(0 34px 48px rgba(0,0,0,.55))}.portfolio-row .layer-icon .lm-wrap{width:40%;max-width:180px;height:auto;aspect-ratio:1/1;filter:drop-shadow(0 12px 22px rgba(0,0,0,.4));transition:filter .7s ease}.portfolio-row .col:hover .layer-icon .lm-wrap{filter:drop-shadow(0 34px 48px rgba(0,0,0,.55))}.portfolio-row .project-title{position:absolute;left:1em;bottom:1em;transform:translateZ(45px);z-index:4;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.portfolio-row .col .project-title h3{position:relative;transform:translateY(24px);font-size:20px;will-change:transform}.portfolio-row .project-badge{position:absolute;top:1em;left:1em;display:inline-flex;align-items:center;gap:.4em;padding:.35em .7em;background:rgba(0,0,0,.45);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.08);border-radius:99px;transform:translateZ(50px);z-index:5;opacity:0;transition:opacity .4s ease,transform .4s cubic-bezier(.23,1,.32,1);pointer-events:none}.portfolio-row .col:hover .project-badge{opacity:1}.badge-icon{display:flex;align-items:center;justify-content:center;color:hsla(0,0%,100%,.8);flex-shrink:0}.badge-text{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:hsla(0,0%,100%,.85);white-space:nowrap}@media (max-width:900px){.portfolio-row{flex-direction:column}.portfolio-row .col.lg,.portfolio-row .col.sm{flex:0 0 auto;height:300px}}.lm-root.w-full,.w-full{width:100%}.h-full{height:100%}.relative{position:relative}.flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.object-contain{object-fit:contain}.lm-root{pointer-events:none}.lm-root canvas{display:block}