:where(body[data-shell=portfolio]) .hero{position:relative}:where(body[data-shell=portfolio]) .hero .stage{position:sticky;top:0;height:100svh;overflow:hidden}:where(body[data-shell=portfolio]) .hero canvas{display:block;width:100%;height:100%}:where(body[data-shell=portfolio]) .hero .intro{position:absolute;left:var(--pad);right:var(--pad);bottom:12svh;max-width:15em;font-family:var(--display);font-weight:var(--display-weight);font-size:clamp(28px,4vw,56px);line-height:1.25;letter-spacing:-.02em;word-break:keep-all;text-shadow:0 2px 30px rgb(var(--shade-c) / .8)}:where(body[data-shell=portfolio]) .hero .intro small{display:block;margin-top:22px;font-family:var(--mono);font-weight:400;font-size:13px;letter-spacing:.04em;color:rgb(var(--fg-c) / .84);text-shadow:0 1px 10px rgb(var(--shade-c) / .95)}:where(body[data-shell=portfolio]) .hero .cta{position:absolute;left:var(--pad);bottom:9svh;max-width:min(520px,88vw);pointer-events:none;opacity:0;transform:translateY(10px);transition:opacity .35s,transform .45s}:where(body[data-shell=portfolio]) .hero .cta.on{opacity:1;transform:none;pointer-events:auto}:where(body[data-shell=portfolio]) .hero .cta:before{content:"";position:absolute;inset:-60px -80px -40px -60px;z-index:-1;background:radial-gradient(closest-side,rgb(var(--bg-c) / .95),rgb(var(--bg-c) / .78) 62%,transparent)}:where(body[data-shell=portfolio]) .hero .cta .k{font-size:12px;letter-spacing:.12em;color:var(--mute)}:where(body[data-shell=portfolio]) .hero .cta .k:empty{display:none}:where(body[data-shell=portfolio]) .hero .cta h2{margin:10px 0 6px;font-size:clamp(24px,2.6vw,34px);font-weight:700;letter-spacing:-.01em;word-break:keep-all;text-wrap:balance}:where(body[data-shell=portfolio]) .hero .cta p{margin:0 0 14px;color:rgb(var(--fg-c) / .86);font-size:16px;text-shadow:0 1px 8px rgb(var(--shade-c) / .9)}:where(body[data-shell=portfolio]) .hero .cta a{display:inline-flex;align-items:center;min-height:44px;font-weight:500;border-bottom:1px solid var(--safe)}:where(body[data-shell=portfolio]) .hero .chips{position:absolute;left:var(--pad);bottom:9svh;display:flex;gap:10px;font-family:var(--display);font-weight:var(--display-weight);font-size:30px;color:rgb(var(--fg-c) / .22);transition:opacity .3s}:where(body[data-shell=portfolio]) .hero .chips b{font-weight:var(--display-weight);transition:color .3s}:where(body[data-shell=portfolio]) .hero .chips b.on{color:var(--fg)}:where(body[data-shell=portfolio]) .hero .play{position:absolute;right:var(--pad);bottom:calc(9svh - 8px);z-index:2;min-height:44px;padding:0 14px;font-size:12px;letter-spacing:.06em;color:rgb(var(--fg-c) / .78);background:rgb(var(--shade-c) / .55);border:1px solid rgb(var(--fg-c) / .18);border-radius:999px;transition:opacity .3s,color .2s}:where(body[data-shell=portfolio]) .hero .play:hover{color:var(--fg);border-color:var(--safe)}:where(body[data-shell=portfolio]) .hero .play[hidden]{display:none}.hw[data-astro-cid-w3rxu26r]{position:relative;height:calc((var(--n) + .4) * 100vh);height:calc((var(--n) + .4) * 100lvh);background:var(--tex),var(--bg)}.hw-stage[data-astro-cid-w3rxu26r]{position:sticky;top:0;height:100vh;height:100lvh;overflow:hidden;--bar: 0px}@supports (height: 100lvh){.hw-stage[data-astro-cid-w3rxu26r]{--bar: calc(100lvh - 100svh) }}.hw-scene[data-astro-cid-w3rxu26r]{position:absolute;inset:0;opacity:0;transition:opacity .6s var(--ease);pointer-events:none}.hw-scene[data-astro-cid-w3rxu26r].on{opacity:1;pointer-events:auto}.hw-name[data-astro-cid-w3rxu26r]{display:grid;place-content:center;justify-items:center;padding:var(--head) var(--pad) calc(12svh + var(--bar));text-align:center}.hw-word[data-astro-cid-w3rxu26r]{margin:0;font-family:var(--display);font-weight:900;line-height:.95;letter-spacing:-.03em;font-size:min(30vw,46svh,calc((100vw - 2 * (var(--pad) + 180px)) / 3.1));color:transparent;background-size:cover;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;transform:scale(1.02);transition:transform 1.6s var(--ease)}.hw-word[data-astro-cid-w3rxu26r]{-webkit-text-stroke:1px rgb(var(--fg-c) / .14)}.hw-scene[data-astro-cid-w3rxu26r].on .hw-word[data-astro-cid-w3rxu26r]{transform:none}.hw-word--mosaic[data-astro-cid-w3rxu26r]{--t: clamp(20px, 2.3vw, 36px);background-image:linear-gradient(to right,rgb(var(--bg-c)) 0 2px,transparent 2px),linear-gradient(to bottom,rgb(var(--bg-c)) 0 2px,transparent 2px),var(--atlas);background-size:var(--t) var(--t),var(--t) var(--t),calc(var(--ac) * var(--t)) calc(var(--ar) * var(--t));background-repeat:repeat;background-position:0 0;animation:hw-drift 90s linear infinite}@keyframes hw-drift{to{background-position:calc(var(--t) * 6) 0,calc(var(--t) * 6) 0,calc(var(--t) * 6) 0}}.hw-name-line[data-astro-cid-w3rxu26r]{margin:2.2svh 0 0;font-size:clamp(16px,1.6vw,22px);font-weight:700;color:rgb(var(--fg-c) / .9);word-break:keep-all}.hw-intro[data-astro-cid-w3rxu26r]{position:absolute;left:var(--pad);bottom:calc(7svh + var(--bar));margin:0;max-width:22em;text-align:left;font-size:clamp(14px,1.2vw,16px);line-height:1.6;color:rgb(var(--fg-c) / .62);word-break:keep-all}.hw-photo[data-astro-cid-w3rxu26r]{position:absolute;inset:0;background-size:cover;background-repeat:no-repeat;transform:scale(1.06);transition:transform 2.4s var(--ease)}.hw-scene[data-astro-cid-w3rxu26r].on .hw-photo[data-astro-cid-w3rxu26r]{transform:scale(1)}.hw-shade[data-astro-cid-w3rxu26r]{position:absolute;inset:0;background:linear-gradient(to top,rgb(var(--shade-c) / .82),rgb(var(--shade-c) / .35) 38%,rgb(var(--shade-c) / 0) 62%),linear-gradient(to bottom,rgb(var(--shade-c) / .55),rgb(var(--shade-c) / 0) 22%)}.hw-cap[data-astro-cid-w3rxu26r]{position:absolute;left:var(--pad);right:var(--pad);bottom:calc(8svh + var(--bar));max-width:40em}.hw-en[data-astro-cid-w3rxu26r]{margin:0 0 6px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:#ffffffbf}.hw-big[data-astro-cid-w3rxu26r]{margin:0;font-family:var(--display);font-weight:900;font-size:clamp(56px,11vw,168px);line-height:.95;letter-spacing:-.03em;color:#fff}.hw-sub[data-astro-cid-w3rxu26r]{margin:14px 0 18px;font-size:clamp(15px,1.4vw,19px);line-height:1.5;color:#ffffffe0;word-break:keep-all}.hw-go[data-astro-cid-w3rxu26r]{display:inline-flex;align-items:center;min-height:44px;font-weight:700;color:#fff;border-bottom:1px solid var(--safe)}.hw-go[data-astro-cid-w3rxu26r]:hover,.hw-go[data-astro-cid-w3rxu26r]:focus-visible{color:var(--safe)}.hw-hint[data-astro-cid-w3rxu26r]{position:absolute;left:50%;bottom:calc(3svh + var(--bar));transform:translate(-50%);margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:rgb(var(--fg-c) / .5);transition:opacity .4s}.hw-ctl[data-astro-cid-w3rxu26r]{position:absolute;right:var(--pad);bottom:calc(7svh + var(--bar));z-index:2;display:flex;gap:10px}.hw-btn[data-astro-cid-w3rxu26r]{width:44px;height:44px;display:grid;place-items:center;padding:0;color:rgb(var(--fg-c) / .85);background:rgb(var(--bg-c) / .72);border:1px solid rgb(var(--fg-c) / .2);border-radius:50%;backdrop-filter:blur(6px);transition:color .25s,border-color .25s}.hw-btn[data-astro-cid-w3rxu26r]:hover,.hw-btn[data-astro-cid-w3rxu26r]:focus-visible{color:var(--fg);border-color:var(--safe)}.hw-btn[data-astro-cid-w3rxu26r][hidden]{display:none}.hw-ring[data-astro-cid-w3rxu26r]{position:relative}.hw-ring[data-astro-cid-w3rxu26r] svg[data-astro-cid-w3rxu26r]{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px)}.hw-ring[data-astro-cid-w3rxu26r] circle[data-astro-cid-w3rxu26r]{fill:none;stroke-width:3}.hw-ring-bg[data-astro-cid-w3rxu26r]{stroke:rgb(var(--fg-c) / .14)}.hw-ring-fg[data-astro-cid-w3rxu26r]{stroke:var(--safe);stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transform:rotate(-90deg);transform-origin:22px 22px}.hw-play-ic[data-astro-cid-w3rxu26r]{position:relative;display:grid;place-items:center}.hw-dial[data-astro-cid-w3rxu26r]{--ds: 138px;position:absolute;right:var(--pad);top:50%;z-index:3;width:var(--ds);height:var(--ds);margin-top:calc(var(--ds) / -2);border-radius:50%;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;outline:none;background:repeating-conic-gradient(rgb(var(--fg-c) / .34) 0 2.2deg,rgb(var(--shade-c) / .55) 2.2deg 6deg);box-shadow:0 10px 30px -10px #0009,inset 0 0 0 1px rgb(var(--fg-c) / .18)}.hw-dial[data-astro-cid-w3rxu26r][hidden]{display:none}.hw-dial[data-astro-cid-w3rxu26r]:active{cursor:grabbing}.hw-dial[data-astro-cid-w3rxu26r]:focus-visible{box-shadow:0 0 0 3px var(--safe),0 10px 30px -10px #0009}.hw-dial-disc[data-astro-cid-w3rxu26r]{position:absolute;inset:7px;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgb(var(--bg-c) / .96),rgb(var(--shade-c) / .96));box-shadow:inset 0 2px 6px #00000080;transform:rotate(var(--rot, 0deg));transition:transform .55s cubic-bezier(.3,1.45,.5,1)}.hw-dial[data-astro-cid-w3rxu26r].dragging .hw-dial-disc[data-astro-cid-w3rxu26r]{transition:none}.hw-dial-k[data-astro-cid-w3rxu26r]{position:absolute;left:50%;top:50%;width:36px;height:36px;margin:-18px 0 0 -18px;padding:0;display:grid;place-items:center;transform:rotate(calc(var(--i) * 360deg / var(--dn))) translateY(calc(var(--ds) * -.33));color:rgb(var(--fg-c) / .62);font-size:11.5px;font-weight:800;letter-spacing:-.02em;cursor:inherit}.hw-dial-k[data-astro-cid-w3rxu26r].on{color:var(--safe)}@media(hover:hover){.hw-dial-k[data-astro-cid-w3rxu26r]:hover{color:var(--fg)}}.hw-dial-mark[data-astro-cid-w3rxu26r]{position:absolute;left:50%;top:-9px;margin-left:-6px;z-index:2;border:6px solid transparent;border-top:9px solid var(--safe);filter:drop-shadow(0 1px 2px rgb(0 0 0 / .5))}.hw-dial-cap[data-astro-cid-w3rxu26r]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 40% 35%,rgb(var(--fg-c) / .16),rgb(var(--fg-c) / .04));border:1px solid rgb(var(--fg-c) / .2);font-size:10.5px;font-weight:700;line-height:1.2;color:var(--fg);word-break:keep-all;pointer-events:none}@media(max-width:860px){.hw-word[data-astro-cid-w3rxu26r]{font-size:min(28vw,40svh)}.hw-cap[data-astro-cid-w3rxu26r],.hw-intro[data-astro-cid-w3rxu26r],.hw-ctl[data-astro-cid-w3rxu26r]{bottom:calc(12svh + var(--bar))}.hw-dial[data-astro-cid-w3rxu26r]{--ds: 108px;top:calc(var(--head) + 14px);margin-top:0}.hw-dial-k[data-astro-cid-w3rxu26r]{font-size:10px;width:30px;height:30px;margin:-15px 0 0 -15px}.hw-dial-cap[data-astro-cid-w3rxu26r]{width:42px;height:42px;font-size:9.5px}}@media(prefers-reduced-motion:reduce){.hw-dial-disc[data-astro-cid-w3rxu26r],.hw-scene[data-astro-cid-w3rxu26r],.hw-word[data-astro-cid-w3rxu26r],.hw-photo[data-astro-cid-w3rxu26r]{transition:none}.hw-word--mosaic[data-astro-cid-w3rxu26r]{animation:none}}
