/* ============================================================
   ENERGY — Polifo Theme · Global Design System
   Funnel Display (display) + Figtree (body).
   Theme via <body class="theme-light|theme-dark">.
   ============================================================ */

@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url("../../public/assets/fonts/figtree-latin.woff2") format("woff2-variations");
  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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Figtree";
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src: url("../../public/assets/fonts/figtree-latin-ext.woff2") format("woff2-variations");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- Tokens ---------- */
:root {
  --zinc-50:  oklch(98.5% 0 0);
  --zinc-100: oklch(96.7% .001 286.375);
  --zinc-200: oklch(92% .004 286.32);
  --zinc-300: oklch(87.1% .006 286.286);
  --zinc-400: oklch(70.5% .015 286.067);
  --zinc-500: oklch(55.2% .016 285.938);
  --zinc-600: oklch(44.2% .017 285.786);
  --zinc-700: oklch(37% .013 285.805);
  --zinc-800: oklch(27.4% .006 286.033);
  --zinc-900: oklch(21% .006 285.885);
  --red-500:  oklch(63.7% .237 25.331);
  --red-400:  oklch(70.4% .191 22.216);
  --emerald-400: oklch(76.5% .177 163.223);

  --accent:     var(--red-500);
  --accent-ink: var(--red-500);
  --maxw:   1320px;
  --gutter: clamp(20px, 5vw, 64px);
  --r:      4px;
  --ease:   cubic-bezier(0.22, 1, 0.36, 1);

  /* Light theme defaults */
  --bg:       #ffffff;
  --paper:    var(--zinc-50);
  --surface:  #ffffff;
  --ink:      var(--zinc-900);
  --ink-soft: var(--zinc-800);
  --ink-2:    var(--zinc-600);
  --ink-3:    var(--zinc-500);
  --line:     var(--zinc-200);
  --line-2:   var(--zinc-300);
  --logo-filter: none;
  --hero-scrim: linear-gradient(180deg, oklch(21% .006 285.885 / 0) 40%, oklch(21% .006 285.885 / .5) 100%);
}

body.theme-dark {
  --bg:       oklch(16.5% .004 286);
  --paper:    var(--zinc-900);
  --surface:  oklch(23% .005 286);
  --ink:      var(--zinc-100);
  --ink-soft: var(--zinc-200);
  --ink-2:    var(--zinc-400);
  --ink-3:    var(--zinc-500);
  --line:     var(--zinc-800);
  --line-2:   var(--zinc-700);
  --logo-filter: invert(1);
  --hero-scrim: linear-gradient(180deg, oklch(10% .004 286 / 0) 30%, oklch(10% .004 286 / .82) 100%);
}

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  font-family: "Figtree", "Figtree Variable", ui-sans-serif, system-ui, sans-serif;
  background: var(--bg);
  color: var(--ink-soft);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-synthesis: none;
  overflow-x: hidden;
}
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: none; }
::selection { background: var(--accent); color: #fff; }

/* ---------- Layout ---------- */
.wrap { max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: clamp(64px, 10vw, 140px); }
.section--tight { padding-block: clamp(48px, 7vw, 96px); }
.divider { height: 1px; background: var(--line); border: 0; }

/* ---------- Type system ---------- */
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11.5px; font-weight: 500; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-3);
}
.eyebrow::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%;
  background: var(--ink); flex: none; opacity: 0.5;
}
.eyebrow--plain::before { display: none; }

