/* Breakpointy używane w tym pliku (brak build-stepu, więc bez custom media —
   to tylko mapa, żeby nowa reguła wpadła w istniejącą wartość zamiast
   wymyślać piątą zbliżoną liczbę):
   480px  — telefony, dociąga nagłówek hero jeszcze niżej
   700px  — plans-grid na realizacjach
   860px  — główny mobile breakpoint (nav, grid-3, hero-grid, .frame itd.)
   900px  — siatka .works
   1024px — tablet (grid-3 na 2 kolumny, stats) */

/* Czcionki hostowane lokalnie (fonts/) zamiast z CDN Google — brak wysyłania
   adresu IP odwiedzającego do Google przy każdym wejściu na stronę. */
/* archivo - latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/archivo-400-latin-ext.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;
}
/* archivo - latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/archivo-400-latin.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;
}
/* archivo - latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/archivo-600-latin-ext.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;
}
/* archivo - latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/archivo-600-latin.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;
}
/* archivo - latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/archivo-700-latin-ext.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;
}
/* archivo - latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(fonts/archivo-700-latin.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;
}
/* archivo-expanded (font-stretch:125% de Archivo zmienny) - latin-ext */
@font-face {
  font-family: 'Archivo Expanded';
  font-style: normal;
  font-weight: 700;
  font-stretch: 125%;
  font-display: swap;
  src: url(fonts/archivo-expanded-700-latin-ext.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;
}
/* archivo-expanded - latin */
@font-face {
  font-family: 'Archivo Expanded';
  font-style: normal;
  font-weight: 700;
  font-stretch: 125%;
  font-display: swap;
  src: url(fonts/archivo-expanded-700-latin.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;
}
/* archivo-expanded - latin-ext */
@font-face {
  font-family: 'Archivo Expanded';
  font-style: normal;
  font-weight: 800;
  font-stretch: 125%;
  font-display: swap;
  src: url(fonts/archivo-expanded-800-latin-ext.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;
}
/* archivo-expanded - latin */
@font-face {
  font-family: 'Archivo Expanded';
  font-style: normal;
  font-weight: 800;
  font-stretch: 125%;
  font-display: swap;
  src: url(fonts/archivo-expanded-800-latin.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;
}
/* jetbrains-mono - latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/jetbrains-mono-400-latin-ext.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;
}
/* jetbrains-mono - latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/jetbrains-mono-400-latin.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;
}
/* jetbrains-mono - latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/jetbrains-mono-500-latin-ext.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;
}
/* jetbrains-mono - latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/jetbrains-mono-500-latin.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{
  --ink:#121212;
  --paper:#ffffff;
  --off:#f4f3f0;
  --grey:#706e65;
  --grey-light:#c9c7bd;
  --hair: 1px;
}

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;overflow-x:hidden;}
body{overflow-x:hidden;}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Archivo',sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

.mono{
  font-family:'JetBrains Mono',monospace;
  letter-spacing:.03em;
}

a{color:inherit;text-decoration:none;}

img{max-width:100%;display:block;}

/* ---------- Layout shell with blueprint margins ---------- */
.frame{
  position:relative;
  max-width:1400px;
  margin:0 auto;
  padding:0 48px;
}

.corner{
  position:fixed;
  width:14px;height:14px;
  z-index:40;
  pointer-events:none;
}
.corner::before,.corner::after{content:'';position:absolute;background:var(--ink);}
.corner::before{width:14px;height:1px;top:0;left:0;}
.corner::after{width:1px;height:14px;top:0;left:0;}
.corner.tl{top:16px;left:16px;}
.corner.tr{top:16px;right:16px;transform:scaleX(-1);}
.corner.bl{bottom:16px;left:16px;transform:scaleY(-1);}
.corner.br{bottom:16px;right:16px;transform:scale(-1,-1);}

/* ---------- Header ---------- */
header{
  position:sticky;top:0;
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(6px);
  backdrop-filter:blur(6px);
  border-bottom:var(--hair) solid var(--ink);
  z-index:55;
}
.nav{
  max-width:1400px;margin:0 auto;
  padding:22px 48px;
  display:flex;align-items:center;justify-content:space-between;
}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.brand-mark{height:80px;width:auto;display:block;}
.brand-text{
  display:flex;flex-direction:column;justify-content:center;
  line-height:1.3;
}
.brand-title{
  font-family:'Archivo Expanded',sans-serif;font-weight:800;
  font-size:16px;letter-spacing:.14em;
}
.brand-sub{
  font-family:'JetBrains Mono',monospace;
  font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--grey);margin-top:2px;
}

.navlinks{display:flex;gap:36px;}
.navlinks a{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  position:relative;padding-bottom:4px;
}
.navlinks a::after{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--ink);
  transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
.navlinks a:hover::after,.navlinks a.active::after{transform:scaleX(1);}
.navlinks a.active{font-weight:500;}

/* ---------- Mobile navigation ---------- */
.navtoggle{
  display:none;
  flex-direction:column;justify-content:center;align-items:flex-end;
  gap:6px;width:44px;height:44px;
  background:none;border:none;cursor:pointer;padding:0;
  z-index:60;position:relative;
}
.navtoggle span{
  display:block;width:26px;height:1px;background:var(--ink);
  transition:transform .25s ease, opacity .2s ease, width .25s ease;
}
.navtoggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);width:26px;}
.navtoggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.navtoggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);width:26px;}

