:root{--color-bg: #0a0a0a;--color-bg-rgb: 10, 10, 10;--color-bg-elevated: #111111;--color-text: #ffffff;--color-text-muted: rgba(255, 255, 255, .5);--color-accent: #ffffff;--color-accent-light: #ffffff;--color-accent-glow: rgba(255, 255, 255, .3);--font-display: "Poppins", sans-serif;--font-body: "Space Grotesk", sans-serif;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 4rem;--spacing-xl: 8rem;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1)}.app--light{--color-bg: #f5f5f5;--color-bg-rgb: 245, 245, 245;--color-bg-elevated: #ffffff;--color-text: #0a0a0a;--color-text-muted: rgba(0, 0, 0, .5);--color-accent: #0a0a0a;--color-accent-light: #0a0a0a;--color-accent-glow: rgba(0, 0, 0, .3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:auto;overflow-x:hidden}body{font-family:var(--font-body);background-color:var(--color-bg);color:var(--color-text);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color 1.2s var(--ease-out-quart),color 1.2s var(--ease-out-quart)}::selection{background:var(--color-accent);color:var(--color-bg)}.app{position:relative;min-height:100vh;min-height:100dvh;opacity:0;transition:opacity .6s var(--ease-out-expo);overflow-x:hidden;max-width:100%;touch-action:pan-x pinch-zoom;overscroll-behavior:none}.app--loaded{opacity:1}.scroll-track{position:relative;pointer-events:none;z-index:-1}.section-wrapper{position:absolute;top:0;left:0;width:100%;height:100vh;height:100dvh;transform-style:preserve-3d;--chroma-offset: 0px;z-index:auto}.section-wrapper h1,.section-wrapper h2,.section-wrapper p,.section-wrapper span{transition:color 1.2s var(--ease-out-quart)}.section-wrapper--chroma h1,.section-wrapper--chroma h2{text-shadow:calc(var(--chroma-offset) * -1) 0 0 rgba(255,0,100,.7),var(--chroma-offset) 0 0 rgba(0,200,255,.7)}.app--light .section-wrapper--chroma h1,.app--light .section-wrapper--chroma h2{text-shadow:calc(var(--chroma-offset) * -1) 0 0 rgba(255,0,100,.5),var(--chroma-offset) 0 0 rgba(0,150,255,.5)}.scene-container{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;z-index:0;pointer-events:none;animation:fadeIn 1s var(--ease-out-quart) both}.main{position:fixed;top:0;left:0;width:100%;height:100vh;height:100dvh;z-index:1;perspective:1000px;perspective-origin:50% 50%;transform-style:preserve-3d;overflow:hidden}.section{position:relative;width:100%;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);box-sizing:border-box;overflow-x:hidden}.section__content{width:100%;max-width:min(1400px,100%);margin:0 auto;box-sizing:border-box;animation:fadeIn .6s ease-out both}.hero{display:flex;flex-direction:column;justify-content:center;width:100%;max-width:100%;overflow:hidden}.hero__content{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-lg);width:100%;max-width:100%}.hero__title-wrapper{display:flex;flex-direction:column;gap:0}.hero__title-group{margin:0;padding:0}.hero__title{font-family:var(--font-display);font-size:clamp(2.5rem,10vw,10rem);font-weight:600;line-height:.9;letter-spacing:-.02em;text-transform:uppercase;margin:0;max-width:100%;overflow-wrap:break-word}.hero__title-line{display:block;color:var(--color-text)}.hero__title-line--accent{color:var(--color-text)}.hero__header{margin-bottom:var(--spacing-md);display:flex;flex-direction:column;align-items:flex-start}.hero__description{font-size:clamp(1.125rem,2vw,1.375rem);font-weight:600;line-height:1.8;color:var(--color-text-muted);margin-bottom:var(--spacing-md);max-width:min(550px,100%)}.hero__scroll-indicator{position:absolute;bottom:var(--spacing-lg);left:var(--spacing-lg);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);font-size:clamp(.625rem,1.5vw,.75rem);letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-muted)}.hero__scroll-line{width:1px;height:60px;background:var(--color-text);transition:background-color 1.2s var(--ease-out-quart)}.portfolio-section{position:relative;width:100%;max-width:100%;overflow:hidden}.portfolio-section__header{margin-bottom:var(--spacing-md);max-width:100%;overflow:hidden}.portfolio-section__header--right{text-align:right}.portfolio-section__number{font-family:var(--font-display);font-size:clamp(4rem,15vw,15rem);font-weight:700;line-height:1;color:var(--color-text);opacity:.05;position:absolute;top:50%;transform:translateY(-50%);pointer-events:none;z-index:0;max-width:100%;overflow:hidden}.portfolio-section__header--right .portfolio-section__number{right:var(--spacing-lg)}.portfolio-section__header:not(.portfolio-section__header--right) .portfolio-section__number{left:var(--spacing-lg)}.portfolio-section__heading{margin:0;position:relative;z-index:1}.portfolio-section__title{display:block;font-family:var(--font-display);font-size:clamp(1.5rem,6vw,5rem);font-weight:600;line-height:1;letter-spacing:-.02em;text-transform:uppercase;margin:0;position:relative;z-index:1;color:var(--color-text);max-width:100%;overflow-wrap:break-word;word-break:break-word}.portfolio-section__title--outline{color:var(--color-text)}.portfolio-section__content{max-width:min(360px,100%);position:relative;z-index:1}.portfolio-section__content--right{margin-left:auto;text-align:right}.portfolio-section__description{font-size:clamp(1.125rem,2vw,1.375rem);font-weight:600;line-height:1.8;color:var(--color-text-muted);margin-bottom:var(--spacing-md);max-width:min(550px,100%)}.portfolio-section__header--right .portfolio-section__description{margin-left:auto;text-align:right}.portfolio-section__accent{position:absolute;bottom:0;left:0;width:100%;height:1px;background:linear-gradient(90deg,var(--color-text),transparent);transform-origin:left}.portfolio-section__accent--right{background:linear-gradient(270deg,var(--color-text),transparent);transform-origin:right}.portfolio-section__scroll-indicator{position:absolute;bottom:var(--spacing-lg);left:var(--spacing-lg);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);font-size:clamp(.625rem,1.5vw,.75rem);letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-muted);z-index:1}.portfolio-section__scroll-line{width:1px;height:60px;background:var(--color-text);transition:background-color 1.2s var(--ease-out-quart)}.scroll-line{transform:scaleY(0)}.section--active .scroll-line{animation:scrollLine 1.5s ease-in-out infinite}.footer{position:absolute;bottom:var(--spacing-lg);right:var(--spacing-lg);display:flex;align-items:center;gap:var(--spacing-sm);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted)}.footer__divider{opacity:.3}.navigation{position:fixed;right:calc(var(--spacing-md) - 16px);top:50%;transform:translateY(-50%);z-index:100}.navigation__dots{display:flex;flex-direction:column}.navigation__dot{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:0;-webkit-tap-highlight-color:transparent}.navigation__dot-inner{display:block;width:clamp(8px,1.5vw,12px);height:clamp(8px,1.5vw,12px);background:var(--color-text);border-radius:50%;transform:scale(.5);opacity:.4;transition:transform .3s var(--ease-out-expo),opacity .3s var(--ease-out-expo),background-color 1.2s var(--ease-out-quart)}.navigation__dot--active .navigation__dot-inner{transform:scale(1);opacity:1;box-shadow:0 0 20px #ffffff4d}.navigation__label{position:absolute;right:calc(50% + 18px);top:50%;transform:translateY(-50%);font-size:.625rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;transition:color 1.2s var(--ease-out-quart),opacity .3s var(--ease-out-expo);color:var(--color-text-muted)}.navigation__dot:hover .navigation__label{opacity:1}.header{position:fixed;top:0;left:0;right:0;z-index:200;height:75px;padding:calc(var(--spacing-md) * .75) var(--spacing-lg);background-color:#0a0a0a;transition:background-color 1.2s var(--ease-out-quart)}.app--light .header{background-color:#f5f5f5}.header__inner{display:flex;align-items:center;gap:var(--spacing-lg)}.header__logo{text-decoration:none;font-family:var(--font-display);font-size:clamp(.95rem,2.25vw,1.3rem);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--color-text);cursor:pointer;transition:color 1.2s var(--ease-out-quart),opacity .3s ease}.header__logo:hover{opacity:.7}.header__nav{display:flex;align-items:center;gap:var(--spacing-md)}.header__link{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-body);font-size:clamp(.65rem,1.2vw,.75rem);font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--color-text);background:none;border:none;cursor:pointer;padding:.5rem 0;position:relative;transition:color 1.2s var(--ease-out-quart),opacity .3s ease}.header__link:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--color-text);transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease-out-expo)}.header__link:hover:after,.header__link--active:after{transform:scaleX(1);transform-origin:left}.header__link--active{opacity:1}.header__link:hover{opacity:.7}.header__hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:0;margin-left:auto;margin-right:-6px;-webkit-tap-highlight-color:transparent;z-index:210}.header__hamburger-line{display:block;width:20px;height:2px;background:var(--color-text);border-radius:1px;transition:transform .3s var(--ease-out-expo),opacity .3s ease,background-color 1.2s var(--ease-out-quart)}.header__hamburger--open .header__hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.header__hamburger--open .header__hamburger-line:nth-child(2){opacity:0}.header__hamburger--open .header__hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.header__mobile-menu{display:none;position:fixed;top:100px;left:0;right:0;background-color:var(--color-bg);padding:var(--spacing-lg) var(--spacing-md);flex-direction:column;gap:var(--spacing-md);z-index:200;border-bottom:1px solid var(--color-accent-glow);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-20px);transition:opacity .3s var(--ease-out-quart),transform .3s var(--ease-out-quart),visibility 0s linear .3s,background-color 1.2s var(--ease-out-quart)}.header__mobile-menu--open{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .3s var(--ease-out-quart),transform .3s var(--ease-out-quart),visibility 0s,background-color 1.2s var(--ease-out-quart)}.header__mobile-link{font-family:var(--font-body);font-size:.875rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);background:none;border:none;cursor:pointer;padding:var(--spacing-sm) 0;text-align:right;transition:color 1.2s var(--ease-out-quart),opacity .3s ease}.header__mobile-link:hover{opacity:.7}.header__mobile-link--active{opacity:1;color:var(--color-text)}@media(max-width:768px){:root{--spacing-lg: 1.5rem}.section{padding:var(--spacing-md)}.hero__title{font-size:clamp(2.5rem,15vw,6rem)}.header{padding:calc(var(--spacing-sm) * .75) var(--spacing-md);height:45px}.header__inner{justify-content:space-between;width:100%}.header__nav--desktop{display:none}.header__hamburger{display:flex}.header__mobile-menu{display:flex;top:45px}.header__logo{font-size:.85rem}.portfolio-section__title{font-size:clamp(1.5rem,10vw,4rem)}.portfolio-section__number{font-size:clamp(3rem,20vw,10rem)}.portfolio-section__content{max-width:100%;text-align:left;margin-left:0}.portfolio-section__content--right{max-width:100%;text-align:right;margin-left:auto}.portfolio-section__header--right{text-align:right}.portfolio-section__header--right .portfolio-section__description{margin-left:auto;text-align:right}.navigation{right:0}.footer{right:var(--spacing-md);left:var(--spacing-md);justify-content:center}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.section--active .scroll-line{animation:none;transform:none}.scene-container,.section__content{animation:none}.header__mobile-menu{transform:none}}.about{position:relative;width:100%;max-height:calc(90vh - 96px);overflow-x:hidden;overflow-y:auto;background:transparent;box-sizing:border-box}.about__content{padding:var(--spacing-lg);max-width:900px;margin:0 auto}.about__intro{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-accent-glow)}.about__intro p{font-size:clamp(1.25rem,2vw,1.5rem);font-weight:600;line-height:1.8;color:var(--color-text);margin:0}.about__service{color:inherit;text-decoration:none;cursor:pointer;display:flex;flex-direction:column;margin-bottom:var(--spacing-xl);background:rgba(var(--color-bg-rgb),.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden;transition:transform .4s var(--ease-out-expo),box-shadow .4s var(--ease-out-expo),border-color .4s var(--ease-out-expo),background-color 1.2s var(--ease-out-quart)}.app--light .about__service{border-color:#0000001a;background:#fff6}.about__service:hover{border-color:#ffffff4d;transform:translateY(-4px);box-shadow:0 8px 32px #ff69b433,0 4px 16px #00bfff26}.app--light .about__service:hover{border-color:#0003;box-shadow:0 8px 32px #ff69b440,0 4px 16px #00bfff33}.about__service-banner{width:100%;height:180px;overflow:hidden;background:#ffffff0d}.about__service-banner img{width:100%;height:140%;object-fit:cover;object-position:center calc(30% + var(--parallax, .5) * 40%)}.about__service-banner-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#ffffff1a,#ffffff08);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:clamp(.625rem,1.5vw,.75rem);font-weight:500;letter-spacing:.1em;text-transform:uppercase}.about__service-content{padding:var(--spacing-md)}.about__service-title{font-family:var(--font-display);font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:600;letter-spacing:-.01em;color:var(--color-text);margin:0 0 var(--spacing-xs);text-align:left;transition:text-shadow .4s ease,color 1.2s var(--ease-out-quart)}.about__service-description{font-size:clamp(1.05rem,1.5vw,1.15rem);font-weight:400;line-height:1.6;color:var(--color-text-muted);margin:0 0 var(--spacing-sm);text-align:left;transition:color 1.2s var(--ease-out-quart)}.about__service-arrow{display:flex;align-items:center;justify-content:flex-end;margin-top:var(--spacing-sm);color:var(--color-text-muted);opacity:0;transform:translate(-10px);transition:all .3s var(--ease-out-expo)}.about__service:hover .about__service-arrow{opacity:1;transform:translate(0)}@media(max-width:768px){.about{max-height:calc(90vh - 72px)}.about__content{padding:var(--spacing-md)}.about__service{margin-bottom:var(--spacing-lg)}.about__service-banner{height:150px}}.about-modal-backdrop{position:fixed;inset:0;z-index:200;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.about-modal{background:var(--color-bg);color:var(--color-text);border-radius:12px;border:1px solid var(--color-accent-glow);box-shadow:0 20px 60px #00000059;max-width:900px;width:100%;max-height:90vh;overflow:hidden;position:relative;-webkit-overflow-scrolling:touch}.about-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-accent-glow)}.about-modal__title{font-family:var(--font-display);font-size:clamp(1.25rem,3vw,1.6rem);font-weight:600;letter-spacing:-.02em;text-transform:uppercase;color:var(--color-text);margin:0}.about-modal__close{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:4px;color:var(--color-text);transition:color .2s ease,opacity .2s ease}.about-modal__close:hover{opacity:.7}@media(max-width:768px){.about-modal-backdrop,.about-modal__header{padding:var(--spacing-md)}}.contact-modal-backdrop{position:fixed;inset:0;z-index:200;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);overflow:hidden;touch-action:none}.contact-modal{background:#fff;border-radius:8px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:100%;max-height:85vh;max-height:85dvh;overflow-y:auto;overflow-x:hidden;position:relative;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.contact-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid #e5e5e5}.contact-modal__title{font-family:var(--font-display);font-size:clamp(1.25rem,3vw,1.75rem);font-weight:600;letter-spacing:-.02em;text-transform:uppercase;color:#0a0a0a;margin:0}.contact-modal__close{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:4px;color:#666;transition:color .2s ease}.contact-modal__close:hover{color:#0a0a0a}.contact-modal__form{padding:var(--spacing-lg)}.contact-modal__field{margin-bottom:var(--spacing-lg)}.contact-modal__label{display:block;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:#0a0a0a;margin-bottom:var(--spacing-sm)}.contact-modal__input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid #d1d5db;border-radius:4px;font-family:var(--font-body);font-size:.875rem;color:#0a0a0a;background:#fff;transition:border-color .2s ease,box-shadow .2s ease;height:40px}.contact-modal__input::placeholder{color:#9ca3af}.contact-modal__input:focus{outline:none;border-color:#00bfff;box-shadow:0 0 0 3px #00bfff1a}.contact-modal__input:disabled{opacity:.6;cursor:not-allowed}.contact-modal__textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid #d1d5db;border-radius:4px;font-family:var(--font-body);font-size:.875rem;color:#0a0a0a;background:#fff;transition:border-color .2s ease,box-shadow .2s ease;resize:vertical;min-height:120px}.contact-modal__textarea::placeholder{color:#9ca3af}.contact-modal__textarea:focus{outline:none;border-color:#00bfff;box-shadow:0 0 0 3px #00bfff1a}.contact-modal__textarea:disabled{opacity:.6;cursor:not-allowed}.contact-modal__radio-group{display:flex;gap:var(--spacing-lg);margin-top:var(--spacing-xs)}.contact-modal__radio-label{display:flex;align-items:center;gap:var(--spacing-xs);font-family:var(--font-body);font-size:.875rem;color:#0a0a0a;cursor:pointer}.contact-modal__radio-label input[type=radio]{width:18px;height:18px;cursor:pointer;accent-color:#0a0a0a}.contact-modal__radio-label input[type=radio]:disabled{opacity:.6;cursor:not-allowed}.contact-modal__radio-label span{-webkit-user-select:none;user-select:none}.contact-modal__dropdown-wrapper{position:relative;width:100%}.contact-modal__dropdown-button{width:100%;height:40px;padding:var(--spacing-sm) var(--spacing-md);border:3px solid #d1d5db;border-radius:4px;font-family:var(--font-body);font-size:.875rem;color:#0a0a0a;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:border-color .2s ease,box-shadow .2s ease;text-align:left}.contact-modal__dropdown-button:hover{border-color:#9ca3af}.contact-modal__dropdown-button:focus{outline:none;border-color:#00bfff;box-shadow:0 0 0 3px #00bfff1a}.contact-modal__dropdown-button--placeholder{color:#9ca3af}.contact-modal__dropdown-arrow{flex-shrink:0;margin-left:var(--spacing-sm);transition:transform .2s ease}.contact-modal__dropdown-arrow--open{transform:rotate(180deg)}.contact-modal__dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #d1d5db;border-radius:4px;box-shadow:0 4px 12px #00000026;list-style:none;margin:0;padding:4px 0;z-index:10;max-height:200px;overflow-y:auto}.contact-modal__dropdown-option{padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-body);font-size:.875rem;color:#0a0a0a;cursor:pointer;transition:background-color .15s ease}.contact-modal__dropdown-option:hover{background-color:#f3f4f6}.contact-modal__dropdown-option--selected{background-color:#f9fafb;font-weight:500}.contact-modal__actions{display:flex;gap:var(--spacing-sm);justify-content:center;padding-top:var(--spacing-md);border-top:1px solid #e5e5e5}.contact-modal__button{padding:var(--spacing-sm) var(--spacing-lg);font-family:var(--font-body);font-size:.875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;border:3px solid #d1d5db;border-radius:4px;cursor:pointer;transition:all .2s ease;background:#fff;color:#666}.contact-modal__button:hover{border-color:#00bfff;color:#00bfff}.contact-modal__button--submit{background:#0a0a0a;color:#fff;border:3px solid #0a0a0a}.contact-modal__button--submit:hover{background:#1a1a1a;border-color:#1a1a1a}.contact-modal__button--cancel:hover{background:#f9f9f9}.contact-modal__button:disabled{opacity:.6;cursor:not-allowed}.contact-modal__dropdown-button:disabled{opacity:.6;cursor:not-allowed}.contact-modal__error,.contact-modal__success{margin-top:var(--spacing-sm);padding:var(--spacing-sm);border-radius:4px;font-family:var(--font-body);font-size:.875rem;text-align:center}.contact-modal__error{background-color:#fee2e2;color:#dc2626;border:1px solid #fecaca}.contact-modal__success{background-color:#d1fae5;color:#059669;border:1px solid #a7f3d0}@media(max-width:768px){.contact-modal-backdrop{padding:var(--spacing-sm);align-items:flex-start;padding-top:var(--spacing-md)}.contact-modal{max-height:90vh;max-height:90dvh}.contact-modal__header{padding:var(--spacing-md);position:sticky;top:0;background:#fff;z-index:1}.contact-modal__form{padding:var(--spacing-md)}.contact-modal__actions{flex-direction:column}.contact-modal__button{width:100%;padding:var(--spacing-md)}}.gallery-button{text-decoration:none;display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:clamp(.625rem,1.5vw,.875rem) clamp(1rem,2.5vw,1.75rem);margin-top:var(--spacing-md);font-family:var(--font-body);font-size:clamp(.65rem,1.5vw,.8rem);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text);background:transparent;border:3px solid var(--color-accent-glow);border-radius:2px;cursor:pointer;transition:color .8s ease,border-color .8s ease,background-color .4s var(--ease-out-expo),transform .4s var(--ease-out-expo);position:relative;z-index:10}.gallery-button svg{transition:color .8s ease,transform .3s var(--ease-out-expo);color:inherit}.gallery-button:hover{border-color:var(--color-text);background:#ffffff0d;transform:scale(1.02)}.gallery-button:active{transform:scale(.98)}.app--light .gallery-button:hover{background:#0000000d}.gallery-button__arrow{transition:transform .3s var(--ease-out-expo),color .8s ease}.gallery-button:hover .gallery-button__arrow{transform:translate(4px)}.gallery{position:fixed;inset:0;z-index:100;width:100vw;max-width:100%;height:100vh;height:100dvh;overflow-x:hidden;overflow-y:auto;background:transparent;pointer-events:none;box-sizing:border-box;transform:translate(calc((1 - var(--camera-progress, 0)) * 100%));opacity:var(--camera-progress, 0)}.gallery--active{pointer-events:auto}.gallery__header,.gallery__return{opacity:calc((var(--camera-progress, 0) - .7) / .3)}.gallery__header{position:fixed;top:calc(var(--spacing-lg) + .75rem);left:var(--spacing-lg);z-index:150;padding:var(--spacing-sm) var(--spacing-md);background:rgba(var(--color-bg-rgb),.9);border-radius:4px;pointer-events:none;transition:background-color .8s ease}.gallery__header--active{pointer-events:auto}.gallery__title{font-family:var(--font-display);font-size:clamp(1.25rem,3vw,2.5rem);font-weight:600;letter-spacing:-.02em;text-transform:uppercase;color:var(--color-text);margin:0;text-align:left;transition:color .8s ease}.gallery__return{position:fixed;bottom:var(--spacing-lg);left:var(--spacing-lg);z-index:150;display:flex;align-items:center;gap:var(--spacing-sm);padding:clamp(.625rem,1.5vw,.875rem) clamp(1rem,2vw,1.5rem);font-family:var(--font-body);font-size:clamp(.65rem,1.5vw,.8rem);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text);background:rgba(var(--color-bg-rgb),.9);border:3px solid var(--color-accent-glow);border-radius:2px;cursor:pointer;transition:color .8s ease,background-color .8s ease,border-color .8s ease;pointer-events:none}.gallery__return--active{pointer-events:auto}.gallery__return:hover{border-color:var(--color-text);background:rgba(var(--color-bg-rgb),.85)}.gallery__return svg{transition:transform .3s var(--ease-out-expo)}.gallery__return:hover svg{transform:translate(-4px)}.event-list{padding:calc(var(--spacing-lg) * 4) var(--spacing-lg) calc(var(--spacing-lg) * 3);max-width:900px;margin:0 auto;min-height:100vh;min-height:100dvh;opacity:0;pointer-events:none;transition:opacity .4s ease}.event-list--visible{opacity:1;pointer-events:auto}.event-list__empty{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--color-text-muted);opacity:0;transition:opacity .5s ease .8s}.event-list__empty--visible{opacity:1}.event-list__empty p{font-size:1.5rem;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--color-text)}.event-list__empty span{font-size:.875rem;letter-spacing:.05em}.event-row{color:inherit;text-decoration:none;display:flex;flex-direction:column;margin-bottom:var(--spacing-md);background:rgba(var(--color-bg-rgb),.3);border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;overflow:hidden;opacity:0;transition:transform .4s var(--ease-out-expo),box-shadow .4s var(--ease-out-expo),border-color .4s var(--ease-out-expo),background-color .8s ease}.event-row--visible{opacity:1}.event-row--visible.event-row--stagger{animation:eventRowFadeIn .4s ease-out forwards;animation-delay:var(--stagger-delay, 0s);opacity:0}@keyframes eventRowFadeIn{0%{opacity:0}to{opacity:1}}.app--light .event-row{border-color:#0000001a;background:#fff6}.event-row:hover{border-color:#ffffff4d;transform:translateY(-4px);box-shadow:0 8px 32px #ff69b433,0 4px 16px #00bfff26}.app--light .event-row:hover{border-color:#0003;box-shadow:0 8px 32px #ff69b440,0 4px 16px #00bfff33}.event-row__banner{width:100%;height:180px;overflow:hidden;background:#ffffff0d}.event-row__banner img{width:100%;height:140%;object-fit:cover;object-position:center calc(30% + var(--parallax, .5) * 40%)}.event-row__banner-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#ffffff1a,#ffffff08)}.event-row__content{padding:var(--spacing-md)}.event-row__title{font-family:var(--font-display);font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:600;letter-spacing:-.01em;color:var(--color-text);margin:0 0 var(--spacing-xs);text-align:left;transition:text-shadow .4s ease,color .8s ease}.event-row__subheading{font-family:var(--font-body);font-size:clamp(.75rem,1.5vw,.875rem);font-weight:400;letter-spacing:.05em;color:var(--color-text-muted);margin:0 0 var(--spacing-sm);text-align:left;text-transform:uppercase;opacity:.8;transition:color .8s ease}.event-row__footer{display:flex;align-items:center;justify-content:space-between}.event-row__count{font-size:clamp(.625rem,1.2vw,.75rem);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);opacity:.7;text-align:left}.event-row__arrow{color:var(--color-text-muted);opacity:0;transform:translate(-10px);transition:all .3s var(--ease-out-expo)}.event-row:hover .event-row__arrow{opacity:1;transform:translate(0)}.event-detail{padding:var(--spacing-lg) var(--spacing-xl);width:100%;max-width:100vw;box-sizing:border-box;min-height:100vh;min-height:100dvh;opacity:0;pointer-events:none;position:absolute;top:0;left:0;transition:opacity .4s ease}.gallery--event-active .event-detail{opacity:1;pointer-events:auto}.event-detail__header{max-width:600px;margin:calc(var(--spacing-lg) * 3) auto var(--spacing-xl);margin-left:0;text-align:left}.event-detail__title{font-family:var(--font-display);font-size:clamp(2rem,5vw,4rem);font-weight:600;letter-spacing:-.02em;text-transform:uppercase;color:var(--color-text);margin:0 0 var(--spacing-sm);text-align:left;transition:color .8s ease}.event-detail__subheading{font-family:var(--font-body);font-size:clamp(.875rem,2vw,1.125rem);font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 var(--spacing-md);text-align:left;opacity:.8;transition:color .8s ease}.event-detail__description{font-size:clamp(1.125rem,2vw,1.375rem);font-weight:600;line-height:1.8;color:var(--color-text-muted);margin:0;text-align:left;transition:color .8s ease}.event-detail__meta{display:grid;gap:var(--spacing-xs);margin:var(--spacing-md) 0 0;font-size:clamp(.75rem,1.5vw,.875rem);letter-spacing:.05em;color:var(--color-text-muted);transition:color .8s ease}.event-detail__meta-row{display:flex;flex-wrap:wrap;gap:0 var(--spacing-sm)}.event-detail__meta dt{text-transform:uppercase;opacity:.8}.event-detail__meta dd{margin:0;color:var(--color-text)}.event-detail__empty{text-align:center;color:var(--color-text-muted);padding:var(--spacing-xl)}.event-detail__videos{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);padding:0 var(--spacing-md) var(--spacing-xl);width:100%;box-sizing:border-box}.event-detail__video-item{position:relative;max-width:900px;width:100%;aspect-ratio:var(--video-aspect, 16 / 9);border-radius:8px;overflow:hidden;cursor:pointer;background:#0000004d;transition:box-shadow .4s var(--ease-out-expo)}.event-detail__video-item:hover{box-shadow:0 8px 32px #ff69b433,0 4px 16px #00bfff26}.app--light .event-detail__video-item:hover{box-shadow:0 8px 32px #ff69b440,0 4px 16px #00bfff33}.event-detail__video-item--playing{cursor:default}.event-detail__video-item--playing:hover{box-shadow:none}.event-detail__video-item video{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s var(--ease-out-expo);background:#0000001a}.event-detail__video-item:hover video{transform:scale(1.05)}.event-detail__video-item--playing:hover video{transform:none}.event-detail__video-play{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;font:inherit;display:flex;align-items:center;justify-content:center;color:#ffffffe6;background:#0003;cursor:pointer;transition:background .3s ease,transform .3s var(--ease-out-expo)}.event-detail__video-item:hover .event-detail__video-play{background:#0000001a}.event-detail__video-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:#ffffffe6;background:#00000059;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase}.event-detail__video-loading-spinner{width:28px;height:28px;border-radius:999px;border:2px solid rgba(255,255,255,.25);border-top-color:#fffffff2;animation:video-loading-spin .9s linear infinite}@keyframes video-loading-spin{to{transform:rotate(360deg)}}.event-detail__video-play svg{filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));transition:transform .3s var(--ease-out-expo)}.event-detail__video-item:hover .event-detail__video-play svg{transform:scale(1.1)}.event-detail__album{max-width:1200px;margin:0 auto;padding:16px var(--spacing-lg) var(--spacing-xl);width:100%;box-sizing:border-box;transition:opacity .5s ease}.event-detail__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-md);width:100%}.event-detail__grid-item{display:block;width:100%;padding:0;border:0;font:inherit;color:inherit;position:relative;aspect-ratio:1 / 1;border-radius:8px;overflow:hidden;cursor:pointer;background:#0003;transition:box-shadow .4s var(--ease-out-expo)}.event-detail__grid-item:hover{z-index:5;box-shadow:0 8px 32px #ff69b433,0 4px 16px #00bfff26}.app--light .event-detail__grid-item:hover{box-shadow:0 8px 32px #ff69b440,0 4px 16px #00bfff33}.event-detail__grid-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease-out-expo)}.event-detail__grid-item:hover img{transform:scale(1.05)}@media(max-width:900px){.event-detail__grid{grid-template-columns:repeat(3,1fr)}.event-detail__video-item{max-width:100%}}@media(max-width:600px){.event-detail__grid{grid-template-columns:repeat(2,1fr)}.event-detail__videos{padding:0 var(--spacing-sm) var(--spacing-lg)}.event-detail__album{padding:16px var(--spacing-sm) var(--spacing-lg)}}.yarl__root{--yarl-color-backdrop: rgba(0, 0, 0, .95)}.app__content-wrapper{width:100%;min-height:100vh;min-height:100dvh;overflow:hidden}html:has(.app--gallery-open),body:has(.app--gallery-open){overflow:clip;overflow-clip-margin:0}.app--gallery-open{overflow:clip}.app__main-view{width:100%;min-height:100vh;min-height:100dvh;position:relative;opacity:1;transition:opacity .5s ease}.app--gallery-open .app__main-view{opacity:0;pointer-events:none}.app .navigation{opacity:1;pointer-events:auto;transition:opacity .3s ease}.app--gallery-open .navigation{opacity:0;pointer-events:none}.app--gallery-open .scroll-track{display:none}@media(prefers-reduced-motion:reduce){.event-row--visible.event-row--stagger{animation:none;opacity:1}}@media(max-width:768px){.event-list{padding:calc(var(--spacing-lg) * 4.5) var(--spacing-md) calc(var(--spacing-lg) * 2.5)}.event-row__banner{height:140px}.event-row__content{padding:var(--spacing-sm)}.event-row__arrow{display:none}.event-row:hover{transform:translateY(-2px)}.event-detail{padding:var(--spacing-md) var(--spacing-lg)}.event-detail__album{padding:16px var(--spacing-md) var(--spacing-lg)}.event-detail__header{margin:calc(var(--spacing-lg) * 2.5) 0 var(--spacing-lg);margin-left:0;padding:0 var(--spacing-md)}.gallery__header{top:calc(var(--spacing-md) + .5rem);left:var(--spacing-md)}.gallery__return{bottom:var(--spacing-md);left:var(--spacing-md);padding:.75rem 1rem}}
