/* ==========================================================================
   Klockowy Świat / ceeteamblog.com
   Kierunek: instrukcja budowy LEGO — kremowy papier, czarny kontur,
   cegiełkowa czerwień. Motyw przewodni: cegiełka z wypustkami (studs).
   ========================================================================== */

/* ---------- Czcionki (lokalnie, bez zewnętrznych CDN) ---------- */
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;
  src:url(/assets/fonts/bricolage-grotesque-latin-ext-wght-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:"Bricolage Grotesque";font-style:normal;font-weight:200 800;font-display:swap;
  src:url(/assets/fonts/bricolage-grotesque-latin-wght-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}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;
  src:url(/assets/fonts/source-serif-4-latin-ext-wght-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:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;
  src:url(/assets/fonts/source-serif-4-latin-wght-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}

/* ---------- Tokeny ---------- */
:root{
  --paper:#fbf7ec;      /* papier instrukcji */
  --plate:#f2e8cf;      /* tło wkładek / plansz (jak tło ilustracji) */
  --ink:#1f1a16;        /* czarny kontur */
  --muted:#5b5147;      /* tekst drugorzędny */
  --brick:#b5321e;      /* czerwona cegiełka */
  --brick-dark:#8c2415;
  --stud:#f2b418;       /* żółty — tylko drobne akcenty */
  --line:color-mix(in srgb,var(--ink) 20%,transparent);
  --display:"Bricolage Grotesque",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --text:"Source Serif 4",Georgia,"Times New Roman",serif;
  --radius:6px;
  --shadow:8px 8px 0 var(--brick);
}

/* ---------- Baza ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 18px/1.6 var(--text);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
::selection{background:var(--stud);color:var(--ink)}
img{max-width:100%}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:.09em}
a:hover{color:var(--brick)}
a:focus-visible,summary:focus-visible{outline:3px solid var(--brick);outline-offset:4px;border-radius:2px}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}

.skip{position:absolute;left:-9999px;top:10px}
.skip:focus{left:16px;background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:var(--radius);z-index:20;font:600 15px var(--display)}

/* ---------- Nagłówek: logo-cegiełka ---------- */
.masthead{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:14px 44px;padding:46px 0 0}
.brand{position:relative;display:inline-block;justify-self:start;
  font:800 clamp(26px,5vw,52px)/1 var(--display);letter-spacing:-.02em;white-space:nowrap;
  color:var(--paper);background:var(--brick);text-decoration:none;
  padding:.14em .42em .2em;border-radius:.14em;
  box-shadow:inset 0 -.09em 0 rgba(0,0,0,.22);
  animation:snap .55s cubic-bezier(.3,1.5,.5,1) both}
.brand::before{content:"";position:absolute;left:.3em;right:.3em;bottom:100%;height:.3em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 11'%3E%3Cpath fill='%23b5321e' d='M5 11V4a4 4 0 0 1 4-4h12a4 4 0 0 1 4 4v7z'/%3E%3C/svg%3E") 0 100%/.82em .3em;
  background-repeat:space no-repeat}
.brand:hover{color:var(--paper);background:var(--brick-dark)}
.brand:hover::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 11'%3E%3Cpath fill='%238c2415' d='M5 11V4a4 4 0 0 1 4-4h12a4 4 0 0 1 4 4v7z'/%3E%3C/svg%3E")}
@keyframes snap{from{transform:translateY(-16px);opacity:0}to{transform:none;opacity:1}}

.strapline{margin:0;max-width:52ch;font:400 17px/1.5 var(--text);color:var(--muted)}

.navigation{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px;margin-top:22px;padding:6px 0;
  border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.navigation a{padding:9px 16px;border-radius:var(--radius);text-decoration:none;font:600 16px/1.2 var(--display)}
.navigation a:hover{color:var(--paper);background:var(--ink)}
.mobile-menu{display:none}

/* ---------- Strona główna: hero ---------- */
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr);gap:56px;align-items:center;padding:56px 0 64px}
.intro h1{margin:0 0 22px;font:800 clamp(42px,6vw,88px)/.95 var(--display);letter-spacing:-.035em;text-wrap:balance}
.intro p{margin:0;max-width:44ch;font-size:18px;line-height:1.6;color:var(--muted)}
.intro .article-image{margin:0}
.intro .art{aspect-ratio:8/5;object-fit:cover}

/* ---------- Obrazy jako „wkładki” ---------- */
.art{display:block;width:100%;height:auto;background:var(--plate);border:2px solid var(--ink);border-radius:var(--radius)}
.intro .art,.article-image .art{box-shadow:var(--shadow)}

/* ---------- Lista artykułów ---------- */
.catalog-label{display:flex;align-items:center;gap:14px;margin:0 0 32px;padding-top:18px;border-top:2px solid var(--ink);
  font:800 clamp(28px,3.4vw,40px)/1.1 var(--display);letter-spacing:-.025em}
.catalog-label .meta{font:600 15px/1 var(--display);letter-spacing:0;color:var(--ink);background:var(--stud);
  padding:7px 11px;border-radius:99px}

.listing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px 44px}
.story{display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:22px;min-width:0}
.story>a{display:block}
.story .art{aspect-ratio:8/5;object-fit:cover;transition:transform .18s ease,box-shadow .18s ease}
.story-copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.number{font:700 14px/1.3 var(--display);color:var(--brick)}
.story h2{margin:8px 0 12px;font:700 clamp(25px,2.5vw,33px)/1.08 var(--display);letter-spacing:-.022em;overflow-wrap:anywhere;text-wrap:balance}
.story h2 a{text-decoration:none}
.story h2 a:hover{text-decoration:underline;text-decoration-thickness:.09em}
.story p{margin:0 0 16px;max-width:60ch;color:var(--muted);font-size:17.5px;line-height:1.6}
.meta{font:500 14px/1.4 var(--display);color:var(--muted)}
.story .meta{margin-bottom:18px}
.read{display:inline-block;padding:9px 16px;border:2px solid var(--ink);border-radius:var(--radius);
  font:700 15px/1.2 var(--display);text-decoration:none;background:var(--paper);transition:background .15s,color .15s}
