@font-face{font-family:'Archivo';font-style:normal;font-weight:600 800;font-display:swap;src:url(/assets/fonts/archivo-normal-600-800-latin-ext.ff4f17d219.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-weight:600 800;font-display:swap;src:url(/assets/fonts/archivo-normal-600-800-latin.8f704806db.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}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-normal-500-latin-ext.6bb06407c9.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:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-normal-500-latin.01d2854474.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}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/newsreader-normal-400-500-latin-ext.ac6fa9ed53.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:'Newsreader';font-style:normal;font-weight:400 500;font-display:swap;src:url(/assets/fonts/newsreader-normal-400-500-latin.62981321d9.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}

/* === baza v3 (design system Proch PC) === */
:root{
  --paper:#EDF0EE; --sheet:#FFFFFF; --sheet-2:#F7F9F7;
  --ink:#141B19; --ink-2:#4E5B58; --ink-3:#5C6A66;
  --rule:#D2DAD7; --rule-strong:#AEB9B5;
  --mark:#F0E24E; --mark-soft:rgba(240,226,78,.62);
  --stamp:#AE3B2A; --up:#1F7A4D;
  --focus:var(--ink);
  --shadow:0 1px 0 rgba(20,27,25,.06), 0 12px 30px -22px rgba(20,27,25,.5);
  --ff-ui:"Archivo","Helvetica Neue",Arial,sans-serif;
  --ff-prose:"Newsreader",Georgia,"Times New Roman",serif;
  --ff-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
  color-scheme:light dark;
}
@media (prefers-color-scheme: dark){
  :root{
    --paper:#0F1413; --sheet:#171E1C; --sheet-2:#1C2422;
    --ink:#E6EBE8; --ink-2:#A2B0AB; --ink-3:#8A9893;
    --rule:#2A3431; --rule-strong:#41504B;
    --mark:#E8DB4A; --mark-soft:rgba(232,219,74,.26);
    --stamp:#E2705A; --up:#4FBF86;
    --focus:var(--ink);
    --shadow:0 1px 0 rgba(0,0,0,.4), 0 18px 40px -26px #000;
  }
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--ff-ui); font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased}
.wrap{max-width:1000px; margin:0 auto; padding-inline:clamp(16px,4vw,40px)}
a{color:inherit}
h1,h2,h3{margin:0; text-wrap:balance; font-family:var(--ff-ui); letter-spacing:-.02em}
p{margin:0; text-wrap:pretty}
ul,ol{margin:0; padding:0; list-style:none}
.nw{white-space:nowrap}
.skip{position:absolute; left:-999px; top:8px; background:var(--ink); color:var(--paper); padding:.6em 1em; font-family:var(--ff-mono); font-size:13px; z-index:10}
.skip:focus{left:8px}
.skip:focus-visible{outline-color:var(--paper); outline-offset:-5px}
.lbl{font-family:var(--ff-mono); font-size:11px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2)}
.prose{font-family:var(--ff-prose); font-size:18px; line-height:1.6; color:var(--ink-2); max-width:62ch}
.prose strong,.prose b{color:var(--ink); font-weight:500}
:where(.kv,.note,.why) :is(b,strong),b.num{color:var(--ink); font-weight:500}
.mark{color:var(--ink); background-image:linear-gradient(var(--mark-soft),var(--mark-soft)); background-repeat:no-repeat; background-position:left center; background-size:100% 100%; padding-inline:.12em; margin-inline:-.12em; -webkit-box-decoration-break:clone; box-decoration-break:clone; animation:swipe .6s cubic-bezier(.2,.7,.3,1)}
@keyframes swipe{from{background-size:0% 100%} to{background-size:100% 100%}}
@media (prefers-reduced-motion: reduce){.mark{animation:none}}
.btn{display:inline-flex; align-items:center; gap:.55em; font-family:var(--ff-ui); font-weight:700; font-size:15px; line-height:1.2; padding:.78em 1.15em; border:1.5px solid var(--ink); text-decoration:none; background:var(--ink); color:var(--paper)}
.btn:hover{background:transparent; color:var(--ink)}
.btn.ghost{background:transparent; color:var(--ink)}
.btn.ghost:hover{background:var(--ink); color:var(--paper)}
.lnk{font-family:var(--ff-mono); font-size:13px; font-weight:500; letter-spacing:.02em; text-decoration:none; border-bottom:1.5px solid var(--mark); padding-bottom:1px}
.lnk:hover{border-bottom-color:var(--ink)}
.tx{color:var(--ink); text-decoration:underline; text-decoration-color:var(--ink-2); text-decoration-thickness:1.5px; text-underline-offset:3px}
.tx:hover{text-decoration-color:var(--ink)}
:where(a,button,summary):focus-visible{outline:2.5px solid var(--focus); outline-offset:3px}

