/* LeTa Works · shared core: fonts, tokens, cursor, veil (page transition), product switcher, reveal helpers */
@font-face{font-family:Archivo;src:url('../fonts/archivo-400_800-lat.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:Archivo;src:url('../fonts/archivo-400_800-ext.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}
@font-face{font-family:Mono;src:url('../fonts/jetbrains-mono-400-lat.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Mono;src:url('../fonts/jetbrains-mono-400-ext.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0100-024F,U+1E00-1EFF}

:root{
  --bg:#0a0a09;--bg-2:#121210;--fg:#ece8df;--dim:rgba(236,232,223,.58);--faint:rgba(236,232,223,.32);--line:rgba(236,232,223,.14);
  --accent:#ece8df;--on-accent:#0a0a09;
  --c-launcher:#cda17e;--c-iptv:#e69459;--c-hoops:#c5f03a;--c-charge:#c5f03a;
  --bg-launcher:#131310;--bg-iptv:#101114;--bg-hoops:#000;--bg-charge:#efede6;
  --sans:Archivo,system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:Mono,ui-monospace,SFMono-Regular,Menlo,monospace;
  --gutter:clamp(16px,3vw,44px);
  --bar-h:64px;
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --ease-back:cubic-bezier(.34,1.56,.64,1);
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);color:var(--fg)}
body{margin:0;min-height:100vh;font-family:var(--sans);font-size:16px;line-height:1.5;background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}
img,video,canvas,svg{display:block;max-width:100%}
img,video{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p,figure,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
::selection{background:var(--accent);color:var(--on-accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.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}
.skip{position:fixed;left:12px;top:-60px;z-index:10001;padding:10px 16px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-weight:600;transition:top .3s var(--ease)}
.skip:focus{top:12px}
.mono{font-family:var(--mono);font-size:12px;letter-spacing:.04em;text-transform:none;font-variant-numeric:tabular-nums}
.tnum{font-variant-numeric:tabular-nums}

/* lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* split text masks */
.lw-line{display:block;overflow:clip;padding-bottom:.08em;margin-bottom:-.08em}
.lw-line>.lw-line-in{display:block;will-change:transform}
.lw-char{display:inline-block;will-change:transform}

/* reveal fallback: without JS everything stays visible */
.js [data-reveal]{opacity:0}
.reduce [data-reveal],.no-js [data-reveal]{opacity:1!important;transform:none!important}

/* ---------- cursor ---------- */
.lw-cursor{position:fixed;left:0;top:0;z-index:9002;pointer-events:none;display:none}
.has-cursor .lw-cursor{display:block}
.lw-cursor-dot{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--accent);transition:opacity .3s,transform .3s var(--ease)}
.lw-cursor-ring{position:absolute;left:0;top:0;display:grid;place-items:center;min-width:38px;height:38px;padding:0;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);transform:translate(-50%,-50%);transition:min-width .45s var(--ease),height .45s var(--ease),padding .45s var(--ease),background .35s,border-color .35s,opacity .3s}
.lw-cursor-label{font-family:var(--mono);font-size:11px;letter-spacing:.06em;white-space:nowrap;color:var(--on-accent);opacity:0;max-width:0;overflow:hidden;transition:opacity .25s,max-width .45s var(--ease)}
.lw-cursor.is-label .lw-cursor-ring{min-width:64px;height:30px;padding:0 14px;background:var(--accent);border-color:var(--accent)}
.lw-cursor.is-label .lw-cursor-label{opacity:1;max-width:220px}
.lw-cursor.is-label .lw-cursor-dot{opacity:0}
.lw-cursor.is-hover .lw-cursor-ring{min-width:56px;height:56px;border-color:var(--accent)}
.lw-cursor.is-down .lw-cursor-ring{transform:translate(-50%,-50%) scale(.85)}
.lw-cursor.is-hidden{opacity:0}

/* ---------- veil (halftone page transition) ---------- */
.lw-veil{position:fixed;inset:0;z-index:9500;width:100%;height:100%;pointer-events:none}
.lw-veil.is-on{pointer-events:all}
html.veil-pending body{visibility:hidden}
html.veil-pending .lw-veil{visibility:visible}

/* ---------- product switcher (used on product pages) ---------- */
.lw-switch{position:fixed;left:var(--gutter);top:14px;z-index:900;display:flex;align-items:center;gap:10px;height:38px;padding:0 14px 0 8px;border-radius:999px;background:color-mix(in srgb,var(--bg) 62%,transparent);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);color:var(--fg);transition:transform .5s var(--ease),background .4s}
.lw-switch:hover{background:color-mix(in srgb,var(--bg) 82%,transparent)}
.lw-switch-mark{display:grid;grid-template-columns:repeat(2,9px);gap:3px;padding:2px}
.lw-switch-mark i{width:9px;height:9px;border-radius:2px;background:var(--c);opacity:.38;transition:opacity .3s,transform .5s var(--ease)}
.lw-switch-mark i.is-here{opacity:1}
.lw-switch:hover .lw-switch-mark i{opacity:1}
.lw-switch:hover .lw-switch-mark i:nth-child(1){transform:translate(-1px,-1px)}
.lw-switch:hover .lw-switch-mark i:nth-child(2){transform:translate(1px,-1px)}
.lw-switch:hover .lw-switch-mark i:nth-child(3){transform:translate(-1px,1px)}
.lw-switch:hover .lw-switch-mark i:nth-child(4){transform:translate(1px,1px)}
.lw-switch-label{font-size:13px;font-weight:600;letter-spacing:-.005em;font-stretch:112%}
.lw-switch-label em{font-style:normal;opacity:.55;font-weight:500}

