/* =====================================================================
   Blazey.cz — fotografické portfolio
   Barvy: noční les (pozadí), mlha (text), javor (zaostřeno / aktivní)
   Písmo: Archivo (variabilní šířka) – rozšířené na titulky, zúžené na údaje
   ===================================================================== */

@font-face{
  font-family:'Archivo';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url(../fonts/archivo-latin-ext-standard-normal.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Archivo';font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url(../fonts/archivo-latin-standard-normal.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --night:#0d110f;      /* pozadí – les v noci */
  --pine:#151b17;       /* plochy */
  --pine-2:#202822;
  --fog:#e4e7e1;        /* text, světlá sekce */
  --fog-2:#cdd2ca;
  --lichen:#8f998f;     /* tlumený text */
  --maple:#f0913a;      /* zaostřeno / aktivní */
  --line:rgba(228,231,225,.14);
  --line-ink:rgba(13,17,15,.16);

  --font:'Archivo',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --gutter:clamp(16px,4vw,56px);
  --header-h:72px;
  --ease:cubic-bezier(.2,.7,.1,1);
  --ease-io:cubic-bezier(.7,0,.2,1);

  /* typografická škála */
  --t-xs:12px; --t-sm:14px; --t-base:17px; --t-md:21px;
  --t-lg:clamp(22px,2.2vw,30px);
  --t-xl:clamp(44px,7.5vw,112px);
  --t-hero:clamp(48px,10.4vw,184px);
}

*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{
  font-family:var(--font);font-size:var(--t-base);line-height:1.55;font-stretch:100%;
  background:var(--night);color:var(--fog);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--maple);color:var(--night)}
:focus-visible{outline:2px solid var(--maple);outline-offset:3px}
[hidden]{display:none!important}

.skip{position:fixed;left:12px;top:-60px;z-index:400;background:var(--maple);color:var(--night);padding:10px 14px;font-weight:700}
.skip:focus{top:12px}

/* --- typografické role ------------------------------------------------ */
.display,.sec-title,.hero-title,.contact-title,.wordmark,.g-title,.a-title,.ar-title,.fly-chapter span,.next-title{
  font-weight:800;font-stretch:125%;letter-spacing:-.035em;line-height:.9;
}
.readout,.vf-top,.vf-lens,.cam-hud,.lb-top,.lb-exif,.shot figcaption,.g-filter,.a-meta,.cap{
  font-stretch:72%;font-variant-numeric:tabular-nums;
}

/* --- hlavička --------------------------------------------------------- */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:60;height:var(--header-h);
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:0 var(--gutter);color:#fff;mix-blend-mode:difference;
  transition:transform .5s var(--ease);
}
.site-header.is-hidden{transform:translateY(-110%)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-stretch:125%;font-size:19px;letter-spacing:-.02em}
.brand-mark{width:26px;height:26px}
.nav{display:flex;gap:32px;font-size:15px}
.nav a{position:relative;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:hover::after,.nav a.is-active::after{transform:scaleX(1);transform-origin:left}
.menu-btn{display:none;align-items:center;gap:10px;font-size:15px}
.menu-btn i{position:relative;width:22px;height:10px}
.menu-btn i::before,.menu-btn i::after{content:"";position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .4s var(--ease)}
.menu-btn i::before{top:0}.menu-btn i::after{bottom:0}
.menu-btn[aria-expanded="true"] i::before{transform:translateY(4.25px) rotate(45deg)}
.menu-btn[aria-expanded="true"] i::after{transform:translateY(-4.25px) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:55;background:var(--night);display:flex;align-items:flex-end;padding:calc(var(--header-h) + 24px) var(--gutter) 40px;clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease-io)}
.menu.is-open{clip-path:inset(0 0 0 0)}
.menu-links{display:flex;flex-direction:column;gap:4px}
.menu-links a{font-weight:800;font-stretch:125%;font-size:clamp(36px,11vw,64px);letter-spacing:-.035em;line-height:1}
.menu-links a.menu-album{font-size:clamp(18px,5vw,24px);font-weight:500;font-stretch:100%;letter-spacing:0;color:var(--lichen);padding-left:4px;line-height:1.5}