/* prototype strip (v3) — stałe kolory, czytelne w obu motywach (13:1) */
.proto{background:#141B19; color:#EDF0EE; font-family:var(--ff-mono); font-size:11.5px; letter-spacing:.06em}
.proto .wrap{display:flex; flex-wrap:wrap; gap:2px 14px; padding-block:7px}
.proto b{color:#F0E24E; font-weight:500; text-transform:uppercase; letter-spacing:.12em}

/* masthead */
.mast{display:flex; flex-wrap:wrap; gap:12px 20px; align-items:baseline; justify-content:space-between; padding-block:20px 16px; border-bottom:2px solid var(--ink)}
.brand{font-family:var(--ff-mono); font-weight:500; font-size:13px; letter-spacing:.1em; text-transform:uppercase; text-decoration:none}
.brand span{color:var(--ink-3)}
.nav{display:flex; flex-wrap:wrap; gap:6px 18px}
.nav a{font-family:var(--ff-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); text-decoration:none; padding-bottom:2px; border-bottom:1.5px solid transparent}
.nav a:hover{color:var(--ink); border-bottom-color:var(--mark)}
.nav a[aria-current="page"]{color:var(--ink); border-bottom-color:var(--ink)}

/* hero + page head */
.hero{padding-block:clamp(40px,7vw,72px) clamp(28px,5vw,48px); display:grid; gap:22px; border-top:0}
.hero h1{font-size:clamp(34px,6.2vw,62px); font-weight:800; line-height:1.04; max-width:19ch}
.hero .prose{font-size:clamp(17px,2.2vw,19px)}
.phead{padding-block:clamp(32px,6vw,56px) clamp(22px,4vw,36px); display:grid; gap:16px; border-top:0}
.phead h1{font-size:clamp(30px,5vw,48px); font-weight:800; line-height:1.06; max-width:22ch}
.cta-row{display:flex; flex-wrap:wrap; gap:12px; padding-top:4px}
.jump{display:flex; flex-wrap:wrap; gap:8px 20px; padding-top:2px}

/* sections */
section{padding-block:clamp(36px,6vw,56px); border-top:1px solid var(--rule)}
.sec-head{display:grid; gap:8px; margin-bottom:22px}
.sec-head h2{font-size:clamp(24px,3.4vw,32px); font-weight:700}

/* cards */
.cards{display:grid; gap:14px; grid-template-columns:1fr}
@media (min-width:760px){.cards{grid-template-columns:1fr 1fr}}
.cards.three{grid-template-columns:1fr}
@media (min-width:860px){.cards.three{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--sheet); border:1px solid var(--rule-strong); box-shadow:var(--shadow); padding:clamp(18px,3vw,26px); display:grid; gap:14px; align-content:start; min-width:0}
.card.feature{grid-column:1/-1}
.card-top{display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; justify-content:space-between}
.card h3{font-size:clamp(20px,2.6vw,25px); font-weight:700; line-height:1.15}
.card p,.card li{font-family:var(--ff-prose); font-size:16.5px; line-height:1.55; color:var(--ink-2)}
.card b{color:var(--ink); font-weight:500}
.card p.lbl{font-family:var(--ff-mono); font-size:11px; line-height:1.5; color:var(--ink-2)}
.status{font-family:var(--ff-mono); font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; padding:.32em .6em; border:1.5px solid currentColor; white-space:nowrap; color:var(--ink-2)}
.status.soon{color:var(--ink); border-color:transparent; background:var(--mark-soft)}
.status.live{color:var(--up)}
.status.talk{color:var(--ink); border-color:var(--ink)}
.status.gate{color:var(--stamp)}
.feature-body{display:grid; gap:18px 36px}
@media (min-width:760px){.feature-body{grid-template-columns:1.1fr 1fr}}
.feature-body .facts{display:grid; gap:12px}
.facts li{padding-left:30px; position:relative}
.facts li .n{position:absolute; left:0; top:.25em; font-family:var(--ff-mono); font-size:11px; font-weight:500; color:var(--stamp); letter-spacing:.08em}
.links{display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; padding-top:4px}

/* offer card (v3) */
.offer .lead{font-family:var(--ff-prose); font-size:17.5px; color:var(--ink)}
.kv{margin:0; display:grid; gap:0; border-top:1px solid var(--rule)}
.kv > div{display:grid; gap:2px 18px; padding:10px 0; border-bottom:1px solid var(--rule)}
@media (min-width:640px){.kv > div{grid-template-columns:150px 1fr}}
.kv dt{font-family:var(--ff-mono); font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2); padding-top:.3em}
.kv dd{margin:0; font-family:var(--ff-prose); font-size:16.5px; line-height:1.55; color:var(--ink-2)}
.kv dd ul{display:grid; gap:3px}
.kv dd li{padding-left:16px; position:relative}
.kv dd li::before{content:"—"; position:absolute; left:0; color:var(--ink-3)}
.gate-line{font-family:var(--ff-mono); font-size:12.5px; line-height:1.55; color:var(--ink-2); border-left:3px solid var(--stamp); padding:4px 0 4px 12px}
.gate-line b{color:var(--ink); font-weight:500}
.ask{border:1px solid var(--rule); background:var(--sheet-2); padding:10px 14px}
.ask summary{cursor:pointer; font-family:var(--ff-mono); font-size:12px; letter-spacing:.04em; color:var(--ink)}
.ask ol{list-style:decimal; padding-left:1.4em; display:grid; gap:4px; margin:10px 0 8px}
.ask li,.ask p{font-family:var(--ff-prose); font-size:16px; line-height:1.5; color:var(--ink-2)}
.legend{display:grid; gap:10px; margin-top:6px}
.legend li{display:grid; grid-template-columns:auto 1fr; gap:4px 14px; align-items:baseline; font-family:var(--ff-prose); font-size:16.5px; color:var(--ink-2)}
.legend .status{justify-self:start}

/* steps (v3) */
.steps{counter-reset:s; display:grid; border-top:1px solid var(--rule); max-width:72ch}
.steps li{counter-increment:s; display:grid; grid-template-columns:44px 1fr; gap:2px 14px; padding:14px 0; border-bottom:1px solid var(--rule)}
.steps li::before{content:counter(s,decimal-leading-zero); font-family:var(--ff-mono); font-size:13px; font-weight:500; color:var(--stamp); grid-row:span 2; padding-top:4px}
.steps b{font-family:var(--ff-ui); font-weight:700; font-size:17px; color:var(--ink)}
.steps span{font-family:var(--ff-prose); font-size:16.5px; line-height:1.55; color:var(--ink-2)}
.steps span.law,.tbl .law{font-family:var(--ff-mono); font-size:12px; color:var(--ink-3)}

/* e-mail template preview (v3) */
.tmpl{margin:0; font-family:var(--ff-mono); font-size:13px; line-height:1.65; color:var(--ink); background:var(--sheet-2); border:1px solid var(--rule-strong); padding:14px 16px; white-space:pre-wrap; overflow-wrap:anywhere; max-width:72ch}

/* tables (v3) */
.tbl-wrap{overflow-x:auto; max-width:100%}
.tbl{width:100%; border-collapse:collapse}
.tbl caption{text-align:left; padding-bottom:6px}
.tbl th[scope="row"]{font-family:var(--ff-prose); font-size:16px; letter-spacing:0; text-transform:none; color:var(--ink); font-weight:500}
.tbl-wrap:focus-visible{outline:2.5px solid var(--focus); outline-offset:3px}
.tbl th,.tbl td{border-bottom:1px solid var(--rule); padding:10px 10px 10px 0; text-align:left; vertical-align:top}
.tbl th{font-family:var(--ff-mono); font-size:11px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2)}
.tbl td{font-family:var(--ff-prose); font-size:16px; line-height:1.5; color:var(--ink-2)}
.tbl td b{color:var(--ink); font-weight:500}
.num{font-family:var(--ff-mono); font-size:14px; white-space:nowrap; color:var(--ink)}