.mobile-menu{
  position:fixed;inset:0;
  background:var(--paper);
  z-index:50;
  display:flex;
  flex-direction:column;
  padding:110px 32px 40px;
  overflow-y:auto;
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}
.mobile-menu.open{opacity:1;visibility:visible;transform:translateY(0);}
.mobile-menu a{
  font-family:'JetBrains Mono',monospace;
  font-size:20px;letter-spacing:.05em;text-transform:uppercase;
  padding:24px 0;
  border-bottom:var(--hair) solid var(--grey-light);
}
.mobile-menu a.active{font-weight:500;}

@media(min-width:861px){
  .navtoggle{display:none !important;}
  .mobile-menu{display:none !important;}
}

/* ---------- Eyebrow / labels ---------- */
.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:12px;letter-spacing:.03em;
  color:var(--grey);
  display:flex;align-items:center;gap:10px;
  margin-bottom:18px;
}
.eyebrow::before{content:'';width:22px;height:1px;background:var(--grey);}

/* ---------- Splash (big centered logo, first thing seen) ---------- */
.splash{
  position:relative;
  min-height:calc(100vh - 80px);
  display:flex;align-items:center;justify-content:center;
  border-bottom:var(--hair) solid var(--ink);
  padding:70px 90px;
  background:
    linear-gradient(var(--off) 1px, transparent 1px) 0 0/44px 44px,
    linear-gradient(90deg, var(--off) 1px, transparent 1px) 0 0/44px 44px,
    var(--paper);
  overflow:hidden;
}

/* rotated sheet labels along the left/right margins, like a drawing sheet */
.splash-edge{
  position:absolute;top:50%;
  transform:translateY(-50%) rotate(-90deg);
  font-family:'JetBrains Mono',monospace;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);
  white-space:nowrap;
}
.splash-edge.left{left:-72px;}
.splash-edge.right{right:-84px;}

/* corner ticks top/bottom of the whole splash, echoing the page corner marks */
.splash-tick{position:absolute;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--grey);letter-spacing:.08em;text-transform:uppercase;}
.splash-tick.tl{top:34px;left:34px;}
.splash-tick.tr{top:34px;right:34px;}
.splash-tick.bl{bottom:34px;left:34px;}
.splash-tick.br{bottom:34px;right:34px;}

