.app{width:100vw;height:100vh;position:relative;overflow:hidden}.app-background{z-index:0;background:#000;position:absolute;inset:0;overflow:hidden}.mesh-gradient{position:absolute;inset:0;overflow:hidden}.mesh-gradient__canvas{filter:saturate(1.08);width:100%;height:100%;transition:filter .55s cubic-bezier(.4,0,.2,1);display:block}.app-background--card-hover .mesh-gradient__canvas{filter:saturate(1.05)blur(80px)}.crt-overlay{z-index:4;pointer-events:none;background:linear-gradient(#12101000 50%,#0000004d 50%) 0 0/100% 4px;animation:.15s infinite crt-flicker;position:absolute;inset:0;box-shadow:inset 0 0 60px #000c,inset 0 0 20px #000}@keyframes crt-flicker{0%{opacity:.96}50%{opacity:1}to{opacity:.98}}.gallery-canvas{z-index:1;touch-action:none;cursor:grab;background:0 0;width:100%;height:100%;position:relative}.gallery-canvas:active{cursor:grabbing}.gallery-canvas.gallery-canvas--pointer,.gallery-canvas.gallery-canvas--pointer:active{cursor:pointer}.gallery-loader{z-index:1;pointer-events:none;justify-content:center;align-items:center;transition:opacity .45s,visibility .45s;display:flex;position:absolute;inset:0}.gallery-loader--hidden{opacity:0;visibility:hidden}.gallery-loader__logo{object-fit:contain;width:2.5rem;height:2.5rem;animation:1.6s ease-in-out infinite gallery-loader-pulse}@keyframes gallery-loader-pulse{0%,to{opacity:.3;transform:scale(.94)}50%{opacity:.95;transform:scale(1)}}.overlay{pointer-events:none;z-index:2;flex-direction:column;align-items:center;padding-top:2.5rem;display:flex;position:absolute;inset:0}.gallery-autoscroll-toggle{color:#ffffff80;-webkit-backdrop-filter:blur(10px);cursor:pointer;pointer-events:auto;background:#ffffff08;border:1px solid #ffffff12;border-radius:999px;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:0;transition:color .2s,border-color .2s;display:flex;position:absolute;top:1.75rem;right:1.75rem}.gallery-autoscroll-toggle:hover,.gallery-autoscroll-toggle:focus-visible{color:#ffffffe6;border-color:#ffffff24;outline:none}.site-brand{pointer-events:auto;align-items:center;gap:1rem;display:flex;position:absolute;top:1.75rem;left:1.75rem}.site-brand__logo{object-fit:contain;opacity:.9;width:2rem;height:2rem}.site-brand__sep{background:#ffffff38;flex-shrink:0;width:1px;height:1.35rem}.site-brand__name{letter-spacing:.14em;text-transform:uppercase;color:#ffffffb8;margin:0;font-size:.82rem;font-weight:400;line-height:1}.site-brand__name strong{color:#fff;font-weight:700}.layout-toggle{pointer-events:auto;letter-spacing:.04em;text-transform:lowercase;flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem;max-width:28rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.95rem;display:flex}.layout-toggle__group{align-items:center;gap:.65rem;display:inline-flex}.layout-toggle button{color:#ffffff59;cursor:pointer;background:0 0;border:none;padding:.25rem .1rem;transition:color .2s}.layout-toggle button:hover,.layout-toggle button.active{color:#fff}.layout-toggle__fav{justify-content:center;align-items:center;padding:.2rem .15rem;line-height:0;display:inline-flex}.layout-toggle__heart{display:block}.layout-toggle .sep{color:#ffffff40;-webkit-user-select:none;user-select:none}.active-project{text-align:center;max-width:32rem;margin-top:auto;margin-bottom:2rem;padding:0 1.25rem}.active-project__title{letter-spacing:.14em;text-transform:uppercase;color:#ffffffeb;margin:0 0 .45rem;font-size:.82rem;font-weight:500}.active-project__description{letter-spacing:.02em;color:#ffffff6b;margin:0;font-size:.78rem;line-height:1.55}.vhs-tuning-toggle{z-index:10;letter-spacing:.12em;text-transform:uppercase;color:#ffffff8c;-webkit-backdrop-filter:blur(10px);cursor:pointer;background:#ffffff08;border:1px solid #ffffff12;border-radius:999px;padding:.45rem .85rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.72rem;transition:color .2s,border-color .2s;position:fixed;bottom:1.75rem;left:1.75rem}.vhs-tuning-toggle:hover,.vhs-tuning-toggle[aria-expanded=true]{color:#fff;border-color:#ffffff2e}.vhs-tuning{z-index:20;color:#ffffffd1;-webkit-backdrop-filter:blur(14px);pointer-events:auto;background:#08080aeb;border:1px solid #ffffff1a;border-radius:12px;width:min(18.5rem,100vw - 2.5rem);max-height:min(70vh,32rem);padding:1rem 1rem .85rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.68rem;position:fixed;bottom:4.5rem;left:1.75rem;overflow:auto;box-shadow:0 12px 40px #00000073}.vhs-tuning__header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.vhs-tuning__title{letter-spacing:.1em;text-transform:uppercase;color:#fff;margin:0;font-size:.72rem;font-weight:600}.vhs-tuning__close{color:#ffffff73;cursor:pointer;background:0 0;border:none;width:1.5rem;height:1.5rem;padding:0;font-size:1.1rem;line-height:1}.vhs-tuning__close:hover{color:#fff}.vhs-tuning__check{cursor:pointer;color:#fff9;align-items:center;gap:.45rem;margin-bottom:.85rem;display:flex}.vhs-tuning__section{letter-spacing:.08em;text-transform:uppercase;color:#ffffff61;margin:.65rem 0 .35rem;font-size:.62rem}.vhs-tuning__row{cursor:pointer;grid-template-columns:1.1rem 1fr 3.2rem;align-items:center;gap:.4rem;margin-bottom:.35rem;display:grid}.vhs-tuning__row-label{color:#ffffff80}.vhs-tuning__range{accent-color:#ffffffbf;width:100%}.vhs-tuning__number{width:100%;font:inherit;color:#fff;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:4px;padding:.15rem .25rem;font-size:.62rem}.vhs-tuning__footer{border-top:1px solid #ffffff14;gap:.5rem;margin-top:.85rem;padding-top:.65rem;display:flex}.vhs-tuning__footer button{font:inherit;letter-spacing:.04em;color:#ffffffb3;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:6px;flex:1;padding:.4rem .5rem;font-size:.62rem}.vhs-tuning__footer button:hover{color:#fff;border-color:#fff3}.vhs-tuning__hint{color:#ffffff59;margin:.65rem 0 0;font-size:.58rem;line-height:1.45}.vhs-tuning__hint code{color:#ffffff80}.audio-player{z-index:10;-webkit-backdrop-filter:blur(10px);pointer-events:auto;opacity:.92;background:#ffffff08;border:1px solid #ffffff12;border-radius:999px;align-items:center;gap:.55rem;padding:.45rem .7rem .45rem .55rem;transition:opacity .2s,border-color .2s;display:flex;position:fixed;bottom:1.75rem;right:1.75rem}.audio-player:hover{opacity:1;border-color:#ffffff24}.audio-player__btn{color:#ffffff80;cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;padding:0;transition:color .2s;display:flex}.audio-player__btn:hover:not(:disabled),.audio-player__btn:focus-visible{color:#ffffffe6;outline:none}.audio-player__btn:disabled{opacity:.3;cursor:default}.audio-player__waveform{flex-shrink:0;width:7rem;height:1.25rem;display:block}.app-background:before,.app-background:after{content:"";pointer-events:none;position:absolute;inset:0}.app-background:before{z-index:2;opacity:.38;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;animation:.12s steps(3,end) infinite grain-drift}.app-background:after{z-index:3;opacity:.22;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 128 128' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n2)'/%3E%3C/svg%3E");background-size:96px 96px;animation:80ms steps(2,end) infinite reverse grain-drift}@keyframes grain-drift{0%{background-position:0 0}25%{background-position:40px -30px}50%{background-position:-20px 50px}75%{background-position:60px 20px}to{background-position:0 0}}*,:before,:after{box-sizing:border-box}html,body,#root{background:#0a0a0b;width:100%;height:100%;margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}
