/* ============================================================
   ORE STUDIO — cinematic dark experience (self-contained)
   Loaded AFTER styles.css; scoped to body.ore-studio
   ============================================================ */
body.ore-studio{
  --d-bg:#070708;
  --d-bg2:#0d0d10;
  --d-ink:#f4f4f5;
  --d-ink2:#a6a6b0;
  --d-ink3:#6e6e78;
  --d-line:rgba(255,255,255,0.10);
  --d-line2:rgba(255,255,255,0.055);
  --d-lime:#bfe84a;
  --d-cyan:#7fe7ff;
  --ease:cubic-bezier(.22,1,.36,1);
  --font:"Questrial",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-head:"Questrial",system-ui,-apple-system,"Segoe UI",sans-serif;
  background:var(--d-bg);
  color:var(--d-ink);
  font-weight:400;
}
.ore-studio.has-cur{ cursor:none; }
/* Questrial is single-weight (400) — force 400 everywhere so nothing faux-bolds */
.ore-studio h1,.ore-studio h2,.ore-studio h3,.ore-studio h4,.ore-studio h5,.ore-studio h6,
.ore-studio p,.ore-studio a,.ore-studio span,.ore-studio b,.ore-studio strong,.ore-studio div,
.ore-studio button,.ore-studio .btn{ font-weight:400 !important; }
body.ore-studio ::selection{ background:rgba(191,232,74,.32); color:#fff; }

/* ---- header / footer dark ---- */
.ore-studio .header.scrolled{ background:rgba(7,7,8,.72); backdrop-filter:blur(16px) saturate(140%); -webkit-backdrop-filter:blur(16px) saturate(140%); border-bottom:1px solid var(--d-line); }
.ore-studio .header .logo-mark,.ore-studio .footer .logo-mark{ filter:brightness(0) invert(1); }
.ore-studio .nav a{ color:var(--d-ink2); }
.ore-studio .nav a:hover{ color:var(--d-ink); background:rgba(255,255,255,.06); }
.ore-studio .nav a.is-current{ color:#06210a; background:var(--d-lime); font-weight:600; }
.ore-studio .lang-btn{ background:rgba(255,255,255,.05); border-color:var(--d-line); color:var(--d-ink2); }
.ore-studio .lang-menu{ background:#0d0d10; border-color:var(--d-line); }
.ore-studio .lang-opt{ color:var(--d-ink2); }
.ore-studio .lang-opt:hover,.ore-studio .lang-opt.is-active{ background:rgba(255,255,255,.06); color:var(--d-ink); }
.ore-studio .burger span,.ore-studio .burger span::before,.ore-studio .burger span::after{ background:var(--d-ink); }
.ore-studio .mobile-nav{ background:rgba(7,7,8,.97); }
.ore-studio .mobile-nav a{ color:var(--d-ink); border-bottom-color:var(--d-line2); }
.ore-studio .btn-grad{ color:#06210a; background:linear-gradient(92deg,var(--d-lime),#9ad53e); box-shadow:0 16px 44px -16px rgba(191,232,74,.5); }
.ore-studio .btn-grad:hover{ background:linear-gradient(92deg,#d2f566,var(--d-lime)); }
.ore-studio .btn-ghost{ color:var(--d-ink); background:rgba(255,255,255,.04); border:1px solid var(--d-line); }
.ore-studio .btn-ghost:hover{ background:rgba(255,255,255,.09); box-shadow:none; }
.ore-studio .btn-soft{ background:rgba(255,255,255,.06); color:var(--d-ink); border-color:rgba(255,255,255,.12); }
.ore-studio .btn-soft::before{ background:var(--d-lime); }
.ore-studio .btn-soft:hover{ color:#06210a; }
.ore-studio .footer{ background:#050506; border-top:1px solid var(--d-line); }
.ore-studio .footer p,.ore-studio .footer-bottom,.ore-studio .footer a{ color:var(--d-ink2); }
.ore-studio .footer a:hover{ color:var(--d-ink); }
.ore-studio .footer h5{ color:var(--d-ink); }
.ore-studio .footer-soc a{ border-color:var(--d-line); color:var(--d-ink2); }
.ore-studio .footer-top,.ore-studio .footer-bottom{ border-color:var(--d-line); }
.ore-studio .slogan{ color:var(--d-lime); }
/* orestudio wordmark logo */
.ore-studio .logo-wordmark{ height:52px; width:auto; display:block; }
.ore-studio .footer .logo-wordmark{ height:40px; }
@media (max-width:560px){ .ore-studio .logo-wordmark{ height:42px; } }

/* ---- custom cursor ---- */
.cur-dot,.cur-ring{ position:fixed; top:0; left:0; z-index:9999; pointer-events:none; border-radius:50%; mix-blend-mode:difference; }
.cur-dot{ width:7px; height:7px; background:#fff; transform:translate(-50%,-50%); }
.cur-ring{ width:38px; height:38px; border:1.5px solid #fff; transform:translate(-50%,-50%); transition:transform .14s ease-out, width .25s var(--ease), height .25s var(--ease), background .25s, opacity .25s; }
body.cur-grow .cur-ring{ width:64px; height:64px; background:rgba(255,255,255,.12); }
@media (hover:none){ .cur-dot,.cur-ring{ display:none; } }

/* ---- loader ---- */
#cine-loader{ position:fixed; inset:0; z-index:9000; background:var(--d-bg); display:grid; place-items:center; transition:transform 1s var(--ease); }
#cine-loader.done{ transform:translateY(-100%); }
.cine-loader-word{ font-family:var(--font-head); font-weight:800; letter-spacing:.18em; font-size:clamp(22px,4vw,40px); color:var(--d-ink); overflow:hidden; }
.cine-loader-word span{ display:inline-block; opacity:0; transform:translateY(100%); animation:loadIn .7s var(--ease) forwards; }
@keyframes loadIn{ to{ opacity:1; transform:none; } }
.cine-loader-bar{ margin-top:18px; width:160px; height:2px; background:rgba(255,255,255,.12); overflow:hidden; border-radius:2px; }
.cine-loader-bar i{ display:block; height:100%; width:0; background:var(--d-lime); animation:loadBar 1.1s ease forwards .2s; }
@keyframes loadBar{ to{ width:100%; } }

/* ---- reveal utilities ---- */
.ore-studio .r{ opacity:0; transform:translateY(30px); transition:opacity .9s var(--ease), transform .9s var(--ease); will-change:opacity,transform; }
.ore-studio .r.in{ opacity:1; transform:none; }
.ore-studio .r.d1{ transition-delay:.08s; } .ore-studio .r.d2{ transition-delay:.16s; }
.ore-studio .r.d3{ transition-delay:.24s; } .ore-studio .r.d4{ transition-delay:.32s; }
.split{ display:block; }
.split .w{ display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.02em; }
.split .wi{ display:inline-block; transform:translateY(115%); transition:transform .85s var(--ease); }
.split.in .wi{ transform:translateY(0); }

/* ---- generic section ---- */
.ore-studio .wrap{ position:relative; z-index:2; }
.cine-eyebrow{ display:inline-flex; align-items:center; gap:9px; font-size:12.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--d-ink3); }
.cine-eyebrow::before{ content:""; width:26px; height:1px; background:var(--d-lime); }

/* ============================================================
   HERO
   ============================================================ */
.cine-hero{ position:relative; padding:165px 0 54px; overflow:hidden; }
.cine-hero-bg{ position:absolute; inset:0; z-index:0; }
.cine-hero-bg .glow{ position:absolute; border-radius:50%; filter:blur(90px); }
.cine-hero-bg .glow.g1{ width:520px; height:520px; background:rgba(191,232,74,.10); top:-12%; left:-8%; }
.cine-hero-bg .glow.g2{ width:440px; height:440px; background:rgba(127,231,255,.08); bottom:-16%; right:-6%; }
.cine-hero-bg .vignette{ position:absolute; inset:0; background:radial-gradient(120% 90% at 50% 10%, transparent 40%, rgba(0,0,0,.55) 100%); }
.cine-hero-bg .grain{ position:absolute; inset:0; opacity:.05; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.cine-hero .wrap{ width:100%; text-align:left; }
.cine-hero-label{ display:inline-block; font-size:clamp(15px,1.4vw,18px); font-weight:600; color:var(--d-ink); margin-bottom:22px; letter-spacing:-.01em; }
.cine-hero-foot{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-top:42px; flex-wrap:wrap; }
.cine-hero-foot .cine-hero-actions{ margin-top:0; justify-content:flex-start; }
.cine-hero-meta{ font-size:12.5px; letter-spacing:.10em; color:var(--d-ink3); text-transform:uppercase; }
.cine-hero-meta b{ color:var(--d-ink2); font-weight:600; }
.cine-hero-meta i{ color:var(--d-lime); font-style:normal; margin:0 8px; }
.cine-hero h1{ font-family:var(--font-head); font-weight:800; letter-spacing:-.045em; line-height:.96; font-size:clamp(40px,8vw,112px); margin:0; max-width:15ch; }
.cine-hero h1 .hl{ color:var(--d-lime); }
.cine-hero-sub{ margin:30px auto 0; max-width:560px; font-size:clamp(16px,1.5vw,19px); color:var(--d-ink2); line-height:1.6; }
.cine-hero-actions{ margin-top:36px; display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.scroll-cue{ position:absolute; left:50%; bottom:30px; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--d-ink3); font-size:11px; letter-spacing:.18em; text-transform:uppercase; }
.scroll-cue i{ width:1px; height:42px; background:linear-gradient(var(--d-lime),transparent); animation:cueMove 1.8s ease-in-out infinite; transform-origin:top; }
@keyframes cueMove{ 0%,100%{ transform:scaleY(.4); opacity:.4; } 50%{ transform:scaleY(1); opacity:1; } }

/* ---- full-width hero visual band + callouts ---- */
.cine-hero-band{ position:relative; width:100%; height:min(78vh,760px); min-height:440px; overflow:hidden; background:var(--d-bg); }
.band-media{ position:absolute; inset:0; }
.band-media img{ width:100%; height:100%; object-fit:cover; object-position:center 32%; display:block; }
.band-fade{ position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, var(--d-bg) 0%, rgba(7,7,8,0) 24%, rgba(7,7,8,0) 62%, rgba(7,7,8,.6) 100%); }
.band-cue{ position:absolute; z-index:2; display:flex; align-items:center; gap:11px; }
.band-cue i{ width:13px; height:13px; border-radius:50%; background:#fff; box-shadow:0 0 0 6px rgba(255,255,255,.15); flex:0 0 auto; }
.band-cue b{ font-weight:600; font-size:14px; color:#fff; white-space:nowrap;
  background:rgba(10,10,12,.42); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  padding:7px 14px; border-radius:100px; border:1px solid rgba(255,255,255,.16); }
.band-cue.c1{ top:26%; right:9%; } .band-cue.c2{ top:54%; right:17%; } .band-cue.c3{ bottom:20%; left:8%; }
@media (max-width:700px){
  .cine-hero-band{ height:54vh; }
  .band-cue b{ font-size:12.5px; padding:6px 11px; }
  .band-cue.c1{ right:6%; } .band-cue.c2{ right:6%; top:50%; } .band-cue.c3{ left:6%; }
}

/* ---- marquee strip ---- */
.cine-marquee{ position:relative; padding:26px 0; border-top:1px solid var(--d-line2); border-bottom:1px solid var(--d-line2); overflow:hidden; white-space:nowrap; }
.cine-marquee-track{ display:inline-block; white-space:nowrap; animation:mq 26s linear infinite; }
.cine-marquee-track span{ font-family:var(--font-head); font-weight:700; font-size:clamp(20px,3vw,34px); letter-spacing:-.02em; color:var(--d-ink); margin:0 26px; }
.cine-marquee-track span em{ color:var(--d-lime); font-style:normal; margin-left:52px; }
@keyframes mq{ to{ transform:translateX(-50%); } }

/* ============================================================
   MANIFESTO (big-type line reveal)
   ============================================================ */
.cine-manifesto{ padding:clamp(90px,14vw,180px) 0; }
.cine-manifesto h2{ font-family:var(--font-head); font-weight:700; letter-spacing:-.03em; line-height:1.08; font-size:clamp(28px,4.6vw,62px); max-width:18ch; color:var(--d-ink2); }
.cine-manifesto h2 b{ color:var(--d-ink); font-weight:700; }
.cine-manifesto h2 .hl{ color:var(--d-lime); font-weight:700; }

/* ============================================================
   CAPABILITIES (sticky left, scrolling right)
   ============================================================ */
.cine-caps{ padding:clamp(60px,8vw,110px) 0; }
.caps-grid{ display:grid; grid-template-columns:0.8fr 1.2fr; gap:60px; align-items:start; }
.caps-sticky{ position:sticky; top:140px; }
.caps-sticky h2{ font-family:var(--font-head); font-weight:800; letter-spacing:-.03em; line-height:1.04; font-size:clamp(30px,3.6vw,52px); margin-top:18px; }
.caps-sticky p{ margin-top:18px; color:var(--d-ink2); max-width:34ch; line-height:1.6; }
.caps-list{ display:flex; flex-direction:column; }
.cap-row{ position:relative; padding:30px 0; border-top:1px solid var(--d-line); display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:start; transition:background .3s; }
.cap-row:last-child{ border-bottom:1px solid var(--d-line); }
.cap-row .ix{ font-family:var(--s-mono,monospace); font-size:13px; color:var(--d-ink3); padding-top:6px; }
.cap-row h3{ font-family:var(--font-head); font-weight:700; font-size:clamp(20px,2.4vw,30px); letter-spacing:-.02em; color:var(--d-ink); transition:color .3s, transform .4s var(--ease); }
.cap-row p{ margin-top:8px; color:var(--d-ink2); font-size:14.5px; line-height:1.55; max-width:46ch; }
.cap-row:hover h3{ color:var(--d-lime); transform:translateX(8px); }
.cap-row .arw{ position:absolute; right:6px; top:32px; color:var(--d-ink3); opacity:0; transform:translateX(-8px); transition:.35s var(--ease); }
.cap-row:hover .arw{ opacity:1; transform:none; color:var(--d-lime); }

/* ============================================================
   SHOWCASE (pinned horizontal scroll)
   ============================================================ */
.cine-show{ position:relative; }
.cine-show .pin{ position:relative; }
.cine-show .pin-stage{ position:sticky; top:0; height:100vh; overflow:hidden; display:flex; align-items:center; }
.cine-show .pin-track{ display:flex; gap:30px; padding:0 8vw; will-change:transform; }
.show-head{ flex:0 0 auto; width:min(76vw,420px); align-self:center; padding-right:20px; }
.show-head .cine-eyebrow{ margin-bottom:16px; }
.show-head h2{ font-family:var(--font-head); font-weight:800; letter-spacing:-.03em; line-height:1.04; font-size:clamp(30px,4vw,56px); }
.show-head p{ margin-top:16px; color:var(--d-ink2); max-width:36ch; line-height:1.6; }
.show-card{ flex:0 0 auto; width:min(82vw,440px); }
.show-card .pic{ position:relative; aspect-ratio:4/5; border-radius:18px; overflow:hidden; border:1px solid var(--d-line); background:#101014; }
.show-card .pic img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.show-card:hover .pic img{ transform:scale(1.05); }
.show-card .pic::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55)); }
.show-card .tag{ position:absolute; z-index:2; top:14px; left:14px; height:26px; padding:0 12px; display:inline-flex; align-items:center; border-radius:100px; font-size:12px; font-weight:700; color:#06210a; background:var(--d-lime); }
.show-card .cap{ position:absolute; z-index:2; left:16px; bottom:14px; }
.show-card .cap b{ display:block; font-family:var(--font-head); font-size:17px; color:#fff; }
.show-card .cap span{ font-size:12.5px; color:rgba(255,255,255,.7); }
.show-progress{ position:absolute; left:8vw; right:8vw; bottom:42px; height:2px; background:var(--d-line); z-index:3; }
.show-progress i{ display:block; height:100%; width:0; background:var(--d-lime); box-shadow:0 0 10px var(--d-lime); }

/* ============================================================
   PROCESS (zigzag)
   ============================================================ */
.cine-process{ padding:clamp(70px,10vw,130px) 0; }
.proc-row{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; padding:46px 0; border-top:1px solid var(--d-line2); }
.proc-row:nth-child(even) .proc-text{ order:2; }
.proc-num{ font-family:var(--font-head); font-weight:800; font-size:clamp(60px,9vw,120px); line-height:1; color:transparent; -webkit-text-stroke:1px var(--d-line); }
.proc-text h3{ font-family:var(--font-head); font-weight:700; font-size:clamp(22px,2.6vw,34px); letter-spacing:-.02em; margin-top:12px; }
.proc-text p{ margin-top:12px; color:var(--d-ink2); max-width:42ch; line-height:1.6; }
.proc-visual{ aspect-ratio:16/11; border-radius:18px; overflow:hidden; border:1px solid var(--d-line); background:#101014; }
.proc-visual img{ width:100%; height:100%; object-fit:cover; }

/* ============================================================
   STATS
   ============================================================ */
.cine-stats{ padding:clamp(50px,7vw,90px) 0; }
.stats-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.stat-c b{ display:block; font-family:var(--font-head); font-weight:800; font-size:clamp(38px,5.2vw,68px); letter-spacing:-.04em;
  background:linear-gradient(180deg,#fff,#9aa0a8); -webkit-background-clip:text; background-clip:text; color:transparent; }
.stat-c b .u{ color:var(--d-lime); -webkit-text-fill-color:var(--d-lime); }
.stat-c span{ color:var(--d-ink2); font-size:14px; }

/* ============================================================
   CTA
   ============================================================ */
.cine-cta{ padding:clamp(90px,14vw,170px) 0; text-align:center; position:relative; overflow:hidden; }
.cine-cta::before{ content:""; position:absolute; left:50%; top:40%; width:620px; height:620px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle, rgba(191,232,74,.12), transparent 60%); pointer-events:none; }
.cine-cta h2{ font-family:var(--font-head); font-weight:800; letter-spacing:-.04em; line-height:1.0; font-size:clamp(38px,7vw,92px); max-width:16ch; margin:0 auto; }
.cine-cta h2 .hl{ color:var(--d-lime); }
.cine-cta p{ margin:24px auto 0; max-width:520px; color:var(--d-ink2); font-size:clamp(16px,1.5vw,18px); }
.cine-cta .cine-hero-actions{ margin-top:36px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px){
  .caps-grid{ grid-template-columns:1fr; gap:36px; }
  .caps-sticky{ position:static; }
  .stats-row{ grid-template-columns:repeat(2,1fr); gap:30px 18px; }
  .proc-row{ grid-template-columns:1fr; gap:24px; }
  .proc-row:nth-child(even) .proc-text{ order:0; }
  /* pinned horizontal -> native horizontal swipe */
  .cine-show .pin{ height:auto !important; }
  .cine-show .pin-stage{ position:static; height:auto; }
  .cine-show .pin-track{ transform:none !important; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:0 20px 26px; }
  .show-card{ scroll-snap-align:center; width:78vw; }
  .show-head{ width:78vw; }
  .show-progress{ display:none; }
}
@media (max-width:560px){
  .cine-hero{ padding:120px 0 70px; }
  .stats-row{ grid-template-columns:1fr 1fr; }
}

/* ---- reduced motion ---- */
@media (prefers-reduced-motion: reduce){
  body.ore-studio{ cursor:auto; }
  .cur-dot,.cur-ring{ display:none; }
  .ore-studio .r{ opacity:1 !important; transform:none !important; }
  .split .wi{ transform:none !important; }
  .cine-marquee-track{ animation:none; }
  .scroll-cue i{ animation:none; }
  #cine-loader{ display:none; }
  .cine-show .pin{ height:auto !important; }
  .cine-show .pin-stage{ position:static; height:auto; }
  .cine-show .pin-track{ transform:none !important; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:26px; }
  .show-card{ scroll-snap-align:center; }
}
