.project-page .tesseract-wrap,.project-page .services-block,.project-page .contact-block,.project-page .section-label--audio{display:none}.project-page main,.project-page .audio-visualizer,.project-page .project-logo,.project-page .project-info{opacity:0}.project-page.is-ready main,.project-page.is-ready .audio-visualizer,.project-page.is-ready .project-logo,.project-page.is-ready .project-info{opacity:1}.project-main{height:calc(calc(var(--u) * 900) - var(--nav-height));z-index:20;position:fixed;inset-block-start:var(--nav-height);inset-inline-start:0;inset-inline-end:calc(var(--viz-width) + var(--grid-margin) * 2 + var(--grid-gutter));overflow:hidden}.project-canvas-wrap{width:100%;height:100%;position:relative;overflow:hidden}.project-canvas-wrap .project-scroll-hint,.project-canvas-wrap .project-meta{pointer-events:auto}.project-meta{display:none}.project-meta-num{font-family:var(--font-mono);font-size:calc(var(--u) * 10);letter-spacing:.12em;color:var(--color-fg);opacity:.45;margin-block-end:calc(var(--u) * 10);font-weight:400;display:block}.project-meta-title{font-family:var(--font-display);font-size:calc(var(--u) * 32);letter-spacing:-.02em;color:var(--color-fg);text-transform:uppercase;margin-block-end:calc(var(--u) * 12);font-weight:200;line-height:.9}.project-meta-services{font-family:var(--font-display);font-size:calc(var(--u) * 9);letter-spacing:.06em;color:var(--color-fg);opacity:.5;text-transform:uppercase;margin-block-end:calc(var(--u) * 20);font-weight:400;line-height:1.6}.project-meta-progress{align-items:center;gap:calc(var(--u) * 16);display:flex}.project-meta-track{width:calc(var(--u) * 120);height:calc(var(--u) * 1);background:#ffffff26;position:relative;overflow:hidden}.project-meta-fill{background:var(--color-fg);width:0%;transition:width .4s var(--ease-out);position:absolute;inset-block:0;inset-inline-start:0}.project-meta-count{font-family:var(--font-mono);font-size:calc(var(--u) * 9);letter-spacing:.08em;color:var(--color-fg);opacity:.4}.project-scroll-hint{z-index:60;pointer-events:none;align-items:center;gap:calc(var(--u) * 14);opacity:1;transition:opacity .6s var(--ease-out);display:flex;position:fixed;inset-block-end:calc(var(--u) * 28);inset-inline-start:var(--grid-margin)}.project-scroll-hint.is-hidden{opacity:0}.project-scroll-hint span{font-family:var(--font-mono);font-size:calc(var(--u) * 9);letter-spacing:.1em;color:var(--color-fg);opacity:.35;text-transform:uppercase}.scroll-hint-line{width:calc(var(--u) * 40);height:calc(var(--u) * 1);background:#fff3;position:relative;overflow:hidden}.scroll-hint-line:after{content:"";background:var(--color-fg);width:100%;animation:hint-sweep 1.8s var(--ease-out) infinite;position:absolute;inset-block:0;inset-inline-start:-100%}@keyframes hint-sweep{0%{opacity:0;transform:translate(0%)}20%{opacity:1}to{opacity:0;transform:translate(200%)}}.project-scroll-next{transform:translate(-50%, calc(-50% + calc(var(--u) * 6)));z-index:60;pointer-events:none;align-items:center;gap:calc(var(--u) * 12);opacity:0;transition:opacity .4s var(--ease-out), transform .4s var(--ease-out);display:flex;position:fixed;inset-block-start:50%;inset-inline-start:50%}.project-scroll-next.is-revealed{opacity:1;transform:translate(-50%,-50%)}.project-scroll-next span{font-family:var(--font-mono);font-size:calc(var(--u) * 10);letter-spacing:.16em;color:var(--color-fg);text-transform:uppercase;white-space:nowrap}.project-canvas-wrap .project-depth-canvas{transition:opacity .4s var(--ease-out)}.project-canvas-wrap.is-end-revealed .project-depth-canvas{opacity:0}.project-logo{width:var(--viz-width);height:var(--viz-height);z-index:50;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset-block-start:calc(var(--nav-height) + var(--title-gap) - var(--u) * 24);inset-inline-end:var(--grid-margin)}.project-logo-img{object-fit:contain;width:75%;height:45%;display:block}.project-logo-text{font-family:var(--font-display);font-size:calc(var(--u) * 24);letter-spacing:.04em;text-transform:uppercase;color:var(--color-fg);text-align:center;font-weight:200;line-height:1}.project-info{width:var(--viz-width);z-index:50;flex-direction:column;gap:0;display:flex;position:fixed;inset-block-start:calc(var(--nav-height) + var(--title-gap) + var(--viz-height) - calc(var(--u) * 32));inset-block-end:calc(var(--u) * 28);inset-inline-end:var(--grid-margin);overflow:visible}.project-info-content{gap:calc(var(--u) * 32);flex-direction:column;display:flex}.project-info-nav{gap:calc(var(--u) * 8);flex-direction:column;margin-block-start:auto;padding-block-start:calc(var(--u) * 24);display:flex}.project-info-section{display:block}.project-info-label{font-family:var(--font-mono);font-size:calc(var(--u) * 9);letter-spacing:.02em;text-transform:uppercase;color:var(--color-muted);margin-block-end:calc(var(--u) * 12);font-weight:400;line-height:1;display:block}.project-info-text{font-family:var(--font-mono);font-size:calc(var(--u) * 9);letter-spacing:.02em;color:var(--color-fg);text-transform:uppercase;font-weight:400;line-height:1.55}.project-info-section--timeline .project-info-text{font-family:var(--font-mono);letter-spacing:.02em;text-transform:uppercase}.project-page .project-info .project-info-content{padding:calc(var(--u) * 16);background:var(--card-bg);backdrop-filter:var(--card-filter);border-radius:calc(var(--u) * 2);gap:0}.project-page .project-info .project-info-section+.project-info-section{border-block-start:1px solid #ffffff1f;margin-block-start:calc(var(--u) * 16);padding-block-start:calc(var(--u) * 16)}.project-live-link{align-self:flex-start;align-items:center;gap:calc(var(--u) * 8);font-family:var(--font-mono);font-size:calc(var(--u) * 9);letter-spacing:.12em;text-transform:uppercase;color:var(--color-bg);padding:calc(var(--u) * 7) calc(var(--u) * 14);border-radius:calc(var(--u) * 2);transition:background-size var(--duration-base) var(--ease-out), color var(--duration-base) var(--ease-out);background-color:#fff;background-image:linear-gradient(#0d0d0d,#0d0d0d);background-position:0 100%;background-repeat:no-repeat;background-size:100% 0%;margin-block-start:calc(var(--u) * 32);text-decoration:none;display:inline-flex;position:relative}.project-live-link:after{content:"";width:calc(var(--u) * 12);height:calc(var(--u) * 12);transition:background-color var(--duration-base) var(--ease-out);background:currentColor;flex-shrink:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E") 50%/contain no-repeat}.project-live-link:before{content:"";width:calc(var(--viz-width) - var(--u) * 32);pointer-events:none;background:#ffffff1f;height:1px;position:absolute;inset-block-start:calc(var(--u) * -16);inset-inline-start:0}.project-live-link:hover,.project-live-link:focus-visible,.project-live-link.is-line-hover-active{color:var(--color-fg);background-size:100% 100%}.project-live-link .line-hover__inner{transition:color var(--duration-base) var(--ease-out)}.project-live-link:hover .line-hover__inner,.project-live-link:focus-visible .line-hover__inner,.project-live-link.is-line-hover-active .line-hover__inner{color:var(--color-fg)}.project-live-link:hover:after,.project-live-link:focus-visible:after,.project-live-link.is-line-hover-active:after{background-color:var(--color-fg)}.project-live-link .line-hover__bg{display:none}.project-next-link,.project-prev-link{font-family:var(--font-mono);font-size:calc(var(--u) * 9);letter-spacing:.12em;text-transform:uppercase;color:var(--color-fg);opacity:.6;padding-block:calc(var(--u) * 4);transition:opacity var(--duration-fast) var(--ease-out);align-self:flex-start;text-decoration:none;display:inline-block}.project-next-link:hover,.project-prev-link:hover{opacity:1}.project-live-link .line-hover__bg,.project-next-link .line-hover__bg,.project-prev-link .line-hover__bg{background:var(--color-fg);backdrop-filter:none}@media (hover:hover) and (pointer:fine){.project-live-link.is-line-hover-active .line-hover__bg,.project-next-link.is-line-hover-active .line-hover__bg,.project-prev-link.is-line-hover-active .line-hover__bg{-webkit-clip-path:inset(0);clip-path:inset(0)}.project-live-link.is-line-hover-active,.project-next-link.is-line-hover-active,.project-prev-link.is-line-hover-active{color:var(--color-bg);opacity:1}}.project-mobile-info,.project-mobile-overview-trigger,.project-overview-modal{display:none}.project-main:after{content:"";width:calc(var(--u) * 1);pointer-events:none;background:#ffffff14;position:absolute;inset-block:0;inset-inline-end:calc(var(--u) * -1)}.project-depth-canvas{z-index:2;touch-action:none;pointer-events:auto;width:100%;height:100%;display:block;position:absolute;inset:0}.project-mobile-title,.project-mobile-hint{display:none}@media (width<=767px){:root{--mp-canvas-h:calc(var(--u) * 500);--mp-info-top:calc(var(--nav-height) + var(--mp-canvas-h) + calc(var(--u) * 16));--mp-about-gap:calc(var(--u) * 10);--mp-title-h:calc(var(--u) * 16);--mp-about-h:calc(100vh - var(--mp-info-top) - var(--mp-title-h) - var(--mp-about-gap) - calc(var(--u) * 20))}.project-page .project-logo,.project-page .project-info,.project-page .project-scroll-hint,.project-page .audio-visualizer{display:none!important}.project-page .project-meta{display:none}.project-page{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.project-page .project-main{height:var(--mp-canvas-h);z-index:20;position:fixed;inset-block-start:var(--nav-height);inset-block-end:auto;inset-inline:0;overflow:hidden}.project-page .project-main:after{display:none}.project-page .project-mobile-info{align-items:flex-start;gap:calc(var(--u) * 16);z-index:50;opacity:0;flex-direction:column;transition:opacity .4s;display:flex;position:fixed;inset-block-end:calc(var(--u) * 90);inset-inline-start:var(--m);inset-inline-end:var(--m)}.project-page.is-ready .project-mobile-info{opacity:1}.project-page .project-mobile-title{display:none}.project-page .project-mobile-logo{align-items:center;display:flex}.project-page .project-mobile-logo-img{height:calc(var(--u) * 42);object-fit:contain;width:auto;display:block}.project-page .project-mobile-meta{gap:calc(var(--u) * 12);flex-direction:column;display:flex}.project-page .project-mobile-meta-label{font-family:var(--font-mono);font-size:calc(var(--u) * 11);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);margin-block-end:calc(var(--u) * 3);display:block}.project-page .project-mobile-meta-value{font-family:var(--font-mono);font-size:calc(var(--u) * 11);letter-spacing:.02em;color:var(--color-fg);text-wrap:balance;text-transform:uppercase;line-height:1.25;display:block}.project-page .project-mobile-overview-trigger{align-items:center;gap:calc(var(--u) * 8);padding:calc(var(--u) * 11) calc(var(--u) * 22);border-radius:calc(var(--u) * 2);cursor:pointer;font-family:var(--font-mono);font-size:calc(var(--u) * 11);letter-spacing:.1em;text-transform:uppercase;color:var(--color-bg);-webkit-tap-highlight-color:transparent;background:#fff;border:none;margin:0;transition:opacity .2s;display:inline-flex}.project-page .project-mobile-overview-trigger:after{content:"";width:calc(var(--u) * 13);height:calc(var(--u) * 13);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") 50%/contain no-repeat;flex-shrink:0}.project-page .project-mobile-overview-trigger:active{opacity:.85}.project-page .project-mobile-hint{z-index:50;font-family:var(--font-mono);font-size:calc(var(--u) * 10);letter-spacing:.1em;text-transform:uppercase;color:var(--color-fg);opacity:.3;display:block;position:fixed;inset-block-end:calc(var(--u) * 28);inset-inline-start:var(--m)}.project-page .project-overview-modal{z-index:200;background:var(--color-bg);opacity:0;visibility:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex-direction:column;transition:opacity .35s,visibility .35s;display:flex;position:fixed;inset:0;overflow-y:auto}.project-page .project-overview-modal.is-open{opacity:1;visibility:visible}.project-overview-modal-inner{padding:calc(var(--u) * 28) var(--m) calc(var(--u) * 26);gap:calc(var(--u) * 21);box-sizing:border-box;flex-direction:column;min-height:100dvh;display:flex}.project-overview-modal-logo{flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;margin-block-start:clamp(calc(var(--u) * 8), 1.5vh, calc(var(--u) * 24));margin-block-end:clamp(calc(var(--u) * 8), 1.5vh, calc(var(--u) * 24));display:flex}.project-overview-modal-logo img{width:clamp(calc(var(--u) * 120), 28vw, calc(var(--u) * 220));max-height:clamp(calc(var(--u) * 40), 8vh, calc(var(--u) * 100));object-fit:contain;height:auto;display:block}.project-overview-modal-logo .project-logo-text{font-size:clamp(calc(var(--u) * 20), 4vw, calc(var(--u) * 32))}.project-overview-modal-content{gap:clamp(calc(var(--u) * 3), .6vh, calc(var(--u) * 8));flex-direction:column;display:flex}.project-overview-modal-section{padding:calc(var(--u) * 20);background:var(--card-bg);backdrop-filter:var(--card-filter);border-radius:calc(var(--u) * 2);display:block}.project-overview-modal-section .project-info-label{font-size:calc(var(--u) * 11);margin-block-end:calc(var(--u) * 10)}.project-overview-modal-section .project-info-text{font-size:calc(var(--u) * 11);line-height:1.55}.project-overview-live-link{align-items:center;gap:calc(var(--u) * 8);font-family:var(--font-mono);font-size:calc(var(--u) * 12);letter-spacing:.1em;text-transform:uppercase;color:var(--color-bg);padding:calc(var(--u) * 11) calc(var(--u) * 22);border-radius:calc(var(--u) * 2);background:#fff;flex-shrink:0;align-self:center;margin-block-start:auto;text-decoration:none;transition:opacity .2s;display:inline-flex}.project-overview-live-link:after{content:"";width:calc(var(--u) * 13);height:calc(var(--u) * 13);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7'/%3E%3Cpath d='M8 7h9v9'/%3E%3C/svg%3E") 50%/contain no-repeat;flex-shrink:0}.project-overview-live-link:active{opacity:.85}.project-overview-close{color:var(--color-fg);font-family:var(--font-mono);font-size:calc(var(--u) * 12);letter-spacing:.1em;cursor:pointer;padding:clamp(calc(var(--u) * 8), 1.5vh, calc(var(--u) * 16)) calc(var(--u) * 24);text-transform:uppercase;opacity:.75;background:0 0;border:none;flex-shrink:0;margin-block-start:clamp(calc(var(--u) * 8), 1.5vh, calc(var(--u) * 24));margin-inline:auto;transition:opacity .2s}.project-overview-close:active{opacity:1}body.has-overview-modal-open .audio-toggle,body.has-overview-modal-open .project-mobile-hint,body.has-overview-modal-open .project-mobile-info{visibility:hidden}}.audio-toggle{z-index:80;align-items:center;gap:calc(var(--u) * 12);cursor:pointer;-webkit-user-select:none;user-select:none;display:none;position:fixed;inset-block-end:calc(var(--u) * 28);inset-inline-end:var(--grid-margin,calc(var(--u) * 28))}.project-page .audio-toggle,.about-page .audio-toggle{opacity:0;transition:opacity .6s;display:flex}.project-page.is-ready .audio-toggle,.about-page .audio-toggle{opacity:1}.audio-toggle-label{font-family:var(--font-display);font-size:calc(var(--u) * 10);letter-spacing:.06em;color:var(--color-fg);opacity:0;text-transform:capitalize;font-weight:300;transition:opacity .3s}.audio-toggle:hover .audio-toggle-label,.audio-toggle.is-state-reveal .audio-toggle-label{opacity:1}.audio-toggle-wave{width:calc(var(--u) * 32);height:calc(var(--u) * 32);overflow:visible}.audio-toggle-bar{stroke:#ffffff73;stroke-width:2px;stroke-linecap:round;transform-box:fill-box;transform-origin:50%;transition:stroke .3s,transform .3s;transform:scaleY(.1)}.audio-toggle-slash{stroke:#ffffff8c;stroke-width:1.6px;stroke-linecap:round;opacity:1;transition:opacity .3s,stroke .3s}.audio-toggle.is-playing .audio-toggle-bar{stroke:#ffffffbf;animation:1s ease-in-out infinite audio-wave-bar}.audio-toggle.is-playing .audio-toggle-bar[data-bar="0"]{animation-delay:0s}.audio-toggle.is-playing .audio-toggle-bar[data-bar="1"]{animation-delay:.12s}.audio-toggle.is-playing .audio-toggle-bar[data-bar="2"]{animation-delay:.24s}.audio-toggle.is-playing .audio-toggle-bar[data-bar="3"]{animation-delay:.36s}.audio-toggle.is-playing .audio-toggle-bar[data-bar="4"]{animation-delay:.48s}.audio-toggle.is-playing .audio-toggle-slash{opacity:0}.audio-toggle:hover .audio-toggle-bar{stroke:#ffffffd9}.audio-toggle:hover .audio-toggle-slash{stroke:#ffffffbf}@keyframes audio-wave-bar{0%,to{transform:scaleY(.2)}25%{transform:scaleY(1)}50%{transform:scaleY(.45)}75%{transform:scaleY(.85)}}@media (width<=767px){.audio-toggle-wave{width:calc(var(--u) * 28);height:calc(var(--u) * 28)}.audio-toggle-label{font-size:calc(var(--u) * 9)}}