@font-face{font-family:Science Gothic Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 200%;src:url(/_astro/science-gothic-cyrillic-ext-wdth-normal.9k9pJPTA.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Science Gothic Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 200%;src:url(/_astro/science-gothic-cyrillic-wdth-normal.CQtvns3C.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Science Gothic Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 200%;src:url(/_astro/science-gothic-vietnamese-wdth-normal.NtI-uih9.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Science Gothic Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 200%;src:url(/_astro/science-gothic-latin-ext-wdth-normal.CNRXrQB3.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Science Gothic Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:50% 200%;src:url(/_astro/science-gothic-latin-wdth-normal.F71I77a0.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Familjen Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/familjen-grotesk-vietnamese-wght-normal.DKRsWTd7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Familjen Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/familjen-grotesk-latin-ext-wght-normal.Cvgdx4cy.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Familjen Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/_astro/familjen-grotesk-latin-wght-normal.CfZa4wxB.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Familjen Grotesk Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/_astro/familjen-grotesk-vietnamese-wght-italic.BCQt9BXW.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Familjen Grotesk Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/_astro/familjen-grotesk-latin-ext-wght-italic.CKAuKJwj.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Familjen Grotesk Variable;font-style:italic;font-display:swap;font-weight:400 700;src:url(/_astro/familjen-grotesk-latin-wght-italic.Uc4KRZYH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Departure Mono;src:url(/fonts/DepartureMono-Regular.woff2)format("woff2");font-display:swap}:root{--paper:#efebe3;--paper-2:#e6e1d6;--card:#fbf9f4;--ink:#161514;--ink-2:#57534c;--ink-3:#68635a;--line:#d9d3c6;--red:#c93a30;--orange:#f07c2a;--yellow:#f3c746;--green:#45a864;--blue:#3e62d6;--white:#fbf9f4;--screen:#141312;--screen-ink:#d8d3c8;--screen-dim:#8f8a80;--ease:cubic-bezier(.22, 1, .36, 1);--spring:cubic-bezier(.34, 1.56, .64, 1);--display:"Science Gothic Variable", "Arial Black", sans-serif;--text:"Familjen Grotesk Variable", system-ui, sans-serif;--mono:"Departure Mono", ui-monospace, monospace;--noise:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.07 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");color-scheme:light}*,:before,:after{box-sizing:border-box}html{background:var(--paper);color:var(--ink);scroll-behavior:smooth;scroll-padding-top:84px}body{font-family:var(--text);background-image:var(--noise);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.55;overflow-x:clip}a{color:inherit}p{text-wrap:pretty;margin:0}h1,h2,h3{text-wrap:balance;margin:0}ul,ol{margin:0;padding:0;list-style:none}:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:6px}.wrap{max-width:1200px;margin:0 auto;padding-inline:32px}.mono{font-family:var(--mono);font-size:11px}.skip{z-index:50;background:var(--ink);color:var(--paper);border-radius:8px;padding:8px 12px;position:absolute;top:-48px;left:16px}.skip:focus{top:12px}.key{--face:var(--card);--fg:var(--ink);--edge:var(--ink);border:2px solid var(--edge);background:var(--face);height:44px;color:var(--fg);box-shadow:0 4px 0 var(--edge);font:600 16px/1 var(--text);cursor:pointer;transition:transform .12s var(--ease), box-shadow .12s var(--ease), background-color .2s var(--ease);border-radius:12px;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:inline-flex}.key:hover{box-shadow:0 5px 0 var(--edge);transform:translateY(-1px)}.key:active,.key[aria-current=true]{box-shadow:0 0 0 var(--edge);transform:translateY(4px)}.key[aria-current=true]{--face:var(--yellow)}.key[disabled]{cursor:progress;opacity:.8}.key.dark{--face:var(--ink);--fg:var(--paper);--edge:#000}.key.small{border-radius:10px;height:36px;padding:0 12px;font-size:14px}.key kbd{font:11px var(--mono);color:var(--ink-3)}.key.dark kbd{color:#a8a397}.st{--c:var(--yellow);--fg:var(--ink);background:var(--c);color:var(--fg);box-shadow:0 0 0 .075em var(--ink);transform:rotate(var(--r,0deg));border-radius:.16em;margin:0 .04em;padding:0 .2em .06em;display:inline-block}[data-tint=red]{--c:var(--red);--fg:#fff}[data-tint=blue]{--c:var(--blue);--fg:#fff}[data-tint=yellow]{--c:var(--yellow);--fg:var(--ink)}[data-tint=green]{--c:var(--green);--fg:var(--ink)}[data-tint=orange]{--c:var(--orange);--fg:var(--ink)}[data-tint=white]{--c:var(--white);--fg:var(--ink)}.top{z-index:20;background:color-mix(in oklab, var(--paper) 86%, transparent);backdrop-filter:blur(10px);transition:box-shadow .3s var(--ease);padding:14px 0;position:sticky;top:0}.top.scrolled{box-shadow:0 1px 0 var(--line)}.top .wrap{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:10px;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{background:var(--ink);border-radius:6px;grid-template-columns:repeat(3,8px);gap:2px;padding:3px;display:grid}.brand-mark i{background:var(--c);border-radius:2px;width:8px;height:8px}.nav{gap:8px;display:flex}.hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:40px;padding-block:56px 96px;display:grid}.name{font-family:var(--display);gap:.14em;font-size:clamp(40px,7vw,100px);font-weight:900;line-height:1;display:grid}.name-row{gap:.12em;display:flex}.name .st{width:1.02em;height:1.08em;box-shadow:0 0 0 .06em var(--ink), 0 .07em 0 .06em var(--ink);transition:background-color .38s var(--ease), color .38s var(--ease), translate .3s var(--ease);animation:slap .65s var(--spring) backwards;animation-delay:calc(80ms + var(--i) * 45ms);border-radius:.16em;place-items:center;margin:0;padding:0;display:inline-grid}.name-row:hover .st{translate:0 -.05em}.lede{max-width:34ch;color:var(--ink-2);margin-top:32px;font-size:21px;line-height:1.45}.lede strong{color:var(--ink);font-weight:600}.actions{flex-wrap:wrap;gap:10px;margin-top:32px;display:flex}.rise{animation:rise .8s var(--ease) backwards;animation-delay:var(--d,0s)}.pop{animation:1s cubic-bezier(.34,1.4,.64,1) .15s backwards pop}@keyframes slap{0%{opacity:0;transform:translateY(-.5em) rotate(calc(var(--r,0deg) * -6)) scale(1.3)}}@keyframes rise{0%{opacity:0;transform:translateY(16px)}}@keyframes pop{0%{opacity:0;transform:scale(.85)rotate(-8deg)}}.toy{justify-items:center;gap:18px;display:grid;position:relative}.stage{aspect-ratio:1;perspective:1100px;cursor:grab;touch-action:none;user-select:none;width:min(420px,100%);position:relative}.stage:active{cursor:grabbing}.cube{transform-style:preserve-3d;position:absolute;top:50%;left:50%}.cubie{width:var(--s);height:var(--s);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);transform-style:preserve-3d;position:absolute}.face{backface-visibility:hidden;background:#121110;border-radius:9px;position:absolute;inset:0}.face i{border-radius:6px;position:absolute;inset:4px}.face i[data-face=R]{background:var(--red)}.face i[data-face=L]{background:var(--orange)}.face i[data-face=U]{background:var(--white)}.face i[data-face=D]{background:var(--yellow)}.face i[data-face=F]{background:var(--green)}.face i[data-face=B]{background:var(--blue)}.face:after{content:"";border-radius:inherit;opacity:var(--dim,0);pointer-events:none;background:#000;position:absolute;inset:0}.shadow{filter:blur(2px);background:radial-gradient(closest-side,#16151447,#0000);border-radius:50%;width:56%;height:9%;position:absolute;bottom:2%;left:50%;transform:translate(-50%)}.tag{transform-origin:50% -34px;animation:swing 3.6s var(--ease) infinite alternate;pointer-events:none;position:absolute;top:-4%;right:-2%}.tag:before{content:"";background:var(--ink);width:1.5px;height:34px;position:absolute;top:-34px;left:50%}.tag div{border:2px solid var(--ink);background:var(--yellow);box-shadow:0 3px 0 var(--ink);font:700 14px/1.25 var(--text);border-radius:10px 6px 6px 10px;padding:10px 14px 10px 26px;position:relative}.tag div:before{content:"";background:var(--paper);border:2px solid var(--ink);border-radius:50%;width:8px;height:8px;margin-top:-4px;position:absolute;top:50%;left:9px}.tag small{font:11px var(--mono);color:var(--ink-2);display:block}@keyframes swing{0%{transform:rotate(-7deg)}to{transform:rotate(4deg)}}.controls{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.moves{min-height:16px;color:var(--ink-2);text-align:center}.hint{color:var(--ink-3);text-align:center}.hint .touch{display:none}@media (hover:none){.hint .mouse{display:none}.hint .touch{display:inline}}section{padding:96px 0}.head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:40px;display:flex}.head h2{font-family:var(--display);letter-spacing:-.02em;font-size:clamp(36px,5vw,64px);font-weight:900;font-stretch:108%;line-height:1.04}.head p{max-width:38ch;color:var(--ink-2)}.chip{border:2px solid var(--ink);background:var(--card);color:var(--ink);font:600 13px/1.2 var(--text);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.chip.live:before{content:"";background:#2f8a4f;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 2px oklab(56.447% -.109783 .0592206/.3)}.chip.accent{background:var(--yellow)}.chip.review{background:var(--blue);color:#fff}.work{gap:28px;display:grid}.card{border:2px solid var(--ink);background:var(--c);color:var(--fg);box-shadow:0 6px 0 var(--ink);transform-origin:50% 0;border-radius:30px;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:32px;padding:32px;display:grid}.card .meta{flex-wrap:wrap;gap:8px;display:flex}.card h3{font-family:var(--display);letter-spacing:-.01em;margin-top:20px;font-size:clamp(26px,3vw,36px);font-weight:800;line-height:1.08}.card .who{opacity:.9;margin-top:10px;font-weight:600}.card .body{max-width:46ch;margin-top:14px}.card .stats{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.stat{background:color-mix(in oklab, var(--ink) 88%, transparent);color:var(--paper);font:11px/1.3 var(--mono);border-radius:10px;padding:6px 10px}.screen{--cell:12px;border:2px solid var(--ink);background:var(--screen);height:424px;color:var(--screen-ink);border-radius:18px;align-self:start;padding:18px 18px 40px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 6px #1c1b19}.screen pre{height:100%;font:var(--cell) / calc(var(--cell) * 1.333) var(--mono);white-space:pre;margin:0;overflow:hidden}.screen .cap{color:var(--screen-dim);font:11px var(--mono);justify-content:space-between;display:flex;position:absolute;bottom:12px;left:18px;right:18px}.screen .hl{color:var(--screen);background:var(--yellow)}.screen .ok{color:#74d38f}.screen .bad{color:#ff8a7d}.screen .fld{color:#93abff}.screen .val{color:var(--yellow)}.screen .dim{color:var(--screen-dim)}@media (width>=1024px) and (height>=700px){.work .card{top:calc(92px + var(--i) * 16px);scale:calc(1 - var(--cover,0) * .05);filter:brightness(calc(1 - var(--cover,0) * .12));position:sticky}}.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.tile{border:2px solid var(--ink);background:var(--card);height:100%;box-shadow:0 5px 0 var(--ink);rotate:var(--r,0deg);transition:rotate .4s var(--ease), translate .4s var(--ease), box-shadow .2s var(--ease);border-radius:22px;flex-direction:column;gap:14px;padding:24px;text-decoration:none;display:flex;position:relative}.tile:hover{box-shadow:0 9px 0 var(--ink);translate:0 -4px;rotate:0deg}.tile pre{background:var(--paper-2);font:11px/14px var(--mono);color:var(--ink-2);white-space:pre;border-radius:12px;margin:0;padding:14px;overflow:hidden}.tile h3{font-size:19px;font-weight:700;line-height:1.3}.tile .authors{color:var(--ink-2);font-size:15px}.tile .authors b{color:var(--ink)}.tile .foot{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.path-card{border:2px solid var(--ink);background:var(--card);box-shadow:0 6px 0 var(--ink);border-radius:30px;padding:28px}.stops{padding:4px 4px 24px;display:grid}.stop{visibility:hidden;grid-area:1/1;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:8px 24px;display:grid}.stop.on{visibility:visible}.stop .yr{font-family:var(--display);letter-spacing:-.02em;font-size:56px;font-weight:900;line-height:1}.stop h3{font-size:24px;line-height:1.2}.stop p{color:var(--ink-2);grid-column:2;max-width:60ch}.keyboard{background:var(--ink);border-radius:20px;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;height:240px;padding:10px 10px 14px;display:grid;position:relative}.wkey{color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:translate .11s var(--ease), box-shadow .11s var(--ease);background:linear-gradient(#fdfcf8,#f1ede4);border:0;border-radius:4px 4px 12px 12px;flex-direction:column;justify-content:flex-end;gap:2px;padding:0 10px 14px;display:flex;position:relative;box-shadow:inset 0 -10px #d8d2c5,0 2px #000}.wkey:hover{background:linear-gradient(#fff,#f6f2ea)}.wkey:active{translate:0 3px;box-shadow:inset 0 -5px #d8d2c5,0 0 #000}.wkey[aria-pressed=true]{background:linear-gradient(#fff8dc, var(--yellow));box-shadow:inset 0 -10px #d3a92e,0 2px #000}.wkey .y{font:11px var(--mono);color:var(--ink-3)}.wkey .n{font-size:14px;font-weight:700;line-height:1.2}.wkey.open .n{color:var(--red)}.wkey .short{display:none}.bkey{z-index:2;pointer-events:none;background:linear-gradient(#2b2926,#0b0a09);border-radius:0 0 8px 8px;width:calc(7% - 1.4px);height:54%;margin-left:calc(-3.5% + .7px);position:absolute;top:10px;box-shadow:inset 0 -8px #000,0 3px #0006}@keyframes gliss{30%{translate:0 3px;box-shadow:inset 0 -5px #d8d2c5,0 0 #000}}.duo{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:24px;display:grid}.stand{border:2px solid var(--ink);box-shadow:0 6px 0 var(--ink);color:var(--ink);background:#fdfcf9;border-radius:30px;padding:28px 28px 24px}.stand .label{color:var(--ink-3)}.staff{width:100%;height:auto;margin-top:8px;display:block;overflow:visible}.staff.narrow{display:none}.staff .glyph{fill:currentColor}.staff .lyric{font:600 15px var(--text);fill:var(--ink-2);text-anchor:middle}.staff .n *{transition:fill .2s var(--ease), stroke .2s var(--ease)}.staff .n.on .glyph,.staff .n.on .lyric{fill:var(--red)}.staff .n.on line{stroke:var(--red)}.stand-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:12px;display:flex}.stand-foot p{max-width:46ch;color:var(--ink-2);font-size:15px}.side{gap:24px;display:grid}.note-card{border:2px solid var(--ink);background:var(--card);box-shadow:0 5px 0 var(--ink);border-radius:24px;padding:24px}.note-card h3{font-size:22px}.note-card p{color:var(--ink-2);margin-top:8px}.note-card.o{background:var(--orange)}.note-card.o p{color:var(--ink)}.contact{text-align:center}.contact h2{font-family:var(--display);letter-spacing:-.02em;font-size:clamp(44px,7vw,96px);font-weight:900;font-stretch:108%;line-height:1.02}.contact .sub{color:var(--ink-2);margin-top:20px}.contact .actions{justify-content:center}.contact .mail{font:700 clamp(22px, 3vw, 32px) var(--text);text-underline-offset:6px;text-decoration-thickness:3px;text-decoration-color:var(--yellow);margin-top:28px;display:inline-block}footer{color:var(--ink-3);padding:40px 0 56px;font-size:14px}footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.js [data-reveal]{opacity:0;transition:opacity .7s var(--ease) var(--d,0s), translate .9s var(--ease) var(--d,0s);translate:0 28px}.js [data-reveal].in{opacity:1;translate:0}.js [data-reveal=tilt]{rotate:calc(var(--r,0deg) * 5 + 4deg);transition-property:opacity,translate,rotate;transition-duration:.7s,.9s,.9s}.js [data-reveal=tilt].in{rotate:0deg}.js .head[data-reveal] .st{opacity:0}.js .head[data-reveal].in .st{opacity:1;animation:slap .65s var(--spring) .22s backwards}.js .path-card.in .wkey{animation:gliss .42s var(--ease);animation-delay:calc(.35s + var(--k) * 70ms)}@media (width<=960px){.hero{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:32px}.tag{order:-1;justify-self:start;animation:none;position:static;transform:rotate(-2deg)}.tag:before{display:none}.card{grid-template-columns:minmax(0,1fr);padding:22px}.tiles,.duo{grid-template-columns:minmax(0,1fr)}}@media (width<=860px){.nav{display:none}}@media (width<=640px){.wrap{padding-inline:16px}section{padding:64px 0}.lede{font-size:18px}.stage{width:min(300px,78%)}.screen{--cell:min(10px, calc((100vw - 108px) / 27.6));height:384px;padding:14px 12px 44px}.screen .cap{flex-wrap:wrap;gap:2px 12px;left:12px;right:12px}.keyboard{gap:4px;height:200px;padding:8px 8px 12px}.wkey{flex-direction:column-reverse;justify-content:flex-start;align-items:center;gap:6px;padding:0 0 10px}.wkey .full{display:none}.wkey .short{writing-mode:vertical-rl;white-space:nowrap;font-size:12px;display:block;transform:rotate(180deg)}.wkey .y{font-size:9px}.stop .yr{font-size:40px}.stop{grid-template-columns:minmax(0,1fr)}.stop p{grid-column:1}.staff.wide{display:none}.staff.narrow{display:block}.tag{top:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tag,.name .st,.rise,.pop,.js .head[data-reveal].in .st,.js .path-card.in .wkey{animation:none}.js [data-reveal],.js [data-reveal=tilt]{opacity:1;transition:none;translate:none;rotate:none}.js .head[data-reveal] .st{opacity:1}}