/* --- 3D průlet --------------------------------------------------------- */
.fly{position:relative;background:var(--night)}
.fly-stage{position:relative;height:100vh;height:100svh;overflow:hidden;background:var(--night);isolation:isolate}
.fly-canvas{position:absolute;inset:0;width:100%!important;height:100%!important;z-index:0}
.fly-titles{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.fly-chapter{position:absolute;left:0;top:0;opacity:0;will-change:transform,opacity,filter;white-space:nowrap}
.fly-chapter span{display:block;transform:translate(-50%,-50%);font-size:140px;color:var(--fog)}

.vf{position:absolute;inset:calc(var(--header-h) + 8px) var(--gutter) 28px;z-index:2;pointer-events:none}
.vf-corners i,.vf-af i,.fl-frame i,.lb-frame i,.af-cursor i{position:absolute;width:var(--c,26px);height:var(--c,26px);border:0 solid currentColor}
.vf-corners{position:absolute;inset:0;color:rgba(228,231,225,.55)}
.vf-corners i:nth-child(1),.vf-af i:nth-child(1),.fl-frame i:nth-child(1),.lb-frame i:nth-child(1),.af-cursor i:nth-child(1){left:0;top:0;border-left-width:1.5px;border-top-width:1.5px}
.vf-corners i:nth-child(2),.vf-af i:nth-child(2),.fl-frame i:nth-child(2),.lb-frame i:nth-child(2),.af-cursor i:nth-child(2){right:0;top:0;border-right-width:1.5px;border-top-width:1.5px}
.vf-corners i:nth-child(3),.vf-af i:nth-child(3),.fl-frame i:nth-child(3),.lb-frame i:nth-child(3),.af-cursor i:nth-child(3){right:0;bottom:0;border-right-width:1.5px;border-bottom-width:1.5px}
.vf-corners i:nth-child(4),.vf-af i:nth-child(4),.fl-frame i:nth-child(4),.lb-frame i:nth-child(4),.af-cursor i:nth-child(4){left:0;bottom:0;border-left-width:1.5px;border-bottom-width:1.5px}

.vf-af{position:absolute;left:0;top:0;width:100px;height:100px;--c:18px;color:var(--maple);opacity:0;transition:opacity .3s}
.vf-af.is-on{opacity:1}
.vf-af.is-locking{animation:af-lock .45s steps(2) 1}
@keyframes af-lock{0%,100%{opacity:1}50%{opacity:.15}}

.vf-top{position:absolute;left:22px;right:22px;top:16px;display:flex;justify-content:space-between;font-size:15px;color:var(--fog)}
.vf-album{transition:opacity .3s}
.vf-count b{font-weight:600;color:var(--maple)}
.vf-count span{color:var(--lichen)}
.vf-bottom{position:absolute;left:22px;right:22px;bottom:16px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.readout{display:flex;gap:clamp(14px,2.4vw,34px);font-size:clamp(17px,1.6vw,22px);font-weight:500;line-height:1.1}
.readout>span{display:flex;flex-direction:column;gap:3px}
.readout i{font-style:normal;font-size:11px;color:var(--lichen);font-stretch:100%;letter-spacing:.02em}
.readout b{font-weight:500}
.vf-lens{font-size:15px;color:var(--lichen);text-align:right}

.vf-rail{position:absolute;z-index:3;right:calc(var(--gutter) + 22px);top:50%;transform:translateY(-50%);height:min(42vh,360px);width:18px;display:flex;flex-direction:column;gap:6px}
.rail-seg{flex:var(--share) 1 0;position:relative;width:100%;display:flex;justify-content:center}
.rail-seg::before{content:"";width:1.5px;height:100%;background:rgba(228,231,225,.3);transition:background .3s}
.rail-seg:hover::before,.rail-seg.is-active::before{background:var(--fog)}
.rail-seg span{position:absolute;right:26px;top:0;white-space:nowrap;font-size:13px;font-stretch:80%;opacity:0;transform:translateX(6px);transition:.3s var(--ease);pointer-events:none}
.rail-seg:hover span,.rail-seg:focus-visible span{opacity:1;transform:none}
.rail-dot{position:absolute;left:50%;top:0;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;background:var(--maple);pointer-events:none}

.hero-copy{position:absolute;z-index:2;left:var(--gutter);right:var(--gutter);bottom:clamp(96px,15vh,150px);pointer-events:none;padding-left:22px;--out:0;opacity:calc(1 - var(--out));filter:blur(calc(var(--out) * 16px));transform:translate3d(0,calc(var(--out) * -48px),0)}
html.has-3d .hero-copy:not(.is-in){visibility:hidden}
.hero-copy::before{content:"";position:absolute;z-index:-1;left:-12vw;right:-6vw;top:-18vh;bottom:-22vh;background:radial-gradient(ellipse 70% 70% at 30% 62%,rgba(13,17,15,.72),rgba(13,17,15,0) 70%);pointer-events:none}
.hero-title{font-size:var(--t-hero);display:flex;flex-direction:column;align-items:flex-start}
.hl{display:block;font-weight:300;font-stretch:100%;letter-spacing:-.04em}
.hl-strong{font-weight:850;font-stretch:125%}
.hero-title .ch{display:inline-block;will-change:transform,filter}
.hero-text{max-width:44ch;margin-top:22px;font-size:var(--t-md);line-height:1.45;color:var(--fog-2)}
.hero-cues{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;margin-top:26px;font-size:var(--t-sm);color:var(--lichen);pointer-events:auto}
.cue-scroll{display:flex;align-items:center;gap:10px}
.cue-scroll i{width:1.5px;height:26px;background:linear-gradient(var(--fog) 50%,transparent 0) 0 0/100% 200%;animation:cue 1.8s var(--ease-io) infinite}
@keyframes cue{0%{background-position:0 100%}100%{background-position:0 -100%}}
.cue-skip{color:var(--fog);border-bottom:1.5px solid var(--line);padding-bottom:2px;transition:border-color .3s}
.cue-skip:hover{border-color:var(--maple)}

.fly-loader{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--fog);transition:opacity .6s;pointer-events:none}
.fly-loader.is-done{opacity:0}
.fl-frame{position:relative;width:64px;height:64px;--c:14px;animation:hunt 1.1s var(--ease-io) infinite alternate}
@keyframes hunt{0%{transform:scale(1.35);opacity:.5}100%{transform:scale(.85);opacity:1}}
.fl-text{font-size:var(--t-sm);font-stretch:80%;color:var(--lichen)}
.fl-text b{color:var(--fog);font-weight:500}

/* fallback (bez WebGL / omezený pohyb) */
.fly-fallback{display:none;padding:0 var(--gutter) 80px}
.ff-title{font-size:clamp(28px,4vw,48px);font-weight:800;font-stretch:125%;letter-spacing:-.03em;margin:56px 0 18px}
.ff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.ff-grid img{width:100%;height:260px;object-fit:cover}
html:not(.has-3d) .fly-stage{height:auto;min-height:88vh;min-height:88svh;display:flex;align-items:flex-end}
html:not(.has-3d) .fly-canvas,html:not(.has-3d) .vf,html:not(.has-3d) .vf-rail,html:not(.has-3d) .fly-loader,html:not(.has-3d) .fly-titles,html:not(.has-3d) .cue-scroll{display:none}
html:not(.has-3d) .hero-copy{position:relative;inset:auto;width:100%;padding:calc(var(--header-h) + 60px) var(--gutter) 40px}
html:not(.has-3d) .hero-copy::before{display:none}
html:not(.has-3d) .fly-fallback{display:block}

/* --- sekce: společné ---------------------------------------------------- */
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 48px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,56px)}
.sec-title{font-size:var(--t-xl)}
.sec-note{max-width:34ch;color:var(--lichen);font-size:var(--t-base)}
.empty{padding:48px;border:1.5px dashed var(--line);color:var(--lichen);text-align:center}
.empty a{color:var(--fog);text-decoration:underline}