/* the bordered plate holding the logo */
.splash-plate{
  position:relative;
  z-index:2;
  background:var(--paper);
  border:var(--hair) solid var(--ink);
  padding:64px 90px 46px;
  display:flex;flex-direction:column;align-items:center;gap:24px;
  text-align:center;
}
.plate-corner{position:absolute;width:12px;height:12px;}
.plate-corner::before{content:'';position:absolute;background:var(--ink);width:12px;height:1px;}
.plate-corner::after{content:'';position:absolute;background:var(--ink);width:1px;height:12px;}
.plate-corner.tl{top:-1px;left:-1px;}
.plate-corner.tr{top:-1px;right:-1px;}
.plate-corner.tr::before{right:0;}
.plate-corner.tr::after{right:0;}
.plate-corner.bl{bottom:-1px;left:-1px;}
.plate-corner.bl::before{bottom:0;}
.plate-corner.bl::after{bottom:0;}
.plate-corner.br{bottom:-1px;right:-1px;}
.plate-corner.br::before{bottom:0;right:0;}
.plate-corner.br::after{bottom:0;right:0;}

.splash-plate .plate-label{
  position:absolute;top:-11px;left:24px;
  background:var(--paper);padding:0 10px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);
}
.splash-plate .plate-scale{
  position:absolute;bottom:-11px;right:24px;
  background:var(--paper);padding:0 10px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);
}

.splash-plate .eyebrow{margin-bottom:0;justify-content:center;}
.splash-plate .eyebrow::before{display:none;}

@media(max-width:860px){
  .splash{min-height:calc(100vh - 70px);padding:32px;}
  .splash-plate{padding:44px 30px 34px;}
  .splash-edge{display:none;}
}

/* ---------- Hero ---------- */
.hero{
  border-bottom:var(--hair) solid var(--ink);
  padding:120px 0 90px;
  position:relative;
}
.hero-grid{
  display:grid;grid-template-columns:1fr 340px;gap:60px;align-items:end;
}
.hero-grid > div{min-width:0;container-type:inline-size;}
.hero h1{
  font-family:'Archivo Expanded',sans-serif;
  font-weight:800;
  font-size:clamp(40px,6vw,84px); /* fallback for browsers without container query units (cqw) */
  font-size:clamp(24px,7.5cqw,84px);
  line-height:0.98;
  letter-spacing:-.01em;
  text-transform:uppercase;
  overflow-wrap:break-word;
}
.hero h1 em{font-style:normal;letter-spacing:.05em;color:var(--ink);}
@supports (-webkit-text-stroke:1px black) or (text-stroke:1px black){
  .hero h1 em{-webkit-text-stroke:.012em var(--ink);color:var(--paper);}
}
.hero-meta{
  font-family:'JetBrains Mono',monospace;
  font-size:13px;color:var(--grey);
  border-left:var(--hair) solid var(--ink);
  padding-left:20px;
  line-height:1.8;
}
.hero-meta span{color:var(--ink);}

/* blueprint coordinate strip */
.coords{
  display:flex;justify-content:space-between;
  font-family:'JetBrains Mono',monospace;
  font-size:12px;color:var(--grey);
  padding:14px 0;
  border-bottom:var(--hair) solid var(--ink);
  letter-spacing:.04em;
}

