:root {
  --bg: #0d0f12;
  --surface: #171a1f;
  --surface-2: #20242b;
  --surface-3: #2a2f37;
  --line: #2c323b;
  --text: #f6f8fa;
  --muted: #aab2bd;
  --accent: #10e08a;
  --accent-ink: #04261a;
  --danger: #ff6b6b;
  --warn: #ffc53d;
  --r: 16px;
  color-scheme: dark;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

body {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
  font: 600 16px/1.65 'Cairo', 'Segoe UI', Tahoma, sans-serif;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-weight: 900; line-height: 1.3; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; color: inherit; }
button { cursor: pointer; border: 0; background: none; }
button:disabled { cursor: not-allowed; }
img { display: block; max-width: 100%; }
bdi { unicode-bidi: isolate; }
.ic { flex: none; }
.muted { color: var(--muted); font-weight: 600; }
.center { text-align: center; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }

/* brand icons */
.brand-ic {
  --s: 20px;
  display: inline-block; flex: none;
  width: var(--s); height: var(--s);
  background: currentColor;
  -webkit-mask: var(--m) center / contain no-repeat;
  mask: var(--m) center / contain no-repeat;
}
.brand-ic[data-brand=youtube] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=x] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=instagram] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=tiktok] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=facebook] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=telegram] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=whatsapp] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=discord] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=snapchat] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12.206.793c.99 0 4.347.276 5.93 3.821.529 1.193.403 3.219.299 4.847l-.003.06c-.012.18-.022.345-.03.51.075.045.203.09.401.09.3-.016.659-.12 1.033-.301.165-.088.344-.104.464-.104.182 0 .359.029.509.09.45.149.734.479.734.838.015.449-.39.839-1.213 1.168-.089.029-.209.075-.344.119-.45.135-1.139.36-1.333.81-.09.224-.061.524.12.868l.015.015c.06.136 1.526 3.475 4.791 4.014.255.044.435.27.42.509 0 .075-.015.149-.045.225-.24.569-1.273.988-3.146 1.271-.059.091-.12.375-.164.57-.029.179-.074.36-.134.553-.076.271-.27.405-.555.405h-.03c-.135 0-.313-.031-.538-.074-.36-.075-.765-.135-1.273-.135-.3 0-.599.015-.913.074-.6.104-1.123.464-1.723.884-.853.599-1.826 1.288-3.294 1.288-.06 0-.119-.015-.18-.015h-.149c-1.468 0-2.427-.675-3.279-1.288-.599-.42-1.107-.779-1.707-.884-.314-.045-.629-.074-.928-.074-.54 0-.958.089-1.272.149-.211.043-.391.074-.54.074-.374 0-.523-.224-.583-.42-.061-.192-.09-.389-.135-.567-.046-.181-.105-.494-.166-.57-1.918-.222-2.95-.642-3.189-1.226-.031-.063-.052-.15-.055-.225-.015-.243.165-.465.42-.509 3.264-.54 4.73-3.879 4.791-4.02l.016-.029c.18-.345.224-.645.119-.869-.195-.434-.884-.658-1.332-.809-.121-.029-.24-.074-.346-.119-1.107-.435-1.257-.93-1.197-1.273.09-.479.674-.793 1.168-.793.146 0 .27.029.383.074.42.194.789.3 1.104.3.234 0 .384-.06.465-.105l-.046-.569c-.098-1.626-.225-3.651.307-4.837C7.392 1.077 10.739.807 11.727.807l.419-.015h.06z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=twitch] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=spotify] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.66 0 12 0zm5.521 17.34c-.24.359-.66.48-1.021.24-2.82-1.74-6.36-2.101-10.561-1.141-.418.122-.779-.179-.899-.539-.12-.421.18-.78.54-.9 4.56-1.021 8.52-.6 11.64 1.32.42.18.479.659.301 1.02zm1.44-3.3c-.301.42-.841.6-1.262.3-3.239-1.98-8.159-2.58-11.939-1.38-.479.12-1.02-.12-1.14-.6-.12-.48.12-1.021.6-1.141C9.6 9.9 15 10.561 18.72 12.84c.361.181.54.78.241 1.2zm.12-3.36C15.24 8.4 8.82 8.16 5.16 9.301c-.6.179-1.2-.181-1.38-.721-.18-.601.18-1.2.72-1.381 4.26-1.26 11.28-1.02 15.721 1.621.539.3.719 1.02.419 1.56-.299.421-1.02.599-1.559.3z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=soundcloud] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M23.999 14.165c-.052 1.796-1.612 3.169-3.4 3.169h-8.18a.68.68 0 0 1-.675-.683V7.862a.747.747 0 0 1 .452-.724s.75-.513 2.333-.513a5.364 5.364 0 0 1 2.763.755 5.433 5.433 0 0 1 2.57 3.54c.282-.08.574-.121.868-.12.884 0 1.73.358 2.347.992s.948 1.49.922 2.373ZM10.721 8.421c.247 2.98.427 5.697 0 8.672a.264.264 0 0 1-.53 0c-.395-2.946-.22-5.718 0-8.672a.264.264 0 0 1 .53 0ZM9.072 9.448c.285 2.659.37 4.986-.006 7.655a.277.277 0 0 1-.55 0c-.331-2.63-.256-5.02 0-7.655a.277.277 0 0 1 .556 0Zm-1.663-.257c.27 2.726.39 5.171 0 7.904a.266.266 0 0 1-.532 0c-.38-2.69-.257-5.21 0-7.904a.266.266 0 0 1 .532 0Zm-1.647.77a26.108 26.108 0 0 1-.008 7.147.272.272 0 0 1-.542 0 27.955 27.955 0 0 1 0-7.147.275.275 0 0 1 .55 0Zm-1.67 1.769c.421 1.865.228 3.5-.029 5.388a.257.257 0 0 1-.514 0c-.21-1.858-.398-3.549 0-5.389a.272.272 0 0 1 .543 0Zm-1.655-.273c.388 1.897.26 3.508-.01 5.412-.026.28-.514.283-.54 0-.244-1.878-.347-3.54-.01-5.412a.283.283 0 0 1 .56 0Zm-1.668.911c.4 1.268.257 2.292-.026 3.572a.257.257 0 0 1-.514 0c-.241-1.262-.354-2.312-.023-3.572a.283.283 0 0 1 .563 0Z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=github] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=threads] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.783 3.631 2.698 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.291a13.853 13.853 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 7.847c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.321.142 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69c-.242 0-.487.007-.739.021-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=steam] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M11.979 0C5.678 0 .511 4.86.022 11.037l6.432 2.658c.545-.371 1.203-.59 1.912-.59.063 0 .125.004.188.006l2.861-4.142V8.91c0-2.495 2.028-4.524 4.524-4.524 2.494 0 4.524 2.031 4.524 4.527s-2.03 4.525-4.524 4.525h-.105l-4.076 2.911c0 .052.004.105.004.159 0 1.875-1.515 3.396-3.39 3.396-1.635 0-3.016-1.173-3.331-2.727L.436 15.27C1.862 20.307 6.486 24 11.979 24c6.627 0 11.999-5.373 11.999-12S18.605 0 11.979 0zM7.54 18.21l-1.473-.61c.262.543.714.999 1.314 1.25 1.297.539 2.793-.076 3.332-1.375.263-.63.264-1.319.005-1.949s-.75-1.121-1.377-1.383c-.624-.26-1.29-.249-1.878-.03l1.523.63c.956.4 1.409 1.5 1.009 2.455-.397.957-1.497 1.41-2.454 1.012H7.54zm11.415-9.303c0-1.662-1.353-3.015-3.015-3.015-1.665 0-3.015 1.353-3.015 3.015 0 1.665 1.35 3.015 3.015 3.015 1.663 0 3.015-1.35 3.015-3.015zm-5.273-.005c0-1.252 1.013-2.266 2.265-2.266 1.249 0 2.266 1.014 2.266 2.266 0 1.251-1.017 2.265-2.266 2.265-1.253 0-2.265-1.014-2.265-2.265z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=roblox] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M18.926 23.998 0 18.892 5.075.002 24 5.108ZM15.348 10.09l-5.282-1.453-1.414 5.273 5.282 1.453z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=pinterest] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M12.017 0C5.396 0 .029 5.367.029 11.987c0 5.079 3.158 9.417 7.618 11.162-.105-.949-.199-2.403.041-3.439.219-.937 1.406-5.957 1.406-5.957s-.359-.72-.359-1.781c0-1.663.967-2.911 2.168-2.911 1.024 0 1.518.769 1.518 1.688 0 1.029-.653 2.567-.992 3.992-.285 1.193.6 2.165 1.775 2.165 2.128 0 3.768-2.245 3.768-5.487 0-2.861-2.063-4.869-5.008-4.869-3.41 0-5.409 2.562-5.409 5.199 0 1.033.394 2.143.889 2.741.099.12.112.225.085.345-.09.375-.293 1.199-.334 1.363-.053.225-.172.271-.401.165-1.495-.69-2.433-2.878-2.433-4.646 0-3.776 2.748-7.252 7.92-7.252 4.158 0 7.392 2.967 7.392 6.923 0 4.135-2.607 7.462-6.233 7.462-1.214 0-2.354-.629-2.758-1.379l-.749 2.848c-.269 1.045-1.004 2.352-1.498 3.146 1.123.345 2.306.535 3.55.535 6.607 0 11.985-5.365 11.985-11.987C23.97 5.39 18.592.026 11.985.026L12.017 0z%22/%3E%3C/svg%3E"); }
.brand-ic[data-brand=kick] { --m: url("data:image/svg+xml,%3Csvg viewBox=%220 0 24 24%22 xmlns=%22http://www.w3.org/2000/svg%22%3E%3Cpath d=%22M1.333 0h8v5.333H12V2.667h2.667V0h8v8H20v2.667h-2.667v2.666H20V16h2.667v8h-8v-2.667H12v-2.666H9.333V24h-8Z%22/%3E%3C/svg%3E"); }

