@font-face{font-family:Orbitron;src:url(/fonts/orbitron.woff2) format("woff2");font-weight:200 900}@font-face{font-family:Montserrat;src:url(/fonts/montserrat.woff2) format("woff2");font-weight:400}:root{--font-size: 1.1rem;--theme-gradient: linear-gradient(135deg, #006f20, #6cb220)}html,body,#root{position:fixed;top:0;left:0;width:100%;height:100%;padding:0;margin:0;font-family:Orbitron,sans-serif;font-optical-sizing:auto;font-weight:900;font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:#fff;font-size:var(--font-size)}.glass-effect{background:#ffffff1a;backdrop-filter:blur(2em);-webkit-backdrop-filter:blur(2em);border-radius:4em;transition:background .3s ease}.glass-effect.active,.glass-effect:hover{background:#00000040}.webgl{width:100%;height:100vh;display:block}button{pointer-events:initial;cursor:pointer;border:none;font-size:1.3rem;color:inherit;font-weight:inherit;padding:.75rem 1.5rem;margin:1rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.author{pointer-events:none;position:absolute;left:0;bottom:0;font-size:max(1em,1vw);padding:.5rem 4rem .5rem 1rem;font-weight:700}.author.glass-effect{border-radius:.3rem}h1{margin:.4rem 0}h2{text-transform:initial;font-size:.95em}section{display:flex;flex-direction:column;box-sizing:border-box;flex:1}#root{position:absolute;width:100%;height:100%;pointer-events:none;display:flex;flex-direction:column;align-items:center}#root:before{content:"";position:absolute;inset:0;transition:opacity 2.5s ease;z-index:-1;opacity:1;width:100%;height:100%}#root.ready:before{opacity:0}a{color:inherit;text-decoration:none}nav{margin:1rem 0;display:flex;justify-content:center;align-items:initial;font-size:.65rem;width:100%;text-shadow:0 0 5px rgba(0,0,0,.3),0 0 5px rgba(0,0,0,.3),0 0 5px rgba(0,0,0,.3),0 0 5px rgba(0,0,0,.3)}nav a{pointer-events:initial;position:relative;color:inherit;text-decoration:none;padding:1em;margin:0 1em;flex:0 1 150px;text-align:center;transition:all .5s ease}#home{justify-content:center}.look-around-hint{opacity:0;text-align:center;transition:all .5s;display:flex;justify-content:center;flex-direction:column;pointer-events:none;font-size:.6rem;padding:.5rem;transform:translateY(100px);z-index:100}.look-around-hint.show{opacity:1;transform:translateY(0)}.look-around-hint svg{position:relative;width:75px;height:auto;display:inline-block;margin-bottom:60px}.look-around-hint svg path{fill:#fff}.orbit{position:relative;display:inline-block;transform-origin:center;animation-delay:1s}.look-around-hint.show .orbit{animation:ellipticalMove 3s infinite cubic-bezier(.7,0,.3,1)}.look-around-hint span{display:block;padding:1rem;text-shadow:0 0 5px rgba(0,0,0,.3),0 0 5px rgba(0,0,0,.3),0 0 5px rgba(0,0,0,.3),0 0 5px rgba(0,0,0,.3)}@keyframes ellipticalMove{0%{transform:rotate(0) translateY(40px) rotate(0)}50%{transform:rotate(360deg) translateY(40px) rotate(-360deg)}to{transform:rotate(360deg) translateY(40px) rotate(-360deg)}}.explore-hint{position:fixed;top:0;left:0;opacity:0;transition:opacity .5s ease}.explore-hint.show{opacity:1}.explore-hint svg{display:block;height:40px;width:40px}.explore-hint path{fill:#fff}.explore-hint span{font-size:.7rem;padding:.5rem;display:block;margin-top:.5rem;text-shadow:0 0 5px rgba(0,0,0,.3),0 0 5px rgba(0,0,0,.3),0 0 5px rgba(0,0,0,.3),0 0 5px rgba(0,0,0,.3)}#contact{max-width:100rem;padding-bottom:4rem}#contact h1{text-align:center}#contact p{font-weight:200;text-align:center;margin-top:2rem}#contact .container{display:flex;justify-content:center;flex-direction:column;flex:1}.swarm-switch{flex:1;display:flex;justify-content:space-between;max-width:50em;align-items:center}.swarm-switch button{margin:0 .5rem;padding:0;font-size:6em;background:none;transition:all .2s ease-in-out}.social-media{display:flex;justify-content:center;align-items:center}.social-media button{font-size:1.5em;background:none;display:flex;justify-content:center;flex-direction:column;line-height:.3rem;transition:all .2s ease-in-out;padding:0;margin:0 .5em}.social-media button:hover{line-height:.4em}.social-media ul{display:flex;justify-content:center;gap:1rem;list-style:none;font-size:.6em;margin:0;padding:0}.social-media li{display:none}.social-media li.active{display:block}.social-media a{display:block;padding:1rem;min-width:150px;text-align:center;background:#00000080;pointer-events:initial;-webkit-user-select:text;-moz-user-select:text;user-select:text;word-break:break-word}@media (max-width: 600px){#contact{padding-top:0}#contact h1,#contact p{margin-top:1rem}#contact h1{font-size:1.2em}#contact p{font-size:.9em}}@media (max-width: 450px){#contact h1,#contact p{margin-top:0}.social-media a{font-size:.8em}}@media (max-height: 530px){#contact .header{display:none}#contact .container{flex-direction:column-reverse}}#about{align-self:center;overflow:hidden auto;margin-bottom:1rem;justify-content:center}.about-container{background-color:#00000026;border-radius:1rem;margin:0 .5rem;max-width:25rem;padding:1rem;overflow:hidden auto;pointer-events:initial;font-size:1.2rem;scrollbar-width:thin;scrollbar-color:#333 rgba(0,0,0,.1)}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:#0000001a}*::-webkit-scrollbar-thumb{background-color:#333;border-radius:4px}.about-container h1{font-size:1.8rem}.about-container h2{font-weight:200;margin-top:0;font-size:1.4rem}.about-container p{font-size:.9em;font-weight:400;text-align:justify;text-transform:initial;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;letter-spacing:initial;font-family:montserrat,sans-serif;text-shadow:0 0 10px rgba(0,0,0,.3),0 0 10px rgba(0,0,0,.3),0 0 10px rgba(0,0,0,.3),0 0 10px rgba(0,0,0,.3)}#about .close{position:absolute;top:0;right:1rem;font-size:2rem;font-weight:200;cursor:pointer;pointer-events:initial;transform:rotate(45deg);padding:0;margin:0;box-sizing:border-box}@media (max-width: 600px){.about-container h1{font-size:1.6rem}.about-container h2{font-size:1.4rem}.about-container p{font-size:1.2rem}}@media (max-width: 450px){.about-container h1{font-size:1.4rem}.about-container h2{font-size:1.2rem}.about-container p{font-size:1rem}}@media (max-width: 625px) and (max-height: 900px){#about{justify-content:flex-start;margin-top:1rem}.about-container h1{font-size:1.4rem}.about-container h2{font-size:1.2rem}.about-container p{font-size:1rem}}@media (max-width: 500px) and (max-height: 900px){.about-container h1{font-size:1.2rem}.about-container h2{font-size:1rem}.about-container p{font-size:.9rem}}@media (max-width: 390px) and (max-height: 900px){.about-container h1{font-size:1.2rem}.about-container h2{font-size:1rem}.about-container p{font-size:.85rem}}@media (max-width: 340px) and (max-height: 900px){.about-container h1{font-size:1.1rem}.about-container h2{font-size:.95rem}.about-container p{font-size:.85rem}}.circle-container{position:absolute;cursor:pointer;pointer-events:initial;--point-color: white;transform-origin:center center;left:0;top:0;display:block;--width: 12px;--height: 12px;--ring-offset: 10px}.circle-container.visited{--point-color: #00ffe1}body:not([data-section=home]) .circle-container,.circle-container.current,.circle-container.occluded,.circle-container.too-far{display:none}.circle{position:relative;width:var(--width);height:var(--height);background-color:var(--point-color);border-radius:50%}.ring{position:absolute;top:50%;left:50%;width:calc(var(--width) + var(--ring-offset));height:calc(var(--height) + var(--ring-offset));border:2px solid var(--point-color);border-radius:50%;transform:translate(-50%,-50%);opacity:1}.circle-container:hover .ring,.circle-container.animated .ring{animation:wave-effect 1.2s ease-out infinite}@keyframes wave-effect{0%{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.5);opacity:0}51%{transform:translate(-50%,-50%) scale(.8);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.viewpoints-progress{position:absolute;bottom:6rem;right:1rem;font-size:.7rem;flex-grow:0;max-width:91px;box-sizing:border-box;padding:.5rem .5rem .5rem 2rem}.viewpoints-progress .circle-container{top:50%;left:.75rem;--width: 10px;--height: 10px;--ring-offset: 8px;transform:translateY(-50%);display:block!important}@media (max-width: 575px) OR (max-height: 530px){body[data-section=contact] .viewpoints-progress{bottom:1.5rem;left:50%;transform:translate(-50%)}}@media (max-width: 680px) OR (max-height: 530px){body[data-section=about] .viewpoints-progress{bottom:1.5rem;left:50%;transform:translate(-50%)}}.sound-icon{position:fixed;font-size:16px;right:1rem;bottom:3.5rem;display:flex;justify-content:center;gap:.1875rem;align-items:flex-end;width:2rem;height:1rem;padding:.5rem 1rem;cursor:pointer;pointer-events:initial}.sound-icon span{display:block;width:.4rem;background:#fff;height:2rem;border-radius:.1rem;animation:none}.sound-icon span:nth-child(2){height:.4375rem}.sound-icon span:nth-child(3){height:.8125rem}.sound-icon[data-sound=off] span{height:.25rem}.sound-icon[data-sound=on] span:nth-child(1){animation:pulse1 1.5s infinite steps(10)}.sound-icon[data-sound=on] span:nth-child(2){animation:pulse2 1.5s infinite steps(10)}.sound-icon[data-sound=on] span:nth-child(3){animation:pulse3 1.5s infinite steps(10)}@keyframes pulse1{0%,to{height:.8125rem}10%{height:.75rem}20%{height:.375rem}30%{height:.625rem}40%{height:.5rem}50%{height:.875rem}60%{height:.375rem}70%{height:.75rem}80%{height:.5rem}90%{height:.875rem}}@keyframes pulse2{0%,to{height:.5rem}10%{height:1rem}20%{height:.625rem}30%{height:.875rem}40%{height:.5rem}50%{height:1.125rem}60%{height:.75rem}70%{height:1rem}80%{height:.5rem}90%{height:.875rem}}@keyframes pulse3{0%,to{height:.4375rem}10%{height:.5rem}20%{height:.625rem}30%{height:.5625rem}40%{height:.875rem}50%{height:.75rem}60%{height:.5rem}70%{height:.8125rem}80%{height:.375rem}90%{height:.625rem}}@media (max-width: 575px) OR (max-height: 530px){body[data-section=contact] .sound-icon{bottom:1.5rem;left:1rem}}@media (max-width: 680px) OR (max-height: 530px){body[data-section=about] .sound-icon{bottom:1.5rem;left:1rem}}.switch{--height: 35px;--width: 65px;width:var(--width);height:var(--height);background:#e6e6e6;border-radius:30px;position:fixed;bottom:1rem;right:1rem;cursor:pointer;transition:transform .4s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 32px #0000001a;overflow:hidden;pointer-events:initial;-webkit-user-select:none;-moz-user-select:none;user-select:none}.switch:hover{transform:scale(1.05)}.switch.active{background:#1e3a8a;box-shadow:0 8px 32px #1e3a8a4d}.switch-handle{width:calc(var(--height) - 4px);height:calc(var(--height) - 4px);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:all .4s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0003}.switch.active .switch-handle{transform:translate(calc(-2px + var(--width) / 2))}.sun-icon{width:calc(var(--height) - 4px);height:calc(var(--height) - 4px);opacity:1;transition:all .3s ease}.switch.active .sun-icon{opacity:0;transform:rotate(180deg) scale(.5)}.moon-icon{width:calc(var(--height) - 4px);height:calc(var(--height) - 4px);position:absolute;opacity:0;transition:all .3s ease}.switch.active .moon-icon{opacity:1;transform:rotate(0) scale(1)}.stars{position:absolute;width:100%;height:100%;opacity:0;transition:opacity .4s ease}.switch.active .stars{opacity:1}.star{position:absolute;width:calc(var(--height) * .08);height:calc(var(--height) * .08);background:#fff;border-radius:50%;animation:twinkle 2s infinite}.star:nth-child(1){top:calc(var(--height) * .3);left:calc(var(--width) * .15);animation-delay:0s}.star:nth-child(2){top:calc(var(--height) * .6);left:calc(var(--width) * .3);animation-delay:.5s}.star:nth-child(3){top:calc(var(--height) * .2);left:calc(var(--width) * .7);animation-delay:1s}.star:nth-child(4){top:calc(var(--height) * .7);left:calc(var(--width) * .75);animation-delay:.3s}.star:nth-child(5){top:calc(var(--height) * .45);left:calc(var(--width) * .85);animation-delay:.8s}@keyframes twinkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}.clouds{position:absolute;width:100%;height:100%;opacity:1;transition:opacity .4s ease;pointer-events:none}.switch.active .clouds{opacity:0}.cloud{position:absolute;background:#fff9;border-radius:calc(var(--height) * .6)}.cloud:nth-child(1){width:calc(var(--width) * .3);height:calc(var(--height) * .25);top:calc(var(--height) * .25);left:calc(var(--width) * .6);animation:float 3s ease-in-out infinite}.cloud:nth-child(2){width:calc(var(--width) * .2);height:calc(var(--height) * .18);top:calc(var(--height) * .65);left:calc(var(--width) * .7);animation:float 4s ease-in-out infinite reverse}@keyframes float{0%,to{transform:translate(0) translateY(0)}50%{transform:translate(calc(var(--width) * .08)) translateY(calc(var(--height) * -.06))}}@media (max-width: 575px) OR (max-height: 530px){body[data-section=contact] .switch{bottom:1.5rem;right:1rem}}@media (max-width: 680px) OR (max-height: 530px){body[data-section=about] .switch{bottom:1.5rem;right:1rem}}.loading{position:fixed;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none;opacity:1;transition:all 1s ease;color:#4b4b4b}.background{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.expanding-circle{transform-origin:200px 200px;transform:scale(0);transition:transform 3s ease-in-out;transition-delay:.5s}.loading.ready .expanding-circle{transform:scale(1000)}.loading button{position:absolute;background:none;text-transform:uppercase;font-weight:900;font-size:.95rem;opacity:0;transform:translate(-100px);transition:all .5s ease;pointer-events:none;cursor:initial}.loading.ready button{opacity:1;cursor:pointer;transform:translate(0);pointer-events:initial}.loading.loaded{opacity:0;pointer-events:none}.loading .circle-container{position:relative;--width: 80px;--height: 80px;--ring-offset: 18px;font-size:.7rem;cursor:initial}.loading .circle{display:flex;align-items:center;justify-content:center}.loading .circle span{transform:translate(2px)}.progress-percentage{text-align:center;font-family:sans-serif;font-size:1.2rem;font-weight:700}.loading-text{position:absolute;top:calc(50% + 6rem);left:50%;transform:translate(-50%,-50%);font-family:sans-serif;font-size:.8rem;text-align:center;z-index:10;opacity:1;transition:all .5s ease}.loading.ready .loading-text{opacity:0;transform:translate(calc(-50% - 100px),-50%)}.tp-dfwv{font-family:monospace;letter-spacing:initial;text-transform:initial}#perfs-monitor{position:fixed;font-size:10px;color:#fff;font-family:monospace;letter-spacing:initial;text-transform:initial;cursor:pointer;top:0;left:0;width:min(100vw,550px);display:grid;box-sizing:border-box;gap:0;padding:10px 5px;z-index:200;background-color:#231919;border-bottom-right-radius:4px;grid-template:"cpu    gpu    fps    time_per_frame draw_calls triangles lines" "cpu    gpu    fps    geometries     textures   shaders   points" "graphs graphs graphs graphs         graphs     graphs    graphs"}@media (max-width: 400px){#perfs-monitor{font-size:8px}}#perfs-monitor .label{font-size:1.1em;color:#87cefa;margin-top:4px;min-width:3em;text-align:center}#perfs-monitor .number{display:flex;flex-direction:column-reverse;padding:3px;text-transform:capitalize;align-items:center}#perfs-monitor .number .value{flex:1;display:flex;align-items:center}#perfs-monitor .value{font-size:1.1em;font-weight:700}#perfs-monitor.hidden{display:none}#perfs-monitor .label{white-space:nowrap}[data-key=cpu]{color:#adff2f}[data-key=gpu]{color:orange}[data-key=fps]{color:red}#perfs-monitor [data-key=cpu] .value,#perfs-monitor [data-key=gpu] .value,#perfs-monitor [data-key=fps] .value{font-size:1.5em}#perfs-monitor:not(.expanded){width:initial}#perfs-monitor:not(.expanded):before{content:"›";color:#fff;font-size:25px;display:block;margin:5px 10px}#perfs-monitor:not(.expanded) .number,#perfs-monitor:not(.expanded) canvas{display:none!important}.update{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:1.5rem;max-height:90dvh;box-sizing:border-box;border-radius:1rem;pointer-events:initial;display:flex;flex-direction:column;width:90%;max-width:400px}.update h1{word-break:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:1.2rem;margin-bottom:1rem;margin-top:0}.update .text{overflow:auto;padding-right:.5rem;flex:1}.update p{text-align:justify;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;text-transform:none;font-weight:200;font-family:Montserrat,sans-serif}.update button{display:block;margin:1rem auto 0;font-size:.9em;text-transform:uppercase}.fwa-otd{display:flex;align-items:center;justify-content:flex-start;font-size:.7em;font-weight:200;text-transform:initial;margin-left:-.5rem;margin-bottom:-.5rem}.fwa-otd img{width:6rem}.fwa-otd span{display:block;margin-top:-.75rem}.fwa-otd span a{font-weight:800}.hidden,.hide{display:none}@media (max-width: 450px){nav{font-size:.5rem;margin-bottom:1.5rem}.author{font-size:.6em}}
