@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap');

:root{--bg:#0e141b;--sidebar:#101820;--panel:#18232d;--line:#293642;--muted:#94a2ad;--text:#f4f6f4;--orange:#f4a05f;--orange-strong:#f3a261;--green:#b9d6a3;--board-light:#ebead8;--board-dark:#83a18b;--font:'DM Sans',system-ui,sans-serif;--headline:'Space Grotesk',system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}a{color:inherit;text-decoration:none}.hidden{display:none!important}
.app-shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr)}.sidebar{background:#111b23;border-right:1px solid #25313a;display:flex;flex-direction:column;min-height:100vh;padding:28px 18px 20px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:9px;padding:0 8px 54px}.brand-mark{width:39px;height:43px;color:var(--orange);font-size:39px;line-height:39px;transform:scaleX(-1);display:inline-block}.brand strong{font-family:var(--headline);font-size:18px;letter-spacing:-.7px;display:block;line-height:1.1}.accent{color:var(--orange)}.brand small{letter-spacing:3.5px;font-weight:700;color:#91a0a8;font-size:9px;display:block;margin-top:5px}.side-label,.overline{color:#8495a0;letter-spacing:2.1px;font-size:10px;font-weight:800}.side-label{padding-left:15px;margin-bottom:14px}.main-nav{display:grid;gap:6px}.nav-item{color:#b4c1c8;border:1px solid transparent;background:transparent;border-radius:10px;padding:14px 12px;display:flex;align-items:center;text-align:left;gap:11px;font-weight:700;width:100%}.nav-item:hover{background:#1b2a34}.nav-item.active{color:#fff;background:#26343e;border-color:#33434c}.nav-icon{font-size:20px;line-height:1;color:var(--orange);width:24px;text-align:center}.nav-arrow{margin-left:auto;font-size:20px;color:#72828e}.side-bottom{margin-top:auto}.side-tip{background:linear-gradient(150deg,#243742,#1b2b34);border:1px solid #34444d;border-radius:14px;padding:19px 17px 16px}.tip-icon{color:var(--orange);font-size:23px;margin-bottom:18px}.side-tip strong{font-family:var(--headline);font-size:14px}.side-tip p{margin:8px 0 0;color:#a5b3ba;font-size:12px;line-height:1.65}.self-host{margin:24px 0 0 11px;font-size:10px;font-weight:800;letter-spacing:1.8px;color:#96a7af}.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#9edc9e;box-shadow:0 0 0 3px #9edc9e16;margin-right:8px}
.main-content{min-width:0}.topbar{height:81px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 clamp(24px,4vw,60px);gap:15px}.breadcrumb{font-size:11px;letter-spacing:1.5px;color:#8d9da8;font-weight:800}.crumb-sep{padding:0 14px;color:#485864}.breadcrumb strong{color:#e6ebee}.top-actions{display:flex;align-items:center;gap:22px}.small-status{font-size:11px;color:#9dabb2}.view{max-width:1490px;padding:38px clamp(24px,4vw,60px) 80px;margin:auto;display:none}.view.active{display:block}.btn{border:1px solid transparent;border-radius:9px;padding:13px 17px;display:inline-flex;align-items:center;justify-content:center;gap:13px;font-weight:800;font-size:12px;transition:background .15s,transform .15s;white-space:nowrap}.btn:not(:disabled):active{transform:scale(.985)}.btn-primary{background:var(--orange);color:#171819}.btn-primary:hover{background:#f9b27e}.btn-secondary{border-color:#465761;background:#283742;color:#f1f4f1}.btn-secondary:hover{background:#344550}.btn-quiet{background:transparent;color:#aebcc5}.btn-quiet:hover{background:#25323d;color:white}.btn-small{font-size:11px;padding:11px 15px}.btn-block{width:100%;justify-content:space-between;padding:17px 18px;font-size:13px}
.hero{border:1px solid #34424a;border-radius:19px;background:radial-gradient(ellipse at 86% 38%,#324b45 0%,#243a38 31%,#17282e 73%,#16252c 100%);display:grid;grid-template-columns:1.1fr .9fr;min-height:315px;overflow:hidden;position:relative}.hero-copy{padding:43px 20px 39px 46px;z-index:1}.eyebrow{font-size:10px;letter-spacing:2.8px;font-weight:800;color:var(--orange);margin-bottom:20px}.sparkle{font-size:15px;margin-right:7px}.hero h1,.page-intro h1{font-family:var(--headline);font-size:clamp(35px,3.8vw,53px);line-height:1.13;letter-spacing:-2.1px;margin:0;font-weight:700}.hero h1 em{color:var(--orange);font-style:normal}.hero p{max-width:485px;color:#bbcacb;font-size:14px;line-height:1.8;margin:17px 0 24px}.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.hero-actions>span{font-size:11px;color:#a8b9b8}.hero-art{position:relative;min-height:320px;overflow:hidden}.hero-grid{position:absolute;inset:-50px -110px -55px 0;background:repeating-conic-gradient(#ffffff08 0 25%,#00000008 0 50%) 0 0/100px 100px;transform:rotate(-16deg);mask-image:linear-gradient(90deg,transparent,#000 35%)}.art-piece{position:absolute;top:-38px;right:15%;font-family:Georgia,serif;font-size:340px;line-height:1;color:#ddc9a3;text-shadow:-13px 17px 0 #9a8c73,0 38px 45px #0006;transform:scaleX(-1) rotate(-12deg)}.floating-badge{position:absolute;right:9%;bottom:32px;background:#e7eee2;color:#293b34;border-radius:5px;padding:10px 14px;font-size:10px;letter-spacing:1.5px;font-weight:900;transform:rotate(5deg);box-shadow:5px 9px 15px #0005}.floating-badge span{color:#8ca079;margin-left:7px}
.section-heading{display:flex;justify-content:space-between;margin:42px 0 23px}.section-heading h2{font-family:var(--headline);font-size:25px;letter-spacing:-.6px;margin:9px 0 4px}.section-heading p,.page-intro p{color:#9fadb5;font-size:13px;line-height:1.6;margin:5px 0}.count-badge{color:var(--orange);font-size:11px;background:#594031;border-radius:5px;padding:5px 8px;vertical-align:middle;margin-left:7px}.filter-bar{display:flex;align-items:center;gap:17px;flex-wrap:wrap;margin-bottom:20px}.search-field{height:41px;border:1px solid var(--line);background:#19252f;border-radius:8px;display:flex;align-items:center;gap:9px;padding:0 12px;min-width:240px;flex:1}.search-field span{font-size:23px;color:#8797a1;line-height:1}.search-field input{background:none;border:0;outline:0;color:#e9edec;width:100%;font-size:12px}.search-field input::placeholder{color:#83939d}.filter-pills{display:flex;gap:6px;flex-wrap:wrap}.pill{border:1px solid var(--line);background:#18242d;border-radius:7px;padding:11px 13px;color:#acb9c1;font-size:11px;font-weight:700}.pill.active{background:#3a3f38;border-color:#6b6c56;color:#eec19d}.puzzle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.puzzle-card{border:1px solid #2e3b46;background:#18242e;border-radius:12px;min-height:229px;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s,border-color .15s}.puzzle-card:hover{transform:translateY(-2px);border-color:#5e706e}.card-content{padding:22px 22px 17px;flex:1}.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.difficulty-label{display:inline-block;color:#f3bc8b;background:#513c32;border-radius:5px;letter-spacing:1px;font-weight:900;font-size:9px;padding:7px 9px}.difficulty-label.beginner{background:#294339;color:#b1dcab}.difficulty-label.advanced{background:#493c56;color:#d8bef7}.difficulty-label.expert{background:#50343b;color:#f8adb2}.card-symbol{font-size:29px;color:#647d79}.puzzle-card h3{font-family:var(--headline);font-size:19px;margin:19px 0 9px;line-height:1.25}.puzzle-card p{font-size:12px;color:#9eacb5;line-height:1.7;margin:0}.card-footer{border-top:1px solid #2c3942;padding:12px 21px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#9dadb4}.card-footer button{border:0;background:transparent;color:var(--orange);font-size:12px;font-weight:800}.empty-state{grid-column:1/-1;padding:60px 25px;text-align:center;border:1px dashed #384956;border-radius:14px;background:#17232c}.empty-state .empty-icon{font-size:54px;color:var(--orange)}.empty-state h3{font-family:var(--headline);font-size:23px;margin:12px 0 6px}.empty-state p{color:#a5b2bb;margin-bottom:22px}
.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin:0 0 30px}.page-intro h1{font-size:39px}.page-intro .eyebrow{margin-bottom:10px}.title-period{color:var(--orange)}.workspace-grid{display:grid;grid-template-columns:minmax(340px,1fr) minmax(355px,.86fr);gap:22px;align-items:start}.board-panel,.editor-panel{background:#18242e;border:1px solid #2c3a46;border-radius:14px;padding:24px}.panel-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}.panel-topline h3,.solution-title h3{font-family:var(--headline);font-size:19px;margin:7px 0 0}.icon-button{background:#26353e;border:1px solid #3b4d56;color:#d3ddd9;border-radius:8px;font-size:22px;width:36px;height:36px}.fen-box{background:#131f27;border:1px solid #2d4047;border-radius:9px;padding:13px 14px;margin-bottom:18px}.fen-box label{font-size:9px;letter-spacing:1.5px;font-weight:900;color:#abb8bf;display:block;margin-bottom:9px}.fen-entry{display:flex;gap:8px}.fen-entry input{flex:1;min-width:0}.fen-entry input,.editor-panel input,.editor-panel textarea,.editor-panel select{border-radius:7px;border:1px solid #40505b;background:#111d26;color:#f5f6f3;padding:12px;font-size:12px;outline:0;width:100%}.fen-entry input:focus,.editor-panel input:focus,.editor-panel textarea:focus,.editor-panel select:focus{border-color:var(--orange)}.fen-entry input{font-family:ui-monospace,monospace;font-size:11px}.field-help{color:#8397a1;font-size:10px;margin:9px 0 0}.field-help.error{color:#f7a19a}.board-frame{width:100%;max-width:555px;margin:0 auto;position:relative;box-shadow:0 8px 30px #0004;border-radius:4px;overflow:hidden}.chess-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));aspect-ratio:1;width:100%;user-select:none;touch-action:manipulation}.square{position:relative;border:0;border-radius:0;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;padding:0;aspect-ratio:1;cursor:pointer}.square.light{background:var(--board-light)}.square.dark{background:var(--board-dark)}.square.selected{background:#f6db83}.square.last-move{box-shadow:inset 0 0 0 100px #f8e77b4f}.square.check{background:#e87670}.square.target:after{content:'';width:27%;aspect-ratio:1;background:#263e3766;border-radius:50%;position:absolute;z-index:1}.square.target.capture:after{width:87%;height:87%;background:transparent;border:5px solid #263e3766}.piece{font-family:'DejaVu Sans','Segoe UI Symbol','Noto Sans Symbols 2',Georgia,serif;font-size:clamp(28px,4.6vw,60px);line-height:1;z-index:2;pointer-events:none}.piece.white{color:#fffaf0;text-shadow:-1px -1px #39443d,1px -1px #39443d,-1px 1px #39443d,1px 1px #39443d,1px 3px 2px #263a3f99}.piece.black{color:#242c2b;text-shadow:1px 1px 0 #e4e6d0,-1px -1px 0 #e4e6d0,1px -1px 0 #e4e6d0,-1px 1px 0 #e4e6d0}.coord{position:absolute;font-size:10px;font-weight:800;pointer-events:none;z-index:3}.coord.file{right:4px;bottom:2px}.coord.rank{left:4px;top:2px}.square.light .coord{color:#789080}.square.dark .coord{color:#e6ead9}.board-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#8ea0aa;font-size:11px;margin:16px 0 10px}.turn-label{color:#d8e1de;font-weight:800}.board-toolbar{display:flex;gap:6px;flex-wrap:wrap}.board-toolbar .btn{padding:12px;font-size:11px}
.draft-badge{font-size:9px;font-weight:900;letter-spacing:1.6px;color:#a7b8c1;border:1px solid #465561;padding:7px 9px;border-radius:5px}.form-label{font-size:11px;font-weight:800;color:#c6d1d5;display:block;margin:18px 0 9px}.form-label:first-child{margin-top:2px}.form-label span{color:#81929b;font-weight:500}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:13px}.editor-panel textarea{resize:vertical;min-height:80px}.solution-section{margin-top:26px;border-top:1px solid #33434c;padding-top:23px}.solution-title{display:flex;align-items:center;justify-content:space-between}.solution-title h3{margin-top:5px}.move-number{color:#b2c0c8;font-size:11px}.solution-section>p{font-size:12px;line-height:1.75;color:#96a7b1;margin:10px 0 16px}.solution-section>p strong{color:#c8d5d7}.move-chips{min-height:65px;display:flex;flex-wrap:wrap;gap:7px;align-items:flex-start;align-content:flex-start;padding:12px;background:#132029;border:1px dashed #41515b;border-radius:8px;margin-bottom:12px}.empty-moves{color:#7f909d;font-size:11px;line-height:1.7}.move-chip{background:#2b3e43;color:#d7e6dc;border:1px solid #40585a;border-radius:5px;padding:8px 11px;font-size:12px;font-weight:800}.move-chip em{font-style:normal;color:#96aaa9;font-weight:500;margin-right:6px}.line-hint{display:flex;gap:9px;color:#9daeba;font-size:11px;line-height:1.5;margin:12px 0 23px}.line-hint span{color:var(--orange)}.line-hint.good{color:#a9d6b2}.form-message{margin:12px 0 0;font-size:12px;line-height:1.6;color:#ffbcad}.form-message.success{color:#b0d7a7}
.solve-panel{padding:27px}.puzzle-meta .difficulty-label{margin-bottom:14px}.puzzle-meta h2{font-family:var(--headline);font-size:31px;line-height:1.2;letter-spacing:-.7px;margin:0 0 9px}.puzzle-meta p{color:#a6b7bf;line-height:1.7;font-size:13px;margin:0 0 17px}.meta-author{font-size:11px;color:#94a7b0}.meta-author strong{color:#d2dddf}.solve-divider{border-top:1px solid #33414b;margin:25px 0}.solve-status{display:flex;align-items:center;gap:14px}.status-icon{width:58px;height:58px;border:1px solid #536458;background:#34453d;border-radius:12px;display:grid;place-items:center;color:#d8e7bb;font-size:36px;flex-shrink:0}.solve-status h3{font-family:var(--headline);font-size:16px;margin:5px 0 3px}.solve-status p{font-size:11px;color:#9baeba;margin:0;line-height:1.5}.progress-track{height:5px;background:#34404a;border-radius:8px;margin:24px 0 22px;overflow:hidden}.progress-fill{height:100%;background:#a8d0a1;width:0;transition:width .2s}.solve-log{min-height:75px;border:1px dashed #3b4f58;background:#14232c;border-radius:9px;padding:13px;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start}.solve-alert{padding:13px;border-radius:8px;background:#49353b;color:#ffc6bd;font-size:12px;line-height:1.6;margin-top:15px}.solve-alert.success{background:#2a4739;color:#bbe5bb}.solve-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.reveal-area{border:1px solid #475456;padding:15px;border-radius:8px;background:#20323a;color:#d7e3de;font-size:12px;line-height:1.8;margin-top:15px}.reveal-area strong{display:block;color:var(--orange);margin-bottom:6px}.challenge-note{border-top:1px solid #35434c;padding-top:18px;margin-top:23px;display:flex;gap:13px;color:#879ba5;line-height:1.65;font-size:11px}.challenge-note span{color:var(--orange);font-size:19px}
.modal-overlay{position:fixed;inset:0;background:#071117d9;z-index:15;display:grid;place-items:center;padding:18px}.promotion-modal{background:#1b2933;border:1px solid #586d73;border-radius:14px;padding:27px;text-align:center;max-width:400px;width:100%;box-shadow:0 25px 80px #0008}.promotion-modal h3{font-family:var(--headline);font-size:23px;margin:0 0 6px}.promotion-modal p{color:#9bacb5}.promotion-options{display:flex;justify-content:center;gap:10px;margin:24px 0}.promotion-options button{background:#dfdfcc;border:2px solid #77978b;border-radius:8px;font-size:48px;width:71px;height:75px;color:#17221f}.promotion-options button:hover{border-color:var(--orange)}.toast{position:fixed;bottom:30px;right:28px;z-index:20;background:#d9e9d3;color:#1a382a;border-radius:9px;padding:14px 21px;font-weight:800;font-size:12px;box-shadow:0 10px 35px #0006}
@media(max-width:1200px){.app-shell{grid-template-columns:208px minmax(0,1fr)}.sidebar{padding:26px 12px}.brand{padding-left:4px}.brand strong{font-size:15px}.brand small{letter-spacing:2.7px}.puzzle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-grid{grid-template-columns:minmax(300px,1fr) minmax(310px,1fr)}.board-panel,.editor-panel{padding:18px}}
@media(max-width:920px){.app-shell{display:block}.sidebar{position:relative;height:auto;min-height:0;display:flex;flex-direction:row;align-items:center;gap:22px;padding:15px 22px;border-right:0;border-bottom:1px solid var(--line)}.brand{padding:0}.main-nav{display:flex;gap:5px}.nav-item{white-space:nowrap;padding:10px}.nav-icon{font-size:17px}.nav-arrow,.side-label,.side-bottom{display:none}.topbar{height:60px}.workspace-grid{grid-template-columns:minmax(0,1fr)}.board-panel{max-width:670px;width:100%;margin:auto}.board-frame{max-width:560px}.editor-panel{max-width:670px;width:100%;margin:auto}.piece{font-size:clamp(32px,7.5vw,64px)}}
@media(max-width:620px){.sidebar{flex-wrap:wrap;gap:10px;padding:12px 15px}.brand{width:100%}.brand strong{font-size:17px}.main-nav{width:100%}.nav-item{flex:1;justify-content:center;padding:10px;font-size:11px}.topbar{padding:0 17px}.small-status{display:none}.view{padding:24px 15px 50px}.hero{grid-template-columns:1fr}.hero-copy{padding:30px 26px 35px}.hero h1{font-size:39px}.hero-art{display:none}.hero-actions>span{display:none}.puzzle-grid{grid-template-columns:1fr}.section-heading{margin-top:32px}.filter-bar{display:block}.search-field{margin-bottom:12px}.filter-pills{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.pill{flex-shrink:0}.page-intro{align-items:start}.page-intro .btn{display:none}.page-intro h1{font-size:32px}.board-panel,.editor-panel{padding:15px}.workspace-grid{gap:14px}.fen-entry{flex-wrap:wrap}.fen-entry input{flex-basis:100%}.fen-entry button{width:100%}.form-two{grid-template-columns:1fr;gap:0}.board-caption{font-size:10px}.board-caption span:last-child{max-width:45%;text-align:right}.board-toolbar{justify-content:space-between}.board-toolbar .btn{font-size:10px;padding:10px}.piece{font-size:clamp(32px,10vw,54px)}.coord{font-size:8px}.solve-panel{padding:20px}.puzzle-meta h2{font-size:27px}}