/* price example (v3) */
.price{display:grid; gap:6px; background:var(--sheet); border:1px solid var(--rule-strong); box-shadow:var(--shadow); padding:18px 20px; max-width:440px}
.price .name{font-weight:700; font-size:18px}
.price .now{font-weight:800; font-size:34px; letter-spacing:-.02em; line-height:1.1}
.price .omni{font-family:var(--ff-mono); font-size:12.5px; line-height:1.5; color:var(--ink-2)}
.example{font-family:var(--ff-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--stamp)}

/* legal documents (v3) */
.doc{display:grid; gap:14px; max-width:74ch}
.doc h2{font-size:clamp(20px,2.8vw,25px); font-weight:700; margin-top:18px}
.doc h3{font-size:18px; font-weight:700; margin-top:6px}
.doc p,.doc li{font-family:var(--ff-prose); font-size:17px; line-height:1.6; color:var(--ink-2)}
.doc b,.doc strong{color:var(--ink); font-weight:500}
.doc ol,.doc ul{padding-left:1.5em; display:grid; gap:6px}
.doc ol{list-style:decimal}
.doc ul{list-style:disc}
.doc ol ol{list-style:lower-alpha}
.doc li::marker{font-family:var(--ff-mono); font-size:.8em; color:var(--ink-3)}
.law{font-family:var(--ff-mono); font-size:12px; letter-spacing:.02em; color:var(--ink-3)}
.doc > *,.cards > *,.tbl-wrap{min-width:0}
.note{border-left:3px solid var(--stamp); background:var(--sheet); padding:12px 16px; display:grid; gap:6px; max-width:74ch}
.note p{font-family:var(--ff-prose); font-size:16.5px; line-height:1.55; color:var(--ink-2)}
.note p.lbl{font-family:var(--ff-mono); font-size:11px; line-height:1.5}
.note .lbl{color:var(--stamp)}
.form-box{border:1.5px dashed var(--rule-strong); padding:16px 18px; display:grid; gap:10px; max-width:74ch}
.ph{font-family:var(--ff-mono); font-size:.84em; color:var(--ink); background:var(--mark-soft); border:1px dashed var(--stamp); padding:0 .35em; overflow-wrap:anywhere}

