/* ════════════════════════════════════════════════════════════════════════
   css/home.css — početna ispod reela (index.php)

   Reel i loader ostaju kakvi jesu (css/style.css, preloader_css.php). Sve
   ispod njih je ovdje, sa prefiksom hx-.

   Ton: svaka sekcija ima data-hx-tone (paper / ink / umber). js/home.js
   postavlja ton sekcije sa sredine ekrana na <body>, a --hx-bg / --hx-fg /
   --hx-accent su registrovane (@property), pa se pozadina i tekst pretapaju
   umjesto da skaču. Footer ima svoju svijetlu podlogu i ne zavisi od tona.
   ════════════════════════════════════════════════════════════════════════ */

/* Cormorant crta kvačicu 260 jedinica visoku (slovo c je 400), pa u krupnom
   slovu pluta iznad č/š/ž. fonts/vp-kvacica-*.woff su samo tih šest slova
   (č š ž Č Š Ž) iz Google-ovog statičnog Cormorant Garamond TTF-a, sa
   kvačicom skraćenom na 56 % i spuštenom na 42 jedinice iznad slova
   (fontTools; kurziv prati nagib). unicode-range ih veže samo za ta slova,
   sve ostalo ostaje Cormorant sa Google Fonts. */
@font-face { font-family: 'VP Kvacica'; src: url('../fonts/vp-kvacica-300.woff') format('woff'); font-weight: 300; font-style: normal; font-display: swap; unicode-range: U+010C-010D, U+0160-0161, U+017D-017E; }
@font-face { font-family: 'VP Kvacica'; src: url('../fonts/vp-kvacica-400.woff') format('woff'); font-weight: 400 500; font-style: normal; font-display: swap; unicode-range: U+010C-010D, U+0160-0161, U+017D-017E; }
@font-face { font-family: 'VP Kvacica'; src: url('../fonts/vp-kvacica-300i.woff') format('woff'); font-weight: 300; font-style: italic; font-display: swap; unicode-range: U+010C-010D, U+0160-0161, U+017D-017E; }
@font-face { font-family: 'VP Kvacica'; src: url('../fonts/vp-kvacica-400i.woff') format('woff'); font-weight: 400 500; font-style: italic; font-display: swap; unicode-range: U+010C-010D, U+0160-0161, U+017D-017E; }

