@charset "UTF-8";:root{color-scheme:dark;--bg: #0c0e0f;--raised: #101314;--surface-top: #151819;--surface-bottom: #111415;--line: #242b2d;--line-soft: #1a1f21;--text: #f7faf8;--text-soft: #c9d2ce;--muted: #a3ada9;--dim: #86918c;--line-strong: #5f6b67;--good: #5fdc9a;--warn: #f2c66d;--bad: #ff7f7a;--info: #6fc2e8;--accent: #46d9a0;--accent-text: #a8efc9;--accent-soft: rgba(70, 217, 160, .1);--signal: linear-gradient(90deg, #d4f57a, #46d9a0 55%, #2bb4c9);--signal-vertical: linear-gradient(180deg, #d4f57a, #46d9a0 55%, #2bb4c9);--surface: linear-gradient(180deg, var(--surface-top), var(--surface-bottom));--panel: rgba(255, 255, 255, .03);--panel-strong: rgba(255, 255, 255, .06);--mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--sans: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--radius: 8px;--gutter: clamp(16px, 4vw, 40px);--width: 1200px;--ease: cubic-bezier(.22, 1, .36, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1)}@property --score{syntax: "<number>"; inherits: true; initial-value: 0;}@property --tone{syntax: "<color>"; inherits: true; initial-value: #7d8782;}@property --pos{syntax: "<percentage>"; inherits: true; initial-value: 50%;}@view-transition{navigation:auto}::view-transition-old(root){animation:vt-out .18s var(--ease-soft) both}::view-transition-new(root){animation:vt-in .4s var(--ease) both}*{box-sizing:border-box;scrollbar-color:#2a3234 transparent;scrollbar-width:thin}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;min-height:100vh;color:var(--text);background:linear-gradient(180deg,rgba(70,217,160,.07),transparent 560px),var(--bg);font:1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}::selection{background:#46d9a047}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip-link{position:absolute;left:12px;top:-48px;z-index:50;padding:8px 12px;border-radius:var(--radius);background:var(--text);color:var(--bg);font-weight:600}.skip-link:focus{top:12px}@media(pointer:coarse){.tool-button,.segmented button,.topbar nav a,.severity-filter button,.docs-sidebar a{min-height:44px}}code,pre,kbd,textarea{font-family:var(--mono);font-variant-ligatures:none}code{color:var(--accent-text);font-size:.9em}p code,li code,td code{padding:1px 8px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}em{color:var(--text);font-style:normal;border-bottom:1px solid var(--accent)}.lead{max-width:56ch;margin:0 auto;color:var(--text-soft);font-size:clamp(1.0625rem,1.8vw,1.25rem);line-height:1.65}.section-copy{max-width:60ch;margin:0;color:var(--text-soft);font-size:1.125rem}h1,h2,h3{text-wrap:balance}p,li{text-wrap:pretty}.js [data-reveal]:not(.is-in){opacity:0}.js [data-reveal].is-in{animation:rise .7s var(--ease) calc(var(--i, 0) * 60ms) backwards}.js [data-reveal].words{opacity:1;animation:none}@keyframes rise{0%{opacity:0;translate:0 14px}}@keyframes type-in{0%{opacity:0;translate:-6px 0}}@keyframes scan{0%{top:42px;opacity:0}15%,80%{opacity:1}to{top:calc(100% - 56px);opacity:0}}@keyframes draw{0%{scale:0 1}}@keyframes progress{to{scale:1 1}}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js [data-reveal]:not(.is-in),.js .words:not(.is-in) span{opacity:1;translate:none}}.topbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:12px max(var(--gutter),(100% - var(--width)) / 2);border-bottom:1px solid var(--line-soft);background:#0c0e0ff0;view-transition-name:topbar;transition:border-color .4s var(--ease)}.topbar[data-scrolled]{border-bottom-color:var(--line)}.topbar:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--signal);pointer-events:none;transform-origin:left;scale:0 1}@supports (animation-timeline: scroll()){.topbar:after{animation:progress linear both;animation-timeline:scroll(root)}}.topbar nav{position:relative;display:flex;align-items:center;gap:2px;font-size:.875rem}.topbar nav a{position:relative;z-index:1;display:inline-flex;align-items:center;min-height:40px;padding:8px 12px;border-radius:var(--radius);color:var(--muted);transition:color .2s}.topbar nav a:hover,.topbar nav a[aria-current=page]{color:var(--text)}.topbar nav.has-pill a:not(.nav-cta){background:transparent}.topbar nav .nav-cta{margin-left:8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);font-weight:500;transition:border-color .25s,color .2s}.topbar nav .nav-cta:hover,.topbar nav .nav-cta[aria-current=page]{border-color:var(--accent)}.nav-pill{position:absolute;top:0;left:0;border-radius:var(--radius);background:var(--panel-strong);opacity:0;pointer-events:none;transition:translate .4s var(--ease),width .4s var(--ease),opacity .25s}.nav-pill.is-instant{transition:opacity .25s}.brand{display:flex;align-items:center}.wordmark{position:relative;padding-bottom:3px;font-size:1.25rem;font-weight:600;letter-spacing:-.045em;line-height:1}.wordmark b{font-weight:inherit}.wordmark:after{content:"";position:absolute;right:0;bottom:0;left:0;height:2px;border-radius:2px;background:var(--signal);transform-origin:right;scale:.46 1;transition:scale .5s var(--ease)}.brand:hover .wordmark:after{scale:1 1}@media(max-width:640px){.topbar{padding-block:8px}.topbar nav a:not(.nav-cta){padding:8px}}@media(max-width:420px){.topbar nav a:not(.nav-cta):not([href="/docs"]){display:none}}.footer{width:min(var(--width),100% - 2 * var(--gutter));margin-inline:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:16px 56px;padding:28px 0 32px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:.875rem}.footer-links{display:contents}.footer-links div{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px}.footer-links span{color:var(--dim);font:600 .75rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.footer-links a:hover{color:var(--text)}@media(max-width:640px){.footer{justify-content:flex-start}}.section{width:min(var(--width),100% - 2 * var(--gutter));margin-inline:auto;padding:clamp(64px,8vw,96px) 0;border-top:1px solid var(--line-soft)}.section h2{max-width:760px;margin:16px 0 20px;font-size:clamp(2rem,4.2vw,3rem);font-weight:700;line-height:1.1;letter-spacing:-.025em}.page-head{width:min(var(--width),100% - 2 * var(--gutter));margin-inline:auto;padding:clamp(56px,8vw,88px) 0 36px}.page-head h1{max-width:760px;margin:16px 0 20px;font-size:clamp(2rem,4.2vw,3rem);font-weight:700;line-height:1.1;letter-spacing:-.025em}.page-head>*{animation:rise .7s var(--ease) backwards}.page-head>:nth-child(2){animation-delay:.05s}.page-head>:nth-child(3){animation-delay:.1s}.page-head>:nth-child(n+4){animation-delay:.15s}.not-found{min-height:60vh}.not-found .hero-actions{justify-content:flex-start}.docs{display:grid;grid-template-columns:220px minmax(0,1fr) 220px;gap:56px;width:min(1320px,100% - 2 * var(--gutter));margin:0 auto;padding:48px 0 96px}.docs:not(:has(.docs-toc)){grid-template-columns:220px minmax(0,1fr)}.docs-sidebar,.docs-toc{position:sticky;top:80px;align-self:start;max-height:calc(100vh - 104px);overflow-y:auto}.sidebar-group{display:flex;flex-direction:column;gap:1px;margin-bottom:28px}.sidebar-label{margin-bottom:8px;color:var(--dim);font:600 .75rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.docs-sidebar a{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:var(--radius);color:var(--muted);font-size:.875rem;transition:color .2s,background .2s}.docs-sidebar a:hover{color:var(--text);background:var(--panel)}.docs-sidebar a[aria-current=page]{color:var(--text);background:var(--panel-strong);box-shadow:inset 2px 0 0 var(--lang, var(--accent))}.docs-toc{display:flex;flex-direction:column;font-size:.875rem}.docs-toc a{display:flex;gap:8px;padding:4px 0 4px 12px;border-left:1px solid var(--line);color:var(--muted);line-height:1.4;transition:color .2s,border-color .2s}.docs-toc a:hover{color:var(--text)}.docs-toc a.is-active{border-left-color:var(--accent);color:var(--text)}.docs-toc a.is-active code{color:var(--accent-text)}.docs-toc code{flex:none;padding-top:1px;color:var(--dim);font-size:.75rem}.docs-content{min-width:0;max-width:820px}.docs-hero{padding-bottom:36px;border-bottom:1px solid var(--line-soft)}.docs-hero>*{animation:rise .7s var(--ease) backwards}.docs-hero h1{margin:16px 0;font-size:clamp(2rem,4.2vw,3rem);font-weight:600;line-height:1.1;letter-spacing:-.025em}.docs-tagline{margin:0 0 12px;color:var(--text);font-size:1.25rem;font-weight:500;letter-spacing:-.015em}.docs-lead{max-width:65ch;margin:0;color:var(--text-soft);font-size:1.125rem}.lang-hero .lang-icon-large{color:var(--lang)}.inherits{margin:16px 0 0;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--muted);font-size:.875rem}.inherits a,.docs-text a{color:var(--accent-text);border-bottom:1px solid rgba(70,217,160,.35)}.lang-stats{display:flex;flex-wrap:wrap;align-items:center;gap:32px;margin-top:28px}.lang-stats div{display:flex;flex-direction:column}.lang-stats strong{font-size:1.5rem;font-weight:600;letter-spacing:-.025em;line-height:1.1}.lang-stats span{color:var(--dim);font-size:.75rem}.lang-stats .button{margin-left:auto}.docs-h2{margin:56px 0 20px;font-size:1.5rem;font-weight:700;letter-spacing:-.025em}.docs-text{max-width:70ch;color:var(--text-soft)}.flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.flow span{padding:8px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);font:500 .875rem var(--mono);transition:border-color .25s,color .25s}.flow span:hover{border-color:var(--accent);color:var(--accent-text)}.flow span:not(:last-child):after{content:"→";margin-left:16px;color:var(--dim)}.profile-list{display:grid;grid-auto-rows:1fr;border-top:1px solid var(--line)}.profile-row{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin-inline:-12px;padding:20px 12px;border-bottom:1px solid var(--line);transition:background .25s}.profile-row>:nth-child(-n+2){transition:translate .4s var(--ease)}.profile-row:hover{background:var(--panel)}.profile-row:hover>:nth-child(-n+2){translate:6px 0}.profile-row strong{font-size:1.125rem;font-weight:600}.profile-row p{margin:2px 0 0;color:var(--muted);font-size:.875rem}.profile-meta{color:var(--dim);font:500 .75rem var(--mono);text-align:right}.rule-block{padding:32px 0;border-bottom:1px solid var(--line-soft)}.rule-head{display:flex;align-items:center;gap:12px}.rule-id{color:var(--accent);font:600 .75rem var(--mono);letter-spacing:.04em}.rule-id:hover{text-decoration:underline}.rule-block h3{margin:8px 0 12px;font-size:1.25rem;font-weight:600;letter-spacing:-.02em}.rule-block>p{max-width:70ch;margin:0 0 12px;color:var(--text-soft)}.examples{display:grid;gap:12px;margin-top:20px}.examples-split{grid-template-columns:1fr 1fr;grid-template-rows:auto repeat(var(--rows),auto);column-gap:12px;row-gap:0}.examples-split .example{display:grid;grid-row:1/-1;grid-template-rows:subgrid}.example{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--raised)}.example-label{padding:8px 16px;border-bottom:1px solid var(--line);font:600 .75rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.example-avoid .example-label{color:var(--bad)}.example-prefer .example-label{color:var(--good)}.example-code+.example-code{border-top:1px dashed var(--line)}.example-sub{display:block;padding:12px 16px 0;color:var(--dim);font:400 .75rem var(--mono)}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.check-grid label{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;font-size:.875rem}.check-grid input{margin-top:3px;accent-color:var(--accent)}.check-grid label:has(input:checked){border-color:#5fdc9a4d}.check-grid label:has(input:checked) span{color:var(--dim);text-decoration:line-through;text-decoration-color:#66706980}.pager{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:56px}.pager a{display:flex;flex-direction:column;padding:16px 20px;border:1px solid var(--line);border-radius:var(--radius);font-weight:600;transition:border-color .25s,background .25s}.pager a:hover{border-color:var(--accent);background:var(--accent-soft)}.pager span{color:var(--dim);font:500 .75rem var(--mono)}.pager-next{text-align:right;grid-column:2}@media(max-width:1180px){.docs,.docs:not(:has(.docs-toc)){grid-template-columns:200px minmax(0,1fr)}.docs-toc{display:none}}@media(max-width:900px){.docs,.docs:not(:has(.docs-toc)){grid-template-columns:minmax(0,1fr);gap:24px;padding-top:24px}.docs-sidebar{position:static;max-height:none;display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;border-bottom:1px solid var(--line-soft)}.sidebar-group{flex-direction:row;margin:0}.sidebar-label{display:none}.docs-sidebar a{white-space:nowrap}.examples-split{grid-template-columns:minmax(0,1fr);grid-template-rows:none;row-gap:12px}.examples-split .example{display:flex;grid-row:auto}}@media(max-width:640px){.check-grid,.pager{grid-template-columns:minmax(0,1fr)}.pager-next{grid-column:1}.profile-row{grid-template-columns:auto 1fr}.profile-meta{grid-column:2;text-align:left}.lang-stats .button{width:100%;margin-left:0}}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:12px 20px;min-height:44px;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:.875rem;font-weight:500;transition:border-color .25s,background .25s,color .25s}.button.primary{border-color:transparent;background:var(--signal) border-box;color:#0c0e0f;font-weight:600}.button.primary:hover{filter:brightness(1.08)}.button.ghost{background:transparent}.button.ghost:hover{border-color:var(--accent)}.button .arrow{display:inline-block;transition:translate .3s var(--ease)}.button:hover .arrow{translate:3px 0}svg{flex:none}.lang-icon{color:var(--lang, var(--muted))}.lang-icon-large{display:block;width:36px;height:36px;margin-bottom:20px}.docs-sidebar a svg{color:var(--dim);transition:color .2s}.docs-sidebar a:hover svg,.docs-sidebar a[aria-current=page] svg{color:var(--lang, var(--accent))}.docs-sidebar a:not([style]) svg{color:var(--dim)}.profile-row .lang-icon{align-self:center}.button svg,.tool-button svg{flex:none}.tool-button,.scope{gap:8px}.auto-dots{display:flex;gap:8px}.auto-dots .lang-icon{opacity:.9}.topbar nav .lang-switch{display:inline-flex;align-items:center;gap:8px;margin-left:4px;padding:8px 12px;color:var(--dim);font:500 .75rem var(--mono)}.topbar nav .lang-switch:hover{color:var(--text)}.language-card-head .lang-icon{align-self:center}.principle-number{display:inline-flex;color:var(--accent-text)}.example-code{position:relative}.copy-code{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line-strong);border-radius:4px;background:var(--raised);color:var(--muted);cursor:pointer;opacity:0;transition:opacity .2s,color .2s}.copy-code:after{content:attr(data-copied);position:absolute;right:calc(100% + 8px);padding:4px 8px;border-radius:4px;background:var(--raised);color:var(--good);font:500 .75rem var(--mono);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .2s}.copy-code[data-copied]:after{opacity:1}.copy-code:hover{color:var(--text)}.example-code:hover .copy-code,.copy-code:focus-visible{opacity:1}@media(hover:none){.copy-code{opacity:1}}img.lang-icon{object-fit:contain}.downloads{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:64px;align-items:start}.downloads .button{margin-top:32px}.download-size{color:inherit;opacity:.7;font:500 .75rem var(--mono)}.download-hint{max-width:56ch;margin:16px 0 0;color:var(--dim);font-size:.875rem}.download-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}.download-head{padding:0 0 12px;color:var(--dim);font:600 .75rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.download-row{display:grid;grid-template-columns:auto auto 1fr auto auto;gap:16px;align-items:center;min-height:56px;margin-inline:-12px;padding:8px 12px;border-bottom:1px solid var(--line-soft);transition:background .25s}.download-row strong{font-weight:600}.download-row code{overflow:hidden;padding:0;border:0;background:none;color:var(--dim);font-size:.75rem;text-overflow:ellipsis;white-space:nowrap}.download-row .download-size{color:var(--muted);opacity:1}.download-row .download-icon{color:var(--dim);transition:color .2s,translate .3s var(--ease)}.download-row:hover{background:var(--panel)}.download-row:hover .download-icon{color:var(--accent);translate:0 2px}@media(max-width:900px){.downloads{grid-template-columns:minmax(0,1fr);gap:32px}}@media(max-width:640px){.download-row{grid-template-columns:auto 1fr auto auto}.download-row code{display:none}}.chips{display:flex;flex-wrap:wrap;gap:4px 16px}.chips span,.chips a{color:var(--dim);font:400 .75rem var(--mono)}.chips-large{margin:24px 0 0}.chips-large span{color:var(--muted);font-size:.875rem}.chips-links a code{padding:0;border:0;background:none;font-size:.75rem;transition:color .2s}.chips-links a:hover code{color:var(--text)}.badge{display:inline-block;padding:1px 8px;border:1px solid var(--line);border-radius:4px;color:var(--muted);font:500 .75rem var(--mono)}.badge-auto{border-color:#5fdc9a4d;color:var(--good)}.window{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);background:var(--raised)}.window-head{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--dim);font:400 .75rem var(--mono)}.window-bad .window-head span:first-child{color:var(--bad);font:600 .75rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.window-good .window-head span:first-child{color:var(--good);font:600 .75rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.status-clean{color:var(--good)}.status{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:none;color:var(--muted);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;transition:color .25s}.status:hover{color:var(--text)}.status[data-state=checking]{color:var(--dim)}.status-replay{display:none}pre.astro-code{margin:0;padding:16px 20px;overflow-x:auto;background:transparent!important;font-size:.8125rem;line-height:1.75}.window pre.astro-code{padding:20px 24px}.example-code pre.astro-code{overflow-x:visible;white-space:pre-wrap;overflow-wrap:anywhere}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}.rule-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:.875rem}.rule-table th:first-child{width:11rem}.rule-table th:last-child{width:9rem}.rule-table th{padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel);color:var(--dim);text-align:left;font:600 .75rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.rule-table td{padding:12px 16px;border-bottom:1px solid var(--line-soft);vertical-align:middle}.rule-table tbody tr{transition:background .2s}.rule-table tbody tr:hover{background:#ffffff05}.rule-table tr:last-child td{border-bottom:0}.rule-table td:first-child{white-space:nowrap}.rule-table td code{padding:0;border:0;background:none;font-size:.8125rem}.rule-table a:hover{color:var(--accent-text)}.rule-index-table th:nth-child(3){width:10rem}.rule-table td{overflow-wrap:anywhere}@media(max-width:640px){.rule-table th:first-child{width:8rem}.rule-table th:last-child{width:5rem}.rule-index-table th:nth-child(3),.rule-index-table td:nth-child(3){display:none}}.segmented{display:flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg)}.segmented button{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:.875rem;font-weight:500;cursor:pointer;transition:color .2s,background .25s}.segmented button:hover{color:var(--text)}.segmented button[aria-pressed=true],.segmented button[aria-selected=true]{color:var(--text);background:var(--panel-strong);box-shadow:inset 0 -2px 0 var(--lang, var(--accent))}.search{flex:1;min-width:200px}.search input{width:100%;padding:8px 16px;min-height:44px;border:1px solid var(--line-strong);border-radius:var(--radius);outline:0;background:var(--bg);color:var(--text);font:1rem var(--sans);transition:border-color .25s}.search input:focus{border-color:var(--accent)}.toggle{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.875rem;cursor:pointer}.toggle input{accent-color:var(--accent)}.scope{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.875rem;white-space:nowrap}.empty-state{padding:32px;color:var(--muted);text-align:center}.tool-button{position:relative;display:inline-flex;align-items:center;padding:8px 16px;min-height:40px;border:1px solid var(--line-strong);border-radius:var(--radius);background:transparent;color:var(--muted);font-size:.875rem;font-weight:500;cursor:pointer;transition:color .2s,border-color .2s}.tool-button:hover{color:var(--text);border-color:var(--muted)}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-button:focus-within{outline:2px solid var(--accent);outline-offset:2px}.hero{width:min(var(--width),100% - 2 * var(--gutter));margin-inline:auto;display:flex;flex-direction:column;align-items:center;gap:64px;padding:clamp(72px,10vw,120px) 0 clamp(64px,8vw,96px);text-align:center}.hero>*{animation:rise .8s var(--ease) backwards}.hero>.hero-code{animation-delay:.2s}.hero-copy{display:flex;flex-direction:column;align-items:center}.hero h1{margin:0 0 28px;font-size:clamp(2.5rem,6.5vw,5.5rem);font-weight:700;line-height:1.02;letter-spacing:-.035em;white-space:nowrap}.hero h1 span{position:relative;display:inline-block;padding-bottom:.08em}.hero h1 span:after{content:"";position:absolute;right:0;bottom:0;left:0;height:.075em;border-radius:99px;background:var(--signal);transform-origin:left;animation:draw .9s .5s var(--ease) backwards}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px}.hero-code{position:relative;width:min(780px,100%);text-align:left}.hero-code pre{font-size:.8125rem;line-height:1.9}.hero-code .line{display:inline-block}.hero-code:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--signal);pointer-events:none;z-index:1}.hero-code:after{content:"";position:absolute;right:0;left:0;top:42px;height:56px;border-bottom:1px solid var(--accent);background:linear-gradient(180deg,transparent,rgba(70,217,160,.08));opacity:0;pointer-events:none}.hero-code.is-scanning:after{animation:scan 1s var(--ease-soft) forwards}.js .hero-code:not(.is-reset) .line{animation:type-in .45s var(--ease) calc(var(--start, 1s) + var(--l, 0) * 60ms) backwards}.principles{display:grid;grid-template-columns:repeat(5,1fr);margin-top:56px;border-top:1px solid var(--line)}.principle{position:relative;padding:24px 24px 8px 0;transition:opacity .3s}.principle+.principle{padding-left:24px;border-left:1px solid var(--line-soft)}.principle-number{color:var(--dim);font:500 .75rem var(--mono)}.principle h3{margin:40px 0 8px;font-size:1.125rem;font-weight:600;letter-spacing:-.02em}.principle p{margin:0;color:var(--muted);font-size:.875rem}.principle-note{margin:20px 0 0;padding:16px;border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--text);font-size:1rem}.language-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:1px;margin-top:56px;border:1px solid var(--line);border-radius:var(--radius);background:var(--line);overflow:hidden}.language-card{position:relative;display:flex;flex-direction:column;gap:16px;padding:28px;background:var(--surface);transition:background .3s}.language-card:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--lang, var(--accent)),transparent 70%)}.language-card:hover{background:linear-gradient(180deg,#181c1d,#131617)}.language-card-core{grid-column:span 2}.language-card-head{display:flex;align-items:baseline;gap:12px}.language-card-head strong{font-size:1.25rem;font-weight:600;letter-spacing:-.02em}.language-card-head code{margin-left:auto;padding:0;border:0;background:none;color:var(--dim);font-size:.75rem}.language-card p{margin:0;color:var(--muted)}.language-card-foot{display:flex;justify-content:space-between;margin-top:auto;padding-top:16px;border-top:1px solid var(--line-soft);color:var(--dim);font:400 .75rem var(--mono)}.language-card-foot .arrow{display:inline-block;transition:translate .3s var(--ease),color .2s}.language-card:hover .language-card-foot .arrow{translate:4px 0;color:var(--text)}.compare-section{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:64px;align-items:center}.compare-section>.compare{order:-1}.compare{--pos: 50%}.compare-stack{position:relative;display:grid;border-radius:var(--radius);cursor:ew-resize;touch-action:pan-y;user-select:none;-webkit-user-select:none}.compare-stack>.window{grid-area:1/1}.compare-stack .window pre{overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere;font-size:clamp(.6875rem,2.4vw,.8125rem)}.compare-pure{clip-path:inset(0 calc(100% - var(--pos)) 0 0 round var(--radius) 0 0 var(--radius))}.compare-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:var(--signal-vertical);pointer-events:none}.compare-knob{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:36px;height:36px;margin:-18px 0 0 -18px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--bg);color:var(--accent-text);font:600 .875rem var(--mono);pointer-events:auto;cursor:ew-resize;transition:background .2s,scale .3s var(--ease)}.compare-knob:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.compare-stack:hover .compare-knob{background:var(--raised);scale:1.08}.compare-hint{margin:16px 0 0;color:var(--dim);font:400 .75rem var(--mono)}.checker-teaser{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.checker-teaser .button{margin-top:28px}.diag-window .window-head{align-items:center}.diagnostic{display:grid;min-height:228px;padding:24px 28px;overflow-x:auto;color:#cfd6d2;font:.8125rem/1.8 var(--mono)}.diag{grid-area:1/1;visibility:hidden}.diag.is-active{visibility:visible}.diag-line{display:block;white-space:pre}.diag-gap{margin-top:1.8em}.js .is-in .diag.is-active .diag-line{animation:type-in .4s var(--ease) calc(.15s + var(--l, 0) * .1s) backwards}.diag-rule{color:var(--accent-text);font-weight:600}.diag-sev{color:var(--bad)}.diag-warn{color:var(--warn)}.diag-dim{color:var(--dim)}.diag-fix{color:var(--good)}.manifesto{position:relative;width:min(var(--width),100% - 2 * var(--gutter));margin-inline:auto;margin-bottom:100px;padding:clamp(64px,9vw,104px) 0 0;border-top:1px solid var(--line)}.manifesto:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--signal);pointer-events:none}.manifesto blockquote{max-width:880px;margin:0 0 28px;font-size:clamp(1.75rem,4.6vw,3.5rem);font-weight:700;line-height:1.1;letter-spacing:-.03em}.manifesto p{max-width:560px;margin:0;color:var(--text-soft)}.manifesto .manifesto-second{margin-top:16px}.manifesto .manifesto-second strong{color:var(--text);font-weight:600}.words span{display:inline-block}.words .accent{padding-bottom:.04em;background:var(--signal) 0 100%/100% .07em no-repeat}.js .words:not(.is-in) span{opacity:.12;translate:0 .15em}.js .words span{transition:opacity .7s var(--ease),translate .7s var(--ease);transition-delay:calc(var(--w, 0) * 40ms)}@media(max-width:1180px){.principles{grid-template-columns:1fr}.principle{padding:20px 0;border-bottom:1px solid var(--line-soft)}.principle+.principle{padding-left:0;border-left:0}.principle h3{margin:12px 0 8px}}@media(max-width:900px){.compare-section{grid-template-columns:minmax(0,1fr);gap:32px}.compare-section>.compare{order:0}.language-grid{grid-template-columns:1fr 1fr}.language-card-core{grid-column:auto}.checker-teaser{grid-template-columns:minmax(0,1fr);gap:32px}}@media(max-width:640px){.language-grid{grid-template-columns:minmax(0,1fr)}.hero-actions{width:100%;flex-direction:column}.hero-actions .button{width:100%}.diagnostic{padding:20px;font-size:.75rem}}.rules-index{width:min(var(--width),100% - 2 * var(--gutter));margin-inline:auto;padding-bottom:100px}.rules-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px}.checker{width:min(var(--width),100% - 2 * var(--gutter));margin-inline:auto;padding-bottom:100px}.checker-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:12px}.checker-actions{display:flex;flex-wrap:wrap;gap:8px}.checker-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);gap:12px;align-items:start}.editor{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);transition:border-color .3s}.editor:focus-within{border-color:var(--accent)}.editor-surface{display:grid;grid-template-columns:auto 1fr;height:min(68vh,640px);min-height:380px}.gutter{overflow:hidden;padding:20px 0;border-right:1px solid var(--line-soft);color:var(--dim);font:.8125rem/1.75 var(--mono);text-align:right;user-select:none}.gutter span{display:block;position:relative;padding:0 12px 0 24px}.gutter span:before{content:"";position:absolute;left:8px;top:50%;width:6px;height:6px;border-radius:50%;transform:translateY(-50%)}.gutter .gutter-error{color:var(--bad)}.gutter .gutter-error:before{background:var(--bad)}.gutter .gutter-warning{color:var(--warn)}.gutter .gutter-warning:before{background:var(--warn)}.gutter .gutter-info{color:var(--info)}.gutter .gutter-info:before{background:var(--info)}#code-input{width:100%;height:100%;padding:20px 20px 20px 16px;overflow:auto;resize:none;border:0;outline:0;background:transparent;color:#dde4e0;caret-color:var(--accent);font:.8125rem/1.75 var(--mono);font-variant-ligatures:none;tab-size:4;white-space:pre}#code-input::placeholder{color:#525c57}#code-input::selection{background:#46d9a047}.drop-hint{position:absolute;inset:42px 0 0;display:grid;place-items:center;border:2px dashed var(--accent);background:#0c0e0fe6;color:var(--accent-text);font-weight:600;pointer-events:none}.report{--score: 0;display:flex;flex-direction:column;max-height:calc(min(68vh,640px) + 44px);min-height:424px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:--score .8s var(--ease)}.report[data-state=clean] .score-ring{--tone: var(--good)}.report[data-state=warn] .score-ring{--tone: var(--warn)}.report[data-state=fail] .score-ring{--tone: var(--bad)}.report[data-state=idle] .issues:empty:after{content:""}.report-summary{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;padding:20px;border-bottom:1px solid var(--line)}.report-summary strong{display:block;font-size:1.125rem;font-weight:600}.report-summary p{margin:2px 0 0;color:var(--muted);font-size:.875rem}.score-ring{--tone: var(--dim);display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:radial-gradient(closest-side,var(--surface-bottom) 82%,transparent 83%),conic-gradient(var(--tone) calc(var(--score) * 1%),rgba(255,255,255,.07) 0);color:var(--tone);font:600 1.0625rem var(--mono);transition:--tone .5s}.severity-filter{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid var(--line)}.severity-filter button{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:4px 12px;border:1px solid var(--line-strong);border-radius:var(--radius);background:transparent;color:var(--muted);font-size:.75rem;cursor:pointer}.severity-filter button[aria-pressed=false]{opacity:.45}.severity-filter b{color:var(--text);font:600 .75rem var(--mono)}.sev-dot{width:6px;height:6px;border-radius:50%}.sev-error{background:var(--bad)}.sev-warning{background:var(--warn)}.sev-info{background:var(--info)}.issues{flex:1;margin:0;padding:0;overflow-y:auto;list-style:none}.issues:empty:after{content:"Keine Fundstellen.";display:block;padding:28px 20px;color:var(--dim);font-size:.875rem;text-align:center}.issue{padding:16px 20px;border-bottom:1px solid var(--line-soft);border-left:2px solid transparent;transition:background .2s}.issue:hover{background:#ffffff05}.issue-error{border-left-color:var(--bad)}.issue-warning{border-left-color:var(--warn)}.issue-info{border-left-color:var(--info)}.issue-meta{display:flex;justify-content:space-between;gap:12px;margin-bottom:4px;font:400 .75rem var(--mono)}.issue-rule{color:var(--accent-text);font-weight:600}.issue-rule:hover{text-decoration:underline}.issue-line{padding:0;border:0;background:none;color:var(--dim);font:inherit;cursor:pointer}.issue-line:hover{color:var(--text)}.issue strong{display:block;font-size:.875rem;font-weight:600}.issue p{margin:2px 0 0;color:var(--muted);font-size:.875rem}.issue-fix{margin:8px 0 0;padding:8px 12px;overflow-x:auto;border:1px solid var(--line-soft);border-radius:4px;background:#00000040;color:var(--good);font-size:.75rem;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.report-actions{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--line)}.copy-status{color:var(--good);font-size:.75rem}.active-rules{margin-top:20px;padding:16px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.active-rules summary{color:var(--muted);font-size:.875rem;font-weight:500;cursor:pointer}.active-rules .chips{margin-top:16px}.active-rules .docs-text{margin:16px 0 0;font-size:.875rem}@media(max-width:900px){.checker-body{grid-template-columns:minmax(0,1fr)}.report{max-height:none;min-height:0}.issues{max-height:520px}}@media(max-width:640px){.editor-surface{height:60vh}}
