/* === home.bundle.css · 自动生成，勿手工编辑 ===
   层叠顺序与原 <link> 顺序完全一致:
   1. portal.bundle.css
   2. discovery-nojs.css
   3. catalog-usability.css
   4. usability-fixes.css
   5. search-engines.css
   6. clarity.css
   7. home-refinement.css
   回滚：恢复 index.html 的 7 个 link 即可，源文件均保留。
*/

/* ===== portal.bundle.css ===== */
:root{--bg:var(--qz-canvas,#f7f8fa);--surface:var(--qz-surface,#fcfcfd);--surface-soft:var(--qz-surface-muted,#f0f2f5);--ink:var(--qz-ink,#17191d);--ink-2:var(--qz-ink-secondary,#555b66);--ink-3:var(--qz-ink-tertiary,#747b87);--line:var(--qz-line,rgba(23,25,29,.1));--line-strong:var(--qz-line-strong,rgba(23,25,29,.18));--blue:var(--qz-accent,#2563eb);--blue-soft:var(--qz-accent-soft,rgba(8,117,225,.09));--danger:var(--qz-danger,#b42318);--shadow:var(--qz-shadow-float,0 12px 30px rgba(40,47,58,.1));--max:1080px;--radius:var(--qz-radius-surface,14px);--nav-h:var(--qz-header-height,64px);font-family:var(--qz-font-sans);color-scheme:light}html.dark{--bg:var(--qz-canvas,#111318);--surface:var(--qz-surface,#171a20);--surface-soft:var(--qz-surface-muted,#20242c);--ink:var(--qz-ink,#f1f3f6);--ink-2:var(--qz-ink-secondary,#b8bec8);--ink-3:var(--qz-ink-tertiary,#929aa7);--line:var(--qz-line,rgba(241,243,246,.11));--line-strong:var(--qz-line-strong,rgba(241,243,246,.2));--blue:var(--qz-accent,#58a8f7);--blue-soft:var(--qz-accent-soft,rgba(88,168,247,.12));--shadow:var(--qz-shadow-float,0 14px 34px rgba(4,6,10,.38));color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}html.is-scroll-restoring body{visibility:hidden}body{margin:0;background:var(--bg);color:var(--ink);font-size:var(--qz-font-size-14);line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.35}img,svg{display:block}::selection{background:var(--blue);color:#fff}*:focus-visible{outline:2px solid color-mix(in srgb,var(--blue) 72%,transparent);outline-offset:2px}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:var(--qz-radius-pill,999px)}.skip-link{position:fixed;left:14px;top:10px;z-index:500;transform:translateY(-160%);padding:10px 14px;border-radius:var(--qz-radius-control,10px);background:var(--ink);color:var(--bg);font-weight:600}.skip-link:focus{transform:none}.hero{min-height:376px;padding:104px 20px 58px;display:flex;flex-direction:column;align-items:center;text-align:center}.hero h1{margin:0;font-size:clamp(38px,5.2vw,64px);line-height:1.05;letter-spacing:-.04em;font-weight:700;text-wrap:balance}.hero h1 span{display:inline}.hero .sub{margin:18px 0 30px;color:var(--ink-2);font-size:var(--qz-font-size-16)}.hero .sub b{color:var(--blue);font-weight:600;font-variant-numeric:tabular-nums}.big-search{position:relative;width:min(720px,100%);height:64px;display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:var(--qz-radius-lg,18px);background:var(--surface);box-shadow:0 12px 34px #14141112;transition:border-color var(--qz-duration,.22s),box-shadow var(--qz-duration,.22s),transform var(--qz-duration,.22s)}.big-search{outline:0}.big-search:focus-within{border-color:color-mix(in srgb,var(--blue) 45%,var(--line-strong));background:color-mix(in srgb,var(--surface) 97%,var(--blue));box-shadow:0 4px 16px #1414110f,inset 0 0 0 .5px color-mix(in srgb,var(--blue) 20%,transparent);transform:translateY(-1px)}.big-search .mag{width:54px;display:grid;place-items:center;color:var(--ink-3);flex:0 0 auto;transition:color var(--qz-duration-fast,.14s) ease,transform .22s var(--qz-ease-spring,cubic-bezier(.2,.8,.2,1))}.big-search:focus-within .mag{color:var(--blue);transform:scale(1.04)}.big-search input{min-width:0;flex:1;height:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:var(--qz-font-size-16)}.big-search input:focus-visible{outline:0}.big-search input::placeholder{color:var(--ink-3)}#q::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.big-search .clr{width:44px;height:44px;margin-right:2px;display:none;place-items:center;border-radius:50%;color:var(--ink-3);font-size:var(--qz-font-size-20)}.big-search .clr.show{display:grid}.big-search .clr:hover{background:var(--surface-soft);color:var(--ink)}.big-search .kbd{margin-right:14px;padding:2px 7px;border:1px solid var(--line);border-radius:var(--qz-radius-control,10px);color:var(--ink-3);font-size:var(--qz-font-size-14)}.search-suggest{z-index:30;width:min(700px,calc(100% - 40px));margin-top:8px;padding:7px;display:none;gap:3px;flex-wrap:wrap;border:1px solid var(--line);border-radius:var(--qz-radius-surface,14px);background:var(--surface);box-shadow:var(--shadow)}.search-suggest.show{display:flex}.search-suggest button{min-height:40px;padding:0 13px;border-radius:var(--qz-radius-control,10px);color:var(--ink-2)}.search-suggest button:hover{background:var(--surface-soft);color:var(--ink)}.chips{max-width:100%;min-height:44px;margin-top:12px;display:flex;align-items:center;justify-content:center;gap:2px;overflow:auto;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{min-width:max-content;min-height:44px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--qz-radius-control,10px);color:var(--ink-3);font-size:var(--qz-font-size-14)}.chip:hover{background:var(--surface-soft);color:var(--ink)}.hero-beginner-link{min-height:44px;margin-top:5px;padding:0 8px;display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-size:var(--qz-font-size-14);font-weight:600}.hero-beginner-link span{color:var(--blue);transition:transform var(--qz-duration-fast,.14s)}.hero-beginner-link:hover{color:var(--blue)}.hero-beginner-link:hover span{transform:translate(3px)}.directory-portal,.featured,.bundles-sec,.tp-bar,.directory-toolbar,.page{max-width:var(--max);margin-left:auto;margin-right:auto}.directory-portal,.featured,.bundles-sec{padding:0 20px}.directory-portal{margin-top:18px;scroll-margin-top:82px}.portal-head,.f-head,.b-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.portal-head h2,.f-head h2,.b-head h2,.directory-heading h2{margin:0;color:var(--ink);font-size:var(--qz-font-size-20);line-height:1.2;letter-spacing:-.02em}.portal-head p,.f-head span,.b-head>div>span,.directory-heading p{margin:5px 0 0;color:var(--ink-3);font-size:var(--qz-font-size-14)}.portal-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}.portal-card{position:relative;min-width:0;min-height:96px;padding:11px 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:var(--qz-radius-surface,14px);background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 96%,var(--blue-soft)));text-align:center;box-shadow:0 1px color-mix(in srgb,var(--ink) 4%,transparent);transition:border-color var(--qz-duration-fast,.14s),background-color var(--qz-duration-fast,.14s),color var(--qz-duration-fast,.14s),transform var(--qz-duration-fast,.14s),box-shadow var(--qz-duration-fast,.14s)}.portal-icon{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:var(--qz-radius-surface,14px);background:var(--blue-soft);color:var(--blue);transition:transform .22s cubic-bezier(.2,.8,.2,1)}.portal-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.portal-card strong{min-width:0;max-width:100%;overflow-wrap:anywhere;font-size:var(--qz-font-size-14);font-weight:600;line-height:1.25}.portal-card small{color:var(--ink-3);font-size:var(--qz-font-size-14);line-height:1;font-variant-numeric:tabular-nums}.portal-card small b{color:var(--ink-2);font-weight:600}.portal-card>span:last-child{position:absolute;top:8px;right:9px;display:block;color:var(--ink-3);font-size:var(--qz-font-size-14);opacity:.55;transition:opacity var(--qz-duration-fast,.14s),transform var(--qz-duration-fast,.14s)}.portal-card:hover{border-color:color-mix(in srgb,var(--blue) 32%,var(--line));background:color-mix(in srgb,var(--surface) 92%,var(--blue-soft));color:var(--blue);box-shadow:0 8px 22px color-mix(in srgb,var(--blue) 10%,transparent);transform:translateY(-2px)}.portal-card:hover .portal-icon{transform:scale(1.05)}.portal-card:hover>span:last-child{opacity:1;transform:translate(2px)}.portal-card.is-extra{display:none}.portal-grid.is-expanded .portal-card.is-extra{display:flex}.portal-mobile-toggle{display:none}.portal-toggle{min-height:44px;margin:14px auto 0;padding:0 14px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--qz-radius-control,10px);color:var(--ink-2);font-size:var(--qz-font-size-14)}.portal-toggle:hover{background:var(--surface-soft);color:var(--ink)}.featured{margin-top:76px}.f-head>div{display:flex;align-items:baseline;gap:10px}.f-head>div span{margin:0}.f-nav,.b-nav{display:flex;align-items:center;gap:4px}.f-arrow{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:var(--ink-2);transition:background var(--qz-duration-fast,.14s),color var(--qz-duration-fast,.14s)}.f-arrow:not(:disabled):hover{background:var(--surface);color:var(--ink)}.f-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.fcard{min-width:0;min-height:184px;padding:18px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:transform var(--qz-duration,.22s),box-shadow var(--qz-duration,.22s),border-color var(--qz-duration,.22s)}.fcard:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:0 2px 12px #1414110a}.fc-top,.hd{display:flex;align-items:center;gap:11px;min-width:0}.fc-copy{min-width:0;display:flex;flex-direction:column}.fc-copy small{color:var(--blue);font-size:var(--qz-font-size-14);font-weight:600;letter-spacing:.08em}.fc-top h3,.hd h3{min-width:0;margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--qz-font-size-14);letter-spacing:-.01em}.fc-top .go,.hd .go{margin-left:auto;color:var(--ink-3)}.fcard>p{margin:16px 0 18px;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--ink-2);font-size:var(--qz-font-size-14);line-height:1.65}.fc-ft,.ft{margin-top:auto;padding-top:12px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--qz-font-size-14)}.fc-ft .card-score,.ft .card-score{margin-left:auto}.lgw{position:relative;width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:var(--qz-radius-surface,14px);overflow:hidden;background:var(--surface-soft);transition:transform .28s var(--qz-ease-spring,cubic-bezier(.2,.8,.2,1)),box-shadow var(--qz-duration-fast,.14s) ease}.lgw img{position:relative;z-index:1;width:40px;height:40px;object-fit:cover}.logo-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink-2);font-size:var(--qz-font-size-14)}.card-shell[data-tool-id="2773"] .lgw,.card-shell[data-tool-id="2783"] .lgw,.card-shell[data-tool-id="2785"] .lgw{background:#fff}.bundles-sec{margin-top:68px}.b-head-actions{display:flex;align-items:center;gap:8px}.b-position{min-width:38px;color:var(--ink-3);font-size:var(--qz-font-size-14);font-variant-numeric:tabular-nums;text-align:center}.b-nav{display:flex;gap:4px}.b-all{min-height:44px;padding-left:4px;display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-size:var(--qz-font-size-14)}.b-row{display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;padding:2px 1px 8px;scroll-snap-type:x mandatory;scroll-padding-inline:1px;overscroll-behavior-inline:contain;scrollbar-width:none}.b-row::-webkit-scrollbar{display:none}.bcard{flex:0 0 clamp(300px,36vw,390px);min-height:196px;padding:18px;display:flex;flex-direction:column;align-items:stretch;text-align:left;scroll-snap-align:start;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:transform var(--qz-duration,.22s),box-shadow var(--qz-duration,.22s),border-color var(--qz-duration,.22s)}.bcard:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:0 2px 12px #1414110a}.workflow-index{color:var(--blue);font-size:var(--qz-font-size-14);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.08em}.btop{display:flex;align-items:center;justify-content:space-between}.bicon{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--qz-radius-control,10px);background:var(--blue-soft);color:var(--blue)}.bicon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.bmeta{color:var(--ink-3);font-size:var(--qz-font-size-14)}.bundle-title{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.bundle-title h3{margin:0;font-size:var(--qz-font-size-16);letter-spacing:-.01em}.bundle-title i{color:var(--ink-3);font-style:normal}.bcard>p{margin:8px 0 18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2);font-size:var(--qz-font-size-14)}.bflow{margin-top:auto;display:flex;align-items:center;gap:6px;overflow:hidden;color:var(--ink-2);font-size:var(--qz-font-size-14);white-space:nowrap}.bflow span{min-width:0;overflow:hidden;text-overflow:ellipsis}.bflow i{color:var(--ink-3);font-style:normal}.b-swipe{display:none;margin:10px 0 0;color:var(--ink-3);font-size:var(--qz-font-size-14);text-align:center}.tp-bar{width:min(calc(100% - 40px),460px);min-height:64px;margin-top:36px;margin-bottom:60px;padding:9px 11px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:background var(--qz-duration-fast,.14s),border-color var(--qz-duration-fast,.14s)}.tp-bar:hover{border-color:var(--line-strong);background:var(--surface-soft)}.tp-logo{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--qz-radius-surface,14px);background:var(--blue-soft);color:var(--blue)}.toolbox-mark{width:26px;height:26px}.tp-title{min-width:0;display:flex;flex-direction:column}.tp-title b{font-size:var(--qz-font-size-14)}.tp-title small{color:var(--ink-3);font-size:var(--qz-font-size-14);font-weight:400}.tp-desc{display:none}.tp-cta{min-width:58px;min-height:44px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--qz-radius-control,10px);color:var(--blue);font-size:var(--qz-font-size-14)}.tp-cta i{font-style:normal}.directory-toolbar{position:sticky;top:var(--nav-h);z-index:90;margin-top:70px;padding:16px 20px;min-height:86px;display:grid;grid-template-columns:1fr auto;grid-template-areas:"heading actions" "status actions";align-items:center;gap:2px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);scroll-margin-top:var(--nav-h)}.directory-heading{grid-area:heading;min-width:0}.directory-heading h2{font-size:var(--qz-font-size-20)}.directory-heading p{margin-top:2px}.directory-status{grid-area:status;display:flex;align-items:center;gap:10px;min-width:0}.search-status{color:var(--ink-3);font-size:var(--qz-font-size-14);font-variant-numeric:tabular-nums}.search-status b{color:var(--ink-2);font-weight:600}.clear-filters{min-height:44px;padding:0 10px;color:var(--blue);font-size:var(--qz-font-size-14)}.directory-actions{grid-area:actions;display:flex;align-items:center;gap:10px}.directory-fav{min-height:44px;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:var(--qz-radius-surface,14px);background:var(--surface);color:var(--ink-2);font-size:var(--qz-font-size-14);white-space:nowrap}.directory-fav:hover,.directory-fav.is-on{border-color:color-mix(in srgb,var(--blue) 35%,var(--line));color:var(--blue);background:var(--blue-soft)}.directory-fav b{min-width:18px;height:18px;padding:0 4px;display:grid;place-items:center;border-radius:var(--qz-radius-pill,999px);background:var(--surface-soft);font-size:var(--qz-font-size-14)}.sort-control{display:flex;align-items:center;gap:8px}.sort-label{color:var(--ink-3);font-size:var(--qz-font-size-14)}.seg{display:flex;padding:2px;border-radius:var(--qz-radius-surface,14px);background:var(--surface-soft)}.seg-btn{min-width:48px;min-height:44px;padding:0 8px;border-radius:var(--qz-radius-control,10px);color:var(--ink-3);font-size:var(--qz-font-size-14)}.seg-btn:hover{color:var(--ink)}.seg-btn.is-on{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #14141112}.page{padding:28px 20px 80px}.side{display:none}.content{min-width:0}.sec{margin:0}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.card-shell{position:relative;min-width:0}.card{min-height:168px;padding:20px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:transform var(--qz-duration-fast,.14s),border-color var(--qz-duration-fast,.14s),box-shadow var(--qz-duration-fast,.14s)}.card:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:0 2px 12px #1414110a}.card .hd{padding-right:1px}.card .ds{margin:13px 0 17px;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--ink-2);font-size:var(--qz-font-size-14);line-height:1.6}.card .ft{padding-right:80px}.ct{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-score{font-variant-numeric:tabular-nums;white-space:nowrap}.card-shell.is-share-target .card{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft),0 12px 28px #14141114}.nojs-directory-note{margin:18px 0;text-align:center;color:var(--ink-2);font-size:var(--qz-font-size-14)}.share-tool,.fav{position:absolute;z-index:2;bottom:5px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--ink-3);transition:background var(--qz-duration-fast,.14s),color var(--qz-duration-fast,.14s),transform var(--qz-duration-fast,.14s)}.share-tool{right:47px}.share-tool svg{width:17px;height:17px}.fav{right:5px;color:var(--line-strong);font-size:var(--qz-font-size-16)}.share-tool:hover,.fav:hover{background:var(--surface-soft);color:var(--blue)}.fav.on{color:var(--blue)}.share-tool:active,.fav:active{transform:scale(.9)}.load-zone{min-height:110px;display:grid;place-items:center}.btn{min-height:44px;padding:0 18px;border-radius:var(--qz-radius-surface,14px);background:var(--ink);color:var(--bg);font-weight:600;transition:background var(--qz-duration-fast,.14s) ease,transform var(--qz-duration-fast,.14s) var(--qz-ease-spring,cubic-bezier(.2,.8,.2,1)),box-shadow var(--qz-duration-fast,.14s) ease}.btn:hover{background:var(--ink-2);transform:translateY(-1px);box-shadow:0 6px 16px #1414111f}.btn:active{transform:scale(.97);box-shadow:none}.load-more span{font-variant-numeric:tabular-nums}.not-found-page .hero{min-height:100vh;min-height:100svh;justify-content:center;padding-top:70px}.not-found-page .kicker{margin:0 0 14px;color:var(--blue);font-size:var(--qz-font-size-14);font-weight:600;letter-spacing:.08em}.not-found-actions{width:min(100%,480px);display:flex;flex-direction:column;align-items:center;gap:6px}.not-found-primary{min-width:188px;display:inline-flex;align-items:center;justify-content:center;background:var(--blue);color:#fff}.not-found-primary:hover{filter:brightness(.96)}.not-found-secondary{margin:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0 12px}.not-found-secondary a{min-height:44px;padding:0 8px;display:inline-flex;align-items:center;color:var(--ink-2);font-size:var(--qz-font-size-14)}.not-found-secondary a:hover{color:var(--blue)}.empty{display:none;padding:80px 20px;text-align:center;color:var(--ink-2)}.empty.show{display:block}.empty .hint{color:var(--ink-3);font-size:var(--qz-font-size-14)}.modal{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:20px}.modal[hidden]{display:none}.modal-mask{position:absolute;inset:0;background:#08080780;opacity:0;transition:opacity var(--qz-duration,.22s)}.modal-box{position:relative;width:min(720px,100%);max-height:min(760px,calc(100dvh - 40px));overflow:auto;padding:24px;border:1px solid var(--line);border-radius:var(--qz-radius-lg,18px);background:var(--surface);box-shadow:0 30px 80px #00000042;opacity:0;transform:translateY(12px) scale(.985);transition:opacity var(--qz-duration,.22s),transform var(--qz-duration,.22s)}.modal.open .modal-mask{opacity:1}.modal.open .modal-box{opacity:1;transform:none}.modal-box>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.modal-box>header>div{min-width:0}.modal-box h3{margin:0;font-size:var(--qz-font-size-24);letter-spacing:-.02em}.modal-box header p{margin:7px 0 0;color:var(--ink-2);font-size:var(--qz-font-size-14)}.modal-box header .bm-kicker{display:none}.modal-x{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--surface-soft);font-size:var(--qz-font-size-20)}.bm-stage{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.bm-stage-head{display:flex;align-items:flex-start;gap:12px}.bm-stage-head>i{width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--blue-soft);color:var(--blue);font-style:normal;font-size:var(--qz-font-size-14)}.bm-stage h4{margin:2px 0 0;font-size:var(--qz-font-size-14)}.bm-stage p{margin:3px 0 0;color:var(--ink-3);font-size:var(--qz-font-size-14)}.bm-tools{margin:12px 0 0 40px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.bm-tool{min-width:0;min-height:72px;padding:10px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:var(--qz-radius-surface,14px)}.bm-tool:hover{border-color:var(--line-strong);background:var(--surface-soft)}.bm-tool-copy{min-width:0;display:flex;flex-direction:column}.bm-tool-copy b,.bm-tool-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bm-tool-copy small{color:var(--ink-3);font-size:var(--qz-font-size-14)}.bm-go{margin-left:auto;color:var(--ink-3)}.bm-detail{min-height:48px;margin-top:20px;display:flex;align-items:center;justify-content:center;border-radius:var(--qz-radius-surface,14px);background:var(--ink);color:var(--bg);font-weight:600}.tray{position:fixed;right:18px;bottom:18px;z-index:150}.tray[hidden]{display:none}.tray-pill{min-height:48px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:var(--qz-radius-pill,999px);background:var(--surface);box-shadow:var(--shadow);font-size:var(--qz-font-size-14)}.tray-pill svg{width:15px;height:15px;color:var(--blue)}.tray-panel{position:absolute;right:0;bottom:58px;width:280px;max-height:360px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:var(--qz-radius-surface,14px);background:var(--surface);box-shadow:var(--shadow)}.tray-panel[hidden]{display:none}.tray-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 8px;font-weight:600}.tray-clear,.rm{min-width:44px;min-height:44px;color:var(--ink-3)}.tray-item{min-height:48px;display:flex;align-items:center;border-top:1px solid var(--line)}.tray-item a{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tray-tip{margin:8px 4px 2px;color:var(--ink-3);font-size:var(--qz-font-size-14)}.toast{position:fixed;z-index:500;left:50%;bottom:24px;padding:11px 16px;border-radius:var(--qz-radius-control,10px);background:var(--ink);color:var(--bg);font-size:var(--qz-font-size-14);opacity:0;transform:translate(-50%,12px);pointer-events:none;transition:var(--qz-duration,.22s)}.toast.show{opacity:1;transform:translate(-50%)}.totop{position:fixed;right:20px;bottom:20px;z-index:100;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface);box-shadow:var(--shadow);opacity:0;transform:translateY(10px);pointer-events:none;transition:var(--qz-duration,.22s)}.totop.show{opacity:1;transform:none;pointer-events:auto}.tray:not([hidden])~.totop{bottom:78px}footer{margin-top:20px;border-top:1px solid var(--line)}.ft-in{max-width:var(--max);margin:auto;padding:32px 20px 44px;color:var(--ink-3);font-size:var(--qz-font-size-14)}.ft-brand{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:var(--qz-font-size-14);font-weight:600}.ft-brand .leaf{width:22px;height:22px;color:var(--blue)}.ft-row{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:20px}.ft-row a{min-height:44px;display:inline-flex;align-items:center;padding:0 4px}.ft-row a:hover{color:var(--ink)}.ft-cta{margin:14px 0 0;line-height:2}.copybtn{min-height:44px;padding:0 6px;display:inline-flex;align-items:center;gap:5px;color:var(--ink-2)}.hin{animation:arrive .55s var(--qz-ease-out,cubic-bezier(.16,1,.3,1)) both}.d2{animation-delay:.05s}.d3{animation-delay:.1s}.d4{animation-delay:.15s}@keyframes arrive{0%{opacity:0;transform:translateY(10px);filter:blur(3px)}to{opacity:1;transform:none;filter:none}}html.motion-ready [data-rv]{opacity:0;transform:translateY(18px);transition:opacity var(--qz-duration-material,.42s) ease,transform var(--qz-duration-material,.42s) var(--qz-ease-spring,cubic-bezier(.2,.8,.2,1))}html.motion-ready [data-rv].is-revealed{opacity:1;transform:none}.clipboard-buffer{position:fixed;inline-size:1px;block-size:1px;inset:0 auto auto 0;opacity:0;pointer-events:none}.seg-btn:focus-visible,.directory-fav:focus-visible,.f-arrow:focus-visible,.portal-toggle:focus-visible,.share-tool:focus-visible,.fav:focus-visible{outline:2px solid color-mix(in srgb,var(--blue) 72%,transparent)!important;outline-offset:2px}.card-shell.is-share-target .card{border-color:color-mix(in srgb,var(--blue) 42%,var(--line-strong));box-shadow:0 4px 16px #1414110f,inset 0 0 0 .5px color-mix(in srgb,var(--blue) 24%,transparent)}@media(hover:hover){.card:hover .lgw,.fcard:hover .lgw,.bm-tool:hover .lgw{transform:scale(1.045);box-shadow:0 7px 18px #1414111a}.card .go,.fcard .go,.bcard .bundle-title i,.bm-go,.tp-cta i,.b-all span,.hero-beginner-link span{transition:transform var(--qz-duration,.22s) var(--qz-ease-spring,cubic-bezier(.2,.8,.2,1)),color var(--qz-duration-fast,.14s) ease}.card:hover .go,.fcard:hover .go,.bcard:hover .bundle-title i,.bm-tool:hover .bm-go,.tp-bar:hover .tp-cta i,.b-all:hover span,.hero-beginner-link:hover span{transform:translate(2px,-1px)}}.card:active,.fcard:active,.bcard:active,.portal-card:active,.tp-bar:active{transform:scale(.99)}@media(max-width:900px){.hero{min-height:348px;padding:76px 18px 44px}.hero .sub{margin-top:14px;font-size:var(--qz-font-size-14)}.directory-portal,.featured,.bundles-sec{padding:0 16px}.portal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.featured{margin-top:58px}.bundles-sec{margin-top:54px}.b-head-actions small{display:none}.bcard{flex-basis:78vw;max-width:380px;min-height:210px}.b-swipe{display:block}.tp-bar{width:min(calc(100% - 32px),460px);margin-left:auto;margin-right:auto}.directory-toolbar{margin-top:56px;padding:12px 16px;grid-template-columns:1fr;grid-template-areas:"heading" "status" "actions";gap:5px;min-height:150px}.directory-actions{justify-content:space-between}.page{padding:20px 16px 68px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-row{align-items:flex-start;flex-direction:column;gap:8px}}@media(max-width:720px){.hero{min-height:324px;padding:60px 16px 34px}.hero h1{font-size:clamp(32px,9.4vw,38px)}.hero h1 span{display:block;white-space:nowrap}.hero .sub{margin:13px 0 24px;font-size:var(--qz-font-size-14);line-height:1.55}.big-search{height:58px;border-radius:var(--qz-radius-surface,14px)}.big-search .mag{width:48px}.big-search input{font-size:var(--qz-font-size-14)}.big-search .kbd{display:none}.search-suggest{width:calc(100% - 32px)}.chips{width:100%;justify-content:center;overflow:visible}.chips .chip:nth-child(n+4){display:none}.hero-beginner-link{margin-top:1px}.portal-head,.f-head,.b-head{align-items:flex-start}.portal-head h2,.f-head h2,.b-head h2{font-size:var(--qz-font-size-20)}.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}html.motion-ready .portal-grid:not(.is-expanded) .portal-card.is-mobile-extra{display:none}.portal-grid.is-expanded .portal-card.is-mobile-extra{display:flex}.portal-card{min-height:86px}.portal-mobile-toggle{min-height:44px;width:100%;align-items:center;justify-content:center;margin-top:8px;color:var(--blue);font-size:var(--qz-font-size-14);font-weight:600}.motion-ready .portal-mobile-toggle{display:flex}.f-head>div{display:block}.f-head>div span{display:block;margin-top:4px}.fcard{flex-basis:76vw;max-width:280px}.b-head{display:block}.b-head-actions{margin-top:4px;justify-content:space-between}.bcard{flex-basis:84vw;max-width:340px;min-height:206px}.tp-bar{grid-template-columns:auto 1fr auto;gap:8px 12px;padding:9px 10px;margin-top:40px}.tp-logo,.tp-title,.tp-cta{grid-area:auto}.tp-desc{display:none}.tp-cta{min-width:58px}.directory-heading p{display:none}.directory-toolbar{min-height:154px}.directory-status{min-height:24px}.directory-actions{gap:7px}.directory-fav{padding:0 10px}.sort-label{display:none}.seg-btn{min-width:46px}.grid{grid-template-columns:1fr;gap:10px}.card{min-height:144px}.card .ds{margin:11px 0 13px}.page{padding-top:14px}.bm-tools{margin-left:0;grid-template-columns:1fr}.modal{padding:10px}.modal-box{max-height:calc(100dvh - 20px);padding:18px;border-radius:var(--qz-radius-lg,18px)}.modal-box h3{font-size:var(--qz-font-size-20)}.tray{right:12px;bottom:12px}.tray-panel{width:min(280px,calc(100vw - 24px))}.totop{right:12px;bottom:12px}.ft-in{padding:28px 16px 38px}.ft-cta{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;scroll-behavior:auto!important;transition-duration:var(--qz-duration-fast,.14s)!important;transition-delay:0ms!important}.hin{animation:none!important}.hin,html.motion-ready [data-rv]{opacity:1;transform:none}.big-search:focus-within,.fcard:hover,.bcard:hover,.card:hover,.portal-card:hover,.card:active,.fcard:active,.bcard:active,.portal-card:active,.tp-bar:active,.lgw{transform:none!important}}.directory-portal>.portal-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.portal-more>summary{min-height:44px;display:flex;align-items:center;justify-content:center;color:var(--blue);cursor:pointer;font-size:var(--qz-font-size-14);font-weight:600;list-style:none}.portal-more>summary::-webkit-details-marker{display:none}.portal-grid-more{margin-top:12px}.f-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;overflow:visible}.fcard{min-width:0;max-width:none;scroll-snap-align:start}.b-row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory}.home-workflow-route{min-width:0;max-width:none;min-height:196px;display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.home-workflow-route strong{margin-bottom:8px;color:var(--ink);font-size:var(--qz-font-size-16)}.home-workflow-route span{min-height:34px;display:flex;align-items:center;border-top:1px solid var(--line);color:var(--ink-2);font-size:var(--qz-font-size-14)}.empty-search-icon{margin-bottom:20px;color:var(--ink-3);opacity:.28}@media(max-width:900px){.f-row{grid-template-columns:repeat(2,minmax(0,1fr))}.bcard{flex-basis:min(72vw,360px)}}@media(max-width:720px){.f-row{display:flex;gap:12px;overflow-x:auto;padding:2px 1px 8px;scroll-snap-type:x mandatory;scrollbar-width:none}.f-row::-webkit-scrollbar{display:none}.home-featured-card{flex:0 0 78vw;max-width:310px;min-height:178px}.b-head{align-items:flex-start}.b-head-actions{flex-wrap:wrap;justify-content:flex-end}.b-nav{order:2}.b-all{order:3}.bcard{flex-basis:min(84vw,340px);min-height:190px}.portal-grid,.portal-grid-more{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.portal-card{min-height:84px;padding:9px 5px;gap:5px}.portal-card strong{font-size:var(--qz-font-size-14);line-height:1.25}.portal-icon{width:32px;height:32px;border-radius:var(--qz-radius-control,10px)}.portal-icon svg{width:17px;height:17px}.b-head{display:block}.b-head-actions{margin-top:8px;flex-wrap:nowrap;justify-content:space-between}.b-position{display:none}.b-all{margin-left:auto}.bcard{flex-basis:calc(100vw - 52px)}.home-featured-card{flex-basis:calc(100vw - 58px)}}.directory-portal>.portal-grid,.directory-portal .portal-grid-more{grid-template-columns:repeat(6,minmax(0,1fr))}.directory-portal .portal-icon{display:none}.directory-portal .portal-card{min-height:52px;padding:0 13px;display:flex;flex-direction:row;justify-content:flex-start;gap:7px;border-radius:var(--qz-radius-surface,14px);text-align:left;background:var(--surface);box-shadow:none}.directory-portal .portal-card.is-extra{display:none}.directory-portal .portal-grid.is-expanded .portal-card.is-extra{display:flex}.directory-portal .portal-card strong{font-size:var(--qz-font-size-14);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory-portal .portal-card small{margin-left:auto;font-size:var(--qz-font-size-14);white-space:nowrap}.directory-portal .portal-card>span:last-child{position:static;margin-left:1px;font-size:var(--qz-font-size-14)}.directory-portal .portal-toggle{width:100%;max-width:260px}@media(max-width:1200px){.directory-portal>.portal-grid,.directory-portal .portal-grid-more{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.directory-portal>.portal-grid,.directory-portal .portal-grid-more{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-portal .portal-card{min-height:48px;padding:0 10px}.directory-portal .portal-card strong{font-size:var(--qz-font-size-14)}.directory-portal .portal-card small{display:block;font-size:var(--qz-font-size-14)}.directory-portal .portal-card>span:last-child{display:none}}@media(min-width:701px){.directory-portal .portal-card.is-extra{display:flex}.directory-portal .portal-toggle{display:none}}@media(max-width:720px){.directory-portal .portal-grid:not(.is-expanded) .portal-card:nth-child(n+7){display:none}.directory-portal .portal-grid.is-expanded .portal-card{display:flex}}.community-preview{max-width:var(--max);margin:68px auto 0;padding:0 20px}.community-preview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.community-preview-head h2{margin:0;font-size:var(--qz-font-size-20);letter-spacing:-.02em}.community-preview-head>div>span{display:block;margin-top:5px;color:var(--ink-3);font-size:var(--qz-font-size-14)}.community-preview-head>a{min-height:44px;display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-size:var(--qz-font-size-14);font-weight:600}.community-preview-list{border-top:1px solid var(--line)}.community-preview-list>a{display:grid;grid-template-columns:88px minmax(220px,1.2fr) minmax(240px,1fr) 190px;align-items:center;gap:18px;min-height:72px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;transition:background-color var(--qz-duration-fast,.14s) ease}.community-preview-list>a:hover{background:color-mix(in srgb,var(--surface) 65%,transparent)}.community-preview-list strong{font-size:var(--qz-font-size-14);line-height:1.45}.community-preview-summary{color:var(--ink-2);font-size:var(--qz-font-size-14)}.community-preview-list small{color:var(--ink-3);font-size:var(--qz-font-size-14);text-align:right}.community-preview-status{width:max-content;padding:4px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:var(--qz-font-size-14);font-weight:600}.community-preview-status.is-solved,.community-preview-status.is-verified{background:color-mix(in srgb,#16a34a 10%,var(--surface));color:#168145}.community-preview-status.is-pending{background:color-mix(in srgb,#f59e0b 11%,var(--surface));color:#a86500}@media(max-width:900px){.community-preview{margin-top:54px;padding:0 16px}.community-preview-list>a{grid-template-columns:88px minmax(0,1fr) 170px}.community-preview-summary{display:none}}@media(max-width:620px){.community-preview-head{align-items:flex-start;flex-direction:column;gap:4px}.community-preview-list>a{grid-template-columns:1fr auto;gap:6px 12px;padding:14px 0}.community-preview-status{grid-column:1}.community-preview-list strong{grid-column:1/-1}.community-preview-list small{grid-column:1;text-align:left}.community-preview-summary{display:none}}@media(prefers-reduced-transparency:reduce){.directory-toolbar{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}}.quick-tools-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quick-tools-grid>a{min-width:0;min-height:100px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);display:flex;flex-direction:column;justify-content:center;gap:7px;color:var(--ink);text-decoration:none}.quick-tools-grid>a:hover{border-color:var(--blue);background:var(--surface-soft)}.quick-tools-grid>a:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.quick-tools-grid strong{font-size:var(--qz-font-size-16);line-height:1.5}.quick-tools-grid span{font-size:var(--qz-font-size-14);line-height:1.6;color:var(--ink-2);overflow-wrap:anywhere}.community-entry-note{font-size:var(--qz-font-size-14);line-height:1.7;color:var(--ink-2);margin:16px 0 0}.community-entry-note a{display:inline-block;padding:8px 0;color:var(--blue)}@media(max-width:720px){.quick-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.quick-tools-grid>a{padding:16px 13px;min-height:108px}.directory-portal .portal-card strong{font-size:var(--qz-font-size-14);white-space:normal;overflow:visible;line-height:1.4}.directory-portal .portal-card{padding:10px;min-height:56px}.hero .big-search input{font-size:var(--qz-font-size-16)}.community-entry-note a{display:block}}@media(max-width:340px){.quick-tools-grid{grid-template-columns:minmax(0,1fr)}}.is-searching #directories,.is-searching #featured,.is-searching #communityPreview,.is-searching .hero-beginner-link{display:none}.is-searching .hero{min-height:0;padding-block:28px 20px}.local-search-results{margin-bottom:28px}.local-search-results h2,.external-results-title{font-size:var(--qz-font-size-16);line-height:1.6;margin:0 0 14px}.local-search-results h2 span{margin-left:10px;font-size:var(--qz-font-size-14);font-weight:400;color:var(--ink-2)}.is-searching .directory-toolbar{scroll-margin-top:90px;margin-top:12px}.clear-filters{white-space:nowrap;flex-shrink:0}@media(max-width:720px){.is-searching .hero h1{font-size:var(--qz-font-size-28)}.local-search-results .quick-tools-grid{grid-template-columns:minmax(0,1fr)}.local-search-results .quick-tools-grid>a{min-height:84px}.local-search-results h2 span{display:block;margin-left:0}}:root{color-scheme:light;--qz-canvas: #f7f8fa;--qz-surface: #ffffff;--qz-surface-muted: #eef3f9;--qz-surface-strong: #e8ebef;--qz-ink: #172033;--qz-ink-secondary: #667085;--qz-ink-tertiary: #68707c;--qz-accent: #2563eb;--qz-accent-hover: #1d4ed8;--qz-accent-soft: rgba(37, 99, 235, .08);--qz-on-accent: #ffffff;--qz-danger: #b42318;--qz-success: #067647;--qz-line: #e5e7eb;--qz-line-strong: rgba(23, 25, 29, .18);--qz-overlay: rgba(20, 23, 29, .42);--qz-focus: #2563eb;--qz-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--qz-font-size-12: .75rem;--qz-font-size-14: .875rem;--qz-font-size-16: 1rem;--qz-font-size-20: 1.25rem;--qz-font-size-24: 1.5rem;--qz-font-size-32: 2rem;--qz-font-size-28: clamp(1.5rem, 2.2vw, 1.75rem);--qz-font-size-40: clamp(1.5rem, 2.8vw, 2rem);--qz-page-title: clamp(1.75rem, 2.6vw, 2.25rem);--qz-leading-tight: 1.16;--qz-leading-body: 1.68;--qz-tracking-tight: -.015em;--qz-space-1: .25rem;--qz-space-2: .5rem;--qz-space-3: .75rem;--qz-space-4: 1rem;--qz-space-6: 1.5rem;--qz-space-8: 2rem;--qz-space-12: 3rem;--qz-space-16: 4rem;--qz-space-24: 6rem;--qz-container: 77.5rem;--qz-reading: 45rem;--qz-gutter: clamp(1rem, 4vw, 1.5rem);--qz-control: 2.75rem;--qz-nav-height: 3.75rem;--qz-header-height: 4rem;--qz-radius-control: .625rem;--qz-radius-surface: .875rem;--qz-radius-pill: 999px;--qz-radius-sm: .5rem;--qz-radius-lg: 1.125rem;--qz-stroke: 1px;--qz-shadow-menu: 0 18px 48px rgba(40, 47, 58, .12);--qz-shadow-float: 0 12px 30px rgba(40, 47, 58, .1);--qz-ease-out: cubic-bezier(.16, 1, .3, 1);--qz-ease-spring: cubic-bezier(.2, .8, .2, 1);--qz-duration-fast: .14s;--qz-duration: .22s;--qz-duration-material: .42s;--qz-layer-nav: 80;--qz-layer-menu: 100;--qz-layer-dialog: 120}html.dark,html[data-theme=dark]{color-scheme:dark;--qz-canvas: #111318;--qz-surface: #171a20;--qz-surface-muted: #20242c;--qz-surface-strong: #292e38;--qz-ink: #f1f3f6;--qz-ink-secondary: #b8bec8;--qz-ink-tertiary: #929aa7;--qz-accent: #58a8f7;--qz-accent-hover: #78b9f9;--qz-accent-soft: rgba(88, 168, 247, .12);--qz-on-accent: #111318;--qz-danger: #fda29b;--qz-success: #75e0a7;--qz-line: rgba(241, 243, 246, .11);--qz-line-strong: rgba(241, 243, 246, .2);--qz-overlay: rgba(5, 7, 11, .68);--qz-focus: #78b9f9;--qz-shadow-menu: 0 20px 52px rgba(4, 6, 10, .46);--qz-shadow-float: 0 14px 34px rgba(4, 6, 10, .38)}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body.qz-shell{min-width:20rem;margin:0;background:var(--qz-canvas);color:var(--qz-ink);font-family:var(--qz-font-sans);font-size:var(--qz-font-size-16);line-height:var(--qz-leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.qz-shell *,.qz-shell *:before,.qz-shell *:after{box-sizing:border-box}.qz-shell a{color:inherit;text-decoration:none}.qz-shell button,.qz-shell input,.qz-shell select,.qz-shell textarea{font:inherit}.qz-shell button{color:inherit}.qz-shell ::selection{background:var(--qz-accent-soft);color:var(--qz-ink)}.qz-shell :focus-visible,.qz-header :focus-visible,.qz-mobile-menu :focus-visible,.qz-command-overlay :focus-visible{outline:2px solid var(--qz-focus);outline-offset:3px}.qz-shell ::-webkit-scrollbar{width:10px;height:10px}.qz-shell ::-webkit-scrollbar-track{background:transparent}.qz-shell ::-webkit-scrollbar-thumb{border:3px solid var(--qz-canvas);border-radius:var(--qz-radius-pill);background:var(--qz-line-strong)}.qz-skip-link,.skip-link{position:fixed;z-index:calc(var(--qz-layer-dialog) + 1);top:var(--qz-space-3);left:var(--qz-space-3);padding:.625rem .875rem;border-radius:var(--qz-radius-control);background:var(--qz-ink);color:var(--qz-surface);font-size:var(--qz-font-size-14);font-weight:600;transform:translateY(calc(-100% - 1.5rem));transition:transform var(--qz-duration-fast) var(--qz-ease-out)}.qz-skip-link:focus,.skip-link:focus{transform:translateY(0)}.qz-container{width:min(100% - (2 * var(--qz-gutter)),var(--qz-container));margin-inline:auto}.qz-reading{width:min(100%,var(--qz-reading));margin-inline:auto}.qz-layout{display:grid;grid-template-columns:minmax(0,var(--qz-reading)) minmax(15rem,1fr);gap:clamp(2.5rem,7vw,5rem);align-items:start}.qz-stage{display:grid;min-height:min(42rem,calc(100dvh - var(--qz-nav-height)));place-items:center;padding-block:clamp(var(--qz-space-16),9vw,var(--qz-space-24))}.qz-stage>:first-child{width:min(100%,var(--qz-reading))}.qz-section{padding-block:clamp(var(--qz-space-12),7vw,var(--qz-space-24))}.qz-section+.qz-section{border-top:var(--qz-stroke) solid var(--qz-line)}.qz-section-head{display:grid;width:min(100%,var(--qz-reading));gap:var(--qz-space-3);margin-bottom:clamp(var(--qz-space-8),5vw,var(--qz-space-12))}.qz-section-head h1,.qz-section-head h2,.qz-hero h1{max-width:15ch;margin:0;color:var(--qz-ink);font-size:var(--qz-font-size-40);font-weight:600;line-height:var(--qz-leading-tight);letter-spacing:var(--qz-tracking-tight);text-wrap:balance}.qz-section-head h2{font-size:var(--qz-font-size-28)}.qz-section-head p,.qz-hero p,.qz-copy{max-width:66ch;margin:0;color:var(--qz-ink-secondary)}.qz-hero{display:grid;width:min(100%,var(--qz-reading));gap:var(--qz-space-6);padding-block:clamp(var(--qz-space-16),9vw,var(--qz-space-24))}.qz-hero-actions{display:flex;flex-wrap:wrap;gap:var(--qz-space-3)}.qz-site-nav,.site-nav,.gn{position:sticky;z-index:var(--qz-layer-nav);top:0;height:var(--qz-nav-height);border-bottom:var(--qz-stroke) solid var(--qz-line);background:color-mix(in srgb,var(--qz-canvas) 94%,transparent);-webkit-backdrop-filter:saturate(130%) blur(16px);backdrop-filter:saturate(130%) blur(16px)}.qz-nav-inner,.nav-inner,.gn-in{display:flex;align-items:center;width:min(100% - (2 * var(--qz-gutter)),var(--qz-container));height:100%;margin-inline:auto;gap:clamp(var(--qz-space-4),3vw,var(--qz-space-8))}.qz-brand,.brand{display:inline-flex;min-width:max-content;align-items:center;gap:.625rem;color:var(--qz-ink);font-size:var(--qz-font-size-16);font-weight:600;line-height:1.1;letter-spacing:-.01em}.qz-brand-mark,.brand .leaf,.gn .leaf{width:1.625rem;height:1.625rem;flex:0 0 auto;color:var(--qz-accent)}.qz-brand small,.brand small{display:block;margin-top:.125rem;color:var(--qz-ink-tertiary);font-size:var(--qz-font-size-14);font-weight:600;letter-spacing:.08em}.qz-nav-links,.nav-links,.gn-links{display:flex;align-self:stretch;align-items:center;gap:clamp(.5rem,1.5vw,1.125rem);color:var(--qz-ink-secondary);font-size:var(--qz-font-size-14)}.qz-nav-links>a,.qz-nav-links>button,.nav-links>a,.nav-links>button,.gn-links>a,.gn-links>button{position:relative;display:inline-flex;min-width:var(--qz-control);min-height:var(--qz-control);padding-inline:.25rem;align-items:center;justify-content:center;border:0;background:transparent;color:inherit;cursor:pointer;white-space:nowrap;transition:color var(--qz-duration-fast) ease}.qz-nav-links>:where(a,button):hover,.nav-links>:where(a,button):hover,.gn-links>:where(a,button):hover{color:var(--qz-ink)}.qz-nav-links [aria-current=page],.nav-links [aria-current=page],.gn-links [aria-current=page]{color:var(--qz-ink);font-weight:600}.qz-nav-links [aria-current=page]:after,.nav-links [aria-current=page]:after,.gn-links [aria-current=page]:after{position:absolute;right:.25rem;bottom:-1px;left:.25rem;height:2px;background:var(--qz-accent);content:""}.qz-nav-actions,.nav-actions,.gn-r{display:flex;margin-left:auto;align-items:center;gap:.125rem}.qz-icon-button,.theme-button,.menu-button,.nav-icon,.gn-theme-btn,.gn-search-btn,.gn-catalog-mobile{display:grid;width:var(--qz-control);height:var(--qz-control);flex:0 0 auto;padding:0;place-items:center;border:0;border-radius:var(--qz-radius-pill);background:transparent;color:var(--qz-ink-secondary);cursor:pointer;transition:background-color var(--qz-duration-fast) ease,color var(--qz-duration-fast) ease,transform var(--qz-duration-fast) ease}.qz-icon-button:hover,.theme-button:hover,.menu-button:hover,.nav-icon:hover,.gn-theme-btn:hover,.gn-search-btn:hover,.gn-catalog-mobile:hover{background:var(--qz-surface-muted);color:var(--qz-ink)}.qz-icon-button:active,.theme-button:active,.menu-button:active,.nav-icon:active,.gn-theme-btn:active,.gn-search-btn:active,.gn-catalog-mobile:active{transform:scale(.96)}.qz-icon-button svg,.theme-button svg,.menu-button svg,.nav-icon svg,.gn-theme-btn svg,.gn-search-btn svg,.gn-catalog-mobile svg{width:1.125rem;height:1.125rem}.theme-button svg,.gn-theme-btn svg{grid-area:1 / 1;transition:opacity var(--qz-duration) var(--qz-ease-out),transform var(--qz-duration) var(--qz-ease-out)}.theme-button .theme-sun,.gn-theme-btn .theme-sun{opacity:0;transform:rotate(-28deg) scale(.76)}html.dark .theme-button .theme-moon,html[data-theme=dark] .theme-button .theme-moon,html.dark .gn-theme-btn .theme-moon,html[data-theme=dark] .gn-theme-btn .theme-moon{opacity:0;transform:rotate(28deg) scale(.76)}html.dark .theme-button .theme-sun,html[data-theme=dark] .theme-button .theme-sun,html.dark .gn-theme-btn .theme-sun,html[data-theme=dark] .gn-theme-btn .theme-sun{opacity:1;transform:none}.qz-mobile-menu,.mobile-menu{position:fixed;z-index:var(--qz-layer-menu);top:calc(var(--qz-nav-height) + .75rem);right:var(--qz-gutter);width:min(22rem,calc(100vw - (2 * var(--qz-gutter))));padding:var(--qz-space-2);border:var(--qz-stroke) solid var(--qz-line);border-radius:var(--qz-radius-surface);background:var(--qz-surface);box-shadow:var(--qz-shadow-menu)}.qz-mobile-menu[hidden],.mobile-menu[hidden]{display:none}.qz-mobile-menu>:where(a,button),.mobile-menu>:where(a,button){display:flex;width:100%;min-height:3rem;padding-inline:var(--qz-space-4);align-items:center;justify-content:space-between;border:0;border-radius:var(--qz-radius-control);background:transparent;color:var(--qz-ink-secondary);cursor:pointer;font-size:var(--qz-font-size-14);font-weight:600;text-align:left}.qz-mobile-menu>:where(a,button):hover,.mobile-menu>:where(a,button):hover,.qz-mobile-menu>[aria-current=page],.mobile-menu>[aria-current=page]{background:var(--qz-surface-muted);color:var(--qz-accent)}.qz-header{position:sticky;box-sizing:border-box;z-index:var(--qz-layer-nav);top:0;height:var(--qz-header-height);border-bottom:var(--qz-stroke) solid var(--qz-line);background:color-mix(in srgb,var(--qz-canvas) 96%,transparent);-webkit-backdrop-filter:saturate(120%) blur(12px);backdrop-filter:saturate(120%) blur(12px);color:var(--qz-ink);font-family:var(--qz-font-sans)}.qz-header *,.qz-header *:before,.qz-header *:after,.qz-category-panel *,.qz-mobile-menu *,.qz-command-overlay *{box-sizing:border-box}.qz-header a,.qz-mobile-menu a,.qz-command-overlay a{color:inherit;text-decoration:none}.qz-header button,.qz-mobile-menu button,.qz-command-overlay button,.qz-command-overlay input{font:inherit}.qz-header-inner{display:flex;width:min(100% - 3rem,var(--qz-container));height:100%;margin-inline:auto;align-items:center;gap:1.75rem}.qz-header-brand{display:inline-flex;min-width:max-content;min-height:2.75rem;align-items:center;gap:.625rem;border-radius:var(--qz-radius-control);line-height:1.05}.qz-header-leaf{width:1.75rem;height:1.75rem;flex:0 0 auto;color:var(--qz-accent);transition:transform var(--qz-duration-fast) var(--qz-ease-out)}.qz-header-leaf-nodes{opacity:.76;transition:opacity var(--qz-duration-fast) ease}.qz-header-brand:hover .qz-header-leaf{transform:translateY(-1px)}.qz-header-brand:hover .qz-header-leaf-nodes{opacity:1}.qz-header-brand:active .qz-header-leaf{transform:scale(.97);transition-duration:80ms}.qz-header-brand-copy{display:grid;gap:.125rem}.qz-header-brand-copy strong{font-size:var(--qz-font-size-16);font-weight:600;letter-spacing:-.01em}.qz-header-brand-copy small{color:var(--qz-ink-tertiary);font-size:var(--qz-font-size-14);font-weight:600;letter-spacing:.04em}.qz-current-label{display:none;min-width:0;overflow:hidden;color:var(--qz-ink-secondary);font-size:var(--qz-font-size-14);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.qz-primary-nav{display:flex;align-self:stretch;align-items:center;gap:.25rem}.qz-find-module{display:inline-flex;align-items:center;border-radius:var(--qz-radius-sm,8px)}.qz-find-module .qz-module-link{border-radius:var(--qz-radius-sm,8px) 0 0 var(--qz-radius-sm,8px)}.qz-category-disclosure,.qz-mobile-category-toggle{display:inline-grid;width:2.75rem;min-width:2.75rem;height:2.75rem;padding:0;place-items:center;border:0;border-radius:0 var(--qz-radius-sm,8px) var(--qz-radius-sm,8px) 0;background:transparent;color:var(--qz-ink-secondary);cursor:pointer}.qz-category-disclosure:hover,.qz-mobile-category-toggle:hover{background:var(--qz-surface-muted);color:var(--qz-ink)}.qz-category-disclosure svg,.qz-mobile-category-toggle svg{width:.875rem;height:.875rem;transition:transform var(--qz-duration-fast,.14s) var(--qz-ease-out)}.qz-category-disclosure[aria-expanded=true] svg,.qz-mobile-category-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.qz-module-link{position:relative;display:inline-flex;min-width:2.75rem;min-height:2.75rem;padding-inline:.625rem;align-items:center;justify-content:center;gap:.375rem;border:0;border-radius:var(--qz-radius-sm,8px);background:transparent;color:var(--qz-ink-secondary);cursor:pointer;font-size:var(--qz-font-size-14);white-space:nowrap;transition:background-color var(--qz-duration-fast) ease,color var(--qz-duration-fast) ease,transform 80ms ease}.qz-module-link>svg{width:.875rem;height:.875rem}.qz-module-link>svg:last-child{width:.75rem;height:.75rem;transition:transform var(--qz-duration-fast,.14s) var(--qz-ease-out)}.qz-module-link:hover{background:var(--qz-surface-muted);color:var(--qz-ink)}.qz-module-link:active{transform:translateY(1px)}.qz-module-link[aria-expanded=true]{background:var(--qz-accent-soft);color:var(--qz-accent)}.qz-module-link[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.qz-module-link[aria-current=page]{color:var(--qz-ink);font-weight:600}.qz-module-link[aria-current=page]:after{position:absolute;bottom:-1px;left:50%;width:1.375rem;height:2px;border-radius:1px;background:var(--qz-accent);content:"";transform:translate(-50%)}.qz-recommend{position:relative}.qz-recommend>summary{list-style:none}.qz-recommend>summary::-webkit-details-marker{display:none}.qz-recommend[open]>summary{background:var(--qz-surface-muted);color:var(--qz-ink)}.qz-recommend[open]>summary>svg{transform:rotate(180deg)}.qz-recommend-menu{position:absolute;z-index:var(--qz-layer-menu);top:calc(100% - .25rem);right:0;display:grid;width:16rem;gap:.125rem;padding:.45rem;border:var(--qz-stroke) solid var(--qz-line);border-radius:var(--qz-radius-surface);background:var(--qz-surface);box-shadow:var(--qz-shadow-menu)}.qz-recommend-link{display:grid;gap:.1rem;padding:.7rem .75rem;border-radius:var(--qz-radius-sm,8px)}.qz-recommend-link:hover{background:var(--qz-surface-muted)}.qz-recommend-link strong{color:var(--qz-ink);font-size:var(--qz-font-size-14);font-weight:600}.qz-recommend-link span{color:var(--qz-ink-tertiary);font-size:var(--qz-font-size-14);line-height:1.45}.qz-header-actions{display:flex;margin-left:auto;align-items:center;gap:.125rem}.qz-header-action,.qz-command-close{position:relative;display:inline-grid;width:2.75rem;height:2.75rem;flex:0 0 auto;padding:0;place-items:center;border:0;border-radius:var(--qz-radius-control);background:transparent;color:var(--qz-ink-secondary);cursor:pointer;transition:background-color var(--qz-duration-fast) ease,color var(--qz-duration-fast) ease,transform 80ms ease}.qz-header-action:hover,.qz-command-close:hover{background:var(--qz-surface-muted);color:var(--qz-ink)}.qz-header-action:active,.qz-command-close:active{transform:translateY(1px)}.qz-header-action>svg,.qz-header-action>span>svg,.qz-command-close svg{width:1.125rem;height:1.125rem}.qz-command-trigger{display:inline-flex;width:4.375rem;gap:.5rem}.qz-command-trigger kbd{border:0;background:transparent;color:var(--qz-ink-tertiary);font-family:inherit;font-size:var(--qz-font-size-14)}.qz-theme-action>span{display:grid;grid-area:1 / 1;place-items:center;transition:opacity var(--qz-duration-fast,.14s) ease,transform var(--qz-duration-fast,.14s) var(--qz-ease-out)}.qz-theme-action .theme-sun,html.dark .qz-theme-action .theme-moon,html[data-theme=dark] .qz-theme-action .theme-moon{opacity:0;transform:scale(.76)}html.dark .qz-theme-action .theme-sun,html[data-theme=dark] .qz-theme-action .theme-sun{opacity:1;transform:none}.qz-favorite-badge{position:absolute;top:.1875rem;right:.125rem;display:grid;min-width:1rem;height:1rem;padding-inline:.1875rem;place-items:center;border:2px solid var(--qz-canvas);border-radius:var(--qz-radius-pill);background:var(--qz-accent);color:#f8fbff;font-size:var(--qz-font-size-14);font-weight:600;line-height:1}.qz-favorite-badge[hidden],.qz-mobile-trigger,.qz-mobile-close-icon{display:none}.qz-mobile-trigger[aria-expanded=true]>svg:first-child{display:none}.qz-mobile-trigger[aria-expanded=true] .qz-mobile-close-icon{display:grid}.qz-category-panel{position:absolute;z-index:var(--qz-layer-menu);top:100%;right:0;left:0;border-bottom:var(--qz-stroke) solid var(--qz-line);border-radius:0 0 var(--qz-radius-surface) var(--qz-radius-surface);background:var(--qz-surface);box-shadow:var(--qz-shadow-menu)}.qz-category-panel[hidden],.qz-mobile-menu[hidden],.qz-command-overlay[hidden],.qz-mobile-category-list[hidden]{display:none}.qz-category-panel[data-state=open]{animation:qz-panel-in .18s var(--qz-ease-out) both}.qz-category-panel-inner{width:min(100% - 3rem,var(--qz-container));margin-inline:auto;padding:1rem 0 1.25rem}.qz-category-panel-head{display:flex;min-height:2.75rem;align-items:center;justify-content:space-between;gap:1rem;font-size:var(--qz-font-size-14)}.qz-category-panel-head strong{font-weight:600}.qz-category-panel-head a{min-height:2.75rem;display:inline-flex;align-items:center;color:var(--qz-accent);font-size:var(--qz-font-size-14);font-weight:600}.qz-category-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.125rem 1rem}.qz-category-link,.qz-mobile-category-link{display:flex;min-width:0;min-height:2.75rem;padding-inline:.625rem;align-items:center;justify-content:space-between;gap:.5rem;border-radius:var(--qz-radius-sm,8px);color:var(--qz-ink-secondary);font-size:var(--qz-font-size-14)}.qz-category-link:hover,.qz-mobile-category-link:hover{background:var(--qz-surface-muted);color:var(--qz-ink)}.qz-category-link[aria-current=page],.qz-mobile-category-link[aria-current=page]{background:var(--qz-accent-soft);color:var(--qz-accent);font-weight:600}.qz-category-count{flex:0 0 auto;color:var(--qz-ink-tertiary);font-variant-numeric:tabular-nums}.qz-category-all{display:inline-flex;min-height:2.75rem;margin-top:.5rem;align-items:center;color:var(--qz-accent);font-size:var(--qz-font-size-14);font-weight:600}.qz-mobile-menu{position:fixed;z-index:var(--qz-layer-menu);top:calc(var(--qz-header-height) + .5rem);right:1.25rem;width:min(35rem,calc(100vw - 2.5rem));max-height:calc(100dvh - var(--qz-header-height) - 1.25rem);overflow:auto;padding:.5rem;border:var(--qz-stroke) solid var(--qz-line);border-radius:var(--qz-radius-surface);background:var(--qz-surface);box-shadow:var(--qz-shadow-menu);color:var(--qz-ink);font-family:var(--qz-font-sans)}.qz-mobile-menu[data-state=open]{animation:qz-panel-in .18s var(--qz-ease-out) both}.qz-mobile-modules{display:grid;gap:.125rem}.qz-mobile-support{border-top:var(--qz-stroke) solid var(--qz-line);margin-top:.25rem;padding-top:.25rem}.qz-mobile-support>summary{display:flex;min-height:3.25rem;align-items:center;justify-content:space-between;gap:1rem;padding:.45rem .75rem;border-radius:var(--qz-radius-control);color:var(--qz-ink-secondary);cursor:pointer;list-style:none}.qz-mobile-support>summary::-webkit-details-marker{display:none}.qz-mobile-support>summary:hover{background:var(--qz-surface-muted)}.qz-mobile-support>summary span{display:grid;gap:.05rem}.qz-mobile-support>summary strong{color:var(--qz-ink);font-size:var(--qz-font-size-14);font-weight:600}.qz-mobile-support>summary small{color:var(--qz-ink-tertiary);font-size:var(--qz-font-size-14)}.qz-mobile-support>summary svg{width:.875rem;height:.875rem;transition:transform var(--qz-duration-fast,.14s) var(--qz-ease-out)}.qz-mobile-support[open]>summary svg{transform:rotate(180deg)}.qz-mobile-support-links{display:grid;gap:.125rem;padding:.125rem 0 .25rem .65rem}.qz-mobile-support-links a{display:flex;min-height:2.75rem;align-items:center;padding:0 .75rem;border-radius:var(--qz-radius-sm,8px);color:var(--qz-ink-secondary);font-size:var(--qz-font-size-14)}.qz-mobile-support-links a:hover{background:var(--qz-surface-muted);color:var(--qz-accent)}.qz-mobile-find-module{display:grid;grid-template-columns:minmax(0,1fr) 2.75rem;align-items:center;border-radius:var(--qz-radius-sm,8px)}.qz-mobile-find-module[data-current=true]{background:var(--qz-accent-soft)}.qz-mobile-find-module[data-current=true] .qz-mobile-module{color:var(--qz-accent)}.qz-mobile-module{display:flex;width:100%;min-height:2.75rem;padding-inline:.875rem;align-items:center;justify-content:space-between;gap:.5rem;border:0;border-radius:var(--qz-radius-sm,8px);background:transparent;color:var(--qz-ink-secondary);cursor:pointer;font-size:var(--qz-font-size-14);font-weight:600;text-align:left}.qz-mobile-module>span{display:inline-flex;align-items:center;gap:.5rem}.qz-mobile-module svg{width:.875rem;height:.875rem}.qz-mobile-module>svg{transition:transform var(--qz-duration-fast,.14s) var(--qz-ease-out)}.qz-mobile-module:hover{background:var(--qz-surface-muted);color:var(--qz-ink)}.qz-mobile-module[data-current=true]{color:var(--qz-accent)}.qz-mobile-module[aria-expanded=true]{background:var(--qz-accent-soft);color:var(--qz-accent)}.qz-mobile-module[aria-expanded=true]>svg{transform:rotate(180deg)}.qz-mobile-category-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:.375rem;padding-top:.375rem;border-top:var(--qz-stroke) solid var(--qz-line)}.qz-command-overlay{position:fixed;z-index:var(--qz-layer-dialog);inset:0;overflow:auto;padding:clamp(1rem,5vw,4rem) 1rem 2rem;background:var(--qz-canvas);color:var(--qz-ink);font-family:var(--qz-font-sans)}.qz-command-panel{width:min(52rem,calc(100vw - 2rem));max-height:none;margin-inline:auto;overflow:visible;padding:clamp(1rem,3vw,2rem);border:0;border-radius:0;background:transparent;box-shadow:none;animation:qz-panel-in .18s var(--qz-ease-out) both}.qz-command-head{display:flex;align-items:start;justify-content:space-between;gap:1rem}.qz-command-head h2{margin:0;font-size:var(--qz-font-size-20);font-weight:700;line-height:1.25}.qz-command-head p{margin:.125rem 0 0;color:var(--qz-ink-tertiary);font-size:var(--qz-font-size-14)}.qz-command-field{display:flex;min-height:2.75rem;margin-top:1rem;padding-inline:.75rem;align-items:center;gap:.625rem;border:var(--qz-stroke) solid var(--qz-line-strong);border-radius:var(--qz-radius-control);background:var(--qz-canvas);transition:border-color var(--qz-duration-fast) ease,box-shadow var(--qz-duration-fast) ease,background-color var(--qz-duration-fast) ease}.qz-command-field:focus-within{border-color:color-mix(in srgb,var(--qz-accent) 52%,var(--qz-line-strong));background:var(--qz-surface);box-shadow:0 8px 24px #282f3a14,inset 0 0 0 .5px color-mix(in srgb,var(--qz-accent) 22%,transparent)}.qz-command-field>svg{width:1.125rem;height:1.125rem;flex:0 0 auto;color:var(--qz-ink-tertiary)}.qz-command-field input{width:100%;min-width:0;height:2.75rem;padding:0;border:0;outline:0;background:transparent;color:var(--qz-ink);font-size:var(--qz-font-size-14)}.qz-command-field input:focus-visible{outline:0}.qz-command-field input::placeholder{color:var(--qz-ink-tertiary)}.qz-command-status{min-height:2.25rem;padding:.625rem .25rem .25rem;color:var(--qz-ink-tertiary);font-size:var(--qz-font-size-14)}.qz-command-results{display:grid;gap:.5rem}.qz-command-group{display:grid;gap:.125rem}.qz-command-group+.qz-command-group{padding-top:.5rem;border-top:var(--qz-stroke) solid var(--qz-line)}.qz-command-group-title{margin:0;padding:.125rem .625rem;color:var(--qz-ink-tertiary);font-size:var(--qz-font-size-14);font-weight:600;letter-spacing:.04em}.qz-command-result{display:grid;min-height:3.5rem;padding:.5rem .625rem;grid-template-columns:2rem minmax(0,1fr);align-items:center;gap:.75rem;border-radius:var(--qz-radius-sm,8px)}.qz-command-result:hover{background:var(--qz-surface-muted)}.qz-command-result-mark{display:grid;width:2rem;height:2rem;place-items:center;border-radius:var(--qz-radius-sm,8px);background:var(--qz-accent-soft);color:var(--qz-accent);font-size:var(--qz-font-size-14);font-weight:600}.qz-command-result-copy{min-width:0}.qz-command-result-copy strong,.qz-command-result-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qz-command-result-copy strong{font-size:var(--qz-font-size-14);font-weight:600}.qz-command-result-copy span{color:var(--qz-ink-tertiary);font-size:var(--qz-font-size-14)}.qz-command-all{display:flex;min-height:2.75rem;margin-top:.5rem;align-items:center;justify-content:center;border-top:var(--qz-stroke) solid var(--qz-line);color:var(--qz-accent);font-size:var(--qz-font-size-14);font-weight:600}@keyframes qz-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.qz-button{display:inline-flex;min-height:var(--qz-control);padding:0 1rem;align-items:center;justify-content:center;gap:.5rem;border:var(--qz-stroke) solid transparent;border-radius:var(--qz-radius-control);background:var(--qz-surface-muted);color:var(--qz-ink);cursor:pointer;font-size:var(--qz-font-size-14);font-weight:600;line-height:1;white-space:nowrap;transition:background-color var(--qz-duration-fast) ease,border-color var(--qz-duration-fast) ease,color var(--qz-duration-fast) ease,transform var(--qz-duration-fast) ease}.qz-button:hover{background:var(--qz-surface-strong)}.qz-button:active{transform:scale(.98)}.qz-button.is-primary{background:var(--qz-accent);color:#f8fbff}.qz-button.is-primary:hover{background:var(--qz-accent-hover)}html.dark .qz-button.is-primary,html[data-theme=dark] .qz-button.is-primary{color:#111318}.qz-button.is-quiet{border-color:var(--qz-line);background:var(--qz-surface)}.qz-button:disabled,.qz-button[aria-disabled=true]{opacity:.46;cursor:not-allowed;transform:none}.qz-field{width:100%;min-height:var(--qz-control);padding:.625rem .875rem;border:var(--qz-stroke) solid var(--qz-line);border-radius:var(--qz-radius-control);outline:0;background:var(--qz-surface);color:var(--qz-ink);transition:border-color var(--qz-duration-fast) ease,box-shadow var(--qz-duration-fast) ease}.qz-field::placeholder{color:var(--qz-ink-tertiary)}.qz-field:focus{border-color:color-mix(in srgb,var(--qz-accent) 52%,var(--qz-line-strong));box-shadow:0 7px 20px #282f3a12,inset 0 0 0 .5px color-mix(in srgb,var(--qz-accent) 22%,transparent)}.qz-chip{display:inline-flex;min-height:2.25rem;padding-inline:.875rem;align-items:center;justify-content:center;border:var(--qz-stroke) solid transparent;border-radius:var(--qz-radius-pill);background:var(--qz-surface-muted);color:var(--qz-ink-secondary);cursor:pointer;font-size:var(--qz-font-size-14);font-weight:600;white-space:nowrap}.qz-chip:hover{color:var(--qz-ink)}.qz-chip[aria-pressed=true],.qz-chip.is-active{border-color:color-mix(in srgb,var(--qz-accent) 30%,transparent);background:var(--qz-accent-soft);color:var(--qz-accent)}.qz-surface{border:var(--qz-stroke) solid var(--qz-line);border-radius:var(--qz-radius-surface);background:var(--qz-surface)}.qz-list{margin:0;padding:0;list-style:none}.qz-list>*{padding-block:var(--qz-space-4)}.qz-list>*+*{border-top:var(--qz-stroke) solid var(--qz-line)}.qz-toolbar{display:flex;min-height:var(--qz-control);align-items:center;justify-content:space-between;gap:var(--qz-space-3)}.qz-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--qz-space-3)}.qz-stack{display:grid;gap:var(--qz-space-6)}.qz-muted{color:var(--qz-ink-secondary)}.qz-hairline{border:0;border-top:var(--qz-stroke) solid var(--qz-line)}.qz-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:900px){:root{--qz-nav-height: 3.5rem;--qz-header-height: 3.75rem;--qz-gutter: 1rem}.qz-layout{grid-template-columns:minmax(0,1fr);gap:var(--qz-space-12)}.qz-stage{min-height:auto;padding-block:var(--qz-space-16)}.qz-section,.qz-hero{padding-block:var(--qz-space-16)}.qz-section-head h1,.qz-hero h1{max-width:13ch}.qz-nav-links,.nav-links,.gn-links{display:none}.qz-nav-actions,.nav-actions,.gn-r{margin-left:auto}.qz-header-inner{width:calc(100% - 2.5rem);gap:1.25rem}.qz-primary-nav{display:none}.qz-current-label{display:flex;flex:1 1 auto;align-items:center;gap:.625rem;font-weight:600}.qz-header-actions{flex:0 0 auto}.qz-current-label:before{width:1px;height:1rem;flex:0 0 auto;background:var(--qz-line-strong);content:""}.qz-command-trigger{width:2.75rem;min-width:2.75rem;padding:0}.qz-command-trigger kbd,.qz-command-trigger .qz-action-label{display:none}.qz-mobile-trigger{display:inline-grid}.qz-category-panel{display:none!important}.menu-button,.gn-catalog-mobile{display:grid}.qz-toolbar{align-items:stretch;flex-direction:column}.qz-hero-actions>*{flex:1 1 auto}}@media(min-width:901px){.menu-button,#menuToggle,[data-qz-menu-toggle]{display:none}.qz-mobile-menu,.mobile-menu{display:none!important}.qz-mobile-trigger{display:none}}@media(min-width:901px)and (max-width:1200px){.qz-module-link{padding-inline:.625rem}.qz-header-brand-copy small{display:none}}@media(max-width:480px){.qz-brand small,.brand small{display:none}.qz-brand,.brand{font-size:var(--qz-font-size-14)}.qz-brand-mark,.brand .leaf,.gn .leaf{width:1.5rem;height:1.5rem}.qz-header-inner{width:calc(100% - 1.5rem);gap:.25rem}.qz-header-leaf{width:1.5rem;height:1.5rem}.qz-header-brand{gap:.375rem}.qz-header-brand-copy small{display:none}.qz-header-brand-copy strong{font-size:var(--qz-font-size-14)}.qz-current-label{gap:.375rem}.qz-favorites-action,.qz-theme-action{display:none}.qz-mobile-menu{right:.75rem;width:calc(100vw - 1.5rem)}.qz-mobile-category-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:360px){.qz-theme-action,.qz-current-label{display:none}}@media(prefers-reduced-transparency:reduce){.qz-header{background:var(--qz-canvas);-webkit-backdrop-filter:none;backdrop-filter:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition-duration:var(--qz-duration-fast,.14s)!important;transition-delay:0ms!important}.qz-category-panel,.qz-mobile-menu,.qz-command-panel,.qz-header-leaf,.qz-module-link,.qz-header-action,.qz-command-close,.qz-button{transform:none!important}}@media(prefers-contrast:more){:root{--qz-line: rgba(23, 25, 29, .28);--qz-line-strong: rgba(23, 25, 29, .46)}html.dark,html[data-theme=dark]{--qz-line: rgba(241, 243, 246, .3);--qz-line-strong: rgba(241, 243, 246, .5)}}.qz-lang-action{font-size:var(--qz-font-size-14);font-weight:600;letter-spacing:.02em;min-width:2.75rem}.qz-lang-action:hover{background:var(--qz-surface-muted);color:var(--qz-ink)}@media(max-width:900px){.qz-lang-action{font-size:var(--qz-font-size-14)}}.qz-header .qz-favorites-action{display:flex;flex-direction:row;width:auto;min-width:2.75rem;padding-inline:8px;gap:6px}@media(max-width:1100px){.qz-favorites-text{display:none}}@media(max-width:480px){.qz-header .qz-favorites-action{display:none}}body :where(button,input,select,textarea){font-family:var(--qz-font-sans)}body :where(button,select){line-height:1.5}.qz-header :is(.qz-module-link,.qz-header-action,.qz-category-link,.qz-mobile-module){font-size:var(--qz-font-size-14);font-weight:400;letter-spacing:0}.qz-header [aria-current=page],.qz-header-brand-copy strong{font-weight:600}.qz-header .qz-module-link{padding-inline:12px}.qz-header .qz-category-count{font-size:var(--qz-font-size-14)}.qz-header .qz-header-brand-copy strong{font-size:var(--qz-font-size-16)}.qz-learning-nav{display:flex;align-items:center;gap:8px;margin:0 0 28px;padding-bottom:12px;border-bottom:1px solid var(--qz-line)}.qz-learning-nav a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;color:var(--qz-ink-secondary);border-radius:var(--qz-radius-sm,8px);font-size:var(--qz-font-size-14,14px);text-decoration:none}.qz-learning-nav a:hover{color:var(--qz-accent);background:var(--qz-accent-soft)}.qz-learning-nav a[aria-current=page]{color:var(--qz-accent);background:var(--qz-accent-soft);font-weight:600}.home-page{--max: var(--qz-container);font-size:var(--qz-font-size-16)}.home-start,.home-browse-layout{width:min(calc(100% - 48px),var(--max));margin-inline:auto}.home-start{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);gap:40px;align-items:center;padding:40px 0 32px}.home-page .hero{min-height:0;padding:12px 0;align-items:flex-start;text-align:left}.home-eyebrow{margin:0 0 16px;color:var(--blue);font-size:var(--qz-font-size-14);font-weight:600}.home-page .hero h1{font-size:clamp(1.9rem,3vw,2.65rem);line-height:1.3;font-weight:730;letter-spacing:-.035em}.home-page .hero h1 span+span:before{content:" "}.home-page .hero .sub{font-size:var(--qz-font-size-16);line-height:1.7;margin:12px 0 24px}.home-page .big-search{width:100%;height:64px;border-radius:var(--qz-radius-surface,14px);box-shadow:0 4px 20px #17427812}.home-page .big-search input{font-size:var(--qz-font-size-16)}.home-page .big-search .mag{width:44px}.home-page .big-search .kbd{margin-right:8px}.home-search-submit{flex:0 0 auto;min-height:46px;margin-right:8px;padding:0 20px;border-radius:var(--qz-radius-control,10px);background:var(--blue);color:#fff;font-size:var(--qz-font-size-14);font-weight:600}.home-search-submit:hover{background:var(--qz-accent-hover)}html.dark .home-search-submit,html[data-theme=dark] .home-search-submit{color:#111318}.home-search-submit:active{transform:translateY(1px)}.home-search-hint{margin:10px 0 0;font-size:var(--qz-font-size-14);color:var(--ink-3)}.home-page .hero-beginner-link{margin-top:4px;padding-left:0;font-size:var(--qz-font-size-14)}.home-page .search-suggest{width:100%}.home-page .search-suggest button{font-size:var(--qz-font-size-14)}.home-start .community-preview{margin:0;padding:22px;width:100%;border:1px solid var(--line);border-radius:var(--qz-radius-lg,18px);background:var(--surface)}.home-start .community-preview-head{align-items:center;gap:16px;margin-bottom:16px}.home-start .community-preview-head h2{font-size:var(--qz-font-size-16)}.home-start .community-preview-head>div{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}.home-start .community-preview-head>div>span{margin:0;font-size:var(--qz-font-size-14)}.home-start .community-preview-head>a{font-size:var(--qz-font-size-14)}.home-start .quick-tools-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.home-start .quick-tools-grid>a{min-height:72px;padding:12px;border-radius:var(--qz-radius-control,10px);border-color:transparent;background:var(--surface-soft);box-shadow:none}.home-start .quick-tools-grid>a:hover{background:var(--blue-soft);border-color:color-mix(in srgb,var(--blue) 25%,transparent)}.home-start .quick-tools-grid strong{font-size:var(--qz-font-size-14);line-height:1.5}.home-start .quick-tools-grid span{font-size:var(--qz-font-size-14);margin-top:3px}.home-community-link{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:12px;border-top:1px solid var(--line);padding-top:12px;color:var(--ink-2);font-size:var(--qz-font-size-14)}.home-community-link span:first-child{font-weight:600;color:var(--blue)}.home-community-link span:last-child{margin-left:auto;color:var(--blue)}.home-browse-layout{display:grid;grid-template-columns:208px minmax(0,1fr);gap:28px;align-items:start}.home-library{min-width:0}.home-browse-layout .directory-portal{position:sticky;top:calc(var(--nav-h) + 20px);width:100%;max-height:calc(100dvh - var(--nav-h) - 40px);overflow-y:auto;overscroll-behavior:contain;padding:20px 12px 12px;margin:0;border:1px solid var(--line);border-radius:var(--qz-radius-lg,18px);background:var(--surface)}.home-page .portal-head{padding:0 10px;margin-bottom:14px}.home-page .portal-head h2{font-size:var(--qz-font-size-16);line-height:1.5}.home-page .portal-head p{font-size:var(--qz-font-size-14);line-height:1.6}.home-page .portal-grid{grid-template-columns:minmax(0,1fr);gap:3px}.home-page .portal-card{min-height:46px;padding:8px;flex-direction:row;justify-content:flex-start;gap:9px;text-align:left;border:0;border-radius:var(--qz-radius-control,10px);box-shadow:none;background:transparent;transform:none}.home-page .portal-card:hover,.home-page .portal-card.is-selected{background:var(--blue-soft);color:var(--blue);transform:none}.home-page .portal-icon{display:grid;width:26px;height:26px;border-radius:var(--qz-radius-sm,8px);background:transparent}.home-page .portal-icon svg{width:18px;height:18px}.home-page .portal-card strong{font-size:var(--qz-font-size-14);font-weight:400;line-height:1.45}.home-page .portal-card small{margin-left:auto;font-size:var(--qz-font-size-14);white-space:nowrap}.home-page .portal-card>span:last-child{display:none}.home-page .portal-card.is-extra,.home-page .portal-grid.is-expanded .portal-card.is-extra{display:flex}.home-all-categories{display:flex;width:100%;min-height:44px;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;padding:8px 12px;border-radius:var(--qz-radius-control,10px);font-size:var(--qz-font-size-14)}.home-all-categories.is-selected{background:var(--blue-soft);color:var(--blue);font-weight:600}.home-page .portal-toggle{display:none;font-size:var(--qz-font-size-14);width:100%;margin-top:8px}.home-page .featured{margin:0;padding:0}.home-page .f-head{margin-bottom:14px}.home-page .f-head h2{font-size:var(--qz-font-size-16)}.home-page .f-head>div{flex-wrap:wrap}.home-page .f-head span{font-size:var(--qz-font-size-14)}.home-page .f-row{display:grid;gap:12px;overflow:visible;padding:0}.home-page .fcard{min-height:164px;padding:16px;border-radius:var(--qz-radius-surface,14px)}.home-page .fc-copy small{font-size:var(--qz-font-size-14);letter-spacing:.02em}.home-page .fcard>p{font-size:var(--qz-font-size-14);line-height:1.65;margin:12px 0}.home-page .fc-ft{font-size:var(--qz-font-size-14)}.home-page .directory-toolbar{top:var(--nav-h);margin-top:26px;min-height:100px;padding:16px 0;grid-template-areas:"heading actions" "status status";gap:8px 12px;backdrop-filter:blur(16px);border-top:0}.home-page .directory-heading h2{font-size:var(--qz-font-size-20)}.home-page .directory-heading p{display:none}.home-page .directory-status{min-height:22px}.home-page .search-status,.home-page .clear-filters{font-size:var(--qz-font-size-14)}.home-page .directory-actions{gap:12px}.home-page .sort-label{display:none}.home-page .directory-fav,.home-page .seg-btn{min-height:44px;font-size:var(--qz-font-size-14)}.home-page .seg{padding:3px;border-radius:var(--qz-radius-control,10px);background:var(--surface-soft)}.home-page .seg-btn{border-radius:var(--qz-radius-sm,8px)}.home-page .seg-btn.is-on{background:var(--surface);color:var(--blue);box-shadow:0 1px 4px #14284614}.home-page .page{width:100%;padding:20px 0 52px}.home-page .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.home-page .card{min-height:176px;padding:20px 18px 16px;border-radius:var(--qz-radius-surface,14px)}.home-page .card:hover{border-color:color-mix(in srgb,var(--blue) 32%,var(--line));box-shadow:0 6px 20px #17427811}.home-page .hd h3{font-size:var(--qz-font-size-16)}.home-page .card .ds{font-size:var(--qz-font-size-14);line-height:1.75;margin:14px 0 18px}.home-page .ft{font-size:var(--qz-font-size-14);min-height:30px}.home-page .lgw,.home-page .lgw img{width:40px;height:40px;border-radius:11px}.home-page .fav,.home-page .share-tool{min-width:44px;min-height:44px}.home-page .card-shell .fav{right:6px;bottom:8px}.home-page .card-shell .share-tool{right:48px;bottom:8px}.home-page.is-searching .home-start{grid-template-columns:minmax(0,1fr);padding-block:24px}.home-page.is-searching .hero{max-width:760px;width:100%;padding:0}.home-page.is-searching .hero h1,.home-page.is-searching .home-eyebrow,.home-page.is-searching .hero .sub,.home-page.is-searching .home-search-hint{display:none}.home-page.is-searching .home-browse-layout{grid-template-columns:minmax(0,1fr)}.home-page.is-searching .directory-toolbar{margin-top:0}.home-page.is-searching .grid{grid-template-columns:repeat(4,minmax(0,1fr))}.home-page.is-filtered #featured{display:none}.home-page.is-filtered .directory-toolbar{margin-top:0}@media(max-width:1100px){.home-start{gap:24px;grid-template-columns:minmax(0,1fr) minmax(300px,.9fr)}.home-browse-layout{grid-template-columns:188px minmax(0,1fr);gap:20px}.home-page .f-row{grid-template-columns:repeat(2,minmax(0,1fr))}.home-page .fcard{min-height:148px}.home-page .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-page.is-searching .grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.home-start,.home-browse-layout{width:calc(100% - 32px)}.home-start{grid-template-columns:minmax(0,1fr);gap:20px;padding:24px 0}.home-page .hero{padding:0}.home-page .hero h1{font-size:clamp(1.65rem,5.5vw,2.1rem)}.home-page .hero .sub{font-size:var(--qz-font-size-14);margin-bottom:18px}.home-eyebrow{margin-bottom:10px}.home-start .community-preview{padding:16px}.home-start .quick-tools-grid>a{padding:10px;min-height:68px}.home-start .community-preview-head{flex-direction:row}.home-browse-layout{display:block}.home-browse-layout .directory-portal{position:static;max-height:none;overflow:visible;padding:16px;margin-bottom:24px}.home-page .portal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.home-page .portal-card{flex-direction:column;justify-content:center;text-align:center;gap:6px;padding:10px 4px;min-height:80px;background:var(--surface-soft)}.home-page .portal-card small{display:none}.home-page .portal-card strong{font-size:var(--qz-font-size-14)}.home-page .portal-grid:not(.is-expanded) .portal-card:nth-child(n+7){display:none}.home-page .portal-grid.is-expanded .portal-card{display:flex}.home-all-categories{display:none}.home-page .portal-head{padding:0}.home-page .portal-head p{display:none}.home-page .portal-toggle{display:flex;align-items:center;justify-content:center;max-width:none;margin-top:10px}.home-page .directory-toolbar{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "actions" "status";gap:10px;min-height:0;padding:14px 0}.home-page .directory-actions{justify-content:space-between}.home-page .directory-heading h2{font-size:var(--qz-font-size-16)}.home-page .grid,.home-page.is-searching .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.home-page .card{padding:16px}.home-page .directory-status{flex-wrap:wrap}.home-page .home-search-submit{padding-inline:14px}.home-page .big-search .kbd{display:none}}@media(max-width:480px){.home-page .grid,.home-page.is-searching .grid{grid-template-columns:minmax(0,1fr)}.home-page .card{min-height:162px}.home-page .fcard{padding:14px}.home-page .fcard>p{-webkit-line-clamp:3}.home-page .fc-ft{display:none}.home-start .quick-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-page .seg-btn{min-width:40px;padding-inline:8px}.home-page .directory-fav{padding-inline:10px}}@media(prefers-reduced-motion:reduce){.home-page .card,.home-page .fcard,.home-page .home-search-submit{transition:none;transform:none}}.qz-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-top:24px;padding:20px 0;border-top:1px solid var(--qz-line);font-size:var(--qz-font-size-14)}.qz-pagination p{margin:0;color:var(--qz-ink-secondary);font-variant-numeric:tabular-nums}.qz-pagination-controls,.qz-page-numbers,.qz-page-jump{display:flex;align-items:center;gap:6px}.qz-pagination-controls{flex-wrap:wrap}.qz-pagination button,.qz-pagination select{min-height:44px;min-width:44px;padding:8px 12px;border:1px solid var(--qz-line);border-radius:var(--qz-radius-control,10px);background:var(--qz-surface);color:var(--qz-ink);font:inherit;cursor:pointer}.qz-pagination button:hover:not(:disabled),.qz-pagination button[aria-current=page]{border-color:var(--qz-accent);background:var(--qz-accent-soft);color:var(--qz-accent)}.qz-pagination button[aria-current=page]{font-weight:600}.qz-pagination button:disabled{opacity:.45;cursor:not-allowed}.qz-pagination :is(button,select):focus-visible{outline:2px solid var(--qz-accent);outline-offset:3px}.qz-page-jump{margin-left:6px;color:var(--qz-ink-secondary)}.qz-page-compact{display:none;min-width:54px;text-align:center;font-variant-numeric:tabular-nums}.qz-page-end{color:var(--qz-ink-tertiary)}@media(max-width:760px){.qz-pagination{align-items:flex-start;flex-direction:column}.qz-page-numbers{display:none}.qz-page-compact{display:block}.qz-pagination-controls{width:100%}.qz-page-jump{margin-left:auto}}@media(max-width:380px){.qz-page-jump{margin-left:0}}:root{--discovery-gap:24px;--discovery-section:56px;--discovery-radius:14px}[hidden]{display:none!important}.discovery-page{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,PingFang SC,sans-serif;line-height:1.7}.discovery-page .home-start{display:block;padding:36px 0}.discovery-page .hero{width:min(100%,820px);margin:0 auto;align-items:flex-start;text-align:left}.discovery-page .hero h1{font-size:clamp(1.8rem,3vw,2.65rem);letter-spacing:-.025em}.discovery-page .hero h1,.discovery-page .hero .sub,.discovery-page .home-eyebrow,.discovery-page .home-search-hint{display:block!important}.discovery-page .hero .sub{color:var(--qz-ink-secondary);margin:14px 0 26px}.discovery-page .home-eyebrow{margin-bottom:12px}.discovery-page .big-search{border:1px solid var(--qz-line);height:64px;border-radius:var(--discovery-radius);background:var(--qz-surface)}.discovery-page .big-search:focus-within{border-color:var(--qz-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--qz-accent) 15%,transparent)}.discovery-page .big-search input{min-width:0}.discovery-page .home-search-submit{color:var(--qz-on-accent,#fff)!important;background:var(--qz-accent,#2563eb)}.discovery-page .home-search-hint{font-size:var(--qz-font-size-14);line-height:1.6;text-align:left;width:100%}.scene-shortcuts{width:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:22px}.scene-shortcuts a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;border:1px solid var(--qz-line);border-radius:var(--qz-radius-control,10px);background:var(--qz-surface);color:var(--qz-ink);font-size:var(--qz-font-size-14);font-weight:600}.scene-shortcuts a span{color:var(--qz-ink-tertiary)}.scene-shortcuts a:hover{color:var(--qz-accent);border-color:var(--qz-accent)}.discovery-section,.discovery-status{width:min(calc(100% - 48px),var(--qz-container));margin:0 auto var(--discovery-section)}.discovery-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.discovery-section-head h2{color:var(--qz-ink);font-size:clamp(1.3rem,2.1vw,1.6rem);line-height:1.45;margin:6px 0 8px;letter-spacing:-.015em}.discovery-section-head p,.discovery-scene-page section>p{margin:0;color:var(--qz-ink-secondary);font-size:var(--qz-font-size-14)}.discovery-section-head>a{white-space:nowrap;color:var(--qz-accent);font-size:var(--qz-font-size-14);min-height:44px;display:flex;align-items:center}.discovery-section-head button,.discovery-status button{border:1px solid var(--qz-line);padding:8px 14px;border-radius:var(--qz-radius-control,10px);min-height:44px;background:var(--qz-surface);color:var(--qz-ink);cursor:pointer}.discovery-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--discovery-gap)}.discovery-guide,.discovery-tool{display:flex;flex-direction:column;gap:10px;min-width:0;padding:24px;border:1px solid var(--qz-line);border-radius:var(--discovery-radius);background:var(--qz-surface);color:var(--qz-ink);text-align:left;box-shadow:none;transition:border-color var(--qz-duration-fast,.14s)}.discovery-guide:hover,.discovery-tool:hover{border-color:color-mix(in srgb,var(--qz-accent) 50%,var(--qz-line))}.discovery-guide h3{font-size:var(--qz-font-size-20);line-height:1.5;font-weight:600;margin:0}.discovery-tool h3{font-size:var(--qz-font-size-16);line-height:1.5;font-weight:600;margin:0}.discovery-guide p,.discovery-tool>p{font-size:var(--qz-font-size-14);line-height:1.75;margin:0;color:var(--qz-ink-secondary);overflow-wrap:anywhere}.discovery-guide small{padding-top:8px;font-size:var(--qz-font-size-14);line-height:1.7;color:var(--qz-ink-secondary)}.discovery-label{display:block;font-size:var(--qz-font-size-14);line-height:1.6;color:var(--qz-ink-secondary);font-weight:400}.discovery-link{color:var(--qz-accent);font-size:var(--qz-font-size-14);font-weight:600}.discovery-guide>.discovery-link{padding-top:10px;margin-top:auto}.discovery-local .discovery-label{color:var(--qz-accent)}.discovery-tool-head{display:flex;align-items:center;gap:12px}.discovery-tool-head h3{flex:1;min-width:0;overflow-wrap:anywhere}.discovery-tool-head .lgw{flex:none;position:relative;width:40px;height:40px;overflow:hidden;border-radius:var(--qz-radius-control,10px);background:var(--qz-canvas)}.discovery-tool-head img{position:absolute;inset:0;background:var(--qz-surface)}.discovery-tool-head .logo-placeholder{display:grid;place-items:center;width:40px;height:40px;color:var(--qz-accent)}.discovery-fav{flex:none;width:44px;height:44px;display:grid;place-items:center;border-radius:var(--qz-radius-control,10px);color:var(--qz-ink-secondary);background:transparent;border:0;font-size:var(--qz-font-size-24);cursor:pointer}.discovery-fav[aria-pressed=true]{color:var(--qz-accent);background:var(--qz-accent-soft)}.discovery-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:auto;padding-top:8px}.discovery-card-actions>a,.discovery-card-actions>button{min-height:44px;display:inline-flex;align-items:center;font-size:var(--qz-font-size-14);color:var(--qz-accent)}.discovery-tool .discovery-open,.discovery-page .discovery-open,.discovery-scene-page .discovery-open{min-height:44px;height:auto;padding:6px 0;border:0;border-radius:6px;box-shadow:none;transform:none;background:transparent;color:var(--qz-accent);font-weight:600}.discovery-tool .discovery-open:hover{text-decoration:underline;text-underline-offset:4px}.discovery-page .home-browse-layout{display:block;margin-bottom:var(--discovery-section)}.discovery-page #directories{display:none}.discovery-page .featured{padding:0}.discovery-page .directory-toolbar{position:static;backdrop-filter:none;margin-top:0}.discovery-page:not(.has-discovery-results) #searchResults,.discovery-page:not(.has-discovery-results) #directoryToolbar{display:none}.discovery-page.has-discovery-results .discovery-default{display:none!important}.discovery-page.has-discovery-results .home-start{padding:28px 0}.discovery-page.has-discovery-results .hero h1{font-size:var(--qz-font-size-28)}.discovery-page.has-discovery-results .home-eyebrow{display:none!important}.discovery-page .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--discovery-gap)}.discovery-page .page{padding:16px 0 0}.discovery-page .sec{margin:0}.discovery-page .external-results-title,.discovery-result-group h2{font-size:var(--qz-font-size-20);margin:0 0 18px}.discovery-result-group,.discovery-page .local-search-results{margin:0 0 32px}.discovery-page .empty a{color:var(--qz-accent);display:inline-flex;align-items:center;min-height:44px}.discovery-page .directory-heading p{display:block;font-size:var(--qz-font-size-14)}.discovery-status{padding:16px;border:1px solid var(--qz-line);border-radius:var(--qz-radius-surface,14px);background:var(--qz-surface)}.discovery-privacy{margin-top:18px;max-width:760px;color:var(--qz-ink-secondary);line-height:1.8;font-size:var(--qz-font-size-14)}.discovery-page [data-rv],.discovery-page .hin{opacity:1!important;transform:none!important;animation:none!important}.catalogue-page .home-browse-layout{display:grid;grid-template-columns:208px minmax(0,1fr);gap:24px}.catalogue-page #directories{display:block}.catalogue-page .hero{width:100%;align-items:flex-start;text-align:left}.catalogue-page .hero .scene-shortcuts{display:none}.catalogue-page .big-search{max-width:820px}.discovery-scene-page{max-width:var(--qz-container);margin:40px auto 64px;padding-inline:24px;font-family:system-ui,Microsoft YaHei,sans-serif}.discovery-scene-page>header{margin:28px 0}.discovery-scene-page h1{font-size:var(--qz-font-size-32);line-height:1.3;margin:10px 0}.discovery-scene-page h2{font-size:var(--qz-font-size-20);margin:0 0 16px;line-height:1.5}.discovery-scene-page section,.discovery-scene-page aside{margin-bottom:32px}.discovery-scene-page p{color:var(--qz-ink-secondary);line-height:1.8}.discovery-scene-page .discovery-grid{margin-top:20px}.discovery-materials{padding:24px;border:1px solid var(--qz-line);background:var(--qz-surface);border-radius:var(--discovery-radius)}.discovery-steps{list-style:none;padding:0;display:grid;gap:16px}.discovery-steps li{display:flex;align-items:flex-start;gap:16px}.discovery-steps li>span{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;color:var(--qz-accent);background:var(--qz-accent-soft)}.discovery-steps p{margin:2px 0}.discovery-resource-links{display:flex;flex-wrap:wrap;gap:16px 28px}.discovery-resource-links a{min-height:44px;color:var(--qz-accent);display:flex;align-items:center}.qz-favorites-text{font-size:var(--qz-font-size-14);white-space:nowrap}.qz-header .qz-favorites-action{width:auto;padding-inline:8px;gap:6px}.qz-community-account{font-size:var(--qz-font-size-14);min-height:44px;display:flex;align-items:center;white-space:nowrap}.discovery-page :focus-visible,.discovery-scene-page :focus-visible{outline:3px solid var(--qz-accent);outline-offset:3px}@media(max-width:1100px){.qz-favorites-text,.qz-community-account{display:none}.discovery-grid,.discovery-page .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){.discovery-page .home-start{padding-top:32px}.scene-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}.catalogue-page .home-browse-layout{display:block}.catalogue-page #directories{position:static;max-height:none;margin-bottom:24px}.catalogue-page .portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalogue-page .portal-toggle{display:block}.catalogue-page .portal-grid:not(.is-expanded) .portal-card:nth-child(n+7){display:none}.discovery-section-head{align-items:flex-start;flex-direction:column;gap:6px}.discovery-section-head>a{min-height:36px}.discovery-page .directory-toolbar{grid-template-areas:"heading" "actions" "status";grid-template-columns:1fr}.discovery-page .directory-actions{justify-content:flex-start;flex-wrap:wrap}.discovery-page .hero .sub{margin-bottom:20px}}@media(max-width:540px){:root{--discovery-gap:14px;--discovery-section:36px}.discovery-section,.discovery-status,.discovery-page .home-start,.discovery-page .home-browse-layout{width:calc(100% - 32px)}.discovery-page .hero{align-items:flex-start;text-align:left}.discovery-page .hero h1{max-width:330px;font-size:var(--qz-font-size-28);line-height:1.45}.discovery-page .home-eyebrow,.discovery-page .hero .sub{font-size:var(--qz-font-size-14)}.discovery-page .big-search{height:60px}.discovery-page .big-search input{font-size:var(--qz-font-size-14)}.discovery-page .big-search .mag{width:36px;flex:none}.discovery-page .big-search .kbd{display:none}.discovery-page .home-search-submit{padding-inline:14px}.scene-shortcuts{gap:8px;margin-top:16px}.scene-shortcuts a{font-size:var(--qz-font-size-14);min-height:46px}.discovery-page .home-search-hint{font-size:var(--qz-font-size-14)}.discovery-grid,.discovery-page .grid{grid-template-columns:minmax(0,1fr)}.discovery-guide,.discovery-tool{padding:20px}.discovery-page .quick-tools-grid{grid-template-columns:1fr}.discovery-scene-page{padding-inline:16px}.discovery-scene-page h1{font-size:var(--qz-font-size-32)}.discovery-page .directory-actions{gap:8px}.discovery-page .seg-btn{padding-inline:12px}}@media(prefers-reduced-motion:reduce){.discovery-page *,.discovery-scene-page *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.discovery-main{margin:0;padding:0}.discovery-page.show-legacy-categories #directories{display:block;position:static;max-height:none;margin-bottom:24px}.directory-first{--discovery-gap:14px;--discovery-section:36px}.directory-first .home-browse-layout,.directory-first.is-searching .home-browse-layout{display:grid;grid-template-columns:216px minmax(0,1fr);align-items:start;gap:24px;margin:24px auto 40px}.directory-first .home-library .home-start{display:block;width:100%;margin:0;padding:0 0 18px}.directory-first .hero,.directory-first.is-searching .hero{width:100%;max-width:none;margin:0;padding:0;text-align:left;align-items:flex-start}.directory-first .hero h1,.directory-first.has-discovery-results .hero h1{font-size:var(--qz-page-title);line-height:1.3}.directory-first.has-discovery-results .home-eyebrow{display:block!important;margin-bottom:6px;font-size:var(--qz-font-size-14)}.directory-first .hero .sub{margin:10px 0 8px;font-size:var(--qz-font-size-16)}.directory-first .big-search{height:56px}.directory-first .home-search-hint{margin-top:8px;font-size:var(--qz-font-size-14);text-align:left}.directory-first .scene-shortcuts{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;margin-top:12px}.directory-first .scene-shortcuts a{min-height:44px;padding:6px 14px;border:0;background:var(--qz-surface-muted);color:var(--qz-ink-secondary);font-size:var(--qz-font-size-14);font-weight:500}.directory-first .scene-shortcuts a:hover{color:var(--qz-accent);background:var(--qz-accent-soft)}.directory-first .scene-shortcuts a span{display:none}.catalogue-overview{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px 20px;width:100%;margin:0 0 12px}.catalogue-overview a{display:inline-flex;align-items:center;min-height:36px;gap:8px;color:var(--qz-ink-secondary);font-size:var(--qz-font-size-14)}.catalogue-overview strong{color:var(--qz-ink);font-size:var(--qz-font-size-16);font-variant-numeric:tabular-nums}.catalogue-overview small{display:none}.catalogue-overview a:hover{color:var(--qz-accent);text-decoration:underline}.directory-first #homeLocal{width:100%;margin:12px 0 0;padding:10px 0 0;border:0;border-top:1px solid var(--qz-line);background:transparent}.directory-first #homeLocal .discovery-section-head{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;margin:0 0 6px}.directory-first #homeLocal .discovery-label,.directory-first #homeLocal .home-local-note{display:none}.directory-first #homeLocalTitle{margin:0;font-size:var(--qz-font-size-14)}.directory-first #homeLocal .discovery-section-head>a{min-height:32px;gap:4px;font-size:var(--qz-font-size-14)}.directory-first #homeLocalGrid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.directory-first #homeLocalGrid .discovery-local{display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px;gap:0;border:0;background:transparent;border-radius:var(--qz-radius-control,10px)}.directory-first #homeLocalGrid h3{font-size:var(--qz-font-size-14);font-weight:500}.directory-first #homeLocalGrid p,.directory-first #homeLocalGrid .discovery-link,.directory-first.is-searching #homeLocal{display:none}.directory-first .directory-toolbar{margin:0;padding:16px 0 10px;border-top:1px solid var(--qz-line);min-height:0;scroll-margin-top:80px}.directory-first .directory-heading h2{font-size:var(--qz-font-size-20)}.directory-first .directory-heading p{font-size:var(--qz-font-size-14)}#selectedCategoryLink{display:inline-flex;min-height:32px;align-items:center;color:var(--qz-accent);font-size:var(--qz-font-size-14)}.directory-first .page{padding:6px 0 0}.directory-first .external-results-title{display:none}.directory-first .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.directory-first .discovery-tool,body[data-category-id] .discovery-tool{padding:16px;gap:8px}.directory-first .discovery-tool>p,body[data-category-id] .discovery-tool>p{font-size:var(--qz-font-size-14);line-height:1.7;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:3.4em}.directory-first .discovery-tool h3,body[data-category-id] .discovery-tool h3{font-size:var(--qz-font-size-16)}.directory-first .discovery-card-actions,body[data-category-id] .discovery-card-actions{gap:6px 12px;padding-top:4px}.directory-first .discovery-tool .discovery-open{padding:6px 0}.directory-first .discovery-card-actions>a,.directory-first .discovery-card-actions>button{font-size:var(--qz-font-size-14)}.directory-first #directories,body[data-category-id] #directories{display:block;position:sticky;top:84px;width:100%;max-height:calc(100dvh - 104px);overflow-y:auto;overscroll-behavior:contain;margin:0;padding:12px 12px 12px 0;border:0;border-right:1px solid var(--qz-line);border-radius:0;background:transparent;scroll-margin-top:80px}.directory-first #directories .portal-head,body[data-category-id] #directories .portal-head{margin:0 0 10px;padding:0 8px}#directories .home-catalogue-all{display:none}.directory-first #directoryPortalTitle,body[data-category-id] #directoryPortalTitle{font-size:var(--qz-font-size-16);line-height:1.5;scroll-margin-top:90px}.directory-first #directories .portal-head p,body[data-category-id] #directories .portal-head p{display:block;font-size:var(--qz-font-size-14);color:var(--qz-ink-secondary);line-height:1.7;margin-top:4px}.directory-first #homeAllCategories,body[data-category-id] #homeAllCategories{display:flex;width:100%;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:8px;margin:0 0 4px;border-radius:var(--qz-radius-sm,8px);font-size:var(--qz-font-size-14)}.directory-first #directoryPortal,body[data-category-id] #directoryPortal{display:grid;grid-template-columns:minmax(0,1fr);gap:2px}.directory-first #directoryPortal .portal-card,body[data-category-id] #directoryPortal .portal-card{display:flex;align-items:center;flex-direction:row;justify-content:flex-start;min-height:44px;padding:8px;gap:8px;border:0;border-radius:var(--qz-radius-sm,8px);background:transparent;text-align:left;transform:none;box-shadow:none}.directory-first #directoryPortal .portal-card strong,body[data-category-id] #directoryPortal .portal-card strong{font-size:var(--qz-font-size-14);font-weight:400;min-width:0}.directory-first #directoryPortal .portal-card small,body[data-category-id] #directoryPortal .portal-card small{display:block;margin-left:auto;color:var(--qz-ink-secondary);white-space:nowrap;font-size:var(--qz-font-size-14);font-variant-numeric:tabular-nums}.directory-first #directoryPortal .portal-icon,body[data-category-id] #directoryPortal .portal-icon{display:grid;place-items:center;flex:none;width:20px;height:20px;color:var(--qz-ink-secondary)}#directories .portal-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}#directories .portal-card>span:last-child{display:none}#directories .portal-card:hover,#directories .portal-card.is-selected,#directories .portal-card[aria-current=page],#directories .home-all-categories.is-selected{color:var(--qz-accent);background:var(--qz-accent-soft)}.directory-first #directoryPortalToggle,body[data-category-id] #directoryPortalToggle{display:none}#directories :focus-visible{outline:3px solid var(--qz-accent);outline-offset:1px}#homeTopPagination .qz-pagination,#categoryTopPagination .qz-pagination{margin:0 0 14px;padding:0;border:0}#homeTopPagination .qz-pagination>p,#categoryTopPagination .qz-pagination>p,#homeTopPagination .qz-page-numbers,#categoryTopPagination .qz-page-numbers{display:none}#homeTopPagination .qz-page-compact,#categoryTopPagination .qz-page-compact{display:inline}@media(max-width:1100px){.directory-first .home-browse-layout,.directory-first.is-searching .home-browse-layout{grid-template-columns:196px minmax(0,1fr);gap:18px}.directory-first .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.directory-first #homeLocalGrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.directory-first .home-browse-layout,.directory-first.is-searching .home-browse-layout{display:flex;flex-direction:column;gap:18px}.directory-first .home-library{width:100%}.directory-first #directories,body[data-category-id] #directories{position:static;max-height:none;padding:4px 8px;overflow:visible;border:1px solid var(--qz-line);border-radius:var(--qz-radius-surface,14px);background:var(--qz-surface)}.directory-first #directories .portal-head,body[data-category-id] #directories .portal-head{display:none}.directory-first #directoryPortalToggle,body[data-category-id] #directoryPortalToggle{display:flex;width:100%;max-width:none;align-items:center;justify-content:space-between;min-height:44px;margin:0;padding:8px;font-size:var(--qz-font-size-14)}.directory-first #directoryPortal,body[data-category-id] #directoryPortal{grid-template-columns:repeat(2,minmax(0,1fr))}[data-rail-ready] #directories:not(.is-expanded) #directoryPortal,[data-rail-ready] #directories:not(.is-expanded) #homeAllCategories{display:none}.directory-first .hero h1,.directory-first.has-discovery-results .hero h1{font-size:var(--qz-font-size-28);max-width:none}.directory-first .catalogue-overview{gap:4px 14px}.directory-first .directory-toolbar{grid-template-areas:"heading" "actions" "status";grid-template-columns:1fr}}@media(max-width:540px){.directory-first .home-browse-layout{width:calc(100% - 32px);margin-top:16px}.directory-first .grid{grid-template-columns:minmax(0,1fr)}.directory-first .big-search{height:54px}.directory-first .scene-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.directory-first .scene-shortcuts a{padding:6px}.directory-first .directory-fav,.directory-first .seg-btn{font-size:var(--qz-font-size-14);padding-inline:10px}}.discovery-card-actions>button{color:var(--qz-ink-secondary)}.discovery-tool .discovery-card-actions{gap:8px}.discovery-tool .discovery-card-actions>button{padding-inline:8px;border-radius:var(--qz-radius-control)}.discovery-tool .discovery-card-actions>button:hover{background:var(--qz-surface-muted);color:var(--qz-ink)}.directory-first #directoryPortal .portal-card.is-selected,body[data-category-id] #directoryPortal .portal-card[aria-current=page]{background:var(--qz-accent-soft);font-weight:700}@media(min-width:1101px){.directory-first #homeLocal{display:grid;grid-template-columns:112px minmax(0,1fr) 100px;align-items:center;gap:12px}.directory-first #homeLocal .discovery-section-head{display:contents}.directory-first #homeLocal .discovery-section-head>div{grid-column:1;grid-row:1}.directory-first #homeLocal .discovery-section-head>a{grid-column:3;grid-row:1;justify-self:end}.directory-first #homeLocalGrid{grid-column:2;grid-row:1}}@media(max-width:800px){.directory-first #homeLocal{display:none}}@media(max-width:380px){#homeTopPagination .qz-page-jump>span,#categoryTopPagination .qz-page-jump>span{display:none}#homeTopPagination .qz-pagination :is(button,select),#categoryTopPagination .qz-pagination :is(button,select){padding-inline:8px}#homeTopPagination .qz-page-compact,#categoryTopPagination .qz-page-compact{min-width:44px}#homeTopPagination .qz-page-jump,#categoryTopPagination .qz-page-jump{margin-left:auto}}.directory-first .hero h1{line-height:1.4;letter-spacing:-.015em;font-weight:700}.directory-first .directory-heading h2{font-size:var(--qz-font-size-20);line-height:1.5}.directory-first .discovery-tool,body[data-category-id] .discovery-tool{padding:20px;gap:10px}.directory-first .discovery-tool h3,body[data-category-id] .discovery-tool h3{font-weight:600;line-height:1.5}.directory-first .discovery-tool>p,body[data-category-id] .discovery-tool>p{line-height:1.75;-webkit-line-clamp:2;min-height:3.5em}.directory-first .discovery-tool>.discovery-label,body[data-category-id] .discovery-tool>.discovery-label{font-size:var(--qz-font-size-12)}.directory-first .scene-shortcuts{gap:8px;margin-top:12px}.directory-first #homeLocal{margin-top:16px;padding-top:10px}.directory-first .directory-toolbar{padding-block:20px 12px}.directory-first .discovery-card-actions,body[data-category-id] .discovery-card-actions{gap:8px 12px}@media(max-width:540px){.directory-first .discovery-tool,body[data-category-id] .discovery-tool{padding:16px}}.catalogue-page.directory-first #homeLocal{display:none}@media(max-width:800px)and (scripting:enabled){#directories:not(.is-expanded) #directoryPortal,#directories:not(.is-expanded) #homeAllCategories{display:none}}@media(max-width:540px){.directory-first .scene-shortcuts{display:flex;flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;gap:8px;scrollbar-width:thin;padding-bottom:4px}.directory-first .scene-shortcuts a{flex:0 0 auto;min-height:44px;padding:8px 14px;white-space:nowrap}}.directory-first.is-searching .external-results-title{display:block}.home-page.directory-first.is-searching #searchResults .sec>.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.home-page.directory-first.is-searching #searchResults .sec>.grid .discovery-tool-head h3{overflow-wrap:break-word;word-break:normal}@media(min-width:901px)and (max-width:1200px){.qz-header-inner{gap:1rem}.qz-header-brand{flex:0 0 auto;white-space:nowrap}}.home-full-catalog{margin-block:24px 36px;border-block:1px solid var(--qz-line, #dce4ed)}.home-full-catalog>summary{cursor:pointer;min-height:56px;padding:12px 0;color:var(--qz-ink);font-size:var(--qz-font-size-16, 16px);font-weight:600;overflow-wrap:anywhere}.home-full-catalog>summary span{margin-inline-start:12px;color:var(--qz-ink-secondary);font-size:var(--qz-font-size-14, 14px);font-weight:400}.catalogue-entry{margin:0 0 16px}.catalogue-entry a,.catalogue-related a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--qz-font-size-14, 14px)}.catalogue-related{display:flex;flex-wrap:wrap;gap:8px 24px;margin-bottom:20px;border-bottom:1px solid var(--qz-line, #dce4ed)}.home-full-catalog>summary:focus-visible{outline:2px solid var(--qz-accent, #2563eb);outline-offset:4px}.catalogue-page :is(#featured,#homeScenes,#homeLearning,#homeRecent,#homeLocal)[hidden]{display:none!important}@media(max-width:600px){.home-full-catalog>summary span{display:block;margin-inline-start:0;margin-top:4px}}

/* ===== discovery-nojs.css ===== */
.discovery-fav,[data-share-id],#discoveryDataStatus { display:none!important; }
.catalogue-page #featured { display:block!important; }

/* ===== catalog-usability.css ===== */
/* Evidence-led catalogue adjustments. Reuse QZ tokens, content and routes. */
.directory-first .directory-heading p { display:none; }
.directory-first .directory-toolbar {
  grid-template-areas:"heading actions" "status actions";
  padding-block:var(--qz-space-4) var(--qz-space-3);
  gap:var(--qz-space-1) var(--qz-space-4);
}
.directory-first .directory-actions { align-self:center; }
.directory-first .directory-status { min-height:0; }
.directory-first .catalogue-overview a[href='/tools/'] {
  color:var(--qz-accent); font-weight:500; gap:var(--qz-space-2);
}
.directory-first .catalogue-overview [data-catalogue-count] {
  margin-inline-end:var(--qz-space-1);
}
.directory-first .catalogue-overview a[href='/tools/'] small {
  display:inline; font-size:var(--qz-font-size-14);
}
body[data-category-id] .category-scenario-panel .scenario-filter {
  margin-top:0; padding-top:0;
}
.directory-first .discovery-tool,body[data-category-id] .discovery-tool {
  border-radius:var(--qz-radius-surface);
}
.directory-first .home-search-submit { color:var(--qz-on-accent)!important; }
/* Long English category names remain readable, not ellipsized. */
#directories .portal-card { min-width:0; }
#directories .portal-card strong { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.5; }
.discovery-service-note { margin:0; font-size:var(--qz-font-size-14); color:var(--qz-ink-secondary); line-height:1.65; }
@media(max-width:800px) {
  .directory-first .home-library>#directories,
  .category-workspace>#directories { margin:0 0 var(--qz-space-4); }
  .directory-first .directory-toolbar {
    grid-template-areas:"heading" "status" "actions";
    grid-template-columns:minmax(0,1fr);
    gap:var(--qz-space-2);
    padding-block:var(--qz-space-3);
  }
  .directory-first .catalogue-overview { gap:var(--qz-space-2) var(--qz-space-3); }
  .directory-first .catalogue-overview a { min-height:var(--qz-control); }
  .directory-first .catalogue-overview a[href='/tools/'] small { display:none; }
  .directory-first .catalogue-overview a[href='/tools/'] {
    padding-inline:var(--qz-space-2); border-radius:var(--qz-radius-sm);
    background:var(--qz-accent-soft);
  }
  body[data-category-id] .category-hero { padding-bottom:var(--qz-space-3); }
}
@media(max-width:540px) {
  .directory-first .home-browse-layout { margin-top:var(--qz-space-3); }
  .directory-first .hero h1 { font-size:var(--qz-font-size-24); line-height:1.35; }
  .directory-first .hero .sub { margin-block:var(--qz-space-1) var(--qz-space-2); }
  .directory-first .hero .sub { font-size:var(--qz-font-size-14); line-height:1.6; }
  .directory-first .catalogue-overview { margin-bottom:var(--qz-space-2); }
  .directory-first .home-library .home-start { padding-bottom:var(--qz-space-3); }
  .directory-first #homeTopPagination,body[data-category-id] #categoryTopPagination { display:none; }
  .directory-first .directory-toolbar { grid-template-areas:"heading actions" "status status"; grid-template-columns:minmax(0,1fr) auto; gap:var(--qz-space-1); }
  .directory-first .directory-actions { display:contents; }
  .directory-first .directory-actions .sort-controls { grid-column:1/-1; }
  .directory-first .directory-actions .seg { grid-column:1/-1; margin-top:var(--qz-space-2); }
  .directory-first .directory-status { grid-column:1/-1; }
  .directory-first .scene-shortcuts {
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
    overflow:visible; gap:var(--qz-space-2); padding-bottom:0;
  }
  .directory-first .scene-shortcuts a {
    min-width:0; min-height:var(--qz-control); padding:var(--qz-space-1) var(--qz-space-2);
    font-size:var(--qz-font-size-14); line-height:1.45;
    white-space:normal; text-align:center;
  }
  .directory-first .big-search input { font-size:var(--qz-font-size-16); }
}
@media(prefers-reduced-motion:reduce) {
  .directory-first .scene-shortcuts a { transition:none; }
}

/* ===== usability-fixes.css ===== */
/* Shared accessibility corrections; no new visual theme. */
:is(.skip-link,.guide-skip):not(:focus) { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
:is(.skip-link,.guide-skip):focus { position:fixed; top:8px; left:8px; z-index:10000; width:auto; height:auto; padding:12px 16px; background:var(--qz-surface,#fff); color:var(--qz-ink,#172033); border:2px solid var(--qz-accent,#2563eb); border-radius:8px; }
.wt-field-label { display:block; margin:12px 0 6px; font-size:14px; font-weight:500; line-height:1.6; color:var(--text-primary,var(--qz-ink,#172033)); }
.tool-row:has(>.wt-field-label) { flex-wrap:wrap; align-items:center; }
.tool-row>.wt-field-label { flex-basis:100%; margin-top:8px; }
.tool-grid2>.wt-field-label { grid-column:1/-1; }
.aic-row:has(>.wt-field-label) { display:grid; grid-template-columns:auto 110px auto minmax(0,1fr) 44px; gap:8px; align-items:start; }
.aic-row>.wt-field-label { margin:8px 0 0; }
.aic-row>.aic-content { min-width:0; width:100%; }
@media(max-width:600px) {
  .aic-row:has(>.wt-field-label) { grid-template-columns:minmax(0,1fr) 44px; gap:8px; }
  .aic-row>.wt-field-label { grid-column:1/-1; margin:0; }
  .aic-row>.wt-field-label:first-of-type { grid-row:1; }
  .aic-row>.aic-role { grid-column:1; grid-row:2; width:100%; }
  .aic-row>.aic-del { grid-column:2; grid-row:2; }
  .aic-row>.wt-field-label:nth-of-type(2) { grid-row:3; }
  .aic-row>.aic-content { grid-column:1/-1; grid-row:4; min-height:88px; }
}
:is(input,textarea,select,button,a):focus-visible { outline:2px solid var(--qz-accent,var(--accent,#2563eb)); outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { .wt-field-label,.skip-link { transition:none; } }

/* ===== search-engines.css ===== */
/* Compact native buttons, with the original local search as the no-script fallback. */
.home-search-engines[hidden], .home-engine-submit[hidden] { display: none !important; }
.home-search-engines {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  margin: 0 0 10px;
  padding: 0;
}
.home-search-engines button {
  min-height: 44px;
  min-width: 64px;
  padding: 8px 14px;
  border: 1px solid transparent;
  border-radius: var(--qz-radius-control, 10px);
  background: transparent;
  color: var(--qz-ink-secondary);
  font-family: var(--qz-font-sans);
  font-size: var(--qz-font-size-14, 14px);
  font-weight: 400;
  line-height: 1.5;
  cursor: pointer;
}
.home-search-engines button:hover { background: var(--qz-surface-muted); color: var(--qz-ink); }
.home-search-engines button[aria-pressed="true"] {
  border-color: var(--qz-line);
  background: var(--qz-surface);
  color: var(--qz-accent);
  font-weight: 500;
}
.home-search-engines button:focus-visible, .home-engine-submit:focus-visible {
  outline: 2px solid var(--qz-focus, var(--qz-accent));
  outline-offset: 3px;
}
.home-engine-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  font-size: var(--qz-font-size-14, 14px);
  line-height: 1.5;
  text-decoration: none;
}
.hero[data-search-engine]:not([data-search-engine="local"]) #homeSearchSubmit,
.hero[data-search-engine]:not([data-search-engine="local"]) #searchSuggest { display: none !important; }
.hero[data-search-engine]:not([data-search-engine="local"]) #homeSearchHint {
  color: var(--qz-ink-secondary);
  font-size: var(--qz-font-size-14, 14px);
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.hero[data-search-engine] .big-search input { min-width: 0; }
.hero[data-search-engine] .home-engine-submit { color: var(--qz-on-accent); }
.hero[data-search-engine] input[data-search-empty] { outline-color: var(--qz-danger); }
@media (max-width: 480px) {
  .home-search-engines { gap: 2px; }
  .home-search-engines button { min-width: 58px; padding-inline: 10px; }
  .hero[data-search-engine] .home-engine-submit { padding-inline: 14px; }
}

/* ===== clarity.css ===== */
/* QZ Clarity. Single source for navigation, tools, reading and Studio.
   Quiet, Apple-inspired hierarchy; QZ brand and real controls stay intact.
   Load after legacy page CSS. Do not reduce consent, attribution or warnings. */
html:root {
  --qz-canvas:#f7f8fa; --qz-surface:#fff; --qz-surface-muted:#f0f2f5;
  --qz-surface-strong:#e5e5ea; --qz-ink:#282a2d;
  --qz-ink-secondary:#5b616b; --qz-ink-tertiary:#5b616b;
  --qz-accent:#2563eb; --qz-accent-hover:#1d4ed8;
  --qz-accent-soft:#edf2ff; --qz-on-accent:#fff;
  --qz-line:#e4e7ec; --qz-line-strong:#bfc0c7;
  --qz-focus:#2563eb;
  --qz-font-sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --qz-font-size-12:.875rem; --qz-font-size-14:.875rem;
  --qz-font-size-16:1rem; --qz-leading-body:1.65;
  --qz-radius-control:.625rem; --qz-radius-surface:.75rem;
  --qz-header-height:4rem; --qz-shadow-float:0 8px 24px #1d1d1f0a;
  --qz-shadow-menu:0 16px 48px #1d1d1f18;
  --qc-body:.875rem; --qc-ui:.875rem; --qc-caption:.875rem;
  --qc-page:clamp(1.5rem,2.2vw,2rem); --qc-section:1.25rem;
  --qc-card:.9375rem; --qc-gap:1.5rem;
  --mono:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,Consolas,monospace;
  /* Map older page variables to the same palette, not a second theme. */
  --bg:var(--qz-canvas); --bg-soft:var(--qz-canvas); --bg-secondary:var(--qz-surface-muted);
  --surface:var(--qz-surface); --surface-soft:var(--qz-surface-muted); --card:var(--qz-surface);
  --ink:var(--qz-ink); --text:var(--qz-ink); --ink-2:var(--qz-ink-secondary);
  --ink-3:var(--qz-ink-tertiary); --text-secondary:var(--qz-ink-secondary); --text-muted:var(--qz-ink-secondary);
  --blue:var(--qz-accent); --blue-strong:var(--qz-accent-hover); --blue-soft:var(--qz-accent-soft);
  --accent:var(--qz-accent); --accent-soft:var(--qz-accent-soft);
  --line:var(--qz-line); --hair:var(--qz-line); --border:var(--qz-line); --border-light:var(--qz-line);
  --paper:var(--qz-surface); --muted:var(--qz-ink-secondary); --soft:var(--qz-ink-secondary);
  --directory-muted:var(--qz-ink-secondary); --directory-line:var(--qz-line);
  --directory-surface:var(--qz-surface); --directory-soft:var(--qz-canvas);
}
html.dark,html[data-theme="dark"] {
  --qz-canvas:#161618; --qz-surface:#222225; --qz-surface-muted:#2b2b30;
  --qz-surface-strong:#34343a; --qz-ink:#f5f5f7;
  --qz-ink-secondary:#b6b6bf; --qz-ink-tertiary:#b6b6bf;
  --qz-line:#3b3b41; --qz-line-strong:#66666f;
  --qz-accent:#8fb2ff; --qz-accent-hover:#b3caff; --qz-accent-soft:#29334d;
  --qz-on-accent:#161618; --qz-focus:#8fb2ff;
}
body,body.qz-shell,body.discovery-page,body.studio {
  background:var(--qz-canvas); color:var(--qz-ink); font-family:var(--qz-font-sans);
  font-size:var(--qc-body); line-height:var(--qz-leading-body); -webkit-font-smoothing:auto;
}
button,input,textarea,select { font-family:var(--qz-font-sans); }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),textarea { font-size:var(--qc-body); }
:focus-visible { outline:2px solid var(--qz-focus); outline-offset:3px; }
/* The navigation is one line; visible active state is retained. */
.qz-header { background:color-mix(in srgb,var(--qz-surface) 92%,transparent); border-color:var(--qz-line); backdrop-filter:blur(16px); }
.qz-header .qz-header-brand-copy strong { font-size:1.125rem; letter-spacing:-.025em; }
.qz-header-brand { min-width:0; }
.qz-header .qz-header-current,.qz-header .qz-module-link,.qz-header .qz-favorites-link { font-size:var(--qc-ui); }
.qz-header [aria-current="page"] { color:var(--qz-ink); }
.qz-module-link::after { display:none; }
.qz-header .qz-module-link[aria-current="page"] { background:var(--qz-surface-muted); border-radius:var(--qz-radius-control); }
.qz-header button,.qz-header .qz-favorites-link { min-height:44px; }
.qz-header kbd,.big-search .kbd,.hero-search kbd { display:none; }
/* Search, then browse. No hero art or marketing chrome. */
.directory-first .home-browse-layout { margin-block:32px 64px; gap:32px; grid-template-columns:208px minmax(0,1fr); }
.directory-first .home-start { padding:12px 0 24px; }
.directory-first .hero { max-width:none; align-items:center; text-align:center; padding:0 0 20px; }
.directory-first .home-start .hero h1 { font-size:var(--qc-page); font-weight:600; line-height:1.3; letter-spacing:-.035em; }
.directory-first .catalogue-overview { justify-content:center; margin:16px 0 20px; gap:24px; font-size:var(--qc-ui); }
.directory-first .catalogue-overview strong { font-size:inherit; font-weight:600; }
.directory-first .big-search { width:min(100%,760px); height:60px; background:var(--qz-surface); border-color:var(--qz-line); border-radius:var(--qz-radius-surface); box-shadow:none; }
.directory-first .home-search-submit { background:var(--qz-accent); color:var(--qz-on-accent)!important; border-radius:var(--qz-radius-control); font-size:var(--qc-ui); font-weight:500; }
.directory-first .scene-shortcuts { max-width:760px; margin:12px auto 0; gap:8px; }
.directory-first .scene-shortcuts a { background:transparent; border:0; min-height:44px; font-weight:500; color:var(--qz-ink-secondary); }
.directory-first .scene-shortcuts a:hover { background:var(--qz-surface-muted); color:var(--qz-ink); }
.directory-first .scene-shortcuts a span { display:none; }
.directory-first .directory-toolbar { padding-block:20px 12px; }
.directory-first .directory-heading h2 { font-size:var(--qc-section); font-weight:600; }
.directory-first .directory-fav,.directory-first .seg-btn { font-weight:500; }
.directory-first #homeTopPagination { display:none; } /* One pager, below results. */
.directory-first #homeLocal { border-color:var(--qz-line); padding-block:16px; }
.directory-first #homeLocalTitle { font-size:var(--qc-ui); font-weight:600; }
.directory-first #homeLocalGrid a h3 { font-weight:500; font-size:var(--qc-ui); }
/* Categories remain complete. A selected row, not 19 little cards. */
.directory-first #directories,body[data-category-id] #directories { background:transparent; border:0; border-radius:0; padding:0 12px 0 0; border-right:1px solid var(--qz-line); }
#directories .portal-head h2 { font-size:var(--qc-ui); font-weight:600; }
#directories .portal-head p { font-size:var(--qc-caption); }
#directories .portal-card { min-height:44px; border:0; border-radius:10px; padding:8px 10px; gap:10px; }
#directories .portal-card strong { font-size:var(--qc-ui); font-weight:400; }
#directories .portal-card small { font-size:var(--qc-caption); }
#directories .portal-card small b { font-weight:500; font-variant-numeric:tabular-nums; }
#directories .portal-card[aria-current],#directories .portal-card.is-selected,.home-all-categories.is-selected { background:var(--qz-surface); color:var(--qz-ink); border-left:2px solid var(--qz-accent); }
/* Name + purpose + action. No repeated category label inside a category. */
.discovery-tool,.discovery-guide { border-color:var(--qz-line); border-radius:var(--qz-radius-surface); box-shadow:none; }
.discovery-tool { padding:20px; gap:12px; }
.discovery-page .discovery-tool h3,body[data-category-id] .discovery-tool h3 { font-size:var(--qc-card); line-height:1.4; font-weight:600; }
.discovery-page .discovery-tool p,body[data-category-id] .discovery-tool p,.discovery-guide p { font-size:var(--qc-ui); line-height:1.65; }
.discovery-tool .discovery-label,.discovery-guide small { font-size:var(--qc-caption); color:var(--qz-ink-secondary); }
body[data-category-id] .discovery-tool:not(:has(a[rel~="sponsored"]))>.discovery-label { display:none; }
.discovery-tool .discovery-card-actions { margin-top:auto; gap:16px; }
.discovery-tool .discovery-card-actions a,.discovery-tool .discovery-card-actions button { min-height:44px; font-size:var(--qc-ui); }
.discovery-tool .discovery-open { background:transparent!important; padding:0 4px; font-weight:500; }
.discovery-tool .discovery-fav { min-width:44px; min-height:44px; }
.discovery-tool:hover,.discovery-guide:hover { transform:none; border-color:var(--qz-line-strong); box-shadow:none; }
.category-hero { padding-block:8px 24px; }
.hero-copy h1,.directory-intro h1 { font-size:var(--qc-page)!important; font-weight:650; line-height:1.3; }
.hero-copy p { font-size:var(--qc-ui); max-width:68ch; line-height:1.65; }
.hero-facts { gap:20px; margin-top:16px; }
.scenario-chip { border-radius:var(--qz-radius-control); font-size:var(--qc-caption); font-weight:500; }
.result-line { font-size:var(--qc-caption); }
.category-scenario-panel summary { min-height:44px; font-size:var(--qc-ui); }
.category-scenario-panel summary small { display:none; } /* Count already in hero. */
#categoryScenarioPanel>summary>span { display:none; }
/* Online tools: icon and title on the same row; quiet, generous work area. */
.toolbox-hero { padding-block:32px 24px; }
.toolbox-hero .hero-title { font-size:var(--qc-page); font-weight:650; }
.toolbox-hero .hero-sub { font-size:var(--qc-ui); margin-top:12px; }
.toolbox-hero .hero-search { height:56px; border-radius:var(--qz-radius-surface); box-shadow:none; }
.toolbox-hero .toolbox-privacy { font-size:var(--qc-caption); max-width:640px; margin:12px auto 0; }
.toolbox-categories { padding:8px; background:transparent; border:0; border-right:1px solid var(--qz-line); border-radius:0; }
.toolbox-categories .cat-tabs button { font-size:var(--qc-ui); }
.toolbox-categories .cat-tabs .tab-count { background:transparent; font-size:var(--qc-caption); }
.toolbox-categories .cat-tabs button.on { background:var(--qz-surface); color:var(--qz-ink); border-left:2px solid var(--qz-accent); }
.toolbox-results-head h2 { font-size:var(--qc-section); }
.toolbox-results .mini-open { display:grid; grid-template-columns:40px minmax(0,1fr); grid-template-rows:auto 1fr; align-content:start; text-align:left; gap:16px 12px; padding:22px; min-height:164px; }
.toolbox-results .mini-icon { grid-column:1; grid-row:1; background:var(--qz-surface-muted); color:var(--qz-ink); }
.toolbox-results .mini-name { grid-column:2; grid-row:1; align-self:center; padding-right:24px; font-size:var(--qc-card); font-weight:600; }
.toolbox-results .mini-desc { grid-column:1/-1; grid-row:2; font-size:var(--qc-ui); line-height:1.65; }
.toolbox-results .mini-open::after { display:none; } /* Whole card is the button. */
.toolbox-results .mini-card { border-color:var(--qz-line); border-radius:var(--qz-radius-surface); }
.toolbox-results .mini-star { min-width:44px; min-height:44px; top:4px; right:4px; }
.toolbox-results .mini-card:hover { border-color:var(--qz-line-strong); }
.toolbox-results .mini-card:hover .mini-name { color:var(--qz-accent); }
.workspace-shell .tool-card { padding:32px; border-radius:var(--qz-radius-surface); box-shadow:none; }
.workspace-shell .tool-name { font-size:var(--qc-page); font-weight:650; }
.workspace-shell .tool-desc { font-size:var(--qc-body); line-height:1.65; }
.workspace-shell .btn,.tool-modal-panel .btn { font-weight:500; font-size:var(--qc-ui); box-shadow:none; }
.tool-modal-panel { border-radius:20px; box-shadow:var(--qz-shadow-menu); }
.tool-modal-panel .tool-input,.workspace-shell .tool-input { background:var(--qz-surface); }
/* Reading and community use the same type ladder, not more nested panels. */
.community-header h1,.composer-head h1,.beginner-hero h1,.reading-hero h1,.guide-hero h1,.discovery-scene-page h1 { font-size:var(--qc-page); line-height:1.3; font-weight:650; }
.community-eyebrow,.community-kicker,.directory-intro .eyebrow,.group-kicker { display:none; }
.community-sidebar,.community-aside .qz-surface { box-shadow:none; border-color:var(--qz-line); border-radius:var(--qz-radius-surface); }
.community-shell .qz-btn,.community-shell button { font-size:var(--qc-ui); font-weight:500; }
.post-title { font-size:var(--qc-card); }
.directory-item { border-color:var(--qz-line); }
.directory-item strong { font-size:var(--qc-card)!important; font-weight:600; }
.directory-item span,.directory-item small { font-size:var(--qc-ui)!important; }
.beginner-reading .reading-hero,.beginner-hero { background:transparent; border:0; box-shadow:none; padding-inline:0; }
.beginner-reading-nav,.beginner-subnav,.qz-learning-nav { display:flex; flex-wrap:wrap; gap:8px; padding-block:12px; margin-bottom:24px; }
.beginner-reading-nav a,.beginner-subnav a,.qz-learning-nav a { display:inline-flex; align-items:center; min-height:44px; padding:8px 16px; border-radius:var(--qz-radius-control); font-size:var(--qc-ui); }
.beginner-reading-nav a:hover,.beginner-subnav a:hover,.qz-learning-nav a:hover { background:var(--qz-surface); }
.qz-learning-nav a[aria-current="page"] { background:var(--qz-surface); font-weight:600; }
.beginner-reading p,.beginner-reading li,.discovery-scene-page section>p { font-size:var(--qc-body); line-height:1.8; }
.beginner-reading h2,.discovery-scene-page h2 { font-size:var(--qc-section); }
.beginner-reading .reading-search-hint { display:none; }
.beginner-local-search input:placeholder-shown~[data-beginner-search-status] { display:none; } /* Live results stay visible after typing. */
.discovery-scene-page .discovery-materials { background:transparent; border:0; padding:0; border-radius:0; }
body.whitepaper-original { font-family:var(--qz-font-sans); }
.whitepaper-original .hero-title,.whitepaper-original .section.hero h1 { font-size:var(--qc-page); }
.whitepaper-original .section { background:var(--qz-surface); border-color:var(--qz-line); box-shadow:none; }
.whitepaper-original .section p,.whitepaper-original .section li { font-size:var(--qc-body); line-height:1.8; }
.whitepaper-original .author-box,.whitepaper-original .author-card { background:var(--qz-surface-muted); color:var(--qz-ink); box-shadow:none; }
.whitepaper-original .author-box p,.whitepaper-original .author-card p { color:var(--qz-ink-secondary); }
.whitepaper-original .signature-card { background:var(--qz-surface-muted); color:var(--qz-ink); border:1px solid var(--qz-line); box-shadow:none; }
.whitepaper-original .signature-card p { color:var(--qz-ink-secondary); }
footer,.site-footer,.footer { font-family:var(--qz-font-sans); font-size:var(--qc-caption); line-height:1.7; }
/* Studio keeps its actual service states, controls and original assets. */
.studio { font-size:var(--qc-body); }
.studio .topbar { background:var(--qz-surface); }
.studio .hero-title { font-size:var(--qc-page); line-height:1.3; letter-spacing:-.035em; font-weight:650; }
.studio .hero-title span { color:var(--qz-ink); }
.studio h1 { font-size:var(--qc-page); font-weight:650; }
.studio h2 { font-size:var(--qc-section); font-weight:600; }
.studio h3 { font-size:var(--qc-card); font-weight:600; }
.studio .eyebrow { display:none; }
.studio .studio-hero { padding-block:32px 24px; }
.studio .top-actions button,.studio .top-actions a { min-height:44px; font-size:var(--qc-caption); }
.studio button,.studio .button,.studio input,.studio textarea,.studio select { font-size:var(--qc-ui); border-radius:var(--qz-radius-control); }
.studio input,.studio textarea { font-size:var(--qc-body); }
.studio .icon-button { min-width:44px; min-height:44px; }
.studio .primary { color:var(--qz-on-accent); font-weight:500; box-shadow:none; }
.studio .panel,.studio .composer,.studio .featured-card,.studio .visual-card,.studio .library-card,.studio .task-card { border-color:var(--qz-line); border-radius:var(--qz-radius-surface); box-shadow:none; }
.studio .capability-label,.studio .field-note,.studio .save-state,.studio .preview-toolbar,.studio .notice,.studio .featured-card p { font-size:var(--qc-caption); line-height:1.65; }
.studio .composer-tab-hint { display:none; }
.studio .home-hero { padding:40px 32px 32px; }
.studio .home-hero h1 { font-size:var(--qc-page); font-weight:600; letter-spacing:-.035em; line-height:1.3; }
.studio .home-hero h1 span { color:var(--qz-ink); }
.studio .composer-tabs p { display:none; } /* Repeats the upload and brief controls. */
.studio .composer-tabs button { min-height:44px; font-size:var(--qc-ui); padding:8px 18px; }
.studio .output-line>span,.studio .output-line small,.studio .output-choice,.studio .output-choice span,.studio .more-output { font-size:var(--qc-caption); }
.studio .compact .output-choice span,.studio .more-output { min-height:44px; padding:8px 12px; }
.studio .composer-status,.studio .preview-badge,.studio .section-title p,.studio .section-title>a,.studio .quick-tools small { font-size:var(--qc-caption); }
.studio .section-title h2 { font-size:var(--qc-section); }
.studio .quick-tools button,.studio .quick-tool-grid a { font-size:var(--qc-ui); }
.studio .library-card p,.studio .visual-card p,.studio .repair-card p,.studio .workflow-form label,.studio .workflow-form small { font-size:var(--qc-caption); line-height:1.7; }
.studio .composer-body { background:var(--qz-canvas); }
.studio .sidebar { box-shadow:none; border-color:var(--qz-line); }
.studio .sidebar nav a,.studio .subnav nav a { font-size:var(--qc-ui); font-weight:500; }
.studio small { font-size:var(--qc-caption); }
.studio p { font-size:var(--qc-body); line-height:1.7; }
.studio .composer-status,.studio .scope-note p,.studio .preview-badge,.studio .section-title p { font-size:var(--qc-caption); }
.studio .hero-composer .composer-status { font-size:var(--qc-caption); }
.studio .field-note,.studio .reference-note,.studio .workflow-form .field-note,.studio .workflow-form .char-count,.studio .composer-status { font-size:var(--qc-caption)!important; }
.studio .repair-items>a,.studio .repair-items>button { min-height:48px; font-size:var(--qc-ui); }
.studio .repair-items span { font-size:var(--qc-caption); }
.studio .video-shortcuts a,.studio .video-shortcuts a span { font-size:var(--qc-caption); min-height:44px; }
.studio .reference-card h3 { font-size:var(--qc-card); }
.studio .reference-card small { font-size:var(--qc-caption); }
.studio .reference-card>div>span { font-size:var(--qc-ui); min-height:44px; padding:8px 12px; border-radius:var(--qz-radius-control); }
.studio .composer-entry .tiny-button { font-size:var(--qc-caption); min-height:44px; padding:8px 12px; }
.studio .composer-footer>button { font-size:var(--qc-ui); min-height:44px; }
.studio .upload-box p,.studio .filter-tabs button { font-size:var(--qc-caption); }
.studio .filter-tabs button { min-height:44px; }
.studio .topbar #menu-toggle { min-width:44px; min-height:44px; }
.studio .top-actions #logout { font-size:var(--qc-caption); min-height:44px; }
.studio .generation-eyebrow,.studio .user-subnav p { display:none; }
.studio .generation-page .page-heading h1,.studio .generation-heading h1 { font-size:var(--qc-page); }
.studio .generation-page .page-heading p { font-size:var(--qc-body); }
.studio .generation-page .inline-note,.studio .generation-page .check-row,.studio .generation-page .check-row span { font-size:var(--qc-caption); line-height:1.7; }
.studio .inline-note { font-size:var(--qc-caption)!important; }
.studio .generation-page .generation-step { font-size:var(--qc-caption); }
.studio #account-action-page .empty-state h1 { font-size:var(--qc-section); }
.studio .repair-chip,.studio .repair-chip span,.studio .video-tool span { font-size:var(--qc-caption); }
.studio .sidebar .nav-label { display:none; }
.studio .user-subnav nav { flex-wrap:wrap; overflow:visible; gap:6px; }
.studio .user-subnav nav a { min-height:44px; }
@media(max-width:1000px) {
  .toolbox-categories { border:1px solid var(--qz-line); border-radius:var(--qz-radius-control); background:var(--qz-surface); }
}
@media(max-width:800px) {
  .directory-first .home-browse-layout { margin-top:24px; gap:16px; }
  .directory-first .home-start { padding:0 0 8px; }
  .directory-first .hero { text-align:center; padding:0 0 12px; }
  .directory-first .home-start .hero h1 { font-size:2rem; line-height:1.35; }
  .directory-first .catalogue-overview { margin:12px 0 16px; gap:16px; }
  .directory-first .catalogue-overview a[href='/tools/'] { background:transparent; padding:0; }
  .directory-first .scene-shortcuts { grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
  .directory-first #directories,body[data-category-id] #directories { border:1px solid var(--qz-line); border-radius:var(--qz-radius-control); background:var(--qz-surface); padding:6px 8px; }
  .directory-first .directory-toolbar { padding-block:12px; }
  .directory-first .directory-actions .seg { margin-top:8px; }
  .discovery-tool { padding:20px; }
  .category-hero { padding-block:0 16px; }
  .category-workspace .hero-copy h1 { font-size:2rem!important; }
  .toolbox-hero { padding:24px 16px; }
  .toolbox-results .mini-open { padding:20px; min-height:140px; }
  .workspace-shell .tool-card { padding:24px 20px; }
  .studio .studio-hero { padding-block:24px 20px; }
  .studio .home-hero { padding:28px 16px; }
  .studio main { padding-inline:16px; }
  .studio .user-subnav { padding:8px 16px; }
  .studio .topbar .preview-badge { display:none; } /* Full state remains beside submit. */
}
@media(max-width:540px) {
  .directory-first .big-search { height:56px; }
  .directory-first .home-search-submit { min-height:44px; padding-inline:16px; }
  .directory-first .home-start .hero h1 { font-size:1.875rem; }
  .directory-first .catalogue-overview { font-size:var(--qc-ui); }
  .directory-first .directory-heading h2 { font-size:1.375rem; }
  .tool-modal-panel { border-radius:0; }
  .studio .hero-title,.studio .home-hero h1 { font-size:1.875rem; }
}
/* Production's local Studio workbenches use a separate public-* shell. */
body.studio.public-studio h1 { font-size:var(--qc-page); line-height:1.3; font-weight:650; }
body.studio.public-studio :is(p,label,small,.field,.field>span,.board-note,.board-artifact-note,.public-handoff-direct) { font-size:var(--qc-caption)!important; line-height:1.7; }
body.studio.public-studio :is(button,input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea) { font-size:var(--qc-ui)!important; }
body.studio.public-studio select { font-size:var(--qc-caption)!important; }
body.studio.public-studio :is(button,select,input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"])) { min-height:44px; }
body.studio.public-studio :is(.public-help-button,.public-back,.public-nav a,.public-handoff-direct) { font-size:var(--qc-caption); min-height:44px; }
/* The existing concept gallery remains explicitly a preview, not a live API. */
body:has(.hero-gallery) :is(.edition,.section-index) { display:none; }
body:has(.hero-gallery) h1 { font-size:var(--qc-page); line-height:1.3; letter-spacing:-.035em; }
body:has(.hero-gallery) :is(p,small,.header-status,.frame-stamp,.gallery-topline,.example-meta,.image-label,.results-count) { font-size:var(--qc-caption)!important; line-height:1.7; }
body:has(.hero-gallery) :is(button,.filter-button,.button-primary,.button-subtle,.back-link) { font-size:var(--qc-ui); min-height:44px; }
body:has(.hero-gallery) :is(.gallery-controls small,.filter-button span) { font-size:var(--qc-caption); }
body:has(.hero-gallery) .example-open strong { font-size:var(--qc-card); }
@media(max-width:800px) {
  body.studio.public-studio h1,body:has(.hero-gallery) h1 { font-size:2rem; }
}
@media(max-width:540px) {
  body.studio.public-studio .field:has(select) { grid-column:1/-1; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
}

/* System typography: readable normal weight, compact labels, full control targets. */
.qz-header .qz-header-brand-copy strong { letter-spacing:0; }
.qz-header .qz-module-link { font-weight:500; }
.discovery-scene-page { font-family:var(--qz-font-sans); }
.directory-first .home-browse-layout { margin-top:20px; }
.directory-first .home-start { padding-bottom:12px; }
.directory-first .hero { padding-bottom:12px; }
.directory-first .home-start .hero h1 { letter-spacing:0; line-height:1.35; }
.directory-first .catalogue-overview { margin:12px 0 16px; }
.directory-first .big-search { height:56px; }
.directory-first .directory-toolbar { padding-block:14px 10px; }
.directory-first #homeLocal { padding-block:10px; }
.discovery-tool { padding:16px; gap:10px; }
.discovery-page .discovery-tool p,body[data-category-id] .discovery-tool p,.discovery-guide p { line-height:1.6; }
.directory-first .discovery-tool>p,body[data-category-id] .discovery-tool>p { min-height:0; }
.hero-copy h1,.directory-intro h1,.toolbox-hero .hero-title,
.workspace-shell .tool-name,.community-header h1,.composer-head h1,
.beginner-hero h1,.reading-hero h1,.guide-hero h1,.discovery-scene-page h1,
.whitepaper-original .hero-title,.whitepaper-original .section.hero h1,
.studio .hero-title,.studio h1,.studio .home-hero h1,
body.studio.public-studio h1,body:has(.hero-gallery) h1 {
  font-weight:600; letter-spacing:0;
}
.category-hero { padding-block:0 16px; }
.hero-copy p { line-height:1.6; }
.toolbox-hero { padding-block:24px 16px; }
.toolbox-results .mini-open { padding:16px; gap:12px; min-height:144px; }
.toolbox-results .mini-desc { line-height:1.6; }
.studio .studio-hero { padding-block:24px 16px; }
.studio .home-hero { padding:28px 24px; }
@media(max-width:800px) {
  .directory-first .home-browse-layout { margin-top:20px; }
  .directory-first .home-start .hero h1,.category-workspace .hero-copy h1,
  body.studio.public-studio h1,body:has(.hero-gallery) h1 { font-size:var(--qc-page)!important; }
  .directory-first .home-start { padding-bottom:8px; }
  .directory-first .directory-toolbar { padding-block:10px; }
  .discovery-tool { padding:16px; }
  .toolbox-hero { padding:20px 16px 16px; }
  .toolbox-results .mini-open { min-height:128px; }
  .studio .home-hero { padding:24px 16px; }
}
@media(max-width:540px) {
  .directory-first .home-browse-layout { margin-top:16px; }
  .directory-first .catalogue-overview { gap:12px; }
  .directory-first .directory-heading h2 { font-size:1.25rem; }
  .studio .hero-title,.studio .home-hero h1 { font-size:var(--qc-page); }
}

/* User preference: compact navigation and cards, native screen rendering. */
body,body.qz-shell,body.discovery-page,body.studio {
  -webkit-font-smoothing:auto; -moz-osx-font-smoothing:auto; text-rendering:auto;
}
.qz-header .qz-header-brand-copy strong { font-size:1.125rem; font-weight:600; }
.qz-header .qz-module-link { font-size:.875rem; font-weight:500; letter-spacing:0; }
.directory-first .discovery-tool p,body[data-category-id] .discovery-tool p {
  font-size:.875rem; line-height:1.65;
}
body.studio.public-studio :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea) {
  font-size:1rem!important;
}

.qz-command-field input { font-size:1rem; }

/* Official and promotional entry points are peers; disclosure remains explicit. */
.discovery-tool .discovery-card-actions:has(>.discovery-promotion) {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch; column-gap:12px; row-gap:8px;
}
.discovery-tool .discovery-card-actions:has(>.discovery-promotion)>:is(.discovery-open,.discovery-promotion) {
  display:flex; flex-direction:row; align-items:center; justify-content:center;
  min-width:0; min-height:44px; padding:6px 4px;
  font-size:var(--qz-font-size-14); font-weight:500; line-height:1.5;
  white-space:normal; overflow-wrap:anywhere; text-align:center;
}
.discovery-tool .discovery-card-actions:has(>.discovery-promotion)>:not(.discovery-open):not(.discovery-promotion) {
  grid-column:1/-1; justify-self:start;
}
.discovery-tool .discovery-card-actions:has(>.discovery-promotion)>:is(.discovery-open,.discovery-promotion):hover {
  text-decoration:underline; text-underline-offset:4px;
}

/* AI discovery: compact native text and clean light surfaces, based on user-selected reference. */
body,body.qz-shell,body.discovery-page { font-weight:400; letter-spacing:normal; }
.discovery-tool { border-radius:12px; }
.discovery-tool h3,.discovery-page .discovery-tool h3 { font-size:.9375rem; font-weight:600; line-height:1.5; letter-spacing:normal; }
.qz-discovery-links { display:flex; flex-wrap:wrap; gap:4px 16px; align-items:center; padding:6px 0; margin:0; }
.qz-discovery-links a { display:inline-flex; align-items:center; min-height:40px; color:var(--qz-ink-secondary); font-size:.875rem; font-weight:500; text-decoration:none; }
.qz-discovery-links a:hover,.qz-discovery-links a[aria-current="page"] { color:var(--qz-accent); text-decoration:underline; text-underline-offset:6px; }
.qz-category-discovery { display:flex; flex-wrap:wrap; gap:8px 20px; margin-block:12px 0; }
.qz-category-discovery a { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; color:var(--qz-accent); }
@media(max-width:800px) { .qz-discovery-links a { min-height:44px; } }

/* Studio inherits the site's single palette/type system; artwork pixels stay owned by editors. */
body.studio.public-studio {
  color-scheme:inherit;
  --public-header-height:var(--qz-header-height);
  --public-sidebar-width:208px;
  --qz-canvas:inherit; --qz-surface:inherit; --qz-surface-muted:inherit;
  --qz-surface-strong:inherit; --qz-ink:inherit;
  --qz-ink-secondary:inherit; --qz-ink-tertiary:inherit;
  --qz-line:inherit; --qz-line-strong:inherit;
  --qz-accent:inherit; --qz-accent-hover:inherit; --qz-accent-soft:inherit;
  --qz-on-accent:inherit; --qz-focus:inherit;
  --st-ink:var(--qz-ink); --st-muted:var(--qz-ink-secondary);
  --st-line:var(--qz-line); --st-accent:var(--qz-accent);
  font-weight:400; letter-spacing:normal;
}
body.studio.public-studio [hidden] { display:none!important; }
body.studio.public-studio :is(.public-main,.public-layout) { min-width:0; }
body.studio.public-studio .public-main { padding:0 0 32px; }
body.studio.public-studio .public-sidebar {
  padding:24px 16px; overflow-y:auto; scrollbar-width:thin;
  scrollbar-color:var(--qz-line-strong) transparent;
}
body.studio.public-studio .public-nav { gap:4px; }
body.studio.public-studio .public-nav a {
  border-radius:var(--qz-radius-control); min-height:44px;
  font-size:var(--qc-ui); font-weight:500; padding:10px 12px;
}
body.studio.public-studio .public-nav a[aria-current="page"] {
  background:var(--qz-accent-soft); color:var(--qz-accent); font-weight:600;
}
body.studio.public-studio .public-local-note { gap:10px; padding:20px 4px 0; }
body.studio.public-studio .public-local-note :is(strong,p) { font-size:.875rem; line-height:1.65; }
body.studio.public-studio :is(.content-page,.batch-page,.pp-page,.board-editor) {
  width:100%; max-width:1440px; margin-inline:auto; padding:28px 32px;
}
body.studio.public-studio :is(.page-heading,.pp-header,.board-heading) { margin:0 0 24px; }
body.studio.public-studio :is(.page-heading,.pp-header,.board-heading) h1 {
  font-size:clamp(1.5rem,2.2vw,1.75rem); font-weight:600; letter-spacing:normal; line-height:1.35;
}
body.studio.public-studio :is(h2,.board-sidebar-section h2,.batch-controls h2,.batch-results h2) {
  font-size:1rem; font-weight:600; line-height:1.5;
}
body.studio.public-studio :is(.page-heading,.pp-header,.board-heading) p {
  max-width:70ch; margin-top:8px; color:var(--qz-ink-secondary); line-height:1.65;
}
body.studio.public-studio button {
  min-height:44px; border-radius:var(--qz-radius-control);
  border-color:var(--qz-line); background:var(--qz-surface); color:var(--qz-ink);
  font-weight:500; padding:10px 14px; line-height:1.5;
  box-shadow:none; white-space:normal;
}
body.studio.public-studio button:hover:not(:disabled) {
  border-color:var(--qz-line-strong); background:var(--qz-surface-muted);
}
body.studio.public-studio button:active:not(:disabled) { background:var(--qz-surface-strong); }
body.studio.public-studio button.primary {
  background:var(--qz-accent); border-color:var(--qz-accent); color:var(--qz-on-accent);
}
body.studio.public-studio button.primary:hover:not(:disabled) {
  background:var(--qz-accent-hover); border-color:var(--qz-accent-hover);
}
body.studio.public-studio button.primary:active:not(:disabled) { filter:brightness(.94); }
body.studio.public-studio button:disabled { opacity:.48; cursor:not-allowed; }
body.studio.public-studio :is(button[aria-pressed="true"],.board-layer-row[data-selected="true"]) {
  color:var(--qz-accent); background:var(--qz-accent-soft); border-color:var(--qz-accent);
}
body.studio.public-studio :is(button,input,select,textarea,summary,a):focus-visible {
  outline:2px solid var(--qz-focus); outline-offset:3px;
}
body.studio.public-studio :is(input,select,textarea) {
  background:var(--qz-surface); color:var(--qz-ink); border-color:var(--qz-line-strong);
  border-radius:var(--qz-radius-control); font-family:var(--qz-font-sans);
  caret-color:var(--qz-accent); accent-color:var(--qz-accent); min-width:0;
}
body.studio.public-studio :is(input,textarea)::placeholder { color:var(--qz-ink-secondary); opacity:1; }
body.studio.public-studio :is(input,select,textarea):disabled {
  background:var(--qz-surface-muted); color:var(--qz-ink-secondary); cursor:not-allowed;
}
body.studio.public-studio :is(input[type="range"],input[type="checkbox"],input[type="radio"]) {
  padding:0; box-shadow:none;
}
body.studio.public-studio input[type="range"] { min-height:44px; }
body.studio.public-studio input[type="color"] { min-height:44px; padding:5px; cursor:pointer; }
body.studio.public-studio :is(.pp-field,.board-field,.field)>span {
  font-size:var(--qc-ui); font-weight:500; color:var(--qz-ink);
}
body.studio.public-studio :is(.pp-field small,.pp-field output,.field-note,.board-note,.pp-note,.pp-status,.board-save-state) {
  color:var(--qz-ink-secondary); font-size:var(--qc-caption); line-height:1.65;
}
body.studio.public-studio :is(.panel,.pp-settings,.pp-source,.board-inspector,.public-starting) {
  background:var(--qz-surface); border:1px solid var(--qz-line);
  border-radius:var(--qz-radius-surface); box-shadow:none;
}
body.studio.public-studio :is(.pixel-layout,.batch-layout,.lv-layout) {
  grid-template-columns:280px minmax(0,1fr); gap:24px;
}
body.studio.public-studio :is(.pixel-layout,.batch-layout,.lv-layout)>.panel { padding:20px; }
body.studio.public-studio :is(.canvas-stage,.pp-stage,.board-stage,.lv-stage) {
  background:var(--qz-surface-muted); border:1px solid var(--qz-line);
  border-radius:var(--qz-radius-control);
}
body.studio.public-studio :is(.pixel-result,.batch-controls,.pp-preview) { top:calc(var(--public-header-height) + 24px); }
body.studio.public-studio :is(#px-empty,.lv-empty,.batch-empty) { background:var(--qz-surface-muted); }
body.studio.public-studio :is(.upload-label,.batch-upload) {
  background:var(--qz-surface); border-color:var(--qz-line-strong);
  border-radius:var(--qz-radius-control); min-height:112px;
}
body.studio.public-studio :is(.upload-label,.batch-upload):hover {
  border-color:var(--qz-accent); background:var(--qz-accent-soft);
}
body.studio.public-studio input::file-selector-button {
  font:inherit; min-height:44px; padding:8px 12px; border:1px solid var(--qz-line);
  border-radius:var(--qz-radius-control); background:var(--qz-surface); color:var(--qz-ink);
  cursor:pointer; margin-right:12px;
}
body.studio.public-studio input::file-selector-button:hover { background:var(--qz-surface-muted); }
body.studio.public-studio .pixel-tabs { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:20px; padding-bottom:16px; }
body.studio.public-studio .pixel-tabs button { border:1px solid transparent; background:transparent; }
body.studio.public-studio .pixel-tabs button[aria-pressed="true"] {
  background:var(--qz-accent-soft); border-color:transparent; color:var(--qz-accent);
}
body.studio.public-studio .public-feedback {
  margin:20px 32px 0; background:var(--qz-accent-soft); color:var(--qz-ink);
  border-color:var(--qz-line); border-radius:var(--qz-radius-control); font-size:var(--qc-ui);
}
body.studio.public-studio .public-feedback button { min-height:44px; width:44px; padding:12px; border:0; background:transparent; }
body.studio.public-studio :is(.public-feedback[data-error="true"],.pp-error,.board-warning,.board-status[data-error="true"],#lv-status[data-error="true"]) {
  color:var(--qz-danger); border-color:var(--qz-danger);
}
body.studio.public-studio .public-feedback[data-error="true"] { background:var(--qz-surface); }
body.studio.public-studio :is(.public-dialog,.board-dialog) {
  color:var(--qz-ink); background:var(--qz-surface); border:0; border-radius:var(--qz-radius-surface);
  box-shadow:var(--qz-shadow-menu); max-height:calc(100dvh - 32px);
  width:min(100% - 32px,580px); padding:24px; scrollbar-width:thin;
  scrollbar-color:var(--qz-line-strong) transparent;
}
body.studio.public-studio .board-dialog:not(.board-confirm) { width:min(980px,calc(100% - 32px)); }
body.studio.public-studio :is(.public-dialog,.board-dialog)::backdrop { background:var(--qz-overlay); }
body.studio.public-studio :is(.public-dialog-head,.board-dialog-head) h2 { font-size:1.25rem; }
body.studio.public-studio :is(.public-dialog-head,.board-dialog-head)>button { min-height:44px; width:44px; padding:10px; }
body.studio.public-studio .board-layer-row { grid-template-columns:minmax(0,1fr) 44px 44px; background:var(--qz-surface-muted); }
body.studio.public-studio .board-layer-row[data-selected="true"] { background:var(--qz-accent-soft); }
body.studio.public-studio .board-layer-row button { background:transparent; min-height:44px; padding:8px; }
body.studio.public-studio .board-layer-row .board-layer-select { justify-content:flex-start; }
body.studio.public-studio .board-layer-row .board-icon-button[aria-pressed="true"] { background:var(--qz-accent-soft); }
body.studio.public-studio .board-layers { scrollbar-color:var(--qz-line-strong) transparent; }
body.studio.public-studio .board-local-file-panel { background:var(--qz-surface); border-color:var(--qz-line); }
body.studio.public-studio .public-handoff { padding-top:12px; margin-top:16px; }
body.studio.public-studio .qz-header button { padding:0; background:transparent; border:0; min-height:44px; }
body.studio.public-studio .qz-header button:hover { background:var(--qz-surface-muted); }
.qz-studio-help span { display:none; }
.qz-studio-help svg { width:20px; height:20px; }
body.studio.public-studio .skip:focus { position:fixed; z-index:calc(var(--qz-layer-dialog) + 2); color:var(--qz-ink); background:var(--qz-surface); outline:2px solid var(--qz-focus); }
.studio-preview-status { max-width:var(--qz-container); margin:24px auto 0; padding-inline:var(--qz-gutter); font-size:.875rem; color:var(--qz-ink-secondary); }
html.dark body.studio.public-studio :is(.public-nav,.board-editor,.public-dialog,.pixel-page,.batch-page,.pp-page,.local-video-page,.public-feedback) img[src*="/icons/"] { filter:brightness(0) invert(1); opacity:.8; }
html.dark body.studio.public-studio button.primary img[src*="/icons/"] { filter:brightness(0); opacity:1; }
@media(min-width:901px) {
  body.studio.public-studio .board-editor { min-height:620px; }
}
@media(max-width:1200px) and (min-width:901px) {
  body.studio.public-studio { --public-sidebar-width:192px; }
  body.studio.public-studio :is(.content-page,.batch-page,.pp-page,.board-editor) { padding:24px; }
  body.studio.public-studio :is(.pixel-layout,.batch-layout,.lv-layout) { grid-template-columns:250px minmax(0,1fr); gap:20px; }
}
@media(max-width:1000px) {
  body.studio.public-studio .lv-layout { grid-template-columns:minmax(0,1fr); }
  body.studio.public-studio .lv-preview { order:-1; }
}
@media(max-width:900px) {
  body.studio.public-studio .public-layout { display:block; }
  body.studio.public-studio .public-sidebar { height:auto; padding:8px 16px; overflow-y:visible; }
  body.studio.public-studio .public-nav { display:flex; overflow-x:auto; gap:4px; }
  body.studio.public-studio .public-nav a { flex-shrink:0; padding:10px 12px; }
  body.studio.public-studio .public-local-note { display:none; }
  body.studio.public-studio :is(.content-page,.batch-page,.pp-page,.board-editor) { padding:24px 20px; }
  body.studio.public-studio .public-feedback { margin:16px 20px 0; }
  body.studio.public-studio :is(.pixel-result,.batch-controls,.pp-preview) { position:static; }
}
@media(max-width:760px) {
  body.studio.public-studio :is(.pixel-layout,.batch-layout,.lv-layout,.pp-workspace) { grid-template-columns:minmax(0,1fr); gap:20px; }
  body.studio.public-studio .pixel-result { order:-1; }
  body.studio.public-studio :is(.content-page,.batch-page,.pp-page,.board-editor) { padding:20px 16px; }
  body.studio.public-studio .public-feedback { margin:16px 16px 0; }
  body.studio.public-studio .pixel-tabs { flex-wrap:nowrap; overflow-x:auto; scrollbar-width:thin; margin-right:0; padding-right:0; }
  body.studio.public-studio .pixel-tabs button { flex:none; white-space:nowrap; }
  body.studio.public-studio :is(.pixel-layout,.batch-layout,.lv-layout)>.panel { padding:16px; }
  body.studio.public-studio .board-layer-row { grid-template-columns:minmax(0,1fr) 44px 44px; }
  body.studio.public-studio .board-additions button { font-size:.875rem; }
  body.studio.public-studio .public-dialog-actions button { min-width:0; }
}
@media(max-width:520px) {
  body.studio.public-studio .public-nav a { flex:0 0 auto; flex-direction:row; min-width:0; font-size:.875rem; }
  body.studio.public-studio .public-nav a .ui-icon { width:18px; height:18px; }
  body.studio.public-studio .pixel-export { grid-template-columns:minmax(0,1fr); }
  body.studio.public-studio .board-topbar>button { flex:1 1 calc(50% - 8px); }
  body.studio.public-studio .board-toolbar { flex-wrap:wrap; }
  body.studio.public-studio .board-undo-actions { flex-direction:row; width:100%; }
}

/* Repeated UI patterns share semantics across navigation, tools and Studio.
   Editor canvases, artwork swatches, code and document content retain their own values. */
html:root {
  --accent-hover:var(--qz-accent-hover); --blue-dark:var(--qz-accent-hover);
  --text-tertiary:var(--qz-ink-tertiary); --line-strong:var(--qz-line-strong);
  --danger:var(--qz-danger); --success:var(--qz-success);
  --qc-input:1rem; --qc-reading:1rem;
  --qc-control-height:44px; --qc-control-padding:10px 14px;
  --qc-weight-ui:500; --qc-weight-heading:600; --qc-disabled:.48;
}
/* Standard native rendering keeps small Chinese text legible on Windows. */
body,body.qz-shell,body.discovery-page,body.studio,body.ac-page {
  font-family:var(--qz-font-sans); font-size:var(--qc-ui);
  font-weight:400; line-height:var(--qz-leading-body); letter-spacing:normal;
  -webkit-font-smoothing:auto; -moz-osx-font-smoothing:auto; text-rendering:auto;
}
:is(.ac-hero h1,.toolbox-hero .hero-title,.tool-modal-head h3,.workspace-shell .tool-name,
    .studio-preview-page .hero h1,.studio-preview-page .dialog-copy h2) {
  font-family:var(--qz-font-sans); font-size:var(--qc-page);
  font-weight:var(--qc-weight-heading); line-height:1.35; letter-spacing:0;
}
body.studio.public-studio :is(.page-heading,.pp-header,.board-heading) h1 {
  font-size:var(--qc-page); font-weight:var(--qc-weight-heading);
}
:is(.ac-card h2,.ac-news-copy h3,.discovery-tool h3,.toolbox-results .mini-name) {
  font-size:var(--qc-card); font-weight:var(--qc-weight-heading); line-height:1.5; letter-spacing:0;
}
.beginner-reading p,.beginner-reading li,.whitepaper-original .section p,.whitepaper-original .section li {
  font-size:var(--qc-reading); line-height:1.8;
}
/* These are equivalent action controls; menus, drawing tools and swatches keep their layout. */
:is(.qz-button,.ac-clear,.workspace-shell .btn,.tool-modal-body .btn,
    .studio-preview-page .button-primary,.studio-preview-page .button-subtle) {
  min-height:var(--qc-control-height); padding:var(--qc-control-padding);
  border:1px solid var(--qz-line); border-radius:var(--qz-radius-control);
  background:var(--qz-surface); color:var(--qz-ink);
  font-family:var(--qz-font-sans); font-size:var(--qc-ui);
  font-weight:var(--qc-weight-ui); line-height:1.5; text-decoration:none; box-shadow:none;
}
:is(.qz-button,.ac-clear,.workspace-shell .btn,.tool-modal-body .btn,
    .studio-preview-page .button-primary,.studio-preview-page .button-subtle):hover:not(:disabled):not([aria-disabled="true"]) {
  background:var(--qz-surface-muted); border-color:var(--qz-line-strong); color:var(--qz-ink);
}
:is(.qz-button,.ac-clear,.workspace-shell .btn,.tool-modal-body .btn,
    .studio-preview-page .button-primary,.studio-preview-page .button-subtle):active:not(:disabled):not([aria-disabled="true"]) {
  background:var(--qz-surface-strong); transform:none;
}
:is(.qz-button.is-primary,.workspace-shell .btn.primary,.tool-modal-body .btn.primary,
    .studio-preview-page .button-primary,.directory-first .home-search-submit) {
  background:var(--qz-accent); border-color:var(--qz-accent); color:var(--qz-on-accent);
}
:is(.qz-button.is-primary,.workspace-shell .btn.primary,.tool-modal-body .btn.primary,
    .studio-preview-page .button-primary,.directory-first .home-search-submit):hover:not(:disabled):not([aria-disabled="true"]) {
  background:var(--qz-accent-hover); border-color:var(--qz-accent-hover); color:var(--qz-on-accent); transform:none;
}
html:is(.dark,[data-theme="dark"]) :is(.qz-button.is-primary,.workspace-shell .btn.primary,.tool-modal-body .btn.primary) {
  color:var(--qz-on-accent);
}
:is(.workspace-shell,.tool-modal-body) .btn.ghost {
  color:var(--qz-ink-secondary); background:var(--qz-surface); border-color:var(--qz-line);
}
:is(.workspace-shell,.tool-modal-body) .btn.ghost:hover:not(:disabled) {
  color:var(--qz-accent); background:var(--qz-accent-soft); border-color:var(--qz-accent);
}
:is(.qz-button,.ac-clear,.workspace-shell .btn,.tool-modal-body .btn,
    .studio-preview-page button,.studio-preview-page .button-primary):is(:disabled,[aria-disabled="true"]) {
  opacity:var(--qc-disabled); cursor:not-allowed; transform:none;
}
:is(.qz-button,.ac-clear,.workspace-shell .btn,.tool-modal-body .btn,
    .studio-preview-page button,.studio-preview-page a):focus-visible {
  outline:2px solid var(--qz-focus); outline-offset:3px;
}
/* The same border, native input size, caret, placeholder and disabled state. */
:is(.qz-field,.ac-field input,.ac-field select,.workspace-shell .tool-input,.workspace-shell .tool-select,
    .tool-modal-body .tool-input,.tool-modal-body .tool-select) {
  color:var(--qz-ink); background:var(--qz-surface); border-color:var(--qz-line-strong);
  border-radius:var(--qz-radius-control); font-size:var(--qc-input); line-height:1.65;
  caret-color:var(--qz-accent); accent-color:var(--qz-accent); min-width:0;
}
:is(.qz-field,.ac-field input,.ac-field select,.workspace-shell .tool-select,.tool-modal-body .tool-select) {
  font-family:var(--qz-font-sans); min-height:var(--qc-control-height);
}
:is(.qz-field,.ac-field input,.workspace-shell .tool-input,.tool-modal-body .tool-input)::placeholder {
  color:var(--qz-ink-secondary); opacity:1;
}
:is(.qz-field,.ac-field input,.ac-field select,.workspace-shell .tool-input,.workspace-shell .tool-select,
    .tool-modal-body .tool-input,.tool-modal-body .tool-select):focus-visible {
  border-color:var(--qz-accent); outline:2px solid var(--qz-focus); outline-offset:0; box-shadow:none;
}
:is(.qz-field,.ac-field input,.ac-field select,.workspace-shell .tool-input,.workspace-shell .tool-select,
    .tool-modal-body .tool-input,.tool-modal-body .tool-select):disabled {
  background:var(--qz-surface-muted); color:var(--qz-ink-secondary); cursor:not-allowed;
}
:is(.tool-modal-body,.workspace-shell) .tool-output.error { color:var(--qz-danger); }
:is(.tool-modal-body,.workspace-shell) .tool-output {
  background:var(--qz-surface-muted); border-color:var(--qz-line); border-radius:var(--qz-radius-control);
}
/* Neutral surfaces, including gallery UI surrounding unchanged example images. */
:is(.discovery-tool,.ac-card,.toolbox-results .mini-card,.workspace-shell .tool-card) {
  background:var(--qz-surface); border-color:var(--qz-line); border-radius:var(--qz-radius-surface); box-shadow:none;
}
.tool-modal-panel { border-radius:var(--qz-radius-surface); }
.ac-logo { border-radius:var(--qz-radius-control); }
.ac-hero p,.ac-description { line-height:1.65; }
.ac-field select,.ac-clear,.ac-facet,.ac-tabs a { font-weight:var(--qc-weight-ui); }
.ac-clear,.ac-facet,.ac-field input,.ac-field select { border-radius:var(--qz-radius-control); }
.ac-facet[aria-pressed="true"] { background:var(--qz-accent-soft); color:var(--qz-accent); }
.studio-preview-page :is(.hero-gallery,.example-open,.example-dialog,.preview-scope,.site-footer) {
  background:var(--qz-surface); color:var(--qz-ink); border-color:var(--qz-line); box-shadow:none;
}
.studio-preview-page :is(.hero-gallery,.example-open,.example-dialog) { border-radius:var(--qz-radius-surface); }
.studio-preview-page :is(.hero-desc,.hero-footnote,.hero-gallery-bottom>p,.example-desc,
    .example-meta,.preview-scope>div>p,.scope-points span,.dialog-copy>p,.dialog-note,.site-footer) {
  color:var(--qz-ink-secondary); font-size:var(--qc-caption); line-height:1.65;
}
.studio-preview-page :is(.hero-gallery-bottom h2,.section-intro h2,.preview-scope h2) {
  color:var(--qz-ink); font-size:var(--qc-section); font-weight:var(--qc-weight-heading); line-height:1.5; letter-spacing:0;
}
.studio-preview-page :is(.gallery-controls button,.filter-button,.dialog-close) {
  color:var(--qz-ink-secondary); background:var(--qz-surface);
  border-color:var(--qz-line); border-radius:var(--qz-radius-control); font-weight:var(--qc-weight-ui);
}
.studio-preview-page :is(.gallery-controls button,.filter-button):hover { background:var(--qz-surface-muted); color:var(--qz-ink); }
.studio-preview-page :is(.gallery-controls button,.filter-button)[aria-pressed="true"] {
  background:var(--qz-accent-soft); border-color:var(--qz-accent); color:var(--qz-accent);
}
.studio-preview-page :is(.dialog-note,.dialog-image-wrap) { background:var(--qz-surface-muted); }
.studio-preview-page .dialog-close { min-height:44px; width:44px; box-shadow:none; }
.studio-preview-page .example-dialog { box-shadow:var(--qz-shadow-menu); }
.studio-preview-page .example-dialog::backdrop { background:var(--qz-overlay); }
.studio-preview-page .scope-points,.studio-preview-page .scope-points>div { border-color:var(--qz-line); }
.studio-preview-page .site-footer a { color:var(--qz-accent); font-weight:var(--qc-weight-ui); }
body.studio.public-studio input::file-selector-button { font-family:var(--qz-font-sans); font-weight:var(--qc-weight-ui); }
/* Selection and numeric UI remain consistent across both theme selectors. */
body ::selection { background:var(--qz-accent-soft); color:var(--qz-ink); }
body :is(input,textarea,[contenteditable="true"]) { caret-color:var(--qz-accent); }
:is(.ac-status,.result-line,.qz-category-count,.tab-count,.board-save-state) { font-variant-numeric:tabular-nums; }
html[data-theme="dark"] body.studio.public-studio :is(.public-nav,.board-editor,.public-dialog,.pixel-page,.batch-page,.pp-page,.local-video-page,.public-feedback) img[src*="/icons/"] { filter:brightness(0) invert(1); opacity:.8; }
html[data-theme="dark"] body.studio.public-studio button.primary img[src*="/icons/"] { filter:brightness(0); opacity:1; }
@media(max-width:800px) {
  html:root { --qc-page:1.5rem; }
  :is(.toolbox-hero .hero-title,.tool-modal-head h3,.workspace-shell .tool-name,.ac-hero h1) { font-size:var(--qc-page); }
}
@media(max-width:540px) { .tool-modal-panel { border-radius:0; } }

body.studio.public-studio select { font-size:var(--qc-input)!important; }

/* ===== home-refinement.css ===== */
/* Search is one centered task; browsing stays aligned with the catalogue. */
.directory-first .home-library .home-start { padding:8px 0 24px; }
.directory-first .home-start .hero { width:100%; max-width:720px; margin-inline:auto; align-items:center; text-align:center; padding:0; }
.directory-first .home-start .hero h1 { font-size:var(--qz-font-size-24); margin:0 0 16px; line-height:1.4; font-weight:600; }
.directory-first .home-start .hero :is(.catalogue-overview,.scene-shortcuts),
.directory-first #homeLocal { display:none; }
.directory-first .home-search-engines { justify-content:center; margin-bottom:8px; }
.directory-first .home-search-engines button { padding-inline:16px; border-radius:var(--qz-radius-sm); }
.directory-first .big-search { box-shadow:none; }
.directory-first .hero :is(.search-suggest,.home-search-hint) { text-align:left; }
.directory-first #directories .portal-head p { display:none; }
.directory-first #directoryPortalTitle { font-size:var(--qz-font-size-14); font-weight:500; color:var(--qz-ink-secondary); }
.directory-first .home-full-catalog { margin-block:0 32px; border:0; }
.directory-first .directory-toolbar { grid-template-areas:'heading actions' 'status status'; grid-template-columns:minmax(0,1fr) auto; border-top:0; padding:8px 0 12px; gap:4px 16px; background:var(--qz-canvas); backdrop-filter:none; }
.directory-first .directory-heading h2 { font-size:var(--qz-font-size-16); line-height:1.5; }
.directory-first .directory-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.directory-first .directory-fav { border-color:transparent; background:transparent; }
.directory-first .directory-status:has(.search-status:empty):has(.clear-filters[hidden]) { display:none; }
.directory-first .discovery-tool { padding:16px; gap:8px; box-shadow:none; }
.directory-first .discovery-tool-head { min-height:44px; align-items:center; gap:10px; }
.directory-first .discovery-tool-head h3 { margin:0; align-self:center; font-size:var(--qz-font-size-14); line-height:1.5; }
.directory-first .discovery-tool-head .lgw { display:grid; place-items:center; }
.directory-first .discovery-tool-head img { display:block; width:40px; height:40px; object-fit:contain; }
.directory-first .discovery-tool>p { margin:0; font-size:var(--qz-font-size-14); line-height:1.6; }
.directory-first .discovery-tool>.discovery-label { display:none; }
.directory-first .discovery-card-actions { align-items:center; gap:8px 12px; padding-top:0; }
.directory-first .discovery-card-actions>a { min-height:44px; display:inline-flex; align-items:center; margin:0; padding-block:0; }
@media(max-width:800px) {
 .directory-first .home-library .home-start { padding-block:8px 20px; }
 .directory-first .directory-toolbar { grid-template-areas:'heading' 'actions' 'status'; grid-template-columns:minmax(0,1fr); }
 .directory-first .directory-actions { display:flex; justify-content:flex-start; }
}
@media(max-width:540px) {
 .directory-first .home-start .hero h1 { font-size:var(--qz-font-size-20); margin-bottom:12px; }
 .directory-first .home-search-engines button { min-width:58px; padding-inline:10px; }
 .directory-first .directory-actions .seg { margin-top:0; }
 .directory-first .discovery-tool { padding:14px 16px; }
}
