/* THIERYNHU MOBILE FINAL — consolidated from V5.8/V5.6 features. Desktop >=992px unaffected. */

/* ===== mobile-v4.css ===== */
@media screen and (max-width:991px){
  html,body{overflow-x:hidden!important;overflow-y:auto!important;height:auto!important;background:#090b0c!important;-webkit-overflow-scrolling:touch}
  #main-container,.pace,.loader{display:none!important}
  .tnv4[hidden]{display:block!important}.tnv4{display:block!important;position:relative;z-index:1;background:#f4f4f1;color:#343031;min-height:100vh;font-family:'Inconsolata',monospace;overflow:hidden}
  .tnv4 *{box-sizing:border-box}.tnv4 img{display:block;max-width:100%}
  .tnv4-progress{position:fixed;z-index:2147483646;left:0;top:0;width:100%;height:3px;background:rgba(0,0,0,.08);pointer-events:none}.tnv4-progress span{display:block;width:0;height:100%;background:#ff5d60}
  .tnv4-signal{position:fixed;z-index:2147483645;left:18px;top:74px;bottom:28px;width:18px;pointer-events:none}.tnv4-track,.tnv4-signal-fill{position:absolute;left:8px;top:0;width:2px;border-radius:2px}.tnv4-track{height:100%;background:rgba(255,93,96,.22)}.tnv4-signal-fill{height:0;background:#ff5d60;box-shadow:0 0 12px rgba(255,93,96,.32)}
  .tnv4-signal-dot{position:absolute;left:1px;top:0;width:16px;height:16px;border-radius:50%;background:#ff5d60;transform:translateY(-7px);box-shadow:0 0 0 0 rgba(255,93,96,.35);animation:tnv4Pulse 1.65s ease-out infinite}
  @keyframes tnv4Pulse{0%{box-shadow:0 0 0 0 rgba(255,93,96,.38)}65%{box-shadow:0 0 0 13px rgba(255,93,96,0)}100%{box-shadow:0 0 0 0 rgba(255,93,96,0)}}
  .tnv4-hud{position:fixed;z-index:2147483644;right:14px;top:22px;border:1px solid rgba(52,48,49,.16);background:rgba(244,244,241,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:11px 14px;font-size:10px;font-weight:700;letter-spacing:.22em;color:#454142}
  .tnv4-whatsapp{position:fixed;z-index:2147483647;right:16px;bottom:18px;height:48px;display:flex;align-items:center;gap:10px;padding:0 15px 0 11px;background:#282526;color:#fff!important;text-decoration:none!important;border:1px solid rgba(255,255,255,.12);box-shadow:0 14px 34px rgba(0,0,0,.22);border-radius:2px;transition:transform .25s ease,background .25s ease}.tnv4-whatsapp:active{transform:scale(.96);background:#ff5d60}.tnv4-wa-icon{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#ff5d60}.tnv4-wa-icon svg{width:20px;height:20px;fill:#fff}.tnv4-wa-text{font-size:10px;font-weight:700;letter-spacing:.22em}
  .tnv4-home{position:relative;min-height:100svh;background:#f4f4f1;display:flex;align-items:center;justify-content:center;padding:44px 36px 40px 50px;border-radius:0 0 14px 14px}.tnv4-home .tnv4-kicker{position:absolute;left:50px;top:50px}.tnv4-logo-wrap{width:min(72vw,420px);animation:tnv4LogoIn 1.75s cubic-bezier(.16,1,.3,1) both}.tnv4-logo-wrap img{width:100%;height:auto}.tnv4-scroll{position:absolute;left:50px;bottom:34px;font-size:10px;letter-spacing:.26em;color:#aaa6a6;font-weight:700}.tnv4-scroll:after{content:'';display:inline-block;width:34px;height:1px;margin-left:12px;background:#ff5d60;vertical-align:middle;animation:tnv4Scan 1.5s ease-in-out infinite alternate}
  @keyframes tnv4LogoIn{0%{transform:scale(.08);opacity:0;filter:blur(18px)}65%{transform:scale(1.08);opacity:1;filter:blur(0)}100%{transform:scale(1);opacity:1}}@keyframes tnv4Scan{from{transform:scaleX(.25);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}
  .tnv4-content{background:#f4f4f1;padding-bottom:90px}.tnv4-section{position:relative}.tnv4-divider{height:24px;background:#111;margin:0 0 0}.tnv4-pad{padding:62px 26px 42px 50px}.tnv4-kicker{font-size:10px;font-weight:700;letter-spacing:.24em;color:#989393;margin-bottom:24px}.tnv4-redmark{width:46px;height:5px;background:#ff5d60;margin-bottom:27px}.tnv4 h1{font-family:Arial,Helvetica,sans-serif;font-size:clamp(48px,13.5vw,84px);line-height:.9;letter-spacing:-.065em;margin:0 0 28px;color:#312d2e;font-weight:800}.tnv4 h3{font-size:16px;line-height:1.5;letter-spacing:.08em;margin:0 0 25px;color:#4d494a;font-weight:700}.tnv4 p{font-size:16px;line-height:1.7;letter-spacing:.045em;margin:0;color:#555152}.tnv4-coords{margin-top:24px!important;font-size:13px!important;font-weight:700;letter-spacing:.08em!important}
  .tnv4-pixel{position:relative;margin:0 20px 46px 44px;overflow:hidden;background:#e9e9e6;border-radius:4px;isolation:isolate}.tnv4-pixel img{width:100%;height:auto;position:relative;z-index:1}.tnv4-pixel canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;image-rendering:pixelated;opacity:0;pointer-events:none}.tnv4-pixel.is-armed canvas{opacity:1}.tnv4-pixel.is-done canvas{opacity:0;transition:opacity .45s ease}.tnv4-pixel>span{position:absolute;z-index:3;right:13px;bottom:12px;color:#fff;font-size:9px;font-weight:700;letter-spacing:.2em;text-shadow:0 1px 5px rgba(0,0,0,.4)}
  .tnv4-pixel.pixel-active:before{content:'';position:absolute;z-index:4;left:-30%;top:0;width:28%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,93,96,.9),transparent);mix-blend-mode:screen;animation:tnv4Laser .65s ease-out 1;pointer-events:none}@keyframes tnv4Laser{to{left:110%}}
  .tnv4-services{display:grid;gap:10px}.tnv4-services article{border:1px solid #d3d1cf;padding:24px 20px;background:rgba(255,255,255,.25)}.tnv4-services b{display:block;font-family:Arial,Helvetica,sans-serif;font-size:28px;letter-spacing:.01em}.tnv4-services i{display:block;width:42px;height:5px;background:#ff5d60;margin:13px 0 16px}.tnv4-services span{font-size:12px;letter-spacing:.13em;line-height:1.5}.tnv4-contact-lead{font-family:Arial,Helvetica,sans-serif!important;font-weight:700;font-size:24px!important;line-height:1.2!important;letter-spacing:-.02em!important;max-width:520px}.tnv4-big-wa{position:relative;display:block;margin-top:32px;padding:24px 56px 24px 20px;border:1px solid #343031;text-decoration:none!important;color:#343031!important;background:transparent}.tnv4-big-wa span{display:block;font-size:10px;letter-spacing:.22em;margin-bottom:8px}.tnv4-big-wa b{display:block;font-family:Arial,Helvetica,sans-serif;font-size:20px}.tnv4-big-wa em{position:absolute;right:18px;top:50%;transform:translateY(-50%);font-style:normal;font-size:28px;color:#ff5d60}.tnv4-imprint{display:inline-block;margin-top:28px;color:#777!important;font-size:10px;letter-spacing:.18em;text-decoration:none!important}
  @media (max-width:430px){.tnv4-pad{padding-left:44px;padding-right:20px}.tnv4-pixel{margin-left:38px;margin-right:14px}.tnv4 h1{font-size:15.5vw}.tnv4 h3,.tnv4 p{font-size:14px}.tnv4-whatsapp{right:12px;bottom:12px}}
  @media (prefers-reduced-motion:reduce){.tnv4 *{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.tnv4-pixel canvas{display:none!important}}
}
@media screen and (min-width:992px){#tnv4{display:none!important}}

/* ===== mobile-v50.css ===== */
@media screen and (max-width:991px){
  /* V5.0 — deterministic pure-CSS red scan. No JS trigger at all. */
  .tnv4-pixel{position:relative;overflow:hidden;background:#111}
  .tnv4-pixel canvas{display:none!important}
  .tnv4-pixel img{
    display:block!important;width:100%!important;height:auto!important;opacity:1!important;
    transform-origin:50% 50%;will-change:transform,filter,clip-path;
    animation:tnv50Reconstruct 4.6s cubic-bezier(.22,.7,.18,1) infinite!important;
  }
  @keyframes tnv50Reconstruct{
    0%,16%{filter:blur(0) contrast(1) grayscale(0);transform:scale(1);clip-path:inset(0 0 0 0)}
    20%{filter:blur(16px) contrast(1.85) grayscale(1);transform:scale(1.09);clip-path:inset(44% 0 44% 0)}
    31%{filter:blur(12px) contrast(1.65) grayscale(.9);transform:scale(1.075);clip-path:inset(34% 0 34% 0)}
    44%{filter:blur(8px) contrast(1.45) grayscale(.68);transform:scale(1.055);clip-path:inset(22% 0 22% 0)}
    58%{filter:blur(4px) contrast(1.25) grayscale(.38);transform:scale(1.035);clip-path:inset(10% 0 10% 0)}
    72%{filter:blur(1.5px) contrast(1.10) grayscale(.12);transform:scale(1.012);clip-path:inset(2% 0 2% 0)}
    80%,100%{filter:blur(0) contrast(1) grayscale(0);transform:scale(1);clip-path:inset(0 0 0 0)}
  }
  .tnv4-pixel:before{
    content:'';position:absolute;z-index:9;left:0;right:0;top:-4px;height:4px;
    background:#ff5d60;box-shadow:0 0 8px #ff5d60,0 0 24px rgba(255,93,96,.95);
    opacity:0;pointer-events:none;
    animation:tnv50Scan 4.6s linear infinite!important;
  }
  @keyframes tnv50Scan{
    0%,18%{opacity:0;transform:translateY(0)}
    20%{opacity:1;transform:translateY(0)}
    72%{opacity:.98;transform:translateY(82vw)}
    77%,100%{opacity:0;transform:translateY(82vw)}
  }
  .tnv4-pixel>span{z-index:12!important}
  /* User explicitly requested this animation; keep it visible even when OS Reduce Motion is enabled. */
  @media (prefers-reduced-motion:reduce){
    .tnv4-pixel img{animation:tnv50Reconstruct 4.6s cubic-bezier(.22,.7,.18,1) infinite!important}
    .tnv4-pixel:before{animation:tnv50Scan 4.6s linear infinite!important}
  }
}

/* ===== mobile-v52-signal.css ===== */
@media screen and (max-width:991px){
  /* V5.2 SIGNAL ALIVE — pure CSS, no JS triggers. */
  .tnv4-signal-dot{
    animation:tnv4Pulse 1.65s ease-out infinite,tnv52SignalLife 7.2s cubic-bezier(.22,.8,.24,1) infinite!important;
    will-change:transform,filter,box-shadow;
  }
  @keyframes tnv52SignalLife{
    0%,56%,100%{transform:translateY(-7px) scale(1);filter:brightness(1)}
    60%{transform:translateY(-7px) scale(.82);filter:brightness(.92)}
    63%{transform:translateY(-7px) scale(1.24);filter:brightness(1.28)}
    66%{transform:translateY(7px) scale(.9);filter:brightness(.96)}
    71%{transform:translateY(22px) scale(.72);filter:brightness(.82)}
    76%{transform:translateY(22px) scale(.72);filter:brightness(.82)}
    84%{transform:translateY(-7px) scale(1.08);filter:brightness(1.18)}
    90%{transform:translateY(-7px) scale(1);filter:brightness(1)}
  }
  .tnv4-signal-dot:before,.tnv4-signal-dot:after{content:'';position:absolute;inset:50% auto auto 50%;width:5px;height:5px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);opacity:.72;pointer-events:none}
  .tnv4-signal-dot:after{width:28px;height:28px;background:transparent;border:1px solid rgba(255,93,96,.5);opacity:0;animation:tnv52Echo 7.2s ease-out infinite}
  @keyframes tnv52Echo{0%,61%,100%{opacity:0;transform:translate(-50%,-50%) scale(.25)}63%{opacity:.78}76%{opacity:0;transform:translate(-50%,-50%) scale(2.25)}}

  .tnv52-signal-packet{position:fixed;z-index:2147483646;left:25px;top:74px;width:4px;height:28px;border-radius:4px;pointer-events:none;opacity:0;background:linear-gradient(to bottom,rgba(255,93,96,0),#ff5d60,rgba(255,93,96,0));box-shadow:0 0 12px rgba(255,93,96,.72);animation:tnv52Packet 7.2s cubic-bezier(.24,.65,.31,1) infinite}
  @keyframes tnv52Packet{0%,67%{opacity:0;transform:translateY(0) scaleY(.45)}70%{opacity:.92}88%{opacity:.7}96%,100%{opacity:0;transform:translateY(calc(100vh - 132px)) scaleY(1.15)}}

  .tnv52-code-stack{position:fixed;left:46px;top:0;z-index:2147483644;pointer-events:none;font-family:'Inconsolata',monospace}
  .tnv52-code{position:fixed;left:46px;top:116px;color:#ff5d60;font-size:9px;line-height:1;font-weight:700;letter-spacing:.22em;white-space:nowrap;padding:6px 8px 6px 9px;border-left:2px solid #ff5d60;background:rgba(244,244,241,.78);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transform:translateX(-8px);text-shadow:0 0 10px rgba(255,93,96,.26)}
  .tnv52-code:before{content:'';position:absolute;left:-19px;top:50%;width:15px;height:1px;background:#ff5d60;box-shadow:0 0 8px rgba(255,93,96,.7)}
  .tnv52-code{animation:tnv52Code 25s steps(1,end) infinite}
  .tnv52-code.c1{animation-delay:2s}.tnv52-code.c2{animation-delay:7s}.tnv52-code.c3{animation-delay:12s}.tnv52-code.c4{animation-delay:17s}.tnv52-code.c5{animation-delay:22s}
  @keyframes tnv52Code{0%,4.8%,100%{opacity:0;transform:translateX(-8px)}.4%{opacity:1;transform:translateX(0)}1.1%{opacity:.25;transform:translateX(2px)}1.7%{opacity:1;transform:translateX(0)}4%{opacity:1;transform:translateX(0)}}
}
@media screen and (min-width:992px){.tnv52-signal-packet,.tnv52-code-stack{display:none!important}}

/* ===== mobile-v54-os.css ===== */
@media screen and (max-width:991px){
  /* V5.4 — THIERYNHU OS / LOCAL NODE clock. Mobile only. */
  .tnv4-home{padding-top:220px;padding-bottom:54px;align-items:center}
  .tnv53-os{
    position:absolute;z-index:5;left:50%;top:78px;transform:translateX(-50%);
    width:min(82vw,460px);text-align:center;color:#3b3738;pointer-events:none;
  }
  .tnv53-node{
    font-family:'Inconsolata',monospace;font-size:9px;line-height:1;
    font-weight:700;letter-spacing:.28em;color:#8e898a;margin-bottom:11px;
  }
  .tnv53-time{
    display:flex;align-items:baseline;justify-content:center;gap:.01em;
    font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
    font-size:clamp(78px,23vw,132px);line-height:.82;font-weight:620;
    letter-spacing:-.075em;color:#312d2e;font-variant-numeric:tabular-nums lining-nums;
    text-rendering:geometricPrecision;white-space:nowrap;
  }
  .tnv53-time .tnv53-colon{color:#ff5d60;font-weight:540;display:inline-block;transform:translateY(-.035em);animation:tnv53Colon 2s steps(1,end) infinite}
  @keyframes tnv53Colon{0%,48%{opacity:1}49%,100%{opacity:.35}}
  .tnv53-date{
    margin-top:17px;display:flex;justify-content:center;gap:12px;align-items:center;
    font-family:'Inconsolata',monospace;font-size:10px;font-weight:700;
    letter-spacing:.24em;color:#575253;text-transform:uppercase;
  }
  .tnv53-date span:first-child{color:#ff5d60}
  .tnv53-location{
    margin-top:9px;font-family:'Inconsolata',monospace;font-size:8px;font-weight:700;
    letter-spacing:.25em;color:#9a9595;text-transform:uppercase;
  }
  @keyframes tnv53Boot{0%,38%{opacity:0;transform:translateY(5px)}48%,76%{opacity:1;transform:translateY(0)}100%{opacity:.45;transform:translateY(0)}}
  @keyframes tnv53StatusPulse{0%{box-shadow:0 0 0 0 rgba(255,93,96,.45)}75%{box-shadow:0 0 0 10px rgba(255,93,96,0)}100%{box-shadow:0 0 0 0 rgba(255,93,96,0)}}
  .tnv4-logo-wrap{margin-top:96px;width:min(66vw,390px)}
  .tnv53-time.tnv53-tick{animation:tnv53MinuteGlitch .16s steps(2,end) 1}
  @keyframes tnv53MinuteGlitch{0%{transform:translateX(0);filter:none}30%{transform:translateX(-2px);filter:contrast(1.25)}60%{transform:translateX(2px);filter:contrast(1.12)}100%{transform:translateX(0);filter:none}}
  @media (max-width:430px){
    .tnv4-home{padding-top:205px}.tnv53-os{top:76px;width:86vw}
    .tnv53-time{font-size:24vw}.tnv53-date{font-size:9px;gap:10px}.tnv4-logo-wrap{margin-top:86px;width:68vw}
  }
  /* Keep the explicitly requested OS clock motion even if system Reduce Motion is enabled. */
  @media (prefers-reduced-motion:reduce){
    .tnv53-time .tnv53-colon{animation:tnv53Colon 2s steps(1,end) infinite!important}
    }
}
@media screen and (min-width:992px){.tnv53-os{display:none!important}}

/* ===== mobile-v56-clock.css ===== */
@media screen and (max-width:991px){
  /* V5.6 — minute/hour mechanical micro-flip. Mobile only. */
  .tnv53-time [data-tnv53-hour],
  .tnv53-time [data-tnv53-minute]{
    display:inline-block;
    transform-origin:50% 52%;
    transform-style:preserve-3d;
    backface-visibility:hidden;
    will-change:transform,opacity,filter;
  }

  .tnv53-time .tnv56-flip{
    animation:tnv56MechanicalFlip .26s cubic-bezier(.22,.78,.24,1) both;
  }

  @keyframes tnv56MechanicalFlip{
    0%{transform:perspective(700px) rotateX(0deg) scaleY(1);opacity:1;filter:blur(0) contrast(1)}
    38%{transform:perspective(700px) rotateX(72deg) scaleY(.82);opacity:.42;filter:blur(.45px) contrast(1.18)}
    50%{transform:perspective(700px) rotateX(-74deg) scaleY(.8);opacity:.3;filter:blur(.6px) contrast(1.28)}
    72%{transform:perspective(700px) rotateX(-8deg) scaleY(.97);opacity:.92;filter:blur(0) contrast(1.08)}
    100%{transform:perspective(700px) rotateX(0deg) scaleY(1);opacity:1;filter:blur(0) contrast(1)}
  }

  .tnv53-time.tnv56-clock-snap .tnv53-colon{
    animation:tnv56ColonSnap .26s steps(2,end) 1, tnv53Colon 2s steps(1,end) .26s infinite;
  }
  @keyframes tnv56ColonSnap{
    0%,100%{transform:translateY(-.035em) scale(1);filter:none}
    45%{transform:translateY(-.035em) scale(.76);filter:brightness(1.35)}
    62%{transform:translateY(-.035em) scale(1.12);filter:brightness(1.12)}
  }

  /* Explicitly preserve this user-requested micro motion even if Reduce Motion is enabled. */
  @media (prefers-reduced-motion:reduce){
    .tnv53-time .tnv56-flip{animation:tnv56MechanicalFlip .26s cubic-bezier(.22,.78,.24,1) both!important}
    .tnv53-time.tnv56-clock-snap .tnv53-colon{animation:tnv56ColonSnap .26s steps(2,end) 1!important}
  }
}