/* ---------- Section scaffolding ---------- */
section{padding:100px 0;border-bottom:var(--hair) solid var(--ink);}
section:last-of-type{border-bottom:none;}
section.splash:last-of-type{border-bottom:var(--hair) solid var(--ink);}
.section-head{
  display:grid;grid-template-columns:220px 1fr;gap:40px;
  margin-bottom:56px;
}
.section-num{
  font-family:'JetBrains Mono',monospace;font-size:13px;color:var(--grey);
}
h2{
  font-family:'Archivo Expanded',sans-serif;
  font-weight:800;
  font-size:clamp(30px,4vw,52px);
  text-transform:uppercase;
  line-height:1.02;
  letter-spacing:-.01em;
}
.lede{
  font-size:19px;line-height:1.6;max-width:640px;color:#333;
}
.lede + .lede{margin-top:16px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'JetBrains Mono',monospace;
  font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  padding:16px 26px;
  border:var(--hair) solid var(--ink);
  transition:background .2s ease,color .2s ease,transform 120ms ease-out;
}
.btn:hover{background:var(--ink);color:var(--paper);}
.btn:active{transform:scale(.97);}
.btn.ghost{border-color:var(--grey-light);color:var(--grey);}
.btn.ghost:hover{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.btn-arrow{transition:transform .2s ease;}
.btn:hover .btn-arrow{transform:translateX(3px);}

/* ---------- Grid of items (services / values) ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);}
.contact-cards{grid-template-columns:repeat(2,1fr);}
.contact-cards .cell p{margin-bottom:6px;}
.contact-value{font-size:19px;font-family:'JetBrains Mono',monospace;}
/* each cell draws its own full hairline border and collapses it against its
   neighbour via negative margin, so a hover transform never breaks a shared edge */
.grid-3 .cell{background:var(--paper);padding:38px 32px;border:var(--hair) solid var(--ink);margin:-1px 0 0 -1px;transition:transform 200ms ease,box-shadow 200ms ease,background-color 200ms ease;}
@media(hover:hover) and (pointer:fine){
  .grid-3 .cell:hover{position:relative;z-index:2;transform:translateY(-6px);background-color:var(--off);box-shadow:0 12px 28px rgba(0,0,0,.12);}
}
@media(prefers-reduced-motion:reduce){
  .grid-3 .cell:hover{transform:none;}
}
.cell .idx{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--grey);display:block;margin-bottom:22px;}
.cell h3{font-family:'Archivo Expanded',sans-serif;font-weight:700;font-size:19px;text-transform:uppercase;margin-bottom:12px;letter-spacing:.01em;}
.cell p{color:#444;font-size:15px;}
.cell .role{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--grey);text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:12px;}

/* Grid variant that centers a leftover (not evenly divisible) last row,
   instead of leaving it flush-left with empty space on the right. Each
   cell draws its own full hairline border and collapses it against its
   neighbour via negative margin, so it works regardless of row fullness. */
.services-grid{display:flex;flex-wrap:wrap;justify-content:center;border:none;}
.services-grid .cell{flex:0 0 33.3333%;max-width:33.3333%;box-sizing:border-box;border:var(--hair) solid var(--ink);margin:-1px 0 0 -1px;}
@media(max-width:1024px) and (min-width:861px){
  .services-grid .cell{flex-basis:50%;max-width:50%;}
}
@media(max-width:860px){
  .services-grid .cell{flex-basis:100%;max-width:100%;margin:-1px 0 0 0;}
}

/* ---------- Featured founder card (single-person team) ---------- */
.founder-card{
  display:grid;grid-template-columns:minmax(280px,380px) 1fr;
  border:var(--hair) solid var(--ink);margin-top:40px;min-height:520px;
}
.founder-photo{
  display:block;width:100%;height:100%;min-height:420px;
  object-fit:cover;object-position:top center;
  border-right:var(--hair) solid var(--ink);
}
.founder-info{display:flex;flex-direction:column;justify-content:center;padding:48px 56px;}
.founder-info > .cell:first-child{padding-bottom:26px;border-bottom:var(--hair) solid var(--grey-light);}
.founder-info > .cell:last-child{padding-top:26px;}
.founder-card .idx{margin-bottom:20px;}
.founder-card .title-tag{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--grey);text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:10px;}
.founder-card h3{font-size:clamp(28px,3.2vw,40px);margin-bottom:10px;}
.founder-card .role{margin-bottom:0;}
.founder-card p{max-width:56ch;font-size:17px;line-height:1.65;}