.lw-menu{position:fixed;inset:0;z-index:950;display:grid;grid-template-rows:auto 1fr auto;padding:calc(var(--bar-h) + 8px) var(--gutter) var(--gutter);background:#0b0b0a;color:#ece8df;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .8s var(--ease-io),visibility 0s .8s}
.lw-menu.is-open{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .8s var(--ease-io),visibility 0s}
.lw-menu-close{position:absolute;right:var(--gutter);top:14px;height:38px;padding:0 16px;border-radius:999px;border:1px solid rgba(236,232,223,.18);font-family:var(--mono);font-size:12px}
.lw-menu-head{display:flex;justify-content:space-between;align-items:end;padding-bottom:14px;border-bottom:1px solid rgba(236,232,223,.14);color:rgba(236,232,223,.6)}
.lw-menu-list{display:flex;flex-direction:column;justify-content:center}
.lw-menu-item{position:relative;display:grid;grid-template-columns:3.2em 1fr auto;align-items:center;gap:16px;padding:clamp(10px,1.6vh,18px) 0;border-bottom:1px solid rgba(236,232,223,.1);overflow:hidden}
.lw-menu-item::before{content:"";position:absolute;inset:0;background:var(--c);transform:scaleY(0);transform-origin:bottom;transition:transform .6s var(--ease)}
.lw-menu-item:hover::before,.lw-menu-item:focus-visible::before{transform:scaleY(1)}
.lw-menu-item>*{position:relative}
.lw-menu-item .n{font-family:var(--mono);font-size:12px;opacity:.6}
.lw-menu-item .t{font-size:clamp(34px,7.4vw,112px);line-height:.92;font-weight:700;font-stretch:118%;letter-spacing:-.035em;transition:transform .6s var(--ease),color .3s}
.lw-menu-item .d{font-family:var(--mono);font-size:12px;text-align:right;opacity:.7;max-width:22ch}
.lw-menu-item:hover .t,.lw-menu-item:focus-visible .t{transform:translateX(.18em);color:var(--ink,#0b0b0a)}
.lw-menu-item:hover .n,.lw-menu-item:hover .d,.lw-menu-item:focus-visible .n,.lw-menu-item:focus-visible .d{color:var(--ink,#0b0b0a);opacity:.85}
.lw-menu-item .here{position:absolute;right:0;top:10px;font-size:11px;opacity:.55}
.lw-menu-foot{display:flex;justify-content:space-between;gap:16px;padding-top:14px;color:rgba(236,232,223,.6)}
.lw-menu-foot a:hover{color:#ece8df}

/* ---------- language toggle ---------- */
.lw-lang{display:inline-flex;align-items:center;height:38px;padding:3px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 55%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.lw-lang button{height:30px;min-width:38px;padding:0 10px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--dim);transition:background .3s,color .3s}
.lw-lang button[aria-pressed=true]{background:var(--fg);color:var(--bg)}
.lw-lang button:hover{color:var(--fg)}
.lw-lang button[aria-pressed=true]:hover{color:var(--bg)}
.lw-veil-label{position:fixed;left:50%;top:50%;z-index:9501;transform:translate(-50%,-50%);pointer-events:none;opacity:0;font-family:var(--mono);font-size:13px;letter-spacing:.08em;white-space:nowrap}

/* ---------- progress hairline ---------- */
.lw-progress{position:fixed;left:0;top:0;z-index:890;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--accent);pointer-events:none}

/* ---------- grain ---------- */
.lw-grain{position:fixed;inset:-50%;z-index:880;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:lw-grain 1.2s steps(6) infinite}
@keyframes lw-grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* buttons */
.lw-btn{--b:var(--accent);--t:var(--on-accent);position:relative;display:inline-flex;align-items:center;gap:12px;height:52px;padding:0 26px;border-radius:999px;background:var(--b);color:var(--t);font-weight:600;font-size:15px;letter-spacing:-.005em;overflow:hidden;isolation:isolate;transition:transform .5s var(--ease)}
.lw-btn::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:color-mix(in srgb,var(--b) 70%,#fff);transform:translateY(101%);transition:transform .55s var(--ease)}
.lw-btn:hover::after{transform:none}
.lw-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .5s var(--ease)}
.lw-btn:hover svg{transform:translateX(4px)}
.lw-btn.ghost,.lw-btn.lw-btn.ghost{--b:transparent;--t:var(--fg);border:1px solid var(--line)}
.lw-btn.ghost::after{background:color-mix(in srgb,var(--fg) 10%,transparent)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
.reduce .lw-grain{animation:none}
@media (max-width:720px){
  :root{--bar-h:58px}
  .lw-menu-item{grid-template-columns:2.2em 1fr}
  .lw-menu-item .d{display:none}
  .lw-switch-label em{display:none}
}
@media print{.lw-cursor,.lw-veil,.lw-grain,.lw-switch,.lw-progress{display:none!important}}