.read:hover{background:var(--ink);color:var(--paper)}

/* pierwszy artykuł — szeroki */
.story:first-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:44px;align-items:center;
  padding-bottom:64px;border-bottom:1px solid var(--line)}
.story:first-child>a{order:-1}
.story:first-child h2{font-size:clamp(30px,3.6vw,50px);line-height:1.02;letter-spacing:-.03em}
.story:first-child p{font-size:19px}

@media (hover:hover){
  .story:hover .art{transform:translate(-4px,-4px);box-shadow:8px 8px 0 var(--brick)}
}

/* ---------- O serwisie (strona główna) ---------- */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:40px;margin:88px 0 0;padding:40px;
  background:var(--plate);border:2px solid var(--ink);border-radius:var(--radius)}
.about h2{margin:0;font:800 clamp(28px,3vw,38px)/1.05 var(--display);letter-spacing:-.025em}
.about p{margin:0;max-width:68ch;font-size:18px;line-height:1.65}

/* ---------- Artykuł: nagłówek ---------- */
.article-header{max-width:980px;padding:52px 0 40px}
.breadcrumb{margin:0 0 30px;font:500 14px/1.4 var(--display);color:var(--muted)}
.breadcrumb a{text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.eyebrow{display:block;max-width:58ch;margin:0 0 14px;font:500 15px/1.45 var(--display);color:var(--brick)}
.article-header h1{margin:0 0 20px;font:800 clamp(36px,5.6vw,72px)/1 var(--display);letter-spacing:-.035em;overflow-wrap:anywhere;text-wrap:balance}
.article-header p:empty{display:none}
.article-header .meta{display:inline-block;padding:6px 13px;background:var(--plate);border:1.5px solid var(--ink);border-radius:99px;color:var(--ink);font-weight:600}

/* ---------- Artykuł: czytnik ---------- */
.reader{display:grid;grid-template-columns:250px minmax(0,700px);gap:64px;justify-content:start;align-items:start;
  padding-top:40px;border-top:2px solid var(--ink)}
.toc{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;font:500 14.5px/1.4 var(--display);border-left:2px solid var(--line)}
.toc strong{display:block;margin:0 0 10px 16px;font:800 17px/1.2 var(--display);letter-spacing:-.01em}
.toc a{display:block;margin-left:-2px;padding:9px 8px 9px 16px;border-left:3px solid transparent;color:var(--muted);text-decoration:none;transition:color .15s,border-color .15s}
.toc a:hover{color:var(--ink);border-left-color:var(--line)}
.toc a.is-active{color:var(--ink);font-weight:700;border-left-color:var(--brick)}

.article{min-width:0;font-size:20px;line-height:1.72}
.article-image{margin:0 0 44px}
.article p{margin:0 0 1.3em;text-wrap:pretty}
.article-image+p{font-size:23px;line-height:1.55;font-weight:450;padding-bottom:1.1em;margin-bottom:0;border-bottom:1px solid var(--line)}
.article h2{margin:2.1em 0 .6em;padding-left:16px;border-left:6px solid var(--brick);scroll-margin-top:24px;
  font:700 clamp(26px,3vw,34px)/1.12 var(--display);letter-spacing:-.022em;text-wrap:balance}
.article-image+p+h2{margin-top:1.6em}
.article a{color:var(--brick);overflow-wrap:anywhere}
.article a:hover{color:var(--brick-dark)}
.article ul,.article ol{margin:0 0 1.3em;padding-left:1.3em}
.article li{margin-bottom:.6em;padding-left:.2em}
.article li::marker{color:var(--brick)}
.article strong{font-weight:650}
.article blockquote{margin:1.6em 0;padding:.2em 0 .2em 22px;border-left:6px solid var(--stud);font-size:1.08em}
.article code{font:.86em ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--plate);padding:.12em .35em;border-radius:4px}