/* --- alba (seznam) ------------------------------------------------------ */
.albums{position:relative;padding:clamp(96px,14vw,200px) var(--gutter) clamp(80px,10vw,140px);background:var(--night)}
.album-rows{list-style:none;border-bottom:1.5px solid var(--line)}
.album-rows li{border-top:1.5px solid var(--line)}
.album-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,30ch) 120px;gap:24px 48px;align-items:center;padding:clamp(22px,3vw,40px) 0;position:relative}
.ar-title{font-size:clamp(34px,6.2vw,96px);font-stretch:100%;font-weight:750;transition:font-stretch .6s var(--ease),color .3s;overflow-wrap:anywhere}
.album-row:hover .ar-title,.album-row:focus-visible .ar-title{font-stretch:125%}
.ar-desc{color:var(--lichen);font-size:var(--t-sm);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ar-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:var(--t-sm);font-stretch:80%;font-variant-numeric:tabular-nums}
.ar-meta span:last-child{color:var(--lichen)}
.ar-thumb{display:none}
.album-float{position:fixed;left:0;top:0;z-index:5;width:clamp(220px,24vw,380px);aspect-ratio:4/5;pointer-events:none;opacity:0;overflow:hidden;will-change:transform}
.album-float img{width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform .8s var(--ease)}
.album-float.is-on img{transform:scale(1)}

