.puzzle-page-wrapper{flex:1;display:flex;overflow:hidden;width:100%;padding-top:65px}.puzzle-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);transition:width .26s cubic-bezier(.22,1,.36,1);display:flex;flex-direction:column;padding:0;position:relative;z-index:20;flex-shrink:0}.puzzle-sidebar>.sidebar-content{overflow-x:hidden;overflow-y:auto;flex:1;display:flex;flex-direction:column}.puzzle-sidebar.open{width:250px}.puzzle-sidebar.closed{width:72px}.puzzle-sidebar>.sidebar-toggle-floating{position:absolute;right:-14px;top:1.5rem;z-index:50;width:28px;height:28px;background:var(--color-sidebar-toggle-bg);border:1px solid var(--color-sidebar-toggle-border);color:var(--color-sidebar-toggle-text);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-floating-control);transition:background-color .2s ease,transform .2s ease,right .3s ease;padding:0;margin-top:0}.puzzle-sidebar>.sidebar-toggle-floating:hover{background:var(--color-sidebar-toggle-bg-hover);transform:scale(1.05)}.puzzle-sidebar .sidebar-nav{display:flex;flex-direction:column;gap:.5rem}.puzzle-sidebar .sidebar-item{display:flex;align-items:center;gap:1rem;padding:.8rem 1.25rem;background:transparent;border:none;color:var(--color-text-secondary);font-weight:500;font-size:.95rem;cursor:pointer;transition:background .18s ease,color .18s ease;white-space:nowrap;text-align:left;outline:none;overflow:hidden}.puzzle-sidebar .sidebar-icon{display:inline-flex;justify-content:center;align-items:center;min-width:24px;width:24px;flex-shrink:0}.puzzle-sidebar .sidebar-text{opacity:1;transition:opacity .2s ease,width .26s cubic-bezier(.22,1,.36,1),margin .26s cubic-bezier(.22,1,.36,1),transform .26s cubic-bezier(.22,1,.36,1);display:inline-block;overflow:hidden;transform:translate(0);transform-origin:left center}.puzzle-sidebar .sidebar-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.puzzle-sidebar .sidebar-item.active{color:var(--color-accent);background:#e945601a}.puzzle-sidebar .sidebar-item.locked{opacity:.5;cursor:not-allowed;pointer-events:none}.puzzle-sidebar .sidebar-item.member-only{color:var(--color-text-tertiary)}.puzzle-sidebar .sidebar-item.member-only:hover{background:#5b8cff14;color:var(--color-text-primary)}.puzzle-sidebar .sidebar-item-inner{display:flex;align-items:center;width:100%;gap:1rem}.puzzle-sidebar .sidebar-lock-icon{margin-left:auto;font-size:.9rem;color:var(--color-text-tertiary)}.puzzle-sidebar.closed .sidebar-item{border-right:none}.puzzle-sidebar.closed .sidebar-text{opacity:0;width:0;margin:0;pointer-events:none;transform:translate(-8px)}.puzzle-sidebar.closed .sidebar-item.active{border-right:none}.puzzle-sidebar-backdrop{display:none}@media(prefers-reduced-motion:reduce){.puzzle-sidebar,.puzzle-sidebar .sidebar-item,.puzzle-sidebar .sidebar-text,.puzzle-sidebar>.sidebar-toggle-floating{transition:none!important}}.puzzle-page-container{--puzzle-bottom-safe-space: max(4.5rem, calc(env(safe-area-inset-bottom, 0px) + 1.5rem + var(--mobile-tab-bar-height)));flex:1;display:flex;flex-direction:column;align-items:center;padding:2rem clamp(1.5rem,5vw,11rem) var(--puzzle-bottom-safe-space);color:var(--color-text-primary);font-family:Inter,sans-serif;width:100%;max-width:1600px;margin:0 auto;overflow-y:auto;overflow-x:hidden;scroll-padding-bottom:var(--puzzle-bottom-safe-space);scrollbar-width:none;-ms-overflow-style:none}.puzzle-play-container{align-items:flex-start;padding:2rem clamp(1.5rem,4vw,2rem) var(--puzzle-bottom-safe-space) clamp(2rem,10vw,12rem);margin:0}.puzzle-play-container--daily{align-items:stretch;padding:.25rem clamp(1rem,3vw,1.5rem) var(--puzzle-bottom-safe-space)}.page-h1{margin:0 0 1rem;font-size:1.75rem;font-weight:700;color:var(--color-text-primary)}.puzzle-btn{padding:10px 24px;background-color:#3b82f6;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:1rem;transition:all .2s ease;box-shadow:0 4px 6px #3b82f640;display:inline-flex;align-items:center;justify-content:center}.puzzle-btn:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px);box-shadow:0 6px 8px #3b82f64d}.puzzle-btn:disabled{background-color:#4b5563;color:#9ca3af;cursor:not-allowed;box-shadow:none;transform:none}.puzzle-content{display:grid;grid-template-columns:auto minmax(0,340px);align-items:flex-start;justify-content:center;gap:2rem;width:100%;transform:translate(clamp(1.1rem,2.6vw,2rem))}.puzzle-content--daily{display:flex;width:100%;height:100%;flex:1;transform:none;justify-content:center;align-items:stretch}.puzzle-board-column--daily{width:100%;max-width:none;height:100%;flex:1}.puzzle-board-row--daily{width:100%;justify-content:flex-start;align-items:flex-start;gap:1rem;padding-left:clamp(1rem,4vw,4rem)}.puzzle-content--daily .puzzle-board-stack{width:auto;max-width:512px;flex:0 0 auto;align-items:center;margin-top:30px}.puzzle-content--daily .puzzle-board-row-inner{margin-top:0}.lab-analysis-content{display:flex;align-items:flex-start;gap:2rem;width:100%}.lab-analysis-content .puzzle-board-column{flex:0 0 560px;max-width:560px;min-width:560px}.lab-analysis-content .puzzle-board-row{width:100%;max-width:560px;align-items:flex-start;gap:10px}.lab-board-stack{display:flex;flex-direction:column;gap:.75rem;min-width:0}.lab-analysis-content .puzzle-right-column{flex:1 1 auto;min-width:0}.lab-page-container{max-width:1250px}.lab-page-container.lab-page-container--openings-expanded{max-width:none;width:auto;margin:0;padding-top:0;padding-bottom:0;padding-left:1rem;padding-right:1rem;align-items:stretch;overflow:hidden;scroll-padding-bottom:0}.lab-blog-index{width:min(100%,980px);margin:0 auto;display:grid;gap:1.2rem}.lab-blog-index-head{display:grid;gap:.65rem}.lab-blog-index-head h2{margin:0;color:var(--color-text-primary);font-size:clamp(2rem,4vw,3.1rem);line-height:1;letter-spacing:-.04em;font-weight:900}.lab-blog-grid{display:grid;grid-template-columns:1fr;gap:.85rem}.lab-blog-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.42rem 1.25rem;min-height:92px;padding:.72rem .95rem;text-align:left;border:1px solid var(--color-border);border-radius:18px;background:radial-gradient(circle at top right,rgba(233,69,96,.1),transparent 30%),linear-gradient(180deg,#ffffff12,#ffffff06),var(--color-surface);color:var(--color-text-secondary);box-shadow:0 14px 34px #00000024;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease}.lab-blog-card:hover{transform:translateY(-2px);border-color:#ff475757}.lab-blog-card strong{grid-column:1;color:var(--color-text-primary);font-size:1.08rem;line-height:1.16}.lab-blog-card p{grid-column:1;margin:0;line-height:1.42;font-size:.9rem}.lab-blog-card-meta{grid-column:2;grid-row:1 / span 3;align-self:center;color:var(--color-text-tertiary);font-size:.76rem;font-weight:700;text-align:right;max-width:180px}.lab-blog-article{width:min(100%,920px);margin:0 auto;padding:clamp(1rem,2.4vw,1.6rem);border:1px solid var(--color-border);border-radius:20px;background:radial-gradient(circle at top right,rgba(233,69,96,.1),transparent 28%),radial-gradient(circle at bottom left,rgba(91,140,255,.08),transparent 32%),linear-gradient(180deg,#ffffff12,#ffffff06),var(--color-surface);box-shadow:0 18px 46px #0000002e}.lab-blog-back{margin-bottom:1rem;padding:.48rem .76rem;width:fit-content;border:1px solid var(--color-border);border-radius:10px;background:#ffffff0d;color:var(--color-text-secondary);font-weight:800;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}.lab-blog-back:hover{background:#ffffff1a;color:var(--color-text-primary);border-color:#ff475757}.lab-blog-hero{display:grid;gap:1rem;padding-bottom:1.35rem;border-bottom:1px solid var(--color-border)}.lab-blog-kicker{width:fit-content;padding:.36rem .68rem;border-radius:999px;background:var(--color-premium-bg);color:var(--color-premium);font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.lab-blog-hero h2{max-width:780px;margin:0;color:var(--color-text-primary);font-size:clamp(2rem,4vw,3.4rem);line-height:.98;letter-spacing:-.04em;font-weight:900}.lab-blog-author{display:flex;align-items:center;gap:.8rem}.lab-blog-avatar{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:linear-gradient(135deg,#ff4757eb,#ffb800e0);color:#fff;font-size:.88rem;font-weight:900;box-shadow:0 10px 24px #ff475738}.lab-blog-author div:last-child{display:grid;gap:.16rem}.lab-blog-author strong{color:var(--color-text-primary);font-size:.96rem}.lab-blog-author span{color:var(--color-text-secondary);font-size:.84rem;line-height:1.4}.lab-blog-body{display:grid;gap:1.25rem;padding-top:1.35rem;color:var(--color-text-secondary);font-size:1rem;line-height:1.72}.lab-blog-body p{margin:0}.lab-blog-section{display:grid;gap:.8rem;padding:1rem;border:1px solid var(--color-border);border-radius:16px;background:#ffffff09}.lab-blog-section h3{margin:0;color:var(--color-text-primary);font-size:1.12rem}.lab-blog-section ul{display:grid;gap:.46rem;margin:0;padding-left:1.15rem}.lab-blog-section li::marker{color:var(--color-accent)}.lab-blog-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--color-border);border-radius:16px;background:#ffffff09}.lab-blog-table{width:100%;min-width:720px;border-collapse:collapse}.lab-blog-table th,.lab-blog-table td{padding:.85rem .95rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border)}.lab-blog-table th{color:var(--color-text-primary);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;background:#ffffff0b}.lab-blog-table td{color:var(--color-text-secondary);line-height:1.45}.lab-blog-table tbody tr:last-child td{border-bottom:0}.lab-blog-callout{display:grid;gap:.28rem;padding:1rem 1.1rem;border-radius:16px;background:linear-gradient(90deg,#ff475729,#ffb8001f);box-shadow:inset 0 0 0 1px #ffb80033}.lab-blog-callout strong{color:var(--color-text-primary)}.lab-blog-callout span{color:var(--color-text-secondary)}@media(max-width:720px){.lab-blog-card{grid-template-columns:1fr}.lab-blog-card-meta{grid-column:1;grid-row:auto;text-align:left;max-width:none}}.lab-analysis-content .move-list{width:100%;max-height:248px;height:auto!important;flex:0 0 auto}.lab-analysis-content .move-list-content{max-height:188px}.puzzle-status-card{background:var(--color-surface);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:16px;padding:1.5rem;width:100%;display:flex;flex-direction:column;gap:1.2rem;box-shadow:var(--shadow-board)}.puzzle-info-row{display:flex;justify-content:space-between;align-items:center;padding-bottom:.8rem;border-bottom:1px solid var(--color-border)}.puzzle-nav-buttons{display:flex;gap:.4rem;align-items:center;flex-wrap:nowrap}.puzzle-info-actions{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;min-width:0;flex-wrap:nowrap}.puzzle-nav-buttons .ctrl-btn--nav{padding:6px;height:32px;width:32px;background:var(--color-surface-active);border-color:var(--color-border-hover)}.puzzle-info-label{color:var(--color-text-secondary);font-size:.9rem;font-weight:500}.puzzle-info-value{color:var(--color-accent);font-weight:600;font-size:1.1rem}.puzzle-themes{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.theme-tag{background:var(--color-surface-active);color:var(--color-text-primary);padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:500;border:1px solid var(--color-border);text-transform:capitalize}.puzzle-status-message-container{margin-top:.5rem;display:flex;flex-direction:column;gap:.8rem}.puzzle-loading-shell{min-height:min(70vh,620px)}.status-badge{display:inline-flex;padding:6px 12px;border-radius:6px;font-size:.85rem;font-weight:600;align-items:center;justify-content:center;text-align:center}.status-badge.loading{background:var(--color-surface-active);color:var(--color-warning);border:1px solid var(--color-border)}.status-badge.your-turn{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-border)}.status-badge.opponent-turn{background:var(--color-surface-active);color:var(--color-accent);border:1px solid var(--color-border)}.status-badge.wrong-move{display:none}.status-badge.complete{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-border)}.status-text{font-size:1.1rem;color:var(--color-text-secondary);text-align:center;padding:2rem}.puzzle-board-container{position:relative;isolation:isolate;border-radius:8px;overflow:hidden;box-shadow:var(--shadow-board);border:2px solid var(--color-border);background-color:var(--color-surface);padding:4px;transition:opacity .3s ease,background-color .3s ease,border-color .3s ease}.puzzle-board-container--with-bar{border-left:2px solid var(--color-border);border-top-left-radius:8px;border-bottom-left-radius:8px}.puzzle-board--fading{opacity:.25;pointer-events:none}@keyframes puzzleSuccessEnter{0%{opacity:0;transform:translateY(12px) scale(.92);filter:blur(4px)}18%{opacity:1;transform:translateY(0) scale(1.02);filter:blur(0)}75%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-2px) scale(.98)}}@keyframes puzzleSuccessGlow{0%,to{opacity:.45;transform:scale(.92)}50%{opacity:.9;transform:scale(1)}}.puzzle-success-animation{position:absolute;top:0;right:0;bottom:0;left:0;z-index:26;display:grid;place-items:center;pointer-events:none;padding:1rem;animation:puzzleSuccessEnter 2.5s ease-in-out forwards}.puzzle-success-animation__halo{position:absolute;width:min(72%,18rem);aspect-ratio:1;border-radius:999px;background:radial-gradient(circle,#22c55e47,#22c55e14 42%,#22c55e00 72%);filter:blur(8px);animation:puzzleSuccessGlow 2.5s ease-in-out infinite}.puzzle-success-animation__badge{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.85rem;max-width:min(88%,18rem);padding:.85rem 1rem;border-radius:1rem;border:1px solid rgba(74,222,128,.26);background:linear-gradient(180deg,#0f172adb,#0f172ab8);box-shadow:0 12px 36px #0f172a47,inset 0 1px #ffffff14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.puzzle-success-animation__icon{display:grid;place-items:center;width:2rem;height:2rem;flex:none;border-radius:999px;background:linear-gradient(135deg,#22c55ef2,#10b981c7);color:#052e16;font-size:1.05rem;font-weight:900;box-shadow:0 0 0 6px #22c55e24}.puzzle-success-animation__text{display:flex;flex-direction:column;gap:.12rem;min-width:0}.puzzle-success-animation__message{color:var(--color-text);font-size:1rem;font-weight:800;letter-spacing:-.01em;line-height:1.15}.puzzle-success-animation__subtext{color:var(--color-text-secondary);font-size:.72rem;line-height:1.2}@keyframes correctGlow{0%{box-shadow:0 0 #34d39900;opacity:0}20%{opacity:1;box-shadow:0 0 14px 6px #21c71bb3}80%{opacity:1;box-shadow:0 0 12px 5px #14ba258c}to{box-shadow:0 0 #34d39900;opacity:0}}@keyframes wrongFlash{0%{background-color:#ef444400}20%{background-color:#c917178c}50%{background-color:#c10a0a33}70%{background-color:#ef44448c}to{background-color:#ef444400}}.puzzle-square-highlight{position:absolute;z-index:10;border-radius:2px;pointer-events:none}.puzzle-square-highlight--correct{animation:correctGlow 1s ease forwards}.puzzle-square-highlight--wrong{animation:wrongFlash .9s ease forwards}@keyframes hintPulse{0%{box-shadow:0 0 #8b5cf600;opacity:.5}40%{box-shadow:0 0 12px 5px #8b5cf6b3;opacity:1}70%{box-shadow:0 0 10px 4px #8b5cf68c;opacity:1}to{box-shadow:0 0 12px 5px #8b5cf6b3;opacity:1}}.puzzle-square-highlight--hint{animation:hintPulse .6s ease forwards;box-shadow:0 0 12px 5px #8b5cf6a6}.puzzle-square-highlight--solution{background-color:#10b98159;box-shadow:inset 0 0 0 3px #10b981e6}.puzzle-board-column{grid-column:1;display:flex;flex-direction:column;align-items:center;gap:.6rem;position:relative}.puzzle-right-column{grid-column:2;justify-self:start;display:flex;flex-direction:column;gap:1rem;align-items:stretch;width:100%;height:100%;align-self:stretch;max-width:340px}.analysis-player-strip{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .9rem;border:1px solid var(--color-border-light);border-radius:12px;background:#0f172a47;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-board)}.analysis-player-strip__name{min-width:0;color:var(--color-text-primary);font-size:.9rem;font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analysis-player-strip__score{flex:0 0 auto;min-width:2.1rem;padding:.22rem .55rem;border-radius:999px;background:var(--color-surface-active);color:var(--color-text-primary);font-family:monospace;font-size:.85rem;font-weight:700;text-align:center}.analysis-player-strip--top{margin-top:.2rem}.analysis-player-strip--bottom{margin-bottom:.2rem}.puzzle-board-row{display:flex;align-items:stretch;gap:2px}.puzzle-board-row--with-status{align-items:flex-start;gap:1.25rem;flex-wrap:nowrap}.puzzle-board-row--status-right{flex-direction:row}.puzzle-board-row-inner{display:flex;align-items:stretch;width:100%;justify-content:center}.puzzle-board-stack{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:100%;max-width:512px;position:relative}.puzzle-status-card--side{width:360px;flex:0 0 250px}.puzzle-side-panel{width:360px;flex:0 0 250px;display:flex;flex-direction:column;gap:.75rem}.puzzle-side-panel .puzzle-status-card--side{width:100%;flex:none}.puzzle-turn-card{width:100%;display:flex;align-items:center;gap:.65rem;padding:1rem 1.1rem;border-radius:14px;border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-board)}.puzzle-turn-king{width:32px;height:32px;flex:0 0 32px;object-fit:contain}.puzzle-turn-card strong{color:var(--color-text-primary);font-size:1rem;font-weight:700}.puzzle-turn-card--daily{width:100%;min-width:0;padding:.85rem 1rem}.daily-puzzle-side-controls{flex:0 0 32px;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;margin-top:1.9rem}.daily-puzzle-side-controls .daily-date-nav{width:100%;margin:0}.daily-puzzle-side-controls .daily-date-nav__center{flex:1}.puzzle-control-bar{display:flex;flex-wrap:nowrap;align-items:center;gap:.6rem;background:var(--color-surface);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border);border-radius:12px;padding:8px 12px;width:100%;max-width:500px;box-sizing:border-box;justify-content:center}.puzzle-control-bar--board{align-self:center;width:100%;max-width:512px}.ctrl-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 22px;border-radius:9px;border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-size:.92rem;font-weight:600;font-family:Inter,sans-serif;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease;white-space:nowrap}.ctrl-btn--nav{padding:8px 10px}.ctrl-btn--restart{padding:6px;height:32px;width:32px;justify-content:center;color:#93c5fd;border-color:#3b82f659;background:#3b82f61a}.ctrl-btn--restart:hover{background:#3b82f638;border-color:#3b82f699;box-shadow:0 0 8px #3b82f63d}.ctrl-btn--hint{color:#c4b5fd;border-color:#8b5cf659;background:#8b5cf61a}.ctrl-btn--hint:hover{background:#8b5cf638;border-color:#8b5cf699;box-shadow:0 0 8px #8b5cf64d}.ctrl-btn--solution{color:#6ee7b7;border-color:#10b98159;background:#10b9811a}.ctrl-btn--solution:hover{background:#10b98138;border-color:#10b98199;box-shadow:0 0 8px #10b9814d}.ctrl-btn--solution.ctrl-btn--active{background:#10b98140;color:#34d399;border-color:#10b98199}.ctrl-btn--skip{color:#fdba74;border-color:#f9731659;background:#f973161a}.ctrl-btn--skip:hover{background:#f9731638;border-color:#f9731699;box-shadow:0 0 8px #f973164d}.ctrl-btn--analyze{color:#60a5fa;border-color:#3b82f659;background:#3b82f61a}.ctrl-btn--analyze:hover:not(:disabled){background:#3b82f638;border-color:#3b82f699;box-shadow:0 0 8px #3b82f64d}.ctrl-btn--analyze.ctrl-btn--active{background:#3b82f640;color:#1d4ed8;border-color:#3b82f699}.ctrl-btn--analyze:disabled{opacity:.5;cursor:not-allowed}.puzzle-analysis-panel{width:100%;background:var(--color-surface);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--color-border-light);border-radius:12px;padding:1rem;box-sizing:border-box;display:flex;flex-direction:column;gap:.8rem;box-shadow:var(--shadow-board);margin-left:auto;margin-top:.2rem;max-height:none;max-width:320px;height:auto;min-height:0;overflow:hidden}.analysis-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.analysis-header-left{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap}.analysis-header-right{display:inline-flex;align-items:center;color:var(--color-text-secondary)}.analysis-header-action{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.analysis-header-action:hover{border-color:var(--color-accent);background:var(--color-surface-hover);color:var(--color-text-primary);transform:translateY(-1px)}.analysis-header-action:focus-visible{outline:2px solid rgba(59,130,246,.9);outline-offset:2px}.analysis-header-action[aria-pressed=true]{border-color:#3b82f673;color:#60a5fa}.analysis-status-dot{width:14px;height:14px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 3px #22c55e26;border:none;padding:0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background .2s ease,box-shadow .2s ease,transform .2s ease}.analysis-status-dot:hover{transform:scale(1.06)}.analysis-status-dot:focus-visible{outline:2px solid rgba(59,130,246,.9);outline-offset:2px}.analysis-status-dot--off{background:#ef4444;box-shadow:0 0 0 3px #ef444433}.analysis-engine-meta{color:var(--color-text-secondary);font-size:.85rem;font-weight:600}.analysis-engine-tag{font-size:.75rem;font-weight:700;color:#84cc16;background:#84cc1626;border:1px solid rgba(132,204,22,.4);padding:2px 6px;border-radius:999px}.analysis-panel-title{margin:0;font-size:1rem;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:.5rem;border-bottom:1px solid var(--color-border);padding-bottom:.5rem}.analysis-loading{color:var(--color-text-secondary);font-size:.9rem;font-style:italic}.analysis-error{color:var(--color-warning);font-size:.9rem}.analysis-results{display:flex;flex-direction:column;gap:.5rem}.lab-opening-name-card{display:grid;gap:.28rem;padding:.8rem .9rem;border:1px solid var(--color-border);border-radius:12px;background:radial-gradient(circle at top right,rgba(255,184,0,.09),transparent 26%),var(--color-surface)}.lab-opening-name-card__label{color:var(--color-text-tertiary);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.lab-opening-name-card__value{color:var(--color-text-primary);font-size:1rem;line-height:1.25}.analysis-pv-strip{font-family:monospace;font-size:.9rem;color:var(--color-text-secondary);padding:.4rem 0;border-bottom:1px solid var(--color-border);white-space:nowrap;overflow-x:auto;overflow-y:hidden;flex:0 0 auto;scrollbar-width:none}.analysis-pv-strip::-webkit-scrollbar{height:0}.analysis-pv-strip::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.analysis-pv-strip-wrapper{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.5rem}.analysis-pv-scroll-btn{border:none;background:var(--color-surface-active);color:var(--color-text-secondary);border-radius:6px;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-board)}.analysis-pv-scroll-btn:hover{color:var(--color-text-primary);background:var(--color-surface-hover)}.analysis-move-list{display:flex;flex-direction:column;gap:.35rem;padding-top:.25rem;flex:1 1 auto;overflow-y:auto;padding-right:.35rem}.analysis-move-row{display:grid;grid-template-columns:28px 1fr 1fr;gap:.75rem;align-items:center;color:var(--color-text-secondary);font-size:.95rem;padding:.2rem .25rem;border-radius:6px}.analysis-move-row:hover{background:var(--color-surface-hover)}.analysis-move-number{color:var(--color-text-tertiary);text-align:right;font-variant-numeric:tabular-nums}.analysis-move{font-family:monospace}.analysis-move.white{color:var(--color-text-primary)}.analysis-move.black{color:var(--color-text-secondary)}.analysis-move-empty{color:var(--color-text-tertiary);font-size:.9rem;padding:.5rem 0}.lab-review-controls{margin-top:.75rem}.review-controls{display:flex;gap:.5rem;width:100%;padding:.45rem;border:2px solid var(--color-border-light);border-radius:12px;box-sizing:border-box}.review-btn{flex:1;padding:.45rem .6rem;background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.85rem;border-radius:10px;transition:all .15s ease;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.25rem}.review-btn:hover:not(.disabled){border-color:var(--color-accent);color:var(--color-text-primary);background:var(--color-surface-hover)}.review-btn.disabled{opacity:.4;cursor:not-allowed;border-color:var(--color-border);color:var(--color-text-tertiary)}.analysis-line{display:flex;gap:.8rem;font-size:.9rem;align-items:flex-start;min-width:0}.analysis-best-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#16a34a;font-weight:700;margin-top:2px}.analysis-score{font-family:monospace;font-weight:600;color:var(--color-accent);min-width:45px;text-align:right;background:var(--color-surface-active);padding:2px 6px;border-radius:4px}.analysis-pv{color:var(--color-text-secondary);flex:1;font-family:monospace;display:flex;flex-direction:row;flex-wrap:wrap;gap:.35rem;max-width:100%;min-width:0;overflow-wrap:anywhere}.analysis-pv-line{display:inline}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media(max-width:900px){.puzzle-page-wrapper{position:relative}.puzzle-sidebar{position:fixed;top:65px;left:0;bottom:var(--mobile-tab-bar-height);height:calc(100dvh - 65px - var(--mobile-tab-bar-height));z-index:180;background:var(--color-sidebar-mobile-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-sidebar-mobile)}.puzzle-play-container{align-items:center;padding:1.5rem .5rem var(--puzzle-bottom-safe-space) .5rem}.puzzle-sidebar.open{width:220px}.puzzle-sidebar.closed{width:0;border-right:none}.puzzle-sidebar.closed .sidebar-content{opacity:0;pointer-events:none}.puzzle-sidebar.closed .sidebar-toggle-floating{right:-32px}.puzzle-sidebar-backdrop{display:block;position:fixed;top:65px;right:0;bottom:0;left:0;z-index:170;border:none;padding:0;margin:0;background:var(--color-sidebar-backdrop);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.puzzle-content{display:grid;grid-template-columns:1fr;justify-items:center;gap:1.5rem;transform:none}.puzzle-page-container{padding:1.5rem .5rem var(--puzzle-bottom-safe-space) .5rem}.puzzle-header{margin-bottom:1.5rem}.puzzle-header h2{font-size:1.5rem}.puzzle-board-column{grid-column:1;width:100%;max-width:512px}.puzzle-board-row{width:100%;justify-content:center}.puzzle-board-row--with-status{flex-direction:column;align-items:center;gap:1rem;width:100%}.puzzle-side-panel{width:100%;max-width:360px;flex:none}.puzzle-board-stack{width:100%;max-width:512px;margin-top:26px}.puzzle-board-row-inner{width:100%;justify-content:center}.puzzle-status-card--side{width:100%;max-width:512px;flex:0 0 auto}.puzzle-board-container--with-bar{border-left:2px solid var(--color-border);border-top-left-radius:8px;border-bottom-left-radius:8px}.puzzle-status-card{grid-column:1;justify-self:center;width:100%;max-width:500px;padding:1rem;box-sizing:border-box;gap:.75rem;border-radius:14px}.puzzle-info-row{padding-bottom:.6rem}.puzzle-info-label{font-size:.8rem}.puzzle-info-value{font-size:.94rem}.puzzle-nav-buttons .ctrl-btn--nav{width:30px;height:30px;padding:5px}.puzzle-themes{gap:.4rem;margin-top:.35rem}.theme-tag{padding:2px 6px;font-size:.66rem}.puzzle-right-column{grid-column:1;justify-self:center;width:100%;max-width:512px}.lab-page-container{max-width:100%}.lab-analysis-content{flex-direction:column;align-items:center;gap:1rem}.lab-analysis-content .puzzle-board-column{width:100%;max-width:512px;min-width:0;flex:1 1 auto}.lab-analysis-content .puzzle-board-row{width:100%;max-width:512px;gap:8px;justify-content:center}.lab-analysis-content .puzzle-right-column{width:100%;max-width:512px}.analysis-player-strip{width:100%}.puzzle-analysis-panel{height:auto;min-height:0}.puzzle-control-bar{width:100%;flex-wrap:wrap;gap:.5rem;padding:8px}.puzzle-control-bar--board{align-self:center;max-width:512px}.ctrl-btn{padding:6px 14px;font-size:.85rem;gap:6px;flex:1 1 calc(50% - .3rem);justify-content:center;min-width:0}.ctrl-btn--nav{padding:6px 8px;flex:0 0 auto}}@media(max-width:1200px){.puzzle-content--daily .puzzle-board-row-inner{margin-top:0}.daily-date-nav{margin-left:1rem}}@media(max-width:480px){.puzzle-play-container{align-items:center;padding:1rem .25rem var(--puzzle-bottom-safe-space) .25rem}.puzzle-page-container{padding:1rem .25rem var(--puzzle-bottom-safe-space) .25rem}.puzzle-board-column,.puzzle-board-stack,.puzzle-control-bar--board,.lab-analysis-content .puzzle-board-row,.lab-analysis-content .puzzle-right-column{max-width:calc(100vw - .5rem)}.ctrl-btn{font-size:.8rem;padding:6px 8px}.daily-date-nav{margin:.5rem 0 0 .25rem;width:fit-content}.puzzle-content--daily .puzzle-board-row-inner{margin-top:0}}.daily-date-nav{width:fit-content;margin:1.9rem 0 0 3.9rem;display:flex;align-items:stretch;justify-content:flex-start;gap:7px;position:relative;z-index:10}.daily-date-nav__arrow,.daily-date-nav__center{border:1px solid var(--color-border);border-radius:14px;background:linear-gradient(180deg,#ffffff0d,#fff0),var(--color-surface);color:var(--color-text-primary);min-height:50px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-board);transition:transform .15s ease,border-color .15s ease,background .15s ease,opacity .15s ease}.daily-date-nav__arrow{width:52px;flex-shrink:0}.daily-date-nav__center{min-width:98px;justify-content:center;gap:10px;padding:0 10px}.daily-date-nav__label{font-size:clamp(.7rem,1.2vw,1.4rem);font-weight:700;letter-spacing:.02em;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-date-nav__arrow:hover:not(:disabled),.daily-date-nav__center:hover{transform:translateY(-1px);border-color:var(--color-border-hover);background:linear-gradient(180deg,#ffffff17,#fff0),var(--color-surface-hover)}.daily-date-nav__arrow:disabled{cursor:not-allowed;opacity:.5}.daily-calendar-modal{position:fixed;top:65px;right:0;bottom:0;left:0;z-index:220}.daily-calendar-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:0;margin:0;padding:0;background:#080a14d1;backdrop-filter:none;-webkit-backdrop-filter:none}.daily-calendar-modal__panel{position:relative;width:min(92vw,430px);margin:24px auto 0;padding:16px;border:1px solid var(--color-border);border-radius:16px;background:#1a1a2e;box-shadow:var(--shadow-board);display:flex;flex-direction:column;gap:10px}.daily-calendar-modal__head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px}.daily-calendar-modal__month-btn{width:34px;height:34px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface-active);color:var(--color-text-primary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.daily-calendar-modal__month-btn:disabled{opacity:.45;cursor:not-allowed}.daily-calendar-modal__month-title{text-align:center;font-size:1rem;font-weight:600;text-transform:capitalize}.daily-calendar-modal__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;color:var(--color-text-secondary);font-size:.78rem;font-weight:600;text-align:center}.daily-calendar-modal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.daily-calendar-modal__empty{height:34px}.daily-calendar-day{height:34px;border-radius:9px;border:1px solid var(--color-border);background:var(--color-surface-active);color:var(--color-text-tertiary);font-weight:600;cursor:not-allowed}.daily-calendar-day.is-available{color:var(--color-text-primary);border-color:var(--color-border-hover);cursor:pointer}.daily-calendar-day.is-available:hover{background:var(--color-surface-hover)}.daily-calendar-day.is-selected{border-color:#3b82f6cc;box-shadow:0 0 0 2px #3b82f633 inset;background:#3b82f633}.daily-calendar-modal__meta{color:var(--color-text-secondary);font-size:.82rem;text-align:center;padding-top:4px}.daily-calendar-modal__meta--error{color:var(--color-warning)}@media(max-width:900px){.daily-date-nav{width:100%;min-width:0;grid-template-columns:56px 1fr 56px;gap:8px;margin:.75rem 0 0 .5rem}.daily-date-nav__arrow,.daily-date-nav__center{min-height:58px}.daily-date-nav__label{font-size:clamp(.92rem,4vw,1.2rem)}.puzzle-board-row--daily{gap:.5rem;padding-left:.5rem}.daily-puzzle-side-controls{gap:.45rem;margin-top:.75rem}}.custom-puzzle-page-container{padding:2rem 2.5rem var(--puzzle-bottom-safe-space) 2rem}.custom-puzzle-layout{display:grid;grid-template-columns:minmax(280px,320px) minmax(0,1fr);gap:.9rem;width:100%;align-items:flex-start}.custom-puzzle-player{min-width:0;width:100%}.custom-puzzle-player .puzzle-content{justify-content:flex-start;grid-template-columns:1fr;gap:0;transform:none}.custom-puzzle-player .puzzle-board-column{align-items:flex-start}.roadmap-page-container{position:relative;align-items:stretch;padding:1.75rem 8rem 2.25rem;background:radial-gradient(circle at top left,rgba(37,99,235,.12),transparent 28%),radial-gradient(circle at top right,rgba(16,185,129,.08),transparent 22%)}.roadmap-progress-section{position:absolute;top:1.5rem;right:2rem;z-index:50;width:auto}.roadmap-progress-loading{min-height:calc(100dvh - 160px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;color:var(--color-text-secondary);font-weight:600}.roadmap-progress-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:#2563eb;border-radius:999px;animation:roadmap-progress-spin .8s linear infinite}@keyframes roadmap-progress-spin{to{transform:rotate(360deg)}}.roadmap-hero-copy{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.35rem;min-width:0}.roadmap-hero-eyebrow{display:inline-flex;align-self:flex-start;padding:.35rem .75rem;border-radius:999px;background:#2563eb1a;color:#2563eb;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.roadmap-hero-title{margin:0;font-size:clamp(1.9rem,4vw,3rem);line-height:1.05;color:var(--color-text-primary)}.roadmap-hero-description,.roadmap-hero-helper{margin:0;max-width:68ch;color:var(--color-text-secondary);line-height:1.6}.roadmap-hero-helper{color:var(--color-text-tertiary);font-size:.96rem}.roadmap-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.roadmap-stat-card{min-width:0;display:flex;flex-direction:column;gap:.5rem;padding:1rem;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent);border:1px solid var(--color-border);box-shadow:0 14px 32px #0f172a0f}.roadmap-stat-icon{width:2.2rem;height:2.2rem;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:#2563eb1a;color:#2563eb}.roadmap-stat-value{font-size:1.18rem;font-weight:700;color:var(--color-text-primary);line-height:1.2;word-break:break-word}.roadmap-stat-label{font-size:.88rem;color:var(--color-text-secondary)}.roadmap-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;width:100%;align-items:start}.roadmap-journey{min-width:0;display:flex;flex-direction:column;gap:1rem}.roadmap-journey-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.roadmap-section-title{margin:0 0 .3rem;font-size:1.22rem;font-weight:700;color:var(--color-text-primary)}.roadmap-section-description{margin:0;color:var(--color-text-secondary);line-height:1.55}.roadmap-journey-chip{flex-shrink:0;padding:.45rem .8rem;border-radius:999px;background:var(--color-surface-hover);color:var(--color-text-secondary);border:1px solid var(--color-border);font-size:.82rem;font-weight:600}.roadmap-stage-section{--roadmap-accent: #2563eb;position:relative;padding:.35rem 0 1.15rem}.roadmap-stage-section:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#94a3b82e,#94a3b80a)}.roadmap-stage-head{display:block;width:min(100%,500px);margin:0 auto .6rem;padding:1rem 3.5rem;box-sizing:border-box;border-radius:20px;border:1px solid var(--color-border);background-color:var(--color-bg-secondary);box-shadow:0 10px 24px #00000080;text-align:center;position:relative;z-index:10}.roadmap-stage-copy{max-width:none;margin:0 auto;min-width:0}.roadmap-stage-label{display:inline-flex;margin-bottom:.45rem;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--roadmap-accent)}.roadmap-stage-title{margin:0 0 .35rem;font-size:1.3rem;color:var(--roadmap-accent)}.roadmap-stage-subtitle,.roadmap-stage-goal{margin:0;color:var(--color-text-secondary);line-height:1.55}.roadmap-stage-goal{margin-top:.6rem;color:var(--color-text-primary);font-weight:500}.roadmap-stage-progress{display:flex;flex-direction:column;justify-content:center;gap:.55rem;padding:.82rem .95rem;min-width:280px;max-width:360px;border-radius:16px;border:1px solid color-mix(in srgb,var(--roadmap-accent) 32%,var(--color-border));background:linear-gradient(180deg,#ffffff12,#ffffff06);box-shadow:0 12px 28px #0f172a2e}.roadmap-stage-progress-label{color:var(--color-text-primary);font-size:.92rem;font-weight:800}.roadmap-stage-progress-track{position:relative;width:100%;height:15px;border-radius:999px;background:#0f172a6b;border:1px solid rgba(255,255,255,.12);overflow:hidden;box-shadow:inset 0 1px 3px #00000047}.roadmap-stage-progress-fill{display:block;height:100%;min-width:18px;border-radius:inherit;background:linear-gradient(90deg,#ff4757eb,#ffb800e0);box-shadow:0 0 16px #ff475738;transition:width .24s ease}[data-theme=light] .roadmap-stage-progress-track{background:#94a3b83d;border-color:#0f172a1f}.roadmap-stage-path{position:relative;display:flex;flex-direction:column;gap:.6rem;padding:.8rem 0 .2rem}.roadmap-stage-path:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:4px;transform:translate(-50%);border-radius:999px;background:linear-gradient(180deg,#94a3b81f,#94a3b84d,#94a3b81f)}.roadmap-step{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;gap:1rem;min-height:132px}.roadmap-step-card{position:relative;z-index:1;min-width:0;padding:0;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.03),transparent);border:1px solid transparent;box-shadow:none;opacity:0;transform:translateY(8px) scale(.98);pointer-events:none;max-height:0;overflow:hidden;transition:opacity .18s ease,transform .18s ease,max-height .22s ease,padding .18s ease}.roadmap-step-card.is-open{padding:.95rem 1rem .9rem;border-color:var(--color-border);box-shadow:0 10px 30px #0f172a0f;opacity:1;transform:translateY(0) scale(1);pointer-events:auto;max-height:280px}.roadmap-step-card-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.roadmap-step-card-body{display:flex;flex-direction:column;gap:.38rem}.roadmap-step-order{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}.roadmap-step-status{display:inline-flex;align-items:center;justify-content:center;padding:.28rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap}.roadmap-step-status--completed{background:#22c55e1f;color:#16a34a}.roadmap-step-status--current{background:#2563eb1f;color:#2563eb}.roadmap-step-status--available{background:#06b6d41f;color:#0891b2}.roadmap-step-status--locked{background:#94a3b829;color:var(--color-text-secondary)}.roadmap-step-title{margin:0 0 .38rem;font-size:1.05rem;color:var(--color-text-primary)}.roadmap-step-summary{margin:0;color:var(--color-text-secondary);line-height:1.55}.roadmap-step-card-actions{display:flex;justify-content:flex-end;margin-top:.95rem}.roadmap-step-start-btn{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;border-radius:999px;padding:.48rem .95rem;font-size:.84rem;font-weight:700;cursor:pointer;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease;box-shadow:0 10px 20px #0f172a1f}.roadmap-step-start-btn:hover{transform:translateY(-1px);filter:brightness(1.04)}.roadmap-step-start-btn.is-completed{background:#16a34a;border-color:#16a34a;box-shadow:0 10px 20px #16a34a38}.roadmap-step-start-btn.is-completed:hover{filter:brightness(1.07)}.roadmap-step-start-btn.is-locked{background:#94a3b8;border-color:#94a3b8;color:#f8fafc}.roadmap-step-start-btn.is-locked:hover{transform:none;filter:none}.roadmap-step-meta{margin-top:.8rem;display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;font-size:.85rem;color:var(--color-text-tertiary)}.roadmap-step-spacer{min-height:1px}.roadmap-node{position:relative;z-index:2;align-self:start;border:none;background:transparent;padding:0;margin-top:14px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center}.roadmap-node-shell{position:relative;overflow:hidden;width:88px;height:88px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:3px solid transparent;box-shadow:0 16px 30px #0f172a26;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.roadmap-node:hover .roadmap-node-shell{transform:translateY(-2px) scale(1.02);box-shadow:0 20px 38px #0f172a2e}.roadmap-node:focus-visible{outline:none}.roadmap-node:focus-visible .roadmap-node-shell{box-shadow:0 0 0 4px #2563eb33,0 20px 38px #0f172a29}.roadmap-node.is-selected .roadmap-node-shell{box-shadow:0 0 0 5px #2563eb29,0 18px 40px #0f172a2e}.roadmap-node--completed .roadmap-node-shell{background:#16a34a;color:#f0fdf4;border-color:#15803d}.roadmap-node--current .roadmap-node-shell{background:var(--roadmap-accent);color:#eff6ff;border-color:color-mix(in srgb,var(--roadmap-accent) 78%,black);animation:roadmap-node-pulse 2.2s ease-in-out infinite}.roadmap-node--current .roadmap-node-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,#ffffff38,#fff0)}.roadmap-node--available .roadmap-node-shell{background:var(--color-accent);border-color:color-mix(in srgb,var(--color-accent) 78%,black);color:#fff}.roadmap-node--locked .roadmap-node-shell{background:#94a3b8;border-color:#64748b;color:#f8fafc;box-shadow:0 16px 30px #0f172a1f}.roadmap-detail-panel{--roadmap-accent: #2563eb;position:sticky;top:1rem;display:flex;flex-direction:column;gap:1rem;padding:1.15rem;border-radius:28px;background:radial-gradient(circle at top right,rgba(37,99,235,.14),transparent 44%),linear-gradient(180deg,var(--color-surface),var(--color-surface));border:1px solid var(--color-border);box-shadow:0 20px 54px #0f172a14}.roadmap-detail-head{display:flex;flex-direction:column;gap:.45rem}.roadmap-detail-badge{align-self:flex-start;padding:.34rem .62rem;border-radius:999px;font-size:.78rem;font-weight:700}.roadmap-detail-badge--completed{background:#22c55e24;color:#16a34a}.roadmap-detail-badge--current{background:#2563eb24;color:#2563eb}.roadmap-detail-badge--available{background:#06b6d424;color:#0891b2}.roadmap-detail-badge--locked{background:#94a3b829;color:var(--color-text-secondary)}.roadmap-detail-stage{font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--roadmap-accent)}.roadmap-detail-title{margin:0;font-size:1.45rem;color:var(--color-text-primary)}.roadmap-detail-summary{margin:0;color:var(--color-text-secondary);line-height:1.6}.roadmap-detail-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.roadmap-detail-meta-item{display:flex;flex-direction:column;gap:.35rem;min-width:0;padding:.85rem;border-radius:18px;background:#ffffff08;border:1px solid var(--color-border)}.roadmap-detail-meta-item strong{color:var(--color-text-primary);font-size:.94rem;line-height:1.45;word-break:break-word}.roadmap-detail-meta-label{font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}.roadmap-detail-section{display:flex;flex-direction:column;gap:.45rem;padding-top:.85rem;border-top:1px solid var(--color-border)}.roadmap-detail-section h3,.roadmap-detail-next-label{margin:0;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}.roadmap-detail-section p,.roadmap-detail-next p{margin:0;color:var(--color-text-secondary);line-height:1.6}.roadmap-detail-tags{display:flex;flex-wrap:wrap;gap:.5rem}.roadmap-detail-tag{display:inline-flex;align-items:center;padding:.4rem .7rem;border-radius:999px;background:#2563eb14;color:var(--color-text-primary);border:1px solid var(--color-border);font-size:.82rem;font-weight:600}.roadmap-detail-next{display:flex;flex-direction:column;gap:.38rem;padding:1rem;border-radius:20px;background:linear-gradient(180deg,rgba(37,99,235,.08),transparent);border:1px solid var(--color-border)}.roadmap-detail-next strong{color:var(--color-text-primary);font-size:1rem}@keyframes roadmap-node-pulse{0%,to{box-shadow:0 16px 30px #0f172a26}50%{box-shadow:0 0 0 8px #2563eb1f,0 20px 40px #0f172a2e}}[data-theme=dark]{--puzzle-filter-panel-bg: linear-gradient(180deg, rgba(59, 130, 246, .08), rgba(15, 23, 42, .18));--puzzle-filter-icon-bg: rgba(59, 130, 246, .12);--puzzle-filter-icon-border: rgba(59, 130, 246, .24);--puzzle-filter-icon-color: #93c5fd;--puzzle-filter-rating-track: rgba(148, 163, 184, .2);--puzzle-filter-rating-range: linear-gradient(90deg, #60a5fa, #2563eb);--puzzle-filter-rating-range-shadow: 0 0 12px rgba(37, 99, 235, .22);--puzzle-filter-rating-thumb-border: rgba(191, 219, 254, .9);--puzzle-filter-rating-thumb-bg: #1d4ed8;--puzzle-filter-rating-thumb-shadow: 0 0 0 3px rgba(37, 99, 235, .18);--puzzle-filter-theme-hover-border: rgba(59, 130, 246, .45);--puzzle-filter-theme-selected-border: rgba(59, 130, 246, .55);--puzzle-filter-theme-selected-bg: rgba(59, 130, 246, .14);--puzzle-filter-theme-selected-color: #bfdbfe;--puzzle-filter-theme-icon-bg: rgba(15, 23, 42, .45)}[data-theme=light]{--puzzle-filter-panel-bg: linear-gradient(180deg, rgba(255, 255, 255, .98), rgba(226, 238, 252, .92));--puzzle-filter-icon-bg: rgba(37, 99, 235, .1);--puzzle-filter-icon-border: rgba(37, 99, 235, .18);--puzzle-filter-icon-color: #1d4ed8;--puzzle-filter-rating-track: rgba(148, 163, 184, .32);--puzzle-filter-rating-range: linear-gradient(90deg, #3b82f6, #1d4ed8);--puzzle-filter-rating-range-shadow: 0 0 12px rgba(37, 99, 235, .16);--puzzle-filter-rating-thumb-border: rgba(255, 255, 255, .95);--puzzle-filter-rating-thumb-bg: #2563eb;--puzzle-filter-rating-thumb-shadow: 0 0 0 3px rgba(37, 99, 235, .12);--puzzle-filter-theme-hover-border: rgba(37, 99, 235, .35);--puzzle-filter-theme-selected-border: rgba(37, 99, 235, .42);--puzzle-filter-theme-selected-bg: rgba(37, 99, 235, .12);--puzzle-filter-theme-selected-color: #1d4ed8;--puzzle-filter-theme-icon-bg: rgba(37, 99, 235, .08)}.puzzle-filter-panel{background:var(--puzzle-filter-panel-bg);border:1px solid var(--color-border);border-radius:18px;box-shadow:var(--shadow-board);padding:1.4rem;display:flex;flex-direction:column;gap:1.25rem;position:sticky;top:0}.puzzle-filter-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.puzzle-filter-toggle{display:inline-flex;align-items:center;gap:.45rem;min-height:36px;padding:.45rem .7rem;border-radius:11px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:.78rem;font-weight:700}.puzzle-filter-toggle-label{letter-spacing:.02em}.puzzle-filter-eyebrow{margin:0 0 .25rem;color:var(--color-accent);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}.puzzle-filter-title{margin:0;font-size:1.4rem;color:var(--color-text-primary)}.puzzle-filter-icon{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--puzzle-filter-icon-bg);color:var(--puzzle-filter-icon-color);border:1px solid var(--puzzle-filter-icon-border)}.puzzle-filter-section{display:flex;flex-direction:column;gap:.9rem;padding-top:1rem;border-top:1px solid var(--color-border)}.puzzle-filter-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.puzzle-filter-label{font-size:.95rem;font-weight:600;color:var(--color-text-primary)}.puzzle-filter-value{font-size:.85rem;color:var(--color-accent);font-weight:600}.puzzle-filter-range-group{display:flex;flex-direction:column;gap:.45rem}.puzzle-filter-range-label{font-size:.8rem;color:var(--color-text-secondary);font-weight:600}.puzzle-filter-range-group input[type=range]{width:100%;accent-color:#3b82f6}.puzzle-rating-bar{position:relative;height:28px;display:flex;align-items:center}.puzzle-rating-bar-track,.puzzle-rating-bar-range{position:absolute;left:0;right:0;height:6px;border-radius:999px}.puzzle-rating-bar-track{background:var(--puzzle-filter-rating-track)}.puzzle-rating-bar-range{background:var(--puzzle-filter-rating-range);box-shadow:var(--puzzle-filter-rating-range-shadow)}.puzzle-rating-bar-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;margin:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;pointer-events:none}.puzzle-rating-bar-input::-webkit-slider-runnable-track{height:6px;background:transparent}.puzzle-rating-bar-input::-moz-range-track{height:6px;background:transparent}.puzzle-rating-bar-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--puzzle-filter-rating-thumb-border);background:var(--puzzle-filter-rating-thumb-bg);box-shadow:var(--puzzle-filter-rating-thumb-shadow);margin-top:-6px;cursor:pointer;pointer-events:auto}.puzzle-rating-bar-input::-moz-range-thumb{width:18px;height:18px;border-radius:50%;border:2px solid var(--puzzle-filter-rating-thumb-border);background:var(--puzzle-filter-rating-thumb-bg);box-shadow:var(--puzzle-filter-rating-thumb-shadow);cursor:pointer;pointer-events:auto}.puzzle-rating-bar-value{display:flex;flex-direction:column;gap:.15rem;color:var(--color-text-primary)}.puzzle-rating-bar-value strong{font-size:1rem}.puzzle-rating-bar-value--right{align-items:flex-end;text-align:right}.puzzle-filter-theme-list{display:flex;flex-wrap:wrap;gap:.65rem}.puzzle-theme-option{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);border-radius:14px;width:56px;height:56px;cursor:pointer;overflow:visible;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}.puzzle-theme-option:hover{transform:translateY(-1px);border-color:var(--puzzle-filter-theme-hover-border);color:var(--color-text-primary)}.puzzle-theme-option:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + .55rem);transform:translate(-50%,4px);padding:.42rem .7rem;border-radius:999px;background:var(--color-bg-secondary);border:1px solid var(--color-border);box-shadow:0 16px 36px #0f172a38;color:var(--color-text-primary);font-size:.78rem;font-weight:600;letter-spacing:.01em;line-height:1;white-space:nowrap;opacity:0;pointer-events:none;z-index:3}.puzzle-theme-option:before{content:"";position:absolute;left:50%;bottom:calc(100% + .22rem);transform:translate(-50%,4px) rotate(45deg);width:.55rem;height:.55rem;background:var(--color-bg-secondary);border-left:1px solid var(--color-border);border-top:1px solid var(--color-border);opacity:0;pointer-events:none;z-index:2}.puzzle-theme-option:hover:after,.puzzle-theme-option:hover:before,.puzzle-theme-option:focus-visible:after,.puzzle-theme-option:focus-visible:before{opacity:1;transform:translate(-50%)}.puzzle-theme-option.selected{border-color:var(--puzzle-filter-theme-selected-border);background:var(--puzzle-filter-theme-selected-bg);color:var(--puzzle-filter-theme-selected-color)}.puzzle-theme-option-icon{width:32px;height:32px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--puzzle-filter-theme-icon-bg);color:inherit}@media(hover:none){.puzzle-theme-option:before,.puzzle-theme-option:after{display:none}}.puzzle-filter-actions{display:flex;flex-direction:column;gap:.75rem}.puzzle-filter-summary{display:grid;gap:.55rem}.puzzle-filter-summary-pill{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border-radius:12px;background:#ffffff0a;border:1px solid var(--color-border)}.puzzle-filter-summary-pill span{color:var(--color-text-secondary);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.puzzle-filter-summary-pill strong{color:var(--color-text-primary);font-size:.84rem;font-weight:700;text-align:right}.puzzle-filter-summary-pill.is-dirty{border-color:#3b82f647;background:#3b82f614}.puzzle-toast{position:fixed;top:88px;right:24px;z-index:120;display:inline-flex;align-items:center;gap:.65rem;max-width:min(360px,calc(100vw - 32px));border:1px solid rgba(239,68,68,.28);background:#7f1d1deb;color:#fee2e2;border-radius:14px;padding:.9rem 1rem;font-size:.92rem;font-weight:600;box-shadow:0 18px 40px #00000047;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:puzzleToastIn .18s ease-out}@keyframes puzzleToastIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.puzzle-filter-btn{border:1px solid var(--color-border);border-radius:12px;padding:.85rem 1rem;font-weight:700;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.puzzle-filter-btn:hover{transform:translateY(-1px)}.puzzle-filter-btn.primary{flex:1;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border-color:#93c5fd4d}.puzzle-filter-btn.secondary{background:var(--color-surface);color:var(--color-text-secondary)}.puzzle-filter-btn.secondary:hover{background:var(--color-surface-hover);border-color:var(--puzzle-filter-theme-hover-border);color:var(--color-text-primary)}@media(max-width:1280px){.roadmap-hero,.roadmap-layout,.roadmap-stage-head{grid-template-columns:1fr}.roadmap-detail-panel{position:static}.custom-puzzle-layout{grid-template-columns:1fr;gap:1.25rem}.puzzle-filter-panel{position:static}.custom-puzzle-player .puzzle-content{justify-content:center}}@media(max-width:900px){.roadmap-page-container{padding:1rem .75rem 1.25rem}.roadmap-hero{padding:1rem;border-radius:22px;gap:1rem}.roadmap-hero-stats,.roadmap-detail-meta{grid-template-columns:1fr}.roadmap-journey-head{flex-direction:column}.roadmap-stage-section,.roadmap-detail-panel{padding:1rem;border-radius:22px}.roadmap-stage-path{padding-top:.55rem}.roadmap-stage-path:before{left:43px;transform:none}.roadmap-step{grid-template-columns:86px minmax(0,1fr);gap:.85rem;min-height:0;align-items:start}.roadmap-step>.roadmap-node{grid-column:1;justify-self:center;margin-top:.3rem}.roadmap-step>.roadmap-step-card{grid-column:2}.roadmap-step-spacer{display:none}.roadmap-node-shell{width:72px;height:72px}.roadmap-detail-title{font-size:1.28rem}.custom-puzzle-player{order:1}.puzzle-filter-panel{order:0}.custom-puzzle-page-container,.puzzle-play-container{padding:1rem 1rem var(--puzzle-bottom-safe-space)}.puzzle-play-container--daily{padding:.75rem .75rem var(--puzzle-bottom-safe-space)}.puzzle-content{grid-template-columns:1fr;transform:none}.puzzle-content--daily{display:flex}.puzzle-board-row--with-status{flex-direction:column}.puzzle-status-card--side{width:100%;flex:1 1 auto}.puzzle-status-card{padding:.78rem;gap:.6rem;border-radius:12px}.puzzle-info-row{padding-bottom:.5rem}.puzzle-info-label{font-size:.74rem}.puzzle-info-value{font-size:.88rem}.puzzle-nav-buttons{gap:.3rem}.puzzle-nav-buttons .ctrl-btn--nav{width:28px;height:28px;padding:4px;border-radius:8px}.theme-tag{padding:2px 5px;font-size:.62rem}.puzzle-board-stack,.puzzle-control-bar--board{max-width:100%}.puzzle-filter-actions{flex-direction:column}.puzzle-toast{left:16px;right:16px;top:80px;max-width:none}.custom-puzzle-page-container{padding:1rem .75rem var(--puzzle-bottom-safe-space)}.custom-puzzle-layout{gap:1rem}.custom-puzzle-player,.custom-puzzle-player .puzzle-content,.puzzle-filter-panel{width:100%}.puzzle-filter-panel{padding:.92rem;border-radius:14px;gap:.75rem}.puzzle-filter-panel.is-collapsed{padding:.8rem .85rem;gap:.65rem}.puzzle-filter-header{align-items:center}.puzzle-filter-title{font-size:1.08rem}.puzzle-filter-theme-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:.5rem}.puzzle-theme-option{width:100%;min-height:52px;height:52px}.puzzle-filter-btn{width:100%;min-height:42px}}@media(max-width:640px){.roadmap-page-container{padding:.9rem .625rem 1rem}.roadmap-hero-title{font-size:1.7rem}.roadmap-stat-card,.roadmap-step-card,.roadmap-detail-meta-item,.roadmap-detail-next{padding:.85rem}.roadmap-stage-title{font-size:1.16rem}.roadmap-step-card-top{flex-direction:column;align-items:flex-start}.roadmap-step-meta{gap:.45rem;flex-direction:column;align-items:flex-start}.custom-puzzle-page-container{padding:.9rem .625rem var(--puzzle-bottom-safe-space)}.custom-puzzle-layout{gap:.85rem}.puzzle-filter-panel{padding:.82rem;border-radius:12px}.puzzle-filter-panel.is-collapsed{padding:.72rem .78rem}.puzzle-filter-header{gap:.55rem}.puzzle-filter-title{font-size:1rem}.puzzle-filter-section{gap:.62rem;padding-top:.72rem}.puzzle-filter-section-head{flex-direction:column;align-items:flex-start}.puzzle-filter-value{font-size:.78rem}.puzzle-filter-toggle{min-height:32px;padding:.38rem .58rem;border-radius:10px;font-size:.72rem}.puzzle-theme-option{min-height:48px;height:48px;border-radius:10px}.puzzle-theme-option-icon{width:24px;height:24px}.puzzle-toast{top:74px;left:10px;right:10px;padding:.8rem .9rem;font-size:.88rem}}@media(max-width:480px){.roadmap-hero,.roadmap-stage-section,.roadmap-detail-panel{padding:.82rem;border-radius:18px}.roadmap-hero-title{font-size:1.5rem}.roadmap-step{grid-template-columns:72px minmax(0,1fr);gap:.7rem}.roadmap-stage-path:before{left:35px}.roadmap-node-shell{width:62px;height:62px;border-width:2px}.roadmap-step-title{font-size:.98rem}.roadmap-detail-title{font-size:1.14rem}.custom-puzzle-page-container{padding:.85rem .5rem var(--puzzle-bottom-safe-space)}.custom-puzzle-layout{gap:.75rem}.puzzle-filter-panel{padding:.66rem;gap:.56rem}.puzzle-filter-panel.is-collapsed{padding:.62rem;gap:.48rem}.puzzle-filter-header{align-items:flex-start;gap:.42rem}.puzzle-filter-eyebrow{margin-bottom:.12rem;font-size:.62rem;letter-spacing:.07em}.puzzle-filter-icon{width:28px;height:28px;border-radius:8px}.puzzle-filter-title{font-size:.9rem}.puzzle-filter-summary{gap:.42rem}.puzzle-filter-summary-pill{padding:.56rem .62rem;border-radius:10px}.puzzle-filter-summary-pill span{font-size:.64rem}.puzzle-filter-summary-pill strong{font-size:.74rem}.puzzle-filter-section{gap:.5rem;padding-top:.58rem}.puzzle-filter-label{font-size:.8rem}.puzzle-filter-value{font-size:.74rem}.puzzle-rating-bar{height:20px}.puzzle-rating-bar-track,.puzzle-rating-bar-range,.puzzle-rating-bar-input::-webkit-slider-runnable-track,.puzzle-rating-bar-input::-moz-range-track{height:4px}.puzzle-rating-bar-input::-webkit-slider-thumb{width:14px;height:14px;margin-top:-5px}.puzzle-rating-bar-input::-moz-range-thumb{width:14px;height:14px}.puzzle-filter-theme-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.puzzle-theme-option{min-height:40px;height:40px;border-radius:9px}.puzzle-theme-option-icon{width:18px;height:18px}.puzzle-filter-btn{padding:.58rem .72rem;min-height:38px;font-size:.82rem}.roadmap-page-container{padding:1rem 1rem 2rem;overflow-x:hidden}.roadmap-progress-section{position:relative;top:auto;right:auto;margin:0 auto 1.5rem;display:flex;justify-content:center;width:100%;z-index:10}.roadmap-stage-progress{width:100%;max-width:100%;min-width:0}.roadmap-stage-head{padding:1.25rem 1rem;width:100%;max-width:100%;position:relative;top:auto;margin-bottom:1.5rem;border-radius:16px}.roadmap-stage-path{padding:.5rem 0}.roadmap-stage-path:before{left:28px;transform:none}.roadmap-step{grid-template-columns:56px 1fr;gap:.75rem;min-height:auto;margin-bottom:1.5rem;align-items:center}.roadmap-step.is-left,.roadmap-step.is-right{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;justify-content:center;padding-bottom:2.5rem}.roadmap-step-spacer{display:none!important}.roadmap-node{flex-shrink:0;margin-top:0;order:1;width:auto;display:flex;justify-content:center;align-self:center;position:relative;z-index:5}.roadmap-node-shell{width:64px;height:64px;border-width:2px}.roadmap-step-card{width:100%;max-width:320px;order:2;margin-top:.5rem}.roadmap-stage-path:before{left:50%;transform:translate(-50%)}.roadmap-step-card.is-open{background:#1a1a2e;max-height:400px;padding:.85rem}[data-theme=light] .roadmap-step-card.is-open{background:#fff}.roadmap-step-title{font-size:.95rem}.roadmap-step-summary{font-size:.82rem}.roadmap-stage-title{font-size:1.1rem}.roadmap-stage-label{font-size:.68rem}}@media(max-width:1024px)and (min-width:769px){.roadmap-page-container{padding:1.5rem 3rem 2rem}}
