@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) .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:0;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;transition:opacity .45s;position:fixed;top:0;left:0;transform:translate(-999px,-999px)scale(0)}body:not([data-scene="0"]) .diff{opacity:0}#swarm{pointer-events:none;z-index:41;mix-blend-mode:screen;position:fixed;inset:0}.tapfx{pointer-events:none;z-index:55;mix-blend-mode:difference;width:100%;height:100%;position:fixed;inset:0}.enterfx{pointer-events:none;z-index:6;mix-blend-mode:screen;width:100%;height:100%;position:absolute;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)}.ucline{margin-top:32px}.uc{font-family:var(--f-fut);font-size:var(--fs-body);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:10px;padding:10px 22px;display:inline-flex}.uc i{background:var(--magenta);border-radius:50%;width:8px;height:8px;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}#graph{z-index:2;width:100%;height:100%;display:block;position:absolute;inset:0}.gnodes{z-index:3;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;inset:0}.gnl{font-family:var(--f-grotesk);font-size:var(--fs-label);letter-spacing:.06em;text-transform:lowercase;color:var(--white);white-space:nowrap;will-change:transform, opacity;position:absolute;top:0;left:0}.gnl--p{font-size:var(--t0);font-weight:500}.gnl--core{font-size:var(--t0);letter-spacing:.14em}.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}.gproj{z-index:7;padding:0 var(--pad);opacity:0;visibility:hidden;pointer-events:none;align-items:center;transition:opacity .9s cubic-bezier(.33,0,.1,1),visibility .9s cubic-bezier(.33,0,.1,1);display:flex;position:absolute;inset:0}.gproj:before{content:"";pointer-events:none;background:radial-gradient(52% 62% at 36%,#3a1f5c57,#0000 72%);position:absolute;inset:0}.gproj.on{opacity:1;visibility:visible;pointer-events:auto}.gproj__inner{filter:blur(6px);max-width:560px;transition:transform 1.1s cubic-bezier(.33,0,.1,1),filter .9s;position:relative;transform:translateY(18px)}.gproj.on .gproj__inner{filter:blur();transform:none}.gproj .k{font-family:var(--f-grotesk);font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--lilac);margin-bottom:16px;display:block}.gproj h3{font-family:var(--f-fut);text-transform:lowercase;font-weight:300;font-size:var(--fs-phrase);color:var(--white);margin:0 0 16px;line-height:1.05}.gproj p{font-family:var(--f-grotesk);font-size:var(--fs-body);color:var(--grey);max-width:44ch;margin:0;line-height:1.6}.gproj__open{font-family:var(--f-grotesk);font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--white);border-bottom:1px solid #cbb7e666;margin-top:32px;padding-bottom:6px;transition:color .4s,border-color .4s;display:inline-block}.gproj__open:hover{color:var(--lilac);border-color:var(--magenta)}.gproj__nav{font-family:var(--f-grotesk);font-size:var(--fs-label);letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:32px;margin-top:48px;display:flex}.gproj__nav button{color:var(--grey);font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;padding:12px 0;transition:color .35s}.gproj__nav button:hover{color:var(--lilac)}.gproj__idx{color:#edeae480;font-variant-numeric:tabular-nums}.gproj__close{z-index:2;font-family:var(--f-grotesk);font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--grey);background:0 0;border:0;padding:12px;transition:color .35s;position:absolute;top:26px;right:96px}.gproj__close:hover{color:var(--white)}.graphstage .gproj,.graphstage .gproj *{cursor:auto!important}.graphstage .gproj button,.graphstage .gproj .gproj__open{cursor:pointer!important}.led{--led-p:0;z-index:5;height:clamp(58px,8vh,88px);transform:translateY(-50%) scaleY(var(--led-p));transform-origin:50%;opacity:calc(var(--led-p) * var(--pdim,1));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}.graphstage[data-proj] .led{transition:none}.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:var(--pdim,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:-.052em!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}.contact .meta .ig{border-bottom:1px solid #cbb7e659;padding-bottom:2px;transition:color .35s,border-color .35s}.contact .meta .ig:hover{color:var(--lilac);border-color:var(--magenta)}.msgfx{pointer-events:none;z-index:6;mix-blend-mode:difference;width:100%;height:100%;position:absolute;inset:0}.msg{max-width:620px;margin-top:40px;position:relative}.msg__hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.msg__label{font-family:var(--f-grotesk);font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--lilac);margin-bottom:8px;display:block}.msg__box{background:#0c0a108c;border:1px solid #a878d247;border-radius:10px;transition:border-color .45s,box-shadow .45s;position:relative;overflow:hidden}.msg__box:focus-within{border-color:#7a2e9cbf;box-shadow:0 0 24px #7a2e9c29}.msg__box:after{content:"";pointer-events:none;opacity:.05;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}.msg__mirror,.msg textarea{font-family:var(--f-grotesk);font-size:var(--fs-body);letter-spacing:.01em;font-kerning:none;font-variant-ligatures:none;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;width:100%;height:calc(4.8em + 24px);padding:12px 16px;line-height:1.6}.msg__mirror{color:var(--white);mix-blend-mode:difference;pointer-events:none;position:absolute;inset:0;overflow:hidden}.msg textarea{resize:none;color:#0000;caret-color:var(--lilac);background:0 0;border:0;outline:0;display:block;position:relative;overflow-y:auto}.msg textarea::placeholder{color:#8b87948c}.msg textarea::selection{color:#0000;background:#7a2e9c73}.msg__ch--in{animation:.3s cubic-bezier(.16,1,.3,1) both chin}@keyframes chin{0%{opacity:0;filter:blur(5px)}to{opacity:1;filter:blur()}}.msg__row{flex-wrap:wrap;align-items:baseline;gap:24px;margin-top:12px;display:flex}.msg__send{font-family:var(--f-grotesk);background:0 0;border:0;padding:8px 0 6px;position:relative}.msg__send:after{content:"";position:absolute;inset:-12px -14px}.msg__send{font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--white);border-bottom:1px solid #cbb7e666;transition:color .4s,border-color .4s,opacity .4s;cursor:pointer!important}.msg__send:hover:not(:disabled){color:var(--lilac);border-color:var(--magenta)}.msg__send:disabled{opacity:.45;cursor:default!important}.msg__status{font-family:var(--f-grotesk);font-size:var(--fs-label);letter-spacing:.12em;text-transform:lowercase;color:var(--grey)}.msg__status b{color:var(--lilac);font-weight:400}@media (width<=640px){.dicitura{letter-spacing:.3em}.title{line-height:.92}.sub{max-width:min(34ch, calc(100vw - var(--pad) - 64px));margin-top:20px}.tcline{letter-spacing:.14em;margin-top:14px}.center{align-items:flex-end;padding-bottom:18vh}.ucline{margin-top:20px}.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))}.gproj{padding-bottom:calc(18vh + env(safe-area-inset-bottom,0px));align-items:flex-end}.gproj h3{font-size:var(--t2)}.gproj__nav{gap:24px;margin-top:32px}.gproj__close{top:calc(20px + env(safe-area-inset-top,0px));right:76px}.gnl--p,.gnl--core{font-size:var(--fs-label)}.hint{bottom:calc(24px + 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}.msg__ch--in{animation:none}.scene{transition-duration:.3s}.scene.enter{clip-path:none;animation:none}.gproj{transition:opacity .3s}.gproj__inner{filter:none;transition:none;transform:none}}