/* shared controls */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 8px 18px;
  border: 1px solid var(--line); border-radius: 12px;
  background: var(--surface-2); font-weight: 800; white-space: nowrap;
  transition: background .15s, transform .15s, box-shadow .15s;
}
.btn:hover { background: var(--surface-3); }
.btn:active { transform: translateY(1px); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); box-shadow: 0 6px 22px color-mix(in srgb, var(--accent) 35%, transparent); }
.btn.primary:hover { filter: brightness(1.08); }
.btn.danger { color: #fff; background: #c93c3c; border-color: #c93c3c; }
.btn.sm { min-height: 36px; padding: 4px 12px; font-size: 14px; }
.btn.wide { width: 100%; }
.btn:disabled { opacity: .6; }

.icon-btn {
  display: inline-grid; place-items: center;
  width: 38px; height: 38px; border-radius: 10px; color: var(--muted);
  transition: background .15s, color .15s;
}
.icon-btn:hover { background: var(--surface-3); color: var(--text); }
.icon-btn.danger:hover { color: var(--danger); }

.round {
  display: grid; place-items: center; flex: none;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255, 255, 255, .09); border: 1px solid rgba(255, 255, 255, .1);
}
.round:hover { background: rgba(255, 255, 255, .16); }

.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.card.pad { padding: 22px; }

