.lineup{--k:calc(100cqw / 560);position:absolute;inset:0;overflow:visible;container-type:inline-size}.lu--mac{--x:18;--y:26;--z:1}.lu--ipad{--x:300;--y:58;--z:2}.lu--duo{--x:132;--y:226;--z:3}.lu--promax{--x:376;--y:176;--z:4}.lu--phone{--x:462;--y:190;--z:5}:is(a:hover,a:focus-visible) .lu--mac{translate:calc(-6 * var(--k)) calc(-10 * var(--k))}:is(a:hover,a:focus-visible) .lu--ipad{translate:calc(8 * var(--k)) calc(-12 * var(--k));rotate:1deg}:is(a:hover,a:focus-visible) .lu--duo{translate:calc(-10 * var(--k)) calc(-4 * var(--k));rotate:-1.5deg}:is(a:hover,a:focus-visible) .lu--promax{translate:calc(-4 * var(--k)) calc(-8 * var(--k))}:is(a:hover,a:focus-visible) .lu--phone{translate:calc(10 * var(--k)) calc(-6 * var(--k));rotate:4deg}@media (prefers-reduced-motion:reduce){.lu{transition:none}}.lu{left:calc(var(--x) * var(--k));top:calc(var(--y) * var(--k));width:calc(var(--w) * var(--k));height:calc(var(--h) * var(--k));z-index:var(--z,1);transition:translate .9s var(--ease-out), rotate .9s var(--ease-out), scale .9s var(--ease-out);position:absolute}.lu__screen{isolation:isolate;background:#050807;position:absolute;overflow:hidden}.lu__screen img{object-fit:cover;object-position:top center;width:100%;height:100%;position:absolute;inset:0}.lu__screen:after{content:"";z-index:2;pointer-events:none;background:linear-gradient(115deg,#ffffff17,#fff0 30% 72%,#ffffff0a);position:absolute;inset:0}.lu--mac{--w:312.6;--h:224}.lu--mac .lu__body{inset:0 0 calc(12 * var(--k));border-radius:calc(9 * var(--k)) calc(9 * var(--k)) calc(2 * var(--k)) calc(2 * var(--k));box-shadow:0 0 0 calc(.7 * var(--k)) #9a9da3, 0 0 0 calc(1.2 * var(--k)) #505359, inset 0 0 0 calc(.4 * var(--k)) #ffffff14;background:#060607;position:absolute}.lu--mac .lu__screen{left:calc(5.3 * var(--k));right:calc(5.3 * var(--k));top:calc(7 * var(--k));bottom:calc(9 * var(--k));border-radius:calc(5 * var(--k)) calc(5 * var(--k)) calc(.8 * var(--k)) calc(.8 * var(--k))}.lu--mac .lu__notch{z-index:3;left:50%;top:calc(7 * var(--k) - 1px);width:calc(32 * var(--k));height:calc(5.6 * var(--k));border-radius:0 0 calc(1.8 * var(--k)) calc(1.8 * var(--k));background:#060607;position:absolute;translate:-50%}.lu--mac .lu__notch:after{content:"";width:calc(1.8 * var(--k));aspect-ratio:1;background:radial-gradient(circle at 35% 35%,#3a4a70,#0b0f19 65%);border-radius:50%;position:absolute;top:42%;left:50%;translate:-50% -50%}.lu--mac .lu__base{height:calc(12.5 * var(--k));position:absolute;bottom:0;left:-2.5%;right:-2.5%}.lu--mac .lu__deck{clip-path:polygon(1.1% 0,98.9% 0,100% 44%,99.7% 76%,98.6% 100%,1.4% 100%,.3% 76%,0 44%);background:linear-gradient(90deg,#00000040,#0000 10%,#ffffff1a 50%,#0000 90%,#00000040),linear-gradient(#2c2e33 0%,#3b3d42 30%,#8d9096 42%,#4a4c52 48%,#303237 75%,#1c1d21 100%);position:absolute;inset:0}.lu--mac .lu__hinge{z-index:1;background:linear-gradient(#0d0e10,#3c3e4499);border-radius:0 0 4px 4px;width:70%;height:16%;position:absolute;top:0;left:50%;translate:-50%}.lu--mac .lu__scoop{z-index:1;background:linear-gradient(#1b1c20,#3d3f45);border-radius:0 0 50% 50%/0 0 100% 100%;width:11%;height:34%;position:absolute;top:43%;left:50%;translate:-50%}.lu--ipad{--w:249.7;--h:177.5}.lu--ipad .lu__body{border-radius:calc(11.5 * var(--k));box-shadow:0 0 0 calc(.6 * var(--k)) #3c3e43, 0 0 0 calc(1.1 * var(--k)) #17181b, inset 0 0 0 calc(.4 * var(--k)) #ffffff12;background:#07080a;position:absolute;inset:0}.lu--ipad .lu__screen{inset:calc(8.4 * var(--k));border-radius:calc(4.5 * var(--k))}.lu--ipad .lu__cam{left:50%;top:calc(4.2 * var(--k));width:calc(1.9 * var(--k));aspect-ratio:1;background:radial-gradient(circle at 35% 35%,#33415f,#07080c 65%);border-radius:50%;position:absolute;translate:-50% -50%}.lu--duo{--w:164.6;--h:117.8}.lu--duo .lu__body{border-radius:calc(9 * var(--k));padding:calc(.9 * var(--k));background:linear-gradient(90deg,#3a3b40,#5c5e64 20%,#2b2c30 48%,#1d1e21 50%,#2b2c30 52%,#55575d 80%,#36373c);position:absolute;inset:0}.lu--duo .lu__glass{inset:calc(.9 * var(--k));border-radius:calc(8.2 * var(--k));background:#030304;position:absolute}.lu--duo .lu__screen{inset:calc(3.4 * var(--k));border-radius:calc(5.6 * var(--k))}.lu--duo .lu__crease{z-index:3;width:calc(2.4 * var(--k));pointer-events:none;background:linear-gradient(90deg,#fff0,#ffffff12 35%,#0000002e 50%,#ffffff0d 65%,#fff0);position:absolute;top:0;bottom:0;left:50%;translate:-50%}.lu--promax{--w:77.6;--h:163.4}.lu--phone{--w:71.9;--h:150}.lu--promax .lu__body,.lu--phone .lu__body{border-radius:calc(12.4 * var(--k));padding:calc(1 * var(--k));background:linear-gradient(145deg,#5b5d63 0%,#2a2b30 18%,#4b4d53 42%,#1e1f23 64%,#55575d 86%,#2c2d31 100%);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #ffffff29}.lu--promax .lu__glass,.lu--phone .lu__glass{inset:calc(1 * var(--k));border-radius:calc(11.4 * var(--k));background:#030304;position:absolute}.lu--promax .lu__screen,.lu--phone .lu__screen{inset:calc(2.6 * var(--k));border-radius:calc(9.6 * var(--k))}.lu--promax .lu__island,.lu--phone .lu__island{z-index:3;left:50%;top:calc(4.6 * var(--k));width:calc(20 * var(--k));height:calc(5.9 * var(--k));background:#000;border-radius:99px;position:absolute;translate:-50%}.lu--phone.is-side{--w:150;--h:71.9}.lu--phone.is-side .lu__island{left:calc(4.6 * var(--k));width:calc(5.9 * var(--k));height:calc(20 * var(--k));top:50%;translate:0 -50%}@view-transition{navigation:auto}::view-transition-group(*){animation-duration:.6s;animation-timing-function:cubic-bezier(.76,0,.24,1)}.page-portfolio main{padding:calc(var(--header-h) + clamp(1.5rem, 5vh, 3.5rem)) var(--gutter) 0}html.motion:has(.page-portfolio){scroll-behavior:smooth}.page-portfolio .site-header:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#050507f5,#050507e6 55%,#05050700);position:absolute;inset:0 0 -4.75rem}.pf-hero{grid-template-columns:minmax(0,1fr) minmax(0,auto);align-items:end;gap:clamp(1.25rem,3vh,2rem) 3rem;padding-bottom:clamp(2rem,5vh,3rem);display:grid}.pf-hero__title{grid-column:1/-1}.pf-hero__title .giant{font-size:max(3.6rem, min(17vw, 17rem, calc(136vw / var(--chars,8))))}.pf-hero__lead{font-size:var(--fs-lead);color:var(--on-ink-soft);grid-column:1/-1;max-width:52ch;line-height:1.42}.pf-dock{--base:3.3rem;grid-column:1/-1;justify-self:start;min-width:0;max-width:100%}.pf-dock ul{height:calc(var(--base) + 1.3rem);box-shadow:inset 0 0 0 1px var(--line-ink), 0 1.5rem 3rem #00000073;background:#16181fb8;border-radius:1.5rem;align-items:flex-end;gap:.55rem;margin:0;padding:.65rem .75rem;display:flex}.pf-dock li{--s:1;width:calc(var(--base) * var(--s));transition:width .18s var(--ease-out);flex:none;position:relative}.pf-dock a{text-decoration:none;display:block}.pf-dock__icon{--size:100%;aspect-ratio:1;width:100%;height:auto;display:block}.pf-dock__name{background:var(--bone);color:var(--ink);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s var(--ease-out), translate .25s var(--ease-out);border-radius:.45rem;padding:.28rem .6rem;font-size:.78rem;font-weight:650;position:absolute;bottom:calc(100% + .55rem);left:50%;translate:-50% .3rem}.pf-dock a:hover .pf-dock__name,.pf-dock a:focus-visible .pf-dock__name{opacity:1;translate:-50%}.pf-dock a:focus-visible{outline:none}.pf-dock a:focus-visible .pf-dock__icon{outline:2px solid var(--bone);outline-offset:3px}.pf-index{top:calc(var(--header-h) + .4rem);z-index:10;width:fit-content;max-width:100%;margin:0 auto;position:sticky}.pf-index ul{z-index:1;box-shadow:inset 0 0 0 1px var(--line-ink), 0 1rem 2.5rem #0006;-webkit-backdrop-filter:blur(16px)saturate(1.2);scrollbar-width:none;background:#0d0e13eb;border-radius:999px;gap:.15rem;margin:0;padding:.3rem;display:flex;position:relative;overflow-x:auto}.pf-index ul::-webkit-scrollbar{display:none}.pf-index a{z-index:1;white-space:nowrap;color:var(--bone);transition:color .35s var(--ease-out);border-radius:999px;align-items:baseline;gap:.4rem;padding:.55rem 1rem;font-size:.92rem;font-weight:620;text-decoration:none;display:inline-flex;position:relative}.pf-index a:hover{color:var(--bone);background:#eeebe414}.pf-index a[aria-current=true]{color:var(--ink);background:0 0}.pf-index__n{font-variant-numeric:tabular-nums;opacity:.6;font-size:.72rem;font-weight:600}.pf-index__pill{z-index:2;background:var(--bone);clip-path:inset(0 var(--pill-r,100%) 0 var(--pill-x,0) round 999px);opacity:0;pointer-events:none;transition:clip-path .55s var(--ease-out), opacity .3s;mix-blend-mode:difference;position:absolute;inset:.3rem 0}.pf-index[data-ready] .pf-index__pill{opacity:1}.pf-index[data-ready] a[aria-current=true]{color:var(--bone)}.pf-shelf{scroll-margin-top:calc(var(--header-h) + 3.5rem);padding-top:clamp(4rem,12vh,8rem)}.pf-shelf__head{border-bottom:1px solid var(--line-ink);grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:1rem clamp(1.5rem,3vw,3rem);margin-bottom:clamp(1.25rem,3vh,2rem);padding-bottom:clamp(1.25rem,3vh,2rem);display:grid}.pf-shelf__word{font-size:clamp(3.6rem,12vw,11.5rem)}.pf-shelf__word .ch{font-stretch:calc(var(--wdth,100) * 1%);display:inline-block}.pf-shelf__intro{gap:.35rem;max-width:30rem;padding-bottom:.5rem;display:grid}.pf-shelf__title{letter-spacing:-.025em;font-size:clamp(1.2rem,1.6vw,1.6rem);font-weight:720;line-height:1.12}.pf-shelf__lead{color:var(--on-ink-soft);line-height:1.45}.pf-shelf__count{color:var(--on-ink-soft);white-space:nowrap;padding-bottom:.55rem}.pf-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(2rem,4vh,3rem) clamp(1rem,1.8vw,1.75rem);margin:0;display:grid}.pf-card{grid-column:span 4;min-width:0}.pf-card--half,.pf-card--large{grid-column:span 6}.pf-card--feature{grid-column:1/-1}.pf-card[hidden]{display:none}.pf-card__link{gap:1rem;height:100%;text-decoration:none;display:grid}.pf-card--feature .pf-card__link{grid-template-columns:minmax(0,7fr) minmax(0,4fr);align-items:center;gap:clamp(1.5rem,3.5vw,3.5rem)}@media (pointer:fine){html.motion .pf-card__media{cursor:none}}.pf-card__media{aspect-ratio:16/10;border-radius:var(--radius-m);background:var(--ink-3);isolation:isolate;position:relative;overflow:hidden;box-shadow:0 1.5rem 3rem #00000059}.pf-card--feature .pf-card__media{aspect-ratio:16/9}.pf-card__media>img,.pf-card__media>video{object-fit:cover;width:100%;height:100%;transition:transform 1.2s var(--ease-out), opacity .6s var(--ease-out), filter .6s var(--ease-out);position:absolute;inset:0}.pf-card__media>video{opacity:0}.pf-card[data-playing] .pf-card__media>video{opacity:1}.pf-card__link:hover .pf-card__media>img,.pf-card__link:hover .pf-card__media>video,.pf-card__link:focus-visible .pf-card__media>img{transform:scale(1.045)}.pf-card__media--screens{background:radial-gradient(90% 80% at 50% 105%, color-mix(in oklab, var(--tint,var(--ikb)) 55%, transparent), transparent 70%), var(--ink-2)}.pf-screens{position:absolute;inset:0}.pf-screens__s{aspect-ratio:1242/2688;width:auto;height:104%;transition:translate .9s var(--ease-out), rotate .9s var(--ease-out), scale .9s var(--ease-out);border-radius:.7rem;position:absolute;top:9%;left:50%;translate:-50%;box-shadow:0 1.5rem 3rem #0000008c,0 0 0 1px #eeebe41a}.pf-screens__s--0{translate:-118% 7%;rotate:-9deg;scale:.9}.pf-screens__s--2{translate:18% 7%;rotate:9deg;scale:.9}.pf-screens__s--1{z-index:1}.pf-card__link:hover .pf-screens__s--0,.pf-card__link:focus-visible .pf-screens__s--0{translate:-138% 4%;rotate:-13deg}.pf-card__link:hover .pf-screens__s--2,.pf-card__link:focus-visible .pf-screens__s--2{translate:38% 4%;rotate:13deg}.pf-card__link:hover .pf-screens__s--1,.pf-card__link:focus-visible .pf-screens__s--1{translate:-50% -4%;scale:1.04}.pf-card__body{align-content:start;gap:.7rem;display:grid}.pf-card__head{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.8rem;display:grid}.pf-card__icon{--size:2.75rem}.pf-card__name{gap:.15rem;min-width:0;display:grid}.pf-card__title{letter-spacing:-.035em;transition:color .35s var(--ease-out);font-size:clamp(1.3rem,1.7vw,1.75rem);font-weight:780;line-height:1}.pf-card__platforms{color:var(--on-ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.pf-card__year{color:var(--on-ink-soft);align-self:start;padding-top:.2rem;font-size:.85rem;font-weight:600}.pf-card__tagline{max-width:52ch;color:var(--on-ink-soft);font-size:.95rem;line-height:1.45}.pf-card__link:hover .pf-card__title,.pf-card__link:focus-visible .pf-card__title{color:var(--ikb-hi)}.pf-card__badges{flex-wrap:wrap;gap:.4rem;display:flex}.pf-badge{box-shadow:inset 0 0 0 1px var(--line-ink);border-radius:999px;padding:.22rem .6rem;font-size:.74rem;font-weight:600}.pf-badge--award{background:var(--ikb);box-shadow:none}.pf-badge--dev{color:var(--ink);background:var(--bone);box-shadow:none}.pf-soon{gap:1rem;margin-top:clamp(2rem,4vh,3rem);display:grid}.pf-soon__title{color:var(--on-ink-soft)}.pf-soon__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,1.8vw,1.75rem);margin:0;display:grid}.pf-soon__item{aspect-ratio:16/7;border-radius:var(--radius-m);background:var(--bg,var(--ink-3));box-shadow:inset 0 0 0 1px var(--line-ink);position:relative;overflow:hidden}.pf-soon__item img{object-fit:contain;width:100%;height:100%}.pf-soon__badge{box-shadow:inset 0 0 0 1px var(--line-ink);background:#050507b3;border-radius:999px;padding:.22rem .6rem;font-size:.74rem;font-weight:600;position:absolute;bottom:.75rem;left:.75rem}.pf-card--large .pf-card__icon,.pf-card--half .pf-card__icon{--size:3.1rem}.pf-card--large .pf-card__title,.pf-card--half .pf-card__title{font-size:clamp(1.5rem,2.3vw,2.3rem)}.pf-card--feature .pf-card__body{gap:1rem}.pf-card--feature .pf-card__icon{--size:3.75rem}.pf-card--feature .pf-card__title{letter-spacing:-.045em;font-size:clamp(1.9rem,3.4vw,3.4rem)}.pf-card--feature .pf-card__tagline{font-size:var(--fs-lead);color:var(--bone);line-height:1.4}.pf-card__features{margin:0;display:grid}.pf-card__features li{border-top:1px solid var(--line-ink);align-items:baseline;gap:.75rem;padding:.6rem 0;font-size:.92rem;font-weight:550;display:flex}.pf-card__features li:before{content:"";background:var(--ikb-hi);flex:none;width:.45rem;height:.45rem;translate:0 -.1rem}.pf-end{border-top:1px solid var(--line-ink);justify-items:start;gap:1.5rem;margin-top:clamp(5rem,14vh,9rem);padding:clamp(4rem,12vh,8rem) 0;display:grid}.pf-end__title{letter-spacing:-.045em;max-width:14ch;font-size:clamp(2.6rem,8vw,8rem);font-weight:860;line-height:.9}.pf-end__title span{color:var(--ikb-hi)}.pf-end__lead{max-width:44ch;font-size:var(--fs-lead);color:var(--on-ink-soft);line-height:1.42}.pf-cursor{z-index:var(--z-hud);background:var(--ikb);width:5.5rem;height:5.5rem;color:var(--bone);pointer-events:none;opacity:0;border-radius:50%;place-items:center;margin:-2.75rem 0 0 -2.75rem;font-size:.9rem;font-weight:700;display:grid;position:fixed;top:0;left:0;scale:0}@media (pointer:coarse){.pf-cursor{display:none}}@media (width<=1100px){.pf-hero{grid-template-columns:minmax(0,1fr)}.pf-dock{justify-self:start;max-width:100%}.pf-card,.pf-card--half,.pf-card--large{grid-column:span 6}.pf-card--feature .pf-card__link{grid-template-columns:1fr}}@media (width<=760px){.pf-dock{--base:2.9rem;margin-inline:calc(-1 * var(--gutter));justify-self:stretch}.pf-dock ul{scroll-snap-type:x proximity;scroll-padding-inline:var(--gutter);padding-inline:var(--gutter);box-shadow:none;scrollbar-width:none;background:0 0;border-radius:0;height:auto;overflow-x:auto}.pf-dock ul::-webkit-scrollbar{display:none}.pf-dock li{scroll-snap-align:start}.pf-dock__name{display:none}.pf-index{margin-inline:calc(-1 * var(--gutter) + .5rem)}.pf-shelf__head{grid-template-columns:1fr auto}.pf-shelf__word{grid-column:1/-1;font-size:clamp(3.2rem,19vw,6rem)}.pf-shelf__intro{grid-column:1;padding:0}.pf-shelf__count{grid-area:2/2;padding:0}.pf-grid{grid-template-columns:1fr}.pf-card,.pf-card--half,.pf-card--large,.pf-card--feature{grid-column:1}.pf-soon__list{grid-template-columns:1fr}.pf-card__icon{--size:2.4rem}@supports (animation-timeline:scroll()){.page-portfolio .site-header:before{background:linear-gradient(var(--ink) calc(100% - 1.5rem), #05050700);animation:linear both pf-scrim scroll(root);animation-range:0 9rem;inset:0 0 -5rem}@keyframes pf-scrim{0%{opacity:.35}to{opacity:1}}}.pf-dock ul{mask-image:linear-gradient(90deg,#000 calc(100% - 2.5rem),#0000)}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
