:root{--gallery-surface:#0a0c10;--gallery-text:#e8ecf1;--gallery-text-secondary:#98a2b0;--gallery-accent:#ff6a00;--gallery-accent-2:#1e7bff;--gallery-border:#becddc1f}.gallery-preloader{background:var(--gallery-surface);z-index:9999;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.gallery-preloader__meta{text-align:center;font-family:var(--font-display), "Nasalization", sans-serif;letter-spacing:.15em;color:var(--gallery-text-secondary);flex-direction:column;gap:.5rem;margin-bottom:3rem;font-size:.875rem;display:flex}.gallery-preloader__count{font-size:3.5rem;font-weight:300;font-family:var(--font-display), "Nasalization", sans-serif;color:var(--gallery-text);text-align:center;width:150px;margin-bottom:2rem}.gallery-preloader__bar{background:#e8e4e01a;width:200px;height:2px;overflow:hidden}.gallery-preloader__bar span{background:var(--gallery-accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.gallery-root{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.gallery-root canvas{display:block;width:100%!important;height:100%!important}.gallery-header{z-index:100;pointer-events:none;mix-blend-mode:screen;justify-content:space-between;align-items:center;width:100%;height:80px;padding:1.5rem;display:flex;position:absolute;top:0;left:0;right:0}.gallery-logo{pointer-events:auto;cursor:pointer;border:1px solid var(--gallery-border);border-radius:50%;justify-content:center;align-items:center;width:50px;height:50px;text-decoration:none;transition:all .3s;display:flex}.gallery-logo:hover{border-color:var(--gallery-accent);background:#ff6a0014}.gallery-logo__mark{font-family:var(--font-display), "Nasalization", sans-serif;color:var(--gallery-text);letter-spacing:.05em;font-size:1.25rem;font-weight:700}.gallery-view-nav{pointer-events:auto;align-items:center;gap:1rem;display:flex}.gallery-view-nav__btn{color:var(--gallery-text-secondary);letter-spacing:.1em;cursor:pointer;background:0 0;border:none;padding:.5rem 1rem;font-family:Space Grotesk,sans-serif;font-size:.875rem;transition:all .3s;position:relative}.gallery-view-nav__btn:hover{color:var(--gallery-text)}.gallery-view-nav__btn.is-active{color:var(--gallery-accent)}.gallery-view-nav__dot{background:var(--gallery-border);border-radius:50%;width:4px;height:4px}.gallery-menu-btn{cursor:pointer;pointer-events:auto;background:0 0;border:none;align-items:center;gap:.5rem;transition:all .3s;display:flex}.gallery-menu-btn__label{letter-spacing:.1em;color:var(--gallery-text);text-transform:uppercase;font-family:Space Grotesk,sans-serif;font-size:.875rem}.gallery-menu-btn__dot{background:var(--gallery-accent);border-radius:50%;width:4px;height:4px}.gallery-menu-btn:hover .gallery-menu-btn__label{color:var(--gallery-accent)}.gallery-hero{text-align:center;z-index:50;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gallery-hero__eyebrow{letter-spacing:.15em;color:var(--gallery-text-secondary);opacity:0;margin:0 0 1rem;font-family:Space Grotesk,sans-serif;font-size:.875rem}.gallery-hero__title{font-family:var(--font-display), "Nasalization", sans-serif;letter-spacing:.05em;color:var(--gallery-text);margin:0;font-size:clamp(3rem,12vw,8rem);font-weight:400;line-height:1}.gallery-hero__title .char-wrap{display:inline-block;overflow:hidden}.gallery-hero__title .char{display:inline-block}.gallery-badge{opacity:0;z-index:40;pointer-events:none;width:120px;height:120px;position:absolute;bottom:3rem;left:3rem}.gallery-badge svg{width:100%;height:100%}.gallery-badge text{letter-spacing:.1em;fill:var(--gallery-text-secondary);font-family:Space Grotesk,sans-serif;font-size:10px;font-weight:300}.gallery-badge__center{color:var(--gallery-accent);font-size:.5rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.work-label{z-index:40;pointer-events:none;opacity:0;align-items:center;gap:1rem;display:flex;position:absolute;bottom:3rem;right:3rem}.work-label__index{font-family:var(--font-display), "Nasalization", sans-serif;color:var(--gallery-text);letter-spacing:.05em;min-width:40px;font-size:1.5rem;font-weight:700}.work-label__line{background:var(--gallery-border);width:40px;height:1px}.work-label__title{letter-spacing:.1em;color:var(--gallery-text);text-transform:uppercase;white-space:nowrap;font-family:Space Grotesk,sans-serif;font-size:.875rem}.gallery-hint{letter-spacing:.1em;color:var(--gallery-text-secondary);opacity:0;z-index:40;pointer-events:none;font-family:Space Grotesk,sans-serif;font-size:.875rem;transition:opacity .6s;position:absolute;bottom:3rem;left:50%;transform:translate(-50%)}.gallery-sound-btn{cursor:pointer;z-index:100;pointer-events:auto;background:0 0;border:none;justify-content:center;align-items:center;width:40px;height:40px;transition:opacity .3s;display:flex;position:absolute;top:1.5rem;right:1.5rem}.gallery-sound-btn__bars{align-items:flex-end;gap:2px;display:flex}.gallery-sound-btn__bars i{background:var(--gallery-text);border-radius:1px;width:2px;animation:.6s ease-in-out infinite soundWave;display:block}.gallery-sound-btn__bars i:first-child{height:4px;animation-delay:0s}.gallery-sound-btn__bars i:nth-child(2){height:8px;animation-delay:.15s}.gallery-sound-btn__bars i:nth-child(3){height:6px;animation-delay:.3s}.gallery-sound-btn__bars i:nth-child(4){height:10px;animation-delay:.45s}.gallery-sound-btn.is-muted .gallery-sound-btn__bars i{opacity:.4;animation:none}@keyframes soundWave{0%,to{opacity:.3}50%{opacity:1}}.gallery-menu{z-index:200;visibility:hidden;width:100%;height:100%;position:absolute;top:0;left:0}.gallery-menu.is-open{visibility:visible}.gallery-menu__panel{background:var(--gallery-surface);width:100%;height:100%;position:absolute;top:0;left:0;transform:translateY(-101%)}.gallery-menu.is-open .gallery-menu__panel{transform:translateY(0)}.gallery-menu__inner{flex-direction:column;justify-content:space-between;max-width:600px;height:100%;padding:120px 2rem 3rem;display:flex;position:relative}.gallery-menu__links{flex-direction:column;gap:2rem;display:flex}.gallery-menu__links a{opacity:0;align-items:baseline;gap:1.5rem;text-decoration:none;transition:all .3s;display:flex;transform:translateY(60px)}.gallery-menu.is-open .gallery-menu__links a{opacity:1;transform:translateY(0)}.gallery-menu__links a em{font-style:normal;font-family:var(--font-display), "Nasalization", sans-serif;color:var(--gallery-text-secondary);min-width:30px;font-size:.875rem}.gallery-menu__links a span{letter-spacing:.05em;color:var(--gallery-text);text-transform:uppercase;font-family:Space Grotesk,sans-serif;font-size:1.5rem}.gallery-menu__links a:hover span{color:var(--gallery-accent)}.gallery-menu__footer{opacity:0;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem;display:grid;transform:translateY(16px)}.gallery-menu.is-open .gallery-menu__footer{opacity:1;transform:translateY(0)}.gallery-menu__footer-label{letter-spacing:.15em;color:var(--gallery-text-secondary);text-transform:uppercase;margin:0 0 .5rem;font-family:Space Grotesk,sans-serif;font-size:.75rem}.gallery-menu__footer a{color:var(--gallery-text);font-family:Space Grotesk,sans-serif;font-size:.875rem;text-decoration:none;transition:color .3s}.gallery-menu__footer a:hover{color:var(--gallery-accent)}.gallery-menu__footer p{color:var(--gallery-text);margin:0;font-family:Space Grotesk,sans-serif;font-size:.875rem}.gallery-grain{pointer-events:none;z-index:999;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\"><filter id=\"noise\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.9\" numOctaves=\"4\" result=\"noise\" /></filter><rect width=\"100\" height=\"100\" fill=\"rgba(255,255,255,0.02)\" filter=\"url(%23noise)\" /></svg>");width:100%;height:100%;position:absolute;top:0;left:0}.gallery-cursor,.gallery-cursor-ring{display:none}.gallery-cursor-ring.is-hover{border-color:var(--gallery-accent)}@media (max-width:768px){.gallery-header{height:60px;padding:1rem}.gallery-hero{top:40%}.gallery-hero__title{font-size:clamp(2rem,10vw,4rem)}.gallery-badge,.work-label{margin:2rem;position:static;transform:none;opacity:1!important}.gallery-hint{bottom:1.5rem}.gallery-sound-btn{top:1rem;right:1rem}.gallery-menu__inner{padding:80px 1.5rem 2rem}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