/* rules */
.rules{margin:0; display:grid; gap:0; border-top:1px solid var(--rule)}
@media (min-width:760px){.rules{grid-template-columns:repeat(3,1fr); gap:0 32px}}
.rules > div{padding:18px 0; border-bottom:1px solid var(--rule); display:grid; gap:6px; align-content:start}
.rules dt{font-weight:700; font-size:17px}
.rules dd{margin:0; font-family:var(--ff-prose); font-size:16.5px; line-height:1.55; color:var(--ink-2)}

/* contact */
.contact{display:grid; gap:18px}
.contact .mail{font-family:var(--ff-ui); font-weight:800; font-size:clamp(22px,4.2vw,38px); letter-spacing:-.02em; text-decoration:none; border-bottom:3px solid var(--mark); padding-bottom:2px; width:max-content; max-width:100%; overflow-wrap:anywhere}
.contact .mail:hover{border-bottom-color:var(--ink)}
.why{display:grid; gap:6px; max-width:62ch}
.why li{font-family:var(--ff-prose); font-size:17px; line-height:1.55; color:var(--ink-2); padding-left:18px; position:relative}
.why li::before{content:"—"; position:absolute; left:0; color:var(--ink-3)}
.meta{display:flex; flex-wrap:wrap; gap:8px 28px}
.meta li{display:grid; gap:3px}
.meta a{font-family:var(--ff-mono); font-size:13.5px; font-weight:500; text-decoration:none; border-bottom:1.5px solid var(--ink)}
.meta a:hover{border-bottom-color:var(--ink)}
.meta .v{font-family:var(--ff-mono); font-size:13.5px; font-weight:500}

