.hero{text-align:center;background:radial-gradient(at 50% 0,#6366f126 0%,#0000 60%);padding:80px 0 60px}.hero__title{letter-spacing:-.02em;margin-bottom:16px;font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:1.15}.hero__accent{background:linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero__subtitle{color:var(--color-text-muted);max-width:560px;margin:0 auto 32px;font-size:1.15rem;line-height:1.6}.hero__form{justify-content:center;display:flex}.hero__form .url-input-group{max-width:520px}.top-sites{padding-top:48px}.top-sites__title{margin-bottom:24px;font-size:1.5rem;font-weight:700}.top-sites__loading{justify-content:center;padding:32px 0;display:flex}.top-sites__empty{color:var(--color-text-muted);text-align:center;padding:32px 0}.top-sites__grid{flex-direction:column;gap:12px;display:flex}.site-card{background:var(--color-surface);border:1px solid var(--color-border);color:inherit;border-radius:10px;align-items:center;gap:16px;padding:16px 20px;transition:border-color .2s,transform .15s;display:flex}.site-card:hover{border-color:var(--color-accent);text-decoration:none;transform:translateY(-1px)}.site-card__rank{color:var(--color-accent);min-width:36px;font-size:1.1rem;font-weight:700;font-family:var(--font-mono)}.site-card__info{flex:1;min-width:0}.site-card__name{margin:0;font-size:1rem;font-weight:600}.site-card__url{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:.8rem;overflow:hidden}.site-card__desc{color:var(--color-text-muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:4px 0 0;font-size:.8rem;display:-webkit-box;overflow:hidden}.site-card__score{flex-direction:column;align-items:center;gap:4px;display:flex}.site-card__number{font-family:var(--font-mono);color:var(--color-text-muted);font-size:.85rem;font-weight:600}@media (width<=600px){.hero{padding:48px 0 40px}.site-card__desc{display:none}}.grade-badge{background:color-mix(in srgb, var(--grade-color) 15%, transparent);color:var(--grade-color);border:2px solid var(--grade-color);font-weight:700;line-height:1;font-family:var(--font-mono);border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.grade-badge--sm{border-radius:6px;padding:2px 8px;font-size:.85rem}.grade-badge--md{padding:4px 12px;font-size:1.25rem}.grade-badge--lg{border-width:3px;border-radius:12px;padding:12px 24px;font-size:3rem}.score-bar{align-items:center;gap:10px;display:flex}.score-bar__track{background:var(--color-surface-alt);border-radius:4px;flex:1;height:8px;overflow:hidden}.score-bar__fill{border-radius:4px;height:100%;transition:width .5s}.score-bar__label{font-size:.85rem;font-weight:600;font-family:var(--font-mono);text-align:right;min-width:55px}.category-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;transition:border-color .2s;overflow:hidden}.category-card:hover{border-color:var(--color-accent)}.category-card__header{all:unset;cursor:pointer;box-sizing:border-box;align-items:center;gap:16px;width:100%;padding:16px 20px;display:flex}.category-card__info{min-width:180px}.category-card__label{color:var(--color-text);margin:0;font-size:1rem;font-weight:600}.category-card__weight{color:var(--color-text-muted);font-size:.75rem}.category-card__score-area{flex:1}.category-card__chevron{color:var(--color-text-muted);font-size:1rem;transition:transform .2s}.category-card__chevron--open{transform:rotate(180deg)}.category-card__details{max-height:0;transition:max-height .3s;overflow:hidden}.category-card__details--open{max-height:1000px}.category-card__checks{margin:0;padding:0 20px 16px;list-style:none}.check-item{border-top:1px solid var(--color-border);padding:10px 0}.check-item__header{justify-content:space-between;align-items:center;display:flex}.check-item__name{color:var(--color-text);font-size:.9rem;font-weight:500}.check-item__score{font-family:var(--font-mono);color:var(--color-accent);font-size:.85rem;font-weight:600}.check-item__description{color:var(--color-text-muted);margin:4px 0 0;font-size:.8rem}.check-item__details{color:var(--color-text-muted);background:var(--color-surface-alt);font-size:.78rem;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;border-radius:6px;margin:4px 0 0;padding:6px 10px}.scorer{padding-top:40px}.scorer__title{text-align:center;margin-bottom:24px;font-size:1.75rem;font-weight:700}.scorer__form{justify-content:center;margin-bottom:32px;display:flex}.scorer__loading{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:16px;padding:48px 0;display:flex}.scorer__results{animation:.3s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.results-header{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;align-items:center;gap:28px;margin-bottom:32px;padding:32px;display:flex}.results-header__info{flex:1}.results-header__score{align-items:baseline;gap:4px;display:flex}.results-header__number{font-size:3rem;font-weight:800;font-family:var(--font-mono);color:var(--color-text);line-height:1}.results-header__max{color:var(--color-text-muted);font-size:1.25rem;font-weight:500}.results-header__url{color:var(--color-accent-bright);word-break:break-all;margin-top:8px;font-size:.9rem}.results-header__date{color:var(--color-text-muted);margin-top:4px;font-size:.8rem}.scorer__section-title{margin-bottom:16px;font-size:1.25rem;font-weight:600}.scorer__categories{flex-direction:column;gap:10px;display:flex}@media (width<=600px){.results-header{text-align:center;flex-direction:column;padding:24px}.results-header__score{justify-content:center}}:root{--color-bg:#0f172a;--color-surface:#1e293b;--color-surface-alt:#334155;--color-border:#475569;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-accent:#818cf8;--color-accent-bright:#a5b4fc;--color-gradient-start:#6366f1;--color-gradient-end:#a855f7;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--container-width:1200px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.6}a{color:var(--color-accent-bright);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:var(--container-width);margin:0 auto;padding:0 24px}.app-header{background:linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end));z-index:100;padding:0 24px;position:sticky;top:0;box-shadow:0 2px 12px #0000004d}.app-header__inner{max-width:var(--container-width);align-items:center;gap:32px;height:56px;margin:0 auto;display:flex}.app-header__logo{color:#fff;letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.app-header__logo:hover{text-decoration:none}.app-main{min-height:calc(100vh - 56px);padding-bottom:48px}.url-input-group{gap:0;width:100%;max-width:600px;display:flex}.url-input-group input{background:var(--color-surface);color:var(--color-text);border:2px solid var(--color-border);font-size:1rem;font-family:var(--font-sans);border-right:none;border-radius:8px 0 0 8px;outline:none;flex:1;padding:12px 16px;transition:border-color .2s}.url-input-group input:focus{border-color:var(--color-accent)}.url-input-group input::placeholder{color:var(--color-text-muted)}.url-input-group button{cursor:pointer;background:linear-gradient(135deg, var(--color-gradient-start), var(--color-gradient-end));color:#fff;font-size:1rem;font-weight:600;font-family:var(--font-sans);white-space:nowrap;border:none;border-radius:0 8px 8px 0;padding:12px 24px;transition:opacity .15s}.url-input-group button:hover{opacity:.9}.url-input-group button:disabled{opacity:.5;cursor:not-allowed}.spinner{border:3px solid var(--color-surface-alt);border-top-color:var(--color-accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-message{color:#fca5a5;background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;padding:12px 16px;font-size:.9rem}@media (width<=768px){.app-header__inner{gap:16px}.app-header__link{padding:6px 10px;font-size:.85rem}.url-input-group{flex-direction:column;gap:8px}.url-input-group input{border-right:2px solid var(--color-border);border-radius:8px}.url-input-group input:focus{border-color:var(--color-accent)}.url-input-group button{border-radius:8px}}