/* --- O mně (světlá sekce s 3D foťákem) -------------------------------- */
.about{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);background:var(--fog);color:var(--night)}
.about ::selection{background:var(--night);color:var(--fog)}
.about-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.cam-canvas{position:absolute;inset:0;width:100%!important;height:100%!important}
.cam-fallback{display:none}
html:not(.has-webgl) .cam-fallback{display:block;position:absolute;inset:12% 14%;width:72%;height:76%;object-fit:cover}
html:not(.has-webgl) .cam-hud,html:not(.has-webgl) .cam-canvas{display:none}
.cam-hud{position:absolute;left:var(--gutter);right:var(--gutter);bottom:32px;display:flex;flex-direction:column;gap:12px;pointer-events:none}
.cam-focal{font-size:clamp(28px,3vw,44px);font-weight:600;line-height:1}
.cam-focal b{font-weight:600}
.focal-strip{position:relative;display:block;height:34px;max-width:440px}
.fs-track{position:absolute;left:0;right:0;top:8px;height:1.5px;background:var(--line-ink)}
.fs-dot{position:absolute;top:3px;width:2px;height:12px;background:var(--night);opacity:.35;transform:translateX(-1px);transition:opacity .3s,background .3s}
.fs-dot.is-near{opacity:1;background:var(--maple)}
.fs-marker{position:absolute;top:-2px;width:2px;height:22px;background:var(--maple);transform:translateX(-1px)}
.fs-labels span{position:absolute;top:20px;left:calc(var(--p) * 100%);transform:translateX(-50%);font-size:11px;color:#5d655f}
.fs-labels span:first-child{transform:none}.fs-labels span:last-child{transform:translateX(-100%)}
.cam-note{font-size:12px;color:#5d655f;font-stretch:100%}
.about-text{padding:calc(var(--header-h) + 64px) var(--gutter) 120px clamp(16px,3vw,48px)}
.about-text .sec-title{margin-bottom:8vh}
.about-chapter{min-height:72vh;display:flex;align-items:center}
.about-chapter p{max-width:36ch;font-size:var(--t-md);line-height:1.5}
.about-chapter .about-lead{font-size:var(--t-lg);line-height:1.3;font-weight:500;letter-spacing:-.01em;max-width:24ch}
.gear{display:grid;gap:0;max-width:440px;border-top:1.5px solid var(--line-ink)}
.gear div{display:flex;justify-content:space-between;gap:24px;padding:14px 0;border-bottom:1.5px solid var(--line-ink);font-size:var(--t-sm)}
.gear dt{color:#5d655f}
.gear dd{font-weight:600;text-align:right}

/* --- kontakt ------------------------------------------------------------ */
.contact{position:relative;overflow:hidden;padding:clamp(110px,14vw,200px) var(--gutter) clamp(80px,10vw,140px);isolation:isolate}
.contact-bg{position:absolute;inset:-12% 0;z-index:-1}
.contact-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;filter:saturate(.75) brightness(.5)}
.contact-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--night) 0%,rgba(13,17,15,.55) 30%,rgba(13,17,15,.7) 70%,var(--night) 100%)}
.contact-inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px clamp(32px,6vw,96px);align-items:end}
.contact-title{font-size:var(--t-xl)}
.contact-copy p{max-width:40ch;margin:24px 0 28px;font-size:var(--t-md);color:var(--fog-2)}
.contact-mail{display:inline-block;font-size:var(--t-lg);font-weight:600;border-bottom:2px solid var(--maple);padding-bottom:2px;margin-right:24px}
.contact-form{display:flex;flex-direction:column;gap:22px;background:rgba(13,17,15,.6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:clamp(22px,3vw,40px);border:1.5px solid var(--line)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.field{position:relative;display:block}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1.5px solid rgba(228,231,225,.35);color:var(--fog);font:inherit;font-size:var(--t-md);padding:24px 0 10px;resize:vertical;border-radius:0;transition:border-color .3s}
.field textarea{min-height:120px}
.field span{position:absolute;left:0;top:24px;color:var(--lichen);font-size:var(--t-md);pointer-events:none;transform-origin:left top;transition:transform .35s var(--ease),color .3s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--maple)}
.field input:focus+span,.field textarea:focus+span,.field input:not(:placeholder-shown)+span,.field textarea:not(:placeholder-shown)+span{transform:translateY(-22px) scale(.7);color:var(--fog-2)}
.field.is-invalid input,.field.is-invalid textarea{border-color:#ff7a6b}
.form-foot{display:flex;align-items:center;gap:16px 24px;flex-wrap:wrap;margin-top:6px}
.form-foot small{font-size:12px;color:var(--lichen);max-width:30ch}
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:17px 26px;background:var(--fog);color:var(--night);font-weight:700;font-stretch:110%;font-size:var(--t-base);border-radius:2px;transition:background .3s,transform .3s var(--ease)}
.btn:hover{background:var(--maple)}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.6;pointer-events:none}
.form-msg{padding:12px 14px;font-size:var(--t-sm);border-left:3px solid var(--maple);background:rgba(240,145,58,.1)}
.form-msg.is-err{border-color:#ff7a6b;background:rgba(255,122,107,.1)}
.form-done{display:flex;flex-direction:column;gap:12px;padding:20px 0}
.form-done strong{font-size:var(--t-lg);font-stretch:115%}

/* --- patička ------------------------------------------------------------ */
.site-footer{position:relative;padding:clamp(64px,8vw,110px) var(--gutter) 28px;border-top:1.5px solid var(--line);overflow:hidden;background:var(--night)}
.footer-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.footer-lead{font-size:var(--t-lg);font-weight:500;max-width:22ch;line-height:1.25}
.footer-mail{display:inline-block;margin-top:14px;font-size:var(--t-md);color:var(--maple)}
.footer-nav{display:grid;grid-template-columns:repeat(2,auto);gap:8px 40px;align-content:start;font-size:var(--t-sm);color:var(--fog-2)}
.footer-nav a:hover{color:var(--maple)}
.wordmark{--wdth:62;font-size:min(25vw,420px);font-stretch:calc(var(--wdth) * 1%);line-height:.8;margin:clamp(40px,6vw,80px) 0 22px -.04em;white-space:nowrap;color:var(--fog);user-select:none}
.footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--lichen);font-stretch:85%}
.footer-bottom a:hover{color:var(--fog)}