/* footer (v3: legal links + seller line above the v2.1 row) */
footer{border-top:2px solid var(--ink); padding-block:18px 40px; display:grid; gap:12px; font-family:var(--ff-mono); font-size:11.5px; color:var(--ink-2)}
footer .lnk{font-size:inherit; color:var(--ink); border-bottom-color:var(--ink)}
.legal{display:flex; flex-wrap:wrap; gap:6px 18px}
.legal a{color:var(--ink); text-decoration:none; border-bottom:1.5px solid var(--rule-strong)}
.legal a:hover{border-bottom-color:var(--mark)}
.seller{line-height:1.6}
.foot-row{display:flex; flex-wrap:wrap; gap:6px 18px; justify-content:space-between}

/* zestawy PC (v3.1) */
.set-grid{display:grid; gap:18px 28px; margin-bottom:16px}
@media (min-width:760px){.set-grid{grid-template-columns:minmax(0,400px) minmax(0,1fr); align-items:start}}
.set-grid > *{min-width:0}
.price .sub{font-family:var(--ff-prose); font-size:15.5px; line-height:1.5; color:var(--ink-2)}
.price .sub b{color:var(--ink); font-weight:500}
.ex{font-family:var(--ff-mono); font-size:.84em; color:var(--ink-2); border:1px dashed var(--rule-strong); padding:0 .35em; overflow-wrap:anywhere}
.why-line{font-family:var(--ff-mono); font-size:12px; line-height:1.6; color:var(--ink-2); border-left:3px solid var(--rule-strong); padding:2px 0 2px 12px; margin-top:16px; max-width:80ch}
.why-line b{color:var(--ink); font-weight:500}
.shot{margin:0; display:grid; place-items:center; aspect-ratio:4/3; border:1.5px dashed var(--rule-strong); background:var(--sheet-2); padding:18px; text-align:center}
.shot figcaption{font-family:var(--ff-mono); font-size:12px; line-height:1.55; color:var(--ink-2); max-width:30ch}
.photo{margin:0}
.photo img{display:block; width:100%; height:auto; border:1px solid var(--rule-strong)}
.note .why{max-width:none}
.note .why li{font-size:16.5px}
section .ask{margin-top:14px}

