:root{--bg:#14110e;--surface:#1f1b16;--surface-2:#2a241d;--border:#3a3228;--text:#f3ece1;--text-dim:#b3a892;--accent:#b8860b;--gold:#d4af37;--beginner:#388e3c;--intermediate:#f57c00;--advanced:#c62828;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);min-height:100vh;margin:0;padding:0}a{color:inherit;text-decoration:none}.page{max-width:1040px;margin:0 auto;padding:32px 20px 64px}.app-header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:28px;padding-bottom:20px;display:flex}.app-title{letter-spacing:.3px;margin:0;font-size:28px}.app-title .knight{color:var(--accent);margin-right:8px}.app-subtitle{color:var(--text-dim);margin:4px 0 0;font-size:14px}.back-link{color:var(--accent);font-size:14px;font-weight:600}.back-link:hover{text-decoration:underline}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:24px;display:flex}.filter-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .15s}.filter-btn:hover{border-color:var(--accent);color:var(--text)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#1a1408}.puzzle-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.puzzle-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;transition:transform .15s,border-color .15s;display:block}.puzzle-card:hover{border-color:var(--accent);transform:translateY(-2px)}.puzzle-card__top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.puzzle-card__title{margin:0;font-size:18px}.puzzle-card__desc{color:var(--text-dim);margin:12px 0 0;font-size:14px;line-height:1.5}.badge{text-transform:uppercase;letter-spacing:.6px;color:#fff;white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-block}.detail-layout{grid-template-columns:minmax(280px,1fr) minmax(260px,360px);align-items:start;gap:32px;display:grid}@media (width<=800px){.detail-layout{grid-template-columns:1fr}}.board-wrap{width:100%}.detail-panel{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px}.detail-panel h2{margin:0 0 8px;font-size:22px}.detail-desc{color:var(--text-dim);margin:0 0 20px;line-height:1.5}.status{border-radius:10px;margin-bottom:16px;padding:14px 16px;font-size:14px;font-weight:600;line-height:1.4}.status--neutral{background:var(--surface-2);color:var(--text-dim)}.status--wrong{color:#ef9a9a;background:#c6282829;border:1px solid #c6282866}.status--correct{color:#a5d6a7;background:#388e3c29;border:1px solid #388e3c66}.status--solved{color:var(--gold);background:#d4af3729;border:1px solid #d4af3773}.status--solution{color:var(--gold);background:#b8860b29;border:1px solid #b8860b73}.attempts{color:var(--text-dim);align-items:center;gap:8px;margin-bottom:20px;font-size:13px;display:flex}.attempt-dot{border:1.5px solid var(--border);border-radius:50%;width:12px;height:12px}.attempt-dot.used{background:var(--advanced);border-color:var(--advanced)}.btn-row{flex-direction:column;gap:10px;display:flex}.btn{cursor:pointer;border:none;border-radius:10px;padding:12px 16px;font-size:15px;font-weight:700;transition:filter .15s,opacity .15s}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--accent);color:#1a1408}.btn--ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn--solution{background:var(--gold);color:#2a2106}.move-list{color:var(--text-dim);margin-top:20px;font-size:13px}.move-list h3{text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);margin:0 0 8px;font-size:12px}.move-chips{flex-wrap:wrap;gap:6px;display:flex}.move-chip{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.move-chip.played{background:var(--accent);color:#1a1408;border-color:var(--accent)}.empty{color:var(--text-dim);padding:40px 0}.rating-pill{color:var(--gold);white-space:nowrap;background:#d4af371f;border:1px solid #d4af3759;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-block}.theme-tag{color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;display:inline-block}.puzzle-card__foot,.puzzle-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;display:flex}.puzzle-meta{margin-top:0;margin-bottom:18px}.inline-link{color:var(--accent);font-weight:600}.inline-link:hover{text-decoration:underline}.lichess-link{color:var(--accent);margin-top:18px;font-size:13px;font-weight:600;display:inline-block}.lichess-link:hover{text-decoration:underline}.landing{--ink:#0c3733;--ink-2:#0f4741;--ink-3:#103d38;--ivory:#f5efe2;--ivory-2:#efe7d6;--paper:#fbf8f1;--marigold:#e8a72c;--marigold-deep:#c8871a;--gold-text:#8a5a10;--sage:#8fb3a6;--line:#0c373324;--line-dark:#f5efe229;--text-dark:#21332f;--text-mut:#4c625c;--focus:#1f6f65;--radius:14px;--maxw:1120px;--ease:cubic-bezier(.16, 1, .3, 1);min-height:100vh;color:var(--text-dark);background:var(--ivory);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Public Sans,system-ui,-apple-system,sans-serif;line-height:1.65}.landing a{color:inherit}.landing ::selection{background:var(--marigold);color:#241a05}.landing h1,.landing h2{letter-spacing:-.01em;font-family:Fraunces,Georgia,serif;font-weight:600;line-height:1.08}.landing .site-header{z-index:50;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line-dark);color:var(--ivory);background:#0c3733eb;justify-content:space-between;align-items:center;gap:1rem;min-height:64px;padding:.9rem clamp(1.1rem,4vw,2.4rem);display:flex;position:sticky;top:0}.landing .wordmark{color:var(--ivory);white-space:nowrap;font-family:Fraunces,Georgia,serif;font-size:clamp(1.05rem,2.6vw,1.3rem);font-weight:600}.landing .site-nav{align-items:center;gap:clamp(.5rem,2vw,1.6rem);display:flex}.landing .site-nav a{color:var(--sage);transition:color .2s var(--ease), border-color .2s var(--ease);border-bottom:2px solid #0000;padding:.35rem .15rem;font-size:.95rem;font-weight:500;text-decoration:none}.landing .site-nav a:not(.nav-cta):hover,.landing .site-nav a:not(.nav-cta):focus-visible{color:var(--ivory);border-bottom-color:var(--marigold)}.landing .nav-cta{background:var(--marigold);transition:transform .15s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);border-radius:999px;font-weight:700;color:#241a05!important;border:none!important;padding:.5rem 1.1rem!important}.landing .nav-cta:hover,.landing .nav-cta:focus-visible{background:#f2b53f;transform:translateY(-1px);box-shadow:0 6px 18px #c8871a59}.landing :focus-visible{outline:3px solid var(--marigold);outline-offset:2px;border-radius:4px}.landing .hero{background:var(--ink);color:var(--ivory);grid-template-columns:1.35fr 1fr;align-items:center;gap:clamp(1.5rem,5vw,3.5rem);padding:clamp(3rem,8vw,5.5rem) clamp(1.1rem,4vw,2.4rem) clamp(3.5rem,9vw,6rem);display:grid;position:relative;overflow:hidden}.landing .hero:before{content:"";background-image:linear-gradient(var(--line-dark) 1px, transparent 1px), linear-gradient(90deg, var(--line-dark) 1px, transparent 1px);opacity:.5;pointer-events:none;background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 100% at 80% 0,#000 30%,#0000 75%);mask-image:radial-gradient(120% 100% at 80% 0,#000 30%,#0000 75%)}.landing .hero-content,.landing .hero-media{z-index:1;position:relative}.landing .hero-content{max-width:40rem;animation:landing-rise .7s var(--ease) both}.landing .hero h1{color:var(--ivory);margin:0 0 1rem;font-size:clamp(2.6rem,7vw,4.4rem);font-weight:600}.landing .hero h1:after{content:"";background:var(--marigold);border-radius:2px;width:4.5rem;height:4px;margin-top:1.1rem;display:block}.landing .hero-subline{color:#e7ddca;max-width:34ch;margin:0 0 1.1rem;font-size:clamp(1.1rem,2.4vw,1.35rem)}.landing .lineage{letter-spacing:.04em;color:var(--sage);margin:0 0 1.8rem;font-size:.8rem;line-height:1.6}.landing .hero-ctas{flex-wrap:wrap;gap:.85rem;display:flex}.landing .hero-media{aspect-ratio:16/9;border-radius:var(--radius);object-fit:cover;background:radial-gradient(circle at 50% 42%, #e8a72c47, transparent 62%), var(--ink-2);border:1px solid var(--line-dark);width:100%;max-width:420px;animation:landing-rise .7s var(--ease) .12s both;justify-self:center;box-shadow:inset 0 1px #f5efe21f,0 30px 70px #00000059}.landing .btn{transition:transform .15s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease), color .2s var(--ease);cursor:pointer;border-radius:999px;padding:.8rem 1.5rem;font-size:1rem;font-weight:700;text-decoration:none;display:inline-block}.landing .btn-primary{background:var(--marigold);color:#241a05;box-shadow:0 8px 22px #c8871a4d}.landing .btn-primary:hover,.landing .btn-primary:focus-visible{background:#f2b53f;transform:translateY(-2px);box-shadow:0 12px 28px #c8871a6b}.landing .btn-primary:active{transform:translateY(0)}.landing .btn-secondary{color:var(--ivory);background:0 0;border:1.5px solid #f5efe266}.landing .btn-secondary:hover,.landing .btn-secondary:focus-visible{border-color:var(--marigold);color:var(--marigold);transform:translateY(-2px)}.landing .btn-secondary:active{transform:translateY(0)}.landing .btn-disabled{color:var(--text-mut);cursor:not-allowed;background:0 0;border:1.5px dashed #0c373359;border-radius:999px;padding:.8rem 1.5rem;font-weight:600;display:inline-block}.landing .section{max-width:var(--maxw);margin:0 auto;padding:clamp(3.2rem,8vw,5.5rem) clamp(1.1rem,4vw,2.4rem)}.landing .section h2{color:var(--ink);max-width:22ch;margin:0 0 1.4rem;font-size:clamp(1.9rem,4.5vw,2.9rem)}.landing .section p{color:var(--text-mut);max-width:62ch;margin:0 0 1.1rem;font-size:1.08rem}.landing .mission{background:var(--ivory-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:none}.landing .mission>*{max-width:var(--maxw);margin-left:auto;margin-right:auto}.landing .verse{background:var(--paper);border-left:5px solid var(--marigold);border-radius:0 var(--radius) var(--radius) 0;margin:2.2rem auto 0;padding:1.6rem 1.8rem;box-shadow:0 12px 30px #0c373314}.landing .verse p{color:var(--ink);max-width:55ch;margin:0 0 .7rem;font-family:Fraunces,Georgia,serif;font-size:clamp(1.15rem,2.6vw,1.45rem);font-style:italic}.landing .verse cite{color:var(--gold-text);font-size:.95rem;font-style:normal;font-weight:600}.landing .about-links{flex-wrap:wrap;gap:.7rem 1rem;margin-top:1.6rem;display:flex}.landing .about-links a{color:var(--ink);border:1.5px solid var(--line);background:var(--paper);transition:transform .15s var(--ease), border-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease);border-radius:999px;padding:.55rem 1.1rem;font-weight:600;text-decoration:none}.landing .about-links a:after{content:" ↗";color:var(--gold-text)}.landing .about-links a:hover,.landing .about-links a:focus-visible{border-color:var(--marigold);color:var(--gold-text);transform:translateY(-2px);box-shadow:0 8px 20px #0c37331a}.landing .get-involved{background:var(--ink);max-width:none;color:var(--ivory);text-align:center}.landing .get-involved h2{color:var(--ivory);margin-left:auto;margin-right:auto}.landing .get-involved p{color:#dcd3c1;margin-left:auto;margin-right:auto}.landing .site-footer{background:var(--ink-3);color:var(--sage);text-align:center;border-top:1px solid var(--line-dark);padding:clamp(2.5rem,6vw,3.5rem) clamp(1.1rem,4vw,2.4rem)}.landing .site-footer .lineage{color:var(--sage);max-width:60ch;margin:0 auto .9rem}.landing .site-footer p{max-width:60ch;margin:0 auto .9rem;font-size:.9rem}.landing .footer-links{flex-wrap:wrap;justify-content:center;gap:.6rem 1.4rem;margin-top:.4rem;display:flex}.landing .footer-links a{color:var(--ivory);transition:color .2s var(--ease), border-color .2s var(--ease);border-bottom:2px solid #0000;font-weight:600;text-decoration:none}.landing .footer-links a:hover,.landing .footer-links a:focus-visible{color:var(--marigold);border-bottom-color:var(--marigold)}@keyframes landing-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}html:has(.landing){scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html:has(.landing){scroll-behavior:auto}.landing,.landing *,.landing :before,.landing :after{transition:none!important;animation:none!important}}@media (width<=860px){.landing .hero{text-align:left;grid-template-columns:1fr}.landing .hero-media{order:-1;max-width:320px}}@media (width<=640px){.landing .site-header{flex-direction:column;align-items:flex-start;gap:.6rem}.landing .site-nav{flex-wrap:wrap;gap:.5rem 1rem;width:100%}.landing .hero-ctas .btn{text-align:center;flex:auto}}@media (width<=380px){.landing .hero h1{font-size:2.3rem}.landing .site-nav{gap:.4rem .8rem}}
