@property --spin{syntax:"<angle>";inherits:true;initial-value:0deg}@property --bite{syntax:"<length>";inherits:true;initial-value:28px}.is-loading{overflow:hidden}.is-loading .portrait__img,.is-loading main .name{visibility:hidden}.loader{z-index:100;place-items:center;display:none;position:fixed;inset:0}.is-loading .loader{display:grid}.loader__bg{background:var(--page);position:absolute;inset:0}.loader__in{justify-items:center;gap:clamp(1.4rem,4svh,2.2rem);display:grid;position:relative}.loader__icon{object-fit:cover;transform-origin:0 0;border-radius:50%;width:clamp(8rem,24svh,12rem);height:clamp(8rem,24svh,12rem)}.loader__bar{justify-items:end;gap:.3rem;display:grid}.loader__slot{display:block}.loader .name{opacity:0;transform-origin:0 0;grid-area:auto;position:absolute;top:0;left:0}.loader.has-font .name{opacity:1}.loader .loader__track{stroke:var(--line)}.loader .loader__fill{stroke:var(--accent);stroke-dasharray:0 100}.loader__pct{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.3rem;font-weight:800}.loader.is-leaving .loader__pct{opacity:0;transition:opacity .2s}.hero{--p:clamp(12rem, min(23vw, 37svh), 30rem);--orbit-r:calc(var(--p) * .74);--t:clamp(2.4rem, 3.1vw, 3.05rem);min-height:100svh;padding-block:calc(env(safe-area-inset-top,0px) + 4.2rem) clamp(1rem, 2.6svh, 2.2rem);grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);column-gap:2rem;display:grid;position:relative}.hero__actions{z-index:5;grid-area:1/1;align-self:end;justify-items:start;padding-bottom:clamp(1.2rem,4.5svh,3rem);display:grid;position:relative}.doors{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.portrait{width:var(--p);aspect-ratio:1;grid-area:1/2;place-self:center;position:relative}.portrait__img{z-index:2;border:.42rem solid var(--page);object-fit:cover;border-radius:50%;width:100%;height:100%;position:relative}.heart{z-index:4;border:1px solid var(--line);background:var(--page);width:2.8rem;height:2.8rem;color:var(--accent);cursor:pointer;border-radius:.85rem;place-items:center;padding:0;font-size:1.25rem;display:grid;position:absolute;bottom:3%;left:3%;rotate:-8deg}.heart .i{z-index:2;grid-area:1/1;position:relative}.heart__fill{fill:currentColor;opacity:0;transform:scale(0)}.heart.is-liked{border-color:var(--accent-soft);background:var(--accent-soft)}.heart.is-liked .heart__fill{opacity:1;transform:none}.sparks{z-index:1;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.sparks span{--a:calc(var(--n) * 45deg);background:var(--accent);opacity:0;border-radius:50%;width:.26rem;height:.26rem;margin:-.13rem 0 0 -.13rem;position:absolute}.orbit{z-index:1;pointer-events:none;position:absolute;inset:0}.orbit li{--ang:calc(var(--i) * 45deg + 22.5deg + var(--spin) + var(--sc,0deg));width:var(--t);height:var(--t);margin:calc(var(--t) / -2);border:1px solid var(--line);background:var(--white);transform:rotate(var(--ang)) translateY(calc(var(--orbit-r) * -1)) rotate(calc(var(--ang) * -1));pointer-events:auto;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;left:50%}.orbit svg,.orbit img{object-fit:contain;width:58%;height:58%}.orbit li:after{content:attr(data-n);z-index:5;background:var(--ink);color:var(--page);white-space:nowrap;opacity:0;pointer-events:none;border-radius:999px;padding:.15rem .6rem;font-size:.74rem;position:absolute;bottom:calc(100% + .4rem);left:50%;transform:translate(-50%)}.orbit li:hover{z-index:6}.orbit li:hover:after{opacity:1}.name{--fs:clamp(4.4rem, min(13.4vw, 26svh), 24rem);z-index:5;font-family:var(--display);font-size:var(--fs);letter-spacing:-.055em;user-select:none;grid-area:2/1/auto/-1;align-items:center;font-weight:800;line-height:1;display:flex;position:relative}.name__k{flex:none}.name__w{cursor:grab;touch-action:pan-y;flex:1 1 0;min-width:.8em;height:.62em;margin-inline:.03em .06em}.name__w svg{width:100%;height:100%;overflow:visible}.name__w path{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round}.links__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:.4rem 2rem;display:flex}.links__head h2,.works h2,.gallery h2{font-family:var(--display);letter-spacing:-.045em;font-size:clamp(3.4rem,min(7.6vw,15svh),9.6rem);font-weight:800;line-height:1}.links__head p{color:var(--muted);padding-bottom:.9em}.works{padding-block:clamp(4rem,12svh,9rem) clamp(3rem,8svh,6rem);container-type:inline-size}.works__stage{gap:1.5rem;display:grid}.works__all{gap:clamp(1.8rem,3vw,3rem);margin-top:clamp(1.6rem,3vw,2.6rem);display:grid}.row{align-items:flex-start;gap:clamp(.75rem,1.2vw,1.3rem);display:flex}.row--inset{margin-left:16.6667%}.work{--bite:1.8rem;flex:var(--ar) 1 0;min-width:0;display:block;position:relative}.work__media{display:block;position:relative}.work__frame{aspect-ratio:var(--ar);background:var(--surface);mask:radial-gradient(circle var(--bite) at calc(100% - 1.1rem) calc(100% - 1.1rem), #0000 97%, #000 100%);border-radius:1.1rem;display:block;overflow:hidden}.work__frame img{object-fit:cover;width:100%;height:100%}.work__go{border:1.5px solid var(--accent);background:var(--page);width:2.6rem;height:2.6rem;color:var(--accent-strong);border-radius:50%;place-items:center;font-size:1.15rem;display:grid;position:absolute;bottom:-.2rem;right:-.2rem}.work__cap{gap:.05rem;padding:.65rem .2rem 0 .15rem;display:grid}.work__title{word-break:auto-phrase;text-wrap:pretty;font-size:.96rem;font-weight:500;line-height:1.45}.work__kind{color:var(--muted);font-size:.78rem}.work:hover{--bite:2.35rem}.work:hover .work__go{background:var(--accent);border-color:var(--accent);color:var(--white)}.work:hover .work__title{color:var(--accent-strong)}.works__more{justify-content:center;align-items:flex-start;display:flex}.more{border:0;border-bottom:1px solid var(--ink);cursor:pointer;background:0 0;align-items:center;gap:.5rem;padding:.6rem .15rem;font-weight:500;display:inline-flex}.more:hover{border-color:var(--accent);color:var(--accent-strong)}.more .i{font-size:1rem}.more[aria-expanded=true] .i{transform:rotate(180deg)}.gallery{grid-template-columns:minmax(0,3.5fr) minmax(0,8.5fr);align-items:center;gap:clamp(1.5rem,3vw,3.5rem);padding-block:clamp(3rem,9svh,7rem);display:grid}.gallery__head{justify-items:start;gap:1.1rem;display:grid}.strips{gap:clamp(.5rem,.9vw,.95rem);height:clamp(20rem,60svh,38rem);display:flex}.strips li{flex:1 1 0;min-width:0}.strips li:nth-child(odd){translate:0 -1.4rem}.strips li:nth-child(2n){translate:0 1.4rem}.strips li:hover,.strips li:focus-within{flex-grow:2.9}.strip{background:var(--surface);border-radius:999px;height:100%;display:block;position:relative;overflow:hidden}.strip img{object-fit:cover;object-position:var(--fx,50%) 30%;width:100%;height:100%}.strip img+img{position:absolute;inset:0}.links{padding-block:clamp(4rem,12svh,9rem) clamp(4rem,16svh,9rem)}.linklist{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(1.5rem,3vw,3.5rem);margin-top:clamp(1.2rem,3svh,2.4rem);display:grid}.lnk{border-bottom:1px solid var(--line);align-items:center;gap:.7rem;min-width:0;padding:.9rem .1rem;font-size:clamp(1.05rem,1.55vw,1.5rem);font-weight:500;line-height:1.4;display:flex}.lnk .i{stroke-width:1.8px;color:var(--accent);font-size:1.1em}.lnk .lnk__go{color:var(--muted);margin-left:auto;font-size:.85em}.lnk:hover{border-color:var(--accent);color:var(--accent-strong)}.foot__thanks{color:var(--accent-strong);font-weight:500}@media (width>=900px){.works{align-content:center;min-height:100svh;padding-block:4.8rem 1.4rem;display:grid}.works__stage{--cap:3.4rem;--row-gap:clamp(1rem, 2.4svh, 1.8rem);--avail:calc(100svh - 6.2rem - 2 * var(--cap) - var(--row-gap));--r1:min(calc((100cqw - var(--gap)) / 3.5556), calc(var(--avail) * .64));--r2:min(calc(var(--avail) - var(--r1)), calc((100cqw * .7 - 2 * var(--gap)) / 5.1241));gap:0 var(--gap);grid-template:"top top""head bottom""more bottom"minmax(0,1fr)/minmax(0,1fr) auto}.works__head{margin-top:var(--row-gap);grid-area:head}.row--top{gap:var(--gap);grid-area:top}.row--top .work{flex:0 0 calc(var(--ar) * var(--r1))}.row--bottom{gap:var(--gap);margin-top:var(--row-gap);grid-area:bottom}.row--bottom .work{flex:0 0 calc(var(--ar) * var(--r2))}.works__more{grid-area:more;justify-content:flex-start;margin-top:.7rem}.gallery{min-height:100svh;padding-block:4.8rem 2rem}.links{min-height:calc(100svh - 3.45rem);padding-block:4.8rem 2rem}}@media (width>=900px) and (width<=1280px){.hero__actions .doors{grid-template-columns:repeat(2,1fr);width:max-content;display:grid}.hero__actions .door-main,.hero__actions .door{justify-content:center}}@media (width<=899px){.hero{--p:clamp(10.5rem, min(47vw, 25svh), 15rem);--t:2.35rem;padding-block:calc(env(safe-area-inset-top,0px) + 3.8rem) 1.6rem;grid-template-rows:minmax(0,1fr) auto auto;grid-template-columns:minmax(0,1fr)}.portrait{margin-block:calc(var(--orbit-r) - var(--p) / 2 + var(--t) / 2 + .6rem);grid-area:1/1}.name{--fs:min(23.4vw, 11.5rem);grid-row:3}.hero__actions{grid-area:2/1;justify-items:stretch;padding:0 0 2.4rem}.hero__actions .doors{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.hero__actions .door-main,.hero__actions .door{justify-content:center;padding-inline:.6rem;font-size:.92rem}.gallery{grid-template-columns:minmax(0,1fr)}.strips{height:clamp(20rem,96vw,34rem)}.links{padding-bottom:46vw}}@media (width<=760px){.works__all{gap:1.5rem;margin-top:1.5rem}.row{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem .75rem;display:grid}.row--inset{margin:0}.work--wide{grid-column:1/-1}.strips{scroll-snap-type:x mandatory;scrollbar-width:none;overflow-x:auto}.strips li{scroll-snap-align:start;flex:0 0 min(46vw,13rem)}.strips li:nth-child(odd),.strips li:nth-child(2n){translate:none}.strips li:hover,.strips li:focus-within{flex-grow:0}.linklist{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:no-preference){.orbit{animation:150s linear infinite orbit-turn}.portrait:hover .orbit,.orbit:hover{animation-play-state:paused}.work__go,.work__title,.lnk,.more,.more .i,.orbit li:after{transition:transform .22s,color .22s,background .22s,border-color .22s,opacity .18s}.work{transition:--bite .34s var(--spring)}.work__frame img{transition:transform .4s var(--ease)}.work:hover .work__frame img{transform:scale(1.025)}.work:hover .work__go{transform:rotate(45deg)scale(1.1)}.strips li{transition:flex-grow .55s var(--ease)}.strip img+img{animation:.3s photo-in}.motion .doors{animation:rise .5s var(--ease) .8s backwards}.motion .orbit li{animation:from-center .62s var(--spring) calc(.72s + var(--i) * 50ms) backwards}.motion .heart.is-entering{animation:heart-in .4s var(--spring) 1.15s backwards}.loader .name{transition:opacity .25s}.heart{transition:scale .18s var(--ease), background .26s ease, border-color .26s ease}.heart:hover{scale:1.05}.heart:active{scale:.93}.heart__fill{transition:transform .22s cubic-bezier(.4,0,.7,.2),opacity .12s .1s}.heart.is-liked .heart__fill{transition:transform .48s cubic-bezier(.3,1.9,.5,1),opacity 50ms linear}.heart.burst .sparks span{animation:.52s cubic-bezier(.16,1,.3,1) both heart-spark}}@keyframes orbit-turn{to{--spin:360deg}}@keyframes from-center{0%{opacity:0;scale:0}}@keyframes heart-in{0%{opacity:0;translate:0 .65rem;scale:.7}}@keyframes heart-spark{0%{opacity:0;transform:rotate(var(--a)) translateY(-.95rem) scale(.7)}22%{opacity:1}to{opacity:0;transform:rotate(var(--a)) translateY(-2.2rem) scale(0)}}@keyframes photo-in{0%{opacity:0}}