/* ---------- Portfolio ---------- */
.works{display:grid;grid-template-columns:repeat(2,1fr);border-top:var(--hair) solid var(--ink);border-left:var(--hair) solid var(--ink);}
.work{background:var(--paper);border-right:var(--hair) solid var(--ink);border-bottom:var(--hair) solid var(--ink);}
.work-visual{
  aspect-ratio:4/3;
  background:
    linear-gradient(var(--off) 1px, transparent 1px) 0 0/20px 20px,
    linear-gradient(90deg, var(--off) 1px, transparent 1px) 0 0/20px 20px,
    var(--paper);
  position:relative;overflow:hidden;
}
.work-visual svg{position:absolute;inset:0;width:100%;height:100%;}
.work-visual img{width:100%;height:100%;object-fit:cover;display:block;}
.work-info{padding:26px 30px 34px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;}
.work-info h3{font-family:'Archivo Expanded',sans-serif;font-weight:700;font-size:18px;text-transform:uppercase;margin-bottom:6px;}
.work-info .meta{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--grey);text-transform:uppercase;letter-spacing:.04em;}
.work-info .tag{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--grey);white-space:nowrap;border:var(--hair) solid var(--grey-light);padding:6px 10px;text-transform:uppercase;}
a.work{transition:background .2s ease,transform 120ms ease-out;}
a.work:active{transform:scale(.98);}
a.work:hover{background:var(--off);}
a.work:hover .work-info h3{text-decoration:underline;}
@media(prefers-reduced-motion:reduce){
  .btn:active,a.work:active{transform:none;}
}
.works.works-triple{grid-template-columns:repeat(3,1fr);gap:16px;border:none;}
.works.works-triple .work{border:var(--hair) solid var(--ink);}

@media(min-width:901px){
  .works.works-triple.works-double{grid-template-columns:repeat(2,1fr);}
}

@media(max-width:900px){
  .works{grid-template-columns:1fr;}
  .works.works-triple{grid-template-columns:1fr;}
}

/* ---------- Stats ---------- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
.stat b{font-family:'Archivo Expanded',sans-serif;font-size:clamp(34px,4vw,54px);display:block;font-weight:800;}
.stat span{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--grey);text-transform:uppercase;letter-spacing:.06em;}

/* ---------- Tablet ---------- */
@media(max-width:1024px) and (min-width:861px){
  .grid-3{grid-template-columns:repeat(2,1fr);}
  .stats{grid-template-columns:repeat(2,1fr);}
}

/* ---------- Team / about ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start;}

.list-plain{list-style:none;}
.list-plain li{
  display:flex;justify-content:space-between;gap:20px;
  padding:18px 0;border-bottom:var(--hair) solid var(--grey-light);
  font-family:'JetBrains Mono',monospace;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--grey);
}
.list-plain li span{color:var(--ink);font-family:'Archivo',sans-serif;text-transform:none;letter-spacing:0;font-size:15px;}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;}
.booking-fields{gap:24px 32px;margin-bottom:26px;}
.field{margin-bottom:26px;}
.field label{
  display:block;font-family:'JetBrains Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--grey);margin-bottom:10px;
}
.field input,.field textarea,.field select{
  width:100%;
  border:none;border-bottom:var(--hair) solid var(--ink);
  background:transparent;
  font-family:'Archivo',sans-serif;font-size:16px;
  padding:10px 0;
  color:var(--ink);
  border-radius:0;
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
}
.field select{
  cursor:pointer;
  padding-right:28px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23121212' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 2px center;
  background-size:11px 7px;
}
.field select:invalid{color:var(--grey);}
.field select option{color:var(--ink);background:var(--paper);}
.field select option:disabled{color:var(--grey);}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-bottom:2px solid var(--ink);
}
.field textarea{resize:vertical;min-height:110px;}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.btn:disabled:hover{background:transparent;color:var(--ink);}

.info-block .eyebrow{margin-bottom:10px;font-size:12px;}
.info-block p{font-size:17px;}

/* ---------- Footer ---------- */
footer{padding:60px 0 40px;}
.footer-grid{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;}
.footer-mono{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--grey);letter-spacing:.04em;}
.footer-links{display:flex;gap:26px;flex-wrap:wrap;}
.footer-links a{font-family:'JetBrains Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--grey);}
.footer-links a:hover{color:var(--ink);}
.footer-social{display:flex;gap:18px;align-items:center;}
.footer-social a{display:inline-flex;color:var(--grey);transition:color .2s ease;}
.footer-social a:hover{color:var(--ink);}
.footer-social svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}

