.puzzle-captcha { width:100%; margin:12px 0; font-family:inherit; }
.puzzle-captcha *, .puzzle-captcha__dialog *, .puzzle-captcha__dialog *::before, .puzzle-captcha__dialog *::after { box-sizing:border-box; }
.puzzle-captcha__trigger { position:relative; isolation:isolate; display:flex; align-items:center; gap:14px; width:100%; min-height:66px; padding:12px 18px; border:1px solid #715288; border-radius:16px; background:linear-gradient(110deg,#352540,#292338); color:#f0e2fb; font:600 15px/1.4 inherit; cursor:pointer; overflow:hidden; text-align:left; transition:border-color .2s,background .2s; }
.puzzle-captcha__trigger:hover:enabled { border-color:#c38cec; background:linear-gradient(110deg,#463052,#342b46); }
.puzzle-captcha__trigger:disabled { cursor:default; }
.puzzle-captcha__mark { flex-shrink:0; display:grid; place-items:center; width:34px; height:34px; border:1px solid #9a72b8; border-radius:10px; color:#e7c6ff; font:600 23px/1 sans-serif; }
.puzzle-captcha__label { flex:1; }
.puzzle-captcha__arrow { font:22px/1 sans-serif; color:#d3b3e9; }
.puzzle-captcha[data-state="success"] .puzzle-captcha__trigger { border-color:#537e70; background:#20372f; color:#b6e8d4; }
.puzzle-captcha[data-state="success"] .puzzle-captcha__mark { border-color:#558573; color:#a4e3c9; }
.puzzle-captcha[data-state="success"] .puzzle-captcha__arrow, .puzzle-captcha[data-state="cooldown"] .puzzle-captcha__arrow { display:none; }
.puzzle-captcha[data-state="cooldown"] .puzzle-captcha__trigger { border-color:#80596a; color:#f1c7d5; }
.puzzle-captcha[data-state="cooldown"] .puzzle-captcha__trigger::before { content:""; position:absolute; z-index:-1; inset:0; background:#b76b8230; transform:scaleX(var(--cooldown-progress,1)); transform-origin:left; transition:transform .2s linear; }
.puzzle-captcha[data-state="cooldown"] .puzzle-captcha__mark { font-size:14px; color:#fac4d5; border-color:#a36d83; }
.puzzle-captcha__dialog { box-sizing:border-box; width:min(448px,calc(100vw - 28px)); max-width:none; max-height:calc(100dvh - 28px); padding:0; margin:auto; overflow:auto; border:1px solid #79628b; border-radius:25px; color:#f9f4fe; background:linear-gradient(145deg,#2c233b,#151724); box-shadow:0 30px 100px #0008,inset 0 1px #ffffff12; font-family:Arial,sans-serif; }
.puzzle-captcha__dialog::backdrop { background:#060914bf; backdrop-filter:blur(7px); }
.puzzle-captcha__dialog[open] { animation:puzzle-dialog-in .32s cubic-bezier(.2,.8,.2,1) both; }
.puzzle-captcha__dialog[open]::backdrop { animation:puzzle-backdrop-in .26s ease-out both; }
.puzzle-captcha__dialog[open] .puzzle-captcha__heading,
.puzzle-captcha__dialog[open] h2,
.puzzle-captcha__dialog[open] .puzzle-captcha__help { animation:puzzle-content-in .3s ease-out both; }
.puzzle-captcha__dialog[open] h2 { animation-delay:35ms; }
.puzzle-captcha__dialog[open] .puzzle-captcha__help { animation-delay:65ms; }
.puzzle-captcha__panel { padding:23px; }
.puzzle-captcha__heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.puzzle-captcha__eyebrow { font-size:11px; font-weight:700; letter-spacing:.13em; color:#d9b7ef; }
.puzzle-captcha__close { display:grid; place-items:center; width:32px; height:32px; padding:0; border:1px solid #755d86; border-radius:10px; background:#372c45; color:#e7d6f3; font:24px/1 sans-serif; cursor:pointer; transition:background .18s,border-color .18s,transform .18s; }
.puzzle-captcha__close:hover { background:#4b365b; border-color:#b48acf; transform:rotate(6deg); }
.puzzle-captcha__close:active { transform:scale(.92); }
.puzzle-captcha__dialog h2 { font-family:Georgia,serif; font-size:29px; font-weight:400; line-height:1.2; margin:15px 0 10px; letter-spacing:-.5px; }
.puzzle-captcha__help { margin:0 0 20px; color:#d0c1db; font-size:14px; line-height:1.55; }
.puzzle-captcha__trigger:focus-visible, .puzzle-captcha__close:focus-visible, .puzzle-captcha__slider:focus-visible { outline:3px solid #dfb4ff; outline-offset:3px; }
.puzzle-captcha__dialog [hidden] { display:none !important; }
.puzzle-captcha__scene { position:relative; width:100%; aspect-ratio:16/9; border-radius:14px; overflow:hidden; background:#171d2b; isolation:isolate; box-shadow:0 0 0 1px #ffffff14; }
.puzzle-captcha__background { display:block; width:100%; height:100%; object-fit:fill; user-select:none; }
.puzzle-captcha__background:not([hidden]), .puzzle-captcha__piece:not([hidden]) { animation:puzzle-image-in .3s ease-out both; }
.puzzle-captcha__piece { position:absolute; left:0; max-width:none; height:auto; filter:drop-shadow(0 2px 3px #0009); user-select:none; pointer-events:none; transition:filter .18s; }
.puzzle-captcha__dialog[data-phase="dragging"] .puzzle-captcha__piece { filter:drop-shadow(0 3px 5px #000b) drop-shadow(0 0 3px #dba9ffb3); }
.puzzle-captcha__placeholder { position:absolute; inset:0; display:grid; place-items:center; text-align:center; padding:34px 16px 0; color:#d0c3df; font-size:14px; isolation:isolate; }
.puzzle-captcha__placeholder::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(105deg,transparent 20%,#c78bf51a 50%,transparent 80%); animation:puzzle-shimmer 1.7s ease-in-out infinite; }
.puzzle-captcha__placeholder::after { content:""; position:absolute; top:calc(50% - 32px); left:calc(50% - 11px); width:22px; height:22px; border:2px solid #b77cdf35; border-top-color:#dcb4fa; border-radius:50%; animation:puzzle-spin .85s linear infinite; }
.puzzle-captcha__track { position:relative; display:flex; align-items:center; height:50px; margin-top:18px; border:1px solid #6d527f; border-radius:14px; background:#352941; overflow:hidden; transition:border-color .18s,box-shadow .18s; }
.puzzle-captcha__track::before { content:""; position:absolute; inset:0 auto 0 0; width:calc(48px + (100% - 48px) * var(--puzzle-progress,0)); background:linear-gradient(90deg,#b76de344,#d78df56b); pointer-events:none; }
.puzzle-captcha__dialog[data-phase="dragging"] .puzzle-captcha__track { border-color:#c991ee; box-shadow:0 0 0 3px #bd77ef14; }
.puzzle-captcha__track > span { position:absolute; inset:0 8px 0 40px; display:grid; place-items:center; font-size:13px; color:#d6bce8; pointer-events:none; user-select:none; transition:opacity .18s; }
.puzzle-captcha__dialog[data-phase="dragging"] .puzzle-captcha__track > span,
.puzzle-captcha__dialog[data-phase="checking"] .puzzle-captcha__track > span { opacity:.35; }
.puzzle-captcha__slider { position:relative; appearance:none; -webkit-appearance:none; width:100%; height:48px; margin:0; padding:0; background:transparent; border:0; border-radius:13px; cursor:grab; touch-action:none; }
.puzzle-captcha__slider:active { cursor:grabbing; }
.puzzle-captcha__slider:disabled { cursor:default; opacity:.5; }
.puzzle-captcha__slider::-webkit-slider-runnable-track { height:48px; background:transparent; }
.puzzle-captcha__slider::-webkit-slider-thumb { -webkit-appearance:none; width:48px; height:48px; border:1px solid #e1baff; border-radius:12px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 7 5 5-5 5m7-10 5 5-5 5'/%3E%3C/svg%3E") center no-repeat,linear-gradient(135deg,#d278ee,#955beb); box-shadow:0 3px 15px #09061055; }
.puzzle-captcha__slider::-moz-range-track { height:48px; background:transparent; }
.puzzle-captcha__slider::-moz-range-thumb { width:46px; height:46px; border:1px solid #e1baff; border-radius:12px; background:#a567de; }
.puzzle-captcha__slider::-webkit-slider-thumb { transition:box-shadow .18s,border-color .18s; }
.puzzle-captcha__slider:active::-webkit-slider-thumb { border-color:#fff0ff; box-shadow:0 0 16px #d898fa80; }
.puzzle-captcha__slider::-moz-range-thumb { transition:box-shadow .18s,border-color .18s; }
.puzzle-captcha__slider:active::-moz-range-thumb { border-color:#fff0ff; box-shadow:0 0 16px #d898fa80; }
.puzzle-captcha__status { min-height:20px; margin:14px 0 10px; font-size:13px; line-height:1.5; color:#d1c5df; }
.puzzle-captcha__dialog[data-phase="checking"] .puzzle-captcha__status::before { content:""; display:inline-block; width:12px; height:12px; margin-right:8px; vertical-align:-1px; border:1.5px solid #c59be640; border-top-color:#e3b9ff; border-radius:50%; animation:puzzle-spin .7s linear infinite; }
@keyframes puzzle-dialog-in { from { opacity:0; transform:translateY(16px) scale(.965); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes puzzle-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes puzzle-content-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
@keyframes puzzle-image-in { from { opacity:0; } to { opacity:1; } }
@keyframes puzzle-shimmer { from { transform:translateX(-100%); } to { transform:translateX(100%); } }
@keyframes puzzle-spin { to { transform:rotate(360deg); } }
@media(max-width:420px) { .puzzle-captcha__panel { padding:18px; } .puzzle-captcha__dialog { border-radius:21px; } .puzzle-captcha__dialog h2 { font-size:26px; } }
@media(prefers-reduced-motion:reduce) {
  .puzzle-captcha *, .puzzle-captcha *::before, .puzzle-captcha *::after,
  .puzzle-captcha__dialog, .puzzle-captcha__dialog::backdrop,
  .puzzle-captcha__dialog *, .puzzle-captcha__dialog *::before, .puzzle-captcha__dialog *::after { animation:none !important; transition:none !important; }
}