/* --- lightbox ----------------------------------------------------------- */
.lb{position:fixed;inset:0;z-index:150;background:rgba(9,12,10,.97);display:grid;place-items:center;opacity:0;transition:opacity .35s}
.lb.is-open{opacity:1}
.lb-stage{position:absolute;inset:72px var(--gutter) 92px;display:flex;align-items:center;justify-content:center;touch-action:pan-y}
.lb-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none;transition:opacity .25s,filter .45s,transform .45s var(--ease)}
.lb-img.is-loading{opacity:.35;filter:blur(18px)}
.lb-frame{position:absolute;inset:20px;pointer-events:none;color:rgba(228,231,225,.4);--c:22px}
.lb-top{position:absolute;left:44px;right:44px;top:28px;display:flex;align-items:center;gap:24px;font-size:15px}
.lb-count{color:var(--maple);min-width:6ch}
.lb-album{color:var(--lichen);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-btn{display:inline-flex;align-items:center;justify-content:center;color:var(--fog);transition:color .25s}
.lb-btn:hover{color:var(--maple)}
.lb-close{font-size:15px;font-stretch:72%;padding:6px 0}
.lb-nav{position:absolute;top:50%;width:56px;height:56px;margin-top:-28px}
.lb-nav svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6}
.lb-prev{left:calc(var(--gutter) - 12px)}
.lb-next{right:calc(var(--gutter) - 12px)}
.lb-bottom{position:absolute;left:44px;right:44px;bottom:30px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.lb-title{font-size:var(--t-base);font-weight:600}
.lb-exif .readout{font-size:17px}

/* --- AF kurzor ------------------------------------------------------------ */
.af-cursor{position:fixed;left:0;top:0;z-index:200;width:var(--s,26px);height:var(--s,26px);margin:calc(var(--s,26px) / -2) 0 0 calc(var(--s,26px) / -2);pointer-events:none;color:rgba(228,231,225,.85);--c:7px;opacity:0;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),color .25s,opacity .3s}
.af-cursor.is-visible{opacity:1}
.af-cursor.is-link{--s:14px;color:var(--maple)}
.af-cursor.is-view{--s:84px;--c:16px;color:var(--maple)}
.af-cursor span{position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%);white-space:nowrap;font-size:12px;font-stretch:80%;color:var(--fog);opacity:0;transition:opacity .25s}
.af-cursor.is-view span{opacity:1}
.af-cursor.is-light{color:rgba(13,17,15,.75)}
.af-cursor.is-light span{color:var(--night)}
@media (hover:none),(pointer:coarse){.af-cursor{display:none}}