.display {
  font-family: "Funnel Display", "Figtree", sans-serif;
  font-weight: 300;
  font-size: clamp(2.8rem, 5.5vw, 6.4rem);
  line-height: 1.06;
  letter-spacing: -0.025em;
  color: var(--ink);
  text-wrap: balance;
}
.h1 { font-family: "Funnel Display", "Figtree", sans-serif; font-weight: 300; font-size: clamp(2rem, 4vw, 3.4rem); line-height: 1.08; letter-spacing: -0.02em; color: var(--ink); text-wrap: balance; }
.h2 { font-weight: 500; font-size: clamp(1.5rem, 2.8vw, 2.4rem); line-height: 1.12; letter-spacing: -0.015em; color: var(--ink); text-wrap: balance; }
.h3 { font-weight: 500; font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.18; letter-spacing: -0.01em; color: var(--ink); }
.lead { font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.55; color: var(--ink-2); font-weight: 400; max-width: 46ch; text-wrap: pretty; }
.body { font-size: 1.0625rem; line-height: 1.65; color: var(--ink-2); text-wrap: pretty; }
.small { font-size: 0.875rem; line-height: 1.5; color: var(--ink-3); }
.en { color: var(--ink-3); font-weight: 400; }
.accent { color: var(--accent-ink); }
.hero__display, .page-title, .detail-title, .kol__name,
.chero__title, .cta__big, .contact__title { color: var(--ink); }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 60;
  background: color-mix(in srgb, var(--bg) 86%, transparent);
  backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid var(--line);
}
.site-header__inner {
  max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter);
  height: 68px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
}
.brand { display: flex; align-items: center; gap: 12px; flex: none; }
.brand img { height: 17px; width: auto; filter: var(--logo-filter); }
.brand__tag {
  font-size: 9.5px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 600; padding-left: 12px; margin-left: 2px;
  border-left: 1px solid var(--line-2); align-self: stretch; display: flex; align-items: center;
}
.nav { display: flex; align-items: center; gap: 0; justify-self: center; }
.nav a {
  position: relative; padding: 8px 18px; font-size: 0.9rem; font-weight: 500;
  color: var(--ink-2); transition: color 0.2s;
}
.nav a:hover { color: var(--ink); }
.nav a.is-active { color: var(--ink); }
.nav a.is-active::after {
  content: ''; position: absolute; bottom: 4px; left: 18px; right: 18px;
  height: 1.5px; background: var(--ink);
}
.header-cta {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px;
  border: 1px solid var(--line-2); color: var(--ink); border-radius: var(--r);
  font-size: 0.88rem; font-weight: 600; transition: border-color 0.2s, background 0.2s;
}
.header-cta:hover { border-color: var(--ink); background: var(--ink); color: var(--bg); }
.header-right { display: flex; align-items: center; gap: 18px; justify-self: end; }
.menu-toggle { display: none; }

/* ── Nav dropdown ── */
.nav-item { position: relative; display: inline-flex; align-items: center; }
.nav-item > a { display: inline-flex; align-items: center; gap: 5px; }
.nav-chevron { opacity: 0.45; transition: transform 0.22s var(--ease), opacity 0.22s; flex: none; }
.nav-item--open .nav-chevron { transform: rotate(180deg); opacity: 0.7; }

