/* =========================================================
   FontsGuru v5 — font directory, red & white
   ========================================================= */
:root{
    --red:#d81e34;
    --rd:#ad1729;
    --rs:#fdebed;
    --ink:#1c1c1f;
    --soft:#73737a;
    --white:#fff;
    --surf:#f5f5f7;
    --line:#e8e8eb;
    --line2:#d8d8dc;
    --radius:12px;
    --shadow:0 14px 34px -24px rgba(20,20,25,.2);
    --font:'Hanken Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font);background:var(--white);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
em{font-style:normal}
::selection{background:var(--red);color:#fff}

/* ---------- header (red bar) ---------- */
.site-header{display:flex;align-items:center;gap:24px;background:var(--red);color:#fff;padding:0 clamp(18px,4vw,40px);height:64px;position:sticky;top:0;z-index:60}
.brand{font-size:22px;font-weight:800;letter-spacing:-.02em;flex-shrink:0}
.site-header .brand-rest,.site-header .brand-mark{color:#fff}
.site-header .brand-mark{opacity:.78}
.site-nav{display:flex;align-items:center;gap:4px;flex:1}
.site-nav>a{font-weight:600;font-size:14px;padding:9px 12px;border-radius:8px;color:rgba(255,255,255,.88);transition:.16s;white-space:nowrap}
.site-nav>a:hover{color:#fff;background:rgba(255,255,255,.12)}
.site-nav>a.active{color:#fff;background:rgba(0,0,0,.16)}
.nav-auth{display:flex;align-items:center;gap:10px;margin-left:auto}
.nav-signin{display:flex;align-items:center;gap:6px;font-weight:600;font-size:14px;color:#fff!important}
.nav-signin svg{width:16px;height:16px}
.nav-signin:hover{opacity:.85}
.nav-cta{background:#fff;color:var(--red)!important;font-weight:700;font-size:14px;padding:9px 18px;border-radius:30px;transition:.18s}
.nav-cta:hover{background:#1c1c1f;color:#fff!important}
.nav-toggle,.nav-burger{display:none}

main{padding:0 clamp(18px,5vw,56px) 60px;max-width:1240px;margin:0 auto}

.toast{max-width:1240px;margin:18px auto 0;padding:14px 22px;background:var(--ink);color:#fff;border-radius:12px;font-weight:600}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.2,.8,.2,1),transform .6s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}

/* ---------- home hero (ikman-style: red full-bleed + pill search) ---------- */
.home-hero{background:var(--red);color:#fff;width:100vw;position:relative;left:50%;transform:translateX(-50%);padding:clamp(16px,3vw,34px) 20px clamp(24px,4vw,42px);text-align:center}
.home-hero-inner{max-width:860px;margin:0 auto}
.home-h1{color:#fff;font-weight:800;font-size:clamp(26px,4vw,40px);line-height:1.08;letter-spacing:-.03em;margin-bottom:10px}
.home-sub{color:rgba(255,255,255,.86);font-size:clamp(14px,1.7vw,16px);line-height:1.5;max-width:480px;margin:0 auto 18px}
.hero-pill{display:inline-flex;align-items:center;gap:7px;background:rgba(0,0,0,.16);color:#fff;font-weight:600;font-size:14px;padding:9px 18px;border-radius:30px;margin-bottom:18px;transition:.18s}
.hero-pill svg{width:16px;height:16px}
.hero-pill:hover{background:rgba(0,0,0,.28)}
.home-search{display:flex;align-items:center;max-width:660px;margin:0 auto;background:#fff;border-radius:50px;padding:5px 5px 5px 22px;box-shadow:0 12px 30px -20px rgba(0,0,0,.22)}
.home-search input{flex:1;min-width:0;border:none;outline:none;padding:11px 0;font-size:15px;font-family:inherit;color:var(--ink);background:transparent}
.home-search input::placeholder{color:#9a9aa0}
.home-search button{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;border:none;outline:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.18s}
.home-search button:hover{background:var(--rd)}
.home-search button:focus-visible{box-shadow:0 0 0 3px rgba(255,255,255,.7)}
.home-search input:focus,.home-search button:focus{outline:none}
.home-search button svg{width:19px;height:19px}

/* ---------- page head (listing, categories, blog, pages) ---------- */
.page-head{text-align:center;padding:clamp(36px,5vw,60px) 0 22px;border-bottom:1px solid var(--line);margin-bottom:8px}
.page-title{font-weight:800;font-size:clamp(32px,5vw,56px);letter-spacing:-.03em;line-height:1.02;margin-bottom:10px}
.page-sub{color:var(--soft);font-size:clamp(15px,2vw,18px);max-width:54ch;margin:0 auto}

/* ---------- browse bar (preview tester + count) ---------- */
.browse-bar{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding:26px 0 18px}
.ptool{display:flex;align-items:center;gap:12px;flex:1;min-width:280px;background:var(--surf);border:1px solid var(--line);border-radius:40px;padding:8px 8px 8px 18px}
.ptool-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--soft);flex-shrink:0}
.ptool-input{flex:1;min-width:120px;border:none;background:transparent;outline:none;font-family:var(--font);font-size:15px;color:var(--ink)}
.size-control{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:40px;padding:7px 14px;flex-shrink:0}
.size-label{font-variant-numeric:tabular-nums;font-weight:700;font-size:12px;width:38px;text-align:right}
input[type=range]{-webkit-appearance:none;appearance:none;height:4px;background:var(--line2);border-radius:4px;width:96px;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--red);border:3px solid #fff;box-shadow:0 0 0 1px var(--red)}
input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--red);border:3px solid #fff}
.browse-count{font-size:14px;color:var(--soft);font-weight:500;white-space:nowrap}

/* ---------- directory layout ---------- */
.directory{display:grid;grid-template-columns:1fr 250px;gap:30px;align-items:start}
.dir-main{min-width:0}

/* ---------- specimen rows ---------- */
.spec{border-bottom:1px solid var(--line);padding:30px 0}
.spec:last-of-type{border-bottom:none}
.spec-sample{display:block;font-size:48px;line-height:1.12;color:var(--ink);word-break:break-word;margin-bottom:18px;transition:color .18s}
.spec-sample:hover{color:var(--red)}
.spec-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:transparent;border:none;padding:0}
.spec-name{font-weight:700;font-size:15px;color:var(--ink)}
.spec-name:hover{color:var(--red)}
.spec-by{font-size:13px;color:var(--soft)}
.spec-sep{color:var(--line2);font-size:13px}
.spec-dl{margin-left:auto;background:var(--red);color:#fff;font-weight:700;font-size:13px;padding:9px 16px;border-radius:7px;display:inline-flex;align-items:center;gap:7px;transition:.18s}
.spec-dl svg{width:15px;height:15px}
.spec-dl:hover{background:var(--rd);transform:translateY(-1px)}

/* ---------- sidebar ---------- */
.dir-side{display:flex;flex-direction:column;gap:28px;position:sticky;top:84px}
.side-search{display:flex;border:1px solid var(--line2);border-radius:9px;overflow:hidden}
.side-search input{flex:1;border:none;outline:none;padding:11px 14px;font-size:14px;font-family:inherit;color:var(--ink);min-width:0}
.side-search button{background:var(--red);color:#fff;border:none;padding:0 14px;cursor:pointer;display:flex;align-items:center}
.side-search button svg{width:16px;height:16px}
.side-box{border:none;border-radius:0}
.side-head{background:transparent;color:var(--red);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:0 0 10px;border-bottom:1px solid var(--line)}
.side-list{display:flex;flex-direction:column;padding:6px 0 0}
.side-list a{font-size:14px;color:var(--ink);padding:8px 0;font-weight:500;border-bottom:1px solid var(--line);transition:color .15s}
.side-list a:last-child{border-bottom:none}
.side-list a:hover{color:var(--red)}
.side-list a.is-active{color:var(--red);font-weight:700}
.side-tags{display:flex;flex-wrap:wrap;gap:7px;padding:10px 0 0}
.side-tag{font-size:12px;font-weight:600;color:var(--rd);background:var(--rs);padding:5px 12px;border-radius:30px;transition:.15s}
.side-tag:hover{background:var(--red);color:#fff}

/* ---------- empty + pagination ---------- */
.empty{text-align:center;padding:70px 20px}
.empty-big{font-size:30px;font-weight:800;margin-bottom:8px}
.empty a{color:var(--red);font-weight:700}
.pagination{margin-top:36px;display:flex;justify-content:center;gap:10px}
.pagination a,.pagination span{padding:11px 19px;border-radius:30px;border:1px solid var(--line);font-weight:600;font-size:14px}
.pagination a:hover{border-color:var(--red);color:var(--red)}

/* ---------- show (font detail) ---------- */
.back-link{display:inline-block;margin:26px 0 8px;font-weight:600;color:var(--soft);transition:.2s}
.back-link:hover{color:var(--red);transform:translateX(-3px)}
.show-head{display:grid;grid-template-columns:1.3fr .9fr;gap:40px;align-items:center;padding:20px 0 48px;border-bottom:1px solid var(--line)}
.card-cat{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--red);background:var(--rs);padding:5px 11px;border-radius:30px}
.show-title{font-weight:800;font-size:clamp(38px,7vw,76px);letter-spacing:-.035em;line-height:.98;margin:12px 0 6px}
.show-by{font-size:16px;color:var(--soft);margin-bottom:18px}
.show-desc{font-size:17px;max-width:46ch;margin-bottom:26px}
.show-meta{display:grid;grid-template-columns:repeat(4,auto);gap:26px;margin-bottom:30px}
.show-meta dt{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--soft);margin-bottom:4px}
.show-meta dd{font-weight:700;font-size:18px}
.btn-download{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--red);color:#fff;font-weight:700;font-size:16px;padding:15px 30px;border-radius:40px;border:none;cursor:pointer;transition:.2s}
.btn-download svg{width:18px;height:18px}
.btn-download:hover{background:var(--rd);transform:translateY(-2px)}
.btn-full{width:100%;margin-top:6px}
.show-head-right{display:flex;align-items:center;justify-content:center;background:var(--surf);border:1px solid var(--line);border-radius:18px;min-height:250px}
.show-hero-title{font-size:clamp(110px,20vw,250px);line-height:1;color:var(--red);font-weight:800}
.specimen-block{padding:48px 0;border-bottom:1px solid var(--line)}
.specimen-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:28px}
.preview-input{flex:1;min-width:200px;font-size:18px;font-weight:500;background:transparent;border:none;border-bottom:2px solid var(--ink);padding:10px 2px;color:var(--ink);outline:none}
.preview-input:focus{border-color:var(--red)}
.specimen{font-size:52px;line-height:1.2;word-break:break-word}
.glyphs{margin-top:40px;display:flex;flex-direction:column;gap:14px}
.glyph-row{font-size:28px!important;color:var(--soft);line-height:1.4;word-break:break-word}
.related{padding-top:48px}
.related-title{font-size:26px;font-weight:800;margin-bottom:22px;letter-spacing:-.02em}
.font-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.font-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:flex;flex-direction:column;min-height:210px;transition:transform .25s,box-shadow .25s,border-color .25s}
.font-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--line2)}
.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.card-dl{font-size:13px;color:var(--soft)}
.card-preview{flex:1;display:flex;align-items:center;font-size:34px;line-height:1.06;color:var(--ink);word-break:break-word;overflow:hidden}
.card-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.card-foot-text{display:flex;flex-direction:column;gap:2px}
.card-name{font-weight:700;font-size:17px}
.card-meta{font-size:13px;color:var(--soft)}
.card-arrow{font-size:19px;color:var(--red);opacity:0;transform:translateX(-6px);transition:.25s}
.font-card:hover .card-arrow{opacity:1;transform:none}

/* ---------- categories ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin-top:30px}
.cat-card{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;transition:transform .25s,border-color .25s,box-shadow .25s}
.cat-card:hover{transform:translateY(-5px);border-color:var(--line2);box-shadow:var(--shadow)}
.cat-big{font-size:50px;line-height:1;color:var(--red);font-weight:800;width:80px;text-align:center;flex-shrink:0}
.cat-big[data-style="serif"],.cat-big[data-style="slab-serif"]{font-family:Georgia,serif}
.cat-big[data-style="monospace"]{font-family:'Courier New',monospace}
.cat-big[data-style="handwriting"]{font-family:'Segoe Script','Brush Script MT',cursive;font-style:italic}
.cat-info{flex:1;display:flex;flex-direction:column;gap:2px}
.cat-name{font-weight:700;font-size:20px}
.cat-count{font-size:14px;color:var(--soft)}
.cat-arrow{font-size:20px;color:var(--red);opacity:0;transform:translateX(-8px);transition:.25s}
.cat-card:hover .cat-arrow{opacity:1;transform:none}

/* ---------- tools ---------- */
.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;margin-top:30px}
.tool-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;display:flex;flex-direction:column;gap:10px;transition:transform .25s,border-color .25s,box-shadow .25s}
.tool-card:not(.soon):hover{transform:translateY(-5px);border-color:var(--line2);box-shadow:var(--shadow)}
.tool-card.soon{opacity:.6}
.tool-ico{font-size:38px;font-weight:800;color:var(--red);line-height:1}
.tool-name{font-weight:700;font-size:21px;margin-top:4px}
.tool-name em{font-style:normal;font-size:13px;color:var(--soft);font-weight:500}
.tool-desc{font-size:15px;color:var(--soft);line-height:1.55}
.tool-link{margin-top:auto;font-weight:700;color:var(--red);font-size:15px}

/* ---------- blog ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;margin-top:30px}
.blog-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;display:flex;flex-direction:column;gap:10px;transition:transform .25s,border-color .25s,box-shadow .25s}
.blog-card:hover{transform:translateY(-5px);border-color:var(--line2);box-shadow:var(--shadow)}
.blog-cat{align-self:flex-start;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--red);background:var(--rs);padding:5px 11px;border-radius:30px}
.blog-title{font-weight:700;font-size:22px;line-height:1.15;letter-spacing:-.02em}
.blog-excerpt{font-size:15px;color:var(--soft);line-height:1.55;flex:1}
.blog-meta{font-size:13px;color:var(--soft);display:flex;gap:6px;flex-wrap:wrap}
.post{max-width:720px;margin:0 auto;padding-top:8px}
.post .blog-cat{margin-bottom:16px}
.post-title{font-weight:800;font-size:clamp(32px,5vw,52px);letter-spacing:-.03em;line-height:1.05;margin:12px 0}
.post-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--soft);font-size:15px;padding-bottom:26px;border-bottom:1px solid var(--line);margin-bottom:32px}
.post-body{font-size:18px;line-height:1.75}
.post-body h2{font-size:26px;font-weight:700;letter-spacing:-.02em;margin:34px 0 12px}
.post-body p{margin-bottom:18px}
.post-body a{color:var(--red);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.post-body code{background:var(--surf);border:1px solid var(--line);padding:2px 7px;border-radius:6px;font-size:.88em;font-family:ui-monospace,monospace}

/* ---------- prose pages ---------- */
.page-prose{max-width:720px;margin:0 auto;padding-top:8px;font-size:17px;line-height:1.75}
.page-prose h2{font-size:24px;font-weight:700;letter-spacing:-.02em;margin:32px 0 12px}
.page-prose p{margin-bottom:18px}
.page-prose a{color:var(--red);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.page-prose code{background:var(--surf);border:1px solid var(--line);padding:2px 7px;border-radius:6px;font-size:.88em;font-family:ui-monospace,monospace}
.prose-note{background:var(--rs);border-left:3px solid var(--red);padding:14px 18px;border-radius:0 10px 10px 0;font-size:15px;color:var(--rd);margin-bottom:26px}
.prose-cta{display:inline-block;background:var(--red);color:#fff!important;font-weight:700;padding:13px 26px;border-radius:40px;text-decoration:none!important;transition:.2s}
.prose-cta:hover{background:var(--rd);transform:translateY(-2px)}
.ad-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 34px}
.ad-stats .stat{background:var(--surf);border:1px solid var(--line);border-radius:var(--radius);padding:24px 20px}
.ad-stats .stat-num{font-size:34px;font-weight:800;color:var(--red);line-height:1}
.ad-stats .stat-label{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--soft);font-weight:600;margin-top:6px}

/* ---------- contact + forms ---------- */
.contact-wrap{display:grid;grid-template-columns:.7fr 1.3fr;gap:40px;align-items:start;padding-top:8px}
.contact-info{display:flex;flex-direction:column;gap:24px}
.ci-block h3{font-size:16px;font-weight:700;margin-bottom:4px}
.ci-block a{color:var(--red);font-weight:600}
.alert-success{background:#e8f6ed;border:1px solid #57b07a;color:#1f6b3f;border-radius:12px;padding:15px 20px;margin-bottom:22px;font-weight:600}
.upload-wrap{max-width:680px;margin:0 auto;padding-top:8px}
.upload-title{font-weight:800;font-size:clamp(36px,7vw,60px);letter-spacing:-.035em;line-height:1}
.upload-title em{color:var(--red)}
.upload-sub{font-size:17px;color:var(--soft);margin:12px 0 34px}
.upload-form{display:flex;flex-direction:column;gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--soft)}
.field input,.field select,.field textarea{font-family:var(--font);font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:10px;padding:13px 15px;outline:none;transition:.16s;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(216,30,52,.12)}
.field textarea{resize:vertical}
.dropzone{cursor:pointer}
.drop-inner{display:flex;flex-direction:column;align-items:center;gap:12px;border:2px dashed var(--line2);border-radius:12px;padding:40px 20px;color:var(--soft);text-align:center;transition:.2s;background:var(--surf)}
.dropzone:hover .drop-inner,.dropzone.drag .drop-inner{border-color:var(--red);color:var(--rd);background:#fff}
.drop-inner svg{width:32px;height:32px}
.alert-error{background:var(--rs);border:1px solid var(--red);border-radius:12px;padding:15px 20px;color:var(--rd)}
.alert-error ul{padding-left:18px}

/* ---------- footer ---------- */
.site-footer{background:var(--surf);border-top:1px solid var(--line);margin-top:40px}
.foot-cols{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:30px;max-width:1240px;margin:0 auto;padding:54px clamp(18px,5vw,56px) 34px}
.foot-brand-col{max-width:280px}
.foot-brand{font-size:23px;margin-bottom:12px;display:inline-block}
.foot-brand .brand-mark{color:var(--red)}
.foot-tag{color:var(--soft);font-size:15px;line-height:1.5}
.foot-col h4{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--soft);margin-bottom:12px;font-weight:700}
.foot-col a{display:block;color:var(--ink);font-weight:500;font-size:15px;padding:5px 0;transition:.16s}
.foot-col a:hover{color:var(--red)}
.foot-bottom{border-top:1px solid var(--line);max-width:1240px;margin:0 auto;padding:22px clamp(18px,5vw,56px)}
.foot-copy{color:var(--soft);font-size:14px}

/* ---------- responsive ---------- */
@media(max-width:1000px){
    .directory{grid-template-columns:1fr}
    .dir-side{position:static;flex-direction:row;flex-wrap:wrap;gap:14px}
    .side-search{flex-basis:100%}
    .side-box{flex:1;min-width:200px}
}
@media(max-width:880px){
    .nav-burger{display:flex;flex-direction:column;gap:5px;cursor:pointer;padding:6px;margin-left:auto}
    .nav-burger span{width:24px;height:2px;background:#fff;border-radius:2px;transition:.25s}
    .nav-toggle:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .nav-toggle:checked ~ .nav-burger span:nth-child(2){opacity:0}
    .nav-toggle:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
    .site-nav{position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--red);padding:0 clamp(18px,5vw,40px);gap:0;max-height:0;overflow:hidden;transition:max-height .35s ease}
    .nav-toggle:checked ~ .site-nav{max-height:480px;padding-top:10px;padding-bottom:18px}
    .site-nav>a{padding:13px 6px;border-bottom:1px solid rgba(255,255,255,.15)}
    .nav-auth{margin:12px 0 0;width:100%;justify-content:flex-start;gap:14px}
    .show-head{grid-template-columns:1fr;gap:22px}
    .show-head-right{order:-1}
    .show-meta{grid-template-columns:repeat(2,auto);gap:18px}
    .foot-cols{grid-template-columns:1fr 1fr;gap:26px}
    .foot-brand-col{grid-column:1 / -1}
}
@media(max-width:640px){
    .contact-wrap{grid-template-columns:1fr;gap:26px}
    .ad-stats{grid-template-columns:1fr}
    .spec-sample{font-size:34px}
    .field-row{grid-template-columns:1fr}
    .foot-cols{grid-template-columns:1fr}
    .browse-bar{flex-direction:column;align-items:stretch;gap:12px;padding:22px 0 16px}
    .ptool{min-width:0;width:100%;flex-wrap:wrap;border-radius:16px;padding:12px 16px;gap:10px}
    .ptool-label{order:1}
    .size-control{order:2;margin-left:auto;background:transparent;border:none;padding:0}
    .ptool-input{order:3;flex-basis:100%}
    .browse-count{text-align:left;font-size:13px}
    .spec{padding:24px 0}
    .spec-meta{gap:7px}
    .spec-dl{margin-left:0;width:100%;justify-content:center;margin-top:8px}
    .directory{gap:8px}
    .dir-side{margin-top:14px}
}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

/* eyebrow pill (categories, blog, pages headers) */
.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:700;color:var(--red);background:var(--rs);padding:6px 14px;border-radius:30px;margin-bottom:16px}

/* ---------- font tags (show page) ---------- */
.show-tags{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 26px}
.side-tag.is-active{background:var(--red);color:#fff}

/* ---------- tools hub (dynamic) ---------- */
.tools-filter{display:inline-flex;gap:4px;background:#f1f1f3;border:1px solid var(--line);border-radius:40px;padding:5px;margin:26px 0 4px}
.tools-filter a{font-size:14px;font-weight:600;color:var(--soft);padding:8px 18px;border-radius:30px;transition:.15s}
.tools-filter a:hover{color:var(--ink)}
.tools-filter a.on{background:var(--red);color:#fff}
.tool-card{position:relative}
.tool-badge{position:absolute;top:18px;right:18px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px;border-radius:20px}
.tool-badge.t-software{background:var(--rs);color:var(--rd)}
.tool-badge.t-article{background:#eef0ff;color:#3b46c4}
.tool-card-ico{width:52px;height:52px;border-radius:13px;object-fit:cover;border:1px solid var(--line)}
.tool-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:6px}
.tool-foot-meta{font-size:13px;color:var(--soft);font-weight:600}
.tool-empty{padding:50px 0;text-align:center;color:var(--soft)}

/* tool detail — software hero */
.tool-hero{display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px;margin-bottom:26px}
.tool-hero-ico{width:150px;height:150px;border-radius:18px;object-fit:cover;border:1px solid var(--line);flex-shrink:0}
.tool-hero-ico.placeholder{display:flex;align-items:center;justify-content:center;font-size:60px;font-weight:800;color:var(--red);background:var(--rs)}
.tool-hero-info{flex:1;min-width:240px}
.tool-hero-info h1{font-size:30px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.tool-hero-info .tool-sum{color:var(--soft);font-size:16px;line-height:1.5;margin-bottom:14px}
.tool-specs{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:18px;font-size:14px}
.tool-specs span{color:var(--soft)}
.tool-specs strong{color:var(--ink)}
.tool-body{font-size:16px;line-height:1.75;color:var(--ink);max-width:760px}
.tool-body h2{font-size:24px;font-weight:800;margin:28px 0 12px}
.tool-body h3{font-size:19px;font-weight:700;margin:22px 0 10px}
.tool-body p{margin-bottom:16px}
.tool-body ul,.tool-body ol{margin:0 0 16px 22px}
.tool-body li{margin-bottom:7px}
.tool-body a{color:var(--red);text-decoration:underline}
@media(max-width:560px){
    .tool-hero{padding:22px;gap:16px}
    .tool-hero-ico{width:110px;height:110px}
    .tool-hero-info h1{font-size:24px}
}

/* tool download CTA (end of page) */
.tool-download-cta{text-align:center;padding:34px 0 6px;border-top:1px solid var(--line);margin-top:28px}
.btn-download.btn-lg{font-size:17px;padding:16px 36px}
.tool-cta-meta{margin-top:13px;color:var(--soft);font-size:14px;font-weight:600}

/* ---------- comments ---------- */
.comments{margin-top:42px;border-top:1px solid var(--line);padding-top:30px}
.comments-title{font-size:22px;font-weight:800;letter-spacing:-.01em;margin-bottom:20px}
.comment{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.comment-avatar{width:42px;height:42px;border-radius:50%;background:var(--rs);color:var(--rd);font-weight:800;font-size:17px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.comment-main{flex:1;min-width:0}
.comment-head{display:flex;align-items:baseline;gap:10px;margin-bottom:5px;flex-wrap:wrap}
.comment-name{font-weight:700;font-size:15px}
.comment-date{font-size:13px;color:var(--soft)}
.comment-body{color:var(--ink);line-height:1.6;white-space:pre-wrap;word-wrap:break-word}
.comments-empty{color:var(--soft);padding:8px 0 18px}
.comment-form-title{font-size:18px;font-weight:700;margin:30px 0 16px}
.comment-form{max-width:680px}
.field-label em{font-style:normal;color:var(--soft);font-weight:500;font-size:12px}
.form-note{background:#e8f6ed;border:1px solid #9fd9b6;color:#1a6b3f;padding:13px 17px;border-radius:10px;margin-bottom:18px;font-weight:600}
.form-error{background:var(--rs);border:1px solid var(--red);color:var(--rd);padding:12px 16px;border-radius:10px;margin-bottom:14px;font-weight:600}

/* ============ Accounts / Favorites / Newsletter / Ads ============ */

/* favorite heart button */
.fav-form{display:inline-flex;margin:0;padding:0}
.fav-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--soft);cursor:pointer;transition:.15s;padding:0;flex-shrink:0}
.fav-btn svg{width:18px;height:18px;fill:none}
.fav-btn:hover{border-color:var(--red);color:var(--red)}
.fav-btn.is-fav{background:var(--rs);border-color:var(--red);color:var(--red)}
.fav-btn.is-fav svg{fill:var(--red)}
.show-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.show-actions .fav-btn{width:48px;height:48px}
.show-actions .fav-btn svg{width:22px;height:22px}

/* logout button in nav */
.nav-logout-form{display:inline;margin:0}
button.nav-cta{border:none;cursor:pointer;font-family:inherit}

/* auth pages */
.auth-wrap{display:flex;justify-content:center;padding:30px 0 60px}
.auth-card{width:100%;max-width:440px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:36px 32px}
.auth-title{font-size:28px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.auth-sub{color:var(--soft);font-size:15px;margin-bottom:24px}
.auth-remember{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--soft);font-weight:500;margin:2px 0}
.auth-remember input{accent-color:var(--red)}
.auth-alt{margin-top:20px;text-align:center;font-size:14.5px;color:var(--soft)}
.auth-alt a{color:var(--red);font-weight:700}

/* newsletter (footer is light) */
.foot-newsletter{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;background:var(--red);color:#fff;border-radius:20px;margin:34px clamp(18px,5vw,56px) 10px;padding:30px 34px;box-shadow:0 20px 44px -24px rgba(216,30,52,.65)}
.foot-nl-text h4{font-size:23px;font-weight:800;letter-spacing:-.01em;color:#fff;margin-bottom:5px}
.foot-nl-text p{color:rgba(255,255,255,.85);font-size:14.5px;line-height:1.45}
.foot-nl-form{display:flex;gap:6px;flex:1;max-width:470px;min-width:270px;background:#fff;border-radius:40px;padding:6px;box-shadow:0 8px 22px -10px rgba(0,0,0,.25);position:relative}
.foot-nl-form input{flex:1;min-width:0;border:none;background:transparent;padding:11px 18px;font-size:15px;font-family:inherit;outline:none;color:var(--ink)}
.foot-nl-form input::placeholder{color:#9a9aa0}
.foot-nl-form button{background:var(--red);color:#fff;border:none;border-radius:34px;padding:12px 26px;font-weight:700;font-size:14.5px;cursor:pointer;font-family:inherit;white-space:nowrap;transition:.15s}
.foot-nl-form button:hover{background:var(--rd)}

/* ad slots */
.ad-slot{text-align:center;overflow:hidden}
.ad-below_header{padding:14px clamp(18px,5vw,56px)}
.ad-footer{padding:18px clamp(18px,5vw,56px)}
.ad-sidebar{margin-bottom:16px}
.ad-in_article{margin:26px 0}

@media(max-width:640px){
    .foot-newsletter{flex-direction:column;align-items:stretch;gap:16px;padding:20px;margin:24px 16px 8px;max-width:100%}
    .foot-nl-form{min-width:0;max-width:none;width:100%}
    .foot-nl-form button{padding:12px 18px}
}

/* ============ Social share buttons ============ */
.share{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:22px 0 4px}
.share-label{font-size:12px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.08em;margin-right:2px}
.share-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);transition:.15s;cursor:pointer;padding:0}
.share-btn svg{width:17px;height:17px}
.share-btn:hover{transform:translateY(-2px);box-shadow:0 8px 16px -8px rgba(0,0,0,.3)}
.s-fb:hover{background:#1877f2;border-color:#1877f2;color:#fff}
.s-x:hover{background:#000;border-color:#000;color:#fff}
.s-wa:hover{background:#25d366;border-color:#25d366;color:#fff}
.s-in:hover{background:#0a66c2;border-color:#0a66c2;color:#fff}
.s-pin:hover{background:#e60023;border-color:#e60023;color:#fff}
.s-copy:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.cp-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:11px;font-weight:700;padding:4px 9px;border-radius:6px;white-space:nowrap;opacity:0;transition:opacity .2s;pointer-events:none}

/* ============ Built-in font tools (pairing + glyphs) ============ */
.btn-line{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line);color:var(--ink);border-radius:30px;padding:9px 16px;font-weight:700;font-size:14px;font-family:inherit;cursor:pointer;text-decoration:none;transition:.15s}
.btn-line:hover{border-color:var(--red);color:var(--red)}

.pair-wrap,.glyph-wrap{max-width:920px;margin:0 auto}
.pair-controls,.glyph-controls{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}
.pair-field{display:flex;flex-direction:column;gap:6px;flex:1;min-width:200px}
.pair-field span{font-size:12px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.06em}
.pair-field select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2373737a' stroke-width='3'><path d='M6 9l6 6 6-6'/></svg>") no-repeat right 14px center;border:1.5px solid var(--line);border-radius:12px;padding:12px 38px 12px 14px;font-size:15px;font-family:inherit;color:var(--ink);cursor:pointer;outline:none}
.pair-field select:focus{border-color:var(--red)}
.pair-actions{display:flex;gap:8px}
.pair-sizes{display:flex;gap:24px;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:20px}
.pair-sizes label,.glyph-size{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--soft)}
.pair-sizes input[type=range],.glyph-size input[type=range]{accent-color:var(--red);width:130px}
.pair-sizes b,.glyph-size b{color:var(--ink);min-width:42px}
.pair-canvas{background:var(--surf);border:1px solid var(--line);border-radius:18px;padding:34px 30px}
.pair-h{font-size:54px;line-height:1.1;letter-spacing:-.02em;color:var(--ink);outline:none;margin-bottom:14px}
.pair-b{font-size:18px;line-height:1.6;color:#36363c;outline:none}
.pair-h:focus,.pair-b:focus{box-shadow:0 0 0 2px rgba(216,30,52,.2);border-radius:6px}
.pair-tip{margin-top:14px;font-size:13px;color:var(--soft)}

.glyph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px;margin-top:6px}
.glyph-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:12px;cursor:pointer;color:var(--ink);line-height:1;font-family:inherit;transition:.12s;padding:4px}
.glyph-cell:hover{border-color:var(--red);background:var(--rs);transform:translateY(-2px)}
.glyph-cell.copied{background:var(--red);color:#fff;border-color:var(--red)}
.glyph-toast{display:inline-block;background:var(--ink);color:#fff;font-weight:700;font-size:12px;padding:3px 10px;border-radius:6px;opacity:0;transition:opacity .2s;margin-left:6px}

@media(max-width:640px){
    .pair-h{font-size:40px}
    .glyph-grid{grid-template-columns:repeat(auto-fill,minmax(58px,1fr))}
    .pair-sizes{gap:16px}
}

/* ============ TTF → WOFF2 converter ============ */
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--red);color:#fff;border:none;border-radius:30px;padding:13px 26px;font-weight:700;font-size:15px;font-family:inherit;cursor:pointer;text-decoration:none;transition:.15s}
.btn-primary:hover{background:var(--rd)}
.conv-wrap{max-width:640px;margin:0 auto}
.conv-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;background:var(--surf);border:2px dashed var(--line);border-radius:18px;padding:46px 24px;cursor:pointer;transition:.15s}
.conv-drop:hover,.conv-drop.over{border-color:var(--red);background:var(--rs)}
.conv-ico{font-size:34px;color:var(--red);line-height:1}
.conv-title{font-size:18px;font-weight:800;color:var(--ink)}
.conv-sub{font-size:13px;color:var(--soft)}
.conv-status{margin-top:16px;padding:13px 16px;border-radius:12px;font-weight:600;font-size:14.5px;background:var(--surf);color:var(--ink);text-align:center}
.conv-status.err{background:var(--rs);color:var(--rd)}
.conv-result{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;text-align:center}
.conv-stats{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin-bottom:18px}
.conv-stat{display:flex;flex-direction:column;gap:3px}
.conv-k{font-size:11px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.06em}
.conv-stat b{font-size:20px;color:var(--ink)}
.conv-saved b{color:#1a9b54}
.conv-arrow{font-size:22px;color:var(--soft)}
.conv-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.conv-note{margin-top:16px;font-size:12.5px;color:var(--soft);text-align:center}
@media(max-width:640px){.conv-stats{gap:12px}.conv-stat b{font-size:17px}}

/* ============ Multiple weights per family ============ */
.weight-switch{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.weight-btn{background:#fff;border:1.5px solid var(--line);color:var(--ink);border-radius:30px;padding:8px 16px;font-weight:700;font-size:14px;font-family:inherit;cursor:pointer;transition:.15s}
.weight-btn:hover{border-color:var(--red);color:var(--red)}
.weight-btn.on{background:var(--ink);border-color:var(--ink);color:#fff}
.family-styles{margin:40px 0}
.fam-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.fam-row{display:flex;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;flex-wrap:wrap}
.fam-label{display:flex;flex-direction:column;min-width:120px;font-weight:800;font-size:15px;color:var(--ink)}
.fam-label small{font-weight:500;font-size:12px;color:var(--soft);margin-top:2px}
.fam-prev{flex:1;min-width:200px;font-size:30px;line-height:1.2;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:640px){.fam-prev{font-size:23px}.fam-row{gap:8px}}

/* ============ Post cover images ============ */
.blog-card-img{display:block;margin:-24px -24px 6px;height:158px;background-size:cover;background-position:center;background-color:var(--surf);border-radius:var(--radius) var(--radius) 0 0;border-bottom:1px solid var(--line)}
.post-cover{display:block;width:100%;max-height:430px;object-fit:cover;border-radius:16px;margin:18px 0 28px;border:1px solid var(--line)}
@media(max-width:640px){.post-cover{max-height:240px;margin:14px 0 20px}.blog-card-img{height:140px}}

/* ============ Breadcrumbs ============ */
.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:13px;color:var(--soft);margin:10px 0 18px}
.crumbs a{color:var(--soft);text-decoration:none;transition:.15s}
.crumbs a:hover{color:var(--red)}
.crumb-sep{color:var(--line2,#ccc);font-size:14px}
.crumb-current{color:var(--ink);font-weight:700}

/* ============ Header search link ============ */
.nav-search-link{display:inline-flex;align-items:center;gap:6px}
.nav-search-link svg{width:15px;height:15px}

/* ============ Global search page ============ */
.search-bar{display:flex;gap:8px;max-width:560px;margin:18px auto 0;background:#fff;border:1.5px solid var(--line);border-radius:40px;padding:6px;box-shadow:0 10px 30px -18px rgba(0,0,0,.3)}
.search-bar input{flex:1;min-width:0;border:none;background:transparent;padding:12px 18px;font-size:16px;font-family:inherit;outline:none;color:var(--ink)}
.search-bar input::placeholder{color:#9a9aa0}
.search-bar button{background:var(--red);color:#fff;border:none;border-radius:34px;padding:12px 26px;font-weight:700;font-size:15px;font-family:inherit;cursor:pointer;transition:.15s}
.search-bar button:hover{background:var(--rd)}
.search-hint{text-align:center;color:var(--soft);margin:40px 0}
.search-count{color:var(--soft);margin:4px 0 22px}
.search-group{margin:0 0 34px}
.search-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.search-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;text-decoration:none;color:var(--ink);transition:.15s}
.search-item:hover{border-color:var(--red);transform:translateX(3px);box-shadow:0 8px 18px -12px rgba(0,0,0,.25)}
.search-ico{flex:none;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--rs);color:var(--red);border-radius:10px;font-weight:800;font-size:16px}
.search-text{display:flex;flex-direction:column;flex:1;min-width:0}
.search-text strong{font-size:15.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-text small{font-size:12.5px;color:var(--soft);margin-top:2px}
.search-arrow{color:var(--soft);font-size:18px}
@media(max-width:640px){.search-bar button{padding:12px 18px}}

/* ============ Cookie consent ============ */
.cookie-consent{position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:space-between;background:var(--ink);color:#fff;border-radius:16px;padding:16px 20px;box-shadow:0 20px 50px -16px rgba(0,0,0,.5);max-width:760px;margin:0 auto;transform:translateY(140%);opacity:0;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s}
.cookie-consent.show{transform:translateY(0);opacity:1}
.cookie-text{flex:1;min-width:240px;font-size:14px;line-height:1.5;color:rgba(255,255,255,.88)}
.cookie-text a{color:#fff;text-decoration:underline;font-weight:600}
.cookie-actions{display:flex;gap:10px;flex-shrink:0}
.cookie-btn{border:none;border-radius:30px;padding:11px 22px;font-weight:700;font-size:14px;font-family:inherit;cursor:pointer;transition:.15s}
.cookie-accept{background:var(--red);color:#fff}
.cookie-accept:hover{background:var(--rd)}
.cookie-decline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.cookie-decline:hover{border-color:#fff}
@media(max-width:600px){.cookie-consent{flex-direction:column;align-items:stretch;gap:12px;padding:16px}.cookie-actions{justify-content:stretch}.cookie-btn{flex:1}}

/* ============ Theme toggle button ============ */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.14);border:none;color:#fff;cursor:pointer;transition:.15s;flex-shrink:0;padding:0}
.theme-toggle:hover{background:rgba(255,255,255,.28)}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .ic-sun{display:none}
[data-theme="dark"] .theme-toggle .ic-sun{display:inline-block}
[data-theme="dark"] .theme-toggle .ic-moon{display:none}

/* ============ Dark mode ============ */
html[data-theme="dark"]{
    --ink:#ECECEF;
    --soft:#9b9ba6;
    --white:#16161b;
    --surf:#1e1e26;
    --line:#2b2b34;
    --line2:#3a3a46;
    --rs:#2e1519;
    --shadow:0 18px 40px -24px rgba(0,0,0,.75);
    --card:#1e1e26;
    color-scheme:dark;
}

/* hardcoded white surfaces -> dark card (skip surfaces sitting on the red header/hero/newsletter) */
[data-theme="dark"] .auth-card,
[data-theme="dark"] .blog-card,
[data-theme="dark"] .btn-line,
[data-theme="dark"] .cat-card,
[data-theme="dark"] .conv-result,
[data-theme="dark"] .drop-inner,
[data-theme="dark"] .fam-row,
[data-theme="dark"] .fav-btn,
[data-theme="dark"] .font-card,
[data-theme="dark"] .glyph-cell,
[data-theme="dark"] .search-bar,
[data-theme="dark"] .search-item,
[data-theme="dark"] .share-btn,
[data-theme="dark"] .size-control,
[data-theme="dark"] .tool-card,
[data-theme="dark"] .tool-hero,
[data-theme="dark"] .weight-btn{ background:var(--card); }

[data-theme="dark"] .tools-filter{ background:var(--surf); }
[data-theme="dark"] .pair-field select{ background-color:var(--card); }

/* dark chips / toasts / tooltips keep a dark surface with light text */
[data-theme="dark"] .toast,
[data-theme="dark"] .cp-tip,
[data-theme="dark"] .glyph-toast,
[data-theme="dark"] .cookie-consent{ background:#26262e; color:#fff; }
[data-theme="dark"] .s-copy:hover{ background:#26262e; border-color:#26262e; color:#fff; }

/* active weight chip -> brand red in dark */
[data-theme="dark"] .weight-btn.on{ background:var(--red); border-color:var(--red); color:#fff; }

/* soften hardcoded dark body text */
[data-theme="dark"] .pair-b{ color:#cfcfd6; }

/* ============ Back to top ============ */
.to-top{position:fixed;right:28px;bottom:80px;z-index:900;width:46px;height:46px;border-radius:50%;background:var(--red);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px -10px rgba(216,30,52,.7);opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .25s,transform .25s,visibility .25s,background .15s}
.to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.to-top:hover{background:var(--rd);transform:translateY(-2px)}
.to-top svg{width:20px;height:20px}
@media(max-width:600px){.to-top{right:16px;bottom:72px;width:42px;height:42px}}

/* ============ Footer polish (UI fine-tune) ============ */
.site-footer{border-top:2px solid var(--red)}
.foot-cols{padding-top:48px}
.foot-col h4{color:var(--soft);font-weight:800;letter-spacing:.13em}
.foot-col a{position:relative;width:fit-content;transition:color .16s ease,transform .16s ease}
.foot-col a:hover{color:var(--red);transform:translateX(4px)}
.foot-tag{color:var(--soft);line-height:1.65;font-size:14.5px}
.foot-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.foot-copy{color:var(--soft);font-size:13.5px;margin:0}
@media(max-width:760px){.foot-bottom{justify-content:center;text-align:center}}

/* ============ Mobile bottom tab bar ============ */
.mobile-tabbar{display:none}
@media(max-width:760px){
  .mobile-tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:950;background:var(--white);border-top:1px solid var(--line);justify-content:space-around;align-items:stretch;padding:6px 4px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 22px -14px rgba(0,0,0,.3)}
  .mobile-tabbar a,.mobile-tabbar .mtab-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px;color:var(--soft);font-size:10.5px;font-weight:600;text-decoration:none;background:none;border:none;cursor:pointer;font-family:inherit;transition:color .15s,transform .1s}
  .mobile-tabbar svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .mobile-tabbar a.on{color:var(--red)}
  .mobile-tabbar a:active,.mobile-tabbar .mtab-btn:active{transform:scale(.92)}
  body{padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}
  .to-top{bottom:82px!important;right:14px}
}

/* ============ Ctrl/Cmd+K search hint ============ */
.nav-kbd{display:inline-flex;align-items:center;margin-left:7px;padding:2px 6px;font-size:11px;font-weight:700;line-height:1;border:1px solid rgba(255,255,255,.55);border-radius:6px;color:#fff;opacity:.85;letter-spacing:.02em;font-family:inherit}
.nav-search-link:hover .nav-kbd{opacity:1}
@media(max-width:640px){.nav-kbd{display:none}}

/* ============ Hero search Ctrl K badge ============ */
.search-kbd{flex-shrink:0;margin-right:10px;padding:5px 10px;font-size:12px;font-weight:700;line-height:1;color:#9a9aa0;background:var(--surf);border:1px solid var(--line2);border-radius:8px;font-family:inherit;letter-spacing:.02em;user-select:none;white-space:nowrap}
.home-search input:focus ~ .search-kbd{opacity:.5}
@media(max-width:520px){.search-kbd{display:none}}

/* ============ Search command palette (Ctrl K) ============ */
.cmdk{position:fixed;inset:0;z-index:1200;display:flex;align-items:flex-start;justify-content:center;padding:13vh 16px 16px}
.cmdk[hidden]{display:none}
.cmdk-backdrop{position:absolute;inset:0;background:rgba(15,15,20,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.cmdk-panel{position:relative;width:100%;max-width:620px;background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:0 34px 90px -22px rgba(0,0,0,.55);overflow:hidden;animation:cmdkIn .16s ease}
@keyframes cmdkIn{from{opacity:0;transform:translateY(-10px) scale(.985)}to{opacity:1;transform:none}}
.cmdk-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.cmdk-ico{width:20px;height:20px;flex-shrink:0;stroke:var(--soft)}
.cmdk-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:16px;font-family:inherit;color:var(--ink)}
.cmdk-input::placeholder{color:#9a9aa0}
.cmdk-close{flex-shrink:0;padding:5px 9px;border-radius:8px;border:1px solid var(--line2);background:var(--surf);color:var(--soft);cursor:pointer;font-size:11px;font-weight:700;font-family:inherit}
.cmdk-close:hover{background:var(--line)}
.cmdk-results{max-height:56vh;overflow-y:auto;padding:8px}
.cmdk-hint,.cmdk-empty{padding:24px 16px;text-align:center;color:var(--soft);font-size:14px;line-height:1.5}
.cmdk-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}
.cmdk-row:hover,.cmdk-row.active{background:var(--rs)}
.cmdk-row-ico{flex-shrink:0;width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;background:var(--surf);color:var(--soft)}
.cmdk-ico-font{background:var(--rs);color:var(--red)}
.cmdk-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.cmdk-row-label{font-weight:700;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdk-row-meta{font-size:12.5px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmdk-badge{flex-shrink:0;font-size:11px;font-weight:700;color:var(--red);background:var(--rs);border-radius:20px;padding:3px 10px}
@media(max-width:560px){.cmdk{padding:8vh 10px 10px}.cmdk-results{max-height:66vh}.cmdk-row-ico{width:34px;height:34px}}

/* ============ Type tester (colour + bg) ============ */
.specimen-controls{flex-wrap:wrap}
.ts-colors{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ts-swatch{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.04em;cursor:pointer}
.ts-swatch input[type=color]{width:30px;height:30px;border:1px solid var(--line2);border-radius:8px;padding:2px;background:none;cursor:pointer}
.ts-reset{font-family:inherit;font-size:12px;font-weight:700;color:var(--soft);background:var(--surf);border:1px solid var(--line2);border-radius:8px;padding:7px 13px;cursor:pointer}
.ts-reset:hover{color:var(--red);border-color:var(--red)}
.specimen-block .js-preview.ts-staged{padding:26px;border-radius:14px;border:1px solid var(--line);transition:background .15s,color .15s}

/* ============ Star ratings ============ */
.rating-box{display:flex;align-items:center;gap:10px;margin:8px 0 2px}
.rating-box .stars{display:inline-flex;gap:2px}
.rating-box .star{font-size:22px;line-height:1;background:none;border:none;cursor:pointer;color:var(--line2);padding:0;transition:color .12s,transform .12s}
.rating-box .star.lit{color:#f5b301}
.rating-box .star:hover{transform:scale(1.18)}
.rating-meta{font-size:13.5px;font-weight:700;color:var(--ink)}
.rating-meta small{color:var(--soft);font-weight:500}

/* ============ Font tray (compare + bulk download) ============ */
.tray{position:fixed;left:0;right:0;bottom:22px;z-index:960;display:flex;justify-content:center;padding:0 14px;pointer-events:none}
.tray[hidden]{display:none}
.tray-inner{pointer-events:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:800px;width:100%;background:var(--white);border:1px solid var(--line2);border-radius:14px;box-shadow:0 18px 46px -18px rgba(0,0,0,.42);padding:12px 16px}
.tray-count{font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap}
.tray-count b{color:var(--red)}
.tray-chips{display:flex;gap:6px;flex-wrap:wrap;flex:1;min-width:0}
.tray-chip{display:inline-flex;align-items:center;gap:4px;background:var(--rs);color:var(--red);font-size:12.5px;font-weight:700;border-radius:20px;padding:4px 6px 4px 11px}
.tray-chip-x{background:none;border:none;color:var(--red);cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
.tray-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.tray-btn{font-family:inherit;font-weight:700;font-size:13.5px;padding:9px 15px;border-radius:9px;border:1px solid var(--line2);background:var(--white);color:var(--ink);cursor:pointer;transition:.15s}
.tray-btn:hover:not(:disabled){border-color:var(--ink)}
.tray-btn:disabled{opacity:.45;cursor:not-allowed}
.tray-btn-primary{background:var(--red);color:#fff;border-color:var(--red)}
.tray-btn-primary:hover{background:var(--rd)}
.tray-x{background:none;border:none;color:var(--soft);cursor:pointer;font-size:16px;padding:4px 6px;line-height:1}
.tray-x:hover{color:var(--red)}
@media(max-width:760px){.tray{bottom:70px}.tray-chips{display:none}.tray-inner{padding:10px 12px}}

/* select buttons */
.btn-select,.spec-select{font-family:inherit;font-weight:700;cursor:pointer;border:1px solid var(--line2);background:var(--white);color:var(--ink);border-radius:9px;transition:.15s}
.btn-select{padding:13px 18px;font-size:15px;display:inline-flex;align-items:center;gap:6px}
.btn-select:hover,.spec-select:hover{border-color:var(--red);color:var(--red)}
.btn-select.in,.spec-select.in{background:var(--red);color:#fff;border-color:var(--red)}
.spec-select{font-size:12.5px;padding:5px 11px;margin-left:6px}

/* ============ Compare page ============ */
.cmp-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.cmp-controls .preview-input{flex:1;min-width:200px}
.cmp-grid{display:grid;gap:18px}
.cmp-grid.cmp-n1{grid-template-columns:1fr}
.cmp-grid.cmp-n2{grid-template-columns:1fr 1fr}
.cmp-grid.cmp-n3{grid-template-columns:1fr 1fr 1fr}
.cmp-col{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px}
.cmp-col-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.cmp-name{font-weight:800;font-size:17px;color:var(--ink);text-decoration:none;display:block}
.cmp-name:hover{color:var(--red)}
.cmp-col-info small{color:var(--soft);font-size:13px}
.cmp-remove{color:var(--soft);text-decoration:none;font-size:15px;flex-shrink:0}
.cmp-remove:hover{color:var(--red)}
.cmp-sample{font-size:56px;line-height:1.2;color:var(--ink);word-break:break-word;flex:1;min-height:90px}
.cmp-dl{align-self:flex-start;margin-top:auto}
.cmp-hint{color:var(--soft);text-align:center;padding:16px;font-size:14px}
.cmp-empty{padding:50px 16px;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--soft);text-align:center}
.cmp-empty-sub{font-size:14px}
@media(max-width:860px){.cmp-grid.cmp-n3{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.cmp-grid,.cmp-grid.cmp-n2,.cmp-grid.cmp-n3{grid-template-columns:1fr}.cmp-sample{font-size:42px;min-height:auto}}

/* ============ Category filter chips ============ */
.filter-chips{display:flex;gap:8px;flex-wrap:wrap;padding:18px 0 0}
.chip{font-size:13.5px;font-weight:700;padding:8px 16px;border-radius:30px;border:1px solid var(--line2);color:var(--ink);background:var(--white);text-decoration:none;transition:.15s;white-space:nowrap}
.chip:hover{border-color:var(--red);color:var(--red)}
.chip.on{background:var(--red);color:#fff;border-color:var(--red)}

/* ============ Weight / thickness preview control ============ */
.ptool{flex-wrap:wrap}
.weight-control{display:flex;align-items:center;gap:8px}
.weight-chips{display:flex;gap:4px}
.wchip{font-family:inherit;font-size:12px;font-weight:700;padding:5px 10px;border-radius:7px;border:1px solid var(--line2);background:var(--white);color:var(--soft);cursor:pointer;transition:.15s}
.wchip:hover{border-color:var(--red);color:var(--red)}
.wchip.on{background:var(--red);color:#fff;border-color:var(--red)}
#weightRange{width:90px}
@media(max-width:560px){.weight-control{flex-wrap:wrap}#weightRange{width:70px}}

/* ============ Font of the week ============ */
.fotw{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:26px 28px;margin:24px 0 4px;overflow:hidden}
.fotw-left{display:flex;flex-direction:column;gap:7px;flex-shrink:0;max-width:340px}
.fotw-badge{align-self:flex-start;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--red);background:var(--rs);border-radius:20px;padding:5px 12px}
.fotw-name{font-size:25px;font-weight:800;color:var(--ink);text-decoration:none;letter-spacing:-.02em;line-height:1.1}
.fotw-name:hover{color:var(--red)}
.fotw-by{font-size:13.5px;color:var(--soft)}
.fotw-actions{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}
.fotw-sample{flex:1;min-width:0;text-align:right;font-size:64px;line-height:1.1;color:var(--ink);text-decoration:none;word-break:break-word}
.fotw-sample:hover{color:var(--red)}
@media(max-width:720px){.fotw{flex-direction:column;align-items:flex-start;gap:16px;padding:22px}.fotw-sample{text-align:left;font-size:46px}.fotw-left{max-width:none}}

/* ============ Sidebar — Popular Posts ============ */
.side-posts{display:flex;flex-direction:column}
.side-post{display:flex;gap:11px;align-items:center;padding:9px 0;text-decoration:none;border-bottom:1px solid var(--line)}
.side-post:last-child{border-bottom:none}
.side-post:hover .side-post-title{color:var(--red)}
.side-post-thumb{flex-shrink:0;width:46px;height:46px;border-radius:9px;overflow:hidden;background:var(--rs);display:flex;align-items:center;justify-content:center}
.side-post-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.side-post-thumb-ph{font-weight:800;font-size:18px;color:var(--red)}
.side-post-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.side-post-title{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.3}
.side-post-meta{font-size:11.5px;color:var(--soft)}

/* ============ Ctrl K palette — recents + hints footer ============ */
.cmdk-sec{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--soft);padding:10px 18px 4px}
.cmdk-recent{width:100%;text-align:left;background:none;border:none;font-family:inherit;cursor:pointer}
.cmdk-ico-recent{color:var(--soft)}
.cmdk-clear{display:block;width:100%;text-align:center;background:none;border:none;border-top:1px solid var(--line);font-family:inherit;font-size:12.5px;font-weight:700;color:var(--soft);padding:11px;cursor:pointer}
.cmdk-clear:hover{color:var(--red)}
.cmdk-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 16px;border-top:1px solid var(--line);background:var(--surf)}
.cmdk-hints{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:11.5px;color:var(--soft)}
.cmdk-hints kbd{font-family:inherit;font-size:10.5px;font-weight:700;color:var(--ink);background:var(--white);border:1px solid var(--line2);border-bottom-width:2px;border-radius:5px;padding:1px 6px;min-width:18px;text-align:center}
.cmdk-foot-brand{font-size:11px;font-weight:800;letter-spacing:.05em;color:var(--red);text-transform:uppercase}
@media(max-width:560px){.cmdk-foot-brand{display:none}}

/* ============ Hero "Ctrl K" badge — override .home-search button (red pill) ============ */
.home-search button.search-kbd{display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;border-radius:8px;background:var(--surf);color:#9a9aa0;border:1px solid var(--line2);padding:6px 11px;margin-right:10px;font-size:12px;font-weight:700;line-height:1;letter-spacing:.02em;white-space:nowrap;box-shadow:none;transition:.15s}
.home-search button.search-kbd:hover{background:var(--surf);color:var(--red);border-color:var(--red)}
.home-search button.search-kbd:focus-visible{box-shadow:0 0 0 3px rgba(216,30,52,.25)}
@media(max-width:520px){.home-search button.search-kbd{display:none}}

/* ============ Font Collections (public) ============ */
.col-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.col-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s}
.col-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(0,0,0,.35);border-color:var(--line2)}
.col-card-cover{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;background:linear-gradient(135deg,var(--rs),var(--white));overflow:hidden}
.col-card-cover img{width:100%;height:100%;object-fit:cover}
.col-card-cover-ph{font-size:54px;font-weight:800;color:var(--red);opacity:.45}
.col-card-count{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.62);color:#fff;font-size:12px;font-weight:700;border-radius:20px;padding:4px 11px}
.col-card-body{padding:16px 18px;display:flex;flex-direction:column;gap:5px}
.col-card-title{font-size:18px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.col-card:hover .col-card-title{color:var(--red)}
.col-card-desc{font-size:13.5px;color:var(--soft);line-height:1.5}
.col-head{margin-bottom:26px}
.col-head-meta{font-size:14px;color:var(--soft);margin-top:8px;font-weight:600}