@property --hx-bg     { syntax: '<color>'; inherits: true; initial-value: #0d0c0b; }
@property --hx-fg     { syntax: '<color>'; inherits: true; initial-value: #efe8dc; }
@property --hx-accent { syntax: '<color>'; inherits: true; initial-value: #d7b584; }

/* overflow-x: hidden na html/body (kritični CSS) pravi od body-ja kontejner
   za skrol i ubija position: sticky. clip seče isto, a ne pravi kontejner. */
html.hx-html,
html.hx-html body { overflow-x: clip; }

body.hx-body {
  --hx-bg: #0d0c0b;
  --hx-fg: #efe8dc;
  --hx-accent: #d7b584;
  --hx-serif: 'VP Kvacica', 'Cormorant Garamond', 'Cormorant Fallback', Georgia, 'Times New Roman', serif;
  --hx-sans: 'Inter', 'Inter Fallback', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --hx-ease: cubic-bezier(.16, 1, .3, 1);
  --hx-ease-io: cubic-bezier(.76, 0, .24, 1);
  --hx-gut: clamp(20px, 5vw, 80px);
  --hx-dim: color-mix(in srgb, var(--hx-fg) 66%, transparent);
  --hx-faint: color-mix(in srgb, var(--hx-fg) 42%, transparent);
  --hx-line: color-mix(in srgb, var(--hx-fg) 15%, transparent);
  background-color: var(--hx-bg);
}
body.hx-body[data-hx-tone="paper"] { --hx-bg: #f1ece3; --hx-fg: #16120e; --hx-accent: #8b6f47; }
body.hx-body[data-hx-tone="umber"] { --hx-bg: #1a130f; --hx-fg: #f2e7d7; --hx-accent: #dcb07c; }

/* Ton po sekciji: svaka sekcija nosi svoje boje i svoju podlogu preko cijele
   širine. Ton tijela (js/home.js) sada služi samo zaglavlju i mijenja se bez
   prelaza. Ranije su se --hx-bg/--hx-fg pretapali na <body>, a kako ih
   nasljeđuje svaki element, cijela stranica (~1.100 elemenata) se
   preračunavala u svakom kadru prelaza: na sporijem procesoru to je bilo
   glavno trzanje. Na početnoj su sve sekcije tamne (ink), bez preliva
   između njih; paper i umber ostaju za eventualne svijetle sekcije. */
.hx[data-hx-tone="paper"] { --hx-bg: #f1ece3; --hx-fg: #16120e; --hx-accent: #8b6f47; }
.hx[data-hx-tone="ink"]   { --hx-bg: #0d0c0b; --hx-fg: #efe8dc; --hx-accent: #d7b584; }
.hx[data-hx-tone="umber"] { --hx-bg: #1a130f; --hx-fg: #f2e7d7; --hx-accent: #dcb07c; }
.hx[data-hx-tone] {
  --hx-dim: color-mix(in srgb, var(--hx-fg) 66%, transparent);
  --hx-faint: color-mix(in srgb, var(--hx-fg) 42%, transparent);
  --hx-line: color-mix(in srgb, var(--hx-fg) 15%, transparent);
  background-color: var(--hx-bg);
  color: var(--hx-fg);
}
/* Uvod studija i blog imaju toplu, braonkastu osnovu ispod svog sjaja
   (kao stranica projekta). Opšte pravilo iznad bi je pregazilo neutralnom
   tamnom, pa se ovdje vraća izričito. */
.hx.hx-intro, .hx.hx-jr { background-color: #0e0b09; }
/* „Sve o parceli” je u okviru sajta (ne preko cijele širine), pa njegova
   topla podloga sa braon sjajem ide u sloj ispod koji se proteže od ivice
   do ivice ekrana. */
.hx.hx-parcel { background-color: transparent; isolation: isolate; }
.hx-parcel::before {
  content: '';
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55vw 48% at 50% 42%, rgba(122, 78, 46, .3), rgba(122, 78, 46, 0) 72%),
    radial-gradient(ellipse 80vw 40% at 50% 100%, rgba(70, 45, 27, .26), rgba(70, 45, 27, 0) 70%),
    #0e0b09;
}
body.hx-body::before { display: none; }       /* svijetla podloga ostalih stranica */
/* Omotač sajta i <main> imaju svoju papirnu podlogu; ovdje nose ton. Omotač
   mora ostati neprovidan: iza njega čeka mobilni meni. */
body.hx-body #vpaa-shell,
body.hx-body .h2-root { background: var(--hx-bg); }
body.hx-body .h2-root { color: var(--hx-fg); }
body.hx-body .h2-shell { padding-bottom: 0; }

/* ── Plutajuće zaglavlje: staklo u boji sekcije ─────────────────────────── */
body.hx-body .h2-top.is-floating {
  background: color-mix(in srgb, var(--hx-bg) 78%, transparent) !important;
  border-bottom-color: color-mix(in srgb, var(--hx-fg) 9%, transparent) !important;
  box-shadow: none !important;
}
body.hx-body .h2-top.is-floating a,
body.hx-body .h2-top.is-floating .h2-search-btn span,
body.hx-body .h2-top.is-floating .h2-search-btn svg,
body.hx-body .h2-top.is-floating .h2-login-btn svg,
body.hx-body .h2-top.is-floating .h2-burger,
body.hx-body .h2-top.is-floating .h2-register,
body.hx-body .h2-top.is-floating .h2-lang-current {
  color: var(--hx-fg) !important;
  border-color: color-mix(in srgb, var(--hx-fg) 38%, transparent) !important;
}
body.hx-body .h2-top.is-floating .nav-svg-logo { color: color-mix(in srgb, var(--hx-fg) 82%, transparent); }
body.hx-body .h2-top.is-floating .h2-search-btn,
body.hx-body .h2-top.is-floating .h2-login-btn,
body.hx-body .h2-top.is-floating .h2-register { background: color-mix(in srgb, var(--hx-fg) 6%, transparent) !important; }
body.hx-body .h2-top.is-floating .h2-register:hover { background: var(--hx-fg) !important; color: var(--hx-bg) !important; }

/* ── Rad samo na ekranu ─────────────────────────────────────────────────
   Sekcije sa beskonačnim animacijama (zrno, lampica, prije/poslije, znak u
   traci, strelice) nose data-hx-anim; js/home.js im daje is-vis dok su na
   ekranu. Van ekrana animacije stoje i ne troše procesor ni grafičku.
   Sloj „Studija” ispod reela je nevidljiv dok ga reel pokriva: fontovi koji
   stignu poslije prvog iscrtavanja prelome njegov tekst, a Google taj skriveni
   pomak (CLS) ipak broji. */
.hx-js [data-hx-anim]:not(.is-vis),
.hx-js [data-hx-anim]:not(.is-vis) *,
.hx-js [data-hx-anim]:not(.is-vis)::before,
.hx-js [data-hx-anim]:not(.is-vis)::after,
.hx-js [data-hx-anim]:not(.is-vis) *::before,
.hx-js [data-hx-anim]:not(.is-vis) *::after { animation-play-state: paused !important; }
.hx-js .hx-open:not(.is-moving) .hx-intro,
.hx-js .hx-open:not(.is-arching) .hx-next { visibility: hidden; }

/* ── Osnova ─────────────────────────────────────────────────────────────── */
.hx { position: relative; color: var(--hx-fg); font-family: var(--hx-sans); }
.hx *, .hx *::before, .hx *::after { box-sizing: border-box; }
:where(.hx) :where(h2, h3, h4, p, ol, ul, dl, dd, figure) { margin: 0; padding: 0; }
:where(.hx) :where(ol, ul) { list-style: none; }
:where(.hx) :where(img) { display: block; max-width: 100%; }
/* :where() — pločice i kartice same biraju boju teksta. */
:where(.hx) a { color: inherit; text-decoration: none; }
.hx ::selection { background: var(--hx-accent); color: var(--hx-bg); }
.hx :focus-visible { outline: 1px solid var(--hx-accent); outline-offset: 6px; }
.hx-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.hx-sec { padding: clamp(64px, 7.5vw, 124px) 0; }
.hx-bleed { width: 100vw; margin-left: calc(50% - 50vw); }

.hx-sheet {
  display: flex;
  align-items: center;
  gap: 14px;
  font: 500 10px/1.4 var(--hx-sans);
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--hx-dim);
}
.hx-sheet b { font-weight: 500; letter-spacing: .12em; color: var(--hx-accent); }
.hx-sheet .hx-rule { flex: 1; height: 1px; background: var(--hx-line); }

.hx-h2 {
  font: 300 clamp(54px, 8.2vw, 150px)/.9 var(--hx-serif);
  letter-spacing: -.032em;
  text-wrap: balance;
}
.hx-h2 em { font-style: italic; color: var(--hx-accent); }
.hx-h2--md { font-size: clamp(44px, 5.6vw, 96px); }
.hx-copy { font: 300 clamp(15px, 1.05vw, 17px)/1.8 var(--hx-sans); color: var(--hx-dim); max-width: 34em; text-wrap: pretty; }

.hx-sec-head { display: grid; gap: clamp(22px, 2.4vw, 36px); }
.hx-sec-head--split {
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  align-items: end;
  gap: clamp(28px, 5vw, 96px);
}
.hx-sec-head--split > div { display: grid; gap: clamp(22px, 2.4vw, 36px); }
.hx-sec-head--split > .hx-copy,
.hx-sec-head--split > .hx-link { justify-self: end; }

/* Strelica, linkovi, pilule */
.hx-arrow { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; flex: none; transition: transform .6s var(--hx-ease); }
.hx-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
  font: 500 11px/1 var(--hx-sans);
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--hx-fg);
  white-space: nowrap;
}
.hx-link::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(.28);
  transform-origin: left;
  opacity: .5;
  transition: transform .8s var(--hx-ease), opacity .8s;
}
.hx-link:hover::after, .hx-link:focus-visible::after { transform: scaleX(1); opacity: 1; }
.hx-link:hover .hx-arrow { transform: translateX(5px); }

.hx-pill {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 15px 24px;
  border: 1px solid color-mix(in srgb, currentColor 40%, transparent);
  border-radius: 999px;
  font: 500 10.5px/1 var(--hx-sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background .5s var(--hx-ease), color .5s var(--hx-ease), border-color .5s;
}

/* ── Otkrivanje ─────────────────────────────────────────────────────────── */
.hx-m {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding: 0 .06em .12em;
  margin: 0 -.06em -.12em;
}
.hx-m > span {
  display: inline-block;
  transition: transform 1.15s var(--hx-ease) calc(var(--i, 0) * 60ms + var(--d, 0s));
}
.hx-js .hx-words:not(.is-in) .hx-m > span { transform: translate3d(0, 112%, 0); }

.hx-rise { transition: opacity 1s var(--hx-ease) var(--d, 0s), transform 1.25s var(--hx-ease) var(--d, 0s); }
.hx-js .hx-rise:not(.is-in) { opacity: 0; transform: translate3d(0, 42px, 0); }

/* ════════════════════════════════════════════════════════════════════════
   UVOD — reel i „Studio” u jednoj zakačenoj sceni. js/home.js daje --q
   (0 → 1 na prvih ~85 % visine ekrana skrola) i klase is-open / is-gone:
   reel se smanjuje, zaobljava i gasi na mjestu, a ispod njega tamni
   „Studio” izlazi riječ po riječ. Bez js-a (.hx-js nema) scena se ne kači.
   ════════════════════════════════════════════════════════════════════════ */
.hx-open { --q: 0; --a: 0; position: relative; background: #0d0c0b; }
.hx-open .h2-reel-wrap { margin-bottom: 0; }
/* Visina: reel se gasi (85 % ekrana), predah, luk se širi (90 %), slajd sa
   brojevima, pa kuća ulazi pod kosinom (90 %) i predah prije nego što se
   scena otkači. */
.hx-js .hx-open { height: 470vh; }
.hx-js .hx-open-pin { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: hidden; }
.hx-js .hx-open-reel {
  position: absolute;
  inset: 0;
  z-index: 3;
  overflow: hidden;
  transform: scale(calc(1 - var(--q) * .16));
  border-radius: calc(var(--q) * 34px);
  opacity: clamp(0, calc((1 - var(--q)) / .58), 1);
  box-shadow: 0 60px 120px -30px rgba(0, 0, 0, calc(var(--q) * .8));
  will-change: transform, opacity;
}
.hx-js .hx-open-reel .h2-reel-wrap {
  position: absolute;
  inset: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  border-bottom: 0;
  box-shadow: none;
}
.hx-js .hx-open-reel .h2-reel-card,
.hx-js .hx-open-reel .h2-reel-tag { opacity: clamp(0, calc(1 - var(--q) * 3.2), 1); }
.hx-js .hx-open.is-open .hx-open-reel { pointer-events: none; }
.hx-js .hx-open.is-gone .hx-open-reel { visibility: hidden; }

/* 01 · STUDIO — kao prvi slajd stranice projekta (css/project-page.css,
   .pd-hero): topao taman pod sa zrnom, slika u luku, naslov slovo po slovo —
   pun izvan luka, samo obris preko slike — i sitne oznake u uglovima. */
.hx-intro {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  background:
    radial-gradient(ellipse 46% 58% at 50% 53%, rgba(122, 78, 46, .26), rgba(122, 78, 46, 0) 70%),
    radial-gradient(ellipse 90% 80% at 50% 100%, rgba(58, 38, 24, .35), rgba(58, 38, 24, 0) 70%),
    #0e0b09;
  color: #efe7db;
}
.hx-js .hx-intro { position: absolute; inset: 0; z-index: 1; min-height: 0; }
.hx-intro::after {
  content: '';
  position: absolute;
  inset: -12%;
  z-index: 6;
  pointer-events: none;
  opacity: .07;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation: hxGrain 1.4s steps(7) infinite;
}
@keyframes hxGrain {
  0%, 100% { transform: translate3d(0, 0, 0); }
  15% { transform: translate3d(-4%, 3%, 0); }
  30% { transform: translate3d(3%, -5%, 0); }
  45% { transform: translate3d(-6%, -2%, 0); }
  60% { transform: translate3d(5%, 4%, 0); }
  75% { transform: translate3d(-2%, 6%, 0); }
  90% { transform: translate3d(6%, -3%, 0); }
}
.hx-arch {
  --aw: clamp(280px, 25vw, 520px);
  --ah: min(66vh, calc(var(--aw) * 1.9));
  --acy: 53%;
  position: absolute;
  inset: 0;
}
.hx-js .hx-arch { transform: scale(calc(1.08 - var(--q) * .08)); }

/* Slova u maski (i za „Private House”) */
.hx-crow { display: block; }
/* Donji dodatak maske je veći od silaznog poteza Cormoranta (g, j, p), da se ne odsiječe. */
.hx-cm { display: inline-block; overflow: hidden; vertical-align: top; padding: .04em .04em .24em; margin: -.04em -.04em -.24em; }
.hx-cm > span { display: inline-block; }
.hx-cm.is-em { font-style: italic; }
.hx-cs { display: inline-block; width: .22em; }
.hx-cw { display: inline-block; white-space: nowrap; }

.hx-arch-word {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(var(--acy) - 50%);
  height: 100%;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0;
  pointer-events: none;
  font: 300 min(calc(140vw / var(--len, 10)), 30vh)/.8 var(--hx-serif);
  letter-spacing: -.045em;
  white-space: nowrap;
  text-align: center;
  color: #efe7db;
  font-variant-numeric: lining-nums;
}
.hx-arch-word .hx-cm > span { transition: transform 1.5s var(--hx-ease) calc(.15s + var(--i, 0) * 32ms), opacity .35s linear calc(.15s + var(--i, 0) * 32ms); }
/* Stepenasto: prvi red lijevo, drugi u sredini, treći desno — treći tako
   izlazi iz luka umjesto da se vidi samo kao obris preko slike. */
.hx-arch-word { padding: 0 clamp(20px, 7vw, 150px); box-sizing: border-box; }
/* U punom naslovu (h2) redovi stoje u omotu za čitače ekrana; display:
   contents ih vraća u flex, da se poravnaju isto kao obris preko slike. */
.hx-arch-word > span[aria-hidden] { display: contents; }
.hx-arch-word .hx-crow:nth-child(1) { align-self: flex-start; }
.hx-arch-word .hx-crow:nth-child(3) { align-self: flex-end; }
.hx-arch-word .is-em { color: #d7b584; }
/* Slovo koje čeka je i nevidljivo, ne samo spušteno: vrh velikog slova
   (R, k, h) bi inače provirio iz maske. */
.hx-js .hx-open:not(.is-open) .hx-arch-word .hx-cm > span { transform: translate3d(0, 140%, 0); opacity: 0; transition-delay: 0s; }
.hx-arch-word--line { z-index: 3; color: transparent; -webkit-text-stroke: 1.1px rgba(244, 238, 229, .92); }
.hx-arch-word--line .is-em { color: transparent; -webkit-text-stroke-color: #d7b584; }
/* Obris u luku ulazi tek kad se luk otvori: dok je luk mala kapija odozdo,
   u njoj bi se vidjeli samo odsječeni komadi obrisa. */
.hx-js .hx-open:not(.is-arching) .hx-arch-word--line { transition: opacity .8s var(--hx-ease) 1.2s; }
.hx-js .hx-open:not(.is-open) .hx-arch-word--line { opacity: 0; transition: opacity .25s linear; }

.hx-arch-media {
  position: absolute;
  inset: 0;
  z-index: 2;
  clip-path: inset(calc(var(--acy) - var(--ah) / 2) calc(50% - var(--aw) / 2) calc(100% - var(--acy) - var(--ah) / 2) calc(50% - var(--aw) / 2) round calc(var(--aw) / 2) calc(var(--aw) / 2) 0 0);
  transition: clip-path 1.8s var(--hx-ease-io) .1s;
}
.hx-js .hx-open:not(.is-open) .hx-arch-media { clip-path: inset(100% 50% 0 50%); }
/* Nastavak skrola: luk se širi preko cijelog ekrana (--a 0 → 1), kao na
   stranici projekta. Dok se širi, prelaz sa otvaranja se gasi, da isječak
   prati skrol bez kašnjenja. */
.hx-js .hx-open.is-arching .hx-arch-media {
  clip-path: inset(calc((var(--acy) - var(--ah) / 2) * (1 - var(--a))) calc((50% - var(--aw) / 2) * (1 - var(--a))) calc((100% - var(--acy) - var(--ah) / 2) * (1 - var(--a))) calc((50% - var(--aw) / 2) * (1 - var(--a))) round calc(var(--aw) / 2 * (1 - var(--a))) calc(var(--aw) / 2 * (1 - var(--a))) 0 0);
  transition: none;
}
.hx-js .hx-open.is-arching .hx-arch-media img { transform: scale(calc(1.12 - var(--a) * .12)); transition: none; }
.hx-js .hx-open.is-arching .hx-arch-word { transform: scale(calc(1 + var(--a) * .35)); opacity: clamp(0, calc(1 - var(--a) * 1.7), 1); }
.hx-js .hx-open.is-arching .hx-arch-frame { opacity: clamp(0, calc(1 - var(--a) * 3), 1); }
.hx-js .hx-open.is-arching .hx-arch-ui { opacity: clamp(0, calc(1 - var(--a) * 2.4), 1); }
.hx-arch-dim { position: absolute; inset: 0; pointer-events: none; background: rgba(10, 7, 5, .74); opacity: 0; }
.hx-js .hx-open.is-arching .hx-arch-dim { opacity: var(--a); }
.hx-arch-media picture { position: absolute; inset: 0; }
.hx-arch-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.12);
  transform-origin: 50% var(--acy);
  transition: transform 2.6s var(--hx-ease);
}
.hx-js .hx-open:not(.is-open) .hx-arch-media img { transform: scale(1.32); }
.hx-arch-veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(to top, rgba(10, 7, 5, .58) 0%, rgba(10, 7, 5, 0) 38%),
    linear-gradient(to bottom, rgba(10, 7, 5, .35) 0%, rgba(10, 7, 5, 0) 22%);
}
/* Obris luka malo izvan slike; crta se odozdo */
.hx-arch-frame {
  position: absolute;
  left: 50%;
  top: var(--acy);
  z-index: 3;
  width: calc(var(--aw) + 30px);
  height: calc(var(--ah) + 15px);
  translate: -50% calc(-50% - 7.5px);
  border: 1px solid rgba(239, 231, 219, .3);
  border-bottom: 0;
  border-radius: calc(var(--aw) / 2 + 15px) calc(var(--aw) / 2 + 15px) 0 0;
  pointer-events: none;
  clip-path: inset(0);
  transition: clip-path 2.2s var(--hx-ease-io) .35s;
}
.hx-js .hx-open:not(.is-open) .hx-arch-frame { clip-path: inset(100% 0 0 0); }

.hx-arch-ui {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr auto;
  padding: calc(clamp(92px, 10vh, 124px) + env(safe-area-inset-top, 0px)) var(--hx-gut) calc(max(26px, 4.2vh) + env(safe-area-inset-bottom, 0px));
  font: 500 10px/1.7 var(--hx-sans);
  letter-spacing: .32em;
  text-transform: uppercase;
  color: rgba(239, 231, 219, .74);
}
.hx-arch-kicker { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 6px; }
.hx-arch-no { color: #d7b584; }
.hx-arch-place { grid-column: 2; grid-row: 1; justify-self: end; display: flex; flex-direction: column; gap: 6px; text-align: right; }
.hx-arch-foot { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 24px; }
.hx-arch-rest { font: italic 300 clamp(26px, 2.4vw, 42px)/1 var(--hx-serif); letter-spacing: -.01em; text-transform: none; color: #f4eee5; margin-bottom: 12px; }
.hx-arch-rest em { color: #d7b584; }
.hx-arch-sub { max-width: 34ch; color: rgba(239, 231, 219, .62); letter-spacing: .24em; }
.hx-arch-cue { justify-self: center; display: flex; flex-direction: column; align-items: center; gap: 14px; font-size: 9px; letter-spacing: .4em; }
.hx-arch-cue-line { position: relative; width: 1px; height: 58px; overflow: hidden; background: rgba(239, 231, 219, .18); }
.hx-arch-cue-line::after { content: ''; position: absolute; inset: 0; background: #efe7db; transform: translate3d(0, -100%, 0); animation: hxCue 2.4s var(--hx-ease-io) infinite; }
@keyframes hxCue { 50% { transform: translate3d(0, 0, 0); } 100% { transform: translate3d(0, 100%, 0); } }
.hx-arch-links { justify-self: end; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; pointer-events: auto; }
.hx-arch-links .hx-link { color: #efe7db; font-size: 10px; letter-spacing: .26em; }

/* Sljedeći slajd preko raširenog luka: opis riječ po riječ, pa brojevi */
.hx-next { position: relative; background: #0e0b09; color: #efe7db; }
.hx-js .hx-next { position: absolute; inset: 0; z-index: 7; background: none; pointer-events: none; }
.hx-js .hx-open.is-stats .hx-next { pointer-events: auto; }
.hx-next-in {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(48px, 9vh, 120px);
  max-width: 1680px;
  min-height: 100vh;
  margin: 0 auto;
  padding: calc(clamp(15px, 2vw, 22px) * 2 + 72px) var(--hx-gut) clamp(40px, 7vh, 80px);
}
.hx-js .hx-next-in { height: 100%; min-height: 0; }
.hx-next-lead { max-width: 23em; font: 300 clamp(28px, 3vw, 54px)/1.25 var(--hx-serif); letter-spacing: -.014em; }
.hx-next-lead .hx-m > span { transition: transform 1.2s var(--hx-ease) calc(var(--i, 0) * 24ms); }
.hx-js .hx-open:not(.is-stats) .hx-next-lead .hx-m > span { transform: translate3d(0, 118%, 0); transition-delay: 0s; }
.hx-next .hx-stats { border-top-color: rgba(239, 231, 219, .22); transition: border-color 1s var(--hx-ease) .45s; }
.hx-js .hx-open:not(.is-stats) .hx-next .hx-stats { border-top-color: transparent; transition-delay: 0s; }
.hx-next .hx-stat + .hx-stat { border-left-color: rgba(239, 231, 219, .22); }
.hx-next .hx-stat { transition: opacity 1s var(--hx-ease) calc(.55s + var(--d, 0s)), transform 1.2s var(--hx-ease) calc(.55s + var(--d, 0s)); }
.hx-js .hx-open:not(.is-stats) .hx-next .hx-stat { opacity: 0; transform: translate3d(0, 30px, 0); transition-delay: 0s; }
.hx-next .hx-stat-l { color: rgba(239, 231, 219, .62); }
/* Linija zone mirovanja ispod brojeva: puni se skrolom (--k), pa ulazi kuća */
.hx-next-cue {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  margin: 0;
  font: 500 10px/1.4 var(--hx-sans);
  letter-spacing: .28em;
  text-transform: uppercase;
  color: rgba(239, 231, 219, .62);
  transition: opacity 1s var(--hx-ease) 1s;
}
.hx-next-cue b { font-weight: 500; letter-spacing: .12em; color: #d7b584; margin-right: 8px; }
.hx-next-cue i { position: relative; height: 1px; background: rgba(239, 231, 219, .16); overflow: hidden; }
.hx-next-cue i::after { content: ''; position: absolute; inset: 0; background: #d7b584; box-shadow: 0 0 12px rgba(215, 181, 132, .6); transform: scaleX(var(--k, 0)); transform-origin: left; }
.hx-js .hx-open:not(.is-stats) .hx-next-cue { opacity: 0; transition-delay: 0s; }
.hx-next-cue { display: none; }
.hx-js .hx-next-cue { display: grid; }

/* Oznake u uglovima izlaze kad se reel skloni (is-open) i vraćaju se kad se vrati */
.hx-oi { transition: opacity 1.2s var(--hx-ease) var(--d, 0s), transform 1.5s var(--hx-ease) var(--d, 0s); }
.hx-js .hx-open:not(.is-open) .hx-oi { opacity: 0; transform: translate3d(0, 18px, 0); transition-delay: 0s; }

/* Brojevi (u slajdu preko raširenog luka) */
.hx-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--hx-line); }
.hx-stat { display: grid; gap: 14px; padding: 26px clamp(12px, 2vw, 32px) 0 0; }
.hx-stat + .hx-stat { padding-left: clamp(12px, 2vw, 32px); border-left: 1px solid var(--hx-line); }
.hx-stat-i { font: 500 10px/1 var(--hx-sans); letter-spacing: .2em; color: var(--hx-accent); }
.hx-stat-n { font: 300 clamp(54px, 6vw, 110px)/.85 var(--hx-serif); letter-spacing: -.04em; font-variant-numeric: lining-nums tabular-nums; }
.hx-stat-n em { font-style: italic; color: var(--hx-accent); }
.hx-stat-l { font: 500 10px/1.5 var(--hx-sans); letter-spacing: .24em; text-transform: uppercase; color: var(--hx-dim); }

/* ════════════════════════════════════════════════════════════════════════
   02 · IZABRANI RADOVI — traka koju vertikalni skrol vodi vodoravno.
   Visinu sekcije i pomak trake računa js/home.js (od 900 px naviše).
   ════════════════════════════════════════════════════════════════════════ */
.hx-works { margin-top: 0; }
.hx-works-pin {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hx-works-rail {
  display: flex;
  align-items: center;
  gap: clamp(28px, 3.4vw, 64px);
  width: max-content;
  padding: 40px var(--hx-gut) 0;
  will-change: transform;
}
.hx-works-intro {
  flex: none;
  width: clamp(320px, 34vw, 560px);
  display: grid;
  gap: clamp(22px, 2.4vw, 34px);
  padding-right: clamp(0px, 3vw, 60px);
}
.hx-hint {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font: 500 10px/1 var(--hx-sans);
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--hx-dim);
}
.hx-hint i { position: relative; width: 64px; height: 1px; background: var(--hx-line); overflow: hidden; }
.hx-hint i::after {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--hx-accent);
  transform: translateX(-100%);
  animation: hxHint 2.4s var(--hx-ease-io) infinite;
}
@keyframes hxHint { 50% { transform: translateX(0); } 100% { transform: translateX(100%); } }

.hx-works-track { display: flex; align-items: center; gap: clamp(28px, 3.4vw, 64px); }
.hx-card { flex: none; display: grid; gap: 18px; }
.hx-card:nth-child(even) { transform: translateY(5vh); }
.hx-card-img {
  position: relative;
  height: min(56vh, 660px);
  aspect-ratio: var(--ar, 4 / 5);
  overflow: hidden;
  border-radius: 4px;
  background: color-mix(in srgb, var(--hx-fg) 8%, transparent);
  /* overflow + border-radius umjesto clip-path: maska preko slike koja se
     pomjera svaki kadar tjerala je preglednik na ponovno iscrtavanje. */
  transform: translateZ(0);
}
.hx-card-img picture { position: absolute; inset: 0; }
.hx-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate3d(var(--px, 0%), 0, 0) scale(1.14);
  /* Svoj sloj: paralaksa (--px) pomjera sliku bez ponovnog iscrtavanja. */
  will-change: transform;
  backface-visibility: hidden;
  transition: transform 1.4s var(--hx-ease), filter 1s, opacity .9s var(--hx-ease);
  filter: saturate(.92) brightness(.94);
}
/* Slika se pretopi kad stigne (is-loaded iz js/home.js), umjesto da iskoči. */
.hx-js .hx-card-img img:not(.is-loaded) { opacity: 0; }

.hx-card:hover .hx-card-img img { transform: translate3d(var(--px, 0%), 0, 0) scale(1.2); filter: saturate(1.05) brightness(1); }
.hx-card-cap {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 16px;
  row-gap: 6px;
  align-items: baseline;
}
.hx-card-i { font: 500 10px/1 var(--hx-sans); letter-spacing: .16em; color: var(--hx-accent); }
.hx-card-t { font: 300 clamp(24px, 2vw, 36px)/1 var(--hx-serif); letter-spacing: -.015em; }
.hx-card-m { grid-column: 2; font: 500 9.5px/1.4 var(--hx-sans); letter-spacing: .24em; text-transform: uppercase; color: var(--hx-dim); }

.hx-card-end {
  flex: none;
  width: clamp(260px, 22vw, 380px);
  aspect-ratio: 1;
  margin: 0 clamp(20px, 6vw, 120px) 0 clamp(0px, 2vw, 40px);
  border: 1px solid var(--hx-line);
  border-radius: 50%;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 12px;
  padding: 30px;
  text-align: center;
  transition: background .7s var(--hx-ease), color .7s var(--hx-ease), border-color .7s, translate .5s var(--hx-ease);
}
.hx-card-end-n { font: 300 clamp(64px, 6vw, 110px)/.85 var(--hx-serif); letter-spacing: -.04em; }
.hx-card-end-l { font: italic 300 18px/1.2 var(--hx-serif); color: var(--hx-dim); }
.hx-card-end-c { display: inline-flex; align-items: center; gap: 10px; margin-top: 10px; font: 500 10px/1.3 var(--hx-sans); letter-spacing: .2em; text-transform: uppercase; max-width: 16em; }
.hx-card-end:hover { background: var(--hx-accent); color: var(--hx-bg); border-color: var(--hx-accent); }
.hx-card-end:hover .hx-card-end-l { color: inherit; }

.hx-works-bar {
  position: absolute;
  left: var(--hx-gut);
  right: var(--hx-gut);
  bottom: clamp(20px, 3.4vh, 40px);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 28px;
  font: 500 10px/1 var(--hx-sans);
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--hx-dim);
}
.hx-works-count b { font-weight: 500; color: var(--hx-fg); }
.hx-works-prog { height: 1px; background: var(--hx-line); overflow: hidden; }
.hx-works-prog i { display: block; height: 100%; background: var(--hx-accent); transform: scaleX(0); transform-origin: left; }

/* ════════════════════════════════════════════════════════════════════════
   02 · ISTAKNUTI PROJEKAT — posljednji sloj uvodne scene. --h (0 → 1 iz
   js/home.js): okvir .hx-house-w je nagnut (skewX) i klizi sa desna preko
   ekrana; .hx-house-in ga poništava obrnutim redom (skewX pa translateX
   nazad), pa kuća stoji pravo, a vidi se samo kosa ivica koja putuje.
   Sve su transformi — glatko i u Safariju. Kad je kuća preko cijelog
   ekrana (is-house), izlazi naslov.
   ════════════════════════════════════════════════════════════════════════ */
.hx-house { position: relative; height: 100vh; height: 100svh; overflow: hidden; background: #111; color: #f5f0e8; }
.hx-js .hx-house { position: absolute; inset: 0; z-index: 8; background: none; pointer-events: none; }
.hx-js .hx-open.is-housing .hx-house { pointer-events: auto; }
.hx-js .hx-open:not(.is-housing) .hx-house { visibility: hidden; }
.hx-house-w, .hx-house-in { position: absolute; top: -10%; bottom: -10%; left: -20%; width: 140%; }
.hx-house-in { top: 0; bottom: 0; left: 0; width: 100%; }
.hx-js .hx-house-w {
  overflow: hidden;
  transform: translate3d(calc((1 - var(--h, 0)) * 100%), 0, 0) skewX(-14deg);
  will-change: transform;
}
.hx-js .hx-house-in {
  transform: skewX(14deg) translate3d(calc((var(--h, 0) - 1) * 100%), 0, 0);
  will-change: transform;
}
/* Okvir kuće unutar nagnutog sloja: tačno ekran (sloj je 140 % × 120 %) */
.hx-house-frame { position: absolute; left: 14.2857%; width: 71.4286%; top: 8.3333%; height: 83.3333%; overflow: hidden; background: #111; }
.hx-house:not(.hx-js *) .hx-house-frame { inset: 0; width: auto; height: auto; }
/* Zlatna kosa ivica koja vodi rez */
.hx-house-edge { display: none; }
.hx-js .hx-house-edge {
  display: block;
  position: absolute;
  top: -10%;
  bottom: -10%;
  left: -20%;
  width: 140%;
  pointer-events: none;
  transform: translate3d(calc((1 - var(--h, 0)) * 100%), 0, 0) skewX(-14deg);
  will-change: transform;
  opacity: clamp(0, calc((1 - var(--h, 0)) * 6), 1);
}
.hx-js .hx-house-edge::before { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 2px; margin-left: -1px; background: #d7b584; box-shadow: 0 0 24px 2px rgba(215, 181, 132, .55); }

/* Poravnato po donjoj ivici: vidi se cijela kuća do tla, a odsijeca se nebo. */
.hx-film-poster, .hx-film-poster picture, .hx-film-poster img,
.hx-house-frame .hx-film-vid {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 100%;
}
.hx-film-poster img,
.hx-house-frame .hx-film-vid { transform: scale(calc(1.18 - var(--h, 1) * .18)); transform-origin: 50% 100%; will-change: transform; }
.hx-house-frame .hx-film-vid { z-index: 1; }
.hx-house-veil {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(8, 7, 6, .4) 0%, transparent 26%, transparent 48%, rgba(8, 7, 6, .82) 100%);
}
.hx-house-side {
  position: absolute;
  z-index: 3;
  top: clamp(96px, 13vh, 132px);
  left: var(--hx-gut);
  margin: 0;
  font: 500 10px/1.4 var(--hx-sans);
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(239, 231, 219, .8);
}
.hx-house-side b { font-weight: 500; letter-spacing: .12em; color: #d7b584; margin-right: 10px; }
.hx-film-link {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  padding: 0 var(--hx-gut) clamp(34px, 6vh, 64px);
  color: #f5f0e8;
  z-index: 4;
}
.hx-film-copy { display: grid; gap: 16px; }
.hx-film-eye,
.hx-film-sub {
  font: 500 10px/1.3 var(--hx-sans);
  letter-spacing: .32em;
  text-transform: uppercase;
  color: #d7b584;
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition: opacity .9s var(--hx-ease), transform 1s var(--hx-ease);
}
.hx-film-sub { color: rgba(245, 240, 232, .7); transition-delay: .25s; }
.hx-film-title {
  font: 300 clamp(64px, 11.5vw, 220px)/.86 var(--hx-serif);
  letter-spacing: -.04em;
}
.hx-film-title .is-em { color: #d7b584; }
.hx-film-title .hx-cm > span { transition: transform 1.3s var(--hx-ease) calc(var(--i, 0) * 45ms); }
.hx-js .hx-film-title:not(.is-in) .hx-cm > span { transform: translate3d(0, 140%, 0); }
.hx-house .hx-pill { color: #f5f0e8; opacity: 0; transition: opacity .9s var(--hx-ease) .35s, background .5s, color .5s; }
.hx-film-link:hover .hx-pill { background: #f5f0e8; color: #0d0c0b; border-color: #f5f0e8; }
.hx-open.is-house .hx-film-eye,
.hx-open.is-house .hx-film-sub,
.hx-open.is-house .hx-pill,
.hx-house:not(.hx-js *) :is(.hx-film-eye, .hx-film-sub, .hx-pill) { opacity: 1; transform: none; }
.hx-house-frame .hx-film-zoom { top: clamp(84px, 13vh, 120px); right: var(--hx-gut); z-index: 5; opacity: 0; transition: opacity .6s, transform .4s var(--hx-ease), background .4s; }
.hx-open.is-house .hx-film-zoom, .hx-house:not(.hx-js *) .hx-film-zoom { opacity: 1; }

/* ════════════════════════════════════════════════════════════════════════
   05 · PRAVILA I PARCELE — tamna kartica „Analiza parcele” (mreža iz
   zakoni/pravila_hero.js, stavke koje analiza daje pale se redom) i spisak
   svih podstranica portala sa pretragom na vrhu.
   ════════════════════════════════════════════════════════════════════════ */
.hx-parcel-head { margin-top: clamp(28px, 3vw, 48px); }
.hx-parcel-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(16px, 2.4vw, 40px);
  margin-top: clamp(44px, 5vw, 80px);
  align-items: stretch;
}
.hx-pcard {
  --mx: 50%;
  --my: 50%;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: clamp(26px, 2.8vw, 44px);
  border-radius: 22px;
  background:
    radial-gradient(70% 60% at 90% 0%, rgba(215, 181, 132, .2), transparent 70%),
    radial-gradient(60% 50% at 0% 100%, rgba(176, 79, 53, .12), transparent 70%),
    linear-gradient(160deg, #1d1712 0%, #120e0b 100%);
  color: #f1e8da;
  transition: transform .8s var(--hx-ease), box-shadow .8s var(--hx-ease);
}
.hx-pcard:hover { transform: translateY(-4px); box-shadow: 0 40px 80px -40px rgba(20, 12, 4, .6); }
.hx-pcard .hx-tile-k { color: #d7b584; opacity: 1; }
.hx-pcard-t { position: relative; z-index: 2; font: 300 clamp(40px, 4vw, 72px)/.92 var(--hx-serif); letter-spacing: -.03em; }
.hx-pcard-t em { font-style: italic; color: #d7b584; }
.hx-pcard-d { position: relative; z-index: 2; font: 300 14.5px/1.7 var(--hx-sans); color: rgba(241, 232, 218, .72); max-width: 32em; }
.hx-pfield {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 12px;
  background: rgba(241, 232, 218, .06);
  border: 1px solid rgba(215, 181, 132, .3);
  font: 300 14px/1.3 var(--hx-sans);
  color: rgba(241, 232, 218, .55);
}
.hx-pfield svg { width: 18px; height: 18px; flex: none; fill: none; stroke: #d7b584; stroke-width: 1.6; stroke-linejoin: round; }
.hx-pfield .hx-ask-c { background: #d7b584; margin-left: -8px; }
.hx-pchips { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 8px; }
.hx-pchips span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(241, 232, 218, .16);
  font: 500 9.5px/1 var(--hx-sans);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(241, 232, 218, .45);
  transition: color .6s, border-color .6s, background .6s;
  transition-delay: calc(.5s + var(--k) * .14s);
}
.hx-pchips span::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: .5; transition: background .6s, opacity .6s; transition-delay: inherit; }
.hx-pcard.is-in .hx-pchips span, .hx-tile--calc.is-in .hx-pchips span { color: #f1e8da; border-color: rgba(215, 181, 132, .5); background: rgba(215, 181, 132, .08); }
.hx-pcard.is-in .hx-pchips span::before, .hx-tile--calc.is-in .hx-pchips span::before { background: #d7b584; opacity: 1; }
.hx-pcard .hx-pill--solid { background: #d7b584; color: #14100d; border-color: #d7b584; }
.hx-pcard:hover .hx-pill--solid { background: #f1e8da; border-color: #f1e8da; }

.hx-plist { display: flex; flex-direction: column; min-width: 0; }
.hx-psearch { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.hx-psearch .hx-ask { margin: 0; }
.hx-psearch .hx-ask-t { min-height: 0; white-space: nowrap; overflow: hidden; }
.hx-psearch-go {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--hx-fg);
  color: var(--hx-bg);
  transition: transform .8s var(--hx-ease);
}
.hx-psearch:hover .hx-psearch-go { transform: rotate(-45deg); }
/* Na tamnoj podlozi: kartica dobija ivicu, polje pretrage je tamno staklo */
.hx-pcard { border: 1px solid rgba(215, 181, 132, .2); }
.hx-psearch .hx-ask { background: rgba(239, 231, 219, .05); border-color: rgba(215, 181, 132, .3); box-shadow: none; color: #efe7db; }
.hx-psearch .hx-ask svg { stroke: #d7b584; }
.hx-psearch .hx-ask-c { background: #d7b584; }
.hx-psearch:hover .hx-ask { border-color: rgba(215, 181, 132, .55); }
.hx-pitems { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(20px, 2.6vw, 44px); margin-top: 10px; flex: 1; }
.hx-pitems li { display: flex; }
.hx-pitems a {
  position: relative;
  flex: 1;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr) 22px;
  align-content: center;
  gap: 8px 12px;
  padding: 20px 0;
  border-bottom: 1px solid var(--hx-line);
}
.hx-pitems a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--hx-fg); transform: scaleX(0); transform-origin: left; transition: transform .9s var(--hx-ease); }
.hx-pitems a:hover::after, .hx-pitems a:focus-visible::after { transform: scaleX(1); }
.hx-pi-n { grid-column: 1; grid-row: 1; padding-top: .5em; font: 500 10px/1 var(--hx-sans); letter-spacing: .14em; color: var(--hx-accent); }
.hx-pi-t { grid-column: 2; grid-row: 1; font: 300 clamp(22px, 1.8vw, 30px)/1.1 var(--hx-serif); letter-spacing: -.012em; transition: transform .8s var(--hx-ease), color .5s; }
.hx-pi-d { grid-column: 2; grid-row: 2; font: 300 13px/1.6 var(--hx-sans); color: var(--hx-dim); }
.hx-pi-go { grid-column: 3; grid-row: 1 / span 2; align-self: center; opacity: .4; transition: opacity .5s, transform .8s var(--hx-ease); }
.hx-pitems a:hover .hx-pi-t { transform: translateX(8px); color: var(--hx-accent); }
.hx-pitems a:hover .hx-pi-go { opacity: 1; transform: rotate(-45deg); }

.hx-pfoot {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px 40px;
  margin-top: clamp(40px, 5vw, 72px);
  padding-top: 26px;
  border-top: 1px solid var(--hx-line);
}
.hx-pstats { display: flex; flex-wrap: wrap; gap: 20px clamp(28px, 4.5vw, 72px); }
.hx-pstats li { display: grid; gap: 10px; }
.hx-pstats b { font: 300 clamp(44px, 4.4vw, 76px)/.85 var(--hx-serif); letter-spacing: -.035em; font-variant-numeric: lining-nums; }
.hx-pstats span { font: 500 9.5px/1.5 var(--hx-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--hx-dim); max-width: 16em; }

/* ════════════════════════════════════════════════════════════════════════
   06 · ALATI — Darkroom i kalkulator
   ════════════════════════════════════════════════════════════════════════ */
/* Mreža tačaka i linija (zakoni/pravila_hero.js) kao pozadina cijele
   sekcije, od ivice do ivice ekrana; sadržaj je iznad nje. */
.hx.hx-tools { isolation: isolate; }
.hx-tools-net {
  position: absolute;
  z-index: -1;
  top: 0;
  left: calc(50% - 50vw);
  width: 100vw;
  height: 100%;
  pointer-events: none;
  opacity: .85;
}
.hx-bento {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(12px, 1.2vw, 18px);
  margin-top: clamp(44px, 5vw, 80px);
}
.hx-tile {
  --mx: 50%;
  --my: 50%;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: clamp(360px, 30vw, 440px);
  padding: clamp(24px, 2.2vw, 34px);
  border-radius: 20px;
  transition: transform .8s var(--hx-ease), box-shadow .8s var(--hx-ease);
}
.hx-tile::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(520px circle at var(--mx) var(--my), rgba(255, 255, 255, .13), transparent 62%);
  opacity: 0;
  transition: opacity .6s;
}
.hx-tile:hover { transform: translateY(-4px); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6); }
.hx-tile:hover::after { opacity: 1; }
.hx-tile-k {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font: 500 10px/1.4 var(--hx-sans);
  letter-spacing: .26em;
  text-transform: uppercase;
  opacity: .75;
}
.hx-tile-t {
  position: relative;
  z-index: 2;
  font: 300 clamp(30px, 2.5vw, 44px)/1 var(--hx-serif);
  letter-spacing: -.024em;
  max-width: 12em;
}
.hx-tile-t em { font-style: italic; }
.hx-tile-d { position: relative; z-index: 2; font: 300 14px/1.7 var(--hx-sans); opacity: .78; max-width: 34em; }
.hx-tile-foot {
  position: relative;
  z-index: 2;
  margin-top: auto;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 20px 28px;
}
/* Pilula se na prelazu puni bojom teksta pločice. */
.hx-tile--dr:hover .hx-pill { color: #0b0a0b; background: #f3ece2; border-color: #f3ece2; }

.hx-tile-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }

/* Pitanje koje se kuca (js/home.js) */
.hx-ask {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 4px;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(139, 111, 71, .26);
  box-shadow: 0 14px 30px -22px rgba(60, 44, 24, .5);
  font: 300 14px/1.35 var(--hx-sans);
  color: #2a231c;
}
.hx-ask svg { width: 18px; height: 18px; flex: none; fill: none; stroke: #86683f; stroke-width: 1.6; stroke-linecap: round; }
.hx-ask-t { min-height: 2.7em; display: flex; align-items: center; }
.hx-ask-c { width: 1.5px; height: 1.2em; background: #86683f; flex: none; animation: hxCaret 1s steps(1) infinite; margin-left: -10px; }
@keyframes hxCaret { 50% { opacity: 0; } }

/* Darkroom — tamna pločica, prije / poslije */
.hx-tile--dr {
  background: #0b0a0b;
  color: #f3ece2;
  border: 1px solid rgba(215, 181, 132, .24);
}
.hx-tile--dr .hx-tile-k { color: #d7b584; opacity: 1; }
.hx-dr-frame { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
.hx-dr-frame::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(8, 8, 9, .55) 0%, rgba(8, 8, 9, .1) 34%, rgba(8, 8, 9, .3) 58%, rgba(8, 8, 9, .9) 100%);
}
.hx-dr-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.hx-dr-frame { transition: transform 1.4s var(--hx-ease); }
.hx-tile--dr:hover .hx-dr-frame { transform: scale(1.04); }
.hx-dr-before { filter: grayscale(.6) contrast(.72) brightness(1.1); }
/* Omot „poslije” ide desno, slika u njemu isto toliko lijevo: vidi se desni
   dio slike od linije, a sve su transformi (grafička kartica, bez iscrtavanja). */
.hx-dr-aw, .hx-dr-lw { position: absolute; inset: 0; will-change: transform; animation: hxDrMove 10s cubic-bezier(.65, 0, .35, 1) infinite; }
.hx-dr-aw { overflow: hidden; }
.hx-dr-lw { z-index: 1; pointer-events: none; }
.hx-dr-after { filter: contrast(1.18) saturate(1.3) brightness(.94) sepia(.12); will-change: transform; animation: hxDrBack 10s cubic-bezier(.65, 0, .35, 1) infinite; }
.hx-dr-line { position: absolute; top: 0; bottom: 0; left: 0; width: 1px; background: rgba(245, 241, 234, .85); box-shadow: 0 0 14px rgba(245, 241, 234, .4); }
@keyframes hxDrMove { 0%, 100% { transform: translate3d(58%, 0, 0); } 45%, 55% { transform: translate3d(26%, 0, 0); } }
@keyframes hxDrBack { 0%, 100% { transform: translate3d(-58%, 0, 0); } 45%, 55% { transform: translate3d(-26%, 0, 0); } }
.hx-dr-tag { position: absolute; top: 50%; z-index: 2; padding: 6px 11px; border-radius: 999px; background: rgba(14, 14, 16, .6); border: 1px solid rgba(245, 241, 234, .16); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font: 500 9px/1 var(--hx-sans); letter-spacing: .2em; text-transform: uppercase; }
.hx-dr-tag.is-before { left: 16px; }
.hx-dr-tag.is-after { right: 16px; }
.hx-dr-safe { position: relative; width: 7px; height: 7px; border-radius: 50%; background: #d2472f; box-shadow: 0 0 0 4px rgba(210, 71, 47, .14), 0 0 18px 3px rgba(210, 71, 47, .55); }
/* Sjaj crvene lampice: poseban sloj koji diše (opacity + scale, bez box-shadow animacije) */
.hx-dr-safe::after { content: ''; position: absolute; inset: -9px; border-radius: 50%; background: radial-gradient(circle, rgba(210, 71, 47, .6), rgba(210, 71, 47, 0) 70%); animation: hxSafe 3.6s ease-in-out infinite; }
@keyframes hxSafe { 0%, 100% { opacity: .35; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.25); } }
.hx-tile-foot--dr { align-items: flex-end; }
.hx-tile-foot--dr > span:first-child { display: grid; gap: 10px; max-width: 26em; }
.hx-tile--dr .hx-tile-d { font-size: 13px; }
.hx-tile-t--dr { font-style: italic; }

/* Kalkulator — u stilu kartice „Analiza parcele”, bez mreže tačaka */
.hx-tile--calc {
  gap: 20px;
  padding: clamp(26px, 2.8vw, 44px);
  border-radius: 22px;
  border: 1px solid rgba(215, 181, 132, .2);
  background:
    radial-gradient(70% 60% at 90% 0%, rgba(215, 181, 132, .2), transparent 70%),
    radial-gradient(60% 50% at 0% 100%, rgba(176, 79, 53, .12), transparent 70%),
    linear-gradient(160deg, #1d1712 0%, #120e0b 100%);
  color: #f1e8da;
}
.hx-tile--calc .hx-tile-k { color: #d7b584; opacity: 1; }
.hx-tile--calc .hx-pcard-t em { font-style: italic; color: #d7b584; }
.hx-tile--calc .hx-pill--solid { background: #d7b584; color: #14100d; border-color: #d7b584; }
.hx-tile--calc:hover .hx-pill--solid { background: #f1e8da; color: #14100d; border-color: #f1e8da; }
.hx-tile--calc .hx-tile-foot { margin-top: auto; justify-content: flex-start; }

/* ════════════════════════════════════════════════════════════════════════
   03 · ŽURNAL — jedan slajd u jeziku uvoda studija, bez luka: tamno sa braon
   sredinom i zrnom; linije se iscrtaju (is-in iz js/home.js), naslov izlazi
   slovo po slovo, članci su kolone odvojene vertikalnim linijama.
   ════════════════════════════════════════════════════════════════════════ */
.hx-jr {
  --jl: rgba(239, 231, 219, .16);
  position: relative;
  overflow: hidden;
  color: #efe7db;
  background:
    radial-gradient(ellipse 60% 55% at 50% 45%, rgba(122, 78, 46, .32), rgba(122, 78, 46, 0) 72%),
    radial-gradient(ellipse 90% 60% at 50% 100%, rgba(70, 45, 27, .3), rgba(70, 45, 27, 0) 70%),
    #0e0b09;
}
.hx-jr::after {
  content: '';
  position: absolute;
  inset: -12%;
  z-index: 6;
  pointer-events: none;
  opacity: .065;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation: hxGrain 1.4s steps(7) infinite;
}
.hx-jr-in {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: clamp(12px, 2vh, 26px);
  max-width: 1680px;
  margin: 0 auto;
  padding: clamp(44px, 6vh, 80px) var(--hx-gut) clamp(40px, 6vh, 72px);
}

/* Linije se crtaju od sredine */
.hx-jr-rule { display: block; height: 1px; background: var(--jl); transition: transform 1.8s var(--hx-ease-io) var(--d, 0s); }
.hx-js .hx-jr:not(.is-in) .hx-jr-rule { transform: scaleX(0); }


/* Naslovni pojas: naslov u jednom redu, desno iza tanke linije moto i datum */
.hx-jr-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 25em);
  align-items: end;
  gap: clamp(28px, 5vw, 96px);
  padding: clamp(8px, 1.6vh, 20px) 0 clamp(12px, 2.2vh, 26px);
}
.hx-jr-word {
  margin: 0;
  font: 300 clamp(64px, 9.4vw, 172px)/.9 var(--hx-serif);
  letter-spacing: -.045em;
  white-space: nowrap;
}
.hx-jr-word > span[aria-hidden] { display: contents; }
.hx-jr-word .is-em { color: #d7b584; }
.hx-jr-word .hx-cm > span { transition: transform 1.5s var(--hx-ease) calc(.15s + var(--i, 0) * 45ms); }
.hx-js .hx-jr:not(.is-in) .hx-jr-word .hx-cm > span { transform: translate3d(0, 140%, 0); }
.hx-jr-aside { position: relative; display: grid; gap: 16px; padding: 0 0 .9em clamp(20px, 2.4vw, 40px); }
.hx-jr-aside::before { content: ''; position: absolute; left: 0; top: 0; bottom: .9em; width: 1px; background: var(--jl); transform-origin: 50% 100%; transition: transform 1.4s var(--hx-ease-io) .4s; }
.hx-js .hx-jr:not(.is-in) .hx-jr-aside::before { transform: scaleY(0); }
.hx-jr-aside > * { margin: 0; transition: opacity 1.1s var(--hx-ease) .6s, transform 1.3s var(--hx-ease) .6s; }
.hx-js .hx-jr:not(.is-in) .hx-jr-aside > * { opacity: 0; transform: translate3d(0, 12px, 0); }
.hx-jr-sub { font: 300 clamp(18px, 1.35vw, 23px)/1.42 var(--hx-serif); color: rgba(239, 231, 219, .8); text-wrap: pretty; }
.hx-jr-date { font: 500 10px/1.7 var(--hx-sans); letter-spacing: .26em; text-transform: uppercase; color: rgba(239, 231, 219, .6); }
.hx-jr-date span { color: #d7b584; margin-right: 10px; }

/* Članci kao kolone: najnoviji širi, sa izvodom */
.hx-jr-cols { display: grid; grid-template-columns: minmax(0, 1.9fr) repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.hx-jr-col { position: relative; display: flex; transition: opacity 1s var(--hx-ease) var(--d, 0s), transform 1.2s var(--hx-ease) var(--d, 0s); }
.hx-jr-col + .hx-jr-col::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--jl);
  transform-origin: 50% 0;
  transition: transform 1.4s var(--hx-ease-io) calc(var(--d, 0s) - .2s);
}
.hx-js .hx-jr:not(.is-in) .hx-jr-col { opacity: 0; transform: translate3d(0, 24px, 0); }
.hx-js .hx-jr:not(.is-in) .hx-jr-col + .hx-jr-col::before { transform: scaleY(0); }
.hx-jr-col a {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(18px, 2.6vh, 28px) clamp(16px, 1.8vw, 30px);
  color: #efe7db;
}
.hx-jr-col:first-child a { padding-left: 0; }
.hx-jr-col:last-child a { padding-right: 0; }
.hx-jr-col a::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(80% 70% at 50% 40%, rgba(215, 181, 132, .1), transparent 70%);
  opacity: 0;
  transition: opacity .7s var(--hx-ease);
}
.hx-jr-col a:hover::before { opacity: 1; }
.hx-jr-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; font: 500 9.5px/1.4 var(--hx-sans); letter-spacing: .22em; text-transform: uppercase; color: rgba(239, 231, 219, .62); }
.hx-jr-n { color: #d7b584; letter-spacing: .14em; }
.hx-jr-cat { color: #d7b584; }
.hx-jr-t { font: 300 clamp(20px, 1.6vw, 28px)/1.18 var(--hx-serif); letter-spacing: -.012em; text-wrap: pretty; transition: color .5s, transform .8s var(--hx-ease); }
.hx-jr-col--feat .hx-jr-t { font-size: clamp(28px, 2.5vw, 44px); line-height: 1.06; letter-spacing: -.02em; text-wrap: balance; }
.hx-jr-x { max-width: 34em; font: 300 14px/1.65 var(--hx-sans); color: rgba(239, 231, 219, .6); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hx-jr-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; font: 500 9.5px/1 var(--hx-sans); letter-spacing: .22em; text-transform: uppercase; color: rgba(239, 231, 219, .5); }
.hx-jr-go { width: 42px; height: 42px; flex: none; border: 1px solid rgba(239, 231, 219, .28); border-radius: 50%; display: grid; place-items: center; color: #efe7db; transition: transform .8s var(--hx-ease), background .5s, color .5s, border-color .5s; }
.hx-jr-col a:hover .hx-jr-t { color: #d7b584; transform: translateX(6px); }
.hx-jr-col a:hover .hx-jr-go { transform: rotate(-45deg); background: #d7b584; border-color: #d7b584; color: #0e0b09; }


/* ════════════════════════════════════════════════════════════════════════
   07 · RAZGOVOR — traka koja teče brže dok se skroluje
   ════════════════════════════════════════════════════════════════════════ */
.hx-cta { padding: clamp(96px, 11vw, 170px) 0 clamp(80px, 9vw, 140px); }
.hx-marquee { overflow: hidden; margin-top: clamp(40px, 5vw, 80px); padding: .06em 0 .14em; }
.hx-mq-track { display: flex; width: max-content; will-change: transform; }
.hx-mq-group { display: flex; align-items: center; flex: none; }
.hx-mq-item {
  font: 300 clamp(84px, 15vw, 270px)/1 var(--hx-serif);
  letter-spacing: -.04em;
  white-space: nowrap;
  padding: 0 .22em;
}
.hx-mq-item em { font-style: italic; color: var(--hx-accent); }
.hx-mark { width: clamp(42px, 5vw, 86px); height: clamp(42px, 5vw, 86px); flex: none; margin: 0 .5vw; fill: none; stroke: var(--hx-accent); stroke-width: 11; stroke-linecap: round; stroke-linejoin: round; animation: hxSpin 18s linear infinite; }
.hx-mark path { stroke-width: 19; }
@keyframes hxSpin { to { transform: rotate(360deg); } }

.hx-cta-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(32px, 6vw, 120px);
  margin-top: clamp(48px, 6vw, 96px);
}
.hx-cta-p { font: 300 clamp(22px, 2vw, 34px)/1.35 var(--hx-serif); max-width: 24em; text-wrap: pretty; }
.hx-cta-act { display: flex; align-items: center; gap: clamp(28px, 3vw, 56px); }
.hx-orb {
  position: relative;
  width: clamp(150px, 13vw, 210px);
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 10px;
  padding: 20px;
  text-align: center;
  background: var(--hx-accent);
  color: var(--hx-bg);
  font: 500 11px/1.3 var(--hx-sans);
  letter-spacing: .2em;
  text-transform: uppercase;
  transition: translate .5s var(--hx-ease), background .6s, color .6s;
}
.hx-orb::before {
  content: '';
  position: absolute;
  inset: -10px;
  border: 1px solid color-mix(in srgb, var(--hx-accent) 45%, transparent);
  border-radius: 50%;
  animation: hxPulse 3.2s var(--hx-ease-io) infinite;
}
@keyframes hxPulse { 0% { transform: scale(.94); opacity: 1; } 100% { transform: scale(1.22); opacity: 0; } }
.hx-orb:hover { background: var(--hx-fg); }
.hx-orb .hx-arrow { width: 22px; height: 22px; }
.hx-orb:hover .hx-arrow { transform: rotate(-45deg); }

.hx-cta-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: clamp(64px, 8vw, 130px);
  border-top: 1px solid var(--hx-line);
}
.hx-cta-meta > div { padding: 22px 0 0; display: grid; gap: 10px; }
.hx-cta-meta > div + div { padding-left: clamp(12px, 2vw, 32px); border-left: 1px solid var(--hx-line); }
.hx-cta-meta dt { font: 500 9.5px/1 var(--hx-sans); letter-spacing: .26em; text-transform: uppercase; color: var(--hx-dim); }
.hx-cta-meta dd { font: 300 clamp(20px, 1.7vw, 28px)/1.1 var(--hx-serif); font-variant-numeric: tabular-nums; }

/* ── Kursor nad radovima ────────────────────────────────────────────────── */
.hx-cursor {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 950;
  width: 104px;
  height: 104px;
  margin: -52px 0 0 -52px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  pointer-events: none;
  background: #f1ece3;
  color: #16120e;
  font: 500 10px/1 var(--hx-sans);
  letter-spacing: .22em;
  text-transform: uppercase;
  translate: -300px -300px;
  scale: 0;
  transition: scale .5s var(--hx-ease);
}
.hx-cursor.is-on { scale: 1; }
@media not all and (hover: hover) and (pointer: fine) { .hx-cursor { display: none; } }
@media (hover: hover) and (pointer: fine) {
  [data-hx-cursor], [data-hx-cursor] * { cursor: none; }
}

/* ════════════════════════════════════════════════════════════════════════
   Uži ekrani
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1180px) {
  .hx-parcel-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 899px) {
  .hx-sec-head--split { grid-template-columns: 1fr; align-items: start; }
  .hx-sec-head--split > .hx-copy,
  .hx-sec-head--split > .hx-link { justify-self: start; }

  /* Studio: manji luk, naslov uži, uglovi zbijeni */
  .hx-arch { --aw: min(54vw, 300px); --ah: min(50vh, calc(var(--aw) * 1.8)); --acy: 50%; }
  .hx-arch-word { font-size: min(calc(185vw / var(--len, 10)), 24vh); padding: 0 var(--hx-gut); }
  .hx-arch-ui { padding-top: calc(84px + env(safe-area-inset-top, 0px)); font-size: 9px; letter-spacing: .24em; }
  .hx-arch-foot { grid-template-columns: 1fr; gap: 14px; }
  .hx-arch-cue { display: none; }
  .hx-arch-rest { font-size: 22px; margin-bottom: 8px; }
  .hx-arch-sub { max-width: 30ch; letter-spacing: .18em; }
  .hx-arch-links { justify-self: start; flex-direction: row; gap: 24px; }
  .hx-next-lead { font-size: 21px; }
  .hx-next-cue { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .hx-next-cue span:last-child { display: none; }
  .hx-next-in { gap: 36px; padding-top: calc(env(safe-area-inset-top, 0px) + 84px); }
  .hx-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Pravila i parcele */
  .hx-pitems { grid-template-columns: minmax(0, 1fr); }
  .hx-parcel > .hx-sheet > span:last-child { display: none; }
  .hx-pfoot { flex-direction: column; align-items: flex-start; }
  .hx-psearch-go { width: 46px; height: 46px; }
  .hx-stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .hx-stat:nth-child(n + 3) { margin-top: 26px; border-top: 1px solid var(--hx-line); }

  /* Radovi: bez kačenja, traka se prevlači prstom */
  .hx-works { height: auto !important; margin-top: 0; padding: clamp(80px, 14vw, 120px) 0 0; }
  .hx-works-pin { position: relative; height: auto; overflow: visible; display: block; }
  .hx-works-rail { display: block; width: auto; padding: 0; transform: none !important; }
  .hx-works-intro { width: auto; padding: 0 var(--hx-gut); }
  .hx-works-track {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 var(--hx-gut);
    padding: 44px var(--hx-gut) 10px;
    gap: 16px;
    align-items: flex-start;
    scrollbar-width: none;
  }
  .hx-works-track::-webkit-scrollbar { display: none; }
  .hx-card { scroll-snap-align: start; width: 78vw; }
  .hx-card:nth-child(even) { transform: none; }
  .hx-card-img { height: auto; width: 100%; aspect-ratio: 4 / 5; }
  .hx-card-end { width: 66vw; margin: 0 var(--hx-gut) 0 8px; align-self: center; scroll-snap-align: center; }
  .hx-works-bar { position: static; margin: 26px var(--hx-gut) 0; gap: 18px; }
  .hx-works-bar > span:last-child { display: none; }

  /* Film: bez kačenja, okvir je već otvoren */
  /* Kuća na telefonu: ista kosina, naslov uži */
  .hx-film-link { flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: 0 22px calc(30px + env(safe-area-inset-bottom, 0px)); gap: 22px; }
  .hx-film-title { font-size: clamp(56px, 17vw, 96px); }
  .hx-house-frame .hx-film-zoom { top: calc(84px + env(safe-area-inset-top, 0px)); right: 18px; }
  .hx-house-side { top: calc(84px + env(safe-area-inset-top, 0px)); left: 22px; }


  .hx-bento { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .hx-tile--dr, .hx-tile--calc { grid-column: 1 / -1; }
  .hx-tile { min-height: 0; }
  .hx-tile--dr { min-height: 420px; }
  .hx-tile:hover { transform: none; }
  .hx-ask { padding: 14px 16px; }

  /* Žurnal: kolone jedna ispod druge */
  .hx-jr-in { min-height: 0; padding-top: 72px; padding-bottom: 56px; }
  .hx-jr-head { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .hx-jr-word { font-size: clamp(52px, 15vw, 88px); white-space: normal; }
  .hx-jr-aside { padding: 16px 0 0; }
  .hx-jr-aside::before { left: 0; right: 0; top: 0; bottom: auto; width: auto; height: 1px; transform-origin: 0 50%; }
  .hx-js .hx-jr:not(.is-in) .hx-jr-aside::before { transform: scaleX(0); }
  .hx-jr-cols { grid-template-columns: minmax(0, 1fr); }
  .hx-jr-col + .hx-jr-col::before { left: 0; right: 0; top: 0; bottom: auto; width: auto; height: 1px; transform-origin: 0 50%; }
  .hx-js .hx-jr:not(.is-in) .hx-jr-col + .hx-jr-col::before { transform: scaleX(0); }
  .hx-jr-col a { padding: 22px 0 !important; }

  .hx-cta-body { grid-template-columns: 1fr; }
  .hx-cta-act { justify-content: space-between; }
  .hx-cta-meta { grid-template-columns: 1fr; }
  .hx-cta-meta > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--hx-line); margin-top: 18px; }
}

@media (max-width: 520px) {
  .hx-h2 { font-size: clamp(48px, 14vw, 72px); }
  .hx-tile-foot { flex-direction: column; align-items: stretch; }
  .hx-tile-foot .hx-pill { justify-content: center; }
  .hx-orb { width: 138px; }
}

@media (prefers-reduced-motion: reduce) {
  .hx-m > span, .hx-rise { transition: none; }
  .hx-js .hx-words:not(.is-in) .hx-m > span { transform: none; }
  .hx-js .hx-rise:not(.is-in) { opacity: 1; transform: none; }
  .hx-film-poster img, .hx-house-frame .hx-film-vid { transform: none !important; }
  .hx-dr-aw, .hx-dr-lw, .hx-dr-after, .hx-dr-safe::after, .hx-mark, .hx-orb::before, .hx-intro::after, .hx-arch-cue-line::after, .hx-jr::after, .hx-hint i::after, .hx-ask-c { animation: none; }
  .hx-dr-aw, .hx-dr-lw { transform: translate3d(50%, 0, 0); }
  .hx-dr-after { transform: translate3d(-50%, 0, 0); }
  .hx-card-img img { transform: scale(1.14); }
}
