/* Help3D catalog. Shared color direction with PreventiPiraz; no shared runtime. */
/* Keep text contrast independent of the blue used for surfaces and decoration. */
:root{color-scheme:light;--paper:#f3f5f8;--surface:#fff;--surface-alt:#edf1f7;--ink:#0f172a;--muted:#526176;--line:#dbe3ee;--primary:#0868f2;--primary-text:#0057db;--primary-strong:#0057db;--navy:#123a69;--sky:#b9dfff;--soft-blue:#eaf2ff;--green:#146440;--green-bg:#e9f5ed;--amber:#83520b;--amber-bg:#fff4dc;--header:rgba(255,255,255,.96);--shadow:0 8px 28px #172b4d08;--hero:#102c50;--hero-muted:#c4d4e8;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility}
:root[data-theme=dark]{color-scheme:dark;--paper:#0c1421;--surface:#141f30;--surface-alt:#1c2a3e;--ink:#eaf1fa;--muted:#acbdd2;--line:#2c3b51;--primary:#84b6ff;--primary-text:#84b6ff;--primary-strong:#a1c7ff;--navy:#b9dfff;--sky:#cbe7ff;--soft-blue:#1c3455;--green:#a4e1b8;--green-bg:#18392b;--amber:#efd098;--amber-bg:#3c3020;--header:rgba(20,31,48,.97);--shadow:0 8px 28px #00000018;--hero:#101f36;--hero-muted:#c4d4e8}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#0c1421;--surface:#141f30;--surface-alt:#1c2a3e;--ink:#eaf1fa;--muted:#acbdd2;--line:#2c3b51;--primary:#84b6ff;--primary-text:#84b6ff;--primary-strong:#a1c7ff;--navy:#b9dfff;--sky:#cbe7ff;--soft-blue:#1c3455;--green:#a4e1b8;--green-bg:#18392b;--amber:#efd098;--amber-bg:#3c3020;--header:rgba(20,31,48,.97);--shadow:0 8px 28px #00000018;--hero:#101f36;--hero-muted:#c4d4e8}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,select,summary{cursor:pointer}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{color:inherit}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}p{line-height:1.65}button{border:0}a,button,select,summary,input{touch-action:manipulation}[hidden]{display:none!important}svg{flex-shrink:0}.icon{width:20px;height:20px;vertical-align:middle}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:4px}.hero :focus-visible{outline-color:#b9dfff}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:100;top:-100px;left:16px;padding:16px 20px;color:var(--surface);background:var(--ink);border-radius:8px}.skip-link:focus{top:12px}.wrap{width:min(1240px,calc(100% - 80px));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:var(--header);backdrop-filter:blur(16px)}.header-inner{height:86px;display:flex;gap:32px;align-items:center}.brand{display:flex;gap:11px;align-items:center;margin-right:auto;flex-shrink:0}.brand-mark{width:42px;height:42px;border-radius:11px;background:var(--soft-blue);color:var(--primary);display:grid;place-items:center}.brand-mark .icon{width:27px;height:27px}.brand strong{display:block;font-size:17px;letter-spacing:-.45px}.brand small{display:block;font-size:8px;font-weight:700;letter-spacing:1.6px;color:var(--muted);margin-top:6px}.main-nav{display:flex;gap:25px;font-size:13px;font-weight:600}.main-nav a{padding-block:14px}.main-nav a:hover{color:var(--primary-text)}.header-controls{display:flex;align-items:center;gap:18px}.language-switch{display:flex;gap:3px;background:var(--surface-alt);border-radius:7px;padding:3px;font-size:11px;font-weight:700}.language-switch>*{display:grid;place-items:center;min-width:34px;min-height:32px;border-radius:5px}.language-switch [aria-current]{background:var(--surface);box-shadow:0 1px 4px #0000000c;color:var(--primary-text)}.language-switch a:hover{color:var(--primary-text)}.theme-control{display:flex;align-items:center;gap:6px;color:var(--muted)}.theme-control .icon{width:18px;height:18px}
.hero{background:var(--hero);color:#fff;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 90% 0,#215e9740,transparent 65%)}.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:30px;position:relative;padding-block:54px 48px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.9px;line-height:1.5;color:var(--primary-text)}.hero .eyebrow{color:#b9dfff;display:flex;gap:9px;align-items:center;margin-bottom:18px}.status-dot{width:6px;height:6px;border-radius:50%;background:#b9dfff;box-shadow:0 0 0 4px #b9dfff14}.hero h1{font-size:clamp(44px,5vw,68px);line-height:1.05;letter-spacing:-3px;font-weight:700}.hero h1 span{color:#b9dfff}.hero-copy>p{font-size:16px;max-width:500px;line-height:1.65;margin-top:22px;color:var(--hero-muted)}.hero-cta{display:inline-flex;align-items:center;gap:24px;padding:15px 20px;margin-top:27px;background:#0868f2;color:#fff;font-size:13px;font-weight:700;border-radius:7px;transition:background .18s}.hero-cta:hover{background:#0057db}.hero-cta .icon{width:18px;height:18px}.hero-note{font-size:11px;color:var(--hero-muted);margin-top:17px}.hero-art{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;align-items:center;min-width:0}.hero-art img{width:100%;max-width:530px;height:auto}.hero-art>span{font-size:10px;letter-spacing:1.4px;color:#b9dfff;padding-top:8px;opacity:.9}.hero-category .hero-inner{padding-block:40px;min-height:290px}.hero-category h1{font-size:52px}.hero-category .hero-art{height:230px;overflow:hidden}.hero-category .hero-art img{max-width:330px}.hero-category .hero-art>span{display:none}.breadcrumb{display:flex;gap:10px;margin-bottom:25px;font-size:11px;color:#c4d4e8}.breadcrumb a{text-decoration:underline;text-underline-offset:3px}
.update-strip{display:flex;gap:40px;align-items:center;padding-block:23px;border-bottom:1px solid var(--line)}.update-box{display:flex;align-items:center;gap:12px;margin-right:auto;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:13px 17px;min-width:290px;box-shadow:var(--shadow)}.update-box>.icon{width:21px;height:21px;color:var(--primary)}.update-box>div{display:flex;flex-direction:column;gap:5px}.update-box span:not(.update-dot){font-size:10px;color:var(--muted)}.update-box time{font-weight:700;font-size:13px}.update-dot{width:6px;height:6px;border-radius:50%;background:var(--green);margin-left:auto}.stat{display:flex;gap:10px;align-items:center}.stat strong{font-size:28px;letter-spacing:-1px;font-weight:650}.stat span{font-size:10px;color:var(--muted);line-height:1.5;max-width:70px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px}.section-heading h2{font-size:30px;letter-spacing:-1px;line-height:1.2}.section-heading p{font-size:13px;color:var(--muted);margin-top:9px}.section-heading .eyebrow{margin-bottom:12px}.tiny-label{font-size:9px;color:var(--muted);letter-spacing:1.4px;white-space:nowrap}.category-section{padding-block:44px 48px}.category-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.category-tile{padding:21px 17px 17px;border:1px solid var(--line);border-radius:11px;background:var(--surface);display:flex;flex-direction:column;position:relative;min-width:0;transition:border-color .18s,transform .18s,box-shadow .18s}.category-tile>.icon:first-child{width:26px;height:26px;color:var(--primary);margin-bottom:22px}.category-tile>span{font-size:12px;font-weight:700;line-height:1.4}.category-tile>small{font-size:10px;color:var(--muted);margin-top:6px}.category-tile .tile-arrow{width:15px;height:15px;position:absolute;right:14px;top:21px;color:var(--muted)}.category-tile:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:var(--shadow)}
.catalog-section{padding-block:44px 56px;border-top:1px solid var(--line);background:var(--surface-alt)}.category-page .catalog-section{border-top:0}.category-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}.category-tabs a{min-height:40px;padding:11px 13px;font-size:11px;font-weight:600;border-radius:6px;border:1px solid transparent;color:var(--muted);display:flex;align-items:center;gap:8px}.category-tabs a[aria-current]{background:var(--surface);color:var(--ink);border-color:var(--line);box-shadow:var(--shadow)}.category-tabs a:hover{color:var(--primary-text);background:var(--surface)}.category-tabs a>span{padding:2px 5px;font-size:9px;border-radius:3px;background:var(--soft-blue);color:var(--primary-text)}.filters{display:flex;align-items:stretch;gap:12px}.search-box{flex:1;min-width:100px;display:flex;align-items:center;gap:12px;padding:0 12px 0 18px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.search-box>.icon{color:var(--muted);width:19px;height:19px}.search-box input{flex:1;min-width:0;border:0;padding:18px 0;background:transparent;color:var(--ink);font-size:13px}.search-box input::placeholder{color:var(--muted);opacity:1}.search-box:focus-within{outline:2px solid var(--primary);outline-offset:2px}.search-box input:focus{outline:0}.search-box button{display:grid;place-items:center;width:32px;height:34px;background:var(--surface-alt);border-radius:5px;color:var(--muted)}.price-filter{display:flex;align-items:center;gap:13px;padding-inline:17px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-size:12px}.price-filter>span{font-size:10px;color:var(--muted)}.price-filter select{background:transparent;border:0;color:var(--ink);max-width:175px;min-height:44px}.open-filter{border:1px solid var(--line);border-radius:9px;background:var(--surface);padding:0 15px;display:flex;align-items:center;gap:7px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap}.open-filter input{accent-color:#0868f2;width:16px;height:16px;margin-right:3px}.open-filter .icon{width:17px;height:17px;color:var(--muted)}.results-bar{display:flex;align-items:center;gap:16px;min-height:65px}.results-bar p{font-size:12px;color:var(--muted)}.results-bar strong{color:var(--ink)}.result-range{font-size:10px}.sort-label{font-size:11px;color:var(--muted);margin-left:auto;display:flex;gap:8px;align-items:center}.sort-label>span{font-size:10px}.reset-button{padding:8px 0;color:var(--primary-text);background:transparent;font-size:11px}.reset-button:hover{text-decoration:underline}.reset-button>span{font-size:18px;padding-left:6px}
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;align-items:stretch}
.tool-grid>.tool-card:not(.tool-featured){display:flex;flex-direction:column}.tool-grid>.tool-card:not(.tool-featured)>.card-visual{flex-shrink:0}.tool-grid>.tool-card:not(.tool-featured)>.card-body{flex:1}
.tool-card{background:var(--surface);border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:var(--shadow);min-width:0;transition:box-shadow .2s,border-color .2s}.tool-card:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:0 10px 35px #123a6912}.card-visual{aspect-ratio:16/9;position:relative;background:#e8edf3;overflow:hidden;border-bottom:1px solid var(--line)}.card-visual>img{width:100%;height:100%;object-fit:contain;transition:transform .3s}.tool-card:hover .card-visual>img{transform:scale(1.025)}.preview-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted);background:var(--surface-alt);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:24px 24px;gap:9px;padding:35px 20px 20px;text-align:center}.preview-fallback .icon{color:var(--primary);width:35px;height:35px}.preview-fallback>span{font-weight:700;font-size:15px;color:var(--ink);background:var(--surface-alt);padding:3px 6px}.preview-fallback>small{font-size:10px;background:var(--surface-alt);padding:3px 6px}.card-body{padding:21px;display:flex;flex-direction:column}.card-category{display:flex;gap:6px;align-items:center;color:var(--primary-text);font-size:9px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;margin-bottom:11px}.card-category .icon{width:13px;height:13px}.card-category a:hover{text-decoration:underline}.tool-card h3{font-size:21px;line-height:1.2;letter-spacing:-.6px;min-height:50px;overflow-wrap:anywhere}.card-description{font-size:12px;line-height:1.65;color:var(--muted);margin-top:9px;min-height:80px}.badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:15px;min-height:25px;align-items:flex-start}.badge{font-size:9px;line-height:1.4;font-weight:600;display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border-radius:4px;background:var(--surface-alt);color:var(--muted)}.badge .icon{width:12px;height:12px}.badge-dot{width:4px;height:4px;border-radius:50%;background:currentColor}.price-free{background:var(--green-bg);color:var(--green)}.price-freemium{background:var(--soft-blue);color:var(--primary-text)}.price-paid{background:var(--amber-bg);color:var(--amber)}.code-open-source{background:var(--soft-blue);color:var(--primary-text)}.card-actions{display:flex;gap:7px;flex-wrap:wrap;padding-top:19px;margin-top:auto;min-height:59px}.card-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:9px 10px;border:1px solid var(--line);border-radius:6px;font-size:10px;font-weight:700;background:var(--surface);color:var(--ink)}.card-link .icon{width:13px;height:13px}.primary-link{background:var(--soft-blue);border-color:transparent;color:var(--primary-text);flex:1;justify-content:space-between;min-width:100px}.card-link:hover{border-color:var(--primary);color:var(--primary-text)}.primary-link:hover{background:var(--primary);color:var(--surface)}
.empty-state{text-align:center;padding:65px 20px;background:var(--surface);border:1px dashed var(--line);border-radius:12px}.empty-state>.icon{width:36px;height:36px;color:var(--primary);margin-bottom:20px}.empty-state h3{font-size:23px;letter-spacing:-.7px}.empty-state p{color:var(--muted);font-size:14px;margin:13px 0 24px}.button{background:#0868f2;color:#fff;padding:13px 18px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-size:13px;font-weight:700}.button:hover{background:#0057db}.pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:34px}.page-numbers{display:flex;gap:5px}.page-link{display:flex;align-items:center;justify-content:center;min-width:38px;min-height:38px;border:1px solid var(--line);border-radius:6px;font-size:11px;background:var(--surface);padding:9px 11px}.page-link[aria-current]{background:#0868f2;border-color:#0868f2;color:#fff}.page-link:hover{border-color:var(--primary)}.page-disabled{font-size:11px;color:var(--muted);opacity:.7;padding:9px 11px}.catalog-note{display:flex;align-items:flex-start;justify-content:center;gap:8px;font-size:10px;color:var(--muted);margin:30px auto 0;max-width:750px;text-align:center;line-height:1.7}.catalog-note .icon{width:16px;height:16px;margin-top:2px}.notice{padding:16px;border:1px solid var(--line);border-radius:8px;font-size:13px;background:var(--surface)}
.about-section{display:grid;grid-template-columns:1.3fr 1fr;gap:90px;padding-block:70px}.about-section .eyebrow{font-size:9px;margin-bottom:18px}.about-section h2{font-size:34px;line-height:1.15;letter-spacing:-1.2px;max-width:450px}.about-section p{font-size:13px;line-height:1.8;color:var(--muted);margin-top:20px}.method-box{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:25px 28px}.method-box>.icon{color:var(--primary);width:23px;height:23px;margin-bottom:16px}.method-box h3{font-size:17px;letter-spacing:-.4px}.method-box p{font-size:12px;margin-top:12px}.sample-badges{display:flex;gap:6px;margin-top:20px}footer{border-top:1px solid var(--line);background:var(--surface)}.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;padding-block:30px}.footer-inner strong{font-size:13px}.footer-inner p{font-size:10px;color:var(--muted);margin-top:9px}.footer-inner>a{font-size:11px;white-space:nowrap;color:var(--primary-text)}.footer-inner>a>span{font-size:17px;margin-left:10px}.language-landing{min-height:100vh;display:grid;place-items:center;padding:30px}.language-landing main{max-width:500px;text-align:center}.language-landing .brand-mark{margin:0 auto 25px}.language-landing h1{font-size:42px;letter-spacing:-1.5px}.language-landing p{color:var(--muted);margin-top:12px}.landing-actions{display:flex;justify-content:center;gap:12px;margin-top:25px}
@media(min-width:1500px){.hero-inner{padding-block:66px 58px}.hero h1{font-size:72px}}
@media(max-width:1150px){.wrap{width:calc(100% - 48px)}.header-inner{gap:20px}.main-nav{gap:16px}.main-nav a{font-size:12px}.header-controls{gap:10px}.hero h1{font-size:58px}.hero-copy>p{font-size:14px}.update-strip{gap:25px}.stat{gap:7px}.stat strong{font-size:24px}.category-tile{padding:17px 13px}.category-tile>span{font-size:11px}.tool-grid{gap:16px}.card-body{padding:18px 17px}.tool-card h3{font-size:19px;min-height:46px}.card-description{font-size:12px;min-height:99px}.card-link{font-size:9px}.open-filter{padding:0 12px}.open-filter .icon{display:none}.category-tabs a{font-size:10px;padding:10px 11px}.about-section{gap:50px}}
@media(max-width:900px){.main-nav{display:none}.header-inner{height:76px}.hero-inner{gap:0;padding-block:42px}.hero h1{font-size:49px;letter-spacing:-2px}.hero-copy>p{font-size:14px}.hero-note{font-size:10px}.hero-art>span{font-size:8px}.update-strip{gap:20px}.update-box{min-width:255px;padding:12px 14px}.stat{flex-direction:column;align-items:flex-start;gap:3px}.stat span{max-width:100px;font-size:9px}.stat strong{font-size:23px}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.category-tile{padding:16px 18px 16px 60px;min-height:75px;justify-content:center}.category-tile>.icon:first-child{position:absolute;left:20px;top:24px;width:24px;height:24px;margin:0}.category-tile>.tile-arrow{top:16px;right:12px;width:12px}.category-tile>span{font-size:12px}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card-body{padding:20px}.tool-card h3{font-size:22px;min-height:53px}.card-description{min-height:80px;font-size:13px}.card-link{font-size:10px}.filters{flex-wrap:wrap;gap:10px}.search-box{flex-basis:100%}.price-filter{flex:1;justify-content:space-between;min-height:48px}.open-filter{min-height:48px}.open-filter .icon{display:block}.section-heading h2{font-size:28px}.tiny-label{display:none}.about-section{gap:30px}.about-section h2{font-size:29px}.method-box{padding:23px}.hero-category h1{font-size:44px}}
@media(max-width:600px){html{scroll-padding-top:86px}.wrap{width:calc(100% - 32px)}.header-inner{gap:8px;height:70px}.brand{gap:8px}.brand-mark{width:33px;height:33px;border-radius:8px}.brand-mark .icon{width:23px;height:23px}.brand strong{font-size:13px;letter-spacing:-.4px}.brand small{font-size:6px;letter-spacing:1.1px;margin-top:4px}.header-controls{gap:7px}.language-switch{font-size:9px;padding:2px;gap:0}.language-switch>*{min-width:26px;min-height:30px}.theme-control{gap:0}.hero-inner{display:block;padding-block:36px 32px}.hero h1{font-size:48px;letter-spacing:-2.5px}.hero .eyebrow{font-size:9px;margin-bottom:18px}.hero-copy>p{font-size:14px;line-height:1.7;margin-top:19px;max-width:450px}.hero-cta{font-size:12px;margin-top:23px;padding:14px 17px}.hero-note{font-size:10px;margin-top:15px}.hero-art{display:none}.hero-category .hero-inner{min-height:0;padding-block:28px 32px}.hero-category h1{font-size:40px;letter-spacing:-1.5px;overflow-wrap:anywhere}.breadcrumb{font-size:10px;margin-bottom:22px}.update-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 16px;padding-block:19px}.update-box{grid-column:1/-1;width:100%;min-width:0;padding:12px 15px;margin:0}.update-box>div{flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px 6px}.update-box time{font-size:12px}.update-box span:not(.update-dot){font-size:11px}.update-box>.icon{width:18px;height:18px}.stat{flex-direction:row;gap:9px;align-items:center}.stat strong{font-size:23px}.stat span{font-size:8px;max-width:65px}.section-heading{margin-bottom:22px;gap:10px}.section-heading h2{font-size:26px}.section-heading p{font-size:12px;margin-top:9px}.section-heading .eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:10px}.category-section{padding-block:30px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.category-tile{padding:15px 9px 14px 43px;min-height:78px}.category-tile>.icon:first-child{left:13px;top:20px;width:21px;height:21px}.category-tile>.tile-arrow{display:none}.category-tile>span{font-size:11px;max-width:110px}.category-tile>small{font-size:9px;margin-top:6px}.catalog-section{padding-block:32px 36px}.category-tabs{flex-wrap:nowrap;overflow-x:auto;padding:3px 3px 8px;gap:3px;margin-inline:-3px;margin-bottom:17px;scrollbar-width:thin}.category-tabs>a{white-space:nowrap;font-size:11px;min-height:40px;padding:10px 12px}.search-box{padding-left:13px;gap:9px}.search-box input{font-size:12px;padding-block:17px}.search-box button{width:32px}.price-filter{gap:5px;padding-inline:12px;min-width:0}.price-filter>span{display:none}.price-filter select{font-size:11px;width:100%;max-width:145px;min-width:0}.open-filter{font-size:10px;padding:0 10px;gap:4px}.open-filter input{width:16px;height:16px;margin-right:2px}.open-filter .icon{display:none}.results-bar{min-height:61px;gap:10px}.results-bar p{font-size:11px}.sort-label{font-size:10px}.sort-label>span{display:none}.reset-button{font-size:10px}.tool-grid{grid-template-columns:minmax(0,1fr);gap:20px}.card-body{padding:21px 20px}.tool-card h3{font-size:23px;min-height:0}.card-description{font-size:13px;min-height:0;margin-top:11px}.card-category{font-size:9px}.badges{margin-top:17px;gap:6px}.badge{font-size:10px;padding:5px 8px}.card-actions{padding-top:18px;gap:8px}.card-link{font-size:11px;min-height:42px;padding:10px 12px}.card-link .icon{width:14px;height:14px}.pagination{gap:4px;padding-top:25px}.page-link{min-width:32px;min-height:38px;padding:9px 8px;font-size:10px}.page-numbers{gap:3px}.page-disabled{font-size:9px;padding:8px 2px}.page-prev,.page-next{font-size:9px;padding-inline:6px}.catalog-note{font-size:9px;line-height:1.7;text-align:left;justify-content:flex-start;margin-top:25px}.about-section{grid-template-columns:1fr;gap:28px;padding-block:40px}.about-section .eyebrow{font-size:8px;letter-spacing:1.4px}.about-section h2{font-size:30px;max-width:350px}.about-section p{font-size:12px;margin-top:17px}.method-box{padding:22px}.method-box p{font-size:12px}.footer-inner{padding-block:24px;align-items:flex-start}.footer-inner strong{font-size:12px}.footer-inner p{font-size:9px;max-width:240px}.footer-inner>a{font-size:9px}.footer-inner>a>span{margin-left:3px}.language-landing h1{font-size:34px}}
@media(max-width:360px){.brand-mark{display:none}.hero h1{font-size:43px}.stat{gap:6px}.stat span{font-size:7px}.page-link{min-width:29px;padding:8px 6px}.wrap{width:calc(100% - 28px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.hero-art,.filters,.category-tabs,.pagination,.reset-button,.hero-cta,.hero-note{display:none!important}.tool-card[hidden]{display:block!important}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-card{break-inside:avoid}.hero{background:#fff;color:#000}.hero h1 span,.hero-copy>p,.hero .eyebrow{color:#333}.card-visual{max-height:160px}.about-section{break-before:page}body{color:#000;background:#fff}}

/* Compact pagination: numbers stay together, navigation gets its own mobile row. */
html{scrollbar-gutter:stable}
@supports not (scrollbar-gutter:stable){html{overflow-y:scroll}}
.page-ellipsis{display:flex;align-items:center;justify-content:center;min-width:20px;color:var(--muted);user-select:none}
@media(max-width:600px){.pagination{display:grid;grid-template-columns:1fr 1fr;gap:12px 8px}.pagination .page-numbers{grid-column:1/-1;grid-row:1;justify-content:center;gap:4px}.pagination>.page-link,.pagination>.page-disabled{grid-row:2;justify-self:start}.pagination>:last-child{justify-self:end}.pagination .page-link{min-height:44px}.pagination .page-numbers .page-link{min-width:36px;padding-inline:6px}.pagination .page-ellipsis{min-width:18px}}

/* Native popups need explicit option colors on Windows/Chromium. */
:root[data-theme=dark] .update-strip { border-bottom-color: transparent; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .update-strip { border-bottom-color: transparent; }
}
.card-visual { display: block; }
.card-visual:focus-visible { outline: 3px solid var(--primary); outline-offset: -4px; }
select { color-scheme: inherit; }
select option, select optgroup { background-color: var(--surface); color: var(--ink); }
.price-filter select { background-color: var(--surface); border-radius: 5px; }
.theme-control { gap: 0; flex-shrink: 0; }
.theme-control[hidden] { display: flex !important; visibility: hidden; }
.theme-toggle { position: relative; display: flex; align-items: center; justify-content: space-around; width: 76px; height: 36px; padding: 3px; border: 1px solid var(--line); border-radius: 24px; background: var(--surface-alt); color: var(--muted); cursor: pointer; }
.theme-toggle::before { content: ''; position: absolute; left: 6px; top: 3px; width: 28px; height: 28px; border-radius: 50%; background: var(--soft-blue); box-shadow: 0 1px 5px #0002; transition: transform .18s ease; }
:root[data-theme=dark] .theme-toggle::before { transform: translateX(34px); }
.theme-toggle .icon { position: relative; width: 17px; height: 17px; }
.theme-toggle .theme-sun { color: var(--primary); }
:root[data-theme=dark] .theme-toggle .theme-sun { color: var(--muted); }
:root[data-theme=dark] .theme-toggle .theme-moon { color: var(--primary); }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme=light]) .theme-toggle::before { transform: translateX(34px); }
  :root:not([data-theme=light]) .theme-toggle .theme-sun { color: var(--muted); }
  :root:not([data-theme=light]) .theme-toggle .theme-moon { color: var(--primary); }
}
@media(prefers-reduced-motion:reduce) { .theme-toggle::before { transition: none; } }
@media(max-width:380px) { .brand small { display: none; } }

/* Real product previews replace the abstract hero illustration. */
.hero-showcase { position: relative; min-width: 0; height: 400px; isolation: isolate; }
.showcase-glow { position: absolute; inset: 5% -5%; background: radial-gradient(ellipse, #187ff04d, transparent 68%); z-index: -1; }
.showcase-window { position: absolute; overflow: hidden; border: 1px solid #86baff66; border-radius: 12px; background: #142b45; box-shadow: 0 20px 55px #020c205c; }
.showcase-main { width: 92%; right: 0; top: 22px; transform: rotate(3deg); }
.showcase-small { width: 61%; left: 0; bottom: 36px; transform: rotate(-5deg); border-color: #b9dfff99; }
.window-bar { height: 28px; display: flex; align-items: center; gap: 4px; padding-inline: 12px; background: #183752; color: #d8eaff; }
.window-bar i { width: 5px; height: 5px; border-radius: 50%; background: #769cb8; }
.window-bar span { margin-left: auto; font-size: 9px; letter-spacing: .5px; }
.hero-showcase img { width: 100%; height: auto; }
.hero-category .hero-showcase { height: 260px; }
.hero-category .showcase-main { width: 70%; top: 0; }
.hero-category .showcase-small { width: 46%; bottom: 22px; }

/* Editorially featured entries remain subject to every active filter. */
.tool-featured { grid-column: 1 / -1; display: grid; grid-template-columns: 1.1fr 1fr; border: 2px solid #b78729; background: var(--surface); box-shadow: 0 8px 28px #b7872914; }
/* Keep the badge's containing block fitted to the preview, not the full grid row. */
.tool-featured > .piraz-visual { align-self: center; min-width: 0; margin: 20px; }
.tool-featured .card-visual { margin: 0; border: 1px solid var(--line); border-radius: 8px; }
.tool-featured .card-body { padding: 20px 28px 20px 8px; }
.featured-label { display: inline-flex; align-self: flex-start; margin-bottom: 12px; padding: 7px 10px; border-radius: 5px; background: var(--amber-bg); color: var(--amber); font-size: 11px; font-weight: 700; letter-spacing: .35px; }
.tool-featured h3 { font-size: 30px; min-height: 0; }
.tool-featured .card-description { font-size: 14px; min-height: 0; margin-top: 13px; }
.tool-featured .card-category { margin-bottom: 9px; }
.tool-featured .card-actions { margin-top: 0; }
.tool-featured .primary-link { background: #0868f2; color: #fff; }
.tool-featured .primary-link:hover { background: #0057db; }
.footer-owner { font-size: 16px; line-height: 1.6; }
.footer-owner a { color:var(--primary-text); text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 900px) {
  .hero-showcase { height: 290px; }
  .showcase-main { top: 32px; }
  .showcase-small { bottom: 34px; }
  .tool-featured { grid-template-columns: 1fr 1fr; }
  .tool-featured > .piraz-visual { margin: 14px; }
  .tool-featured .card-body { padding: 20px 20px 20px 0; }
  .tool-featured h3 { font-size: 26px; }
}
@media (max-width: 600px) {
  .hero-showcase { display: none; }
  .tool-featured { display: block; }
  .tool-featured > .piraz-visual { margin: 0; }
  .tool-featured .card-visual { border: 0; border-radius: 0; border-bottom: 1px solid var(--line); }
  .tool-featured .card-body { padding: 21px; }
  .tool-featured .card-description { font-size: 13px; }
  .featured-label { font-size: 10px; }
  .footer-owner { font-size: 14px; }
}
@media print { .hero-showcase { display: none; } }

/* Nine page numbers must fit independently of the translated previous/next labels. */
@media (max-width: 600px) {
  .pagination { flex-wrap: wrap; row-gap: 10px; }
  .page-numbers { order: -1; flex-basis: 100%; flex-wrap: wrap; justify-content: center; }
  .page-prev, .page-next { white-space: nowrap; }
}

/* Optional classifications stay separate from price and source-code badges. */
.tool-classification { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.subcategory-label, .activity-label { font-size: 10px; line-height: 1.45; border-radius: 4px; padding: 4px 7px; }
.subcategory-label { flex-basis: 100%; padding: 0; color:var(--primary-text); font-weight: 600; }
.activity-label { background: var(--surface-alt); color: var(--muted); border: 1px solid var(--line); }
.classification-filters { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; padding: 14px; border: 1px solid var(--line); border-radius: 9px; min-width: 0; }
.classification-filters legend { padding: 0 7px; font-size: 11px; font-weight: 600; color: var(--muted); }
.classification-filters label { display: flex; flex: 1 1 260px; align-items: center; gap: 12px; min-width: 0; }
.classification-filters label > span { color: var(--muted); font-size: 11px; }
.classification-filters select { flex: 1; width: 100%; min-width: 0; min-height: 42px; padding: 9px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); background: var(--surface); font: inherit; font-size: 12px; }
@media (max-width: 600px) {
  .classification-filters { gap: 14px; padding: 12px; }
  .classification-filters label { flex-basis: 100%; align-items: stretch; flex-direction: column; gap: 6px; }
}
@media print { .classification-filters { display: none; } }

/* Help3D footer, adapted from the PreventiPiraz landing in read-only mode. */
.help3d-footer { background: var(--surface); color: var(--ink); }
.footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; padding-block: 38px; }
.footer-brand { max-width: 390px; }
.footer-brand p { color: var(--muted); font-size: 12px; line-height: 1.7; margin-top: 12px; }
.footer-back { display: inline-flex; gap: 12px; align-items: center; min-height: 44px; color:var(--primary-text); font-size: 12px; margin-top: 10px; }
.footer-group { display: flex; align-items: flex-start; flex-direction: column; }
.footer-group h3 { font-size: 14px; line-height: 1.5; margin-bottom: 12px; }
.footer-group > a { display: inline-flex; align-items: center; min-height: 36px; font-size: 13px; }
.help3d-footer a:hover { color:var(--primary-text); text-decoration: underline; text-underline-offset: 3px; }
.footer-tools { display: flex; justify-content: space-between; align-items: flex-start; gap: 28px; padding-block: 20px; border-block: 1px solid var(--line); }
.footer-social { display: flex; flex-wrap: wrap; gap: 8px; }
.footer-social a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 12px; background: var(--surface-alt); border-radius: 6px; font-size: 13px; }
.footer-resources { flex: 0 0 270px; min-width: 0; }
.footer-resources summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 44px; padding: 10px 12px; font-size: 13px; list-style: none; cursor: pointer; border-radius: 6px; }
.footer-resources summary::-webkit-details-marker { display: none; }
.footer-resources summary:hover { background: var(--surface-alt); }
.footer-toggle { font-size: 22px; line-height: 1; transition: transform .15s; }
.footer-resources[open] .footer-toggle { transform: rotate(45deg); }
.footer-resources nav { display: grid; gap: 2px; padding: 8px 12px 0; }
.footer-resources nav a { padding-block: 10px; font-size: 13px; line-height: 1.4; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 24px; }
.footer-legal { font-size: 12px; line-height: 1.6; }
.footer-legal > div { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.footer-legal > p { margin-top: 8px; }
.footer-policies { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.footer-policies a,
.footer-policies [data-analytics-preferences] { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; }
@media (max-width: 900px) {
  .footer-top { gap: 24px; grid-template-columns: 1.3fr 1fr 1fr; }
  .footer-tools { flex-direction: column; gap: 16px; }
  .footer-resources { flex: none; width: 100%; }
  .footer-resources nav { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; }
}
@media (max-width: 600px) {
  .footer-top { grid-template-columns: 1fr; gap: 26px; padding-block: 28px; }
  .footer-group > a, .footer-resources nav a { min-height: 44px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 12px; }
  .footer-legal > div { flex-direction: column; }
  .footer-resources nav { grid-template-columns: 1fr; }
}

/* Readable, responsive legal pages share the catalog header and footer. */
.legal-content{max-width:880px;padding-top:42px;padding-bottom:64px;line-height:1.75}
.legal-content h1{font-size:clamp(2rem,5vw,3.1rem);line-height:1.15;margin:18px 0}
.legal-content h2{font-size:1.35rem;line-height:1.4;margin:0 0 12px}
.legal-content section{margin-top:36px}.legal-content p{margin:12px 0}
.legal-content a{text-decoration:underline;text-underline-offset:3px}
.legal-content .breadcrumb{margin-bottom:28px;color:var(--muted)}.legal-content .breadcrumb a{color:var(--primary-text)}.legal-intro{font-size:1.15rem}
.legal-date{font-size:.9rem}.legal-draft{border:1px solid var(--line);border-left:4px solid #75afff;border-radius:10px;padding:18px 22px;margin:24px 0;background:var(--surface)}
.legal-draft p{margin-bottom:0}.legal-nav{display:flex;flex-wrap:wrap;gap:12px 24px;border-bottom:1px solid var(--line);padding:16px 0}
.legal-nav [aria-current]{font-weight:750}.storage-list{margin:16px 0}.storage-list>div{padding:16px 0;border-bottom:1px solid var(--line)}
.storage-list dt{font-weight:700}.storage-list dd{margin:8px 0 0}.legal-content code{overflow-wrap:anywhere}
@media(max-width:600px){.legal-content{padding-top:28px;padding-bottom:40px}.legal-draft{padding:15px}.legal-content section{margin-top:28px}}

.most-clicked-label { display: inline-flex; align-items: center; align-self: flex-start; gap: 8px; margin-bottom: 16px; padding: 9px 13px; border-radius: 7px; background: linear-gradient(120deg, #075acb, #0868f2); color: #fff; font-size: 13px; font-weight: 700; line-height: 1.4; box-shadow: 0 3px 12px #0868f22b; }
.most-clicked-label .icon { width: 19px; height: 19px; flex: 0 0 auto; stroke-width: 1.9; }
.tool-popular:not(.tool-featured) { border: 2px solid var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent), var(--shadow); }
.tool-popular:not(.tool-featured):hover { border-color: var(--primary-strong); }
.tool-popular:not(.tool-featured) .card-body { background: linear-gradient(155deg, color-mix(in srgb, var(--primary) 7%, var(--surface)), var(--surface) 65%); }

.results-bar { flex-wrap: wrap; }
.sort-control { display: flex; align-items: center; gap: 10px; margin-left: auto; color: var(--muted); font-size: 11px; }
.sort-control select { min-height: 42px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: var(--surface); font: inherit; cursor: pointer; }
.sort-control option { color: var(--ink); background: var(--surface); }
.sort-control option:disabled { color: var(--muted); }
.sort-notice { font-size: 12px; color: var(--muted); margin-bottom: 18px; }
@media (max-width: 650px) {
  .sort-control { width: 100%; margin: 0 0 14px; }
  .sort-control select { flex: 1; min-width: 0; }
}
@media print { .sort-control, .sort-notice { display: none; } }

.card-click-count { display: flex; align-items: center; gap: 5px; margin: 10px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; font-variant-numeric: tabular-nums; }

.footer-view-count { margin: 0; padding: 0 0 22px; color: var(--muted); font-size: 11px; line-height: 1.5; text-align: center; font-variant-numeric: tabular-nums; }

/* Catalog filters only: cards, previews and category navigation are unchanged. */
.filters .search-box { flex: 1 1 240px; min-width: 0; }
.filter-options { display: flex; align-items: stretch; gap: 12px; }
.filters { flex-wrap: wrap; }
.filter-options { flex-wrap: wrap; }
.rating-filter { min-width: 0; }
.rating-filter > span { max-width: 72px; line-height: 1.4; }
.filter-toggle, .filter-done { display: none; }
.activity-filters { min-width: 0; margin: 20px 0 0; padding: 0; border: 0; }
.activity-filters legend { margin-bottom: 10px; padding: 0; font-size: 13px; font-weight: 700; color: var(--ink); }
.activity-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.activity-choice { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; max-width: 100%; min-height: 44px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); font-size: 12px; text-align: left; }
.activity-choice:hover { border-color: var(--primary); }
.activity-choice[aria-pressed="true"] { border-color: var(--primary); color:var(--primary-text); background: var(--soft-blue); box-shadow: inset 0 0 0 1px var(--primary); }
.activity-count { min-width: 19px; padding: 2px 5px; border-radius: 4px; background: var(--surface-alt); color: var(--muted); text-align: center; font-size: 11px; font-variant-numeric: tabular-nums; }
.activity-choice[aria-pressed="true"] .activity-count { background: var(--surface); color:var(--primary-text); }
.activity-more { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 3px; padding: 8px 2px; background: transparent; color:var(--primary-text); font-size: 12px; }
.active-filters { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 14px; }
.active-filter { max-width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft-blue); color:var(--primary-text); font-size: 12px; overflow-wrap: anywhere; text-align: left; }
.active-filter > span { display: inline-block; margin-left: 8px; font-size: 17px; }
.active-filter:hover { border-color: var(--primary); }
@media (max-width: 900px) and (min-width: 601px) {
  .filters .search-box { flex-basis: 100%; }
  .filter-options { width: 100%; }
}
@media (max-width: 600px) {
  .filters { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
  .filters .search-box input { font-size: 16px; width: 100%; min-width: 0; padding-block: 14px; }
  .filters .search-box { padding-left: 10px; gap: 6px; }
  .filter-toggle, .filter-done { display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-height: 44px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); color: var(--ink); font-size: 13px; }
  .filter-toggle[aria-expanded="true"] { border-color: var(--primary); color:var(--primary-text); }
  .filter-options { display: none; grid-column: 1 / -1; padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); }
  .filter-options.is-open { display: flex; flex-direction: column; gap: 12px; }
  .filter-options .price-filter { flex: auto; justify-content: space-between; min-height: 48px; gap: 12px; }
  .filter-options .price-filter > span { display: inline; font-size: 12px; }
  .filter-options .price-filter select { font-size: 16px; max-width: 100%; width: auto; flex: 1; }
  .filter-options .rating-filter { flex-wrap: wrap; padding-block: 8px; }
  .filter-options .rating-filter > span { max-width: none; }
  .filter-options .open-filter { font-size: 13px; min-height: 48px; }
  .filter-done { background: var(--soft-blue); color:var(--primary-text); border-color: var(--primary); }
  .activity-filters { margin-top: 18px; }
  .activity-choice { font-size: 13px; padding: 9px 11px; gap: 8px; }
  .activity-more, .active-filter { font-size: 13px; }
}
@media print { .activity-filters, .active-filters { display: none; } }

/* Quiet, always-visible link to the limits of the editorial review. */
.catalog-note { font-size: 11px; }
.catalog-note a { text-decoration: underline; text-underline-offset: 3px; }
.catalog-note a:hover { color:var(--primary-text); }

.piraz-visual{position:relative}
.piraz-badge{position:absolute;z-index:1;left:12px;bottom:12px;max-width:calc(100% - 24px);display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:7px;border:1px solid #ffffff80;box-shadow:0 2px 10px #0003;font-size:12px;font-weight:750;line-height:1.3;pointer-events:none}
.piraz-approved{background:#ffe19a;color:#493100}
.piraz-tested{background:#143d69;color:#fff}
.piraz-comment{margin-top:16px;padding:14px 15px;background:var(--surface-alt);border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:7px;overflow-wrap:anywhere}
.piraz-comment strong{display:block;font-size:11px;color:var(--ink)}
.piraz-comment small{display:block;margin-top:5px;font-size:10px;color:var(--muted)}
.piraz-comment p{font-size:12px;line-height:1.65;margin:7px 0 0;color:var(--ink);white-space:pre-wrap}

.featured-carousel { grid-column: 1 / -1; min-width: 0; position: relative; }
.featured-controls { position: absolute; inset: 0; z-index: 2; pointer-events: none; }
.featured-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; padding: 0; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--surface); color: var(--ink); box-shadow: 0 2px 8px #0002; font: inherit; font-size: 22px; cursor: pointer; pointer-events: auto; }
.featured-previous { left: 10px; }
.featured-next { right: 10px; }
.featured-arrow:hover { border-color: var(--primary); color: var(--primary); }
.featured-arrow:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
/* All slides size the same cell, keeping the next result stationary. */
.featured-track { display: grid; touch-action: pan-y pinch-zoom; }
.featured-track > .tool-featured { grid-area: 1 / 1; min-width: 0; padding-inline: 38px; z-index: 1; opacity: 1; visibility: visible; transition: opacity 240ms ease-in-out, visibility 0s, box-shadow .2s, border-color .2s; }
/* Inert/aria-hidden switch immediately; visibility waits for the outgoing fade. */
.featured-track > .tool-featured[hidden] { display: grid !important; z-index: 0; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 240ms ease-in-out, visibility 0s linear 240ms, box-shadow .2s, border-color .2s; }
@media (max-width: 600px) {
  .featured-track > .tool-featured { padding-inline: 0; }
  .featured-track > .tool-featured[hidden] { display: block !important; }
  .featured-arrow { top: clamp(75px, 26vw, 155px); }
  .featured-previous { left: 8px; }
  .featured-next { right: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .featured-track > .tool-featured,
  .featured-track > .tool-featured[hidden] { transition: none; }
}
@media print {
  .featured-controls { display: none; }
  .featured-track { display: block; }
  .featured-track > .tool-featured,
  .featured-track > .tool-featured[hidden] { padding-inline: 0; opacity: 1; transition: none; }
  .featured-track > .tool-featured[hidden], .featured-track > .tool-featured[hidden] * { visibility: visible !important; }
}

.donate-link { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.donate-link .icon { width: 17px; height: 17px; color: var(--primary); }
.donate-link:hover { color:var(--primary-text); }
.support-section { padding-block: 0 64px; }
.support-panel { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 56px; padding: 40px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); }
.support-heart { display: inline-grid; place-items: center; width: 40px; height: 40px; margin-bottom: 18px; border-radius: 50%; background: var(--soft-blue); color: var(--primary); }
.support-copy h2 { font-size: 28px; line-height: 1.2; letter-spacing: -.8px; }
.support-copy p { font-size: 13px; color: var(--muted); margin-top: 16px; }
.support-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.support-link { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px; min-height: 96px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-alt); }
.support-link small { display: block; font-size: 11px; color: var(--muted); line-height: 1.5; }
.support-link strong { display: block; font-size: 19px; margin-top: 5px; }
.support-link > .icon { width: 17px; height: 17px; color: var(--primary); }
.support-link:hover { border-color: var(--primary); background: var(--soft-blue); }
@media(max-width:1000px) { .support-panel { gap: 28px; padding: 28px; } }
@media(max-width:700px) { .support-panel { grid-template-columns: 1fr; gap: 24px; } .support-section { padding-bottom: 40px; } }
@media(max-width:600px) {
  .donate-link { font-size: 11px; gap: 4px; }
  .donate-link .icon { width: 15px; height: 15px; }
  .header-controls { gap: 6px; }
  .header-inner { gap: 6px; }
  .brand { gap: 6px; }
  .brand small { display: none; }
  .brand strong { max-width: 70px; }
  .support-panel { padding: 24px 20px; }
  .support-copy h2 { font-size: 25px; }
  .support-link { padding: 14px; gap: 8px; }
  .support-link small { font-size: 10px; }
  .support-link strong { font-size: 17px; }
}
@media(max-width:360px) { .header-inner.wrap { width: calc(100% - 20px); } .brand-mark { width: 28px; height: 28px; } .brand strong { font-size: 12px; max-width: 62px; } .header-controls { gap: 4px; } .support-links { grid-template-columns: 1fr; } }

.community-widget{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:12px;color:var(--ink)}
.community-label{font-weight:700}.community-summary{line-height:1.6}.community-actions{display:flex;flex-wrap:wrap;gap:8px;width:100%}
.community-button{font:inherit;font-weight:600;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);cursor:pointer;line-height:1.4}
.community-button:hover:not(:disabled){border-color:var(--primary)}.community-button:focus-visible,.community-dialog a:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.community-button:disabled{opacity:.6;cursor:default}
.community-dialog{box-sizing:border-box;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 20px 80px #0005;font-size:15px;line-height:1.6;overflow:auto;overscroll-behavior:contain}
.community-dialog::backdrop{background:#0009}.community-dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.community-dialog h2{font-size:22px;line-height:1.3;overflow-wrap:anywhere}.community-dialog-header>.community-button{flex-shrink:0}
.community-dialog textarea{display:block;box-sizing:border-box;width:100%;resize:vertical;min-height:90px;margin-top:7px;padding:12px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--ink);background:var(--surface)}.community-dialog textarea:focus{outline:3px solid var(--primary);outline-offset:2px}
.community-dialog label,.community-stars legend{font-weight:600}.community-hint{font-size:12px;line-height:1.6;margin:8px 0 14px;color:var(--muted)}.community-form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.community-status{margin:16px 0;font-weight:600;white-space:pre-line}.community-status:empty{display:none}.community-dialog>a{display:inline-block;margin-top:14px;text-decoration:underline;color:var(--ink)}
.community-stars{border:0;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:8px}.community-stars legend{margin-bottom:8px}.community-stars label{position:relative;display:grid;justify-items:center;min-width:44px;min-height:58px;border:1px solid var(--line);border-radius:8px;cursor:pointer;padding:5px 8px}.community-stars input{position:absolute;opacity:0;width:1px;height:1px}.community-stars label>span:not(.community-star-number){font-size:26px;line-height:1.1}.community-star-number{font-size:12px}.community-stars label:has(input:checked){border:2px solid var(--primary);padding:4px 7px;background:#0868f2;color:#fff}.community-stars label:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:3px}.community-stars:disabled{opacity:.6}
.community-review{padding:18px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.community-review-rating{font-weight:700}.community-review-comment{white-space:pre-wrap;margin:8px 0}.community-review time{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.community-review-summary{font-weight:700}.community-report-form{margin-top:12px}.community-report-form>.community-button{margin-right:8px}
@media(max-width:600px){.community-dialog{padding:18px}.community-dialog h2{font-size:19px}.community-dialog-header{gap:10px}.community-stars{gap:5px}.community-stars label{padding-inline:6px;min-width:40px}.community-stars label:has(input:checked){padding-inline:5px}.community-form-actions>.community-button{width:100%}}
@media print{.community-actions,.community-dialog{display:none!important}}
.community-dialog-header{margin-bottom:14px}.community-stars{margin-bottom:14px}
.community-comment-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.community-count{font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.community-dialog .community-hint{margin:6px 0 10px}.community-form-actions{margin-top:12px}.community-status{margin:12px 0;font-size:13px}
.community-details{margin-top:14px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.community-details summary{min-height:32px;display:list-item;cursor:pointer;font-weight:600;color:var(--ink);padding-block:6px}.community-details a{text-decoration:underline;color:var(--ink)}.community-details[open] summary{margin-bottom:6px}
.community-name-input{display:block;box-sizing:border-box;width:100%;min-height:44px;margin-top:7px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--ink);background:var(--surface)}.community-name-input:focus{outline:3px solid var(--primary);outline-offset:2px}
.community-review-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}.community-review-name{font-weight:600;overflow-wrap:anywhere;min-width:0}
.community-turnstile{padding:12px;margin:0 0 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-alt)}.community-turnstile-widget{max-width:100%;min-width:0}.community-turnstile .community-hint{margin:0 0 8px}.community-turnstile:empty{display:none}

.catalog-heading-actions{display:flex;flex-direction:column;align-items:flex-end;gap:13px}
.suggestion-open{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 15px;border:1px solid var(--primary-text);border-radius:8px;color:var(--primary-text);background:var(--surface);font-size:12px;font-weight:700;white-space:nowrap}
.suggestion-open:hover{background:var(--soft-blue)}.suggestion-open:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
html:not([data-suggestions="ready"]) .suggestion-open{display:none}
.suggestion-dialog{width:min(520px,calc(100vw - 24px))}.suggestion-dialog label{display:block;font-size:13px}
.suggestion-dialog input{box-sizing:border-box;display:block;width:100%;min-height:46px;margin:6px 0 18px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit}
.suggestion-dialog input:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.suggestion-dialog input[readonly]{opacity:.75}
.suggestion-dialog #suggestion-url{margin-bottom:4px}.suggestion-dialog a{text-decoration:underline;text-underline-offset:3px;color:var(--primary-text)}
.suggestion-dialog a:focus-visible,.suggestion-dialog .button:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
.suggestion-submit{width:100%;margin-top:8px}.suggestion-submit:disabled{opacity:.6;cursor:wait}.suggestion-dialog .community-status{overflow-wrap:anywhere}
@media(max-width:600px){.catalog-section>.wrap>.section-heading{flex-wrap:wrap}.catalog-heading-actions{width:100%;align-items:flex-start}.suggestion-open{white-space:normal}.suggestion-dialog input{font-size:16px}}
@media print{.suggestion-open,.suggestion-dialog{display:none!important}}

.analytics-banner{position:fixed;z-index:95;inset:auto 20px 20px;max-width:1080px;margin-inline:auto;padding:24px 56px 24px 24px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 8px 48px #0003}
.analytics-copy h2{font-size:19px;line-height:1.3;margin-bottom:8px;letter-spacing:-.3px}.analytics-copy p{font-size:12px;line-height:1.6;max-width:680px;color:var(--muted)}.analytics-state:not(:empty){margin-top:9px;font-weight:600}.analytics-policy-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:10px;font-size:12px}.analytics-policy-links a{text-decoration:underline;text-underline-offset:3px;color:var(--primary-text)}
.analytics-actions{display:grid;grid-template-columns:1fr;gap:10px;min-width:170px}.analytics-actions button{min-height:44px;padding:12px 16px;border:1px solid var(--primary);border-radius:7px;background:var(--soft-blue);color:var(--primary-text);font-size:12px;font-weight:700}.analytics-actions button:hover{border-color:var(--primary-strong);background:var(--surface-alt)}.analytics-actions button:disabled{opacity:.65;cursor:wait}.analytics-close{position:absolute;right:8px;top:8px;width:40px;height:40px;border-radius:7px;background:transparent;color:var(--muted);font-size:25px}.analytics-close:hover{background:var(--surface-alt);color:var(--ink)}
[data-analytics-preferences]{font:inherit;background:transparent;color:inherit;text-align:left;padding:0;text-decoration:underline;text-underline-offset:3px;min-height:32px}
.footer-counts{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 28px;margin-top:16px}.footer-counts .footer-count{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;margin:0;min-width:0;font-size:12px;line-height:1.6;color:var(--muted)}.footer-counts .footer-count strong{font-size:inherit;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
@media(max-width:700px){.analytics-banner{inset:auto 12px 12px;max-height:calc(100dvh - 24px);overflow:auto;grid-template-columns:1fr;gap:16px;padding:20px}.analytics-copy h2{padding-right:32px;font-size:18px}.analytics-actions{grid-template-columns:1fr 1fr;min-width:0}.analytics-actions button{padding-inline:10px}.analytics-copy p{font-size:12px}}
@media print{.analytics-banner,[data-analytics-preferences]{display:none!important}}

.hero-directory {
  overflow: visible;
}

.hero-directory .hero-inner {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding-block: 54px 38px;
}

.hero-directory .hero-copy {
  width: min(100%, 720px);
  min-width: 0;
  position: relative;
  z-index: 1;
  text-align: center;
}

.hero-directory .eyebrow {
  justify-content: center;
}

.hero-directory h1 {
  font-size: clamp(32px, 4.8vw, 60px);
  letter-spacing: -.04em;
}

.hero-directory .hero-copy > p {
  margin: 14px auto 0;
}

.hero-search {
  position: relative;
  margin-top: 24px;
}

.hero-search-field {
  min-width: 0;
  min-height: 62px;
  padding: 5px 5px 5px 17px;
  border-radius: 12px;
  box-shadow: 0 14px 35px #0003;
}

.hero-search-field input {
  padding-block: 10px;
  font-size: 16px;
}

.hero-search-field button {
  flex-shrink: 0;
  width: auto;
  min-height: 48px;
  padding-inline: 18px;
  border-radius: 8px;
  background: #0868f2;
  color: #fff;
  font-weight: 700;
}

.hero-search-field button:hover {
  background: #0057db;
}

.hero-search-panel {
  position: absolute;
  z-index: 2;
  inset: 70px 0 auto;
  max-height: min(360px, 45dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 5px;
  border: 1px solid var(--line);
  border-radius: 11px;
  box-shadow: 0 12px 40px #0004;
  background: var(--surface);
  color: var(--ink);
  text-align: start;
}

.hero-search-panel ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.hero-search-panel li {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border-radius: 6px;
  cursor: pointer;
  overflow-wrap: anywhere;
}

.hero-search-panel li:hover,
.hero-search-panel [aria-selected="true"] {
  background: var(--soft-blue);
  color: var(--primary-text);
}

.hero-search-panel span,
.hero-search-panel p {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
}

.hero-search-panel p {
  padding: 12px;
}

.hero-search-examples {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
}

.hero-search-examples button {
  min-height: 40px;
  padding: 7px 12px;
  border: 1px solid #b9dfff66;
  border-radius: 20px;
  background: #b9dfff12;
  color: #e0efff;
  font-size: 13px;
}

.hero-search-examples button:hover {
  background: #b9dfff26;
}

.hero-directory .hero-showcase {
  display: block;
  width: 260px;
  height: 170px;
  max-width: 88%;
  pointer-events: none;
}

.hero-directory .showcase-main {
  width: 83%;
  top: 4px;
}

.hero-directory .showcase-small {
  width: 58%;
  bottom: 2px;
}

.hero-directory .window-bar {
  height: 20px;
}

.hero-search-nojs a,
.search-scope a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.search-scope {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 6px;
  margin-top: 10px;
  color: var(--muted);
  font-size: 13px;
}

.search-scope a {
  margin-inline-start: 4px;
  padding-block: 6px;
  color: var(--primary-text);
  font-weight: 700;
}

.search-partial-label {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 12px;
}

.tool-card h3:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 4px;
}

.recipe-egg .card-visual {
  aspect-ratio: 3 / 2;
  background: #152332;
}

.recipe-egg h3,
.recipe-egg .card-description {
  min-height: 0;
}

@media (min-width: 1280px) {
  .hero-directory .hero-inner { padding-block: 70px 66px; }
  .hero-directory .hero-showcase {
    position: absolute;
    inset-inline-end: 0;
    inset-block-end: 20px;
    width: clamp(200px, 18vw, 250px);
  }
}

@media (max-width: 600px) {
  .hero-directory .hero-inner { padding-block: 36px 20px; }
  .hero-search-field { gap: 6px; padding-inline-start: 10px; }
  .hero-search-field button { padding-inline: 10px; font-size: 13px; }
  .hero-search-examples { gap: 6px; }
  .hero-search-examples button { padding-inline: 9px; font-size: 12px; }
  .hero-directory .hero-showcase { width: 190px; height: 122px; }
  .hero-directory .window-bar { height: 16px; padding-inline: 6px; }
  .hero-directory .window-bar span { font-size: 7px; }
}

@media print {
  .hero-search, .hero-directory .hero-showcase, .search-scope { display: none; }
}
