@font-face {
    font-family: 'Segoe UI Variable';
    src: local('Segoe UI Variable Display Regular'), local('Segoe UI Variable Display'), local('Segoe UI');
    font-weight: 400;
}
@font-face {
    font-family: 'Segoe UI Variable';
    src: local('Segoe UI Variable Display Bold'), local('Segoe UI Variable Display'), local('Segoe UI Bold');
    font-weight: 700;
}

:root { --f: 'Segoe UI Variable', sans-serif; }

* { margin:0; padding:0; box-sizing:border-box; cursor:none !important; }
body { font-family:var(--f); background:#000; color:#fff; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
a { color:#fff; text-decoration:none; }
button { background:none; border:none; color:#fff; font:inherit; outline:none; }

/* Custom cursor s optimalizací na GPU (CSS Variables transform) */
.c { position:fixed; top:0; left:0; width:10px !important; height:10px !important; aspect-ratio:1/1; background:#fff; border-radius:50% !important; pointer-events:none; mix-blend-mode:difference; z-index:9999; transform:translate(var(--x, -100px), var(--y, -100px)) translate(-50%, -50%) scale(var(--s, 1)); transition:transform 0.15s cubic-bezier(0.1, 0.8, 0.2, 1); will-change:transform; }
.c.c-h { --s: 7; }

/* === DESKTOP 1920x1080 === */
.h { position:absolute; top:0; left:0; width:100%; height:89px; z-index:100; background:#666666; }
.h-name { position:absolute; left:53px; top:33px; font-weight:700; font-size:34px; letter-spacing:0.69em; line-height:1; }
.h-home { position:absolute; right:53px; top:33px; font-weight:400; font-size:34px; letter-spacing:0.69em; line-height:1; }
.mb-br { display:none; }
.h-ham { display:none; }

.m { position:relative; width:100%; height:100vh; overflow:hidden; }
.hero { position:absolute; top:89px; left:0; width:100%; height:calc(100vh - 89px); z-index:10; }
.h-img { width:100%; height:100%; object-fit:cover; display:block; }

.v-m { position:absolute; left:53px; top:123px; display:flex; flex-direction:column; gap:34px; z-index:20; }
/* Zvednutí line-height na 1.2, aby se dole neseřezávaly nožičky písmen (např. g nebo y) */
.v-m a, .b-l a, .m-b a, .m-b-l a { font-weight:400; font-size:34px; letter-spacing:0.191em; line-height:1.2; }

.b-l { position:fixed; bottom:21px; left:0; width:100%; height:34px; z-index:20; }
.b-l-1 { position:absolute; left:53px; bottom:0; }
.b-l-2 { position:absolute; left:50%; transform:translateX(-50%); bottom:0; }
.b-l-3 { position:absolute; right:53px; bottom:0; }

.m-b-l { display:none; }

/* Grid a Youtube Embed pro další stránky */
.g-wrap { display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); gap:53px; padding:53px; }
.v-wrap { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; margin-bottom:53px; }
.v-wrap iframe { position:absolute; top:0; left:0; width:100%; height:100%; border:none; }

/* Cookie bar */
.cb { position:fixed; bottom:89px; left:53px; right:53px; background:rgba(255,255,255,0.08); backdrop-filter:blur(21px); -webkit-backdrop-filter:blur(21px); padding:21px; z-index:1000; font-size:16px; text-align:center; transform:translateY(200%); transition:transform 0.5s; border:1px solid rgba(255,255,255,0.15); box-shadow:0 8px 32px rgba(0,0,0,0.2); }
.cb.v { transform:translateY(0); }
.cb a { text-decoration:underline; }
.cb button { font-weight:700; text-transform:uppercase; margin:0 10px; }

/* === MOBIL === */
.m-over { position:fixed; inset:0; background:rgba(0,0,0,0.6); backdrop-filter:blur(15px); -webkit-backdrop-filter:blur(15px); z-index:90; opacity:0; pointer-events:none; transition:0.4s ease; padding:144px 21px 53px 21px; display:flex; flex-direction:column; overflow-y:auto; }
.m-over.o { opacity:1; pointer-events:auto; }
/* Mezery v menu zmenšeny na 21px (z 53px), aby všech 10 položek nevytvářelo chaotický rozpad (Bod 3.2) */
.m-b { display:flex; flex-direction:column; gap:21px; }
.m-b-2 { margin-top:34px; margin-bottom:34px; }

@media (max-width: 1024px) {
    /* Fixní výška a zamezení přetečení (overflow:hidden) zabrání "blbnutí" a poskakování stránky při dotyku */
    .m { height:100vh; height:100dvh; overflow:hidden; }
    .h-home, .v-m, .b-l { display:none; }
    
    /* Cookie lišta na výšku zvednutá, aby nebyla nalepená na slově knihy (Bod 1.2) */
    .cb { bottom:89px; left:21px; right:21px; padding:13px; font-size:14px; }

    /* Portrait hlavička */
    .h { height:144px; }
    
    /* Zmenšení písma nadpisu, aby písmeno V nekolidovalo s Menu (Bod 1.3 a 3.1) */
    .h-name { left:21px; top:21px; font-size:26px; line-height:1.2; letter-spacing:0.4em; }
    .mb-br { display:block; }
    
    /* Ikona posunuta do optického středu s menším nadpisem */
    .h-ham { display:flex; position:absolute; right:21px; top:25px; width:34px; height:24px; z-index:101; flex-direction:column; justify-content:space-between; }
    .h-ham span { display:block; width:100%; height:2px; background:#fff; transition:0.4s; }
    .h-ham.o span:nth-child(1) { transform:translateY(11px) rotate(45deg); }
    .h-ham.o span:nth-child(2) { opacity:0; }
    .h-ham.o span:nth-child(3) { transform:translateY(-11px) rotate(-45deg); }

    .hero { top:144px; height:calc(100vh - 144px); height:calc(100dvh - 144px); }
    
    /* Na výšku: blog vlevo nahoře, knihy vpravo dole - přes neviditelný box přes fotku (Bod 5) */
    .m-b-l { display:block; position:absolute; inset:0; z-index:20; font-size:34px; pointer-events:none; }
    .m-b-l a { position:absolute; pointer-events:auto; }
    .m-b-1 { top:21px; left:21px; }
    .m-b-2 { bottom:21px; right:21px; }
    
    /* Drobnější písmo v overlay menu, aby 10 položek vypadalo galerijně */
    .m-over a { font-size:28px; }

    /* Fallback zpět pro dotyková zařízení */
    @media (pointer: coarse) { * { cursor:auto !important; } .c { display:none !important; } }
}

@media (max-width: 1024px) and (orientation: landscape) {
    /* Razantní zmenšení tlustého pruhu hlavičky na šířku (Bod 2.2) */
    .h { height:53px; }
    .h-name { top:15px; font-size:18px; letter-spacing:0.4em; white-space:nowrap; }
    .mb-br { display:none; }
    
    .h-ham { top:16px; width:28px; height:20px; }
    .h-ham.o span:nth-child(1) { transform:translateY(9px) rotate(45deg); }
    .h-ham.o span:nth-child(3) { transform:translateY(-9px) rotate(-45deg); }

    .hero { top:53px; height:calc(100vh - 53px); height:calc(100dvh - 53px); }
    
    /* Extrémní zmenšení pruhu s cookies pro šířku (Bod 2.2) */
    .cb { bottom:13px; padding:8px 13px; font-size:13px; }
    
    /* Větší prostor pro zmenšenou hlavičku při otevření menu na šířku */
    .m-over { padding-top:76px; }
    
    /* Na šířku: zachováme blog vlevo nahoře a knihy vpravo dole, pouze zmenšíme písmo */
    .m-b-l { font-size:24px; }
}