@charset "UTF-8";:root{color-scheme:dark;--bg: #08090f;--surface: #0f111a;--surface-2: #151827;--surface-3: #1d2133;--border: #232838;--border-strong: #333a52;--text: #eceffa;--text-muted: #9aa3bd;--text-faint: #6b7391;--accent: #8b5cf6;--accent-2: #22d3ee;--accent-ink: #c4b5fd;--accent-soft: rgb(139 92 246 / 14%);--on-accent: #0a0b12;--gradient: linear-gradient(135deg, var(--accent), var(--accent-2));--success: #34d399;--success-soft: rgb(52 211 153 / 12%);--danger: #fb7185;--danger-soft: rgb(251 113 133 / 12%);--warning: #fbbf24;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-sm: 8px;--radius: 14px;--radius-lg: 22px;--radius-full: 999px;--shadow-1: 0 1px 2px rgb(0 0 0 / 40%);--shadow-2: 0 12px 30px -12px rgb(0 0 0 / 70%);--shadow-3: 0 24px 60px -20px rgb(0 0 0 / 80%);--glow: 0 0 0 1px rgb(139 92 246 / 35%), 0 10px 40px -12px rgb(139 92 246 / 45%);--ease: cubic-bezier(.22, .68, .28, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--fast: .14s;--normal: .26s;--mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Consolas, monospace;--sans: ui-sans-serif, system-ui, "Segoe UI", Roboto, Helvetica, sans-serif}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:radial-gradient(1100px 620px at 12% -8%,rgba(139,92,246,.14),transparent 60%),radial-gradient(900px 520px at 92% 0%,rgba(34,211,238,.09),transparent 55%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:650;line-height:1.2;letter-spacing:-.02em}h1{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.1rem)}h2{font-size:1.05rem}p{margin:0}a{color:var(--accent-ink);text-decoration:none}code,kbd,pre{font-family:var(--mono)}::selection{background:#8b5cf659}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:var(--radius-full);background:var(--border-strong);background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.55rem .95rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font:inherit;font-weight:550;white-space:nowrap;cursor:pointer;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.btn:hover:not(:disabled){border-color:var(--text-faint);background:var(--surface-3);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{border-color:transparent;background:var(--gradient);color:var(--on-accent);font-weight:650}.btn--primary:hover:not(:disabled){border-color:transparent;background:var(--gradient);box-shadow:var(--glow)}.btn--lg{padding:.8rem 1.5rem;border-radius:var(--radius);font-size:1.02rem}.btn--icon{padding:.45rem .55rem}.input,.textarea,.select{width:100%;padding:.6rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:#08090f99;color:var(--text);font:inherit;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),background var(--fast) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:hover,.textarea:hover,.select:hover{border-color:var(--text-faint)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--accent);background:#08090fe6;box-shadow:0 0 0 4px var(--accent-soft)}.select{appearance:none;padding-right:2rem;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 17px) calc(50% + 1px),calc(100% - 12px) calc(50% + 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer}.textarea{min-height:240px;font-family:var(--mono);font-size:13px;line-height:1.65;resize:vertical}.field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.label{color:var(--text-muted);font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.09em}.checkbox{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-muted);cursor:pointer;transition:color var(--fast) var(--ease)}.checkbox:hover{color:var(--text)}.checkbox input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.card{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,var(--surface-2),var(--surface));box-shadow:var(--shadow-1)}.page{display:flex;flex-direction:column;gap:var(--space-5);max-width:1180px;animation:enter var(--normal) var(--ease-out) both}.page__header{display:flex;flex-direction:column;gap:var(--space-2);max-width:70ch}.page__subtitle{color:var(--text-muted)}.mono{font-family:var(--mono)}@keyframes enter{0%{opacity:0;transform:translateY(10px)}}.controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-4)}.controls__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-left:auto}.tabs{display:flex;gap:var(--space-1);padding:4px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#08090f99}.tabs .btn{border-color:transparent;background:transparent}.tabs .btn:hover:not(:disabled){background:var(--surface-3);transform:none}.tabs .btn--primary{background:var(--gradient)}.results{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--space-3);margin:0;padding:0;list-style:none}.results--wide{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.result{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:.65rem .85rem;animation:enter var(--fast) var(--ease-out) both;transition:border-color var(--fast) var(--ease),transform var(--fast) var(--ease)}.result:hover{border-color:var(--border-strong);transform:translateY(-1px)}.result__value{min-width:0;font-size:.98rem;letter-spacing:.03em;overflow-wrap:anywhere}.validator{display:flex;flex-direction:column;gap:var(--space-3);max-width:480px}.verdict{padding:.55rem .8rem;border:1px solid transparent;border-radius:var(--radius-sm);font-size:.9rem;animation:enter var(--fast) var(--ease-out) both}.verdict--ok{border-color:#34d39940;background:var(--success-soft);color:var(--success)}.verdict--ko{border-color:#fb718540;background:var(--danger-soft);color:var(--danger)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:.2rem .6rem;border:1px solid var(--border-strong);border-radius:var(--radius-full);color:var(--text-muted);font-size:.7rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.brand-mark{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:10px;background:var(--gradient);color:var(--on-accent);font-family:var(--mono);font-size:.78rem;font-weight:700;box-shadow:var(--shadow-2)}.markdown-body :first-child{margin-top:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin:var(--space-5) 0 var(--space-2)}.markdown-body h1{padding-bottom:var(--space-2);border-bottom:1px solid var(--border);font-size:1.7rem}.markdown-body h2{font-size:1.3rem}.markdown-body h3{font-size:1.1rem}.markdown-body p,.markdown-body ul,.markdown-body ol,.markdown-body table,.markdown-body pre,.markdown-body blockquote{margin:var(--space-3) 0}.markdown-body ul,.markdown-body ol{padding-left:1.4rem}.markdown-body li{margin:.2rem 0}.markdown-body li>ul,.markdown-body li>ol{margin:.2rem 0}.markdown-body code{padding:.1rem .35rem;border-radius:5px;background:var(--surface-3);font-size:.88em}.markdown-body pre{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-3);overflow-x:auto}.markdown-body pre code{padding:0;background:none;font-size:.85rem}.markdown-body blockquote{padding:var(--space-1) var(--space-4);border-left:3px solid var(--accent);color:var(--text-muted)}.markdown-body blockquote p{margin:var(--space-2) 0}.markdown-body table{width:100%;border-collapse:collapse;font-size:.92rem}.markdown-body th,.markdown-body td{padding:.45rem .7rem;border:1px solid var(--border);text-align:left}.markdown-body th{background:var(--surface-3);font-weight:650}.markdown-body hr{margin:var(--space-5) 0;border:none;border-top:1px solid var(--border)}.markdown-body a{text-decoration:underline;text-underline-offset:2px}.markdown-body img{max-width:100%;border-radius:var(--radius-sm)}.markdown-body del{color:var(--text-faint)}:root[data-theme=light]{color-scheme:light;--bg: #f5f6fb;--surface: #ffffff;--surface-2: #ffffff;--surface-3: #eef0f8;--border: #e3e6f0;--border-strong: #c8cddd;--text: #16192a;--text-muted: #545b75;--text-faint: #757d99;--accent: #7c3aed;--accent-2: #0e91b0;--accent-ink: #6d28d9;--accent-soft: rgb(124 58 237 / 10%);--on-accent: #ffffff;--success: #047857;--success-soft: rgb(4 120 87 / 10%);--danger: #be123c;--danger-soft: rgb(190 18 60 / 9%);--warning: #b45309;--shadow-1: 0 1px 2px rgb(23 25 42 / 6%);--shadow-2: 0 10px 26px -14px rgb(23 25 42 / 25%);--shadow-3: 0 20px 45px -20px rgb(23 25 42 / 28%);--glow: 0 0 0 1px rgb(124 58 237 / 30%), 0 10px 30px -14px rgb(124 58 237 / 45%)}:root[data-theme=light] body{background:radial-gradient(1100px 620px at 12% -8%,rgba(124,58,237,.09),transparent 60%),radial-gradient(900px 520px at 92% 0%,rgba(14,145,176,.08),transparent 55%),var(--bg)}:root[data-theme=light] .btn--primary{background:var(--accent-ink)}:root[data-theme=light] .btn--primary:hover:not(:disabled){background:var(--accent)}:root[data-theme=light] .input,:root[data-theme=light] .textarea,:root[data-theme=light] .select,:root[data-theme=light] .tabs{background:#fff}:root[data-theme=light] .input:focus,:root[data-theme=light] .textarea:focus,:root[data-theme=light] .select:focus{background:#fff}:root[data-theme=light] ::selection{background:#7c3aed38}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}
