:root{--bg:#f6f8fc;--bg-soft:#eef2f9;--card:#fff;--card-2:#f4f7fc;--border:#e1e7f1;--text:#1a2138;--muted:#5d6783;--accent:#4f6bff;--accent-2:#7b5cff;--pass:#1aa45a;--warn:#c98a09;--fail:#e23857;--info:#1488ab;--radius:14px;--shadow:0 10px 30px rgba(31,45,90,.1);--page-glow:radial-gradient(1200px 600px at 70% -10%,#e7ecff 0%,var(--bg) 55%);--header-bg:hsla(0,0%,100%,.7);--code-bg:#f3f6fd}html.dark{--bg:#0b1020;--bg-soft:#121831;--card:#161d3a;--card-2:#1b2342;--border:#2a3258;--text:#e8ecf8;--muted:#9aa3c7;--accent:#6d8bff;--accent-2:#8a6dff;--pass:#2ecc71;--warn:#f5b942;--fail:#ff5c7a;--info:#4cc4e0;--shadow:0 10px 40px rgba(0,0,0,.35);--page-glow:radial-gradient(1200px 600px at 70% -10%,#1a2347 0%,var(--bg) 55%);--header-bg:rgba(11,16,32,.6);--code-bg:#0e1430}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--page-glow);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;-webkit-font-smoothing:antialiased;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:960px;margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--border);background:var(--header-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:-webkit-sticky;position:sticky;top:0;z-index:10}.site-header .inner{justify-content:space-between;padding:16px 20px;max-width:960px;margin:0 auto}.brand,.site-header .inner{display:flex;align-items:center}.brand{gap:10px;font-weight:700;font-size:18px;color:var(--text)}.brand .logo{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-size:14px;font-weight:800;color:#fff}.nav a{color:var(--muted);margin-left:18px;font-size:14px}.nav a:hover{color:var(--text);text-decoration:none}.theme-toggle{margin-left:18px;width:36px;height:36px;border-radius:9px;border:1px solid var(--border);background:var(--card-2);color:var(--text);cursor:pointer;display:inline-grid;place-items:center;font-size:16px;line-height:1;transition:background .15s ease,border-color .15s ease;vertical-align:middle}.theme-toggle:hover{border-color:var(--accent)}.hero{text-align:center;padding:56px 0 24px}.hero h1{font-size:clamp(28px,5vw,44px);line-height:1.15;margin:0 0 14px;letter-spacing:-.02em}.hero h1 .grad{background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{color:var(--muted);max-width:640px;margin:0 auto;font-size:17px}.validator{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin-top:28px}.tabs{display:inline-flex;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:4px;gap:4px;margin-bottom:16px}.tab{border:none;background:transparent;color:var(--muted);padding:8px 16px;border-radius:7px;cursor:pointer;font-size:14px;font-weight:600;transition:all .15s ease}.tab.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff}.input-row{display:flex;gap:10px}input[type=text],textarea{width:100%;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;color:var(--text);padding:13px 14px;font-size:15px;font-family:inherit;outline:none;transition:border-color .15s ease}input[type=text]:focus,textarea:focus{border-color:var(--accent)}textarea{min-height:220px;resize:vertical;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;font-size:13.5px;line-height:1.55}.hint{color:var(--muted);font-size:13px;margin:8px 2px 0}.linklike{background:none;color:var(--accent);font:inherit;padding:0;text-decoration:underline}.btn,.linklike{border:none;cursor:pointer}.btn{border-radius:10px;padding:13px 22px;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));transition:transform .08s ease,opacity .15s ease;white-space:nowrap}.btn:hover{opacity:.93}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:var(--bg-soft);border:1px solid var(--border);color:var(--muted);font-weight:600}.actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.results{margin-top:26px}.result-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;font-weight:600;margin-bottom:18px;border:1px solid var(--border)}.result-banner.ok{background:rgba(46,204,113,.12);border-color:rgba(46,204,113,.4);color:#b6f0cf}.result-banner.bad{background:rgba(255,92,122,.12);border-color:rgba(255,92,122,.4);color:#ffc2cf}.result-banner .big{font-size:22px}.checks{display:grid;grid-gap:10px;gap:10px}.check{display:flex;gap:12px;align-items:flex-start;background:var(--card-2);border:1px solid var(--border);border-radius:12px;padding:13px 15px}.check .icon{flex:0 0 22px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;margin-top:1px}.check .icon.pass{background:rgba(46,204,113,.18);color:var(--pass)}.check .icon.warn{background:rgba(245,185,66,.18);color:var(--warn)}.check .icon.fail{background:rgba(255,92,122,.18);color:var(--fail)}.check .icon.info{background:rgba(76,196,224,.18);color:var(--info)}.check .body .label{font-weight:700;font-size:14.5px}.check .body .label .req{font-size:11px;color:var(--fail);margin-left:8px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.check .body .msg{color:var(--muted);font-size:13.5px;margin-top:2px}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:24px 0 10px;font-weight:700}.suggestions li{color:var(--text);margin-bottom:6px;font-size:14px}.suggestions{padding-left:20px}.linkrow{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--card-2);margin-bottom:7px;font-size:13px}.linkrow .status{flex:0 0 auto;font-size:11px;font-weight:800;padding:2px 8px;border-radius:20px}.linkrow .status.ok{background:rgba(46,204,113,.18);color:var(--pass)}.linkrow .status.bad{background:rgba(255,92,122,.18);color:var(--fail)}.linkrow .url{color:var(--muted);word-break:break-all}.linkrow .name{color:var(--text);font-weight:600}.preview{background:var(--code-bg);border:1px solid var(--border);border-radius:12px;padding:20px 22px}.preview h1{font-size:24px;margin:0 0 10px}.preview h2{font-size:18px;margin:22px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border)}.preview blockquote{border-left:3px solid var(--accent);margin:0 0 14px;padding:6px 14px;color:var(--muted);background:rgba(109,139,255,.06);border-radius:0 8px 8px 0}.preview ul{margin:6px 0;padding-left:20px}.preview li{margin-bottom:5px}.preview li.invalid{color:var(--fail);list-style:"✗ "}.preview code{background:var(--bg-soft);padding:1px 5px;border-radius:4px;font-size:13px}.preview .muted{color:var(--muted)}.error-box{background:rgba(255,92,122,.1);border:1px solid rgba(255,92,122,.4);border-radius:12px;padding:14px 16px;color:#ffc2cf;font-size:14px}.error-box ul{margin:8px 0 0;padding-left:18px;color:var(--muted);font-size:13px}.spinner{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block;vertical-align:middle}@keyframes spin{to{transform:rotate(1turn)}}.content{margin:64px 0 40px}.content h2{font-size:26px;margin:40px 0 14px;letter-spacing:-.01em}.content h3{font-size:18px;margin:22px 0 6px}.content p{color:var(--muted)}.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:14px;gap:14px;margin-top:18px}.feature{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px}.feature h3{margin:0 0 6px;font-size:16px}.feature p{margin:0;font-size:14px}.codeblock{background:var(--code-bg);border:1px solid var(--border);border-radius:10px;padding:16px;overflow-x:auto;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:13px;color:var(--text);white-space:pre}.steps{counter-reset:step;list-style:none;padding:0;margin:14px 0}.steps li{position:relative;padding:12px 16px 12px 52px;margin-bottom:10px;background:var(--card);border:1px solid var(--border);border-radius:12px;color:var(--muted)}.steps li strong{color:var(--text)}.steps li:before{counter-increment:step;content:counter(step);position:absolute;left:14px;top:12px;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:700;font-size:14px;display:grid;place-items:center}.cta{margin:36px 0;padding:26px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(135deg,rgba(109,139,255,.1),rgba(138,109,255,.1));text-align:center}.cta h2{margin:0 0 8px}.cta p{margin:0 auto 16px;max-width:560px}.cta .btn{display:inline-block;text-decoration:none}.faq details{border:1px solid var(--border);border-radius:10px;padding:4px 16px;margin-bottom:10px;background:var(--card)}.faq summary{cursor:pointer;font-weight:600;padding:12px 0;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:before{content:"+ ";color:var(--accent);font-weight:800}.faq details[open] summary:before{content:"− "}.faq p{margin:0 0 14px}.site-footer{border-top:1px solid var(--border);padding:28px 0;text-align:center;color:var(--muted);font-size:14px;margin-top:40px}.footer-nav{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin-bottom:14px}.footer-nav a{color:var(--muted);font-size:14px}.footer-nav a:hover{color:var(--text);text-decoration:none}.footer-meta{font-size:13.5px}.page{max-width:760px;margin:0 auto;padding:48px 0 20px}.page h1{font-size:clamp(26px,4vw,36px);margin:0 0 6px;letter-spacing:-.02em}.page .updated{color:var(--muted);font-size:14px;margin-bottom:28px}.page h2{font-size:20px;margin:30px 0 10px}.page li,.page p{color:var(--text);opacity:.92}.page ul{padding-left:22px}.page li{margin-bottom:7px}.page a{text-decoration:underline}.contact-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px;margin-top:18px}.contact-card .email{font-size:20px;font-weight:700}@media (max-width:560px){.input-row{flex-direction:column}.hero{padding:36px 0 12px}}