@import "https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,300..600;1,300..500&family=Space+Grotesk:wght@400;500&display=swap";:root{--black:#08070a;--white:#edeae4;--grey:#8b8794;--violet:#3a1f5c;--magenta:#7a2e9c;--lilac:#cbb7e6;--f-fut:"Jost", "Futura", system-ui, sans-serif;--f-grotesk:"Space Grotesk", system-ui, sans-serif;--t-2:.5625rem;--t-1:.75rem;--t0:1rem;--t1:1.333rem;--t2:1.777rem;--t3:2.369rem;--t4:3.157rem;--t6:5.61rem;--t5:4.209rem;--t8:9.966rem;--fs-micro:var(--t-2);--fs-label:var(--t-1);--fs-body:var(--t0);--fs-sub:var(--t1);--fs-dicitura:var(--t2);--fs-phrase:var(--t3);--fs-tooltip-title:var(--t1);--fs-led:var(--t1);--fs-mail:var(--t4);--fs-name:var(--t6);--fs-display:var(--t8);--pad:48px;--mx:50%;--my:50%}@media (width<=640px){:root{--pad:16px;--fs-dicitura:var(--t0);--fs-sub:var(--t0);--fs-phrase:var(--t1);--fs-mail:var(--t2);--fs-name:var(--t3);--fs-display:var(--t5);--fs-led:var(--t-1)}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{background:var(--black);color:var(--white);font-family:var(--f-grotesk);-webkit-font-smoothing:antialiased;cursor:none}a{color:inherit;text-decoration:none}::selection{background:var(--magenta);color:var(--white)}.graphstage,.graphstage *{cursor:crosshair!important}.graphstage #graph.hovering{cursor:pointer!important}.contact,.contact *{cursor:auto!important}.contact .mail{cursor:pointer!important}.scene{opacity:0;visibility:hidden;pointer-events:none;filter:blur(4px);transition:opacity 1.8s cubic-bezier(.33,0,.1,1),transform 2.1s cubic-bezier(.33,0,.1,1),filter 1.4s,visibility 2.1s cubic-bezier(.33,0,.1,1);position:fixed;inset:0;transform:scale(1.03)}.scene.on{opacity:1;visibility:visible;pointer-events:auto;filter:blur();transform:scale(1)}.scene.enter{clip-path:circle(10%);animation:2.1s cubic-bezier(.33,0,.1,1) forwards irisIn}@keyframes irisIn{to{clip-path:circle(150%)}}.hero{z-index:10;background:#000}.hero:not(.on){visibility:visible;opacity:1;filter:none;pointer-events:none;transform:none}.hero:not(.on) .center,.hero:not(.on) .lab,.hero:not(.on) .uc,.hero:not(.on) .herofade,.hero:not(.on) .vig,.hero:not(.on) .grain,.hero:not(.on) .grade,.hero:not(.on) .grade2{pointer-events:none;transition:opacity .7s;opacity:0!important}.hero:not(.on) .frame{opacity:.16;transition:opacity 1.6s cubic-bezier(.33,0,.1,1)}.hero.on .frame{opacity:1;transition:opacity 1.6s cubic-bezier(.33,0,.1,1)}.graphsec{z-index:20;background:#08070ae6}.contact{z-index:30;background:#08070ae6;flex-direction:column;justify-content:center;display:flex;overflow:hidden}.dots{z-index:60;gap:16px;display:grid;position:fixed;top:50%;right:24px;transform:translateY(-50%)}.dots b{cursor:pointer;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.dots b:before{content:"";background:#edeae440;border-radius:50%;width:7px;height:7px;transition:background .4s,transform .4s}.dots b.on:before{background:var(--magenta);transform:scale(1.5)}.hint{z-index:60;font-family:var(--f-grotesk);font-size:var(--fs-label);letter-spacing:.26em;text-transform:lowercase;color:var(--grey);opacity:.7;transition:opacity .6s;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}#boot{z-index:90;pointer-events:none;-webkit-mask:radial-gradient(circle var(--r,0px) at 50% 50%, transparent 99.5%, #000 100%);-webkit-mask:radial-gradient(circle var(--r,0px) at 50% 50%, transparent 99.5%, #000 100%);mask:radial-gradient(circle var(--r,0px) at 50% 50%, transparent 99.5%, #000 100%);background:#050408;position:fixed;inset:0}#boot canvas{width:100%;height:100%;position:absolute;inset:0}#flash{z-index:89;opacity:0;pointer-events:none;background:#fff;position:fixed;inset:0}.diff{background:var(--white);mix-blend-mode:difference;pointer-events:none;z-index:55;border-radius:50%;width:92px;height:92px;margin:-46px 0 0 -46px;position:fixed;top:0;left:0;transform:translate(-999px,-999px)scale(0)}#swarm{pointer-events:none;z-index:41;mix-blend-mode:screen;position:fixed;inset:0}.hero__stick{position:absolute;inset:0;overflow:hidden}.frame{transform-origin:50% 46%;position:absolute;inset:0;overflow:hidden}#viz{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}body[data-booted] #viz{animation:2.6s cubic-bezier(.16,1,.3,1) both introzoom}@keyframes introzoom{0%{transform:scale(1.09)}to{transform:scale(1)}}.grade{mix-blend-mode:multiply;-webkit-mask:radial-gradient(circle 60px at var(--mx) var(--my), transparent 0, transparent 48px, #000 59px);-webkit-mask:radial-gradient(circle 60px at var(--mx) var(--my), transparent 0, transparent 48px, #000 59px);mask:radial-gradient(circle 60px at var(--mx) var(--my), transparent 0, transparent 48px, #000 59px);background:radial-gradient(120% 120% at 50% 40%,#3a1f5c66,#08070abd);position:absolute;inset:0}.grade2{mix-blend-mode:screen;pointer-events:none;background:#7a2e9c1f;position:absolute;inset:0}.grain{pointer-events:none;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.vig{pointer-events:none;background:radial-gradient(130% 100% at 50% 45%,#0000 52%,#000000d1);position:absolute;inset:0}.herofade{z-index:6;pointer-events:none;background:linear-gradient(#0000 0%,#3a1f5c24 42%,#08070ad9 78%,#08070a 100%);height:46vh;position:absolute;bottom:0;left:0;right:0}.lab{z-index:20;font-family:var(--f-grotesk);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;color:var(--grey);position:absolute}.lab--tl{top:var(--pad);left:var(--pad)}.uc{bottom:var(--pad);left:var(--pad);z-index:20;font-family:var(--f-fut);font-size:var(--fs-label);letter-spacing:.14em;text-transform:lowercase;color:var(--white);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#3a1f5c40;border:1px solid #a878d280;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;display:inline-flex;position:absolute}.uc i{background:var(--magenta);border-radius:50%;width:7px;height:7px;font-style:normal;animation:1.6s ease-in-out infinite blink}@keyframes blink{0%,to{opacity:1;box-shadow:0 0 10px #7a2e9ccc}50%{opacity:.35;box-shadow:none}}.center{z-index:20;padding:0 var(--pad);flex-direction:column;justify-content:center;display:flex;position:absolute;inset:0}.center__wrap{width:100%;max-width:1500px;margin:0 auto;transform:translateY(-3vh)}.w{vertical-align:bottom;padding-bottom:var(--wdesc,.27em);margin-bottom:calc(-1 * var(--wdesc,.27em));margin-left:0;padding-left:0;display:inline-block;overflow:hidden}.w>span{filter:blur(14px);opacity:0;display:inline-block;transform:translateY(140%)}body[data-booted] .w>span{animation:1.2s cubic-bezier(.16,1,.3,1) forwards wordin;animation-delay:var(--wd,0s)}@keyframes wordin{60%{filter:blur(3px)}to{filter:blur();opacity:1;transform:translateY(0)}}@keyframes softin{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.softin{opacity:0}body[data-booted] .softin{animation:1.1s cubic-bezier(.16,1,.3,1) forwards softin;animation-delay:var(--sd,0s)}.center__wrap>*,.center__wrap .w{text-indent:0;margin-left:0!important;padding-left:0!important}.title .w{margin-left:-.076em!important}.title{font-family:var(--f-fut);text-transform:lowercase;font-weight:400;font-size:var(--fs-display);letter-spacing:-.012em;color:var(--white);text-shadow:0 0 34px #7a2e9c4d;padding-bottom:.04em;line-height:.8}.title em{font-style:normal;font-weight:300}.dicitura{font-family:var(--f-fut);font-weight:400;font-size:var(--fs-dicitura);letter-spacing:.38em;text-transform:lowercase;color:var(--white);opacity:.92;margin-top:16px}.sub{max-width:44ch;font-size:var(--fs-sub);color:#c9c6cf;margin-top:32px;line-height:1.5}.sub b{color:var(--white);font-weight:500}.tcline{font-family:var(--f-grotesk);font-size:var(--fs-label);letter-spacing:.2em;text-transform:lowercase;color:var(--grey);margin-top:24px}.tcline span{color:var(--white);font-variant-numeric:tabular-nums}.graphstage{position:absolute;inset:0;overflow:hidden}#ambient,#graph{width:100%;height:100%;display:block;position:absolute;inset:0}#ambient{z-index:1}#graph{z-index:2}.graphcap{top:26px;left:var(--pad);z-index:4;font-family:var(--f-grotesk);font-size:var(--fs-label);letter-spacing:.26em;text-transform:lowercase;color:var(--grey);opacity:.55;position:absolute}.gtip{z-index:26;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;background:#0c0a10d1;border:1px solid #a878d259;border-radius:14px;max-width:280px;padding:16px 24px 16px 16px;transition:opacity .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1);position:fixed;transform:translateY(8px)scale(.96)}.gtip.on{opacity:1;transform:translateY(0)scale(1)}.gtip h4{font-family:var(--f-fut);text-transform:lowercase;font-weight:400;font-size:var(--fs-tooltip-title);color:var(--white);margin:0 0 8px}.gtip .k{font-family:var(--f-grotesk);font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--lilac);margin:0 0 8px;display:block}.gtip p{font-family:var(--f-grotesk);font-size:var(--fs-label);color:var(--grey);margin:0;line-height:1.5}.gtip .go{font-family:var(--f-grotesk);font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--white);margin-top:16px}.led{--led-p:0;z-index:5;height:clamp(58px,8vh,88px);transform:translateY(-50%) scaleY(var(--led-p));transform-origin:50%;opacity:var(--led-p);pointer-events:none;background:linear-gradient(90deg,#08070a00 0%,#08070a 12%,#17092b 34%,#2b1147 50%,#17092b 66%,#08070a 88%,#08070a00 100%);border-top:1px solid #a878d259;border-bottom:1px solid #a878d259;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:0;right:0;overflow:hidden;box-shadow:0 0 60px #7a2e9c59,inset 0 0 40px #7a2e9c2e}.led--eased{transition:transform 1.1s cubic-bezier(.33,0,.1,1) .35s,opacity .9s cubic-bezier(.33,0,.1,1) .35s}.led:before{content:"";pointer-events:none;mix-blend-mode:multiply;opacity:.5;background:repeating-linear-gradient(0deg,#00000059 0 1px,#0000 1px 3px);position:absolute;inset:0}.led:after{content:"";pointer-events:none;background:radial-gradient(60% 120%,#cbb7e61a,#0000 70%);position:absolute;inset:0}.led__text{z-index:2;font-family:var(--f-grotesk);font-weight:500;font-size:var(--fs-led);letter-spacing:.48em;text-transform:uppercase;color:var(--lilac);text-shadow:0 0 8px #cbb7e6e6,0 0 26px #7a2e9ccc;padding-left:.48em;animation:3.4s step-end infinite ledflicker;position:relative}@keyframes ledflicker{0%,46%,52%,to{opacity:1}48%{opacity:.35}50%{opacity:.85}70%{opacity:1}71%{opacity:.5}}.led__dot{background:var(--magenta);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:16px;animation:1.4s ease-in-out infinite leddot;display:inline-block;box-shadow:0 0 12px #7a2e9c}@keyframes leddot{0%,to{opacity:1}50%{opacity:.25}}@media (width<=640px){.led__text{letter-spacing:.3em}}@media (prefers-reduced-motion:reduce){.led{transition:opacity .3s;opacity:1!important;transform:translateY(-50%)scaleY(1)!important}.led__text,.led__dot{animation:none}}.contact:before{content:"";pointer-events:none;background:radial-gradient(70% 60% at 50% 0,#7a2e9c29,#0000 70%);position:absolute;inset:0}.card{max-width:760px;padding:0 var(--pad);width:100%;margin:0 auto;position:relative}.card>*{text-indent:0;margin-left:0!important;padding-left:0!important}.c-name{margin-left:-.071em!important}.contact .phrase{margin-left:-.063em!important}.grow{opacity:0;transition:opacity 1.5s cubic-bezier(.33,0,.1,1) .25s,transform 1.7s cubic-bezier(.33,0,.1,1) .25s;transform:translateY(40px)scale(.975)}.grow.in{opacity:1;transform:none}.c-name{font-family:var(--f-fut);font-weight:400;font-size:var(--fs-name);text-transform:lowercase;color:var(--white);line-height:.95}.c-dic{font-family:var(--f-fut);font-size:var(--fs-dicitura);letter-spacing:.34em;text-transform:lowercase;color:var(--lilac);margin:16px 0 0}.contact .phrase{font-family:var(--f-fut);text-transform:lowercase;color:var(--white);font-weight:400;font-size:var(--fs-phrase);max-width:26ch;margin-top:32px;line-height:1.05}.contact .meta{font-family:var(--f-grotesk);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;color:var(--grey);flex-wrap:wrap;gap:8px 24px;margin-top:24px;display:flex}.contact .meta b{color:var(--white);font-weight:400}.contact .mail{color:var(--white);font-family:var(--f-fut);text-transform:lowercase;font-weight:400;font-size:var(--fs-mail);border:0;margin-top:40px;padding:0 0 8px;display:inline-block;position:relative}.contact .mail:before{content:"";background:#edeae438;height:1px;position:absolute;bottom:0;left:0;right:0}.contact .mail:after{content:"";background:linear-gradient(90deg, var(--magenta), var(--lilac));transform-origin:0;width:100%;height:1px;transition:transform .7s cubic-bezier(.22,1,.36,1);position:absolute;bottom:0;left:0;transform:scaleX(0)}.contact .mail:hover:after{transform:scaleX(1)}.contact .mail .m-word{margin-left:-.077em;transition:color .45s;display:inline-block}.contact .mail:hover .m-word{color:var(--lilac)}.contact .foot{left:var(--pad);right:var(--pad);bottom:var(--pad);font-family:var(--f-grotesk);font-size:var(--fs-label);letter-spacing:.16em;text-transform:uppercase;color:var(--grey);justify-content:space-between;display:flex;position:absolute}@media (width<=640px){.dicitura{letter-spacing:.3em}.title{line-height:.92}.sub{max-width:34ch;margin-top:20px}.tcline{letter-spacing:.14em;margin-top:14px}.center{align-items:flex-end;padding-bottom:18vh}.uc{bottom:calc(var(--pad) + env(safe-area-inset-bottom,0px))}.lab--tl{font-size:var(--fs-micro);letter-spacing:.16em;top:calc(var(--pad) + env(safe-area-inset-top,0px))}.contact .meta{gap:8px 16px}.contact .foot{bottom:calc(var(--pad) + env(safe-area-inset-bottom,0px));flex-direction:column;gap:8px}.dots{right:16px}.graphcap{top:calc(26px + env(safe-area-inset-top,0px))}.hint{bottom:calc(64px + env(safe-area-inset-bottom,0px))}}@media (pointer:coarse){body{cursor:auto}#swarm,.diff{display:none}.grade{-webkit-mask:none;mask:none}}@media (prefers-reduced-motion:reduce){.title,.uc i,#viz,body[data-booted] #viz{animation:none}.w>span,.softin,body[data-booted] .w>span,body[data-booted] .softin{filter:none;opacity:1;animation:none;transform:none}.grow{opacity:1;transform:none}.scene{transition-duration:.3s}.scene.enter{clip-path:none;animation:none}}
