/* Lewant — siódmy moduł filaru „Bliski Wschód".

   Barwy: zieleń patyny na brązie, purpura z murkesu i wypalona glina tabliczki.
   Egipt dostał fajans, Mezopotamia glinę i lapis, Persja płomień, Arabia
   piasek, świat islamu atrament — tutaj patyna i purpura.

   Podpisem strony jest lustro: dwie tafle rozdzielone szwem. Lewa strona to
   obraz nakreślony przez kogoś z zewnątrz, prawa to własne teksty. Ta jedna
   różnica ma nieść całą stronę, więc wokół niej jest cicho. */
.tlw-strona {
	--tlo: #0a0f0e; --panel: rgba( 18, 26, 24, .78 ); --obrys: rgba( 63, 155, 122, .3 ); --wlos: rgba( 63, 155, 122, .13 );
	--zloto: #c8a06a; --zloto-c: #b08d5c; --etyk: #7f9186;
	--patyna: #3f9b7a; --patyna-j: #63c6a1; --purpura: #7b4fa8; --glina: #b8402f;
	--tekst: #a6b0ac; --tekst-slaby: #7f8a86; --tekst-mocny: #e6ece9;
	--serif: 'Cormorant Garamond', Georgia, serif; --sans: Jost, system-ui, sans-serif;
	position: relative; max-width: 1520px; margin: 0 auto; padding: 0 40px 90px; color: var( --tekst ); font: 300 15px var( --sans );
	background: radial-gradient( 1200px 620px at 50% -10%, rgba( 63, 155, 122, .18 ), transparent 70% ), radial-gradient( 900px 520px at 88% 36%, rgba( 123, 79, 168, .14 ), transparent 70% ), var( --tlo ); overflow-x: clip;
}
.tlw-strona *, .tlw-strona *::before, .tlw-strona *::after { box-sizing: border-box; }
body:has( .tlw-strona ) .wp-site-blocks > header, body:has( .tlw-strona ) header.wp-block-template-part, body:has( .tlw-strona ) .wp-site-blocks > footer, body:has( .tlw-strona ) footer.wp-block-template-part, body:has( .tlw-strona ) .wp-block-post-title { display: none !important; }
body:has( .tlw-strona ) .wp-site-blocks, body:has( .tlw-strona ) .wp-block-group, body:has( .tlw-strona ) .wp-block-post-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
body:has( .tlw-strona ) .wp-block-post-content > *, body:has( .tlw-strona ) .entry-content > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
body:has( .tlw-strona ) { background: #0a0f0e; }
body:has( .tlw-strona ) .wp-block-post-content > .tlw-strona, body:has( .tlw-strona ) .entry-content > .tlw-strona, .tlw-strona { box-sizing: border-box; max-width: 1600px !important; margin-left: auto !important; margin-right: auto !important; }
.tlw-strona button { font-family: inherit; }

.tlw-sciezka { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 18px 0 6px; font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var( --tekst-slaby ); }
.tlw-sciezka i { font-style: normal; color: var( --etyk ); } .tlw-sciezka b { font-weight: 400; color: var( --zloto ); }
.tlw-poziom { margin: 0 0 0 auto; }
.tlw-poziom span { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border: 1px solid var( --wlos ); border-radius: 999px; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var( --tekst ); }
.tlw-poziom span::before { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var( --patyna ); box-shadow: 0 0 10px var( --patyna ); }

.tlw-hero { max-width: 80ch; padding: 44px 0 8px; }
.tlw-nad { margin: 0 0 12px; font-size: 11px; letter-spacing: .34em; text-transform: uppercase; color: var( --etyk ); }
.tlw-tytul { margin: 0; font: 500 clamp( 44px, 5.2vw, 76px )/1.03 var( --serif ); color: var( --zloto ); }
.tlw-tytul small { display: block; margin-top: 8px; font: 300 16px var( --sans ); letter-spacing: .14em; color: var( --patyna-j ); }
.tlw-lead { margin: 22px 0 0; font-size: 16.5px; line-height: 1.75; color: var( --tekst-mocny ); }

.tlw-sekcja { margin: 76px 0 0; }
.tlw-sekcja--scisla { position: relative; margin-top: 44px; padding: 34px 30px 36px; border: 1px solid var( --wlos ); border-radius: 26px; background: radial-gradient( 900px 420px at 50% 0%, rgba( 63, 155, 122, .12 ), transparent 65% ), linear-gradient( 180deg, rgba( 19, 27, 25, .84 ), rgba( 9, 14, 13, .94 ) ); box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .05 ), 0 40px 90px -50px rgba( 0, 0, 0, .95 ); }
.tlw-sekcja__nad { margin: 0 0 8px; font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var( --etyk ); }
.tlw-sekcja__tytul { margin: 0; font: 500 clamp( 28px, 3vw, 40px )/1.15 var( --serif ); color: var( --zloto ); }
.tlw-sekcja__lead { max-width: 78ch; margin: 12px 0 0; font-size: 14.5px; line-height: 1.7; color: var( --tekst ); }

