.gm-pane[hidden]{display:none!important}
.tk-intro{background:linear-gradient(135deg,#0B192C,#12284a);color:#fff;border-radius:20px;padding:1.6rem;margin:1.2rem 0;position:relative;overflow:hidden}
.tk-intro:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,#ffffff0a 0 1px,transparent 1px 40px),repeating-linear-gradient(90deg,#ffffff0a 0 1px,transparent 1px 40px);pointer-events:none}
.tk-intro>*{position:relative}
.tk-intro h3{font:900 1.6rem/1.1 'League Spartan',sans-serif;text-transform:uppercase;margin-bottom:.4rem}
.tk-intro h3 span{color:var(--or)}
.tk-intro p{color:#c9d6e6;font-size:1rem!important;margin-bottom:1rem}
.tk-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:1rem 0 1.2rem}
.tk-steps div{background:#ffffff10;border:1px solid #ffffff1c;border-radius:14px;padding:.8rem .9rem;font-size:.92rem;line-height:1.45;color:#dbe5f0}
.tk-steps b{display:block;font:900 1.4rem 'League Spartan',sans-serif;color:var(--gr);line-height:1}
.tk-acts{display:flex;flex-wrap:wrap;gap:.8rem}
@media(max-width:640px){.tk-steps{grid-template-columns:1fr}}

.tk-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:0;border-radius:50px;padding:.85rem 1.7rem;font:800 1rem 'League Spartan',sans-serif;text-transform:uppercase;letter-spacing:1px;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--or),#D85F0E);box-shadow:0 8px 22px #F07A2244;transition:transform .2s var(--ease),box-shadow .2s,opacity .2s}
.tk-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px #F07A2266}
.tk-btn:active{transform:scale(.97)}
.tk-btn.gr{background:linear-gradient(135deg,var(--gr),#5f9e2a);box-shadow:0 8px 22px #82C34144}
.tk-btn.gh{background:#ffffff14;box-shadow:none;border:1px solid #ffffff33}
.tk-btn.gh:hover{background:#ffffff24}
.tk-btn.big{padding:1.05rem 2.2rem;font-size:1.15rem}
.tk-btn[disabled]{opacity:.4;cursor:not-allowed;transform:none}

#tk-ov{position:fixed;inset:0;z-index:3000;overflow-y:auto;color:#fff;font-family:'Plus Jakarta Sans',sans-serif;line-height:1.5;-webkit-overflow-scrolling:touch}
#tk-ov[hidden],#tk-ov [hidden]{display:none!important}
body.tk-open{overflow:hidden}
.tk-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:10px max(16px,4%);background:#0b192cee;backdrop-filter:blur(10px);border-bottom:3px solid var(--or)}
.tk-brand{display:flex;align-items:center;gap:.7rem;font:900 1.25rem 'League Spartan',sans-serif;text-transform:uppercase;letter-spacing:1px}
.tk-brand img{height:44px;width:auto}
.tk-brand span{color:var(--or)}
.tk-x{width:44px;height:44px;border-radius:50%;border:0;background:#ffffff1a;color:#fff;font-size:1.6rem;cursor:pointer;transition:.3s;flex:none}
.tk-x:hover{background:var(--or);transform:rotate(90deg)}
.tk-body{max-width:1200px;margin:0 auto;padding:22px max(16px,4%) 48px;display:flex;flex-direction:column;gap:18px}
.tk-h{font:900 clamp(1.8rem,4vw,2.8rem)/1.05 'League Spartan',sans-serif;text-transform:uppercase}
.tk-h span{color:var(--gr)}
.tk-lab{font:800 .8rem 'League Spartan',sans-serif;text-transform:uppercase;letter-spacing:2px;color:#9fb3cc}
.tk-mut{color:#b6c5d8}
.tk-panel{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:22px;padding:1.4rem;min-width:0}
.tk-narrow{max-width:560px;width:100%;margin:0 auto}
.tk-field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.1rem}
.tk-seg{display:flex;flex-wrap:wrap;gap:6px}
.tk-seg button{border:1px solid #ffffff2e;background:#ffffff10;color:#dbe5f0;border-radius:50px;padding:.5rem 1rem;font:700 .92rem 'Plus Jakarta Sans',sans-serif;cursor:pointer;transition:.2s}
.tk-seg button:hover{background:#ffffff22}
.tk-seg button[aria-pressed=true]{background:var(--or);border-color:var(--or);color:#fff}
.tk-in{width:100%;background:#ffffff12;border:2px solid #ffffff2a;border-radius:14px;padding:.85rem 1rem;color:#fff;font:600 1.1rem 'Plus Jakarta Sans',sans-serif}
.tk-in:focus{outline:0;border-color:var(--or);box-shadow:0 0 0 5px #F07A2233}
.tk-in.code{font:900 2.2rem 'League Spartan',sans-serif;letter-spacing:.3em;text-align:center;padding:.6rem}
.tk-in::placeholder{color:#ffffff66}
.tk-err{color:#ffb4a0;font-weight:700;min-height:1.3em;font-size:.95rem}

.tk-lobby{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:stretch}
@media(max-width:820px){.tk-lobby{grid-template-columns:1fr}}
.tk-code{text-align:center;background:#fff;color:var(--navy);border-radius:24px;padding:1.4rem 1rem 1.6rem;border-bottom:8px solid var(--or);box-shadow:0 20px 50px #0007}
.tk-code .tk-lab{color:var(--mut)}
.tk-code .pin{font:900 clamp(4rem,12vw,8.5rem)/1 'League Spartan',sans-serif;letter-spacing:.08em;margin-top:.3rem}
.tk-code p{color:var(--mut);font-weight:600;margin-top:.4rem}
.tk-qr{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center}
.tk-qr .q{background:#fff;border-radius:16px;padding:8px;width:min(230px,60vw);aspect-ratio:1}
.tk-qr .q svg{display:block;width:100%;height:100%}
.tk-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.tk-count{font:900 2rem 'League Spartan',sans-serif;margin-left:.5rem}
.tk-chips{display:flex;flex-wrap:wrap;gap:8px}
.tk-chips span{display:inline-flex;align-items:center;gap:8px;background:#ffffff14;border:1px solid #ffffff26;border-radius:50px;padding:5px 14px 5px 5px;font-weight:700;animation:tkin .35s var(--ease)}
.tk-dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font:900 .8rem 'League Spartan',sans-serif;color:#0B192C;flex:none}
@keyframes tkin{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}

.tk-hud{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tk-hud div{background:#ffffff10;border:1px solid #ffffff1c;border-radius:14px;padding:.55rem .9rem;min-width:0}
.tk-hud b{display:block;font:900 1.7rem/1.1 'League Spartan',sans-serif}
@media(max-width:560px){.tk-hud{grid-template-columns:repeat(2,1fr)}}
.tk-bar{height:8px;border-radius:9px;background:#ffffff18;overflow:hidden}
.tk-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--gr),var(--or));transform-origin:left;border-radius:9px}
.tk-coord{background:#fff;color:var(--navy);border-radius:22px;padding:1.1rem 1.4rem;text-align:center;box-shadow:0 16px 40px #0006;border-bottom:6px solid var(--gr)}
.tk-coord .c{font:900 clamp(1.7rem,5vw,3.4rem)/1.1 'League Spartan',sans-serif;letter-spacing:.5px}
.tk-coord .c em{font-style:normal;color:var(--or)}
.tk-coord .n{font:800 1.1rem 'League Spartan',sans-serif;color:var(--blue);margin-top:.3rem;text-transform:uppercase;letter-spacing:1px}
.tk-map{display:block;width:100%;max-width:720px;margin:0 auto;height:auto;aspect-ratio:2/1;border-radius:16px;box-shadow:0 10px 30px #0b192c33;touch-action:manipulation;cursor:crosshair;background:#143a63;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.tk-acts2{display:flex;gap:.6rem}.tk-acts2 .tk-btn.gr{flex:1}
.tk-code{display:flex;flex-direction:column;justify-content:center}
.tk-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:820px){.tk-cols{grid-template-columns:1fr}}
.tk-lb ol{list-style:none;display:flex;flex-direction:column}
.tk-lb li{display:grid;grid-template-columns:34px 1fr auto auto;gap:10px;align-items:center;padding:.6rem .3rem;border-bottom:1px solid #ffffff18}
.tk-lb li:last-child{border-bottom:0}
.tk-lb li.me{background:#F07A2226;border-radius:12px;padding-inline:.6rem}
.tk-lb .rk{width:28px;height:28px;border-radius:9px;display:grid;place-items:center;font:900 .95rem 'League Spartan',sans-serif;background:#ffffff18}
.tk-lb li:nth-child(1) .rk{background:#FFD23F;color:#0B192C}
.tk-lb li:nth-child(2) .rk{background:#d5dce8;color:#0B192C}
.tk-lb li:nth-child(3) .rk{background:#e3a477;color:#0B192C}
.tk-lb .nm{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:8px;min-width:0}
.tk-lb .nm i{width:10px;height:10px;border-radius:50%;flex:none}
.tk-lb .gn{color:var(--gr);font-weight:800;font-size:.9rem}
.tk-lb .sc{font:900 1.15rem 'League Spartan',sans-serif}
.tk-lb .km{color:#b6c5d8;font-weight:700;font-size:.9rem}
.tk-empty{color:#9fb3cc;padding:.8rem;border:1px dashed #ffffff33;border-radius:12px;text-align:center}
.tk-fb{border-radius:18px;padding:1rem 1.2rem;font-weight:700;background:#ffffff10;border:1px solid #ffffff22}
.tk-fb.ok{background:#82C34126;border-color:#82C34166}
.tk-fb.bad{background:#F07A2220;border-color:#F07A2255}
.tk-fb .big{font:900 1.6rem/1.15 'League Spartan',sans-serif}
.tk-podium{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:end;max-width:640px;width:100%;margin:0 auto;text-align:center}
.tk-podium .p{border-radius:18px 18px 6px 6px;padding:14px 8px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;color:#0B192C;min-width:0;box-shadow:0 16px 40px #0007}
.tk-podium .pl{font:900 2.8rem/1 'League Spartan',sans-serif}
.tk-podium .n{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tk-podium .s{font:900 1.1rem 'League Spartan',sans-serif;opacity:.8}
.tk-podium .p1{background:linear-gradient(180deg,#ffe07a,#f2c12e);height:230px}
.tk-podium .p2{background:linear-gradient(180deg,#eef1f6,#c3cad8);height:175px}
.tk-podium .p3{background:linear-gradient(180deg,#f0bd95,#d78f5b);height:140px}
.tk-center{text-align:center}
.tk-pop{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);z-index:3100;font:900 3rem 'League Spartan',sans-serif;color:#fff;background:linear-gradient(135deg,var(--gr),#5f9e2a);padding:.5rem 1.6rem;border-radius:50px;box-shadow:0 20px 50px #0008;pointer-events:none;animation:tkpop 1.1s var(--ease) forwards}
@keyframes tkpop{0%{opacity:0;transform:translate(-50%,-20%) scale(.7)}20%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1}100%{opacity:0;transform:translate(-50%,-90%)}}
@media(prefers-reduced-motion:reduce){.tk-pop,.tk-chips span{animation:none}}

.tk-net{position:fixed;left:50%;top:78px;transform:translateX(-50%);z-index:3200;width:max-content;max-width:calc(100% - 32px);display:flex;align-items:center;gap:.6rem;padding:.65rem 1.15rem;border-radius:50px;background:#0b192cf2;border:1px solid #F07A2288;color:#fff;font:700 .92rem/1.35 'Plus Jakarta Sans',sans-serif;box-shadow:0 12px 32px #0009;pointer-events:none;animation:tknet .25s ease}
.tk-net:before{content:"";width:10px;height:10px;border-radius:50%;background:var(--or);flex:none;animation:tkblink 1s ease-in-out infinite}
@keyframes tknet{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes tkblink{50%{opacity:.3}}
.tk-hint{min-height:3em}
@media(prefers-reduced-motion:reduce){.tk-net,.tk-net:before{animation:none}}

.tk-joyrow{display:flex;align-items:center;justify-content:center;gap:1.4rem}
.tk-joy{position:relative;flex:none;width:136px;height:136px;border-radius:50%;background:radial-gradient(circle,#ffffff10 0 52%,#ffffff1c 53% 100%);border:2px solid #ffffff33;box-shadow:inset 0 0 24px #0006,0 10px 26px #0005;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;cursor:grab}
.tk-joy svg{position:absolute;inset:0;width:100%;height:100%;fill:#ffffff55;pointer-events:none}
.tk-joy i{position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffb067,var(--or) 55%,#c4520b);box-shadow:0 8px 18px #0008,inset 0 -4px 8px #0003;transition:transform .2s cubic-bezier(.3,1.6,.5,1);pointer-events:none}
.tk-joy.on{cursor:grabbing;border-color:var(--or)}
.tk-joy.on i{transition:none}
.tk-joy.off{opacity:.35;pointer-events:none}
@media(max-width:380px){.tk-joy{width:120px;height:120px}}