.nav-dropdown {
  position: absolute; top: calc(100% + 10px); left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 230px; background: var(--bg);
  border: 1px solid var(--line); border-radius: 10px; padding: 8px;
  box-shadow: 0 20px 56px rgba(0,0,0,.10), 0 4px 12px rgba(0,0,0,.05);
  opacity: 0; pointer-events: none;
  transition: opacity 0.2s var(--ease), transform 0.2s var(--ease); z-index: 90;
}
.nav-item--open .nav-dropdown { opacity: 1; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.nav-dropdown::before {
  content: ''; position: absolute; top: -6px; left: 50%;
  transform: translateX(-50%) rotate(45deg); width: 10px; height: 10px;
  background: var(--bg); border-top: 1px solid var(--line); border-left: 1px solid var(--line);
}
.nav-dropdown__head {
  font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-3); padding: 6px 12px 10px; border-bottom: 1px solid var(--line); margin-bottom: 6px;
}
.nav-dropdown__item {
  display: flex; align-items: center; gap: 12px; padding: 9px 12px; border-radius: 7px;
  color: var(--ink); transition: background 0.15s;
}
.nav-dropdown__item:hover { background: var(--paper); }
.nav-dropdown__img { width: 38px; height: 46px; object-fit: cover; border-radius: 4px; flex: none; }
.nav-dropdown__copy { display: flex; flex-direction: column; gap: 2px; }
.nav-dropdown__label { font-weight: 600; font-size: 0.88rem; color: var(--ink); }
.nav-dropdown__sub { font-size: 0.76rem; color: var(--ink-3); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 10px; padding: 15px 26px;
  border-radius: 999px; font-weight: 600; font-size: 1rem; line-height: 1;
  transition: transform 0.3s var(--ease), background 0.3s, color 0.3s, border-color 0.3s;
}
.btn--solid { background: var(--ink); color: var(--bg); }
.btn--solid:hover { transform: translateY(-2px); background: var(--accent); color: #fff; }
.btn--ghost { border: 1px solid var(--line-2); color: var(--ink); }
.btn--ghost:hover { border-color: var(--ink); transform: translateY(-2px); }
.btn--accent { background: var(--accent); color: #fff; }
.btn--accent:hover { transform: translateY(-2px); filter: brightness(1.08); }
.btn .arrow { transition: transform 0.3s var(--ease); }
.btn:hover .arrow { transform: translate(3px, -3px); }

/* ---------- Forms ---------- */
.field { display: flex; flex-direction: column; gap: 9px; }
.field label { font-size: 0.82rem; font-weight: 600; letter-spacing: 0.04em; color: var(--ink-2); }
.field label .req { color: var(--accent); }
.input, .select, .textarea {
  width: 100%; padding: 14px 16px; background: var(--surface); color: var(--ink);
  border: 1px solid var(--line-2); border-radius: var(--r); font: inherit; font-size: 1rem;
  transition: border-color 0.25s, box-shadow 0.25s;
}
.input::placeholder, .textarea::placeholder { color: var(--ink-3); }
.input:focus, .select:focus, .textarea:focus {
  outline: none; border-color: var(--ink);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ink) 9%, transparent);
}
.textarea { resize: vertical; min-height: 120px; }

/* ---------- Footer ---------- */
.site-footer { background: #0A0A0B; color: #F4F2EE; padding-block: clamp(56px, 8vw, 96px) 36px; }
.site-footer a { color: inherit; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 40px; }
.footer-logo { height: 22px; margin-bottom: 22px; }
.footer-col h4 { font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase; opacity: 0.5; margin-bottom: 16px; font-weight: 600; }
.footer-col ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.footer-col a { opacity: 0.78; transition: opacity 0.25s; font-size: 0.98rem; }
.footer-col a:hover { opacity: 1; }
.footer-socials {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin-top: 40px; padding-top: 32px; border-top: 1px solid rgba(255,255,255,.10);
}
.fsoc {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px;
  border: 1px solid rgba(255,255,255,.16); border-radius: 999px;
  font-size: 0.84rem; font-weight: 600; color: rgba(255,255,255,.65);
  transition: border-color 0.2s, color 0.2s, background 0.2s;
}
.fsoc:hover { border-color: rgba(255,255,255,.5); color: #fff; background: rgba(255,255,255,.06); }
.fsoc svg { flex: none; opacity: 0.8; }
.footer-bottom {
  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
  margin-top: 24px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.10);
  font-size: 0.85rem; opacity: 0.6;
}
.footer-big {
  font-weight: 800; letter-spacing: -0.03em; line-height: 0.9;
  font-size: clamp(3rem, 13vw, 11rem); opacity: 0.07; margin-top: 40px; user-select: none;
}

/* ---------- Reveal on scroll ---------- */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.8s var(--ease), transform 0.8s var(--ease); }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1 !important; transform: none !important; } }