/* ---------- Czytaj także ---------- */
.related{margin-top:96px;padding-top:24px;border-top:2px solid var(--ink)}
.related h2{margin:0 0 28px;font:800 clamp(26px,3vw,36px)/1.1 var(--display);letter-spacing:-.025em}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.related-item{min-width:0}
.related-item>a{display:block}
.related-item .art{aspect-ratio:8/5;object-fit:cover;transition:transform .18s ease,box-shadow .18s ease}
.related-item h3{margin:16px 0 8px;font:700 21px/1.15 var(--display);letter-spacing:-.015em;overflow-wrap:anywhere}
.related-item h3 a{text-decoration:none}
.related-item h3 a:hover{text-decoration:underline}
@media (hover:hover){
  .related-item:hover .art{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--brick)}
}

/* ---------- Stopka: płyta z rzędem wypustek ---------- */
.footer{position:relative;margin-top:120px;padding:56px 0 24px;background:var(--ink);color:var(--paper)}
.footer::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:16px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 11'%3E%3Cpath fill='%231f1a16' d='M5 11V4a4 4 0 0 1 4-4h12a4 4 0 0 1 4 4v7z'/%3E%3C/svg%3E") 0 100%/44px 16px repeat-x}
.footer a:hover{color:var(--stud)}
.footer a:focus-visible{outline-color:var(--stud)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1.3fr 1fr;gap:48px}
.footer-brand{display:inline-block;font:800 30px/1.1 var(--display);letter-spacing:-.02em;text-decoration:none;overflow-wrap:anywhere}
.footer p{max-width:38ch;margin:14px 0 0;font-size:15.5px;line-height:1.55;color:color-mix(in srgb,var(--paper) 72%,transparent)}
.footer h3{margin:0 0 14px;font:700 15px/1.3 var(--display);color:var(--stud)}
.footer-grid a:not(.footer-brand){display:block;margin:0 0 9px;font:500 15px/1.35 var(--display);text-decoration:none;color:color-mix(in srgb,var(--paper) 88%,transparent);overflow-wrap:anywhere}
.footer-grid a:not(.footer-brand):hover{text-decoration:underline}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:44px;padding-top:18px;border-top:1px solid color-mix(in srgb,var(--paper) 22%,transparent);
  font:500 13.5px/1.5 var(--display);color:color-mix(in srgb,var(--paper) 68%,transparent)}