/* ---------- Error pages (404/500) ---------- */
.error-code{
  font-family:'Archivo Expanded',sans-serif;
  font-weight:800;
  font-size:clamp(72px,16vw,180px);
  line-height:0.9;
  letter-spacing:-.01em;
}
.error-actions{
  display:flex;gap:16px;flex-wrap:wrap;justify-content:center;
  margin-top:28px;
}
.error-links{justify-content:center;margin-top:44px;}

/* ---------- Legal document readability aids (privacy policy) ---------- */
.policy-summary{border:var(--hair) solid var(--ink);padding:32px 36px;margin-top:36px;}
.policy-summary .eyebrow{margin-bottom:16px;}
.policy-summary ul{list-style:none;display:flex;flex-direction:column;gap:12px;}
.policy-summary li{padding-left:22px;position:relative;font-size:15px;color:#333;line-height:1.5;}
.policy-summary li::before{content:'—';position:absolute;left:0;color:var(--grey);}

.policy-toc{display:grid;grid-template-columns:1fr 1fr;gap:2px 40px;margin-top:22px;}
.policy-toc a{
  display:flex;align-items:baseline;gap:12px;
  padding:12px 0;border-bottom:var(--hair) solid var(--grey-light);
  font-family:'Archivo',sans-serif;font-size:15px;color:var(--ink);
}
.policy-toc a:hover{color:var(--grey);}
.policy-toc a .mono{color:var(--grey);font-size:12px;min-width:22px;flex-shrink:0;}

/* ---------- Skip link ---------- */
.skip-link{
  position:absolute;
  top:-60px;left:16px;
  z-index:100;
  background:var(--ink);color:var(--paper);
  font-family:'JetBrains Mono',monospace;
  font-size:13px;letter-spacing:.05em;text-transform:uppercase;
  padding:12px 20px;
  transition:top .2s ease;
}
.skip-link:focus{
  top:16px;
}

/* ---------- Focus visibility ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--ink);outline-offset:3px;
}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:translateY(0);}

@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
  .mobile-menu{transition:opacity .2s ease;transform:none;}
}

/* ---------- Responsive ---------- */
@media(max-width:860px){
  .frame{padding:0 22px;}
  .nav{padding:18px 22px;}
  .navlinks{display:none;}
  .navtoggle{display:flex;}
  .brand-mark{height:56px;}
  .hero{padding:80px 0 60px;}
  .hero-grid{grid-template-columns:1fr;gap:30px;}
  .hero-meta{border-left:none;border-top:var(--hair) solid var(--ink);padding-left:0;padding-top:16px;}
  .section-head{grid-template-columns:1fr;gap:16px;}
  .grid-3{grid-template-columns:1fr;}
  .grid-3 .cell{margin:-1px 0 0 0;}
  .policy-toc{grid-template-columns:1fr;}
  .policy-summary{padding:24px 22px;}
  .founder-card{grid-template-columns:1fr;min-height:0;}
  .founder-photo{min-height:0;max-height:360px;border-right:none;border-bottom:var(--hair) solid var(--ink);}
  .founder-info{padding:28px 24px;}
  .stats{grid-template-columns:repeat(2,1fr);row-gap:30px;}
  .split{grid-template-columns:1fr;gap:40px;}
  .contact-grid{grid-template-columns:1fr;gap:50px;}
  section{padding:64px 0;}
  .corner{display:none;}
}

@media(max-width:480px){
  .hero h1{font-size:clamp(20px,6.5vw,84px);}
}

/* ---------- Lightbox (gallery viewer with arrows) ---------- */
.lightbox-trigger{cursor:zoom-in;}
.lightbox-overlay{
  position:fixed;inset:0;z-index:200;
  background:rgba(18,18,18,.96);
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;
  transition:opacity .2s ease,visibility .2s ease;
}
.lightbox-overlay.open{opacity:1;visibility:visible;}
.lightbox-image-wrap{max-width:88vw;max-height:82vh;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.lightbox-image-wrap.zoomed{overflow:auto;display:block;cursor:grab;}
.lightbox-image{max-width:88vw;max-height:82vh;object-fit:contain;border:var(--hair) solid var(--paper);display:block;cursor:zoom-in;}
.lightbox-image-wrap.zoomed .lightbox-image{max-width:none;max-height:none;cursor:zoom-out;}
.lightbox-close,.lightbox-prev,.lightbox-next{
  position:absolute;background:none;border:none;cursor:pointer;padding:14px;
  color:var(--paper);display:flex;align-items:center;justify-content:center;
  transition:opacity .2s ease;
}
.lightbox-close svg,.lightbox-prev svg,.lightbox-next svg{
  width:26px;height:26px;fill:none;stroke:currentColor;
  stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;
}
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{opacity:.55;}
.lightbox-close{top:14px;right:14px;}
.lightbox-prev{left:6px;top:50%;transform:translateY(-50%);}
.lightbox-next{right:6px;top:50%;transform:translateY(-50%);}
.lightbox-counter{
  position:absolute;bottom:22px;left:50%;transform:translateX(-50%);
  color:var(--paper);font-size:12px;letter-spacing:.06em;
}
@media(max-width:600px){
  .lightbox-prev{left:2px;padding:10px;}
  .lightbox-next{right:2px;padding:10px;}
  .lightbox-close{top:8px;right:8px;}
  .lightbox-close svg,.lightbox-prev svg,.lightbox-next svg{width:22px;height:22px;}
}

/* ---------- Inline hero carousel ---------- */
.carousel{position:relative;overflow:hidden;}
.carousel-slide{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;opacity:0;
  transition:opacity .9s cubic-bezier(.4,0,.2,1);pointer-events:none;
}
.carousel-slide.active{opacity:1;pointer-events:auto;cursor:zoom-in;}
.carousel-prev,.carousel-next{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  background:rgba(18,18,18,.5);border:none;cursor:pointer;padding:10px;
  color:var(--paper);display:flex;align-items:center;justify-content:center;
  transition:background .2s ease;
}
.carousel-prev:hover,.carousel-next:hover{background:rgba(18,18,18,.8);}
.carousel-prev svg,.carousel-next svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.carousel-prev{left:14px;}
.carousel-next{right:14px;}
.carousel-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);z-index:2;display:flex;gap:8px;}
.carousel-dot{width:7px;height:7px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;}
.carousel-dot.active{background:var(--paper);}

