:root{--bg:#fbfbfa;--surface:#fff;--surface-2:#f4f4f2;--border:#e6e4df;--text:#1f1d1a;--text-dim:#6b6760;--accent:#e8732c;--accent-weak:#fbe9dc;--shimmer:#ff6a00;--link:#b22222;--radius:14px;--shadow:0 1px 2px #0000000a, 0 8px 24px #0000000d;--maxw:1100px;--gutter:clamp(16px, 5vw, 40px);--font-sans:"LXGW WenKai Screen", "LXGW WenKai", system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"Consolas", "JetBrains Mono", ui-monospace, monospace}.dark{--bg:#16181d;--surface:#1c1f26;--surface-2:#21252e;--border:#2c313b;--text:#e7e6e3;--text-dim:#9aa0ab;--accent:#f0b429;--accent-weak:#38301a;--shimmer:#ff9d3a;--link:#6ea8fe;--shadow:0 1px 2px #0000004d, 0 8px 24px #0006}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#80808066 transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#80808066;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#808080a6}::-webkit-scrollbar-corner{background:0 0}html{scroll-behavior:smooth;scroll-padding-top:72px}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;margin:0;line-height:1.7;display:flex}main{flex:1 0 auto}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}::view-transition-old(root){animation-duration:.35s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.35s;animation-timing-function:ease}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}button,input,textarea,select{font-family:inherit}a{color:var(--link);text-decoration:none}hr{border:0;border-top:1px solid var(--border)}.container{max-width:var(--maxw);padding:0 var(--gutter);margin:0 auto}.route-fade{animation:.28s both routeFade}@keyframes routeFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.route-fade{animation:none}}.site-header{z-index:50;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header .inner{height:60px;padding:0 var(--gutter);justify-content:space-between;align-items:center;gap:18px;display:flex}.nav-left{flex:1;align-items:center;gap:18px;min-width:0;display:flex}.nav-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.nav-burger{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.05rem;display:none}.brand{color:var(--text);white-space:nowrap;align-items:center;gap:6px;font-size:1.05rem;font-weight:700;display:inline-flex}.brand-icon{object-fit:contain;flex-shrink:0;width:1.25em;height:1.25em}.nav-links{flex-wrap:wrap;gap:4px;display:flex}.nav-links a{color:var(--text-dim);border-radius:8px;padding:6px 10px;font-size:.95rem}.nav-links a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-links a.active{color:var(--accent);background:var(--accent-weak)}.nav-group{display:inline-flex;position:relative}.nav-parent{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:3px;padding:6px 10px;font-family:inherit;font-size:.95rem;display:inline-flex}.nav-group:hover .nav-parent,.nav-group:focus-within .nav-parent{background:var(--surface-2);color:var(--text)}.nav-parent.active{color:var(--accent);background:var(--accent-weak)}.nav-parent .caret{opacity:.7;font-size:.7em}.nav-menu{background:var(--surface);border:1px solid var(--border);min-width:152px;box-shadow:var(--shadow);z-index:60;border-radius:10px;flex-direction:column;gap:2px;padding:6px;display:none;position:absolute;top:100%;left:0}.nav-group:hover .nav-menu,.nav-group:focus-within .nav-menu{display:flex}.nav-menu a{white-space:nowrap;color:var(--text-dim);border-radius:8px;padding:8px 12px;font-size:.92rem}.nav-menu a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-menu a.active{color:var(--accent);background:var(--accent-weak)}@media (min-width:1201px){.nav-links>a,.nav-parent{justify-content:center;align-items:center;min-width:96px;display:inline-flex}}.icon-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.05rem;display:inline-flex}.icon-btn:hover{border-color:var(--accent)}.puzzle-body img,.cipher-gallery img{cursor:zoom-in}.lightbox{z-index:200;cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;padding:24px;animation:.15s both routeFade;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;will-change:transform;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:6px;max-width:92vw;max-height:84vh;box-shadow:0 8px 40px #00000080}.lightbox-toolbar{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;border:1px solid #ffffff29;border-radius:12px;gap:6px;padding:8px 10px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.lightbox-toolbar button{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.05rem;display:inline-flex}.lightbox-toolbar button:hover{background:#ffffff42}.search-trigger{border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text-dim);cursor:pointer;white-space:nowrap;border-radius:10px;align-items:center;gap:8px;padding:0 10px 0 12px;font-size:.9rem;display:inline-flex}.search-trigger:hover{border-color:var(--accent)}.search-trigger kbd{font-family:var(--font-mono);border:1px solid var(--border);background:var(--surface-2);border-radius:5px;padding:1px 5px;font-size:.72rem}@media (max-width:720px){.search-trigger span{display:none}.search-trigger{justify-content:center;width:38px;padding:0}.search-trigger kbd{display:none}.search-trigger:before{content:"🔍"}}.search-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;animation:.15s both routeFade;display:flex;position:fixed;inset:0}.search-box{background:var(--surface);border:1px solid var(--border);width:100%;max-width:640px;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;max-height:70vh;display:flex;overflow:hidden}.search-input{color:var(--text);font-family:var(--font-sans);border:0;border-bottom:1px solid var(--border);background:0 0;outline:0;padding:16px 18px;font-size:1.1rem}.search-results{padding:6px;overflow-y:auto}.search-empty{text-align:center;color:var(--text-dim);padding:24px}.search-hit{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;padding:9px 12px;font-size:.95rem;display:flex}.search-hit.sel{background:var(--accent-weak)}.search-hit .hit-icon{font-size:1.1rem}.search-hit .hit-main{flex-direction:column;flex:1;min-width:0;display:flex}.search-hit .hit-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.search-hit .hit-sub{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.search-hit .hit-type{color:var(--text-dim);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.75rem}.search-foot{border-top:1px solid var(--border);color:var(--text-dim);gap:16px;padding:8px 14px;font-size:.78rem;display:flex}.page{padding-block:32px 80px;overflow-x:clip}h1.page-title{margin:0 0 6px;font-size:1.9rem}.muted{color:var(--text-dim)}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin:28px 0 12px;font-size:.8rem}.round-label{color:var(--text-dim);margin:14px 0 8px;font-size:.82rem;font-weight:600}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px;display:grid}.event-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow);color:var(--text);padding:16px 18px;transition:transform .15s,border-color .15s;display:block}.event-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-3px)}.event-card.is-disabled{opacity:.6;box-shadow:none;cursor:default}.event-card.is-disabled:hover{border-color:var(--border);transform:none}@media (prefers-reduced-motion:reduce){.event-card:hover{transform:none}}.event-card .ec-top{align-items:baseline;gap:8px;display:flex}.event-card .ec-name{flex:1;font-size:1.1rem;font-weight:700}.event-card .ec-title{background-image:linear-gradient(90deg, var(--text) 0%, var(--text) 40%, var(--shimmer) 50%, var(--text) 60%, var(--text) 100%);background-position:100% 0;background-repeat:no-repeat;background-size:220% 100%;-webkit-background-clip:text;background-clip:text;display:inline-block}.event-card:hover .ec-title{color:#0000;-webkit-text-fill-color:transparent;animation:2.5s linear infinite ec-title-shimmer}@keyframes ec-title-shimmer{0%{background-position:100% 0}80%{background-position:0 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.event-card:hover .ec-title{animation:none}}.event-card .ec-title.is-unlicensed{color:var(--text-dim);-webkit-text-fill-color:var(--text-dim);background-image:none}.event-card:hover .ec-title.is-unlicensed{color:var(--text-dim);-webkit-text-fill-color:var(--text-dim);animation:none}.event-card .ec-sub{color:var(--text-dim);margin-top:2px;font-size:.92rem}.event-card .ec-meta{color:var(--text-dim);flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:.85rem;display:flex}.event-card .ec-desc{color:var(--text-dim);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:10px;font-size:.88rem;display:-webkit-box;overflow:hidden}.event-card .ec-badge{background:var(--surface-2);color:var(--text-dim);white-space:nowrap;border-radius:999px;align-items:center;padding:1px 7px;font-size:.72rem;font-weight:600;display:inline-flex}.event-card .ec-topics{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.event-card .ec-topic{background:var(--accent-weak);color:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;padding:1px 8px;font-size:.74rem;font-weight:600;display:inline-flex}.event-card.ec-stub-nolink{cursor:default;box-shadow:none}.event-card.ec-stub-nolink:hover{border-color:var(--border);transform:none}.badge{background:var(--surface-2);color:var(--text-dim);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:.78rem;display:inline-flex}.center-note{text-align:center;color:var(--text-dim);padding:60px 0}.evt-time{white-space:nowrap;border-bottom:1px dashed var(--text-dim);cursor:help;outline:none;position:relative}.evt-time .evt-tz-hint{color:var(--text-dim);margin-left:2px;font-size:.82em}.evt-time .evt-local{background:var(--text);color:var(--bg);white-space:nowrap;box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:20;border-radius:7px;padding:5px 9px;font-size:.78rem;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.evt-time .evt-local:after{content:"";border:5px solid #0000;border-top-color:var(--text);position:absolute;top:100%;left:50%;transform:translate(-50%)}.evt-time:hover .evt-local,.evt-time:focus .evt-local{opacity:1;transform:translate(-50%)translateY(0)}.meta-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:6px;margin:16px 0;padding:14px 18px;font-size:.94rem;display:flex}details.spoiler{border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--surface);border-radius:8px;margin:.6em 0;padding:0 .9em;overflow:hidden}details.spoiler[open]{padding-bottom:.6em}details.spoiler>summary{cursor:pointer;background:var(--surface-2);list-style:revert;-webkit-user-select:none;user-select:none;margin:0 -.9em;padding:.5em .9em;font-weight:600}details.spoiler>summary:hover{filter:brightness(.97)}details.spoiler[open]>summary{border-bottom:1px solid var(--border);margin-bottom:.6em}.warn-box{border:1px solid var(--border);background:var(--surface);border-left:4px solid #f0a020;border-radius:8px;margin:12px 0;padding:10px 14px}.puzzle-layout{max-width:1180px;padding:28px var(--gutter) 80px;align-items:flex-start;gap:24px;margin:0 auto;display:flex}.puzzle-main{flex:1;min-width:0;max-width:820px}.puzzle-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.puzzle-title{flex:1;min-width:200px;margin:0;font-size:1.9rem;line-height:1.3}.puzzle-header .puzzle-actions{flex-shrink:0;margin:4px 0 0}.puzzle-sidebar{scrollbar-width:none;flex-shrink:0;align-self:flex-start;width:240px;max-height:calc(100vh - 96px);position:sticky;top:76px;overflow-y:auto}.puzzle-sidebar::-webkit-scrollbar{width:0}.puzzle-sidebar:hover{scrollbar-width:thin}.puzzle-sidebar:hover::-webkit-scrollbar{width:8px}.puzzle-sidebar::-webkit-scrollbar-button{display:none}.puzzle-sidebar.collapsed{width:auto}.ps-toolbar{flex-wrap:wrap;gap:6px;display:flex}.puzzle-sidebar.collapsed .ps-toolbar{flex-direction:column}.ps-toggle{border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;white-space:nowrap;border-radius:8px;padding:6px 10px;font-size:.88rem}.ps-toggle:hover{border-color:var(--accent)}.ps-nav{flex-direction:column;gap:2px;margin-top:8px;font-size:.9rem;display:flex}.ps-home{color:var(--text);border-radius:8px;padding:6px 8px;font-weight:600}.ps-home:hover{background:var(--surface-2)}.ps-home.active{color:var(--accent);background:var(--accent-weak)}.ps-group-h{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:6px 8px;font-weight:600;display:flex}.ps-group-h:hover{background:var(--surface-2)}.ps-caret{color:var(--text-dim);font-size:.75rem}.ps-list{flex-direction:column;margin:0 0 4px;padding:0 0 0 14px;list-style:none;display:flex}.ps-item a{color:var(--text-dim);border-left:2px solid #0000;border-radius:8px;padding:5px 8px;display:block}.ps-item a:hover{background:var(--surface-2);color:var(--text)}.ps-item.active a{color:var(--accent);background:var(--accent-weak);border-left-color:var(--accent);font-weight:600}.ps-item.disabled{color:var(--text-dim);opacity:.7;padding:5px 8px;font-size:.88rem}.ps-item.unlicensed a{opacity:.7}.ps-empty{padding:4px 8px}.puzzle-layout.has-toc{max-width:1280px}.event-toc{flex-direction:column;flex-shrink:0;align-self:flex-start;gap:2px;width:150px;font-size:.9rem;display:flex;position:sticky;top:76px}.event-toc-title{color:var(--text-dim);letter-spacing:.04em;padding:4px 10px;font-size:.78rem}.event-toc-link{text-align:left;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;border-radius:8px;padding:6px 10px;font-size:.9rem}.event-toc-link:hover{background:var(--surface-2);color:var(--text)}.event-toc-link.active{color:var(--accent);background:var(--accent-weak);border-left-color:var(--accent);font-weight:600}.evt-section{scroll-margin-top:80px}@media (max-width:1024px){.event-toc{display:none}.puzzle-layout.has-toc{max-width:1180px}}@media (max-width:820px){.puzzle-layout{flex-direction:column}.puzzle-sidebar{width:100%;max-height:none;position:static}.puzzle-sidebar.collapsed .ps-toolbar{flex-direction:row}.puzzle-main{width:100%;max-width:none}}.list-layout{max-width:calc(var(--maxw) + 204px);padding:32px var(--gutter) 0;align-items:flex-start;gap:24px;margin:0 auto;display:flex}.list-main{flex:1;min-width:0;padding-bottom:80px;overflow-x:clip}.page-toc{scrollbar-width:none;flex-shrink:0;align-self:flex-start;width:180px;max-height:calc(100vh - 96px);position:sticky;top:76px;overflow-y:auto}.page-toc::-webkit-scrollbar{width:0}.page-toc:hover{scrollbar-width:thin}.page-toc:hover::-webkit-scrollbar{width:8px}.page-toc::-webkit-scrollbar-button{display:none}.page-toc.collapsed{overflow:visible}.page-toc-toggle{border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;white-space:nowrap;border-radius:8px;padding:6px 10px;font-size:.88rem}.page-toc-toggle:hover{border-color:var(--accent)}.page-toc-nav{flex-direction:column;gap:2px;margin-top:8px;font-size:.9rem;display:flex}.page-toc-top,.page-toc-link{text-align:left;width:100%;color:var(--text-dim);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-left:2px solid #0000;border-radius:8px;padding:6px 10px;font-size:.9rem;display:block;overflow:hidden}.page-toc-top{color:var(--text);font-weight:600}.page-toc-top:hover,.page-toc-link:hover{background:var(--surface-2);color:var(--text)}.page-toc-top.active,.page-toc-link.active{color:var(--accent);background:var(--accent-weak);border-left-color:var(--accent);font-weight:600}.toc-section{scroll-margin-top:80px}@media (max-width:820px){.list-layout{flex-direction:column}.list-main{width:100%}.page-toc{width:100%;max-height:none;position:static;overflow:visible}}.info-fab{z-index:90;border:1px solid var(--accent);background:var(--surface);height:48px;box-shadow:var(--shadow);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 20px;font-size:.95rem;font-weight:600;transition:transform .15s,background .15s;display:inline-flex;position:fixed;bottom:22px;right:22px}.info-fab:hover{background:var(--accent-weak);transform:translateY(-2px)}.info-overlay{z-index:110;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0006;justify-content:center;align-items:center;padding:16px;animation:.15s both routeFade;display:flex;position:fixed;inset:0}.info-modal{background:var(--surface);border:1px solid var(--border);width:100%;max-width:720px;max-height:86vh;box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.info-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.info-body{padding:16px 18px;overflow-y:auto}.sc-milestone{border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--surface);border-radius:8px;margin:8px 0;padding:10px 14px}.sc-milestone p{margin:0}.puzzle-actions{flex-wrap:wrap;gap:8px;margin:14px 0 4px;display:flex}.pa-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.9rem}.pa-btn:hover{border-color:var(--accent)}.pa-btn.on{background:var(--accent-weak);border-color:var(--accent)}.selfcheck{margin-top:6px}.sc-form{gap:8px;margin-bottom:8px;display:flex}.sc-input{border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.95rem;font-family:var(--font-sans);border-radius:8px;flex:1;padding:8px 12px}.sc-input:focus{border-color:var(--accent);outline:none}.sc-btn{border:1px solid var(--accent);background:var(--accent-weak);color:var(--text);cursor:pointer;border-radius:8px;padding:0 18px;font-weight:600}.sc-ok{color:#30a46c;margin-bottom:8px}.sc-no{color:#e5484d;margin-bottom:8px}.settings-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.toggle-row{align-items:center;gap:16px;padding:14px 18px;display:flex}.toggle-row+.toggle-row{border-top:1px solid var(--border)}.tr-text{flex:1;min-width:0}.tr-label{font-weight:600}.tr-desc{color:var(--text-dim);margin-top:2px;font-size:.84rem}.switch{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:999px;flex-shrink:0;width:44px;height:26px;padding:0;transition:background .15s,border-color .15s;position:relative}.switch.on{background:var(--accent);border-color:var(--accent)}.switch-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.switch.on .switch-knob{transform:translate(18px)}.me-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:16px 0;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:16px}.stat-n{color:var(--accent);font-size:1.9rem;font-weight:800}.stat-l{color:var(--text-dim);margin-top:2px;font-size:.85rem}.ach-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.ach{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);opacity:.62;align-items:flex-start;gap:12px;padding:14px;display:flex}.ach.on{opacity:1;border-color:var(--accent)}.ach-icon{font-size:1.6rem;line-height:1}.ach-name{font-weight:700}.ach-desc{color:var(--text-dim);margin-top:2px;font-size:.84rem}.ach-bar{background:var(--surface-2);border-radius:999px;height:6px;margin-top:8px;overflow:hidden}.ach-bar>span{background:var(--accent);height:100%;display:block}.me-list{columns:260px;margin:0;line-height:2}.ach-toasts{z-index:120;flex-direction:column;gap:10px;display:flex;position:fixed;top:72px;right:18px}.ach-toast{background:var(--surface);border:1px solid var(--accent);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:12px;padding:12px 16px;animation:.25s both routeFade;display:flex;position:relative;overflow:hidden}.att-bar{background:var(--accent);transform-origin:0;width:100%;height:3px;animation-name:attBar;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;top:0;left:0}@keyframes attBar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.ach-toast .att-icon{font-size:1.6rem}.ach-toast .att-text{flex-direction:column;font-size:.9rem;display:flex}.ach-toast .att-text b{color:var(--accent);font-size:.78rem}.cloud-badge{border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;border-radius:10px;align-items:center;gap:6px;max-width:140px;padding:0 12px;font-size:.88rem;display:inline-flex;overflow:hidden}.cloud-badge:hover{border-color:var(--accent)}.cb-dot{background:var(--text-dim);border-radius:50%;flex-shrink:0;width:8px;height:8px}.cb-synced .cb-dot{background:#30a46c}.cb-syncing .cb-dot{background:#f0a020;animation:1s ease-in-out infinite cbPulse}.cb-offline .cb-dot{background:#e5484d}@keyframes cbPulse{50%{opacity:.3}}@media (max-width:1200px){.cloud-badge{gap:0;max-width:44px;padding:0 11px;font-size:0}}.account-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:14px 0;padding:16px 18px;display:flex}.account-actions{gap:8px;display:flex}.account-who{align-items:center;gap:12px;display:flex}.account-avatar{border-radius:50%;width:42px;height:42px}.account-status{color:var(--text-dim);align-items:center;gap:6px;margin-top:3px;font-size:.82rem;display:inline-flex}.account-card-col{flex-direction:column;align-items:stretch}.account-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.account-providers{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.provider-chip{border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.85rem;display:inline-flex}.provider-chip.on{border-color:var(--accent);background:var(--accent-weak)}.link-btn{color:var(--link);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:.82rem}.link-btn:hover{text-decoration:underline}.link-btn:disabled{opacity:.5;cursor:default}.comments{margin-top:8px}.cm-form{margin-bottom:16px}.cm-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font-family:var(--font-sans);resize:vertical;border-radius:10px;padding:10px 12px;font-size:.95rem}.cm-input:focus{border-color:var(--accent);outline:none}.cm-form-row{align-items:center;gap:12px;margin-top:8px;display:flex}.cm-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.cm-item{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:12px 14px}.cm-head{align-items:center;gap:8px;font-size:.9rem;display:flex}.cm-avatar{border-radius:50%;width:24px;height:24px}.cm-time{font-size:.78rem}.cm-del{color:var(--text-dim);cursor:pointer;background:0 0;border:0;margin-left:auto}.cm-del:hover{color:#e5484d}.cm-text{white-space:pre-wrap;word-break:break-word;margin-top:6px}.sg-reply{border-left:3px solid var(--accent);background:var(--accent-weak);white-space:pre-wrap;word-break:break-word;border-radius:0 8px 8px 0;margin-top:8px;padding:8px 12px;font-size:.9rem}.site-footer{border-top:1px solid var(--border);color:var(--text-dim);margin-top:40px;padding:28px 0;font-size:.85rem}.site-footer .inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 18px;display:flex}.site-footer .footer-right{align-items:center;gap:16px;display:inline-flex}.footer-icon{color:var(--text-dim);transition:color .15s;display:inline-flex}.footer-icon svg{fill:currentColor;width:22px;height:22px}.footer-icon:hover{color:var(--text)}@media (max-width:1200px){.site-header .inner{gap:10px}.nav-burger{display:inline-flex}.nav-left{gap:10px}.brand{text-overflow:ellipsis;font-size:.98rem;overflow:hidden}.nav-links{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow);flex-direction:column;gap:2px;max-height:calc(100vh - 60px);padding:8px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.nav-links.open{display:flex}.nav-links a{border-radius:8px;padding:10px 12px;font-size:1rem}.nav-group{display:block}.nav-parent{width:100%;color:var(--text);cursor:default;justify-content:flex-start;padding:10px 12px;font-size:1rem;font-weight:600}.nav-parent .caret{display:none}.nav-menu{min-width:0;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0 0 4px 12px;display:flex;position:static}}@media (max-width:600px){.page{padding-block:22px 64px}h1.page-title,.puzzle-title{font-size:1.5rem}.card-grid{grid-template-columns:1fr}.puzzle-layout{padding:20px var(--gutter) 64px;gap:16px}.info-fab{bottom:14px;right:14px}.me-stats{grid-template-columns:repeat(2,1fr)}.puzzle-body table{width:fit-content;max-width:100%;display:block;overflow-x:auto}}.tools-fab{bottom:82px}.qt-panel{z-index:95;background:var(--surface);border:1px solid var(--border);width:min(420px,100vw - 24px);max-height:calc(100vh - 100px);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;position:fixed;top:84px;left:16px;overflow:hidden}.qt-panel .info-body{flex:1;min-height:0}.qt-drag{cursor:move;touch-action:none}.qt-panel--card{width:max-content;min-width:420px;max-width:calc(100vw - 24px)}.qt-panel--card .info-body{overflow:auto}.qt-scratch{resize:vertical;border:1px solid var(--border);background:var(--surface);width:100%;min-height:220px;color:var(--text);font-family:var(--font-sans);border-radius:8px;padding:10px 12px;font-size:.95rem;line-height:1.7}.qt-scratch:focus{border-color:var(--accent);outline:none}.qt-card-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.qt-card-toolbar label{color:var(--text-dim);align-items:center;gap:6px;font-size:.88rem;display:inline-flex}.qt-card-toolbar input{border:1px solid var(--border);background:var(--surface);width:4em;color:var(--text);font-family:var(--font-mono);border-radius:8px;padding:5px 8px}.qt-card-grid{gap:4px;width:max-content;display:grid}.qt-card-cell{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:inline-flex;position:relative}.qt-card-cell.on{border-color:var(--accent);background:var(--accent-weak);box-shadow:inset 0 0 0 1px var(--accent)}.qt-card-cell:focus{outline:none}.qt-card-cell:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.qt-card-num{color:var(--accent);font-size:.6rem;font-weight:600;line-height:1;position:absolute;top:1px;left:2px}.qt-head-actions{gap:6px;display:inline-flex}.qt-select{display:inline-block;position:relative}.qt-select-trigger{color:var(--text);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:6px 10px 6px 12px;font-family:inherit;font-size:1rem;font-weight:700;transition:border-color .15s,background .15s,box-shadow .15s;display:inline-flex}.qt-select-trigger:hover{border-color:var(--accent);background:var(--surface)}.qt-select-trigger:focus-visible,.qt-select-trigger.open{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:none}.qt-select-chevron{color:var(--text-dim);transition:transform .18s,color .18s}.qt-select-trigger.open .qt-select-chevron{color:var(--accent);transform:rotate(180deg)}.qt-select-menu{z-index:30;background:var(--surface);border:1px solid var(--border);min-width:max(100%,9em);box-shadow:var(--shadow);transform-origin:0 0;border-radius:12px;flex-direction:column;gap:2px;padding:5px;animation:.14s qt-select-pop;display:flex;position:absolute;top:calc(100% + 6px);left:0}@keyframes qt-select-pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.qt-select-option{text-align:left;width:100%;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:7px 10px;font-family:inherit;font-size:.95rem;font-weight:500;transition:background .12s,color .12s;display:flex}.qt-select-option.active{background:var(--surface-2)}.qt-select-option.selected{color:var(--accent);font-weight:700}.qt-select-option.selected.active{background:var(--accent-weak)}.qt-select-check{color:var(--accent);flex:none}.qt-tabs{flex-wrap:wrap;gap:6px;margin:8px 0 12px;display:flex}.qt-tab{border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;border-radius:999px;padding:5px 14px;font-size:.9rem}.qt-tab.on{border-color:var(--accent);background:var(--accent-weak);color:var(--text)}.qt-result{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;display:flex}.qt-result-text{letter-spacing:1px;word-break:break-all;flex:1;min-width:0;font-size:1.15rem;font-weight:700}.qt-pending{color:var(--accent)}.qt-builder{flex-direction:column;gap:12px;display:flex}@media (max-width:600px){.tools-fab{bottom:70px}}.qt-pad{flex-direction:column;gap:10px;display:flex}.qt-keys{flex-wrap:wrap;gap:8px;display:flex}.qt-caesar-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);font-size:.95rem;font-family:var(--font-sans);border-radius:8px;padding:8px 12px}.qt-caesar-input:focus{border-color:var(--accent);outline:none}.qt-caesar-range{gap:12px;display:flex}.qt-caesar-range label{color:var(--text-dim);align-items:center;gap:6px;font-size:.88rem;display:inline-flex}.qt-caesar-range input{border:1px solid var(--border);background:var(--surface);width:5em;color:var(--text);font-family:var(--font-mono);border-radius:8px;padding:5px 8px}.qt-caesar-rows{border:1px solid var(--border);border-radius:8px;max-height:240px;overflow-y:auto}.qt-caesar-rows>.muted{padding:10px 12px}.qt-caesar-row{cursor:pointer;font-family:var(--font-mono);gap:10px;padding:5px 10px;font-size:.9rem;display:flex}.qt-caesar-row+.qt-caesar-row{border-top:1px solid var(--border)}.qt-caesar-row:hover{background:var(--surface-2)}.qt-caesar-n{color:var(--accent);text-align:right;flex-shrink:0;width:2.6em}.qt-caesar-t{word-break:break-all;white-space:pre-wrap}.braille-cell{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;width:fit-content;padding:8px;display:inline-flex}.braille-row{flex-direction:row;gap:10px;display:flex}.braille-dot{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:50%;width:26px;height:26px}.braille-dot.on{background:var(--accent);border-color:var(--accent)}.pigpen-dual{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.pigpen-grid{grid-template-columns:repeat(3,40px);gap:4px;width:fit-content;display:grid}.pigpen-cell{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.pigpen-cell.on{border-color:var(--accent);background:var(--accent-weak)}.pigpen-cell-empty{cursor:default;pointer-events:none;background:0 0;border-color:#0000}.board-grid{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.board-cell{aspect-ratio:1;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:.92rem;font-weight:600;display:inline-flex}.board-cell.on{border-color:var(--accent);background:var(--accent-weak);color:var(--accent)}.qt-semaphore{align-items:center;gap:18px;display:flex}.sem-grid{grid-template-rows:repeat(3,34px);grid-template-columns:repeat(3,34px);gap:4px;display:grid}.sem-dir{border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;border-radius:8px;font-size:.7rem}.sem-dir.on{border-color:var(--accent);background:var(--accent-weak);color:var(--accent)}.sem-center{background:0 0}.qt-nm{gap:12px}.qt-nm-search{align-items:center;gap:8px;display:flex}.qt-nm-input{border:1px solid var(--border);background:var(--surface);min-width:0;color:var(--text);font-size:.95rem;font-family:var(--font-mono);border-radius:8px;flex:1;padding:8px 12px}.qt-nm-input:focus{border-color:var(--accent);outline:none}.qt-nm-go{white-space:nowrap}.qt-nm-note{font-size:.85rem}.qt-nm-err{color:var(--accent)}.qt-nm-results{flex-direction:column;gap:1px;min-height:120px;max-height:58vh;padding:2px;display:flex;overflow:auto}.qt-nm-item{text-align:left;width:100%;color:var(--text);cursor:pointer;line-height:1.4;font-family:var(--font-mono);background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:baseline;gap:12px;padding:2px 8px;transition:background .12s,color .12s;display:flex}.qt-nm-item:hover,.qt-nm-item.copied{background:var(--accent-weak);color:var(--accent)}.qt-nm-word{word-break:break-all;min-width:0}.qt-nm-weight{color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:.78rem;line-height:1}.qt-nm-item:hover .qt-nm-weight,.qt-nm-item.copied .qt-nm-weight{color:var(--accent)}.qt-nm-pager{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:6px;padding-top:8px;display:flex}.qt-nm-page{color:var(--text-dim);white-space:nowrap;font-size:.82rem}.qt-nm-help-overlay{z-index:120;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:flex-start;padding:10vh 16px 16px;animation:.15s both routeFade;display:flex;position:fixed;inset:0}.qt-nm-help{background:var(--surface);border:1px solid var(--border);width:100%;max-width:max(50vw,440px);max-height:80vh;box-shadow:var(--shadow);border-radius:14px;padding:16px 18px;overflow:auto}.qt-nm-help-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.qt-nm-help-intro{margin:0 0 12px;font-size:.85rem;line-height:1.6}.qt-nm-help-tbl{border-collapse:collapse;width:100%}.qt-nm-help-tbl th{text-align:left;vertical-align:top;white-space:nowrap;padding:4px 12px 4px 0;font-weight:600}.qt-nm-help-tbl td{color:var(--text-dim);padding:4px 0;font-size:.9rem}.qt-nm-help-tbl code{font-family:var(--font-mono);background:var(--surface-2);border-radius:5px;padding:1px 5px;font-size:.85rem}.qt-nm-help-ex-title{margin:14px 0 6px;font-size:.9rem;font-weight:700}.timeline{margin:16px 0 0;padding:0;list-style:none}.timeline-item{padding:0 0 22px 28px;position:relative}.timeline-item:before{content:"";background:var(--border);width:2px;height:100%;position:absolute;top:9px;left:5px}.timeline-item:last-child{padding-bottom:0}.timeline-item:last-child:before{display:none}.timeline-dot{background:var(--surface);border:2px solid var(--accent);box-sizing:border-box;border-radius:50%;width:12px;height:12px;position:absolute;top:3px;left:0}.timeline-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.timeline-date{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.9rem}.timeline-content{margin:6px 0 0;line-height:1.65}.changelog-badge{--badge-hue:142;--badge-l:38%;white-space:nowrap;color:hsl(var(--badge-hue) 60% var(--badge-l));background:hsl(var(--badge-hue) 70% 50% / .13);border:1px solid hsl(var(--badge-hue) 55% 50% / .3);border-radius:999px;padding:1px 10px;font-size:.76rem;font-weight:600;line-height:1.55;display:inline-block}.dark .changelog-badge{--badge-l:72%}
.puzzle-body{word-wrap:break-word;overflow-wrap:anywhere;max-width:100%;font-size:1rem;line-height:1.8;overflow-x:auto}.puzzle-body>:first-child{margin-top:0}.puzzle-body h2,.puzzle-body h3,.puzzle-body h4{scroll-margin-top:72px;line-height:1.4}.puzzle-body h2{border-bottom:1px solid var(--border);margin-top:1.8em;padding-bottom:.2em}.puzzle-body a.headerlink{opacity:0;margin-left:.4em;font-weight:400;text-decoration:none;transition:opacity .15s}.puzzle-body :hover>a.headerlink{opacity:.5}.puzzle-body img{border-radius:8px;max-width:100%;height:auto}.puzzle-body figure{text-align:center;margin:1em 0}.puzzle-body figcaption{color:var(--text-dim);font-size:.85rem}.puzzle-body iframe{aspect-ratio:16/9;border:0;border-radius:8px;width:100%;max-width:100%}.puzzle-body audio,.puzzle-body video{max-width:100%}.puzzle-body table{border-collapse:collapse;margin:1em auto;font-size:.92rem}.puzzle-body th,.puzzle-body td{border:1px solid var(--border);padding:6px 10px}.puzzle-body thead th{background:var(--surface-2)}@media (max-width:820px){.puzzle-body :is([class*=container],[class*=wrapper],[class*=grid],[class*=board]){max-width:100%!important;overflow-x:auto!important}}.admonition,details.admonition,.puzzle-body details{--adm:var(--accent)}.admonition{border:1px solid var(--border);border-left:4px solid var(--adm);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;margin:1.1em 0;padding:.6em .9em;overflow:hidden}.admonition-title{background:color-mix(in srgb, var(--adm) 14%, var(--surface-2));margin:-.6em -.9em .6em;padding:.5em .9em;font-weight:700}.admonition>:last-child{margin-bottom:0}.admonition>:first-child:not(.admonition-title){margin-top:0}details.admonition,.puzzle-body details{border:1px solid var(--border);border-left:4px solid var(--adm);background:var(--surface);box-shadow:var(--shadow);border-radius:8px;margin:1.1em 0;padding:0 .9em;overflow:hidden}details.admonition[open],.puzzle-body details[open]{padding-bottom:.6em}details.admonition>summary,.puzzle-body details>summary{background:color-mix(in srgb, var(--adm) 14%, var(--surface-2));cursor:pointer;list-style:revert;-webkit-user-select:none;user-select:none;margin:0 -.9em;padding:.5em .9em;font-weight:700}details.admonition>summary:hover,.puzzle-body details>summary:hover{filter:brightness(.97)}details.admonition[open]>summary,.puzzle-body details[open]>summary{border-bottom:1px solid var(--border);margin-bottom:.6em}details.admonition>:last-child,.puzzle-body details>:last-child{margin-bottom:0}.admonition.note,details.note{--adm:#448aff}.admonition.abstract,.admonition.summary,.admonition.tldr,details.abstract,details.summary,details.tldr{--adm:#00b0ff}.admonition.info,.admonition.todo,details.info,details.todo{--adm:#00b8d4}.admonition.tip,.admonition.hint,.admonition.important,details.tip,details.hint,details.important{--adm:#00bfa5}.admonition.success,.admonition.check,.admonition.done,details.success,details.check,details.done{--adm:#00c853}.admonition.question,.admonition.help,.admonition.faq,details.question,details.help,details.faq{--adm:#64dd17}.admonition.warning,.admonition.caution,.admonition.attention,details.warning,details.caution,details.attention{--adm:#ff9100}.admonition.failure,.admonition.fail,.admonition.missing,details.failure,details.fail,details.missing{--adm:#ff5252}.admonition.danger,.admonition.error,details.danger,details.error{--adm:#ff1744}.admonition.bug,details.bug{--adm:#f50057}.admonition.example,details.example{--adm:#7c4dff}.admonition.quote,.admonition.cite,details.quote,details.cite{--adm:#9e9e9e}.puzzle-body .highlight,.puzzle-body pre{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;overflow-x:auto}.puzzle-body pre{margin:1em 0;padding:.8em 1em}.puzzle-body .highlight pre{border:0;margin:0}.puzzle-body code{font-family:var(--font-mono);font-size:.88em}.puzzle-body :not(pre)>code{background:var(--surface-2);border-radius:4px;padding:.1em .35em}.puzzle-body .highlight .linenos,.puzzle-body .highlight .linenom{color:var(--text-dim);-webkit-user-select:none;user-select:none}.puzzle-body .tabbed-set{margin:1.1em 0}.puzzle-body .tabbed-set>input{display:none}.puzzle-body .tabbed-labels{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;display:flex}.puzzle-body .tabbed-labels>label{cursor:pointer;color:var(--text-dim);border-bottom:2px solid #0000;padding:6px 12px}.puzzle-body .tabbed-content{padding-top:.8em}.puzzle-body mark{background:var(--accent-weak);color:inherit;border-radius:3px;padding:0 2px}.puzzle-body .keys kbd{border:1px solid var(--border);font-family:var(--font-mono);border-bottom-width:2px;border-radius:4px;padding:0 4px;font-size:.82em}.img-skel{vertical-align:middle;max-width:100%;line-height:0;display:inline-block;position:relative}.img-skel.is-loading,.img-skel.is-error{border:1px solid var(--border);border-radius:8px;min-width:min(180px,100%);min-height:140px}.img-skel.is-loading{background-color:var(--surface-2);background-image:linear-gradient(100deg, var(--surface-2) 30%, var(--border) 50%, var(--surface-2) 70%);background-repeat:no-repeat;background-size:200% 100%;animation:1.4s ease-in-out infinite img-skel-shimmer}.img-skel.is-error{background:var(--surface-2)}.img-skel.is-loading img,.img-skel.is-error img{opacity:0}.img-skel.is-loaded img{opacity:0;animation:.3s forwards img-skel-fade-in}.img-skel-tip{white-space:nowrap;color:var(--text-dim);background:color-mix(in srgb, var(--surface-2) 80%, transparent);pointer-events:none;border-radius:999px;padding:.35em .8em;font-size:.8rem;line-height:1.2;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.img-skel.is-loaded .img-skel-tip{display:none}.img-skel.is-error .img-skel-tip{pointer-events:auto;cursor:pointer}@keyframes img-skel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes img-skel-fade-in{to{opacity:1}}@media (prefers-reduced-motion:reduce){.img-skel.is-loading{background-image:none;background:var(--surface-2);animation:none}.img-skel.is-loaded img{opacity:1;animation:none}}
