/* ============================================================
   Flåklypa – site styles
   ------------------------------------------------------------
   Ported from the original Claude Design export. The export
   inlined every layout rule on the elements themselves; those
   stay in index.php. This file carries what the DC runtime
   used to provide: web fonts, the <helmet> base rules, and the
   component states that were done in JS (hover, active tab,
   language switch, scroll‑reveal).
   ============================================================ */

/* ---------- Web fonts (self-hosted: latin + latin-ext + vietnamese) ----------
   The export shipped one physical weight per family/subset and reused it for
   every weight, so one range rule per subset reproduces it exactly.           */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../fonts/montserrat-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:'Montserrat';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../fonts/montserrat-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:'Montserrat';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../fonts/montserrat-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:'Montserrat';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/montserrat-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;}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/montserrat-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:'Montserrat';font-style:italic;font-weight:400;font-display:swap;
  src:url('../fonts/montserrat-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:'Oswald';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../fonts/oswald-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:'Oswald';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../fonts/oswald-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:'Oswald';font-style:normal;font-weight:300 700;font-display:swap;
  src:url('../fonts/oswald-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;}

/* ---------- Base (the export's <helmet> block) ---------- */
html{scroll-behavior:smooth;}
body{margin:0;background:#06090c;color:#E6EEF2;font-family:Montserrat,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:clip;}
a{color:#E8414A;text-decoration:none;}
a:hover{color:#E30617;}
::selection{background:#E30617;color:#fff;}
img{max-width:100%;}
[x-cloak]{display:none!important;}
@keyframes flPop{0%{opacity:0;transform:scale(.86) translateY(14px);}60%{opacity:1;transform:scale(1.03);}100%{opacity:1;transform:scale(1);}}

/* ---------- Language switch ----------
   Was: runtime walked every [data-lang] node toggling inline display.
   Now: one scoped rule keyed off <body data-site-lang>.               */
[data-site-lang="vi"] [data-lang="en"],
[data-site-lang="en"] [data-lang="vi"]{display:none!important;}

/* ---------- Scroll reveal ----------
   Armed only when JS runs (html.js), so the page is fully readable if
   GSAP fails to load — the export hid this content unconditionally.    */
.js [data-reveal]{opacity:0;transform:translateY(28px);}
.js [data-reveal].is-in{opacity:1;transform:none;
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
@media (prefers-reduced-motion:reduce){
  .js [data-reveal]{opacity:1;transform:none;transition:none;}
}

/* ---------- Header: large centred logo, nav left, language right ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:80;
  display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"nav logo lang";
  align-items:center;gap:10px 24px;padding:10px 28px;
  background:rgba(6,9,12,.6);backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(230,238,242,.1);}
.site-header .header-nav{grid-area:nav;display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.site-header .header-logo{grid-area:logo;justify-self:center;display:block;line-height:0;}
.site-header .header-logo img{display:block;width:auto;height:clamp(72px,9vw,124px);}
.site-header .lang-switch{grid-area:lang;justify-self:end;}
/* keep anchor jumps clear of the fixed header */
section[id]{scroll-margin-top:150px;}
@media (max-width:820px){
  .site-header{grid-template-columns:1fr auto;grid-template-areas:"logo logo" "nav lang";row-gap:8px;}
  .site-header .header-logo img{height:clamp(58px,15vw,80px);}
}

/* ---------- Header nav links (was style-hover) ---------- */
.nav-link{position:relative;font-family:Oswald,sans-serif;font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(230,238,242,.62);transition:color .2s;}
.nav-link:hover{color:#E6EEF2;}
.nav-link.is-active{color:#E6EEF2;}
.nav-link.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:#E30617;}

/* ---------- Language buttons (was JS style assignment) ---------- */
.lang-btn{display:flex;align-items:center;gap:6px;border:0;cursor:pointer;font-family:Oswald,sans-serif;
  font-size:12px;letter-spacing:.12em;padding:5px 12px;border-radius:999px;background:transparent;color:#E6EEF2;
  transition:background .2s,color .2s;}
.lang-btn.is-active{background:#E30617;color:#fff;}

/* ---------- Trailer version tabs (was JS style assignment) ---------- */
.tab-btn{cursor:pointer;border:1px solid rgba(230,238,242,.3);background:transparent;color:#E6EEF2;
  padding:11px 18px;border-radius:2px;font-family:Oswald,sans-serif;font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;transition:background .2s,border-color .2s,color .2s;}
.tab-btn.is-active{border-color:#E30617;background:#E30617;color:#fff;}
.tab-btn:disabled{opacity:.4;cursor:not-allowed;}

/* ---------- "Press kit" ghost button (was style-hover) ---------- */
.btn-ghost{transition:border-color .2s,background .2s;}
.btn-ghost:hover{border-color:#E6EEF2;background:rgba(230,238,242,.08);}

/* ---------- Games / downloads cards (was style-hover) ---------- */
.fun-link{transition:background .2s,color .2s;}
.fun-link--blue:hover{background:#4a7896;}
.fun-link--sand:hover{background:#c0b077;}
.fun-link--red:hover{background:#AA1916;}

/* ---------- Press-kit download rows (was style-hover) ---------- */
.dl-row{transition:color .2s;}
.dl-row:hover{color:#E8414A;}

/* ---------- "Drop us a line" contact form (footer) ---------- */
.drop-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:26px;cursor:pointer;
  border:1px solid rgba(230,238,242,.4);background:transparent;color:#E6EEF2;padding:15px 30px;border-radius:2px;
  font-family:Oswald,sans-serif;font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  transition:border-color .2s,background .2s,color .2s;}
.drop-btn:hover{border-color:#E6EEF2;background:rgba(230,238,242,.08);}
.drop-btn--solid{width:100%;margin-top:4px;border-color:#E30617;background:#E30617;color:#fff;}
.drop-btn--solid:hover{background:#AA1916;border-color:#AA1916;}
.drop-btn--solid:disabled{opacity:.55;cursor:progress;}
.drop-form{margin:22px auto 0;max-width:520px;}
.drop-field{display:block;}
.drop-label{display:block;margin-bottom:6px;font-family:Oswald,sans-serif;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(230,238,242,.6);}
.drop-input,.drop-textarea{width:100%;box-sizing:border-box;background:rgba(230,238,242,.06);color:#E6EEF2;
  border:1px solid rgba(230,238,242,.2);border-radius:2px;padding:11px 13px;font-family:Montserrat,sans-serif;
  font-size:14px;transition:border-color .2s,background .2s;}
.drop-input:focus,.drop-textarea:focus{outline:none;border-color:#E30617;background:rgba(230,238,242,.1);}
.drop-textarea{resize:vertical;min-height:110px;}
.drop-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none;}
.drop-status{margin:2px 0;font-size:13px;line-height:1.5;border-radius:2px;padding:10px 12px;}
.drop-status--ok{background:rgba(87,137,171,.16);color:#9cc4dd;}
.drop-status--err{background:rgba(227,6,23,.14);color:#f0868d;}

/* ---------- "Coming soon to these cinemas" logo chips ---------- */
.cinemas{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
.cinema-chip{display:flex;align-items:center;justify-content:center;
  width:calc(50% - 5px);min-height:54px;padding:10px 14px;box-sizing:border-box;
  background:#fff;border-radius:8px;transition:transform .15s,box-shadow .15s;}
.cinema-chip:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.4);}
.cinema-chip img{display:block;width:auto;height:auto;max-width:100%;max-height:30px;object-fit:contain;}
.cinema-chip--dark{background:#1b1e22;}          /* CineStar wordmark is white */

/* ---------- Trailer "URL pending" panel ----------
   Layout lives here (not inline) so Alpine's x-show can toggle display
   between none and flex without losing the centering.                  */
.trailer-pending{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;}

/* ---------- Image placeholders (were the <image-slot> web component) ---------- */
.imgslot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;
  padding:18px;font-family:Oswald,sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(110,120,130,.95);border:1px dashed rgba(110,120,130,.55);border-radius:4px;}

/* ---------- Small screens ----------
   The export carried no media queries; collapse the widest grids so the
   page doesn't overflow on phones.                                      */
@media (max-width:820px){
  [data-mobile-stack]{grid-template-columns:1fr!important;}
}

/* ---------- Forced mobile layout (index.php ?mobile=1) ----------
   Renders the phone layout regardless of the real viewport width, so it
   can be captured on a wide screen. Not used by the normal site.        */
body.force-mobile{max-width:430px;margin:0 auto;}
body.force-mobile .site-header{position:static!important;
  grid-template-columns:1fr auto!important;grid-template-areas:"logo logo" "nav lang"!important;row-gap:8px;}
body.force-mobile .site-header .header-nav{flex-wrap:wrap!important;row-gap:10px;}
body.force-mobile .site-header .header-logo img{height:76px;}
body.force-mobile #trailer{padding-top:36px!important;}
body.force-mobile [data-mobile-stack]{grid-template-columns:1fr!important;}