/* === hub v4 === */
/* fokus: jeden token (DS) na każdym elemencie — także pola i cele fokusu ustawiane przez cart.js */
:focus-visible{outline:2.5px solid var(--focus); outline-offset:3px}
/* bez sztucznego pogrubienia: Newsreader ma pliki 400–500, Plex Mono tylko 500 (DS) */
html{font-synthesis:none}
.cards.four{grid-template-columns:1fr}
@media (min-width:640px){.cards.four{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.cards.four{grid-template-columns:repeat(4,1fr)}}
.card{grid-template-rows:auto auto 1fr auto}
.card .links{align-self:end}
/* karta projektu z faktami A–D (C34): fakty zaraz pod streszczeniem, wolne miejsce przed linkami */
.card:has(> .facts){grid-template-rows:auto auto auto 1fr auto}
.card > .facts{display:grid; gap:10px; align-content:start}
.card-top .status{margin-left:auto}
.lede{font-family:var(--ff-prose); font-size:clamp(17px,2.2vw,19px); line-height:1.6; color:var(--ink-2); max-width:62ch}
.lede strong,.lede b{color:var(--ink); font-weight:500}
.crumbs{font-family:var(--ff-mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2); display:flex; flex-wrap:wrap; gap:4px 10px}
.crumbs a{text-decoration:none; color:var(--ink-2); border-bottom:1.5px solid var(--rule-strong)}
.crumbs a:hover{color:var(--ink); border-bottom-color:var(--mark)}

/* blog */
.posts{display:grid; border-top:1px solid var(--rule); max-width:72ch}
.posts li{display:grid; gap:4px; padding:14px 0; border-bottom:1px solid var(--rule)}
.posts time,.article time{font-family:var(--ff-mono); font-size:12px; letter-spacing:.04em; color:var(--ink-3)}
.posts a{font-family:var(--ff-ui); font-weight:700; font-size:18px; line-height:1.25; text-decoration:none}
.posts a:hover{text-decoration:underline; text-decoration-color:var(--mark); text-decoration-thickness:2px}
.posts p{font-family:var(--ff-prose); font-size:16.5px; line-height:1.55; color:var(--ink-2)}
.article{max-width:70ch; display:grid; gap:16px; padding-block:clamp(32px,6vw,56px) clamp(40px,7vw,72px)}
.article h1{font-size:clamp(30px,5vw,46px); font-weight:800; line-height:1.06}
.article .meta-line{font-family:var(--ff-mono); font-size:12.5px; line-height:1.6; color:var(--ink-3); border-left:3px solid var(--mark); padding-left:10px}
.article p,.article li{font-family:var(--ff-prose); font-size:17.5px; line-height:1.6; color:var(--ink-2)}
.article h2{font-size:clamp(22px,3vw,28px); font-weight:700; margin-top:14px}
.article h3{font-size:19px; font-weight:700}
.article ul{display:grid; gap:6px}
.article ul li{padding-left:18px; position:relative}
.article ul li::before{content:"—"; position:absolute; left:0; color:var(--ink-3)}
.article ol{list-style:decimal; padding-left:1.5em; display:grid; gap:6px}
.article ol li::marker{font-family:var(--ff-mono); font-size:.85em; color:var(--ink-3)}
.article pre{margin:0; font-family:var(--ff-mono); font-size:13px; line-height:1.6; color:var(--ink); background:var(--sheet-2); border:1px solid var(--rule-strong); padding:14px 16px; overflow-x:auto}
.article code{font-family:var(--ff-mono); font-size:.92em}
.article p code,.article li code{color:var(--ink); background:var(--sheet-2); padding:0 .3em}
.article blockquote{margin:0; border-left:3px solid var(--mark); padding-left:14px}
.article strong{color:var(--ink); font-weight:500}
.article a{color:var(--ink); text-decoration:underline; text-decoration-color:var(--ink-2); text-decoration-thickness:1.5px; text-underline-offset:3px}
.article a:hover{text-decoration-color:var(--ink)}
.article em{font-style:normal; color:var(--ink-3)}

/* „Ostatnio” */
.recent{display:grid; border-top:1px solid var(--rule); max-width:72ch}
.recent li{display:grid; grid-template-columns:104px 1fr; gap:4px 14px; padding:12px 0; border-bottom:1px solid var(--rule)}
.recent time{font-family:var(--ff-mono); font-size:12.5px; color:var(--ink-3); padding-top:3px}
.recent b{font-family:var(--ff-ui); font-weight:700; font-size:17px; color:var(--ink); display:block}
.recent span{font-family:var(--ff-prose); font-size:16.5px; line-height:1.5; color:var(--ink-2)}
.recent a{text-decoration:none}
.recent a:hover b{text-decoration:underline; text-decoration-color:var(--mark); text-decoration-thickness:2px}

/* kino */
.embeds{display:grid; gap:14px; margin-top:18px}
@media (min-width:860px){.embeds{grid-template-columns:2fr 1fr}}
.panel{display:grid; gap:8px; align-content:start; min-width:0}
.panel h2{font-size:17px; font-weight:700}
.panel iframe{width:100%; aspect-ratio:16/9; min-height:300px; border:1px solid var(--rule-strong); background:var(--ink); display:block}
.panel.chat iframe{aspect-ratio:auto; height:100%; min-height:420px}
.panel .empty{font-family:var(--ff-mono); font-size:12px; line-height:1.55; color:var(--ink-2)}
.ad{border:1px solid var(--rule-strong); padding:12px 14px; display:grid; gap:6px; max-width:440px; background:var(--sheet)}
.ad .lbl{color:var(--stamp)}
.ad img{display:block; max-width:100%; height:auto}
.statusline{font-family:var(--ff-mono); font-size:12.5px; line-height:1.6; color:var(--ink-2)}
.statusline b{color:var(--ink); font-weight:500}

/* sklep — koszyk (tryb cart) */
.cart-tbl input{font-family:var(--ff-mono); font-size:14px; width:4.6em; padding:.35em .4em; border:1.5px solid var(--ink); background:var(--sheet); color:var(--ink)}
button.btn{cursor:pointer}
.btn.small{font-size:13px; padding:.5em .8em}
.form{display:grid; gap:14px; max-width:460px}
.field{display:grid; gap:6px}
.field span{font-family:var(--ff-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2)}
.field input,.field textarea{font:inherit; font-family:var(--ff-prose); font-size:16px; padding:.6em .7em; border:1.5px solid var(--ink); background:var(--sheet); color:var(--ink)}
.order-form{width:100%; min-width:0}
[data-order-section][hidden]{display:none}
.order-form > *{min-width:0; max-width:100%; overflow-wrap:anywhere}
.order-form .field input,.order-form .field textarea{width:100%; min-width:0; max-width:100%}
.form-section{display:grid; gap:14px; min-width:0; margin:0; padding:14px; border:1px solid var(--rule-strong); background:var(--sheet)}
.form-section[hidden]{display:none}
.form-section legend{max-width:100%; padding:0 6px; font-family:var(--ff-ui); font-size:16px; font-weight:700; color:var(--ink); overflow-wrap:anywhere}
.choice{display:flex; align-items:flex-start; gap:10px; min-width:0; font-family:var(--ff-prose); font-size:16px; line-height:1.5; color:var(--ink); cursor:pointer}
.choice input{flex:0 0 1.15em; width:1.15em; height:1.15em; margin:.2em 0 0; padding:0; accent-color:var(--ink); cursor:pointer}
.choice input:disabled{cursor:not-allowed}
.choice-text{display:grid; gap:4px; min-width:0; overflow-wrap:anywhere}
.doc-links{display:inline; white-space:nowrap; overflow-wrap:normal}
.doc-links a{white-space:normal}
.field-help,.order-form .field-help{display:block; font-family:var(--ff-prose); font-size:15px; font-weight:400; line-height:1.5; letter-spacing:0; text-transform:none; color:var(--ink-2); overflow-wrap:anywhere}
.cart-options{display:grid; gap:12px; min-width:220px; max-width:340px; margin-top:12px}
.cart-options .form-section{gap:10px; padding:10px}
.cart-options .choice input{width:1.15em; padding:0}
.cart-summary{display:grid; gap:12px; padding:16px; border:1.5px solid var(--ink); background:var(--sheet); color:var(--ink); overflow-wrap:anywhere}
.cart-summary h3{font-size:20px; line-height:1.3}
.cart-summary p{min-width:0; font-family:var(--ff-prose); font-size:16px; line-height:1.55; color:var(--ink)}
.cart-summary .total{font-family:var(--ff-ui); font-size:22px; line-height:1.35}
.summary-item{display:grid; gap:4px; padding-bottom:12px; border-bottom:1px solid var(--rule); white-space:pre-line}
.hp{display:none}
.total{font-family:var(--ff-ui); font-weight:800; font-size:22px; letter-spacing:-.02em}
.card .price-line{font-family:var(--ff-ui); font-weight:800; font-size:22px; letter-spacing:-.02em; color:var(--ink)}
.msg{font-family:var(--ff-mono); font-size:12.5px; color:var(--ink); min-height:1.6em}
.entries{display:grid; gap:0; border-top:1px solid var(--rule); max-width:72ch}
.entries li{display:grid; grid-template-columns:1fr auto; gap:4px 14px; align-items:baseline; padding:12px 0; border-bottom:1px solid var(--rule)}
.entries a{font-family:var(--ff-ui); font-weight:700; font-size:17px; text-decoration:none}
.entries a:hover{text-decoration:underline; text-decoration-color:var(--mark); text-decoration-thickness:2px}
.entries span{font-family:var(--ff-prose); font-size:16px; color:var(--ink-2); grid-column:1/-1}

/* stopka hubu */
.foot-nav{display:flex; flex-wrap:wrap; gap:6px 18px}
.foot-nav a{color:var(--ink); text-decoration:none; border-bottom:1.5px solid var(--rule-strong)}
.foot-nav a:hover{border-bottom-color:var(--mark)}

/* 404 */
.nf{display:grid; gap:16px; padding-block:clamp(40px,8vw,90px)}
.nf h1{font-size:clamp(30px,5vw,48px); font-weight:800; line-height:1.06}
.nf p{font-family:var(--ff-prose); font-size:18px; line-height:1.6; color:var(--ink-2); max-width:62ch}
.nf .btn{justify-self:start}

.visually-hidden{position:absolute; left:-9999px}
.entries + .statusline{margin-top:14px}
.photo{margin:0 0 16px}
.photo figcaption{margin-top:8px}
.links + .statusline,.links + .prose{margin-top:14px}
.statusline + .links,.prose + .links{margin-top:12px}
