
.scene-container{width:100dvw;height:100dvh;position:relative;overflow:visible}.scene-wrapper{width:100dvw;height:100dvh;position:absolute;top:0;left:0}.scene-wrapper .three-scene-container{z-index:1;justify-content:center;align-items:center;width:100dvw;height:100dvh;display:flex;position:absolute;top:0;left:0;overflow:visible}.scene-container.desktop .scene-wrapper .three-scene-container canvas{display:block;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important}@media (max-width:768px) and (orientation:portrait){.scene-wrapper .three-scene-container canvas{height:120%!important}}@media (max-width:768px) and (orientation:landscape){.scene-wrapper .three-scene-container canvas{width:100vw!important;max-width:100vw!important;height:120%!important;max-height:100vh!important;transform:translate(0)!important}}.scene-overlay{z-index:2;width:100%;height:100%;position:absolute;top:0;left:0}.scene-container.mobile{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none;-webkit-overflow-scrolling:touch}.scene-container.mobile .scene-wrapper{width:100vw;height:100dvh;position:fixed;top:0;left:0;overflow:visible}.scene-container.mobile canvas{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.scene-container.mobile .scene-overlay{backface-visibility:hidden;transform:translateZ(0)}.scene-container.mobile button,.scene-container.mobile [role=button]{touch-action:manipulation;min-width:44px;min-height:44px}@supports (padding:env(safe-area-inset-top)){.scene-container.mobile{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}}@supports (-webkit-touch-callout:none){.scene-container.mobile{-webkit-tap-highlight-color:transparent}}.performance-fallback{color:#fff;z-index:10000;text-align:center;background-color:#000000e6;flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.performance-fallback h2{color:#f33;margin-bottom:20px;font-size:24px}.performance-fallback.immediate .critical-message{background-color:#ff000026;border-radius:8px;max-width:500px;margin-bottom:20px;padding:15px}.performance-fallback .metrics-summary{border-top:1px solid #fff3;margin-top:15px;padding-top:15px;font-size:14px}.performance-fallback .metrics-summary strong{color:#f99}.performance-fallback .continue-button{color:#fff;cursor:pointer;background-color:#2980b9;border:none;border-radius:4px;margin-top:20px;padding:12px 24px;font-size:16px;transition:background-color .2s}.performance-fallback .continue-button:hover{background-color:#3498db}.issues-container{max-width:500px;margin-bottom:20px}.issue-item{text-align:left;background-color:#ffffff1a;border-radius:4px;margin-bottom:8px;padding:8px 12px}.issue-type{color:#f99;font-weight:700}
.generic-overlay-base{opacity:0;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100dvh;transition:opacity .5s ease-out;display:flex;position:absolute;top:0;left:0}.generic-overlay-base.generic-overlay-enter-active,.generic-overlay-base.generic-overlay-exit{pointer-events:auto}.generic-overlay-enter{opacity:0}.generic-overlay-enter-active,.generic-overlay-exit{opacity:1}.generic-overlay-exit-active{opacity:0}
.scroll-indicator-container{z-index:1000;opacity:0;width:auto;height:auto;transition:opacity .6s ease-in-out}.scroll-indicator-container.fade-in{opacity:1}.scroll-indicator-track{flex-direction:column;align-items:flex-end;gap:40px;display:flex;position:relative}.scroll-indicator-segment{cursor:pointer;opacity:1;background:0 0;border:none;align-items:center;gap:12px;padding:0;transition:all .3s;display:flex}.scroll-indicator-segment:hover,.scroll-indicator-segment.active{opacity:1}.scroll-indicator-label{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;font-size:14px;font-weight:400;transition:all .3s;transform:translate(10px)}.scroll-indicator-segment:hover .scroll-indicator-label{opacity:1;transform:translate(0)}.scroll-indicator-dot{background:#e7e7eb;border-radius:50%;width:10px;height:10px;transition:all .3s;position:relative}.scroll-indicator-dot:before{content:"";background:radial-gradient(circle,var(--halo-color,#07f)0%,var(--halo-color,#07f)30%,var(--halo-color-rgba,#07fc)50%,#0077ff4d 70%,transparent 100%);opacity:0;pointer-events:none;z-index:-1;filter:blur(8px);border-radius:50%;width:60px;height:60px;transition:opacity .2s,transform .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scroll-indicator-segment:hover .scroll-indicator-dot{filter:blur(.1px);background:#fff;box-shadow:0 0 15px #fff,0 0 25px #fff}.scroll-indicator-segment:hover .scroll-indicator-dot:before{opacity:.5;transform:translate(-50%,-50%)scale(.5)}.scroll-indicator-segment.active .scroll-indicator-dot{filter:blur(.1px);background:#fff;box-shadow:0 0 20px #fff,0 0 30px #fff}.scroll-indicator-segment.active .scroll-indicator-dot:before{opacity:.5;transform:translate(-50%,-50%)scale(.5)}.scroll-indicator-position{display:none}.scroll-indicator-segment.disabled{opacity:.5}@media (hover:none) and (pointer:coarse){.scroll-indicator-container{display:none}}
.mobile-controls-container{z-index:9999;pointer-events:none;opacity:0;transition:opacity .45s;position:fixed;inset:0}.mobile-controls-container--visible{opacity:1}.mobile-controls-camera-area{pointer-events:auto;touch-action:none;z-index:1;width:100%;height:100%;position:absolute;inset:0}.mobile-controls-camera-hint{text-align:center;color:#ffffff26;text-transform:uppercase;pointer-events:none;letter-spacing:.1em;font-family:sans-serif;font-size:10px;position:absolute;top:20%;left:0;right:0}.mobile-controls-joystick-container{pointer-events:auto;z-index:10;touch-action:none;justify-content:center;align-items:center;width:160px;height:160px;display:flex;position:absolute;bottom:24px;right:24px}.mobile-controls-joystick-base{background:radial-gradient(circle,#ffffff26,#ffffff0d);border:2px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:100px;height:100px;transition:border-color .2s,background-color .2s;display:flex}.mobile-controls-joystick-base--active{background:radial-gradient(circle,#ffffff40,#ffffff1a);border-color:#ffffff80}.mobile-controls-joystick-stick{pointer-events:none;will-change:transform;background:radial-gradient(circle,#ffffffe6,#ffffff80);border-radius:50%;width:50px;height:50px;position:absolute;transform:translate(0);box-shadow:0 4px 10px #0000004d}
.projects-overlay,.projects-overlay *,.projects-overlay :before,.projects-overlay :after{box-sizing:border-box}.projects-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000001;pointer-events:auto;touch-action:pan-y;-webkit-tap-highlight-color:transparent;perspective:1000px;background-color:#000000bf;justify-content:center;align-items:center;width:100vw;height:100dvh;display:flex;position:fixed;top:0;left:0}.projects-tilt-wrapper{width:95%;max-width:640px;transform-style:preserve-3d;transition:transform .3s ease-out;position:relative}@media (min-width:769px){.projects-tilt-wrapper{width:95%;max-width:640px}}.projects-ambient-glow{filter:blur(80px);pointer-events:none;z-index:0;background:radial-gradient(#0b75b81f 0%,#0000 70%);border-radius:50%;width:min(80vw,600px);height:400px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.projects-container{-webkit-backdrop-filter:blur(20px);background:#0a142899;border:1px solid #0b75b84d;border-radius:12px;flex-direction:column;width:100%;height:auto;min-height:0;max-height:min(65dvh,820px);display:flex;position:relative;overflow:hidden;box-shadow:0 0 30px -10px #0b75b880,0 0 60px -20px #0b75b840}.projects-scanlines{pointer-events:none;z-index:20;opacity:.08;mix-blend-mode:overlay;background:linear-gradient(#fff0 0% 50%,#00000040 50% 100%) 0 0/100% 4px;border-radius:12px;position:absolute;inset:0}.projects-corner{pointer-events:none;z-index:20;width:24px;height:24px;position:absolute}.projects-corner--tl{border-top:2px solid var(--color-primary,#1b94d3);border-left:2px solid var(--color-primary,#1b94d3);border-top-left-radius:10px;top:0;left:0}.projects-corner--tr{border-top:2px solid var(--color-primary,#1b94d3);border-right:2px solid var(--color-primary,#1b94d3);border-top-right-radius:10px;top:0;right:0}.projects-corner--bl{border-bottom:2px solid var(--color-primary,#1b94d3);border-left:2px solid var(--color-primary,#1b94d3);border-bottom-left-radius:10px;bottom:0;left:0}.projects-corner--br{border-bottom:2px solid var(--color-primary,#1b94d3);border-right:2px solid var(--color-primary,#1b94d3);border-bottom-right-radius:10px;bottom:0;right:0}.projects-header{background:linear-gradient(90deg,#0b75b814,#0000);border-bottom:1px solid #0b75b833;justify-content:space-between;align-items:flex-start;padding:1.5rem 2rem;display:flex;position:relative}.projects-header-left{align-items:center;gap:1rem;display:flex}.projects-header-icon{color:var(--color-primary,#1b94d3);background:#0b75b814;border:1px solid #0b75b84d;border-radius:12px;justify-content:center;align-items:center;padding:.75rem;display:flex;box-shadow:0 0 15px #0b75b833}.hologram-panel-header{background:linear-gradient(90deg,#0b75b814,#0000);border-bottom:1px solid #0b75b833;flex-shrink:0;padding:1.5rem 2rem;position:relative}.hologram-panel-header-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.hologram-panel-header-info{flex:1;min-width:0}.hologram-panel-subtitle{letter-spacing:.25em;text-transform:uppercase;color:var(--color-primary,#1b94d3);align-items:center;gap:8px;margin:0 0 .5rem;font-family:monospace;font-size:.65rem;font-weight:400;display:flex}.hologram-panel-dot{background:var(--color-primary,#1b94d3);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite dotPulse;display:inline-block}.hologram-panel-title{letter-spacing:.02em;margin:0;font-size:2.5rem;font-weight:700;line-height:1.1}.hologram-panel-title--led{color:#fff;text-shadow:0 0 10px #1b94d3cc,0 0 20px #1b94d380;filter:drop-shadow(0 0 8px #1b94d399)}.hologram-panel-role-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:.6rem;display:flex}.hologram-panel-badge{letter-spacing:.05em;color:#1b94d3e6;white-space:nowrap;background:#1b94d326;border:1px solid #1b94d359;border-radius:4px;padding:2px 8px;font-family:monospace;font-size:.6rem;display:inline-block}.hologram-panel-role{color:#ffffffbf;text-transform:uppercase;letter-spacing:.15em;margin:0;font-size:.9rem;font-weight:300}.hologram-panel-close{width:36px;height:36px;color:var(--color-primary,#1b94d3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex}.hologram-panel-close:hover,.hologram-panel-close:focus-visible{color:#f87171;background:#ef444426;border-color:#ef444480}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.3}}.projects-header-text{flex-direction:column;display:flex}.projects-subtitle{color:var(--color-primary,#1b94d3);letter-spacing:.25em;text-transform:uppercase;align-items:center;gap:8px;margin:0 0 .5rem;font-family:monospace;font-size:.65rem;display:flex}.projects-subtitle-dot{background:var(--color-primary,#1b94d3);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite projects-pulse;display:inline-block}@keyframes projects-pulse{0%,to{opacity:1}50%{opacity:.4}}.projects-title{color:#fff;font-family:var(--font-mundial-demibold),sans-serif;font-size:var(--font-size-1xlg);letter-spacing:.02em;text-shadow:0 0 10px #1b94d3cc,0 0 20px #1b94d380;filter:drop-shadow(0 0 8px #1b94d399);margin:0;line-height:1.1}.projects-close-btn{color:var(--color-primary,#1b94d3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.projects-close-btn:hover{color:#f87171;background:#f871711a;border-color:#f871714d}.projects-body{z-index:10;flex:1;min-height:0;padding:1.5rem 2rem;display:flex;position:relative;overflow:hidden}.projects-desc-container{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#1b94d38c #0b75b81f;background:#0b75b80a;border:1px solid #0b75b81a;border-radius:8px;flex:1;min-height:0;max-height:none;padding:1.25rem 1.5rem;position:relative;overflow-y:auto}.projects-desc-container::-webkit-scrollbar{width:5px}.projects-desc-container::-webkit-scrollbar-track{background:#0b75b81f;border-radius:6px}.projects-desc-container::-webkit-scrollbar-thumb{background:linear-gradient(#1b94d373,#1b94d3cc,#1b94d373);border-radius:6px;box-shadow:0 0 4px #1b94d359}.projects-desc-container::-webkit-scrollbar-thumb:hover{background:linear-gradient(#1b94d399,#1b94d3f2,#1b94d399)}.projects-desc-accent{background:linear-gradient(to bottom,transparent,var(--color-primary,#1b94d3),transparent);border-radius:1px;width:2px;position:absolute;top:1rem;bottom:1rem;left:-1px}.projects-description{color:#ffffffc7;font-family:var(--font-mundial-thin),sans-serif;white-space:pre-line;text-align:justify;letter-spacing:.015em;word-break:break-word;overflow-wrap:break-word;margin:0;font-size:.92rem;font-weight:300;line-height:1.75}.projects-bottom-line{background:linear-gradient(90deg,#0000,#0b75b826,#0000);flex-shrink:0;justify-content:center;align-items:center;width:100%;height:3px;display:flex;overflow:hidden}.projects-bottom-line-inner{filter:blur(1px);background:#1b94d373;width:33%;height:100%}.projects-actions{background:#0006;border-top:1px solid #0b75b833;flex-shrink:0;grid-template-columns:1fr;padding:1.5rem;display:grid}.projects-btn-primary{color:#1b94d3e6;cursor:pointer;font-family:var(--font-mundial-demibold),sans-serif;letter-spacing:.12em;text-transform:uppercase;background:#0b75b81a;border:1px solid #1b94d380;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:.75rem 1rem;font-size:clamp(.7rem,1.8vw,.875rem);transition:all .3s;display:flex;position:relative;overflow:hidden}.projects-btn-primary:hover{border-color:var(--color-primary,#1b94d3);color:#fff;background:#0b75b833}.projects-btn-primary:before{content:"";background:#1b94d31a;transition:transform .3s;position:absolute;inset:0;transform:translate(-100%)skew(12deg)}.projects-btn-primary:hover:before{transform:translate(0)skew(12deg)}.projects-btn-primary svg{color:var(--color-primary,#1b94d3);flex-shrink:0;transition:color .3s}.projects-btn-primary:hover svg{color:#1b94d3}.projects-btn-secondary{color:#94a3b8;cursor:pointer;font-family:var(--font-mundial-thin),sans-serif;letter-spacing:.12em;text-transform:uppercase;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:.75rem 1rem;font-size:clamp(.7rem,1.8vw,.875rem);font-weight:500;transition:all .3s;display:flex}.projects-btn-secondary:hover{color:#e2e8f0;background:#ffffff1a;border-color:#fff3}@media (max-width:768px){.projects-tilt-wrapper{width:78%;max-width:320px;transform:none!important}.projects-container{height:auto;max-height:min(65dvh,560px);overflow:hidden}.projects-container .hologram-panel-header{padding:.85rem 1rem}.projects-container .hologram-panel-subtitle{margin-bottom:.3rem;font-size:.55rem}.projects-container .hologram-panel-title{font-size:1.35rem}.projects-container .hologram-panel-role-row{gap:6px;margin-top:.35rem}.projects-container .hologram-panel-role{letter-spacing:.1em;font-size:.65rem}.projects-container .hologram-panel-badge{padding:1px 5px;font-size:.5rem}.projects-container .hologram-panel-close{width:28px;height:28px}.projects-container .hologram-panel-close svg{width:14px;height:14px}.projects-body{flex:1;min-height:0;padding:.75rem 1rem;display:flex;overflow:hidden}.projects-desc-container{-webkit-overflow-scrolling:touch;touch-action:pan-y;overscroll-behavior:contain;flex:1;min-height:0;max-height:none;padding:.75rem 1rem;overflow-y:auto}.projects-desc-container::-webkit-scrollbar{width:3px}.projects-desc-container::-webkit-scrollbar-track{background:#0b75b81a}.projects-desc-container::-webkit-scrollbar-thumb{background:#1b94d380;border-radius:3px}.projects-description{font-size:.78rem;line-height:1.6}.projects-actions{gap:.7rem;padding:.85rem 1rem}.projects-corner{width:14px;height:14px}.projects-ambient-glow{display:none}}@media (max-width:380px){.projects-tilt-wrapper{width:82%;max-width:280px}.projects-container{height:auto;max-height:min(65dvh,500px);overflow:hidden}.projects-container .hologram-panel-title{font-size:1.15rem}.projects-description{font-size:.72rem;line-height:1.55}}
.tutorial-overlay__backdrop{position:absolute;inset:0}.tutorial-overlay{z-index:12000;pointer-events:none;font-family:var(--font-primary,"Inter",system-ui,sans-serif);opacity:1;justify-content:flex-start;align-items:flex-end;padding:2.5rem;transition:opacity .18s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;inset:0}.tutorial-overlay__backdrop{position:absolute}.tutorial-overlay__card{pointer-events:auto;width:auto;min-height:150px;color:var(--color-accent-white);opacity:1;flex-direction:column;gap:.4rem;padding:.8rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;transform:translateY(0)}.tutorial-overlay--fading .tutorial-overlay__card,.tutorial-overlay--appearing .tutorial-overlay__card,.tutorial-overlay__card--fading,.tutorial-overlay__card--appearing{opacity:0;transform:translateY(12px)}.tutorial-overlay__header{flex-direction:column;gap:.35rem;display:flex}.tutorial-overlay__meta{color:#1b94d3bf;text-transform:uppercase;letter-spacing:.12em;flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.tutorial-overlay__step{font-weight:600}.tutorial-overlay__body{grid-template-columns:1fr;grid-auto-flow:row;align-content:flex-start;display:grid}.tutorial-overlay__title{color:var(--color-primary);align-items:flex-end;margin:0;display:flex}.tutorial-overlay__title--placeholder{visibility:hidden}.tutorial-overlay__text{color:var(--color-accent-white);margin:0}.tutorial-overlay__hint{color:#1b94d399;justify-content:center;align-items:center;margin:0;font-size:.9rem;line-height:1.5;display:flex}.tutorial-overlay__mobile-arrows{pointer-events:none;opacity:0;gap:1.1rem;display:none;position:absolute;top:-2.75rem;left:50%;transform:translate(-50%)}.tutorial-overlay__mobile-arrow{filter:drop-shadow(0 10px 20px #0006);border-top:1.1rem solid #ffffffe6;border-left:.55rem solid #0000;border-right:.55rem solid #0000;width:0;height:0;animation:1.45s ease-in-out infinite tutorial-mobile-arrow-bounce;display:block}.tutorial-overlay__mobile-arrow:nth-child(2){animation-delay:.2s}@keyframes tutorial-mobile-arrow-in{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes tutorial-mobile-arrow-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.tutorial-overlay__visual{--tutorial-visual-size:96px;width:100%;min-height:var(--tutorial-visual-size);max-height:var(--tutorial-visual-size);box-sizing:border-box;justify-content:flex-start;align-items:center;gap:.5rem;display:flex}.tutorial-overlay__visual-item{flex:0 1 var(--tutorial-visual-size);height:var(--tutorial-visual-size);justify-content:center;align-items:center;max-width:100%;display:flex}.tutorial-overlay__visual-item>*{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.tutorial-overlay__visual-item--rotate{align-items:center}.tutorial-rotate-phone-image{object-fit:contain;filter:drop-shadow(0 8px 20px #00000073);width:100%;height:100%}.tutorial-overlay__primary{appearance:none;background:linear-gradient(135deg,var(--color-secondary),var(--color-primary));color:var(--color-accent-white);cursor:pointer;border:none;border-radius:14px;align-self:flex-start;padding:.9rem 1.6rem;font-size:1rem;font-weight:700;transition:transform .25s,box-shadow .25s}.tutorial-overlay__primary:hover{transform:translateY(-1px);box-shadow:0 16px 32px #1b94d373}.tutorial-overlay__key{min-width:2.25rem;color:var(--color-primary);text-transform:uppercase;background:#1b94d32e;border:1px solid #1b94d359;border-radius:10px;justify-content:center;align-items:center;padding:.45rem .75rem;font-size:.95rem;font-weight:600;display:inline-flex}.tutorial-overlay__gear-illustration{width:min(100%,calc(var(--tutorial-visual-size) - 8px));height:min(100%,calc(var(--tutorial-visual-size) - 8px));justify-content:center;align-items:center;margin:0;display:flex}.tutorial-overlay__gear-icon{color:#fff;transform-origin:50%;background:#1b94d32e;border:1px solid #1b94d359;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:1.45rem;display:flex;transform:scale(.882);box-shadow:0 16px 28px #00000047}.tutorial-overlay__visual-item--settings>*{visibility:hidden;opacity:0;pointer-events:none}.tutorial-overlay__card--compact .tutorial-overlay__visual-item--settings{display:none}@media (max-width:768px),(orientation:landscape) and (max-height:600px) and (pointer:coarse) and (hover:none){.tutorial-overlay__card--compact.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__visual-item--settings{display:flex}}.tutorial-overlay__inline-icon{vertical-align:middle;pointer-events:auto;background:0 0;border:1px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin:0 6px;display:inline-flex}.tutorial-overlay__inline-icon i{font-size:14px;line-height:1;display:inline-block}.tutorial-overlay__timer{margin-top:.75rem}.tutorial-overlay__card--compact{gap:.25rem;min-height:auto}.tutorial-overlay__card--compact .tutorial-overlay__timer{margin-top:.25rem}.tutorial-overlay__timer-track{background:#1b94d32e;border-radius:999px;width:100%;height:4px;position:relative;overflow:hidden}.tutorial-overlay__timer-bar{background:linear-gradient(90deg,#1b94d359,#1b94d3);border-radius:999px;width:0;transition:width;position:absolute;top:0;bottom:0;left:0}@media (max-width:768px),(orientation:landscape) and (max-height:600px) and (pointer:coarse) and (hover:none){.tutorial-overlay__card{width:100%;max-width:350px;min-height:20px}.tutorial-overlay{justify-content:center;padding:6.5rem 1.5rem;display:flex;position:relative}.tutorial-overlay__card--visual-inline-mobile{grid-template-rows:auto 1fr auto;display:grid}.tutorial-overlay__mobile-arrows{animation:.35s forwards tutorial-mobile-arrow-in;display:flex}.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__header,.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__body,.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__hint,.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__keys,.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__timer,.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__primary{grid-column:1}.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__visual{grid-area:1/2/span 3;justify-content:center;align-self:stretch;align-items:center;height:100%;min-height:100%;max-height:none;padding-left:.5rem}.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__visual-item{width:100%;height:100%}.tutorial-overlay__card--visual-inline-mobile .tutorial-overlay__visual-item>*{width:80%;height:80%;max-height:none}}
.narrow-mobile-warning-overlay{z-index:20050;isolation:isolate;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.narrow-mobile-warning-overlay__backdrop{z-index:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000bf;position:absolute;inset:0}.narrow-mobile-warning-overlay__ambient-glow{z-index:1;filter:blur(70px);pointer-events:none;background:radial-gradient(#0b75b81f 0%,#0000 70%);border-radius:50%;width:min(65dvh,420px);height:260px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.narrow-mobile-warning-overlay__card{z-index:2;text-align:center;pointer-events:auto;opacity:0;width:min(100%,320px);max-width:320px;min-height:0;color:var(--color-text,var(--color-neutral-100));-webkit-backdrop-filter:blur(20px);background:#0a142899;border:1px solid #0b75b84d;border-radius:12px;flex-direction:column;align-items:center;gap:.55rem;padding:3.5rem 1rem 1rem;transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;transform:translateY(12px);box-shadow:0 0 30px -10px #0b75b880,0 0 60px -20px #0b75b840}.narrow-mobile-warning-overlay--visible .narrow-mobile-warning-overlay__card{opacity:1;transform:translateY(0)}.narrow-mobile-warning-overlay--fading .narrow-mobile-warning-overlay__card{opacity:0;transform:translateY(-8px)}.narrow-mobile-warning-overlay__visual{--tutorial-visual-size:96px;width:100%;min-height:var(--tutorial-visual-size);color:var(--color-primary,#fff);justify-content:center;align-items:center;margin-top:.1rem;display:flex}.narrow-mobile-warning-overlay__visual img,.narrow-mobile-warning-overlay__icon{width:var(--tutorial-visual-size);object-fit:contain;height:auto;display:block}.narrow-mobile-warning-overlay__copy{flex-direction:column;align-items:center;gap:.35rem;display:flex}.narrow-mobile-warning-overlay__badge{letter-spacing:.05em;color:#1b94d3e6;white-space:nowrap;background:#1b94d326;border:1px solid #1b94d359;border-radius:4px;align-self:center;padding:2px 8px;font-family:monospace;font-size:.6rem;display:inline-block}.narrow-mobile-warning-overlay__title{color:var(--color-primary);margin:0;line-height:1.1}.narrow-mobile-warning-overlay__text{color:var(--color-text-secondary,var(--color-text));max-width:26ch;margin:0}.narrow-mobile-warning-overlay__button{align-self:center;min-width:min(100%,270px);margin-top:.5rem}.narrow-mobile-warning-overlay__close{z-index:3;-webkit-backdrop-filter:blur(18px);width:44px;height:44px;color:var(--color-primary,#1b94d3);cursor:pointer;touch-action:manipulation;background:#0a1428b8;border:1px solid #0b75b859;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:all .2s;display:flex;position:absolute;top:.85rem;right:.85rem;box-shadow:0 0 18px #0b75b82e}.narrow-mobile-warning-overlay__close:hover,.narrow-mobile-warning-overlay__close:focus-visible{color:#f87171;background:#ef444426;border-color:#ef444480}.narrow-mobile-warning-overlay__scanlines{z-index:0;pointer-events:none;opacity:.08;mix-blend-mode:overlay;background:linear-gradient(#fff0 0% 50%,#00000040 50% 100%) 0 0/100% 4px;border-radius:12px;position:absolute;inset:0}.narrow-mobile-warning-overlay__corner{pointer-events:none;z-index:1;width:18px;height:18px;position:absolute}.narrow-mobile-warning-overlay__corner--tl{border-top:2px solid var(--color-primary,#1b94d3);border-left:2px solid var(--color-primary,#1b94d3);border-top-left-radius:10px;top:0;left:0}.narrow-mobile-warning-overlay__corner--tr{border-top:2px solid var(--color-primary,#1b94d3);border-right:2px solid var(--color-primary,#1b94d3);border-top-right-radius:10px;top:0;right:0}.narrow-mobile-warning-overlay__corner--bl{border-bottom:2px solid var(--color-primary,#1b94d3);border-left:2px solid var(--color-primary,#1b94d3);border-bottom-left-radius:10px;bottom:0;left:0}.narrow-mobile-warning-overlay__corner--br{border-bottom:2px solid var(--color-primary,#1b94d3);border-right:2px solid var(--color-primary,#1b94d3);border-bottom-right-radius:10px;bottom:0;right:0}.narrow-mobile-warning-overlay__card>:not(.narrow-mobile-warning-overlay__scanlines):not(.narrow-mobile-warning-overlay__corner):not(.narrow-mobile-warning-overlay__close){z-index:1;position:relative}.narrow-mobile-warning-overlay__card>.narrow-mobile-warning-overlay__close{z-index:4;position:absolute;top:.85rem;right:.85rem}@media (max-width:480px){.narrow-mobile-warning-overlay{padding:1rem}.narrow-mobile-warning-overlay__card{width:min(100%,340px);padding:3.2rem .9rem 1.1rem}.narrow-mobile-warning-overlay__button{width:100%;min-width:0}.narrow-mobile-warning-overlay__ambient-glow{display:none}}@media (prefers-reduced-motion:reduce){.narrow-mobile-warning-overlay__card{transition:none!important}}
.tutorial-movement-keys{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;width:100%;height:100%;display:flex}.tutorial-overlay__visual-item--movement .tutorial-movement-keys__grid{margin-inline:auto}.tutorial-movement-keys__grid{grid-template-columns:repeat(3,minmax(2.4rem,2.7rem));grid-auto-rows:minmax(2.4rem,2.7rem);justify-content:center;align-items:center;gap:.55rem;display:grid;transform:scale(1.05)}.tutorial-movement-keys__key{color:var(--color-accent-white);letter-spacing:.04em;-webkit-user-select:none;user-select:none;opacity:1;background:linear-gradient(135deg,#1c3557d9,#0b75b859);border:1.5px solid #1b94d340;border-radius:14px;justify-content:center;align-items:center;min-width:2.4rem;min-height:2.4rem;font-size:.98rem;font-weight:700;transition:transform .24s,box-shadow .24s,border-color .24s,background .24s,opacity .24s;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 28px #1b94d333}.tutorial-movement-keys__key span{pointer-events:none}.tutorial-movement-keys__key--w{grid-area:1/2}.tutorial-movement-keys__key--a{grid-area:2/1}.tutorial-movement-keys__key--s{grid-area:2/2}.tutorial-movement-keys__key--d{grid-area:2/3}.tutorial-movement-keys__key--active{background:linear-gradient(135deg,var(--color-secondary),var(--color-primary));border-color:#1b94d3d9;transform:translateY(-4px);box-shadow:0 18px 36px #1b94d359}.tutorial-movement-keys__progress{pointer-events:none;background:linear-gradient(90deg,#0b75b840,#1b94d3e6);border-radius:0 0 12px 12px;width:0;height:6px;transition:width .12s;position:absolute;bottom:0;left:0}.tutorial-movement-keys__key--active:after{content:"";opacity:.8;border:1.5px solid #fbfdff73;border-radius:10px;animation:1.2s ease-in-out infinite tutorialKeysPulse;position:absolute;inset:3px}.tutorial-movement-keys__key--done{color:#fbfdffeb;opacity:.45;background:linear-gradient(135deg,#0b75b840,#1b94d366);border-color:#1b94d366;transform:scale(.96);box-shadow:0 10px 20px #1b94d340}.tutorial-movement-keys__key--flash{animation:.32s ease-out tutorialKeysFlash}.tutorial-movement-keys__caption{color:#1b94d3b3;margin:0;font-size:.95rem}.tutorial-movement-keys--error .tutorial-movement-keys__grid{animation:.28s tutorialKeysShake}@keyframes tutorialKeysPulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@keyframes tutorialKeysFlash{0%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes tutorialKeysShake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (max-width:640px){.tutorial-movement-keys__grid{grid-template-columns:repeat(3,minmax(2rem,2.2rem));grid-auto-rows:minmax(2rem,2.2rem);gap:.45rem}.tutorial-movement-keys__key{font-size:.88rem}.tutorial-movement-keys__progress{height:4px}}
.tutorial-touch-movement{width:100%;height:100%;color:var(--color-accent-white);touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;display:flex}.tutorial-touch-movement__pad{--touch-pad-size:calc(var(--tutorial-visual-size,88px) - 6px);width:min(100%,var(--touch-pad-size));height:min(100%,var(--touch-pad-size));background:linear-gradient(145deg,#1b94d333,#0b75b859);border:2px solid #1b94d34d;border-radius:36px;justify-content:center;align-items:center;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 28px #1b94d340}.tutorial-touch-movement--active .tutorial-touch-movement__pad{border-color:#1b94d3a6;transform:scale(1.05);box-shadow:0 16px 38px #1b94d359,0 0 26px #1b94d366}.tutorial-touch-movement__ring{opacity:.65;pointer-events:none;border:2px solid #95dbff66;border-radius:50%;animation:2.4s ease-in-out infinite tutorialTouchPulse;position:absolute;inset:12%}.tutorial-touch-movement__finger{background:radial-gradient(circle at 35% 30%,#ffffffd9,#e0f0ffe6),#fbfdffd1;border-radius:38% 38% 46% 46%;width:42%;max-width:46px;height:42%;max-height:46px;position:relative;box-shadow:0 0 18px #1b94d38c}.tutorial-touch-movement__finger:before{content:"";background:#1b94d326;border-radius:50% 50% 54% 54%;position:absolute;inset:22%;box-shadow:inset 0 0 16px #1b94d359}.tutorial-touch-movement__arrows{color:#fbfdffb3;pointer-events:none;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);place-items:center;gap:.25rem;font-size:clamp(.7rem,1.8vw,1.1rem);font-weight:600;display:grid;position:absolute;inset:6%}.tutorial-touch-movement__arrow{opacity:.75;text-shadow:0 0 8px #1b94d366;transform:scale(1.05)}.tutorial-touch-movement__arrow--up{grid-area:1/2}.tutorial-touch-movement__arrow--down{grid-area:3/2}.tutorial-touch-movement__arrow--left{grid-area:2/1}.tutorial-touch-movement__arrow--right{grid-area:2/3}@media (max-width:640px){.tutorial-touch-movement__pad{--touch-pad-size:calc(var(--tutorial-visual-size,74px) - 4px);border-radius:28px}}@keyframes tutorialTouchPulse{0%,to{opacity:.65;transform:scale(1)}50%{opacity:.38;transform:scale(1.08)}}
.tutorial-mouse-orbit{color:var(--color-accent-white);text-align:center;flex-direction:column;align-items:center;gap:.95rem;width:100%;height:100%;margin:0;padding:0;display:flex}.tutorial-overlay__visual-item--orbit .tutorial-mouse-orbit{justify-content:center}.tutorial-mouse-orbit__icon{width:min(100%,calc(var(--tutorial-visual-size,96px) - 6px));height:min(100%,calc(var(--tutorial-visual-size,96px) - 6px));filter:drop-shadow(0 8px 18px #1b94d347);transform-origin:50%;place-items:center;display:grid;position:relative;transform:rotate(-7deg)scale(1.05)}.tutorial-mouse-orbit__accent{pointer-events:none;width:48px;position:absolute;top:23px;bottom:32px}.tutorial-mouse-orbit__accent:before,.tutorial-mouse-orbit__accent:after{content:"";background:0 0;border:3px solid #1b94d361;border-radius:32px;position:absolute;inset:0}.tutorial-mouse-orbit__accent:after{opacity:.72;border:2px solid #81d1ff8c;inset:3px 4px}.tutorial-mouse-orbit__accent--left{left:-1px;transform:rotate(-3deg)translate(-1px)}.tutorial-mouse-orbit__accent--left:before,.tutorial-mouse-orbit__accent--left:after{clip-path:inset(12% 46% 12% 0)}.tutorial-mouse-orbit__accent--right{right:-1px;transform:rotate(-3deg)translate(1px)}.tutorial-mouse-orbit__accent--right:before,.tutorial-mouse-orbit__accent--right:after{clip-path:inset(12% 0 12% 46%)}.tutorial-mouse-orbit__mouse{-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:linear-gradient(150deg,#1b94d338 0%,#1b94d300 36%,#1b94d31a 100%),#1c3557a6;border:3px solid #1b94d3a6;border-radius:22px 22px 26px 26px;width:46px;height:72px;transition:border-color .3s,box-shadow .3s,transform .3s;position:relative;overflow:hidden;box-shadow:inset 0 0 18px #1b94d347}.tutorial-mouse-orbit__split{opacity:.22;background:linear-gradient(#1b94d359,#1b94d314);border-radius:16px;width:calc(50% - 4px);height:30px;position:absolute;top:8px}.tutorial-mouse-orbit__split--left{border-right:1px solid #1b94d359;left:5px}.tutorial-mouse-orbit__split--right{opacity:.12;right:5px}.tutorial-mouse-orbit__wheel{background:#fbfdffe6;border-radius:5px;width:6px;height:20px;margin-left:-3px;position:absolute;top:18px;left:50%;box-shadow:0 0 8px #1b94d38c}.tutorial-mouse-orbit__hint{color:#1b94d3c7;max-width:280px;font-size:.95rem;line-height:1.5}.tutorial-mouse-orbit--active .tutorial-mouse-orbit__mouse{border-color:#1b94d3e6;transform:scale(1.02);box-shadow:0 0 22px #1b94d38c,inset 0 0 20px #1b94d31f}.tutorial-mouse-orbit--active .tutorial-mouse-orbit__accent:before{border-color:#1b94d394;box-shadow:0 0 14px #1b94d352}.tutorial-mouse-orbit--active .tutorial-mouse-orbit__accent:after{border-color:#95dbff94}@media (max-width:768px){.tutorial-mouse-orbit__icon{width:min(100%,calc(var(--tutorial-visual-size,84px) - 4px));height:min(100%,calc(var(--tutorial-visual-size,84px) - 4px))}.tutorial-mouse-orbit__accent{width:10px;top:13px;bottom:13px}.tutorial-mouse-orbit__accent--left{left:-1px}.tutorial-mouse-orbit__accent--right{right:-1px}.tutorial-mouse-orbit__mouse{width:40px;height:62px}.tutorial-mouse-orbit__hint{font-size:.88rem}}
