:root{--bg:#f5f6f8;--text:#202126;--muted:#72767f;--line:#e4e6ea;--blue:#0969da;--glass:rgba(255,255,255,.76);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;color:var(--text);font-size:14px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);line-height:1.5}button,input,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer;border:0;background:none}a,button,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #2680ef;outline-offset:4px}button:hover,a:hover{color:var(--blue)}.wrap{max-width:1620px;padding:0 44px;margin:auto}.site-header{position:sticky;top:0;z-index:10;background:rgba(245,246,248,.82);border-bottom:1px solid rgba(210,215,222,.65);backdrop-filter:blur(28px) saturate(160%);-webkit-backdrop-filter:blur(28px) saturate(160%)}.header-inner{max-width:1620px;padding:18px 44px;display:flex;align-items:center;justify-content:space-between;gap:32px;margin:auto}.brand{display:flex;align-items:center;gap:10px;flex:1}.brand svg{width:25px;height:25px;fill:#333841}.brand strong{font-size:21px;letter-spacing:-.6px;font-weight:650}.search-wrap{width:360px;height:39px;display:flex;gap:9px;align-items:center;background:rgba(255,255,255,.8);border:1px solid #fff;border-radius:13px;padding:0 12px;box-shadow:0 1px 4px #29354a09,inset 0 0 0 1px #e6e8ec55}.search-wrap svg{width:17px;height:17px;fill:none;stroke:#808690;stroke-width:1.7}.search-wrap input{background:transparent;border:0;outline:0;min-width:0;flex:1;font-size:13px}.search-wrap:focus-within{box-shadow:0 0 0 3px #2d80e526}.search-wrap kbd{font-size:11px;color:#a2a6ae;border:1px solid #e2e5ea;padding:0 4px;border-radius:3px}.site-header nav{display:flex;align-items:center;gap:15px;flex:1;justify-content:flex-end}.site-header nav button{height:36px;font-size:13px;padding:5px 8px;white-space:nowrap}.site-header nav button[aria-pressed=true]{color:var(--blue)}#nav-saved>span:first-child{font-size:18px;margin-right:3px}#saved-count{font-size:10px;color:var(--muted);margin-left:4px}#about-button{font-size:19px}.browse-toolbar{padding:27px 0 24px;display:flex;align-items:center;flex-wrap:wrap;gap:17px;justify-content:space-between}.filters{display:flex;gap:4px;flex-wrap:wrap}.filter{padding:8px 14px;font-size:13px;color:#6d727c;border-radius:100px;white-space:nowrap;transition:background .15s}.filter:hover{background:#e9edf2;color:#303946}.filter.active{background:white;color:var(--text);box-shadow:0 2px 8px #29364a0a,inset 0 0 0 1px #fff;font-weight:550}.view-options{display:flex;align-items:center;gap:15px;font-size:11px;color:var(--muted)}.view-options p{margin:0}.view-options button{font-size:11px;padding:0}.view-options button[aria-pressed=true]{color:var(--blue)}select{background:transparent;border:0;font-size:11px;padding:2px;max-width:100px}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}.card{min-width:0;content-visibility:auto;contain-intrinsic-size:auto 320px}.screenshot-link{display:block;border-radius:13px;overflow:hidden;background:#eceef2;border:1px solid #e0e3e9;position:relative;aspect-ratio:1.6;box-shadow:0 3px 10px #19243b04;transition:box-shadow .2s,transform .2s}.screenshot-link:hover{transform:translateY(-2px);box-shadow:0 8px 25px #26365312}.screenshot{display:block;width:100%;height:100%;object-fit:cover;object-position:top;background:#fff}.capture-placeholder{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#9096a0;background:linear-gradient(145deg,#eef0f4,#e9ecf1)}.capture-placeholder svg{width:31px;height:31px;fill:none;stroke:#a3aab5;stroke-width:1.2}.capture-placeholder span{font-size:12px}.screenshot-link .visit-hint{position:absolute;right:12px;bottom:12px;background:rgba(255,255,255,.87);border:1px solid #fff9;border-radius:8px;backdrop-filter:blur(12px);padding:6px 10px;font-size:11px;color:#404854;opacity:0;transform:translateY(4px);transition:.15s}.screenshot-link:hover .visit-hint,.screenshot-link:focus-visible .visit-hint{opacity:1;transform:none}.card-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 3px 0}.card-name{min-width:0}.card-name h2{font-size:14px;font-weight:600;margin:0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-domain{font-size:11px;color:#8b9099;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-actions{display:flex;align-items:center;gap:4px}.card-actions button{height:32px;width:30px;color:#9aa0aa;display:grid;place-items:center;font-size:18px}.card-actions button:hover{color:#404854}.card-actions [data-detail]{font-size:17px}.card-actions .save-button[aria-pressed=true]{color:#3478d4}.load-more-wrap{text-align:center;padding:42px 0 18px}.load-button,.primary-button{border:1px solid #e0e4ea;border-radius:12px;background:white;box-shadow:0 2px 8px #29364a08;padding:11px 25px;font-size:13px}.load-more-wrap p{color:#9ba0a9;font-size:11px;margin:12px 0}.load-button[hidden]{display:none}.empty-state{text-align:center;padding:90px 20px}.empty-state[hidden]{display:none}.empty-state h2{font-size:18px;font-weight:500}.empty-state p{font-size:13px;color:var(--muted);margin-bottom:25px}footer{display:flex;gap:24px;align-items:center;font-size:11px;color:#a2a7af;padding-top:26px!important;padding-bottom:30px!important;margin-top:15px!important}footer button{font-size:11px;padding:0;margin-left:auto}dialog{border:1px solid #ffffffb8;padding:0;background:rgba(250,251,253,.98);border-radius:20px;max-width:650px;width:calc(100% - 32px);max-height:90vh;box-shadow:0 20px 100px #15263b38;color:var(--text)}dialog::backdrop{background:#21314955;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.dialog-close{position:absolute;right:13px;top:13px;border-radius:50%;width:32px;height:32px;font-size:22px;background:#ffffffdc;color:#65707b;box-shadow:0 1px 5px #0001;z-index:3}.detail-image{aspect-ratio:1.7;overflow:hidden;background:#ecedf1}.detail-body,.about-content{padding:29px 32px}.detail-body h2,.about-content h2{font-size:26px;line-height:1.2;margin:7px 0 19px;font-weight:600;letter-spacing:-.6px}.detail-category{font-size:11px;color:#9298a2;margin:0}.detail-body p,.about-content p{font-size:14px;color:#646e7a;line-height:1.85}.detail-body .lesson{padding:12px 15px;border-radius:10px;background:#edf0f4;font-size:13px;color:#4b5664}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.tag{font-size:11px;color:#8b929d;background:#edf0f4;padding:3px 8px;border-radius:5px}.detail-actions{display:flex;align-items:center;gap:20px;margin-top:25px}.detail-actions>a{font-size:13px;background:#2775da;color:white;padding:9px 15px;border-radius:9px}.detail-actions button{font-size:13px;color:#607085}.source-caption{font-size:11px!important;color:#939aa4!important;margin-top:22px}.about-content{padding-top:38px}.about-content>a{font-size:13px;color:var(--blue)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:rgba(40,48,60,.91);color:white;border:1px solid #ffffff22;border-radius:13px;backdrop-filter:blur(15px);padding:10px 18px;font-size:12px;box-shadow:0 4px 18px #0002;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90%;white-space:nowrap}#toast.visible{opacity:1}.sr-only,.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link:focus{position:fixed;background:#fff;padding:15px;z-index:100}
@media(min-width:1800px){.wrap,.header-inner{max-width:1850px}.card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.wrap{padding:0 28px}.header-inner{padding:16px 28px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 22px}.browse-toolbar{gap:15px}.view-options{margin-left:auto}.filter{padding:7px 11px}.search-wrap{width:300px}}
@media(max-width:650px){.wrap{padding:0 18px}.header-inner{padding:14px 18px;gap:16px;flex-wrap:wrap}.brand{flex:1}.brand strong{font-size:20px}.brand svg{width:23px;height:23px}.search-wrap{order:3;flex-basis:100%;height:37px}.site-header nav{gap:12px;flex:none}.header-inner nav button{height:30px;padding:0 5px}.browse-toolbar{padding:20px 0 18px;gap:13px}.filters{gap:3px}.filter{font-size:12px;padding:6px 10px}.view-options{width:100%;justify-content:flex-end}.view-options p{margin-right:auto}.card-grid{grid-template-columns:1fr;gap:24px}.screenshot-link{border-radius:12px}.card{contain-intrinsic-size:auto 280px}.card-meta{padding-top:10px}.card-name h2{font-size:14px}.card-domain{font-size:11px}.screenshot-link .visit-hint{display:none}.load-more-wrap{padding-top:30px}.detail-body,.about-content{padding:25px}.detail-body h2{font-size:24px}.detail-image{aspect-ratio:1.6}footer{gap:16px;font-size:10px}.search-wrap kbd{display:none}html{scroll-padding-top:155px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
@supports not (backdrop-filter:blur(1px)){.site-header{background:#f5f6f8}.screenshot-link .visit-hint{background:#fff}}
/* A quiet, separate local collection using the same screenshot-led gallery. */
[hidden]{display:none!important}.site-header nav>a{display:inline-flex;align-items:center;min-height:36px;font-size:13px;padding:5px 8px;white-space:nowrap;border-radius:9px}.site-header nav>a[aria-current=page]{color:var(--blue);background:#ffffff8c}.collection-heading{padding:30px 0 0;max-width:900px}.back-link{display:inline-block;font-size:12px;color:var(--muted);padding:5px 0;margin-bottom:17px}.collection-title{display:flex;align-items:baseline;gap:15px}.collection-title h1{font-size:30px;font-weight:600;letter-spacing:-1px;line-height:1.3;margin:0}.collection-title>span{font-size:12px;color:var(--muted)}.collection-heading>p{font-size:14px;color:var(--muted);margin:9px 0 0}.collection-heading .local-note{font-size:11px;display:flex;align-items:flex-start;gap:7px;line-height:1.8;color:#8b929b;margin-top:14px}.local-note svg{width:14px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.3;margin-top:2px}.storage-notice{font-size:12px;line-height:1.8;color:#785d27;background:#faf4e6;border:1px solid #ecdfbd;border-radius:10px;padding:12px 16px;margin:22px 0 0}.view-options>a{font-size:11px}.view-options #language{color:#4d5868;font-size:12px;max-width:108px;padding:7px 9px;border:1px solid #e0e4ea;border-radius:9px;background:#ffffff91}.primary-button{display:inline-block}.collection-title h1:focus,#gallery:focus{outline:none}#toast{white-space:normal;text-align:center;line-height:1.6}
@media(max-width:650px){.site-header nav>a{min-height:30px;padding:0 5px;font-size:12px}.collection-heading{padding-top:20px}.back-link{margin-bottom:15px}.collection-title h1{font-size:26px}.collection-heading .local-note{font-size:11px;max-width:360px}.view-options{gap:12px;flex-wrap:wrap}.view-options #language{font-size:11px;padding:6px 7px}.view-options p{margin-right:auto}.storage-notice{padding:10px 12px}}
/* Subject navigation: a quiet glass rail, leaving screenshots as the main surface. */
.library-layout{display:grid;grid-template-columns:216px minmax(0,1fr);gap:32px;max-width:1620px;margin:auto;padding:0 44px}.library-layout>.wrap{padding:0;width:100%;min-width:0}.category-sidebar{position:sticky;top:100px;align-self:start;max-height:calc(100dvh - 122px);overflow:auto;scrollbar-width:thin;margin:26px 0 0;padding:18px 10px 14px;background:linear-gradient(145deg,#ffffffa6,#ffffff5c);border:1px solid #ffffffde;border-radius:17px;box-shadow:0 4px 24px #25314504,inset 0 0 0 1px #e6e9ee44;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;padding:0 11px 14px;font-size:11px;color:#8b929b;letter-spacing:1px}.sidebar-heading button,#open-categories{display:none}#categories{display:flex;flex-direction:column;gap:4px}.category-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border-radius:9px;padding:10px 11px;font-size:12px;text-align:left;line-height:1.5;color:#606976}.category-count{font-size:10px;color:#969faa;font-variant-numeric:tabular-nums;letter-spacing:0}.category-choice.active{background:#fff;color:#1d2837;box-shadow:0 2px 7px #263b5710,inset 0 0 0 1px #ffffff;font-weight:600}.category-choice.active .category-count{color:#6281a2}.category-parent{display:flex;align-items:center}.category-parent .category-choice{flex:1;min-width:0}.category-expand{width:25px;height:35px;flex:none;display:grid;place-items:center;border-radius:7px;color:#9aa4af}.category-expand:hover{background:#e9edf299}.category-expand svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .18s}.category-expand[aria-expanded=true] svg{transform:rotate(90deg)}.category-children{margin:3px 0 7px 12px;padding-left:8px;border-left:1px solid #dce2e9}.child-choice{padding:8px 9px;font-size:11px}.selected-group>.category-parent>.category-choice{color:#293e57}.browse-location{display:flex;align-items:center;gap:12px;min-width:0}.browse-location h2{font-size:14px;font-weight:550;margin:0;color:#596270}.browse-toolbar{min-height:83px;padding:24px 0;gap:12px}.view-options{gap:12px}.view-options #saved-filter{display:none}.card-grid{gap:27px 20px}.sidebar-backdrop{display:none}#category-sidebar:focus{outline:none}
@media(min-width:1800px){.library-layout{max-width:1850px;grid-template-columns:220px minmax(0,1fr)}}
@media(min-width:851px) and (max-width:1200px){.library-layout{padding:0 28px;grid-template-columns:190px minmax(0,1fr);gap:25px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.view-options{gap:8px}}
@media(max-width:850px){.library-layout{display:block;padding:0 24px}.category-sidebar{position:fixed;z-index:41;top:0;bottom:0;left:0;width:min(300px,85vw);max-height:none;margin:0;padding:23px 15px;border-radius:0 20px 20px 0;background:rgba(248,250,252,.98);box-shadow:15px 0 70px #182d4b24;transform:translateX(-110%);visibility:hidden;transition:transform .2s,visibility .2s}.category-sidebar.is-open{transform:translateX(0);visibility:visible}.sidebar-heading{padding-bottom:20px;font-size:12px}.sidebar-heading button{display:block;font-size:23px;width:36px;height:36px;border-radius:50%;background:#edf0f4}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:40;background:#1b2f494f;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);cursor:default}.drawer-open{overflow:hidden}.category-choice{font-size:13px;min-height:43px}.child-choice{font-size:12px;min-height:40px}.category-expand{height:43px;width:34px}.browse-location h2{font-size:13px}#open-categories{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid #fff;border-radius:10px;background:#ffffffb8;font-size:12px;box-shadow:0 2px 7px #25364a06}.browse-toolbar{min-height:75px;padding:20px 0}.view-options{margin-left:0;width:auto;flex:1;justify-content:flex-end}.view-options p{margin-right:0}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.library-layout{padding:0 18px}.browse-toolbar{gap:11px;padding:18px 0}.view-options{gap:9px}.view-options #sort{max-width:78px;font-size:10px}.view-options #language{font-size:10px;max-width:85px;padding:6px}.view-options #result-count{font-size:10px}.browse-location{gap:8px}.browse-location h2{display:none}.card-grid{grid-template-columns:1fr;gap:25px}.collection-heading{padding-top:20px}}

/* Keep explicit filter resets stable while content-visibility recalculates cards. */
html{overflow-anchor:none}
/* Show the complete reviewed frame in design notes; gallery thumbnails stay cropped. */
.detail-image{aspect-ratio:auto}.detail-image .screenshot{height:auto;object-fit:contain}
