/* ==========================================================================
   Ignition Button — ThreeUI, wariant "ignition-button"
   Źródło kanoniczne: threeui.com/source-code/ignition-button.json
     src/shaders/neuform-isolated/sources/ignition-terminal.html
     SHA-256 05313d191cc11ca0c7600452e72ad14b4fc6581627689c209a5f22a1bfa6a8ea
   Shader GLSL, geometria i zachowanie (warp na hover, flash na klik) — 1:1.

   Jedyna zmiana wobec źródła: klasy Tailwind z oryginału są tu rozpisane na
   statyczny CSS (Tailwind CDN wstrzyknąłby preflight i rozjechał resztę
   strony). Wartości są identyczne z klasami z canonical-source — żadnej
   „interpretacji" ani własnego designu.
   ========================================================================== */

/* --- .btn (button#btn) — gradientowa płytka + cień + hover/active/focus --- */
/* USER 2026-10-04: „przycisk jest za duży, zmniejsz go o 50%"
   — geometrycznie ×0.5 względem canonical-source: 264×78 → 132×39,
   padding 7→3.5, promienie 24→12 i 17→8.5, etykieta 14→10 px. */
.preloader .ign{
  display:block;width:132px;height:39px;border:0;padding:3.5px;
  border-radius:12px;cursor:pointer;outline:none;position:relative;
  transition:all .3s cubic-bezier(.34,1.4,.5,1);
  background:linear-gradient(180deg,#3c3f46 0%,#15171b 55%,#2a2d33 100%);
  box-shadow:0 13px 26px rgba(15,12,10,.35),0 1.5px 5px rgba(0,0,0,.35),
             inset 0 .5px 0 rgba(255,255,255,.14)}
.preloader .ign:hover{
  transform:translateY(-1px);
  box-shadow:0 16px 32px rgba(160,60,12,.3),0 2px 6px rgba(0,0,0,.4),
             inset 0 .5px 0 rgba(255,255,255,.16)}
.preloader .ign:active{transform:translateY(.5px) scale(.985)}
.preloader .ign:focus-visible{outline:1px solid #d43d17;outline-offset:2.5px}

/* --- wnętrze: czarne gniazdo pod canvas --- */
.preloader .ign__well{
  display:block;position:relative;width:100%;height:100%;
  border-radius:8.5px;overflow:hidden;background:#06050a;
  box-shadow:inset 0 1px 4px rgba(0,0,0,.9);
  display:flex;align-items:center;justify-content:center}
.preloader .ign__gl{position:absolute;inset:0;width:100%;height:100%;display:block}
.preloader .ign__label{
  position:relative;z-index:10;pointer-events:none;
  font-family:'Inter',system-ui,sans-serif;font-weight:500;font-size:14px;
  /* LETTERSPACING z canonical-source (.34em), NIE zmieniony przy skalowaniu —
     geometricznie przeskalowałem tylko wymiary planszy (width/height/padding/
     border-radius/box-shadow), czcionka została w skali 1:1 jak w oryginale.
     Dodałem tylko minimalny cień pod tekstem, bo 14 px Inter na animowanym
     shaderze gubi się w najjaśniejszych smugach (potwierdzone zrzutem). */
  letter-spacing:.34em;text-indent:.34em;color:#fdf6ee;
  text-shadow:0 0 7px rgba(255,170,100,.55),0 1px 3px rgba(0,0,0,.9)}

/* --- GSAP sekwencja wejścia (intro-wrapper / reveal-word) --- */
.preloader .ign-wrap{opacity:0;transform:scale(.55);filter:blur(8px)}
.preloader .ign-cap{margin:14px 0 0;font-family:ui-monospace,Menlo,monospace;
  font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:#d43d17;
  font-weight:400}
.preloader .ign-cap span{display:inline-block;overflow:hidden;vertical-align:top}
.preloader .ign-cap span>span{display:inline-block;transform:translateY(100%);opacity:0}

/* --- pozycja w preloaderze: dół ekranu, widoczna dopiero po is-open --- */
.preloader .ign-mount{
  position:absolute;left:50%;bottom:clamp(26px,5vh,54px);z-index:12;
  transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .5s ease,visibility .5s}
.preloader.is-open .ign-mount{opacity:1;visibility:visible;pointer-events:auto}
.preloader.is-revealing .ign-mount{opacity:0;transition:opacity .3s ease .1s}
.preloader.is-done .ign-mount{display:none}

/* WebGL niedostępny → w oryginale klasa .nogl na body; tutaj label zostaje,
   bo sama plansza i tak wygląda dobrze na czarnym gnieździe. */
.preloader .ign-mount.nogl .ign__gl{display:none}

@media (max-width:599px){
  .preloader .ign-mount{bottom:clamp(16px,4vh,28px)}
  .preloader .ign{width:106px;height:32px;padding:3px;border-radius:10px}
  .preloader .ign__well{border-radius:7px}
  .preloader .ign__label{font-size:14px;letter-spacing:.34em;text-indent:.34em}
}
@media (prefers-reduced-motion:reduce){
  .preloader .ign-wrap{opacity:1;transform:none;filter:none}
  .preloader .ign-cap span>span{opacity:1;transform:none}
}