/* OpenGate's dimensional layer: soft material, deliberate motion, no scroll hijacking. */
:root{--material:rgba(255,255,255,.64);--material-edge:rgba(255,255,255,.88);--lift-shadow:0 24px 55px -32px rgba(36,62,68,.28);--motion-ease:cubic-bezier(.22,.68,0,1.05)}
[data-theme="dark"]{--material:rgba(43,63,73,.54);--material-edge:rgba(209,233,238,.13);--lift-shadow:0 25px 60px -25px rgba(0,0,0,.42)}
body{overflow-x:clip}.page-intro{overflow:clip}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}
.site-header{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(150%) blur(24px);transition:box-shadow .35s,background .35s}
.scrolled .site-header{box-shadow:0 7px 24px -20px rgba(20,40,48,.45)}
.reading-progress{position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--blue);transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none;opacity:.6}
.dropdown{border-radius:18px;padding:10px;box-shadow:0 24px 50px -20px rgba(26,45,55,.2);overflow:hidden}.dropdown a{border-radius:10px;transition:background .2s,transform .2s}.dropdown a:hover{transform:translateX(3px)}
.nav-menu.open>.dropdown{animation:menu-arrive .22s ease both}@keyframes menu-arrive{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.button{border-radius:100px;transition:color .25s,background .25s,border-color .25s,transform .3s var(--motion-ease),box-shadow .3s}
.button.primary{box-shadow:0 6px 14px -10px var(--ink)}.button:hover{transform:translateY(-2px);box-shadow:var(--lift-shadow)}.button:active{transform:translateY(0) scale(.97)}
.theme-toggle,.nav-toggle{transition:background .2s,transform .3s}.theme-toggle:hover{transform:rotate(-12deg)}.theme-toggle:active,.nav-toggle:active{transform:scale(.94)}
.image-space,.image-zoom,.reveal,.map-card{border-radius:22px}.dashboard-frame{border-radius:20px;padding:12px;box-shadow:var(--lift-shadow)}
.image-zoom{isolation:isolate}.zoom-label{border-radius:100px;backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 88%,transparent);transition:transform .3s,background .3s}.image-zoom:hover .zoom-label{transform:translateY(-3px)}
.home-hero{position:relative;isolation:isolate;overflow:clip;padding-top:84px}.home-hero>.container{position:relative;z-index:2}.home-hero h1{letter-spacing:-.057em}.home-hero h1 span{color:var(--blue)}
.hero-sculpture{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;contain:paint}
.gate-object{position:absolute;right:-40px;top:22px;width:340px;height:370px;transform:perspective(1000px) rotateY(-28deg) rotateX(12deg) rotateZ(23deg) translate3d(var(--gate-x,0px),var(--gate-y,0px),0);transform-style:preserve-3d;transition:transform 1s var(--motion-ease);opacity:.78}
.gate-object span{position:absolute;inset:30px;border:2px solid var(--material-edge);border-radius:29%;background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 8%,var(--bg)),var(--material) 34%,color-mix(in srgb,var(--blue) 24%,var(--bg)));box-shadow:inset 1px 2px 4px var(--material-edge),inset -12px -10px 26px color-mix(in srgb,var(--blue) 13%,transparent),16px 22px 27px -12px color-mix(in srgb,var(--blue) 19%,transparent);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;padding:18px}
.gate-object span:nth-child(1){transform:translate3d(-42px,38px,-70px);opacity:.26}.gate-object span:nth-child(2){transform:translate3d(-21px,19px,-35px);opacity:.58}.gate-object span:nth-child(3){transform:translateZ(0)}
.gate-object--small{left:-145px;right:auto;top:250px;width:340px;height:340px;opacity:.46;transform:perspective(1000px) rotateY(32deg) rotateX(14deg) rotateZ(-24deg) translate3d(var(--gate-x,0px),var(--gate-y,0px),0)}
.hero-sculpture::after{content:"";position:absolute;width:540px;height:180px;border-radius:50%;right:-170px;bottom:0;background:radial-gradient(ellipse,color-mix(in srgb,var(--blue) 10%,transparent),transparent 68%);opacity:.7}
.event-hero-photo{perspective:1400px}.event-hero-photo .image-zoom{transform-origin:center center;box-shadow:var(--lift-shadow);border-radius:28px}
.service-card{transition:background .3s}.service-card:hover{background:color-mix(in srgb,var(--tint) 55%,transparent)}
.service-icon{width:48px;height:48px;border:1px solid var(--material-edge);border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,var(--raised),var(--tint));box-shadow:0 7px 14px -10px var(--blue);transition:transform .4s var(--motion-ease)}
.service-card:hover .service-icon{transform:translateY(-3px) rotate(-5deg)}
.section-soft{background:linear-gradient(130deg,var(--surface),color-mix(in srgb,var(--tint) 55%,var(--bg)))}
.person .image-space{border-radius:20px}.person:hover .image-space img{transform:scale(1.035)}
.contact-section{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(110deg,var(--tint),var(--bg));border-color:color-mix(in srgb,var(--line) 65%,transparent)}
.contact-section::after{content:"";width:370px;height:370px;border:40px solid color-mix(in srgb,var(--blue) 6%,transparent);border-radius:32%;position:absolute;right:-80px;top:-100px;z-index:-1;transform:rotate(35deg)}
.page-intro{position:relative;isolation:isolate}.page-intro::after{content:"";position:absolute;right:-45px;top:65px;width:230px;height:230px;border:24px solid color-mix(in srgb,var(--blue) 9%,transparent);border-radius:28%;transform:rotate(26deg);z-index:-1;box-shadow:18px 20px 0 -8px color-mix(in srgb,var(--accent) 5%,transparent);pointer-events:none}
.page-hero:not(.technology-hero){position:relative;isolation:isolate}.page-hero:not(.technology-hero)::before{content:"";position:absolute;right:0;top:10%;width:50%;height:85%;z-index:-1;background:radial-gradient(ellipse,color-mix(in srgb,var(--blue) 6%,transparent),transparent 70%);pointer-events:none}
.tab-list .tab-button{transition:color .2s,background .2s,border-color .2s}.tab-button:active{transform:translateY(1px)}
.device-card{transition:background .3s,transform .35s var(--motion-ease)}.device-card:hover{transform:translateY(-5px)}
.pd-stage,.pd-host-panel,.pd-product-figure{border-radius:22px!important}.pd-stage-art{border-radius:13px!important}.pd-host-tabs{border-radius:100px!important}.pd-host-tabs .tab-button{border-radius:100px!important}
.event-gallery-tabs{border-radius:0}.photo-dialog{border-radius:20px}.pd-host-panel:hover{box-shadow:var(--lift-shadow)}
@media(min-width:1600px){.gate-object{right:4%;width:390px;height:420px}.gate-object--small{left:-30px;right:auto}}
@media(max-width:1100px){.gate-object{right:-135px;opacity:.5}.gate-object--small{left:-210px;right:auto}.page-intro::after{right:-20px;width:165px;height:165px;opacity:.55}}
@media(max-width:680px){.home-hero{padding-top:56px}.gate-object{width:190px;height:210px;right:-112px;top:5px;opacity:.42}.gate-object span{inset:14px;padding:12px}.gate-object--small{left:-140px;right:auto;top:260px;width:200px;height:200px;opacity:.3}.page-intro::after{width:110px;height:110px;right:-10px;top:18px;border-width:12px;opacity:.5}.image-space,.image-zoom,.reveal,.map-card,.event-hero-photo .image-zoom{border-radius:16px}.contact-section::after{right:-240px}.dropdown{border-radius:12px}.pd-stage,.pd-host-panel,.pd-product-figure{border-radius:16px!important}}
@media(prefers-reduced-motion:reduce){.gate-object{transition:none}.button:hover,.device-card:hover,.theme-toggle:hover{transform:none}.reading-progress{display:none}}
