.home-orbit{--person-feet-x: 0px;--person-feet-y: 0px;--orbit-x: 0px;--orbit-y: 0px;--dog-scale: .97;--dog-z: 3;--shadow-opacity: .075;--shadow-scale-x: .97;--shadow-scale-y: .98;--orbit-crossfade-ms: .18s;--orbit-direction-crossfade-ms: .1s;position:absolute;inset:0;z-index:6;opacity:0;pointer-events:none;touch-action:pan-y}.home-orbit[data-orbit-active=true]{opacity:1}.home-orbit[data-controls-enabled=true]{pointer-events:auto}.home-orbit:focus-visible{outline:2px solid var(--indigo);outline-offset:-6px}.home-orbit__person{position:absolute;left:var(--intro-identity-x, 28%);bottom:18%;z-index:2;width:min(36vh,32vw);aspect-ratio:384 / 342;transform:translate(-8%);pointer-events:none}.home-orbit__person-feet{position:absolute;left:50%;bottom:0;width:1px;height:1px;pointer-events:none}.home-orbit__person-sprite,.home-orbit__person-sprite-crossfade{position:absolute;inset:0;display:block;width:100%;height:100%;background-repeat:no-repeat;opacity:0;transition:opacity var(--orbit-direction-crossfade-ms) linear;will-change:opacity}.home-orbit__person-sprite[data-sprite-visible=true],.home-orbit__person-sprite-crossfade[data-sprite-visible=true]{opacity:1}.home-orbit__person-sprite,.home-orbit__person-sprite-crossfade{background-size:400% 300%;background-position:calc(var(--person-col, 0) * 100% / 3) calc(var(--person-row, 0) * 100% / 2);filter:drop-shadow(0 3px 8px rgba(37,35,31,.12))}.home-orbit__anchor{position:absolute;left:0;top:0;z-index:var(--dog-z);width:min(10.7vh,9vw);aspect-ratio:4 / 3;transform:translate3d(calc(var(--person-feet-x) + var(--orbit-x)),calc(var(--person-feet-y) + var(--orbit-y)),0) translate(-50%,-100%);transform-origin:50% 100%;will-change:transform;pointer-events:none}.home-orbit__dog{position:absolute;inset:0;transform:scale(var(--dog-scale));transform-origin:50% 100%;will-change:transform}.home-orbit__dog-sprite,.home-orbit__dog-sprite-crossfade{position:absolute;inset:0;display:block;width:100%;height:100%;background-repeat:no-repeat;background-size:400% 800%;background-position:calc(var(--dog-frame, 0) * 100% / 3) calc(var(--dog-direction, 0) * 100% / 7);opacity:0;transition:opacity var(--orbit-direction-crossfade-ms) linear;will-change:opacity;filter:drop-shadow(0 3px 4px rgba(36,43,48,.1))}.home-orbit__dog-sprite[data-sprite-visible=true],.home-orbit__dog-sprite-crossfade[data-sprite-visible=true]{opacity:1}.home-orbit__shadow{position:absolute;left:50%;bottom:-2px;width:72%;height:12%;border-radius:50%;opacity:var(--shadow-opacity);background:#33444d;filter:blur(5px);transform:translate(-50%) scale(var(--shadow-scale-x),var(--shadow-scale-y));transform-origin:50% 50%}.home-orbit[data-asset-error=true] .home-orbit__anchor{display:none}.home-orbit__fallback{position:absolute;left:var(--intro-identity-x, 28%);bottom:13%;color:var(--ink-soft)}@media(prefers-reduced-motion:reduce){.home-orbit__person-sprite,.home-orbit__person-sprite-crossfade,.home-orbit__dog-sprite,.home-orbit__dog-sprite-crossfade{transition-duration:var(--orbit-crossfade-ms)}.home-orbit__anchor,.home-orbit__dog{will-change:auto}}.scene-root{--scene-dot-paper: #eef0ea;--scene-dot: rgba(63, 78, 82, .14);--scene-paper: #fffdf7;--scene-ink: #25231f;--scene-ink-soft: #67635b;--scene-indigo: #284d5b;--scene-vermilion: #b8513d}.scene{position:relative;min-height:300vh}.scene__stage{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate}.scene--projects .scene__stage{display:grid;place-items:center;padding:clamp(1.5rem,4vw,4rem);background-color:var(--scene-dot-paper);background-image:radial-gradient(circle,var(--scene-dot) 1px,transparent 1px);background-size:24px 24px}.scene-projects{width:min(92vw,1240px);max-height:100%;overflow:auto;padding:clamp(2rem,5vw,4.5rem);background:var(--scene-paper);box-shadow:0 8px 30px #2e302a1a}.scene-projects__kicker{margin:0 0 .75rem;color:var(--scene-vermilion);font-size:.8rem;font-weight:700;letter-spacing:.08em}.scene-projects__title{margin:0;font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(2rem,4vw,3rem);font-weight:500;line-height:1.15}.scene-projects__desc{margin:.75rem 0 0;color:var(--scene-ink-soft);font-size:.95rem}.scene-projects__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin:2.5rem 0 0;padding:0;list-style:none}.scene-projects__empty{margin:2.5rem 0 0;padding:2rem 1.25rem;border:1px dashed rgba(37,35,31,.18);border-radius:8px;color:var(--scene-ink-soft);font-size:.9rem}.scene-projects__empty p{margin:0}.scene-projects__empty p+p{margin-top:.5rem}.scene-projects__card{position:relative;min-height:150px;border:1px solid rgba(37,35,31,.12);border-radius:8px;background:#fbf9f2;transition:transform .16s ease-out,box-shadow .16s ease-out}.scene-projects__card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #2e302a1a}.scene-projects__card a{display:flex;min-height:150px;padding:1.25rem 1.25rem 2.75rem;flex-direction:column;color:var(--scene-ink);text-decoration:none}.scene-projects__card h2{margin:0;font-family:Songti SC,STSong,SimSun,serif;font-size:1.15rem;font-weight:500}.scene-projects__card p{margin:.5rem 0 0;color:var(--scene-ink-soft);font-size:.88rem;line-height:1.7}.scene-projects__arrow{position:absolute;right:1.1rem;bottom:.9rem;color:var(--scene-indigo);font-size:1rem;line-height:1}@media(max-width:767px){.scene-projects__grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.scene-projects__card{transition:none}}.scene--home,.scene--projects{background-color:var(--scene-dot-paper);background-image:radial-gradient(circle,var(--scene-dot) 1px,transparent 1px);background-size:24px 24px}.scene--home{margin-top:-100svh}.home-v2{will-change:transform,opacity}.scene--home .home-orbit{inset:12% 2% 8% 46%;z-index:7}.scene--home:has(.home-orbit[data-orbit-active=true]) .home-v2__portrait{opacity:0}@media(max-width:767px){.scene--home .home-orbit{inset:38% 0 10%}}