.footer-bottom a{text-decoration:none}
.footer-bottom a:hover{text-decoration:underline}

/* ---------- 404 ---------- */
main.wrap>p:first-child{margin:0;font:800 clamp(110px,22vw,240px)/.85 var(--display);letter-spacing:-.05em;color:var(--brick)}
main.wrap>h1{margin:18px 0 26px;font:800 clamp(30px,4vw,48px)/1.05 var(--display);letter-spacing:-.03em}
main.wrap>a{display:inline-block;padding:11px 20px;border:2px solid var(--ink);border-radius:var(--radius);font:700 16px/1.2 var(--display);text-decoration:none}
main.wrap>a:hover{background:var(--ink);color:var(--paper)}

/* ---------- Tablet ---------- */
@media (max-width:1000px){
  .wrap{padding:0 24px}
  .intro{grid-template-columns:1fr;gap:36px;padding:40px 0 48px}
  .intro p{max-width:56ch}
  .reader{grid-template-columns:200px minmax(0,1fr);gap:36px}
  .related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .story:first-child{display:flex;flex-direction:column-reverse;gap:22px;padding-bottom:48px}
  .story:first-child>a{order:0}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid>div:first-child{grid-column:1/-1}
}

/* ---------- Telefon ---------- */
@media (max-width:700px){
  body{font-size:17px}
  .wrap{padding:0 18px}
  .masthead{grid-template-columns:1fr;padding-top:34px;gap:16px}
  .strapline{font-size:16px}
  .navigation{display:none}
  .mobile-menu{display:block;margin-top:6px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
  .mobile-menu summary{display:flex;justify-content:space-between;align-items:center;padding:14px 4px;cursor:pointer;list-style:none;font:700 17px/1 var(--display)}
  .mobile-menu summary::-webkit-details-marker{display:none}
  .mobile-menu summary::after{content:"+";font-size:26px;font-weight:500;line-height:1;color:var(--brick)}
  .mobile-menu[open] summary::after{content:"\2212"}
  .mobile-menu nav{padding:0 0 10px}
  .mobile-menu a{display:block;padding:12px 4px;border-top:1px solid var(--line);text-decoration:none;font:600 17px/1.2 var(--display)}
  .mobile-menu a:hover{color:var(--brick)}
  .intro{padding:30px 0 40px}
  .intro .art,.article-image .art{box-shadow:5px 5px 0 var(--brick)}
  .listing{grid-template-columns:1fr;gap:52px}
  .story h2,.story:first-child h2{font-size:29px}
  .about{grid-template-columns:1fr;gap:16px;padding:26px 22px;margin-top:64px}
  .article-header{padding:34px 0 28px}
  .breadcrumb{margin-bottom:22px}
  .reader{display:block;padding-top:28px}
  .toc{position:static;max-height:none;margin-bottom:34px;padding:4px 0}
  .toc a{padding:7px 8px 7px 16px}
  .article{font-size:18.5px;line-height:1.7}
  .article-image{margin-bottom:32px}
  .article-image+p{font-size:20.5px}
  .article h2{font-size:26px;padding-left:13px;border-left-width:5px}
  .related{margin-top:72px}
  .related-grid{grid-template-columns:1fr;gap:34px}
  .footer{margin-top:88px;padding-top:44px}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .footer-bottom{flex-direction:column;gap:10px}
}

/* ---------- Ruch i druk ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .brand{animation:none}
  .story .art,.related-item .art,.toc a,.read{transition:none}
  .story:hover .art,.related-item:hover .art{transform:none}
}
@media print{
  .navigation,.mobile-menu,.toc,.related,.skip,.footer::before{display:none}
  body{background:#fff;font-size:12pt}
  .reader{display:block;border:0}
  .art{box-shadow:none!important}
  .footer{background:none;color:#000;padding:16px 0}
  .footer a,.footer p,.footer h3,.footer-bottom{color:#000}
}