/* --- závěrka (přechod mezi stránkami) ---------------------------------- */
.shutter{position:fixed;inset:0;z-index:300;pointer-events:none}
.shutter div{position:absolute;left:0;right:0;height:50.5%;background:var(--night);transition:transform .5s var(--ease-io)}
.shutter div:first-child{top:0;transform:translateY(-101%)}
.shutter div:last-child{bottom:0;transform:translateY(101%)}
.shutter.is-closed div{transform:none}
.shutter.is-instant div{transition:none}

/* =====================================================================
   GALERIE
   ===================================================================== */
.g-hero{padding:calc(var(--header-h) + clamp(60px,10vw,140px)) var(--gutter) 28px}
.g-title{font-size:clamp(64px,17vw,300px);line-height:.8;margin-left:-.05em}
.g-sub{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-top:28px}
.g-sub p{max-width:42ch;color:var(--fog-2);font-size:var(--t-md)}
.g-albums{display:flex;gap:10px;flex-wrap:wrap}
.g-album{position:relative;display:block;width:clamp(120px,14vw,180px)}
.g-album img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:grayscale(.3);transition:filter .4s}
.g-album span{display:block;margin-top:8px;font-size:13px;font-stretch:85%}
.g-album:hover img{filter:none}

.g-filter{position:sticky;top:0;z-index:20;display:flex;gap:6px 22px;flex-wrap:wrap;padding:calc(var(--header-h) - 14px) var(--gutter) 16px;background:linear-gradient(var(--night) 70%,rgba(13,17,15,0));font-size:16px}
.g-filter button{position:relative;padding:6px 0;color:var(--lichen);transition:color .25s}
.g-filter button sup{font-size:11px;margin-left:3px}
.g-filter button:hover{color:var(--fog)}
.g-filter button[aria-pressed="true"]{color:var(--fog)}
.g-filter button[aria-pressed="true"]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--maple)}