/* ---------- Mobile menu ---------- */
.mobile-menu {
  position: fixed; inset: 0; z-index: 80; background: var(--bg);
  display: flex; flex-direction: column; padding: 28px var(--gutter);
  transform: translateY(-100%); transition: transform 0.5s var(--ease); visibility: hidden;
}
.mobile-menu.open { transform: none; visibility: visible; }
.mobile-menu__top { display: flex; align-items: center; justify-content: space-between; height: 46px; }
.mobile-menu nav { display: flex; flex-direction: column; gap: 4px; margin-top: 40px; }
.mobile-menu nav a { font-size: 2rem; font-weight: 700; letter-spacing: -0.02em; padding: 12px 0; border-bottom: 1px solid var(--line); }
.mobile-menu nav a .en { display: block; font-size: 0.9rem; font-weight: 500; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 760px) {
  .nav, .brand__tag { display: none; }
  .menu-toggle { display: inline-grid; place-items: center; width: 42px; height: 42px; border: 1px solid var(--line-2); border-radius: 999px; }
  .header-cta { display: none; }
  .footer-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   HOME PAGE
   ============================================================ */

.hero { padding-block: clamp(56px,9vw,120px) clamp(48px,6vw,80px); border-bottom: 1px solid var(--line); }
.hero__wrap { display: flex; flex-direction: column; gap: clamp(36px,5vw,64px); }
.hero__text { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; max-width: 820px; margin-inline: auto; }
.hero__label { font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; }
.hero__display { font-family: "Funnel Display",sans-serif; font-weight: 300; font-size: clamp(1.9rem,3.6vw,3.6rem); line-height: 1.18; letter-spacing: -.03em; color: var(--ink); min-height: 2.5em; }
.hero__cur { display: inline-block; width: 2.5px; height: .82em; background: var(--ink); margin-left: 4px; vertical-align: middle; border-radius: 1px; animation: hero-blink .75s step-end infinite; }
@keyframes hero-blink { 0%,100%{opacity:1} 50%{opacity:0} }
.hero__stage { width: 100%; aspect-ratio: 16/9; overflow: hidden; background: var(--zinc-100); }
.hero__stage iframe { width: 100%; height: 100%; display: block; border: 0; }
.hero__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: .8rem; color: var(--ink-3); font-weight: 500; }
.hero__meta-dot { opacity: .35; }
.hero__meta-spacer { flex: 1; min-width: 16px; }
.hero__meta-link { color: var(--ink-2); font-weight: 600; transition: color .2s; margin-left: auto; }
.hero__meta-link:hover { color: var(--accent); }

.sec-head { display: flex; flex-direction: column; gap: 10px; margin-bottom: clamp(28px,4vw,44px); padding-bottom: clamp(20px,3vw,32px); border-bottom: 1px solid var(--line); }
.sec-title { font-family: "Funnel Display",sans-serif; font-size: clamp(1.6rem,3vw,2.6rem); font-weight: 300; letter-spacing: -.025em; color: var(--ink); line-height: 1.1; }

.svc__list { list-style: none; padding: 0; margin: 0; }
.svc__item { display: grid; grid-template-columns: 52px 1fr 1fr; align-items: center; gap: clamp(16px,3vw,48px); padding-block: clamp(22px,3vw,34px); border-top: 1px solid var(--line); transition: background .25s; }
.svc__item:last-child { border-bottom: 1px solid var(--line); }
.svc__item:hover { background: var(--paper); }
.svc__n { font-size: .76rem; font-weight: 600; color: var(--ink-3); letter-spacing: .06em; }
.svc__name { font-family: "Funnel Display",sans-serif; font-size: clamp(1.1rem,2vw,1.7rem); font-weight: 300; letter-spacing: -.02em; color: var(--ink); }
.svc__desc { font-size: .88rem; color: var(--ink-3); text-align: right; font-weight: 400; }

.team { border-top: 1px solid var(--line); }
.team-row-land { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(8px,1.2vw,14px); margin-bottom: clamp(8px,1.2vw,14px); }
.team-row-port { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(8px,1.2vw,14px); }
.tslot { overflow: hidden; background: var(--paper); }
.tslot img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s var(--ease); }
.tslot:hover img { transform: scale(1.04); }
.tslot--land  { aspect-ratio: 3/2; }
.tslot--port2 { aspect-ratio: 2/3; }

