*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;overflow-x:hidden;background:#000}html,body{background:#000}#root{width:100%;height:100%}.home{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center}.logo{height:200px}.splash-link{display:inline-flex;-webkit-tap-highlight-color:transparent}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0);animation-timing-function:ease-in}50%{transform:translateY(-16px);animation-timing-function:ease-out}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}.anim-fade-in{animation:fadeIn var(--anim-duration, .5s) var(--anim-easing, ease) var(--anim-delay, 0s) both}.anim-fade-out{animation:fadeOut var(--anim-duration, .5s) var(--anim-easing, ease) var(--anim-delay, 0s) both}.anim-slide-in-up{animation:slideInUp var(--anim-duration, .5s) var(--anim-easing, ease) var(--anim-delay, 0s) both}.anim-slide-in-down{animation:slideInDown var(--anim-duration, .5s) var(--anim-easing, ease) var(--anim-delay, 0s) both}.anim-slide-in-left{animation:slideInLeft var(--anim-duration, .5s) var(--anim-easing, ease) var(--anim-delay, 0s) both}.anim-slide-in-right{animation:slideInRight var(--anim-duration, .5s) var(--anim-easing, ease) var(--anim-delay, 0s) both}.anim-scale-in{animation:scaleIn var(--anim-duration, .4s) var(--anim-easing, ease) var(--anim-delay, 0s) both}.anim-pulse{animation:pulse var(--anim-duration, 1.5s) var(--anim-easing, ease-in-out) var(--anim-delay, 0s) infinite}.anim-spin{animation:spin var(--anim-duration, 1s) linear var(--anim-delay, 0s) infinite}.anim-bounce{animation:bounce var(--anim-duration, .8s) var(--anim-easing, ease) var(--anim-delay, 0s) infinite}.anim-shimmer{background:linear-gradient(90deg,transparent 25%,rgba(255,255,255,.15) 50%,transparent 75%);background-size:200% auto;animation:shimmer var(--anim-duration, 1.5s) linear var(--anim-delay, 0s) infinite}.anim-slow{--anim-duration: 1s}.anim-fast{--anim-duration: .25s}.anim-delay-100{--anim-delay: .1s}.anim-delay-200{--anim-delay: .2s}.anim-delay-300{--anim-delay: .3s}.anim-delay-500{--anim-delay: .5s}.anim-delay-750{--anim-delay: .75s}.anim-delay-1s{--anim-delay: 1s}@keyframes lightRays{0%{opacity:0;transform:rotate(0) scale(.6)}25%{opacity:1;transform:rotate(20deg) scale(1.1)}60%{opacity:.6;transform:rotate(40deg) scale(1.3)}to{opacity:0;transform:rotate(60deg) scale(1.6)}}@keyframes lightBloom{0%{opacity:0;filter:brightness(4) blur(12px)}30%{opacity:1;filter:brightness(2) blur(5px)}70%{opacity:1;filter:brightness(1.2) blur(1px)}to{opacity:1;filter:brightness(1) blur(0px)}}.anim-light-burst{position:relative;display:inline-flex;justify-content:center;align-items:center}.anim-light-burst>*{position:relative;z-index:1;animation:lightBloom 4.4s cubic-bezier(.25,.46,.45,.94) forwards}@media (prefers-reduced-motion: reduce){[class*=anim-]{animation:none!important;opacity:1!important;transform:none!important}}.login-page{min-height:100vh;background:#000;color:#fff;display:flex;align-items:center;justify-content:center}.login-main{width:100%;max-width:400px;padding:48px 24px 60px;display:flex;flex-direction:column;align-items:center}.login-logo-link{display:block;margin-bottom:28px}.login-logo{height:64px}.login-title{font-size:1.6rem;font-weight:300;letter-spacing:.12em;text-transform:uppercase;color:#ffffff80;margin-bottom:28px}.login-form{width:100%;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.8rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#fff9}.form-group input{padding:12px 14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fff;font-size:1rem;outline:none;-webkit-appearance:none}.form-group input::placeholder{color:#ffffff4d}.form-group input:focus{border-color:#fff6;background:rgba(255,255,255,.1)}.login-error{font-size:.9rem;color:#ff6b6b;text-align:center}.login-submit{margin-top:8px;padding:14px;background:#fff;border:none;border-radius:4px;color:#000;font-size:1rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent}.login-submit:disabled{opacity:.5;cursor:default}.login-signout{padding:14px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#ffffff80;font-size:1rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent}.header{position:fixed;top:0;left:0;right:0;height:calc(64px + env(safe-area-inset-top));display:flex;align-items:flex-end;justify-content:space-between;padding:0 24px 10px;padding-top:env(safe-area-inset-top);background:rgba(0,0,0,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08);z-index:200}.header-logo-link{display:flex;align-items:center}.header-logo{height:30px}.header-hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px;-webkit-tap-highlight-color:transparent;outline:none}.header-hamburger span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .22s ease,opacity .22s ease;transform-origin:center}.header-hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.header-hamburger.is-open span:nth-child(2){opacity:0;transform:scaleX(0)}.header-hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.header-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:192}.header-menu{position:fixed;top:calc(64px + env(safe-area-inset-top));left:0;right:0;background:#000;border-bottom:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;z-index:195;animation:menuSlideIn .18s ease}@keyframes menuSlideIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.header-menu-item{display:block;padding:18px 24px;border-bottom:1px solid rgba(255,255,255,.06);color:#fff;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;-webkit-tap-highlight-color:transparent}.header-menu-item:last-child{border-bottom:none}.header-menu-signout{background:none;border:none;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer;text-align:left;width:100%;color:#ffffff73}.admin-page{min-height:100vh;background:#000;color:#fff}.admin-main{padding:calc(104px + env(safe-area-inset-top)) 24px 40px}.admin-welcome{font-size:1.4rem;font-weight:300;color:#ffffffb3}.admin-main--sub{padding-top:calc(144px + env(safe-area-inset-top))}.admin-title{font-size:2rem;font-weight:300;letter-spacing:.08em;text-transform:uppercase;color:#fff}.marketing-header{position:fixed;top:calc(64px + env(safe-area-inset-top));left:0;right:0;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.06);z-index:190}.marketing-header-icon-link{display:flex;align-items:center;-webkit-tap-highlight-color:transparent}.marketing-header-icon{width:22px;height:22px;color:#ffffffb3}.marketing-header-hamburger{display:flex;flex-direction:column;justify-content:center;gap:4px;background:none;border:none;cursor:pointer;padding:6px;-webkit-tap-highlight-color:transparent;outline:none}.marketing-header-hamburger span{display:block;width:18px;height:1.5px;background:rgba(255,255,255,.7);border-radius:2px;transition:transform .22s ease,opacity .22s ease;transform-origin:center}.marketing-header-hamburger.is-open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.marketing-header-hamburger.is-open span:nth-child(2){opacity:0;transform:scaleX(0)}.marketing-header-hamburger.is-open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.marketing-header-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140}.marketing-header-menu{position:fixed;top:calc(112px + env(safe-area-inset-top));left:0;right:0;background:rgba(10,10,10,.98);border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;z-index:165;animation:marketingMenuSlideIn .18s ease}@keyframes marketingMenuSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.marketing-header-menu-item{display:block;padding:16px 24px;border-bottom:1px solid rgba(255,255,255,.05);color:#fffc;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;-webkit-tap-highlight-color:transparent}.marketing-header-menu-item:last-child{border-bottom:none}.tm-description{margin:8px 0 0;font-family:sans-serif;font-size:.9rem;color:#ffffff73;font-weight:300}.tm-wrap{font-family:sans-serif;margin-top:32px}.tm-table-wrap{overflow-x:auto;width:fit-content;border:1px solid #ddd;border-radius:6px}.tm-table{border-collapse:collapse;table-layout:fixed;min-width:max-content}.tm-table th{background:#1e1e1e;border:1px solid #333;padding:8px 12px;white-space:nowrap;font-size:.82rem;font-weight:600;color:#f0f0f0;text-align:left;min-width:140px}.tm-table td{border:1px solid #2a2a2a;padding:8px 12px;min-width:140px;height:36px;color:#d4d4d4}.website-header{position:fixed;top:calc(64px + env(safe-area-inset-top));left:0;right:0;height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.06);z-index:190}.website-header-icon-link{display:flex;align-items:center;-webkit-tap-highlight-color:transparent}.website-header-icon{width:22px;height:22px;color:#ffffffb3}.website-header-hamburger{display:flex;flex-direction:column;justify-content:center;gap:4px;background:none;border:none;cursor:pointer;padding:6px;-webkit-tap-highlight-color:transparent;outline:none}.website-header-hamburger span{display:block;width:18px;height:1.5px;background:rgba(255,255,255,.7);border-radius:2px;transition:transform .22s ease,opacity .22s ease;transform-origin:center}.website-header-hamburger.is-open span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.website-header-hamburger.is-open span:nth-child(2){opacity:0;transform:scaleX(0)}.website-header-hamburger.is-open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.website-header-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140}.website-header-menu{position:fixed;top:calc(112px + env(safe-area-inset-top));left:0;right:0;background:rgba(10,10,10,.98);border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;z-index:165;animation:menuSlideIn .18s ease}@keyframes menuSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.website-header-menu-item{display:block;padding:16px 24px;border-bottom:1px solid rgba(255,255,255,.05);color:#fffc;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;-webkit-tap-highlight-color:transparent}.website-header-menu-item:last-child{border-bottom:none}.assets-upload-btn{display:inline-block;margin-top:24px;padding:12px 24px;background:#fff;border-radius:4px;color:#000;font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent}.assets-stage{margin-top:24px;display:flex;flex-direction:column;gap:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:16px}.assets-stage-preview{width:100%;max-height:240px;object-fit:contain;border-radius:4px;background:rgba(255,255,255,.05)}.assets-stage-fields{display:flex;flex-direction:column;gap:12px}.assets-stage-name-row{display:flex;align-items:center;gap:0;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:4px;overflow:hidden}.assets-stage-input{flex:1;padding:10px 12px;background:transparent;border:none;color:#fff;font-size:1rem;outline:none;min-width:0}.assets-stage-input::placeholder{color:#ffffff4d}.assets-stage-ext{padding:10px 12px 10px 0;color:#fff6;font-size:.9rem;white-space:nowrap}.assets-stage-actions{display:flex;gap:10px}.assets-confirm-btn{flex:1;padding:10px;background:#fff;border:none;border-radius:4px;color:#000;font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent}.assets-confirm-btn:disabled{opacity:.5;cursor:default}.assets-cancel-btn{padding:10px 16px;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#ffffff80;font-size:.85rem;cursor:pointer;-webkit-tap-highlight-color:transparent}.assets-error{margin-top:12px;font-size:.9rem;color:#ff6b6b}.assets-empty{margin-top:32px;font-size:.95rem;color:#ffffff59}.assets-grid{margin-top:28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.asset-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:6px;overflow:hidden}.asset-img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:rgba(255,255,255,.03)}.asset-info{padding:10px 12px 12px}.asset-name{font-size:.72rem;color:#ffffff73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:8px}.asset-actions{display:flex;gap:8px}.asset-btn{flex:1;padding:6px 0;background:rgba(255,255,255,.08);border:none;border-radius:3px;color:#ffffffb3;font-size:.72rem;font-weight:500;letter-spacing:.04em;cursor:pointer;-webkit-tap-highlight-color:transparent}.asset-btn--delete{background:rgba(255,60,60,.15);color:#ff6464cc}.product-grid{margin-top:32px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.product-card{display:block;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:border-color .18s}.product-card:hover{border-color:#fff3}.product-card-img{width:100%;aspect-ratio:4 / 3;object-fit:cover;display:block}.product-card-caption{padding:12px 16px 14px;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff9}.sub-grid{margin-top:32px;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.sub-card{display:block;padding:24px 16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:8px;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:border-color .18s,background .18s}.sub-card:hover{background:rgba(255,255,255,.07);border-color:#ffffff2e}.sub-card-label{font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#fff9}.towers-viewport{position:fixed;top:calc(64px + env(safe-area-inset-top));left:0;right:0;bottom:0}.towers-viewport canvas{display:block;width:100%!important;height:100%!important}.towers-hint{position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#ffffff4d;pointer-events:none;white-space:nowrap}