.sheet{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:clamp(10px,1.6vw,24px);padding:24px var(--gutter) 140px;perspective:1400px;align-items:start}
.sheet-col{display:flex;flex-direction:column;gap:clamp(10px,1.6vw,24px);will-change:transform}
.shot{position:relative;transform-style:preserve-3d}
.shot a{display:block;overflow:hidden;background:var(--pine)}
.shot img{width:100%;height:auto;transition:transform .9s var(--ease)}
.shot a:hover img{transform:scale(1.04)}
.shot figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:8px;font-size:13px;color:var(--lichen)}
.shot figcaption b{font-weight:500;color:var(--fog-2)}
.shot.is-hidden{display:none}
html:not(.js) .sheet{display:block;columns:3 260px;column-gap:16px}
html:not(.js) .shot{break-inside:avoid;margin-bottom:16px}

/* =====================================================================
   DETAIL ALBA
   ===================================================================== */
.a-hero{position:relative;height:100vh;height:100svh;overflow:hidden}
.a-cover{position:absolute;inset:0;will-change:clip-path}
.a-cover img{width:100%;height:100%;object-fit:cover;will-change:transform}
.a-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,17,15,.6) 0%,rgba(13,17,15,0) 22%,rgba(13,17,15,0) 48%,rgba(13,17,15,.88) 100%)}
.a-head{position:absolute;left:var(--gutter);right:var(--gutter);bottom:clamp(28px,5vw,64px);z-index:2}
.a-back{display:inline-block;margin-bottom:18px;font-size:15px;color:var(--fog-2);border-bottom:1.5px solid var(--line);padding-bottom:2px}
.a-back:hover{border-color:var(--maple);color:var(--fog)}
.a-title{font-size:clamp(48px,10vw,170px);max-width:12ch}
.a-meta{display:flex;flex-wrap:wrap;gap:8px 36px;margin-top:24px;font-size:16px;color:var(--fog-2)}
.a-meta b{color:var(--fog);font-weight:600}

.a-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:32px 64px;padding:clamp(80px,10vw,150px) var(--gutter) clamp(48px,6vw,90px)}
.a-intro p{font-size:var(--t-lg);line-height:1.35;font-weight:500;max-width:30ch;grid-column:2}

.a-flow{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(60px,9vw,150px) clamp(12px,2vw,28px);padding:0 var(--gutter) clamp(100px,12vw,180px)}
.a-shot{margin:0}
.a-shot a{display:block;overflow:hidden;background:var(--pine)}
.a-shot img{width:100%;height:auto;will-change:transform,filter}
.a-shot.is-wide{grid-column:1 / -1}
.a-shot.is-land{grid-column:2 / span 10}
.a-shot.is-port-l{grid-column:1 / span 6}
.a-shot.is-port-r{grid-column:7 / span 6;margin-top:22vh}
.a-shot.is-solo-l{grid-column:2 / span 5}
.a-shot.is-solo-r{grid-column:7 / span 5}
.cap{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:12px;font-size:14px;color:var(--lichen)}
.cap .cap-n{color:var(--maple);font-weight:600}
.cap .readout{font-size:14px;gap:16px}
.cap .readout>span{flex-direction:row;gap:5px}
.cap .readout i{font-size:12px}
.cap-title{color:var(--fog-2);flex:1}