/* ---------- Map embed ---------- */
.map-embed{aspect-ratio:16/9;border:var(--hair) solid var(--ink);overflow:hidden;}
.map-embed iframe{width:100%;height:100%;border:0;display:block;}
.map-cta{display:flex;justify-content:flex-start;margin-top:24px;}

/* ---------- Floor plans ---------- */
.plans-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px;}
.plan-item{border:var(--hair) solid var(--ink);padding:24px;background:var(--paper);}
.plan-item img{width:100%;height:auto;display:block;cursor:zoom-in;}
.plan-label{margin-top:16px;padding-top:16px;border-top:var(--hair) solid var(--grey-light);text-align:center;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--grey);}
@media(max-width:700px){
  .plans-grid{grid-template-columns:1fr;}
}

/* ---------- SEO: nadtytuł w H1, kafelki-linki, FAQ ---------- */
.hero h1 .eyebrow{font-weight:400;line-height:1.4;text-transform:none;}
a.cell{display:block;color:inherit;text-decoration:none;}
.cell-more{display:block;margin-top:18px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--grey);text-transform:uppercase;letter-spacing:.04em;}
.faq-item{padding:30px 0;border-bottom:var(--hair) solid var(--grey-light);}
.faq-item:first-child{border-top:var(--hair) solid var(--ink);}
.faq-item h2{font-size:clamp(18px,2.2vw,24px);line-height:1.25;margin-bottom:12px;}
.faq-item p{color:#444;font-size:16px;max-width:760px;}
.faq-item a,.lede a{text-decoration:underline;}