.fld { display: block; margin-top: 16px; }
.fld > span { display: block; margin-bottom: 7px; font-weight: 800; font-size: 15px; }
input:not([type=checkbox]):not([type=file]), textarea {
  width: 100%; min-height: 46px; padding: 10px 14px;
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px;
  font-weight: 700; outline: 0; transition: border-color .15s;
}
input::placeholder, textarea::placeholder { color: #7f8894; font-weight: 600; }
input:focus, textarea:focus { border-color: var(--accent); }
textarea { resize: vertical; display: block; }
.check { display: flex; align-items: center; gap: 9px; min-height: 32px; font-weight: 700; cursor: pointer; }
.check input { width: 19px; height: 19px; accent-color: var(--accent); flex: none; }

.seg { display: flex; gap: 4px; padding: 4px; background: var(--surface-2); border-radius: 13px; }
.seg button {
  flex: 1; display: flex; align-items: center; justify-content: center; gap: 7px;
  min-height: 42px; padding: 6px 12px; border-radius: 10px; color: var(--muted); font-weight: 800; font-size: 15px;
  transition: background .15s, color .15s;
}
.seg button:hover { color: var(--text); background: rgba(255, 255, 255, .05); }
.seg button.on { background: var(--surface-3); color: var(--text); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); }

.loading { width: 42px; height: 42px; margin: 18vh auto; border-radius: 50%; border: 4px solid var(--line); border-top-color: var(--accent); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.empty-state { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 48px 24px; text-align: center; color: var(--muted); }
.empty-state h1, .empty-state h2 { color: var(--text); font-size: 24px; }
.empty-state .btn { margin-top: 8px; }

#toasts { position: fixed; bottom: 22px; inset-inline: 16px; z-index: 100; display: flex; flex-direction: column; align-items: center; gap: 8px; pointer-events: none; }
.toast { padding: 11px 20px; border-radius: 12px; background: #fff; color: #111; font-weight: 800; box-shadow: 0 10px 34px rgba(0, 0, 0, .5); animation: rise .25s ease-out; transition: opacity .3s; }
.toast.err { background: #ffdede; color: #6d1212; }
.toast.ok { background: #cffbe6; color: #06402a; }
.toast.out { opacity: 0; }
@keyframes rise { from { opacity: 0; transform: translateY(10px); } }

/* layout */
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 1400px; margin: auto; padding: 16px 20px; }
.logo { display: inline-flex; align-items: center; gap: 8px; font-weight: 900; font-size: 24px; color: var(--text); }
.logo-mark { display: block; flex: none; width: 44px; height: 44px; border: 2px solid var(--accent); border-radius: 50%; object-fit: cover; background: var(--surface-2); box-shadow: 0 5px 16px rgba(16, 224, 138, .25); }
.logo { gap: 14px; }
.logo.big { font-size: 30px; }
.logo.big .logo-mark { width: 56px; height: 56px; }
.wrap { max-width: 1140px; margin: auto; padding: 8px 20px 60px; }
.wrap.wide { max-width: 1400px; }
.demo-bar { padding: 8px 16px; text-align: center; background: #3b2f08; color: #ffdc7d; font-weight: 800; font-size: 14px; }

/* home */
body.home { display: flex; flex-direction: column; background: radial-gradient(1000px 560px at 50% -140px, rgba(16, 224, 138, .17), transparent 72%), var(--bg); background-repeat: no-repeat; }
body.home .topbar {
  position: sticky; top: 0; z-index: 20; width: 100%; max-width: none; margin: 0;
  padding: 14px max(20px, calc((100% - 1200px) / 2));
  background: rgba(13, 15, 18, .78); border-bottom: 1px solid rgba(255, 255, 255, .08); backdrop-filter: blur(14px);
}
body.home .wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 20px 56px; }
.hero { padding: clamp(40px, 7vw, 76px) 0 clamp(32px, 5vw, 52px); text-align: center; }
.hero h1 { max-width: 860px; margin: auto; font-size: clamp(32px, 6vw, 60px); line-height: 1.22; text-wrap: balance; }
.hero p { max-width: 640px; margin: 16px auto 0; color: #c3cad3; font-size: clamp(17px, 2.2vw, 20px); }
.grid-head { margin-bottom: 18px; font-size: clamp(22px, 3vw, 28px); }
.post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: 22px; }
.post-grid > .empty-state, .post-grid > p, .post-grid > .loading { grid-column: 1 / -1; }
.post-card { display: flex; flex-direction: column; overflow: hidden; background: linear-gradient(180deg, #1b1f25, #15181d); border: 1px solid rgba(255, 255, 255, .1); border-radius: 20px; box-shadow: 0 14px 40px rgba(0, 0, 0, .28); transition: transform .2s, border-color .2s, box-shadow .2s; }
.post-card:hover { transform: translateY(-5px); border-color: var(--accent); box-shadow: 0 22px 54px rgba(0, 0, 0, .42); }
.pc-media { position: relative; overflow: hidden; aspect-ratio: 16/10; background: #0b0d10; }
.pc-blur { position: absolute; top: -12%; left: -12%; width: 124%; max-width: none; height: 124%; object-fit: cover; filter: blur(22px) brightness(.55) saturate(1.2); }
.pc-img { position: relative; display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .35s; }
.post-card:hover .pc-img { transform: scale(1.025); }
.post-body { display: flex; flex: 1; flex-direction: column; gap: 14px; padding: 18px; }
.post-body h3 { font-size: 19px; line-height: 1.45; overflow-wrap: anywhere; }
.post-foot { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .08); }
.post-meta { display: flex; gap: 14px; color: var(--muted); font-size: 14px; }
.post-meta span { display: inline-flex; align-items: center; gap: 5px; }
.post-cta { display: inline-flex; align-items: center; gap: 6px; color: var(--accent); font-weight: 900; font-size: 15px; }
.site-foot { margin-top: auto; padding: 22px 20px; text-align: center; color: var(--muted); border-top: 1px solid rgba(255, 255, 255, .07); font-size: 14px; }

/* visitor card */
.bg-host { position: relative; isolation: isolate; background: var(--bg-css, var(--bg)); }
.bg-host::before { content: ''; position: fixed; inset: -60px; z-index: -1; background: var(--bg-img, none) center / cover no-repeat; filter: blur(46px) brightness(.34) saturate(1.3); }
.pv-screen.bg-host { overflow: hidden; }
.pv-screen.bg-host::before { position: absolute; }

body.link-page { display: flex; flex-direction: column; }
.lk-brand { display: flex; justify-content: center; padding: clamp(14px, 3vw, 28px) 16px clamp(10px, 2vw, 16px); }
.lk-brand .logo { text-align: center; transition: opacity .15s; }
.lk-brand .logo:hover { opacity: .8; }
body.link-page .lk-root { margin: 0 auto auto; padding-top: 0; }
.lk-root { container-type: inline-size; width: 100%; max-width: 1280px; margin: auto; padding: clamp(14px, 4vw, 44px) clamp(12px, 3vw, 24px); }
.lk-root > .empty-state { max-width: 520px; margin: 12vh auto; }
.lk-card {
  display: grid; gap: 24px; padding: 18px;
  background: linear-gradient(180deg, rgba(30, 34, 40, .92), rgba(18, 21, 25, .92)); border: 1px solid rgba(255, 255, 255, .11); border-radius: 24px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .45); backdrop-filter: blur(16px);
}
@container (min-width: 760px) {
  .lk-card { grid-template-columns: 1fr 1fr; padding: 36px; gap: 40px; align-items: start; }
  .lk-card.no-cover { grid-template-columns: .85fr 1fr; }
  /* A prompt needs room to read, so the content side gets more width once unlocked. */
  .lk-card.has-text { grid-template-columns: .7fr 1.3fr; }
  .lk-card .lk-head h1 { font-size: 34px; }
  .lk-card .got pre { max-height: min(62vh, 620px); font-size: 17px; padding: 18px; }
}
@container (min-width: 1100px) {
  .lk-card { padding: 44px; gap: 52px; }
  .lk-card .lk-head h1 { font-size: 38px; }
  .lk-card .step-btn, .lk-card .unlock-btn { min-height: 64px; font-size: 19px; }
}
/* Any picture shape: shown whole at its own proportions, never cropped. */
@container (max-width: 520px) {
  .lk-card .ready-seal { width: 68px; height: 68px; }
  .lk-card .got-link, .lk-card .got-head { flex-wrap: wrap; }
  .lk-card .got-link span, .lk-card .got-head span { flex: 1 1 calc(100% - 64px); }
  .lk-card .got-link em, .lk-card .got-copy { flex: 0 0 100%; }
}
.lk-cover { display: block; width: 100%; height: auto; max-height: min(72vh, 680px); object-fit: contain; border-radius: 14px; background: rgba(0, 0, 0, .22); }
.lk-card.no-cover .lk-head { margin-top: 0; }
.lk-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 16px; }
.lk-head h1 { font-size: clamp(23px, 4vw, 30px); overflow-wrap: anywhere; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 99px; background: rgba(255, 255, 255, .08); color: #d5dae1; font-size: 14px; }
.chip b { color: #fff; font-weight: 900; }
.lk-desc { margin-top: 14px; color: #dde2e8; white-space: pre-wrap; overflow-wrap: anywhere; }
.teaser { margin-top: 16px; padding: 14px 16px; background: rgba(255, 255, 255, .035); border: 1px solid rgba(255, 255, 255, .1); border-radius: 14px; }
.teaser h3 { display: flex; align-items: center; gap: 7px; font-size: 15px; color: var(--accent); }
.teaser ul { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 7px 0 0; padding: 0; list-style: none; }
.teaser li { display: flex; align-items: center; gap: 6px; font-size: 15px; }

.prog { display: grid; grid-template-columns: 1fr auto; gap: 7px; margin-bottom: 14px; font-weight: 800; }
.prog b { color: var(--accent); font-weight: 900; }
.prog i { grid-column: 1 / -1; height: 7px; border-radius: 9px; background: rgba(255, 255, 255, .1); position: relative; overflow: hidden; }
.prog i::after { content: ''; position: absolute; inset-block: 0; inset-inline-start: 0; width: var(--p); background: var(--accent); border-radius: 9px; transition: width .4s; }

.steps { display: flex; flex-direction: column; gap: 10px; }
.step-btn {
  display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 56px; padding: 10px 16px;
  background: var(--brand); color: var(--brand-fg); border: 1px solid rgba(255, 255, 255, .14); border-radius: 13px;
  font-weight: 900; font-size: 17px; transition: filter .15s, transform .15s;
}
.step-btn:hover { filter: brightness(1.12); transform: translateY(-1px); }
.step-txt { overflow-wrap: anywhere; }
.step.done .step-btn { background: color-mix(in srgb, var(--accent) 14%, var(--surface)); color: var(--text); border-color: var(--accent); }
.step-ok { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--accent); color: var(--accent-ink); animation: pop .35s cubic-bezier(.2, 1.6, .4, 1); }
@keyframes pop { from { transform: scale(0); } }
.verify-btn {
  display: flex; align-items: center; justify-content: center; gap: 9px; width: 100%; min-height: 44px; margin-top: 7px; padding: 7px 12px;
  border-radius: 11px; border: 1px solid var(--line); background: var(--surface-2); color: #dfe4ea; font-weight: 800; font-size: 14px;
}
.verify-btn:hover { background: var(--surface-3); }
.verify-btn.hot { background: #fff; color: #111; border-color: #fff; font-size: 15px; animation: glow 1.8s ease-in-out infinite; }
.verify-btn:disabled { opacity: .7; animation: none; }
@keyframes glow { 50% { box-shadow: 0 0 0 5px rgba(255, 255, 255, .17); } }
.g-mark { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: #fff; color: #1a73e8; font: 900 15px/1 Arial, sans-serif; }
.step-btn:disabled { cursor: default; transform: none; filter: none; }
.step-btn.checking { background: var(--surface-3); color: #cdd3da; border-color: var(--line); }
.spinner { width: 20px; height: 20px; flex: none; border-radius: 50%; border: 3px solid rgba(255, 255, 255, .25); border-top-color: var(--accent); animation: spin .8s linear infinite; }
.lk-card > .lk-side.is-ready { display: flex; align-self: stretch; }
.ready-panel {
  display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: clamp(26px, 4vw, 44px) clamp(16px, 3vw, 36px); text-align: center;
  border: 1px solid var(--line);
  border-color: color-mix(in srgb, var(--accent) 38%, transparent);
  border-radius: 18px;
  background: rgba(255, 255, 255, .03);
  background: radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--accent) 17%, transparent), transparent 72%);
}
.ready-panel.enter { animation: rise .4s ease-out; }
.ready-seal {
  display: grid; place-items: center; width: 84px; height: 84px; margin-bottom: 8px; border-radius: 50%;
  background: var(--accent); color: var(--accent-ink);
  box-shadow: 0 0 0 9px rgba(255, 255, 255, .06), 0 12px 38px rgba(0, 0, 0, .35);
  box-shadow: 0 0 0 9px color-mix(in srgb, var(--accent) 18%, transparent), 0 12px 38px color-mix(in srgb, var(--accent) 34%, transparent);
}
.ready-panel.enter .ready-seal { animation: seal-pop .5s cubic-bezier(.2, 1.5, .4, 1); }
@keyframes seal-pop { from { transform: scale(.4); opacity: 0; } }
.ready-panel h2 { font-size: clamp(23px, 3vw, 30px); }
.ready-panel p { color: var(--muted); font-size: 16px; }
.ready-panel .unlock-btn { margin-top: 18px; }
.ready-panel .spinner { border-color: rgba(0, 0, 0, .25); border-top-color: var(--accent-ink); }
.step-msg { margin-top: 7px; padding: 8px 12px; border-radius: 10px; font-size: 14px; font-weight: 700; }
.step-msg.err { background: rgba(255, 107, 107, .14); color: #ffb3b3; }
.step-msg.info { background: rgba(16, 224, 138, .12); color: #7ff5c4; }

.unlock-btn {
  display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 58px; margin-top: 14px; padding: 10px 16px;
  background: var(--surface-3); color: #8e96a2; border-radius: 13px; font-weight: 900; font-size: 18px;
}
.unlock-btn.ready { background: var(--accent); color: var(--accent-ink); animation: ready 1.9s ease-in-out infinite; }
.unlock-btn.ready:not(:disabled) { cursor: pointer; }
.unlock-btn.ready .ic { animation: wiggle .55s ease 2; }
@keyframes ready { 50% { box-shadow: 0 0 0 7px color-mix(in srgb, var(--accent) 22%, transparent); } }
@keyframes wiggle { 25% { transform: rotate(-13deg); } 75% { transform: rotate(13deg); } }
.unlock-hint { margin-top: 8px; text-align: center; color: var(--muted); font-size: 14px; }
.how { display: grid; gap: 3px; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 15px; color: #cdd3da; }
.how b { font-weight: 900; color: #fff; }
.how strong { color: var(--accent); font-weight: 900; }

.got-title { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; padding-bottom: 18px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.got-title h2 { font-size: clamp(22px, 3vw, 28px); }
.got-title p { color: var(--muted); font-size: 15px; }
.got-seal { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 50%; background: var(--accent); color: var(--accent-ink); animation: seal-pop .5s cubic-bezier(.2, 1.5, .4, 1); }
.got-list { display: flex; flex-direction: column; gap: 12px; animation: rise .4s ease-out; }
.got { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12); border-radius: 16px; }
.got-ic { display: grid; place-items: center; flex: none; width: 50px; height: 50px; border-radius: 14px; background: rgba(255, 255, 255, .08); background: color-mix(in srgb, var(--accent) 15%, transparent); color: var(--accent); font-style: normal; }
.got-link { display: flex; align-items: center; gap: 14px; min-height: 80px; padding: 14px 16px; transition: border-color .15s, background .15s, transform .15s; }
.got-link:hover { border-color: var(--accent); background: rgba(255, 255, 255, .08); transform: translateY(-1px); }
.got-link span, .got-head span { flex: 1; min-width: 0; }
.got-link b, .got-head b { display: block; font-weight: 900; font-size: 18px; line-height: 1.4; overflow-wrap: anywhere; }
.got-link small, .got-head small { display: block; margin-top: 2px; color: var(--muted); font-size: 14px; overflow-wrap: anywhere; }
.got-link small[dir="ltr"] { text-align: right; }
.got-link em, .got-copy { display: inline-flex; align-items: center; justify-content: center; gap: 6px; flex: none; min-height: 44px; padding: 8px 16px; border-radius: 12px; background: var(--accent); color: var(--accent-ink); font-style: normal; font-weight: 900; font-size: 15px; }
.got-copy { border: 0; cursor: pointer; transition: filter .15s; }
.got-copy:hover { filter: brightness(1.1); }
.got-text { padding: 14px 16px 16px; }
.got-head { display: flex; align-items: center; gap: 14px; }
.got pre { margin: 14px 0 0; max-height: 340px; overflow: auto; padding: 14px; background: rgba(0, 0, 0, .3); border: 1px solid rgba(255, 255, 255, .07); border-radius: 12px; font: 700 15px/1.75 'Cairo', 'Segoe UI', Tahoma, sans-serif; white-space: pre-wrap; overflow-wrap: anywhere; }

.burst { position: fixed; top: 50%; left: 50%; z-index: 90; pointer-events: none; }
.burst i { position: absolute; width: 9px; height: 9px; border-radius: 2px; background: var(--c); animation: fly 1.2s cubic-bezier(.1, .8, .3, 1) forwards; }
@keyframes fly { to { transform: rotate(var(--a)) translateY(calc(var(--d) * -1)) rotate(180deg); opacity: 0; } }

/* dashboard */
.page-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; }
.page-head h1 { display: flex; align-items: center; gap: 9px; font-size: clamp(23px, 3.4vw, 30px); }
.page-head h1 .ic { color: var(--accent); }
.page-head.sticky { position: sticky; top: 0; z-index: 20; margin-inline: -20px; padding: 10px 20px; background: rgba(13, 15, 18, .92); backdrop-filter: blur(10px); }
.head-acts { display: flex; gap: 8px; }

.stats { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 14px; margin-bottom: 20px; }
.stat { display: flex; flex-direction: column; gap: 2px; padding: 16px 20px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); }
.stat span { color: var(--muted); font-size: 15px; }
.stat b { font-size: 32px; font-weight: 900; line-height: 1.25; }
.stat small { color: var(--muted); font-size: 13px; }
.hero-stat { background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 22%, var(--surface)), var(--surface) 75%); border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.hero-stat b { font-size: 42px; color: var(--accent); }
.filters { display: inline-flex; margin-bottom: 14px; }
.filters button { flex: none; min-width: 72px; }

.list { overflow: hidden; }
.row { display: grid; grid-template-columns: minmax(0, 1fr) 110px 90px 150px 170px; align-items: center; gap: 12px; padding: 12px 18px; border-top: 1px solid var(--line); }
.row:first-child { border-top: 0; }
.row:not(.row-head):hover { background: rgba(255, 255, 255, .025); }
.row-head { padding-block: 9px; color: var(--muted); font-size: 14px; font-weight: 700; }
.row-main { display: flex; align-items: center; gap: 13px; min-width: 0; }
.row-main img, .thumb-ph { flex: none; width: 78px; height: 48px; border-radius: 9px; object-fit: cover; }
.thumb-ph { display: grid; place-items: center; background: var(--surface-2); color: var(--muted); }
.row-title { min-width: 0; }
.row-title b { display: block; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tag { display: inline-block; margin-inline-end: 5px; padding: 0 9px; border-radius: 7px; font-size: 12px; font-weight: 800; background: var(--surface-3); color: var(--muted); }
.tag.public { background: rgba(16, 224, 138, .15); color: #5df0b3; }
.tag.private { background: rgba(77, 163, 255, .16); color: #93c8ff; }
.num { display: inline-flex; align-items: center; gap: 6px; font-weight: 900; }
.num .ic { color: var(--muted); }
.num.views { font-size: 18px; color: var(--accent); }
.num.views .ic { color: inherit; }
.date { color: var(--muted); font-size: 14px; }
.row-acts { display: flex; justify-content: flex-end; }

.login { max-width: 420px; margin: 9vh auto; padding: 30px; }
.login h1 { margin-top: 14px; font-size: 21px; }
.login .btn { margin-top: 20px; }
.form-err { margin-top: 12px; padding: 8px 12px; border-radius: 10px; background: rgba(255, 107, 107, .14); color: #ffb3b3; }

/* editor */
.ed-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, .85fr); gap: 26px; align-items: start; }
.ed-form { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.ed-form h2 { font-size: 20px; }
.sec-head { margin-bottom: 14px; }
.sec-head .muted { font-size: 14px; margin-top: 2px; }
.ed-preview { position: sticky; top: 76px; display: flex; flex-direction: column; align-items: center; gap: 14px; min-width: 0; }
.pv-toggle { width: 250px; }
.pv-frame { width: 100%; overflow: hidden; }
.pv-frame.phone { width: 360px; max-width: 100%; padding: 10px; border-radius: 42px; background: #050608; border: 2px solid #343a44; }
.pv-frame.phone .pv-screen { height: min(720px, calc(100vh - 170px)); overflow-y: auto; border-radius: 32px; scrollbar-width: none; }
.pv-frame.phone .lk-root { padding: 10px; }
.pv-frame.phone .lk-card { padding: 12px; gap: 16px; }
.pv-frame.desktop { border-radius: 14px; border: 2px solid #343a44; }
.pv-frame.desktop .pv-screen { --k: 1; width: 980px; transform: scale(var(--k)); transform-origin: top right; }

.cover-box { position: relative; overflow: hidden; border-radius: 13px; border: 1px solid var(--line); }
.cover-box img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: contain; background: #0b0d10; }
.cover-acts { position: absolute; bottom: 10px; inset-inline-start: 10px; display: flex; gap: 6px; }
.drop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-height: 150px; padding: 18px; text-align: center; border: 2px dashed var(--line); border-radius: 13px; background: var(--surface-2); cursor: pointer; transition: border-color .15s, background .15s; }
.drop:hover, .over .drop { border-color: var(--accent); background: var(--surface-3); }
.drop .ic { color: var(--accent); }
.drop small { color: var(--muted); font-size: 13px; }
.drop.small { min-height: 84px; flex-direction: row; gap: 10px; }
.pbar { display: block; height: 8px; border-radius: 9px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.pbar > i { display: block; width: 0; height: 100%; border-radius: 9px; background: var(--accent); transition: width .2s; }
.pbar.unknown > i { opacity: .55; animation: pulse 1.1s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: 1; } }
.upbar { padding: 12px 14px; background: var(--bg); border: 1px solid var(--line); border-radius: 12px; }
.upbar-top { display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; font-size: 14px; }
.upbar-top b { color: var(--accent); font-size: 20px; font-weight: 900; }
.got-file { flex-wrap: wrap; }
.got-file > .pbar { flex: 0 0 100%; }
.got-file [data-dl-text] { color: #dfe4ea; }

.sort-list { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.sort-row { display: flex; align-items: flex-start; gap: 8px; padding: 12px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 13px; }
.sort-row input:not([type=checkbox]):not([type=file]), .sort-row textarea { background: var(--bg); }
.sort-row.dragging { opacity: .45; }
.sort-row.over { border-color: var(--accent); }
.grip { display: grid; place-items: center; width: 24px; height: 46px; color: #7f8894; cursor: grab; flex: none; }
.item-fields, .step-fields { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.item-top { display: flex; align-items: center; gap: 8px; }
.type-tag { display: inline-flex; align-items: center; gap: 5px; flex: none; color: var(--accent); font-weight: 800; font-size: 14px; }
.file-chosen { display: flex; align-items: center; gap: 8px; min-height: 46px; padding: 6px 12px; background: var(--bg); border-radius: 12px; }
.file-chosen span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.file-chosen .ic { color: var(--accent); }
.hint-empty { padding: 18px; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 12px; }

.quick { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-bottom: 4px; font-size: 14px; }
.quick-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 3px 13px; border: 1px solid var(--line); border-radius: 99px; color: var(--muted); font-weight: 800; font-size: 14px; }
.quick-chip:hover { color: var(--text); }
.quick-chip.added { border-color: var(--accent); color: var(--accent); }
.step-line { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.action-pick { display: flex; align-items: center; gap: 8px; min-height: 46px; padding: 6px 12px; background: var(--surface-3); border-radius: 12px; font-weight: 800; font-size: 14px; text-align: start; min-width: 0; }
.action-pick:hover { filter: brightness(1.15); }
.action-pick span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.action-pick small { color: var(--muted); font-size: 12px; flex: none; }
.step-note { font-size: 13px; }
.verify-check { font-size: 14px; color: #5df0b3; }
.add-step { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 48px; margin-top: 10px; border: 1px dashed #4a525e; border-radius: 12px; color: #dfe4ea; font-weight: 800; }
.add-step:hover { border-color: var(--accent); color: var(--accent); }
.add-step b { color: var(--muted); font-weight: 800; }

.accordion details { border-top: 1px solid var(--line); }
.accordion details:first-child { border-top: 0; }
.accordion summary { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 6px 20px; font-weight: 800; cursor: pointer; list-style: none; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after { content: ''; width: 9px; height: 9px; margin-inline-start: auto; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(45deg); transition: transform .15s; }
.accordion details[open] summary::after { transform: rotate(-135deg); }
.accordion summary .ic { color: var(--muted); }
.acc-body { padding: 0 20px 20px; }
.acc-body > .fld:first-child { margin-top: 0; }
#slugPreview { display: block; margin-top: 6px; font-size: 13px; text-align: left; overflow-wrap: anywhere; }
.swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 8px; }
.swatch { min-height: 54px; border-radius: 11px; border: 2px solid transparent; font-weight: 800; font-size: 14px; color: #fff; }
.swatch.on { border-color: var(--accent); }
.accents { display: flex; gap: 10px; flex-wrap: wrap; }
.accents button { width: 40px; height: 40px; border-radius: 50%; border: 3px solid transparent; outline: 0; }
.accents button.on { border-color: #fff; }

/* dialogs */
.modal { width: min(720px, calc(100vw - 24px)); max-height: 88vh; padding: 24px; color: var(--text); background: var(--surface); border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 30px 90px rgba(0, 0, 0, .6); }
.modal::backdrop { background: rgba(0, 0, 0, .68); }
.modal.small { width: min(460px, calc(100vw - 24px)); text-align: center; }
.modal h2 { font-size: 23px; }
.modal-head { display: flex; align-items: center; justify-content: space-between; }
.modal-acts { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.saved-ic { display: grid; place-items: center; width: 68px; height: 68px; margin: 0 auto 10px; border-radius: 50%; background: var(--accent); color: var(--accent-ink); }
.saved-url { margin-top: 14px; text-align: left; }
.install-steps { margin: 14px 0 0; padding-inline-start: 22px; text-align: start; }
.install-steps li { margin-top: 8px; }
.install-steps .ic { vertical-align: middle; color: var(--accent); }
.search { display: flex; align-items: center; gap: 9px; margin-top: 14px; padding-inline: 14px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; }
.search:focus-within { border-color: var(--accent); }
.search input { background: none !important; border: 0 !important; padding-inline: 0 !important; }
.search .ic { color: var(--muted); }
.cats { display: flex; flex-wrap: wrap; gap: 5px; margin: 12px 0; }
.cats button { min-height: 36px; padding: 2px 14px; border-radius: 99px; color: var(--muted); font-weight: 800; font-size: 14px; }
.cats button:hover { color: var(--text); }
.cats button.on { background: var(--surface-3); color: var(--text); }
.picker-body h3 { display: flex; align-items: center; gap: 7px; margin: 16px 0 8px; color: var(--muted); font-size: 14px; font-weight: 800; }
.pick-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.pick-card { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 6px 13px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; font-weight: 800; font-size: 14px; text-align: start; }
.pick-card:hover { border-color: var(--accent); background: var(--surface-3); }

@media (max-width: 1040px) {
  .ed-grid { grid-template-columns: 1fr; }
  .ed-preview { position: static; order: 2; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .row-head { display: none; }
  .row { grid-template-columns: 1fr 1fr; }
  .row-main { grid-column: 1 / -1; }
  .date { display: none; }
  .row-acts { grid-column: 1 / -1; justify-content: flex-start; margin-inline-start: -8px; }
  .page-head.sticky { margin-inline: -16px; padding-inline: 16px; }
  .wrap { padding-inline: 16px; }
  .topbar { padding-inline: 16px; }
}
@media (max-width: 560px) {
  .step-line { grid-template-columns: 1fr; }
  .seg.add-item { flex-direction: column; }
  .card.pad { padding: 16px; }
  .head-acts .btn { padding-inline: 12px; }
  .stat b { font-size: 26px; }
  .hero-stat { grid-column: 1 / -1; }
  .filters { display: flex; }
  .filters button { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition: none !important; }
}