.a-next{position:relative;display:block;padding:clamp(80px,10vw,150px) var(--gutter);border-top:1.5px solid var(--line);overflow:hidden;isolation:isolate}
.a-next small{display:block;font-size:var(--t-base);color:var(--lichen);margin-bottom:14px}
.next-title{display:block;font-size:clamp(48px,11vw,190px);font-stretch:90%;transition:font-stretch .7s var(--ease)}
.a-next:hover .next-title{font-stretch:125%}
.next-img{position:absolute;right:var(--gutter);top:50%;width:clamp(160px,22vw,340px);aspect-ratio:4/5;transform:translateY(-50%) rotate(3deg);z-index:-1;overflow:hidden;opacity:.85;transition:transform .8s var(--ease),opacity .4s}
.next-img img{width:100%;height:100%;object-fit:cover}
.a-next:hover .next-img{transform:translateY(-50%) rotate(0) scale(1.05);opacity:1}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1000px){
  .album-row{grid-template-columns:minmax(0,1fr) auto}
  .ar-desc{grid-column:1 / -1;grid-row:2;max-width:52ch}
  .contact-inner{grid-template-columns:1fr}
  .a-intro{grid-template-columns:1fr}
  .a-intro p{grid-column:1}
}
@media (max-width:820px){
  :root{--header-h:64px}
  .nav{display:none}
  .menu-btn{display:inline-flex}
  .vf{inset:calc(var(--header-h) + 4px) 12px 14px}
  .vf-top{left:14px;right:14px;top:12px;font-size:13px}
  .vf-bottom{left:14px;right:14px;bottom:12px;flex-direction:column;align-items:flex-start;gap:8px}
  .readout{font-size:16px;gap:14px}
  .vf-lens{font-size:12px;text-align:left}
  .vf-rail{display:none}
  .hero-copy::before{left:-20px;right:-60px;top:-10vh;bottom:-36px;background:linear-gradient(to top,rgba(13,17,15,.92) 0,rgba(13,17,15,.75) 55%,rgba(13,17,15,0) 100%)}
  .hero-copy{bottom:120px;padding-left:2px;right:48px}
  .hero-text{font-size:var(--t-base)}
  .fly-chapter span{font-size:72px}

  .ar-thumb{display:block;width:72px;height:90px;object-fit:cover;grid-row:1 / span 2}
  .album-row{grid-template-columns:72px minmax(0,1fr);gap:8px 18px;align-items:start}
  .ar-title{grid-column:2;font-size:clamp(28px,8vw,44px)}
  .ar-desc{grid-column:2;grid-row:2}
  .ar-meta{grid-column:2;grid-row:3;flex-direction:row;gap:14px;align-items:flex-start}
  .album-float{display:none}

  .about{grid-template-columns:1fr}
  .about-stage{height:50vh;height:50svh;z-index:2;background:var(--fog);box-shadow:0 18px 24px -12px var(--fog)}
  .about-text{position:relative;z-index:1;padding-top:12px}
  .about-text .sec-title{margin-bottom:12px}
  .about-chapter{min-height:46vh;min-height:46svh;padding:20px 0;align-items:flex-start}
  .cam-hud{bottom:10px;gap:6px}
  .cam-focal{font-size:24px}
  .focal-strip{height:30px}
  .cam-note{display:none}

  .footer-nav{grid-template-columns:1fr 1fr;gap:8px 24px}

  .a-flow{grid-template-columns:1fr;gap:56px}
  .a-shot[class*="is-"]{grid-column:1 / -1;margin-top:0}
  .cap{flex-wrap:wrap}
  .lb-top{left:22px;right:22px;top:20px}
  .lb-bottom{left:22px;right:22px;bottom:20px;flex-direction:column;align-items:flex-start;gap:8px}
  .lb-stage{inset:64px 0 110px}
  .lb-nav{display:none}
  .next-img{opacity:.35}
}
@media (max-width:860px){
  .g-filter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;white-space:nowrap;-webkit-overflow-scrolling:touch}
  .g-filter::-webkit-scrollbar{display:none}
  .g-filter button{flex:none}
}
@media (max-width:520px){
  .readout>span:nth-child(3){display:none}
  .g-albums{display:none}
}

/* omezený pohyb */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
