body:is(.portfolio-particle-space,.about-particle-space,.resume-particle-space,.notfound-particle-space){isolation:isolate}body:is(.portfolio-particle-space,.about-particle-space,.resume-particle-space,.notfound-particle-space) .site-header__glass{--color-glass:#0b0b0f61}body:is(.portfolio-particle-space,.about-particle-space,.resume-particle-space,.notfound-particle-space) .site-footer{--color-glass:#0b0b0f2e;--glass-blur:blur(.6px) saturate(1.3)}body.portfolio-particle-space .site-footer{--color-glass:#0b0b0f66;border-top-color:rgb(var(--color-accent-rgb) / .22);background:linear-gradient(180deg, rgb(var(--color-accent-rgb) / .11), transparent 68%), var(--color-glass)}body.portfolio-particle-space .portfolio{margin-bottom:0}body.portfolio-particle-space .portfolio__opening{align-items:last baseline}body.portfolio-particle-space .portfolio__statement{font-size:calc(clamp(1.125rem,1rem + .4vw,1.3rem)/1.25)}body.portfolio-particle-space .page{min-block-size:calc(78svh - var(--nav-height));padding-bottom:var(--space-4)}@media (width>=1100px){body.portfolio-particle-space .page{display:grid}}.portfolio-space-backdrop{z-index:-2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.portfolio-space-backdrop canvas{opacity:0;width:100%;height:100%;transition:opacity .7s}.portfolio-space-backdrop canvas[data-mode]{opacity:1}.portfolio-space-backdrop:after{content:"";background:radial-gradient(48% 80% at 50% 48%,#0b0b0f99,#0000);position:absolute;inset:0}.home__action{transition:opacity 1.4s}.home__action[data-reveal=ready] .explore{animation:2.8s ease-in-out infinite explore-pulse}@keyframes explore-pulse{0%,to{opacity:1}50%{opacity:.45}}.home-orbit-hint{z-index:1;top:auto;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 28px);width:max-content;height:auto;color:color-mix(in oklab, var(--color-mark) 60%, #000);font:12px/1.5 var(--font-body);letter-spacing:.015em;white-space:nowrap;text-shadow:0 1px 5px #000;pointer-events:none;user-select:none;opacity:0;visibility:hidden;flex-direction:column;justify-content:center;align-items:center;gap:3px;margin:0;transition:opacity .7s,visibility .7s;display:flex;position:absolute;transform:translate(-50%)}.home-orbit-hint__label{opacity:.62}.home-orbit-hint svg{stroke:currentColor;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;width:28px;height:28px;overflow:visible}.home-orbit-hint[data-visible=true]{opacity:1;visibility:visible}@media (width<=699px){.home-orbit-hint{bottom:calc(env(safe-area-inset-bottom,0px) + 20px)}}@media (height<=480px) and (width>=500px){.home-orbit-hint{bottom:18px;left:24px;transform:none}}@media (prefers-reduced-motion:reduce){.home__action{transition:none}.home__action[data-reveal=ready] .explore{animation:none}.home-orbit-hint{transition:none;display:none}}.home-sketch-active{overflow:clip}.home-sketch-star{z-index:2;width:48px;height:48px;color:var(--color-highlight);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}.home-sketch-star[hidden]{display:none}.home-sketch-star[data-state=forming]{cursor:progress;opacity:.72}.home-star-arrival{z-index:1;width:100%;height:100%;color:var(--color-highlight);pointer-events:none;position:absolute;inset:0;overflow:hidden}.home-sketch-star:before{content:"";width:calc(30px * var(--home-star-scale,1));height:calc(30px * var(--home-star-scale,1));background:radial-gradient(circle, rgb(var(--color-highlight-rgb) / .2), transparent 70%);opacity:calc((.5 + var(--sketch-pulse,1) * .5) * var(--sketch-cue-strength,1));transform:scale(calc((.8 + var(--sketch-pulse,1) * .5) * var(--home-star-scale,1)));pointer-events:none;border-radius:50%}.home-sketch-star:focus-visible{outline:1px solid var(--color-highlight);outline-offset:3px}.home-sketch-star__cue{opacity:calc(.65 * var(--sketch-cue-strength,1));scale:var(--home-star-scale,1);pointer-events:none;transition:opacity .18s;position:absolute;inset:6px}.home-sketch-star__cue i{position:absolute;top:50%;left:50%}.home-sketch-star[data-cue=orbit] .home-sketch-star__cue{transform:rotate(var(--sketch-cue-angle,0deg))}.home-sketch-star[data-cue=orbit] .home-sketch-star__cue i{width:2.5px;height:2.5px;box-shadow:0 0 4px rgb(var(--color-highlight-rgb) / .45);background:currentColor;border-radius:50%;transform:translate(-50%,-50%)rotate(0)translate(14px)}.home-sketch-star[data-cue=orbit] .home-sketch-star__cue i:nth-child(2){opacity:.65;width:2px;height:2px;transform:translate(-50%,-50%)rotate(145deg)translate(14px)}.home-sketch-star[data-cue=orbit] .home-sketch-star__cue i:nth-child(3){opacity:.4;width:1.5px;height:1.5px;transform:translate(-50%,-50%)rotate(265deg)translate(14px)}.home-sketch-star[data-cue=ripple] .home-sketch-star__cue i{width:18px;height:18px;transform:translate(-50%, -50%) scale(var(--sketch-ripple-0-scale,1));opacity:var(--sketch-ripple-0-opacity,.4);border:1px solid;border-radius:50%}.home-sketch-star[data-cue=ripple] .home-sketch-star__cue i:nth-child(2){transform:translate(-50%, -50%) scale(var(--sketch-ripple-1-scale,1.5));opacity:var(--sketch-ripple-1-opacity,.25)}.home-sketch-star[data-cue=ripple] .home-sketch-star__cue i:nth-child(3){display:none}@media (hover:hover){.home-sketch-star:hover:after{border-color:rgb(var(--color-highlight-rgb) / .85);opacity:calc(.85 * var(--sketch-cue-strength,1))}.home-sketch-star:hover .home-sketch-star__cue{opacity:var(--sketch-cue-strength,1)}}.home-sketch-star:focus-visible:after,.home-sketch-star:active:after{border-color:var(--color-highlight);opacity:var(--sketch-cue-strength,1)}.home-sketch-star:is(:focus-visible,:active) .home-sketch-star__cue{opacity:var(--sketch-cue-strength,1)}.home-sketch-star[data-cue-waiting=true]:before,.home-sketch-star[data-cue-waiting=true]:after,.home-sketch-star[data-cue-waiting=true] .home-sketch-star__cue{visibility:hidden}@media (prefers-reduced-motion:reduce){.home-sketch-star:after,.home-sketch-star__cue{transition:none}}.home-sketch-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
