/* Good Studios — shared styles (fonts, resets, interaction, layout) */

/* ---------- Self-hosted variable fonts ---------- */
/* Hanken Grotesk — weights 300–600 (variable) */
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 300 600; font-display: swap;
  src: url("fonts/hanken-grotesk-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 300 600; font-display: swap;
  src: url("fonts/hanken-grotesk-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 300 600; font-display: swap;
  src: url("fonts/hanken-grotesk-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Hanken Grotesk'; font-style: normal; font-weight: 300 600; font-display: swap;
  src: url("fonts/hanken-grotesk-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* Newsreader — weights 400–600 (variable), roman + italic */
@font-face {
  font-family: 'Newsreader'; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("fonts/newsreader-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Newsreader'; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("fonts/newsreader-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader'; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("fonts/newsreader-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Newsreader'; font-style: italic; font-weight: 400 600; font-display: swap;
  src: url("fonts/newsreader-italic-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Newsreader'; font-style: italic; font-weight: 400 600; font-display: swap;
  src: url("fonts/newsreader-italic-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Newsreader'; font-style: italic; font-weight: 400 600; font-display: swap;
  src: url("fonts/newsreader-italic-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: #0a0908; -webkit-font-smoothing: antialiased; }
::selection { background: #d8ae66; color: #0a0908; }
a:focus-visible, button:focus-visible { outline: 2px solid #d8ae66; outline-offset: 3px; }

@keyframes gs-marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
.gs-marquee-track { display: flex; white-space: nowrap; width: max-content; animation: gs-marquee 34s linear infinite; }

/* ---------- Interaction (hover/focus) ---------- */
.navlink { color: #c8bfb2; transition: color 0.25s; }
.navlink:hover { color: #f5f1e9; }
.btn-solid { color: #0a0908; background: #f5f1e9; border: none; transition: background 0.25s; }
.btn-solid:hover { background: #d8ae66; }
.btn-outline { color: #f5f1e9; border: 1px solid rgba(245,241,233,0.35); transition: border-color 0.25s, background 0.25s; }
.btn-outline:hover { border-color: #f5f1e9; background: rgba(245,241,233,0.06); }
.film-card { border: 1px solid rgba(245,241,233,0.1); background: #100f0e; transition: border-color 0.3s, background 0.3s; }
.film-card:hover { border-color: rgba(216,174,102,0.4); background: #13110f; }
.footer-link { color: inherit; text-decoration: none; transition: color 0.25s; }
.footer-link:hover { color: #c8bfb2; }
.link-gold { transition: color 0.25s; }
.link-gold:hover { color: #d8ae66; }

/* ---------- Home page layout ---------- */
#gs-navlinks { display: flex; gap: 38px; align-items: center; }
#gs-burger { display: none; flex-direction: column; gap: 6px; background: none; border: none; cursor: pointer; padding: 6px; }
#gs-mobilemenu { display: none; }
#gs-mobilemenu.open { display: flex; position: fixed; inset: 0; z-index: 250; background: #0a0908; flex-direction: column; justify-content: center; align-items: center; gap: 8px; }
#gs-approach { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px 72px; max-width: 980px; }
#gs-films { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
#gs-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; padding: 0 4px; }
#gs-numbers { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid rgba(245,241,233,0.12); border-bottom: 1px solid rgba(245,241,233,0.12); padding: 52px 0; margin-bottom: 110px; }
#gs-fit { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.1fr; gap: 80px; align-items: start; }

@media (max-width: 1000px) {
  #gs-approach, #gs-films, #gs-fit { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  #gs-navlinks { display: none; }
  #gs-burger { display: flex; }
  #gs-herocount { display: none; }
  #gs-strip, #gs-numbers { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Contact page layout ---------- */
#gs-shell { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; }
#gs-left { padding: 140px 56px 80px; border-right: 1px solid rgba(245,241,233,0.1); display: flex; flex-direction: column; justify-content: center; }
#gs-right { padding: 140px 56px 80px; display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 820px) {
  #gs-shell { grid-template-columns: 1fr; }
  #gs-left { border-right: none; padding: 120px 26px 50px; }
  #gs-right { padding: 20px 26px 80px; }
}
input::placeholder, textarea::placeholder { color: #6f6759; }
input:focus, textarea:focus { outline: none; border-color: #d8ae66 !important; }

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .gs-marquee-track { animation: none; }
}
