:root{--bg:#f5f5f5;--bg-card:#fff;--bg-card-alt:#fafafa;--bg-featured:#f0f8ff;--text:#333;--text-muted:#555;--text-meta:#777;--primary:#06c;--primary-hover:#0052a3;--border:#ddd;--border-featured:#06c;--shadow:0 4px 12px #0000001a;--error-bg:#ffebee;--error-border:#ef5350;--error-title:#c62828;--error-text:#d32f2f;--badge-bg:#06c;--badge-text:#fff;--radius:8px}@media (prefers-color-scheme:dark){:root{--bg:#111827;--bg-card:#1e293b;--bg-card-alt:#1e293b;--bg-featured:#172337;--text:#f0f4f8;--text-muted:#94a3b8;--text-meta:#94a3b8;--primary:#60a5fa;--primary-hover:#93c5fd;--border:#2d3f52;--border-featured:#60a5fa;--shadow:0 4px 12px #0000004d;--error-bg:#2d1b1b;--error-border:#f66;--error-title:#f87171;--error-text:#fca5a5;--badge-bg:#2563eb;--badge-text:#fff}}[data-theme=light]{--bg:#f5f5f5;--bg-card:#fff;--bg-card-alt:#fafafa;--bg-featured:#f0f8ff;--text:#333;--text-muted:#555;--text-meta:#777;--primary:#06c;--primary-hover:#0052a3;--border:#ddd;--border-featured:#06c;--shadow:0 4px 12px #0000001a;--error-bg:#ffebee;--error-border:#ef5350;--error-title:#c62828;--error-text:#d32f2f;--badge-bg:#06c;--badge-text:#fff}[data-theme=dark]{--bg:#111827;--bg-card:#1e293b;--bg-card-alt:#1e293b;--bg-featured:#172337;--text:#f0f4f8;--text-muted:#94a3b8;--text-meta:#94a3b8;--primary:#60a5fa;--primary-hover:#93c5fd;--border:#2d3f52;--border-featured:#60a5fa;--shadow:0 4px 12px #0000004d;--error-bg:#2d1b1b;--error-border:#f66;--error-title:#f87171;--error-text:#fca5a5;--badge-bg:#2563eb;--badge-text:#fff}.theme-toggle{border:1px solid var(--border);cursor:pointer;min-width:44px;min-height:44px;color:var(--text);background:0 0;border-radius:4px;justify-content:center;align-items:center;font-size:1.2rem;transition:border-color .2s,background-color .2s;display:inline-flex;position:absolute;top:1rem;right:1rem}.theme-toggle:hover,.theme-toggle:focus{background-color:var(--border)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}.skip-link{background:var(--primary);color:#fff;z-index:100;padding:8px;text-decoration:none;position:absolute;top:-100px;left:0}.skip-link:focus{top:0}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}body{color:var(--text);background-color:var(--bg);max-width:1200px;margin:0 auto;padding:1rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:16px;line-height:1.6;transition:background-color .3s,color .3s}header{text-align:center;background-color:var(--bg-card);border-radius:var(--radius);margin-bottom:2rem;padding:2rem 1rem;position:relative}header h1{color:var(--primary);font-size:2rem}main{background-color:var(--bg-card);border-radius:var(--radius);margin-bottom:2rem;padding:1.5rem}.subpage-card{border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card-alt);margin-bottom:1.5rem;padding:1.5rem;transition:transform .2s,box-shadow .2s,background-color .3s}.subpage-card:hover,.subpage-card:focus-within{box-shadow:var(--shadow);transform:translateY(-2px)}.subpage-card h2{overflow-wrap:break-word;margin-bottom:.5rem;font-size:1.5rem}.subpage-card h2 a{color:var(--primary);min-width:44px;min-height:44px;text-decoration:none;display:inline-block}.subpage-card h2 a:hover,.subpage-card h2 a:focus{color:var(--primary-hover);outline:2px solid var(--primary);outline-offset:2px;text-decoration:underline}.subpage-card p{color:var(--text-muted);-webkit-line-clamp:3;text-overflow:ellipsis;-webkit-box-orient:vertical;margin-bottom:.5rem;display:-webkit-box;overflow:hidden}.subpage-card p.expanded{-webkit-line-clamp:unset;display:block;overflow:visible}.read-more-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;align-items:center;min-height:44px;margin-bottom:1rem;padding:0;font-size:.875rem;display:inline-flex}.read-more-btn:hover,.read-more-btn:focus{color:var(--primary-hover);text-decoration:underline}.subpage-card .meta{color:var(--text-meta);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.subpage-card.featured{border:2px solid var(--border-featured);background-color:var(--bg-featured)}.tech-badge{background-color:var(--badge-bg);color:var(--badge-text);border-radius:4px;margin-right:.5rem;padding:.25rem .75rem;font-size:.875rem;display:inline-block}footer{text-align:center;color:var(--text-meta);padding:1rem;font-size:.875rem}.site-changelog-btn{margin-top:.5rem}.empty-state{text-align:center;color:var(--text-meta);padding:3rem 1rem;font-size:1.125rem}.error{background-color:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius);text-align:center;margin:2rem 0;padding:2rem}.error h2{color:var(--error-title);margin-bottom:1rem}.error p{color:var(--error-text)}@media (width>=768px){header h1{font-size:3rem}.subpage-card,body{padding:2rem}}.changelog-btn{border:1px solid var(--border);color:var(--primary);cursor:pointer;background:0 0;border-radius:4px;align-items:center;min-height:44px;margin-top:.75rem;padding:.375rem .75rem;font-size:.875rem;transition:background-color .2s,border-color .2s;display:inline-flex}.changelog-btn:hover,.changelog-btn:focus{background-color:var(--border);border-color:var(--primary)}#changelog-dialog{border:1px solid var(--border);border-radius:var(--radius);background-color:var(--bg-card);color:var(--text);width:90%;max-width:600px;max-height:80vh;box-shadow:var(--shadow);margin:auto;padding:0;overflow:hidden}#changelog-dialog::backdrop{background:#00000080}.changelog-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.changelog-header h2{color:var(--primary);margin:0;font-size:1.25rem}.changelog-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;min-width:44px;min-height:44px;font-size:1.5rem;display:inline-flex}.changelog-close:hover,.changelog-close:focus{color:var(--text);background-color:var(--border)}.changelog-body{max-height:calc(80vh - 4rem);padding:1rem 1.5rem;overflow-y:auto}.changelog-entry{margin-bottom:1.25rem}.changelog-entry:last-child{margin-bottom:0}.changelog-entry h3{color:var(--text);margin-bottom:.5rem;font-size:1rem;font-weight:600}.changelog-entry ul{margin:0;padding-left:1.25rem;list-style:outside}.changelog-entry li{color:var(--text-muted);margin-bottom:.25rem;font-size:.875rem;line-height:1.6}.changelog-empty,.changelog-error{color:var(--text-meta);text-align:center;padding:1rem 0}