/* ══════════════  lustro: dwie tafle i szew  ══════════════ */

.tlw-wybor { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0 0; }
.tlw-wybor__b { padding: 7px 15px; border: 1px solid var( --wlos ); border-radius: 999px; background: transparent; color: var( --tekst-slaby ); font: 400 15px/1.2 var( --serif ); letter-spacing: .04em; cursor: pointer; transition: border-color .2s, color .2s, background .2s; }
.tlw-wybor__b:hover { border-color: var( --obrys ); color: var( --tekst-mocny ); }
.tlw-wybor__b.jest-wybrany { border-color: color-mix( in srgb, var( --k ) 66%, transparent ); background: color-mix( in srgb, var( --k ) 18%, transparent ); color: var( --tekst-mocny ); }
.tlw-wybor__b:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }

.tlw-tafle { display: grid; grid-template-columns: minmax( 0, 1fr ) clamp( 150px, 15vw, 210px ) minmax( 0, 1fr ); align-items: stretch; gap: 0; margin: 20px 0 0; }
.tlw-tafla { display: grid; align-content: start; gap: 4px; min-width: 0; padding: 26px 26px 24px; border: 1px solid var( --wlos ); background: linear-gradient( 180deg, color-mix( in srgb, var( --k ) 9%, transparent ), rgba( 10, 15, 14, .74 ) ); }
.tlw-tafla--obca { border-radius: 20px 0 0 20px; border-right: 0; text-align: right; }
.tlw-tafla--wlasna { border-radius: 0 20px 20px 0; border-left: 0; }
.tlw-tafla__nad { margin: 0; font-size: 10.5px; letter-spacing: .28em; text-transform: uppercase; color: color-mix( in srgb, var( --k ) 76%, #fff ); }
.tlw-tafla__pod { margin: 0 0 10px; font-size: 11.5px; line-height: 1.5; color: var( --tekst-slaby ); }
.tlw-tafla__tresc p { margin: 0 0 12px; font-size: 14px; line-height: 1.75; color: var( --tekst ); }
.tlw-tafla__tresc p:last-child { margin-bottom: 0; }

/* Szew: imię bóstwa stoi dokładnie na styku dwóch tafli. */
.tlw-szew { position: relative; display: grid; align-content: center; justify-items: center; gap: 6px; padding: 20px 10px; text-align: center; }
.tlw-szew::before { content: ''; position: absolute; inset: 8% 50% 8% 50%; width: 1px; margin-left: -.5px; background: linear-gradient( 180deg, transparent, var( --obrys ) 18%, var( --obrys ) 82%, transparent ); }
.tlw-szew b { position: relative; padding: 0 6px; font: 500 clamp( 24px, 2.6vw, 34px )/1.1 var( --serif ); color: var( --zloto ); background: linear-gradient( 180deg, rgba( 15, 21, 20, .96 ), rgba( 12, 17, 16, .96 ) ); text-shadow: 0 0 40px rgba( 200, 160, 106, .4 ); }
.tlw-szew i { position: relative; padding: 0 6px; font-style: normal; font-size: 12.5px; letter-spacing: .06em; color: var( --patyna-j ); background: rgba( 13, 19, 18, .96 ); }
.tlw-szew small { position: relative; padding: 3px 10px; border: 1px solid var( --wlos ); border-radius: 999px; font-size: 9.5px; letter-spacing: .18em; text-transform: uppercase; color: var( --tekst-slaby ); background: rgba( 13, 19, 18, .96 ); }
.tlw-szew__czytaj { position: relative; margin-top: 6px; padding: 6px 12px; border: 1px solid var( --wlos ); border-radius: 999px; background: rgba( 13, 19, 18, .96 ); color: var( --etyk ); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; cursor: pointer; transition: color .2s, border-color .2s; }
.tlw-szew__czytaj:hover { color: var( --zloto ); border-color: var( --zloto ); }
.tlw-szew__czytaj:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 2px; }
.tlw-lustro.jest-swieze .tlw-tafla__tresc p, .tlw-lustro.jest-swieze .tlw-szew > * { animation: tlw-wejdz .38s both; }
.tlw-lustro.jest-swieze .tlw-tafla__tresc p:nth-child( 2 ) { animation-delay: .06s; }
@keyframes tlw-wejdz { from { opacity: 0; transform: translateY( 7px ); } to { opacity: 1; transform: none; } }

/* ══════════════  filtry, tor, kafle  ══════════════ */

.tlw-obszary { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0 0; }
.tlw-filtr { display: inline-flex; align-items: center; gap: 9px; padding: 7px 14px; border: 1px solid var( --wlos ); border-radius: 999px; background: transparent; color: var( --tekst-slaby ); cursor: pointer; transition: border-color .2s, color .2s, background .2s; }
.tlw-filtr b { font: 400 13px var( --sans ); letter-spacing: .1em; }
.tlw-filtr i { font-style: normal; font-size: 10.5px; color: color-mix( in srgb, var( --k ) 80%, #fff ); }
.tlw-filtr:hover { border-color: var( --obrys ); color: var( --tekst-mocny ); }
.tlw-filtr.jest-wybrany { border-color: color-mix( in srgb, var( --k ) 66%, transparent ); background: color-mix( in srgb, var( --k ) 16%, transparent ); color: var( --tekst-mocny ); }
.tlw-filtr:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }
.tlw-filtr.jest-pusty { border-style: dashed; opacity: .5; cursor: default; }
.tlw-filtr.jest-pusty:hover { border-color: var( --wlos ); color: var( --tekst-slaby ); }
.tlw-obszary__uwaga { max-width: 78ch; margin: 12px 0 0; font-size: 12.5px; line-height: 1.65; color: var( --tekst-slaby ); }

.tlw-tor { position: relative; contain: inline-size; margin: 22px 0 0; }
.tlw-siatka { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; padding: 4px 2px 18px; }
.tlw-siatka::-webkit-scrollbar { display: none; }
.tlw-siatka.jest-ciagniety { cursor: grabbing; scroll-snap-type: none; }
.tlw-karta { display: grid; align-content: start; gap: 6px; flex: 0 0 clamp( 246px, 23vw, 306px ); min-width: 0; padding: 20px 20px 18px; border: 1px solid var( --wlos ); border-bottom: 3px solid color-mix( in srgb, var( --k ) 62%, transparent ); border-radius: 18px 18px 6px 6px; background: linear-gradient( 180deg, rgba( 19, 27, 25, .58 ), rgba( 9, 14, 13, .82 ) ); scroll-snap-align: start; cursor: pointer; transition: transform .22s, border-color .22s, box-shadow .22s, opacity .22s; }
.tlw-karta:hover { transform: translateY( -4px ); box-shadow: 0 26px 54px -32px rgba( 0, 0, 0, .95 ), 0 0 44px -20px color-mix( in srgb, var( --k ) 60%, transparent ); }
.tlw-karta:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }
.tlw-karta.jest-przygaszony { opacity: .26; }
.tlw-karta__foto { display: block; width: 100%; min-width: 0; aspect-ratio: 2 / 3; margin-bottom: 8px; overflow: hidden; border: 1px solid var( --wlos ); border-radius: 12px; background: rgba( 8, 12, 11, .8 ); }
.tlw-karta__foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tlw-karta small { font-size: 9.5px; letter-spacing: .24em; text-transform: uppercase; color: color-mix( in srgb, var( --k ) 76%, #fff ); }
.tlw-karta b { font: 500 24px/1.15 var( --serif ); color: var( --zloto ); }
.tlw-karta__oryg { font-size: 12.5px; letter-spacing: .04em; color: var( --patyna-j ); }
.tlw-karta p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.6; color: var( --tekst ); }
.tlw-karta em { margin-top: 6px; font-style: normal; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var( --etyk ); }
.tlw-tor__strz { position: absolute; top: 40%; z-index: 2; display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid var( --obrys ); border-radius: 50%; background: rgba( 10, 15, 14, .88 ); color: var( --zloto ); cursor: pointer; transition: transform .2s, background .2s; }
.tlw-tor__strz:hover { transform: scale( 1.08 ); background: rgba( 63, 155, 122, .2 ); }
.tlw-tor__strz--lewo { left: -14px; } .tlw-tor__strz--prawo { right: -14px; }
.tlw-tor__strz::before { content: '‹'; font: 400 26px/1 var( --serif ); }
.tlw-tor__strz--prawo::before { content: '›'; }
.tlw-tor__licznik { margin: 2px 0 0; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var( --tekst-slaby ); }

.tlw-kafle { display: flex; flex-wrap: wrap; gap: 16px; margin: 26px 0 0; }
.tlw-kafel { display: grid; align-content: start; gap: 7px; flex: 1 1 288px; max-width: 372px; padding: 22px 22px 20px; border: 1px solid var( --wlos ); border-left: 3px solid color-mix( in srgb, var( --k ) 66%, transparent ); border-radius: 4px 16px 16px 4px; background: linear-gradient( 180deg, rgba( 19, 27, 25, .56 ), rgba( 9, 14, 13, .78 ) ); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: transform .22s, border-color .22s, box-shadow .22s; }
.tlw-kafel:hover { transform: translateY( -4px ); box-shadow: 0 26px 54px -32px rgba( 0, 0, 0, .95 ), 0 0 44px -20px color-mix( in srgb, var( --k ) 60%, transparent ); }
.tlw-kafel:focus-visible { outline: 2px solid var( --zloto ); outline-offset: 3px; }
.tlw-kafel small { font-size: 9.5px; letter-spacing: .26em; text-transform: uppercase; color: color-mix( in srgb, var( --k ) 76%, #fff ); }
.tlw-kafel b { font: 500 22px/1.2 var( --serif ); color: var( --tekst-mocny ); }
.tlw-kafel p { margin: 4px 0 0; font-size: 13.5px; line-height: 1.6; color: var( --tekst ); }
.tlw-kafel em { margin-top: 6px; font-style: normal; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var( --etyk ); }

.tlw-etapy { display: grid; grid-template-columns: repeat( auto-fit, minmax( 280px, 1fr ) ); gap: 16px; margin: 26px 0 0; }
.tlw-etap { position: relative; padding: 24px 24px 20px; border: 1px solid var( --wlos ); border-radius: 18px; background: linear-gradient( 180deg, rgba( 19, 27, 25, .5 ), rgba( 9, 14, 13, .76 ) ); }
.tlw-etap__nr { position: absolute; top: 18px; right: 20px; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var( --wlos ); border-radius: 50%; font: 500 15px var( --serif ); font-style: normal; color: var( --patyna-j ); }
.tlw-etap b { display: block; margin: 0 44px 8px 0; font: 500 21px/1.2 var( --serif ); color: var( --zloto ); }
.tlw-etap p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.7; color: var( --tekst ); }
.tlw-etap p:last-child { margin-bottom: 0; }

.tlw-ramy__siatka { display: grid; grid-template-columns: repeat( auto-fit, minmax( 300px, 1fr ) ); gap: 16px; margin: 26px 0 0; }
.tlw-ramy__siatka > div { padding: 24px 24px 22px; border: 1px solid var( --wlos ); border-radius: 18px; background: linear-gradient( 180deg, rgba( 19, 27, 25, .5 ), rgba( 9, 14, 13, .76 ) ); }
.tlw-ramy__siatka > div i { display: block; margin-bottom: 10px; font-style: normal; font-size: 24px; color: var( --patyna-j ); }
.tlw-ramy__siatka > div b { display: block; margin-bottom: 8px; font: 500 21px/1.2 var( --serif ); color: var( --zloto ); }
.tlw-ramy__siatka > div p { margin: 0; font-size: 13.5px; line-height: 1.7; color: var( --tekst ); }
.tlw-ramy__siatka > div.jest-uczciwie { border-color: rgba( 184, 64, 47, .28 ); }
.tlw-ramy__siatka > div.jest-uczciwie i { color: var( --glina ); }

/* ══════════════  okno  ══════════════ */

.tlw-tlo { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 30px 20px; background: rgba( 4, 7, 6, .82 ); backdrop-filter: blur( 8px ); opacity: 0; transition: opacity .22s; }
.tlw-tlo.jest-widoczne { opacity: 1; }
.tlw-okno {
	--zloto: #c8a06a; --etyk: #7f9186; --patyna-j: #63c6a1; --wlos: rgba( 63, 155, 122, .13 );
	--tekst: #a6b0ac; --tekst-slaby: #7f8a86; --tekst-mocny: #e6ece9;
	--serif: 'Cormorant Garamond', Georgia, serif; --sans: Jost, system-ui, sans-serif;
	position: relative; width: min( 820px, 100% ); max-height: 86vh; overflow-y: auto; padding: 40px 44px 38px; border: 1px solid rgba( 63, 155, 122, .26 ); border-top: 3px solid var( --k, #3f9b7a ); border-radius: 22px;
	background: radial-gradient( 700px 340px at 20% 0%, color-mix( in srgb, var( --k, #3f9b7a ) 13%, transparent ), transparent 66% ), linear-gradient( 180deg, #141d1b, #0a100f );
	color: var( --tekst ); font: 300 18px var( --sans ); box-shadow: 0 60px 120px -50px rgba( 0, 0, 0, .96 );
	transform: translateY( 12px ); transition: transform .24s;
}
.tlw-tlo.jest-widoczne .tlw-okno { transform: none; }
.tlw-okno *, .tlw-okno *::before, .tlw-okno *::after { box-sizing: border-box; }
.tlw-okno__x { position: absolute; top: 16px; right: 18px; width: 34px; height: 34px; border: 1px solid var( --wlos ); border-radius: 50%; background: transparent; color: var( --tekst-slaby ); cursor: pointer; transition: color .2s, border-color .2s; }
.tlw-okno__x:hover { color: var( --zloto ); border-color: var( --zloto ); }
.tlw-okno__nad { margin: 0 0 6px; font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var( --etyk ); }
.tlw-okno__tytul { margin: 0; font: 500 clamp( 30px, 3.4vw, 42px )/1.1 var( --serif ); color: var( --zloto ); }
.tlw-okno__oryg { margin: 6px 0 0; font-size: 14px; letter-spacing: .05em; color: var( --patyna-j ); }
.tlw-okno__foto { width: 100%; margin: 20px 0 4px; overflow: hidden; border: 1px solid var( --wlos ); border-radius: 16px; }
.tlw-okno__foto img { width: 100%; height: auto; display: block; }
.tlw-okno h3 { margin: 26px 0 8px; font: 400 11px var( --sans ); letter-spacing: .28em; text-transform: uppercase; color: var( --etyk ); }
.tlw-okno p { margin: 0 0 15px; font-family: var( --serif ); font-size: 20px; line-height: 1.72; color: var( --tekst-mocny ); }
/* Nadtytuł, oryginał i przypis zostają małe i bezszeryfowe — to etykiety,
   nie proza; bez tego całe okno urosłoby do dwudziestu pikseli. */
.tlw-okno .tlw-okno__nad, .tlw-okno .tlw-okno__oryg, .tlw-okno .tlw-okno__mylic p,
.tlw-okno .tlw-okno__mylic { font-family: var( --sans ); font-size: 14px; line-height: 1.6; }
.tlw-okno__lustro { display: grid; grid-template-columns: repeat( auto-fit, minmax( 280px, 1fr ) ); gap: 14px; margin: 22px 0 0; }
.tlw-okno__tafla { padding: 20px 20px 16px; border: 1px solid var( --wlos ); border-top: 2px solid color-mix( in srgb, var( --k ) 60%, transparent ); border-radius: 4px 4px 16px 16px; background: color-mix( in srgb, var( --k ) 7%, transparent ); }
.tlw-okno__tafla b { display: block; margin-bottom: 8px; font-size: 10px; letter-spacing: .26em; text-transform: uppercase; color: color-mix( in srgb, var( --k ) 76%, #fff ); }
.tlw-okno__tafla p { font-size: 13.5px !important; line-height: 1.72 !important; }
.tlw-okno__mylic { margin-top: 22px; padding: 16px 18px; border: 1px solid rgba( 184, 64, 47, .3 ); border-radius: 14px; background: rgba( 184, 64, 47, .08 ); font-size: 13.5px !important; line-height: 1.7 !important; }
.tlw-okno__mylic b { display: block; margin-bottom: 5px; font-size: 10px; letter-spacing: .26em; text-transform: uppercase; color: #d98a76; }

/* ══════════════  węższe okna  ══════════════ */

@media ( max-width: 1000px ) {
	.tlw-tafle { grid-template-columns: minmax( 0, 1fr ); }
	.tlw-tafla--obca { border-radius: 20px 20px 0 0; border-right: 1px solid var( --wlos ); text-align: left; }
	.tlw-tafla--wlasna { border-radius: 0 0 20px 20px; border-left: 1px solid var( --wlos ); }
	.tlw-szew { padding: 16px 10px; border-left: 1px solid var( --wlos ); border-right: 1px solid var( --wlos ); background: rgba( 12, 18, 17, .8 ); }
	.tlw-szew::before { inset: 50% 12% 50% 12%; width: auto; height: 1px; margin: 0; background: linear-gradient( 90deg, transparent, var( --obrys ) 18%, var( --obrys ) 82%, transparent ); }
}
@media ( max-width: 760px ) {
	.tlw-strona { padding: 0 18px 70px; }
	.tlw-kafel { max-width: none; flex-basis: 100%; }
	.tlw-tor__strz { display: none; }
	.tlw-okno { padding: 34px 22px 30px; }
}
@media ( prefers-reduced-motion: reduce ) {
	.tlw-strona *, .tlw-okno * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* ══════════════  OKNO PO KLIKNIĘCIU — oprawa ozdobna  ══════════════
   Dopisane 2026-09-11 po przelocie testu: okno miało tekst 14.5 px
   w kroju bezszeryfowym, wbrew dyrektywie o ozdobnym oknie.
   Okno wisi na `body`, POZA `.tlw-strona`, więc zmienne działu tu nie
   sięgają — barwy stoją wartościami. */
body:has( .tlw-strona ) .zd-tlo {
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: Jost, system-ui, sans-serif;
}
body:has( .tlw-strona ) .zd-okno {
  background:
    radial-gradient( 120% 70% at 50% -6%, rgba( 63, 155, 122, .2 ), transparent 62% ),
    radial-gradient( 90% 60% at 92% 108%, rgba( 123, 79, 168, .13 ), transparent 68% ),
    linear-gradient( 178deg, #14201d 0%, #0d1614 46%, #060b0a 100% );
  border: 1px solid rgba( 200, 160, 106, .3 );
  box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .1 ), 0 0 0 1px rgba( 0, 0, 0, .6 ),
    0 40px 120px -40px rgba( 0, 0, 0, .95 ), 0 0 90px -30px rgba( 63, 155, 122, .42 );
}
body:has( .tlw-strona ) .zd-okno__tekst,
body:has( .tlw-strona ) .zd-okno__pelne p,
body:has( .tlw-strona ) .zd-okno__gora p,
body:has( .tlw-strona ) .zd-okno p {
  font-family: 'Cormorant Garamond', Georgia, serif; font-size: 20px; line-height: 1.72; color: #dde7e2;
}
body:has( .tlw-strona ) .zd-okno__tytul,
body:has( .tlw-strona ) .zd-okno h3 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp( 34px, 3.4vw, 46px ); font-weight: 500; letter-spacing: .015em; color: #e8d6ae;
  text-shadow: 0 0 42px rgba( 63, 155, 122, .45 ), 0 2px 18px rgba( 0, 0, 0, .8 );
}
body:has( .tlw-strona ) .zd-okno__gora::after {
  content: ''; display: block; height: 2px; margin: 18px 0 4px;
  background: linear-gradient( 90deg, rgba( 63, 155, 122, .85 ), rgba( 123, 79, 168, .5 ) 38%, transparent 88% );
  box-shadow: 0 0 18px rgba( 63, 155, 122, .45 );
}
body:has( .tlw-strona ) .zd-okno::before,
body:has( .tlw-strona ) .zd-okno::after {
  content: ''; position: absolute; width: 62px; height: 62px; pointer-events: none;
  border-color: rgba( 200, 160, 106, .68 ); border-style: solid; border-width: 0;
  filter: drop-shadow( 0 0 10px rgba( 200, 160, 106, .45 ) );
}
body:has( .tlw-strona ) .zd-okno::before { left: 14px; top: 14px; border-left-width: 2px; border-top-width: 2px; border-radius: 16px 0 0 0; }
body:has( .tlw-strona ) .zd-okno::after { right: 14px; bottom: 14px; border-right-width: 2px; border-bottom-width: 2px; border-radius: 0 0 16px 0; }
body:has( .tlw-strona ) .zd-okno__pelne > * > p:first-of-type::first-letter,
body:has( .tlw-strona ) .zd-okno__tekst:first-of-type::first-letter {
  float: left; margin: 6px 12px 0 0; font-size: 3.1em; line-height: .82; font-weight: 500;
  color: #c8a06a; text-shadow: 0 0 26px rgba( 63, 155, 122, .5 );
}
body:has( .tlw-strona ) .zd-okno [class$="__gdzie"],
body:has( .tlw-strona ) .zd-okno [class$="__kiedy"],
body:has( .tlw-strona ) .zd-okno [class$="__skad"] b,
body:has( .tlw-strona ) .zd-okno .zd-wiecej,
body:has( .tlw-strona ) .zd-okno__x { font-family: Jost, system-ui, sans-serif; }
@media ( prefers-reduced-motion: no-preference ) {
  body:has( .tlw-strona ) .zd-tlo .zd-okno { animation: tlw-okno-wschodzi .42s cubic-bezier( .2, .7, .3, 1 ) both; }
  @keyframes tlw-okno-wschodzi {
    from { opacity: 0; transform: translateY( 16px ) scale( .985 ); filter: blur( 3px ); }
    to   { opacity: 1; transform: none; filter: none; }
  }
}

/* Przerywnik — pas zdobniczy między sekcjami (rysowany w PHP). */
.tlw-przerywnik { display: block; width: 100%; height: 44px; margin: 58px 0 -20px; color: var( --zloto ); opacity: .38; filter: drop-shadow( 0 0 10px currentColor ); }

/* ══════════════  TEKST DO CZYTANIA  ══════════════
   Dopisane 2026-09-11 po przelocie testu. Lewant powstał przed regułą
   o ozdobnym kroju i miał WSZYSTKIE akapity w Jost po 14–14,5 px —
   przy akapitach dochodzących do tysiąca znaków to było nie do czytania,
   a reszta Atlasu od dawna czyta w szeryfowym 17 px.

   Świadomie NIE ruszamy `font` na `.tlw-strona`: bazowy krój bezszeryfowy
   trzyma etykiety, nadtytuły i podpisy lustra i ma tak zostać. Zmieniamy
   wyłącznie akapity niosące treść. */
.tlw-strona .tlw-lead { font-family: var( --serif ); font-size: 19px; line-height: 1.7; }
.tlw-strona .tlw-sekcja__lead { font-family: var( --serif ); font-size: 17.5px; line-height: 1.68; }
.tlw-strona .tlw-tafla__tresc > p,
.tlw-strona .tlw-karta > p,
.tlw-strona .tlw-kafel > p,
.tlw-strona .tlw-etap > p { font-family: var( --serif ); font-size: 17px; line-height: 1.66; }
/* Pierwszy akapit tafli dostaje inicjał — ta strona nie ma okna po kliknięciu,
   więc ozdobę, która gdzie indziej nosi okno, bierze na siebie sama tafla. */
.tlw-strona .tlw-tafla__tresc > p:first-of-type::first-letter {
  float: left; margin: 6px 12px 0 0; font-size: 3.1em; line-height: .82; font-weight: 500;
  color: var( --zloto ); text-shadow: 0 0 26px rgba( 200, 160, 106, .45 );
}

/* Okno Lewantu jest WŁASNE (`tlw-okno`), nie wspólne `zd-okno` — dlatego
   doklejka z narzedzia/okno-ozdobne.py go nie dotknęła i po pierwszej
   naprawie nadal miało 14,5 px w Jost. Oprawę robimy tutaj, w jego
   własnych klasach. */
.tlw-okno {
  background:
    radial-gradient( 120% 70% at 50% -6%, rgba( 63, 155, 122, .2 ), transparent 62% ),
    radial-gradient( 90% 60% at 92% 108%, rgba( 123, 79, 168, .14 ), transparent 68% ),
    linear-gradient( 178deg, #14201d 0%, #0d1614 46%, #060b0a 100% );
  box-shadow: inset 0 1px 0 rgba( 226, 240, 234, .1 ), 0 0 0 1px rgba( 0, 0, 0, .6 ),
    0 40px 120px -40px rgba( 0, 0, 0, .95 ), 0 0 90px -30px rgba( 63, 155, 122, .42 );
}
.tlw-okno__tytul { text-shadow: 0 0 42px rgba( 63, 155, 122, .45 ), 0 2px 18px rgba( 0, 0, 0, .8 ); }
.tlw-okno__tytul::after {
  content: ''; display: block; height: 2px; margin: 16px 0 2px;
  background: linear-gradient( 90deg, rgba( 63, 155, 122, .85 ), rgba( 123, 79, 168, .5 ) 38%, transparent 88% );
  box-shadow: 0 0 18px rgba( 63, 155, 122, .45 );
}
/* Narożniki — ta sama rama co w oknach reszty Atlasu. */
.tlw-okno::before, .tlw-okno::after {
  content: ''; position: absolute; width: 62px; height: 62px; pointer-events: none;
  border-color: rgba( 200, 160, 106, .68 ); border-style: solid; border-width: 0;
  filter: drop-shadow( 0 0 10px rgba( 200, 160, 106, .45 ) );
}
.tlw-okno::before { left: 14px; top: 14px; border-left-width: 2px; border-top-width: 2px; border-radius: 16px 0 0 0; }
.tlw-okno::after { right: 14px; bottom: 14px; border-right-width: 2px; border-bottom-width: 2px; border-radius: 0 0 16px 0; }
.tlw-okno h3 + p::first-letter, .tlw-okno .tlw-okno__oryg + p::first-letter {
  float: none;
}


/* ---------------------------------------------------------------------------
   TŁA SEKCJI

   Reguły trzymają się atrybutu data-tlo, który PHP dokłada dopiero wtedy,
   gdy plik naprawdę leży na serwerze. Dopóki grafiki nie ma, sekcja nie
   dostaje ani ramki, ani wypełnienia i wygląda dokładnie jak dziś — brak ma
   być cichy, a nie zostawiać pustej ramy.

   Obraz wchodzi WARSTWĄ właściwości background, nie przez ::before. Tych
   dwóch pseudoelementów używa wspólny zdobienia.css (lotos nad sekcją i kreska
   rozdzielająca) i nadpisanie ich zabrałoby sekcjom zdobienia reszty serwisu.
   Z tego samego powodu nie ma tu overflow: hidden — lotos siedzi nad krawędzią.

   Adres pliku podaje PHP w zmiennej --tlo razem ze znacznikiem czasu, więc
   podmiana grafiki nie wymaga ruszania tego arkusza i nie siedzi w pamięci.
   --------------------------------------------------------------------------- */

.tlw-hero[data-tlo] {
	position: relative; max-width: none;
	padding: 64px 36px 52px; border-radius: 26px;
	border: 1px solid rgba( 255, 255, 255, .10 );
	box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .05 ), 0 40px 90px -50px rgba( 0, 0, 0, .95 );
	background:
		linear-gradient( 90deg, rgba( 12, 10, 14, .90 ) 0%, rgba( 12, 10, 14, .70 ) 34%, rgba( 12, 10, 14, .20 ) 66%, transparent 100% ),
		var( --obraz-tla ) 50% 46% / cover no-repeat;
}
.tlw-hero[data-tlo] > * { max-width: 80ch; }

.tlw-sekcja[data-tlo] {
	position: relative;
	padding: 40px 36px 44px; border-radius: 26px;
	border: 1px solid rgba( 255, 255, 255, .10 );
	box-shadow: inset 0 1px 0 rgba( 255, 255, 255, .05 ), 0 40px 90px -50px rgba( 0, 0, 0, .95 );
	background:
		radial-gradient( 880px 500px at 12% 16%, rgba( 15, 13, 18, .62 ), transparent 74% ),
		linear-gradient( 180deg, rgba( 15, 13, 18, .10 ) 0%, rgba( 15, 13, 18, .22 ) 48%, rgba( 15, 13, 18, .48 ) 100% ),
		var( --obraz-tla ) 62% 52% / cover no-repeat;
}

@media ( max-width: 680px ) {
	.tlw-hero[data-tlo], .tlw-sekcja[data-tlo] { padding: 28px 20px 32px; border-radius: 18px; }
}

/* ---------------------------------------------------------------------------
   CZYTELNOSC NA TLE

   Kafle i klocki są z założenia przezroczyste — mają tło o kryciu 0,07,
   bo projektowano je na płaską barwę. Nad fotografią to przestaje działać:
   zmierzone na żywej stronie, tekst kafla nad jaśniejszym miejscem zdjęcia ma
   kontrast 1,23:1, czyli jest NIECZYTELNY. Zasłona na całej sekcji tego nie
   naprawia — z rachunku wychodzi, że musiałaby mieć krycie 0,80 i zabiłaby obraz.

   Dlatego czytelność niesie sam kafel, i tylko tam, gdzie pod spodem jest zdjęcie.
   Próg liczony w NAJGORSZYM przypadku, czyli nad czystą bielą, bo tła rozjaśniane
   gammą bywają jaśniejsze niż najjaśniejszy punkt oryginalnego zdjęcia. Próg 4,5:1
   wypada przy kryciu 0,845 — stąd 0,90, a nie 0,86, które miało zapas na granicy błędu.
   Przy 0,90 nad bielą: tekst 5,35:1, tytuł 12,80:1. Między kaflami obraz zostaje widoczny.
   --------------------------------------------------------------------------- */

.tlw-sekcja[data-tlo] .zd-pas > li,
.tlw-sekcja[data-tlo] .zd-klocek {
	background-color: rgba( 12, 10, 14, .90 );
	backdrop-filter: blur( 2px );
	border-color: rgba( 255, 255, 255, .16 );
	box-shadow: 0 18px 40px -26px rgba( 0, 0, 0, .9 );
}

/* TEKST POBOCZNY NAD TŁEM — podpisy i nadtytuły są ciemniejsze od tekstu głównego
   i przy kryciu kafla 0,90 wypadały PONIŻEJ progu 4,5:1. Podnoszenie krycia nic tu
   nie daje — dla najciemniejszych barw trzeba by 0,99, czyli kafel nieprzezroczysty.
   Dlatego rozjaśniam SAMĄ BARWĘ, w tej samej rodzinie, i tylko pod [data-tlo]. */
.tlw-sekcja[data-tlo] {
	--tekst-slaby: #8b9591;	/* #7f8a86 dawało 4.38:1, teraz 5.07:1 */
}

/* OKNO TEZY — przejscie tonalne.
   Wspolna warstwa daje oknu tezy plaska pobialke rgba(255,255,255,.028)
   regulami o swoistosci 0,2,0 i 0,3,0 — jedna wartosc dla wszystkich dzialow
   naraz. Dublowana klasa daje 0,4,0 i zamyka sprawe bez !important.
   Barwy sa z palety TEGO dzialu. Dopisane po stronie SERWERA, bo lokalna
   kopia modulu bywa starsza niz wgrana. */
.tlw-strona .tlw-hero .tlw-okno.zd-okno,
.tlw-strona .tlw-hero .zd-okno.zd-okno,
.tlw-strona .tlw-hero .tlw-okno.tlw-okno {
	background:
		radial-gradient( 720px 240px at 42% 0%, rgba( 18, 26, 24, .10 ), transparent 70% ),
		linear-gradient( 168deg, #151a19, #0a0f0e );
}
