/* ===== KS POSNANIA — Optimized Performance ===== */

/* --- Language switching --- */
[lang="pl"] .en{display:none!important}
[lang="en"] .pl{display:none!important}

/* --- Critical resets --- */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f9f9f9;color:#1a1c1c;line-height:1.6;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}
img{max-width:100%;height:auto;display:block;content-visibility:auto}
a{color:inherit;text-decoration:none}
::selection{background:#004e75;color:#fff}

/* --- Page Loader (fast dismiss) --- */
.loader{position:fixed;inset:0;z-index:9999;background:#f9f9f9;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease-out,visibility .3s ease-out}
.loader.done{opacity:0;visibility:hidden;pointer-events:none}
.loader-ring{width:32px;height:32px;border:3px solid #e2e2e2;border-top-color:#004e75;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* --- Top Nav (GPU layer, reduced blur on mobile) --- */
.top-nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:.875rem 1.5rem;background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translateZ(0);will-change:transform;transition:transform .25s ease,background .2s ease,box-shadow .2s ease}
.top-nav.scrolled{background:rgba(255,255,255,.96);box-shadow:0 1px 0 rgba(0,0,0,.06)}
.top-nav.hide{transform:translate3d(0,-100%,0)}
@media(min-width:768px){.top-nav{padding:1.25rem 3rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}
.nav-in{display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:0 auto}
.nav-logo{font-family:'Manrope',sans-serif;font-weight:800;font-size:1.15rem;letter-spacing:.1em;color:#004e75;text-transform:uppercase}
.nav-links{display:none;gap:2.5rem;align-items:center}
@media(min-width:768px){.nav-links{display:flex}}
.nav-link{font-family:'Manrope',sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#707880;transition:color .2s;position:relative}
.nav-link:hover,.nav-link.on{color:#004e75}
.nav-link.on{border-bottom:2px solid #004e75;padding-bottom:4px}
.nav-cta{display:none;padding:.6rem 1.5rem;background:#004e75;color:#fff;font-family:'Manrope',sans-serif;font-weight:700;font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;border:none;cursor:pointer;transition:background .2s}
.nav-cta:hover{background:#0f6796}
@media(min-width:768px){.nav-cta{display:inline-flex}}
.nav-r{display:flex;align-items:center;gap:.75rem}

/* Lang toggle */
.lang-btn{padding:.3rem .7rem;font-size:.6rem;font-weight:700;letter-spacing:.08em;color:#707880;border:1px solid #c0c7d0;background:transparent;cursor:pointer;transition:color .2s,border-color .2s;font-family:inherit}
.lang-btn:hover{color:#004e75;border-color:#004e75}

/* Hamburger (GPU) */
.ham{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:8px;background:0;border:0;z-index:110}
.ham span{display:block;width:20px;height:2px;background:#004e75;transition:transform .25s ease,opacity .2s ease;transform-origin:center}
.ham.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.ham.open span:nth-child(2){opacity:0}
.ham.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
@media(min-width:768px){.ham{display:none}}

/* Mobile drawer (GPU, no blur on low-end) */
.drawer{position:fixed;inset:0;z-index:105;background:rgba(255,255,255,.98);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2rem;opacity:0;pointer-events:none;transition:opacity .3s ease;transform:translateZ(0)}
.drawer.open{opacity:1;pointer-events:all}
.drawer a{font-family:'Manrope',sans-serif;font-weight:800;font-size:1.4rem;color:#707880;transition:color .2s;text-transform:uppercase}
.drawer a.on,.drawer a:hover{color:#004e75}

/* --- Bottom Nav (simplified blur) --- */
.bot-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid #e2e2e2;padding:.4rem 0 max(.4rem,env(safe-area-inset-bottom));justify-content:space-around;transform:translateZ(0)}
@media(min-width:768px){.bot-nav{display:none}}
.bot-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.5rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#707880;padding:.35rem .4rem;min-width:52px;transition:color .15s}
.bot-nav a.on{color:#004e75}
.bot-nav svg{width:18px;height:18px}

/* --- Scroll Animations (GPU-only, snappier) --- */
.anim{opacity:0;transform:translate3d(0,20px,0);transition:opacity .4s cubic-bezier(.25,.46,.45,.94),transform .4s cubic-bezier(.25,.46,.45,.94);will-change:opacity,transform}
.anim.fl{transform:translate3d(-20px,0,0)}
.anim.fr{transform:translate3d(20px,0,0)}
.anim.fs{transform:scale3d(.97,.97,1)}
.anim.v{opacity:1;transform:translate3d(0,0,0) scale3d(1,1,1)}
/* Stagger (shorter delays) */
.stag>.anim:nth-child(1){transition-delay:0s}
.stag>.anim:nth-child(2){transition-delay:.06s}
.stag>.anim:nth-child(3){transition-delay:.12s}
.stag>.anim:nth-child(4){transition-delay:.18s}
.stag>.anim:nth-child(5){transition-delay:.24s}
.stag>.anim:nth-child(6){transition-delay:.3s}
.stag>.anim:nth-child(7){transition-delay:.36s}
.stag>.anim:nth-child(8){transition-delay:.42s}

/* --- Off-screen optimization --- */
section{content-visibility:auto;contain-intrinsic-size:auto 600px}

/* --- H-Scroll (lock vertical, native momentum) --- */
.hscroll{display:flex;overflow-x:auto;overflow-y:hidden;gap:1rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.5rem;overscroll-behavior-x:contain;overscroll-behavior-y:none;touch-action:pan-x}
.hscroll::-webkit-scrollbar{display:none}
.hscroll>*{scroll-snap-align:start;flex-shrink:0}

/* --- Draggable infinite carousel --- */
.carousel-wrap{overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-x;position:relative}
.carousel-wrap:active{cursor:grabbing}
.carousel-track{display:flex;flex-wrap:nowrap;width:max-content;will-change:transform;transform:translateZ(0)}
.carousel-track>*{flex-shrink:0}

/* --- Grayscale image hover (GPU filter) --- */
.img-gs{filter:grayscale(1) brightness(.9) contrast(1.1);transition:filter .5s ease;transform:translateZ(0)}
.group:hover .img-gs,.img-gs:hover{filter:grayscale(0) brightness(1) contrast(1)}

/* --- Editorial helpers --- */
.editorial-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem}
.hide-scrollbar::-webkit-scrollbar{display:none}
.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}

/* --- Footer --- */
.foot{background:#eee;padding:3rem 1.5rem 1.5rem}
@media(min-width:768px){.foot{padding:4rem 3rem 1.5rem}}
.foot-in{max-width:1400px;margin:0 auto}
.foot a{transition:color .2s}
.foot a:hover{color:#004e75}
.foot-link{font-size:.65rem;color:#707880;transition:color .2s;display:block;padding:.15rem 0;letter-spacing:.15em;text-transform:uppercase;font-weight:500}

/* Glow dot */
.glow{width:6px;height:6px;border-radius:50%;background:#ba1a1a;box-shadow:0 0 8px #ba1a1a;animation:gpulse 2s ease-in-out infinite;display:inline-block}
@keyframes gpulse{0%,100%{opacity:1}50%{opacity:.3}}

/* Mobile safe area */
main{padding-bottom:4rem}
@media(min-width:768px){main{padding-bottom:0}}

/* Material Symbols */
.material-symbols-outlined{font-variation-settings:'FILL' 0,'wght' 200,'GRAD' 0,'opsz' 24}

/* Scrollbar */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:#f9f9f9}
::-webkit-scrollbar-thumb{background:#004e75}

/* --- Reduce motion for users who prefer it --- */
@media(prefers-reduced-motion:reduce){
  .anim{transition:none!important;opacity:1!important;transform:none!important}
  .stag>.anim{transition-delay:0s!important}
  .img-gs{transition:none!important}
  .loader{transition:none!important}
  .top-nav{transition:none!important}
  html{scroll-behavior:auto}
  .loader-ring{animation:none}
}
