.stitch-projects-page{--stitch-bg: #f7f8fb;--stitch-surface: #ffffff;--stitch-text: #111827;--stitch-muted: #526070;--stitch-dim: #64748b;--stitch-line: #dbe3ef;--stitch-amber: #2563eb;--stitch-card-glow: rgba(37, 99, 235, .22);--stitch-card-shadow: rgba(37, 99, 235, .12);--stitch-motion-ease: cubic-bezier(.22, 1, .36, 1);--project-progress: 0;--hero-exit: 0;--hero-pointer-x: 0px;--hero-pointer-y: 0px;width:calc(100% + 2.5rem);margin-left:-1.25rem;overflow:hidden;color:var(--stitch-text);background:var(--stitch-bg);transition:background-color .3s ease,color .3s ease}.dark .stitch-projects-page{--stitch-bg: #111317;--stitch-surface: #1a1c20;--stitch-text: #e2e2e8;--stitch-muted: #c3c6d7;--stitch-dim: #8d90a0;--stitch-line: #434655;--stitch-amber: #fbbf24;--stitch-card-glow: rgba(251, 191, 36, .34);--stitch-card-shadow: rgba(0, 0, 0, .38)}body:has(.stitch-projects-page){background:var(--color-background)}body:has(.stitch-projects-page) .site-nav{border-color:var(--color-border);background:color-mix(in srgb,var(--color-background) 88%,transparent);color:var(--color-text)}body:has(.stitch-projects-page) .site-nav .logo,body:has(.stitch-projects-page) .site-nav .nav-link,body:has(.stitch-projects-page) .site-nav .theme-toggle{color:var(--color-text)}body:has(.stitch-projects-page) .site-nav .nav-list{border-color:var(--color-border);background:color-mix(in srgb,var(--color-surface) 88%,transparent);box-shadow:none}body:has(.stitch-projects-page) .site-nav .nav-link.active,body:has(.stitch-projects-page) .site-nav .nav-link:hover{color:var(--color-primary-strong);background:var(--color-surface-strong)}body:has(.stitch-projects-page) .site-nav .theme-toggle{border-color:var(--color-border);background:var(--color-surface)}.stitch-projects-page .stitch-hero,.stitch-projects-page .stitch-projects,.stitch-projects-page .stitch-workshop{max-width:1200px;margin:0 auto}.stitch-hero,.stitch-projects{box-sizing:border-box;padding-right:4rem;padding-left:4rem}.stitch-hero{position:relative;min-height:30rem;padding-top:3.5rem;padding-bottom:7rem;display:flex;flex-direction:column;justify-content:center}.stitch-hero>:not(.stitch-orbit-scene){position:relative;z-index:1}.stitch-hero-label,.stitch-section-bar,.stitch-project-title span,.stitch-project-link{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.16em}.stitch-hero-label{display:inline-flex;align-items:center;gap:.8rem;margin-bottom:1.5rem;padding-left:.9rem;border-left:2px solid var(--stitch-amber);color:var(--stitch-dim);font-size:.68rem;line-height:1.5}.stitch-hero-label span{display:none}.stitch-hero h1{max-width:12ch;margin:0 0 1.3rem;color:var(--stitch-text);font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-size:clamp(2.1rem,4vw,3rem);font-weight:750;line-height:1.08;letter-spacing:-.06em}.stitch-type-line{display:block;min-height:1.08em}.stitch-type-line--accent{color:var(--stitch-muted);font-style:italic;font-weight:400}.stitch-type-char{display:inline-block;opacity:1;transform:none}.projects-motion-ready .stitch-type-char{opacity:0;transform:translateY(.35em)}.projects-motion-ready .stitch-hero.is-visible .stitch-type-char{animation:stitch-type-char 70ms var(--stitch-motion-ease) forwards;animation-delay:calc(var(--char-index) * 70ms)}.stitch-hero p{max-width:39rem;margin:0;color:var(--stitch-muted);font-size:1rem;line-height:1.7}.projects-motion-ready .stitch-hero p{opacity:0;transform:translateY(.7rem)}.projects-motion-ready .stitch-hero.is-visible p{animation:stitch-subtitle-in .7s var(--stitch-motion-ease) 1.02s forwards}.stitch-orbit-scene{position:absolute;z-index:0;top:50%;right:.5rem;width:min(46%,34rem);height:100%;overflow:hidden;transform:translateY(-47%)}.projects-motion-ready .stitch-orbit-scene{opacity:0}.projects-motion-ready .stitch-hero.is-visible .stitch-orbit-scene{animation:stitch-motion-enter .9s var(--stitch-motion-ease) .25s forwards}.stitch-orbit-depth{position:absolute;inset:0;opacity:calc(1 - var(--hero-exit) * .72);transform:translate3d(var(--hero-pointer-x),calc(var(--hero-pointer-y) + var(--hero-exit) * -18px),0) scale(calc(1 - var(--hero-exit) * .08));transition:transform .18s ease-out,opacity .18s linear;will-change:transform,opacity}.stitch-orbit-scene .motion-backdrop{opacity:.82}.stitch-hero:not(.is-orbit-active) .motion-backdrop *,.stitch-projects-page.is-motion-paused .motion-backdrop *{animation-play-state:paused!important}.stitch-projects{padding-bottom:4rem}.stitch-section-bar{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:2.5rem;padding-bottom:.7rem;border-bottom:1px solid var(--stitch-line);color:var(--stitch-dim);font-size:.64rem}.stitch-section-bar h2{margin:0;color:inherit;font:inherit}.stitch-project-progress{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;min-width:min(26rem,48vw)}.stitch-project-progress>span:last-child{opacity:.6}.stitch-project-progress-count{min-width:4.5rem;color:var(--stitch-amber);font-variant-numeric:tabular-nums}.stitch-project-progress-track{position:relative;width:clamp(5rem,11vw,9rem);height:1px;overflow:hidden;background:color-mix(in srgb,var(--stitch-line) 78%,transparent)}.stitch-project-progress-track>span{position:absolute;inset:0;background:var(--stitch-amber);box-shadow:0 0 .8rem var(--stitch-card-glow);transform:scaleX(var(--project-progress));transform-origin:left center;transition:transform .12s linear}.stitch-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 1.5rem;perspective:1000px}.stitch-project-card{--tilt-x: 0deg;--tilt-y: 0deg;--image-x: 0px;--image-y: 0px;--pointer-x: 50%;--pointer-y: 50%;position:relative;isolation:isolate;display:block;min-width:0;padding:.5rem;border:1px solid transparent;border-radius:.5rem;color:inherit;text-decoration:none;opacity:1;transform:none;transform-style:preserve-3d;transition:opacity .7s ease var(--card-delay),transform .35s var(--stitch-motion-ease),border-color .35s ease,background .35s ease,box-shadow .35s ease}.projects-motion-ready .stitch-project-card:not(.is-visible){opacity:0;transform:translateY(1.5rem)}.projects-motion-ready .stitch-project-card.is-visible{opacity:1;transform:translateY(0) rotateX(var(--tilt-x)) rotateY(var(--tilt-y))}.stitch-project-card:before{content:"";position:absolute;z-index:0;inset:.5rem;border-radius:.3rem;pointer-events:none;opacity:0;background:radial-gradient(circle 13rem at var(--pointer-x) var(--pointer-y),color-mix(in srgb,var(--stitch-amber) 19%,transparent),transparent 68%);transition:opacity .26s ease}.stitch-project-card.is-visible:hover,.stitch-project-card.is-visible:focus-visible{border-color:var(--stitch-card-glow);background:color-mix(in srgb,var(--stitch-surface) 90%,var(--stitch-amber));box-shadow:0 0 0 1px var(--stitch-card-glow),0 1rem 2.8rem var(--stitch-card-shadow);transform:translateY(-.35rem) rotateX(var(--tilt-x)) rotateY(var(--tilt-y))}.stitch-project-card.is-visible:hover:before,.stitch-project-card.is-visible:focus-visible:before{opacity:1}.stitch-project-card.is-interacting{transition-duration:.7s,.11s,.25s,.25s,.25s}.stitch-project-image,.stitch-project-meta{position:relative;z-index:1}.stitch-project-image{aspect-ratio:16 / 9;overflow:hidden;margin-bottom:1rem;border:1px solid rgba(141,144,160,.35);border-radius:.3rem;background:var(--stitch-surface);transform:translateZ(0)}.stitch-project-image:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 28%,color-mix(in srgb,white 30%,transparent) 48%,transparent 68%);transform:translate(-120%);transition:transform .78s var(--stitch-motion-ease)}.stitch-project-image img{width:100%;height:100%;display:block;object-fit:cover;transform:translateZ(0) scale(1);transition:transform .6s var(--stitch-motion-ease);will-change:transform}.stitch-project-card:hover .stitch-project-image img,.stitch-project-card:focus-visible .stitch-project-image img{transform:translate3d(var(--image-x),var(--image-y),0) scale(1.055)}.stitch-project-card:hover .stitch-project-image:after,.stitch-project-card:focus-visible .stitch-project-image:after{transform:translate(120%)}.stitch-project-meta{display:flex;align-items:flex-start;gap:1rem;transform:translateZ(18px)}.stitch-project-number{flex:0 0 auto;color:color-mix(in srgb,var(--stitch-text) 10%,transparent);font-size:2rem;font-weight:800;line-height:1;letter-spacing:-.06em;transition:color .26s ease,transform .26s var(--stitch-motion-ease)}.stitch-project-card:hover .stitch-project-number,.stitch-project-card:focus-visible .stitch-project-number{color:color-mix(in srgb,var(--stitch-amber) 32%,transparent);transform:translate(-.12rem)}.stitch-project-copy{min-width:0;flex:1}.stitch-project-title{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.45rem}.stitch-project-title h3{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--stitch-text);font-size:1.2rem;font-weight:650;line-height:1.25;letter-spacing:-.03em;text-wrap:pretty}.stitch-project-title span{flex:0 0 auto;padding:.22rem .35rem;border:1px solid rgba(141,144,160,.35);border-radius:.15rem;color:var(--stitch-dim);font-size:.52rem;letter-spacing:.05em}.stitch-project-copy p{margin:0 0 1rem;color:var(--stitch-muted);font-size:.78rem;line-height:1.6;text-wrap:pretty}.stitch-project-link{color:var(--stitch-amber);font-size:.62rem;font-weight:600}.stitch-project-link b{display:inline-block;margin-left:.25rem;font-size:.9rem;font-weight:500;transition:transform .22s ease}.stitch-project-card:hover .stitch-project-link b,.stitch-project-card:focus-visible .stitch-project-link b{transform:translate(.18rem,-.18rem)}.stitch-workshop{margin-top:0;padding:5rem 1.5rem 6rem;text-align:center;background:var(--stitch-surface)}.stitch-workshop>div{max-width:36rem;margin:0 auto}.stitch-workshop h2{margin:0 0 1.2rem;color:var(--stitch-text);font-size:1.1rem;font-weight:650;line-height:1.6}.stitch-workshop p{margin:0;color:var(--stitch-muted);font-size:.8rem;line-height:1.7}.projects-motion-ready .stitch-workshop .stitch-type-char{opacity:0;transform:translateY(.35em)}.projects-motion-ready .stitch-workshop.is-visible .stitch-workshop-title .stitch-type-char{animation:stitch-type-char 42ms var(--stitch-motion-ease) forwards;animation-delay:calc(var(--char-index) * 42ms)}.stitch-workshop-subtitle{opacity:1}.projects-motion-ready .stitch-workshop-subtitle{opacity:0;transform:translateY(.7rem)}.projects-motion-ready .stitch-workshop.is-visible .stitch-workshop-subtitle{animation:stitch-subtitle-in .7s var(--stitch-motion-ease) forwards;animation-delay:var(--workshop-subtitle-delay)}@keyframes stitch-type-char{to{opacity:1;transform:none}}@keyframes stitch-subtitle-in{to{opacity:1;transform:none}}@keyframes stitch-motion-enter{0%{opacity:0;transform:translateY(-47%) scale(.9)}to{opacity:1;transform:translateY(-47%) scale(1)}}@keyframes stitch-motion-enter-mobile{0%{opacity:0;transform:scale(.9)}to{opacity:.42;transform:scale(1)}}@media(max-width:768px){.stitch-projects-page{width:calc(100% + 2rem);margin-left:-1rem}.stitch-hero,.stitch-projects{padding-right:1rem;padding-left:1rem}.stitch-hero{min-height:28rem;padding-top:2.5rem;padding-bottom:4rem}.stitch-hero h1{font-size:clamp(2rem,10vw,2.7rem)}.stitch-hero p{font-size:.9rem}.stitch-orbit-scene{top:auto;right:-4rem;bottom:-2rem;width:17rem;height:17rem;transform:none;opacity:.42}.projects-motion-ready .stitch-hero.is-visible .stitch-orbit-scene{animation:stitch-motion-enter-mobile .9s var(--stitch-motion-ease) .25s forwards}.stitch-section-bar{align-items:stretch;flex-direction:column;gap:.7rem;margin-bottom:1.5rem}.stitch-project-progress{display:grid;grid-template-columns:auto 1fr;min-width:0;width:100%;gap:.45rem .75rem}.stitch-project-progress-track{width:100%;align-self:center}.stitch-project-progress>span:last-child{grid-column:1 / -1}.stitch-project-grid{grid-template-columns:1fr;gap:2rem}.stitch-project-card{padding:.35rem}.stitch-project-title h3{font-size:1.1rem}.stitch-project-copy p{font-size:.82rem}.stitch-workshop{margin-top:0;padding:4rem 1.5rem}.stitch-workshop h2{font-size:1rem}}@media(hover:none),(pointer:coarse){.stitch-project-card.is-visible:hover{transform:none}.stitch-project-card:hover:before,.stitch-project-card:hover .stitch-project-image:after{opacity:0;transform:none}.stitch-project-card:hover .stitch-project-image img{transform:none}}@media(prefers-reduced-motion:reduce){.stitch-project-card,.stitch-project-image img,.stitch-project-image:after,.stitch-project-link b,.stitch-type-char,.stitch-hero p,.stitch-workshop-subtitle,.stitch-orbit-scene,.stitch-orbit-depth,.stitch-project-progress-track>span{transition:none!important;animation:none!important}.stitch-project-card,.stitch-type-char,.stitch-hero p,.stitch-workshop-subtitle,.stitch-orbit-scene{opacity:1!important;transform:none!important}.stitch-orbit-depth,.stitch-project-card.is-visible:hover,.stitch-project-card.is-visible:focus-visible,.stitch-project-card:hover .stitch-project-image img,.stitch-project-card:focus-visible .stitch-project-image img{transform:none!important}.stitch-project-card:before,.stitch-project-image:after{display:none}}