.kol__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px,6vw,96px); align-items: center; }
.kol__media { overflow: hidden; aspect-ratio: 3/4; background: var(--paper); }
.kol__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.kol__media:hover img { transform: scale(1.03); }
.kol__copy { display: flex; flex-direction: column; gap: clamp(18px,2.5vw,28px); }
.kol__eyebrow { font-size: .78rem; letter-spacing: .15em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; }
.kol__name { font-family: "Funnel Display",sans-serif; font-size: clamp(2rem,4vw,3.4rem); font-weight: 300; letter-spacing: -.03em; line-height: 1.05; color: var(--ink); margin: 0; }
.kol__quote { font-size: clamp(1rem,1.5vw,1.18rem); line-height: 1.7; color: var(--ink-2); margin: 0; padding-left: 18px; border-left: 2px solid var(--line-2); }
.kol__roster { display: flex; gap: 8px; flex-wrap: wrap; }

.cta { border-top: 1px solid var(--line); padding-block: clamp(72px,12vw,160px); }
.cta__inner { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(32px,4vw,52px); }
.cta__big { font-family: "Funnel Display",sans-serif; font-weight: 300; letter-spacing: -.035em; font-size: clamp(2.4rem,6.5vw,6rem); line-height: 1.06; color: var(--ink); max-width: 18ch; }

/* ============================================================
   PROJECTS PAGE
   ============================================================ */

.page-head { padding-top: clamp(40px,6vw,80px); }
.page-head__grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(24px,4vw,64px); align-items: end; }
.page-title { font-weight: 800; font-size: clamp(2.6rem,7vw,6rem); line-height: .95; letter-spacing: -.035em; }
.page-title .en { display: block; font-size: .28em; font-weight: 500; color: var(--ink-3); margin-top: .6em; letter-spacing: .02em; }

.filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 44px 0 36px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.filter { padding: 10px 18px; border: 1px solid var(--line-2); border-radius: 999px; font-size: .92rem; font-weight: 600; color: var(--ink-2); transition: color .25s,background .25s,border-color .25s; }
.filter:hover { color: var(--ink); border-color: var(--ink); }
.filter.is-active { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.filter .count { opacity: .5; margin-left: 6px; font-size: .82em; }

.index-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(18px,2.2vw,32px); }
.pcard { display: block; }
.pcard__media { position: relative; aspect-ratio: 4/3; overflow: hidden; border-radius: var(--r); background: var(--paper); }
.pcard__thumb { width: 100%; height: 100%; background: var(--paper); }
.pcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .9s var(--ease); }
.pcard:hover .pcard__media img { transform: scale(1.05); }
.pcard__scrim { position:absolute;inset:0;background:var(--hero-scrim);opacity:0;transition:opacity .5s; }
.pcard:hover .pcard__scrim { opacity:1; }
.pcard__cta { position:absolute;right:14px;bottom:14px;width:44px;height:44px;border-radius:50%;background:var(--bg);color:var(--ink);display:grid;place-items:center;opacity:0;transform:translateY(8px);transition:.45s var(--ease);z-index:2; }
.pcard:hover .pcard__cta { opacity:1;transform:none; }
.pcard__meta { display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:16px 2px 4px; }
.pcard__t { font-weight:700;font-size:1.12rem;letter-spacing:-.01em; }
.pcard__t .en { display:block;font-size:.78rem;font-weight:500;color:var(--ink-3);margin-top:3px; }
.pcard__y { font-size:.85rem;color:var(--ink-3);font-weight:500; }
.pcard__play { position:absolute;left:12px;bottom:12px;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.90);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.15);transition:transform .25s var(--ease),background .2s; }
.pcard:hover .pcard__play { transform:scale(1.12);background:#fff; }

/* ============================================================
   PROJECT DETAIL (single.php)
   ============================================================ */

.crumb { padding-top: 28px; }
.crumb a { color:var(--ink-3);font-size:.88rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:color .2s; }
.crumb a:hover { color: var(--ink); }
.detail-reel { position:relative;width:100%;aspect-ratio:16/9;background:var(--paper);margin-top:24px;overflow:hidden; }
.detail-header { display:grid;grid-template-columns:1fr auto;gap:clamp(24px,5vw,80px);align-items:end;padding-block:clamp(32px,5vw,56px);border-bottom:1px solid var(--line); }
.detail-header__left { display:flex;flex-direction:column;gap:16px; }
.detail-hero__cat { display:flex;gap:8px;flex-wrap:wrap; }
.detail-title { font-weight:800;font-size:clamp(1.8rem,4vw,3.4rem);line-height:1;letter-spacing:-.03em;color:var(--ink);max-width:20ch; }
.detail-title .en { display:block;font-size:.3em;font-weight:500;color:var(--ink-3);margin-top:.8em;letter-spacing:.01em;line-height:1.4; }
.detail-facts { display:flex;flex-direction:column;gap:20px;min-width:160px;padding-left:clamp(24px,4vw,56px);border-left:1px solid var(--line); }
.fact .k { font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600; }
.fact .v { font-weight:700;font-size:.95rem;margin-top:5px; }
.detail-brief { padding-block:clamp(36px,5vw,56px);border-bottom:1px solid var(--line);display:grid;grid-template-columns:160px 1fr;gap:clamp(24px,4vw,60px);align-items:start; }
.detail-brief .eyebrow { padding-top: 3px; }
.detail-brief p { color:var(--ink-2);line-height:1.75;font-size:1.05rem;max-width:60ch; }
.detail-gallery { display:flex;flex-direction:column;gap:clamp(14px,2vw,24px);padding-block:clamp(36px,5vw,56px);border-bottom:1px solid var(--line); }
.gallery-full { overflow:hidden;background:var(--paper); }
.gallery-duo { display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2vw,24px); }
.shot { position:relative;overflow:hidden;background:var(--paper); }
.shot img { width:100%;display:block; }
.shot--video { aspect-ratio:16/9; }
.shot__play { position:absolute;inset:0;display:grid;place-items:center;z-index:2;pointer-events:none; }
.shot__play span { width:72px;height:72px;border-radius:50%;background:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(8px);border:1px solid var(--line-2);display:grid;place-items:center;font-size:1.1rem;color:var(--ink); }
.shot__cap { position:absolute;left:14px;bottom:12px;z-index:2;font-size:.78rem;font-weight:600;color:#fff;background:rgba(0,0,0,.4);backdrop-filter:blur(6px);padding:5px 12px;border-radius:999px; }
.impact { padding-block:clamp(48px,6vw,80px);border-bottom:1px solid var(--line); }
.impact .eyebrow { margin-bottom:32px; }
.kpis { display:flex;gap:clamp(40px,7vw,100px);flex-wrap:wrap; }
.kpi .n { font-size:clamp(2.6rem,5vw,4.4rem);font-weight:800;letter-spacing:-.04em;line-height:1; }
.kpi .l { font-size:.82rem;color:var(--ink-3);margin-top:8px; }
.credits-section { padding-block:clamp(48px,6vw,80px);border-bottom:1px solid var(--line); }
.credits-section .eyebrow { margin-bottom:28px; }
.credits { display:grid;grid-template-columns:repeat(4,1fr);gap:24px 32px; }
.credit .k { font-size:.75rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-weight:600; }
.credit .v { font-weight:600;margin-top:6px;font-size:1rem; }
.nextproj { margin-top: 0; }
.nextproj a { display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(36px,5vw,64px) 0; }
.nextproj .lbl { font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600; }
.nextproj .t { font-weight:800;font-size:clamp(1.6rem,3.5vw,2.8rem);letter-spacing:-.03em;line-height:1;margin-top:10px;transition:color .3s; }
.nextproj a:hover .t { color: var(--accent-ink); }
.nextproj .arrow-lg { font-size:clamp(2rem,4vw,3rem);transition:transform .35s var(--ease);flex:none; }
.nextproj a:hover .arrow-lg { transform:translateX(10px); }

/* ============================================================
   KOL DETAIL (page-mc-anh-tuan.php)
   ============================================================ */

.kd-crumb { padding-block:20px;font-size:.82rem;color:var(--ink-3);font-weight:500;transition:color .2s; }
.kd-crumb a:hover { color: var(--ink); }
.kd-header { padding-block:clamp(60px,10vw,140px) clamp(40px,5vw,72px);border-bottom:1px solid var(--line); }
.kd-headline { font-family:"Funnel Display",sans-serif;font-weight:300;font-size:clamp(2rem,4.5vw,4.6rem);line-height:1.12;letter-spacing:-.035em;color:var(--ink);max-width:26ch;margin-bottom:clamp(32px,4vw,56px);min-height:2.6em; }
.kd-cur { display:inline-block;width:2.5px;height:.82em;background:var(--ink);margin-left:4px;vertical-align:middle;border-radius:1px;animation:kd-blink .75s step-end infinite; }
@keyframes kd-blink { 0%,100%{opacity:1} 50%{opacity:0} }
.kd-meta-row { display:flex;align-items:center;gap:16px;flex-wrap:wrap; }
.kd-meta-item { display:inline-flex;align-items:center;gap:7px;font-size:.88rem;color:var(--ink-2);font-weight:400; }
.kd-meta-item--link { font-weight:500;transition:color .2s; }
.kd-meta-item--link:hover { color:var(--ink); }
.kd-meta-sep { display:inline-block;width:1px;height:14px;background:var(--line-2); }
.kd-showreel { padding-block:clamp(40px,6vw,80px); }
.kd-showreel__wrap { max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);aspect-ratio:16/9;overflow:hidden;background:var(--paper); }
.kd-showreel__video { width:100%;height:100%;object-fit:cover;display:block; }
.kd-work__grid { display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3.5vw,48px);padding-bottom:clamp(40px,6vw,80px); }
.kdw-card { display:block; }
.kdw-card--offset { transform:translateY(clamp(32px,5vw,64px)); }
.kdw-card__img-wrap { aspect-ratio:3/2;overflow:hidden;background:var(--paper);margin-bottom:clamp(12px,1.5vw,18px);position:relative; }
.kdw-card__img { width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease); }
.kdw-card:hover .kdw-card__img { transform:scale(1.04); }
.kdw-card__blank { width:100%;height:100%;background:var(--paper); }
.kdw-card__play { position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.15);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;color:#fff; }
.kdw-card__info { padding-top:2px; }
.kdw-card__title { font-family:"Funnel Display",sans-serif;font-size:clamp(1rem,1.6vw,1.4rem);font-weight:300;letter-spacing:-.02em;color:var(--ink);line-height:1.25;margin-bottom:10px;transition:opacity .2s; }
.kdw-card:hover .kdw-card__title { opacity:.75; }
.kdw-card__rule { height:1px;background:var(--line);margin-bottom:10px; }
.kdw-card__meta-row { display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--ink-3);font-weight:500;flex-wrap:wrap; }
.kdw-card__dot { opacity:.4; }
.kd-cta-vid { position:relative;overflow:hidden;min-height:clamp(420px,65vh,720px);display:flex;align-items:flex-end; }
.kd-cta-vid__bg { position:absolute;inset:0; }
.kd-cta-vid__bg video { width:100%;height:100%;object-fit:cover;display:block; }
.kd-cta-vid__overlay { position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,8,8,.88) 0%,rgba(8,8,8,.35) 55%,transparent 100%); }
.kd-cta-vid__content { position:relative;z-index:1;padding-bottom:clamp(48px,7vw,96px);display:flex;flex-direction:column;gap:0;color:#fff; }
.kd-cta-vid__tag { display:inline-flex;align-items:center;gap:14px;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:clamp(20px,3vw,36px); }
.kd-cta-vid__tag::after { content:'';display:block;width:36px;height:1px;background:rgba(255,255,255,.35); }
.kd-nums { display:flex;align-items:center;margin-bottom:clamp(32px,5vw,56px); }
.kd-nums__item { padding-inline:clamp(20px,3.5vw,44px);border-right:1px solid rgba(255,255,255,.18); }
.kd-nums__item:first-child { padding-left:0; }
.kd-nums__item:last-child { border-right:none; }
.kd-nums__val { font-family:"Funnel Display",sans-serif;font-size:clamp(2rem,4.5vw,4rem);font-weight:300;color:#fff;letter-spacing:-.04em;line-height:1;margin-bottom:6px; }
.kd-nums__lbl { font-size:.75rem;color:rgba(255,255,255,.45);font-weight:500;letter-spacing:.06em;text-transform:uppercase; }
.kd-cta-btn { display:inline-flex;align-items:center;gap:24px;font-size:clamp(1rem,1.4vw,1.15rem);font-weight:500;color:#fff;border:1px solid rgba(255,255,255,.35);padding:16px 28px;border-radius:var(--r);align-self:flex-start;transition:background .25s,border-color .25s; }
.kd-cta-btn:hover { background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.65); }
.kd-soc-row { display:flex;align-items:center;padding-block:clamp(40px,6vw,72px);border-top:1px solid var(--line); }
.kd-soc-row__div { display:inline-block;width:1px;height:22px;background:var(--line-2);margin-inline:clamp(20px,3vw,40px); }
.kd-soc-link { display:inline-flex;align-items:center;gap:8px;font-size:.95rem;font-weight:500;color:var(--ink-2);transition:color .2s; }
.kd-soc-link:hover { color:var(--ink); }

/* ============================================================
   TAG / PILL (shared)
   ============================================================ */

.tag { display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:1px solid var(--line-2);border-radius:999px;font-size:.82rem;font-weight:500;color:var(--ink-2); }
.tags { display:flex;flex-wrap:wrap;gap:9px; }

/* ============================================================
   RESPONSIVE — all pages
   ============================================================ */

@media (max-width:860px) {
  .svc__item { grid-template-columns:40px 1fr; }
  .svc__desc { display:none; }
  .team-row-land { grid-template-columns:1fr; }
  .team-row-land .tslot--land:last-child { display:none; }
  .team-row-port { grid-template-columns:1fr 1fr; }
  .team-row-port .tslot--port2:last-child { display:none; }
  .kol__grid { grid-template-columns:1fr; }
  .page-head__grid { grid-template-columns:1fr; }
  .index-grid { grid-template-columns:repeat(2,1fr); }
  .detail-header { grid-template-columns:1fr;gap:28px; }
  .detail-facts { flex-direction:row;flex-wrap:wrap;border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:24px;gap:20px 36px; }
  .detail-brief { grid-template-columns:1fr;gap:14px; }
  .credits { grid-template-columns:1fr 1fr; }
  .kd-work__grid { gap:clamp(16px,3vw,28px); }
  .kdw-card--offset { transform:translateY(32px); }
  .kd-nums { flex-wrap:wrap;gap:20px; }
  .kd-nums__item { border-right:none;border-bottom:1px solid rgba(255,255,255,.12);padding-block:16px 0;padding-inline:0;min-width:120px; }
}
@media (max-width:560px) {
  .hero__meta { gap:10px; }
  .svc__item { grid-template-columns:36px 1fr;gap:12px; }
  .team-row-port { grid-template-columns:1fr 1fr; }
  .tslot--port2 { aspect-ratio:3/4; }
  .index-grid { grid-template-columns:1fr; }
  .gallery-duo { grid-template-columns:1fr; }
  .credits { grid-template-columns:1fr 1fr;gap:18px; }
  .kd-headline { font-size:clamp(1.8rem,7vw,3rem); }
  .kd-work__grid { grid-template-columns:1fr; }
  .kdw-card--offset { transform:none; }
  .kd-nums__item { border-bottom:none; }
  .kd-soc-row { flex-wrap:wrap;gap:20px; }
  .kd-soc-row__div { display:none; }
}
