:root{
    --paper:#FAF7EE;
    --paper-alt:#F1EADA;
    --ink:#20262F;
    --muted:#83796A;
    --pen-red:#C9402C;
    --marker-yellow:#FFD83F;
    --chalk-green:#2F4A3D;
    --chalk-green-dark:#233A30;
    --line: rgba(32,38,47,0.14);

    --bs-body-bg: var(--paper);
    --bs-body-color: var(--ink);
    --bs-body-font-family: 'Karla', sans-serif;
    --bs-secondary-color: var(--muted);
    --bs-border-color: var(--line);
    --bs-border-radius: 4px;
    --bs-link-color-rgb: 32,38,47;
    --bs-link-hover-color-rgb: 201,64,44;
}
body{
    -webkit-font-smoothing:antialiased;
}
a{
    text-decoration:none;
}
.container{
    max-width:1240px;
}

/* helpers */
.font-hand{
    font-family:'Caveat', cursive;
    font-weight:700;
}
.font-mono{
    font-family:'JetBrains Mono', monospace;
}
.text-pen{
    color:var(--pen-red) !important;
}
.text-marker{
    color:var(--marker-yellow) !important;
}
.text-chalk{
    color:var(--chalk-green) !important;
}
.bg-paper-alt{
    background:var(--paper-alt) !important;
}
.bg-chalk{
    background:var(--chalk-green) !important;
}
.bg-chalk-dark{
    background:var(--chalk-green-dark) !important;
}

/* notebook-paper texture */
body::before{
    content:'';
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:-1;
    background-image: linear-gradient(rgba(32,38,47,0.035) 1px, transparent 1px);
    background-size:100% 34px;
    opacity:.5;
}

/* ============ HEADER ============ */
.logo{
    font-family:'Caveat', cursive;
    font-weight:700;
    font-size:2.6rem;
    color:var(--pen-red);
    line-height:1;
    /*transform:rotate(-3deg);*/
    display:inline-flex;
    align-items:flex-end;
    gap:6px;
}
.logo:hover{
    color:var(--pen-red);
}
.logo svg{
    transform:translateY(4px);
}
.logo img{
    height: 50px;
}

@media (max-width:480px){
    .logo{
        font-size:2rem;
    }
    .logo svg{
        width:50px;
    }
    .btn-circle{
        width:32px;
        height:32px;
    }
}

.btn-circle{
    width:36px;
    height:36px;
    padding:0;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.btn-circle svg{
    width:16px;
    height:16px;
}

.btn-social{
    --bs-btn-color: var(--ink);
    --bs-btn-border-color: var(--ink);
    --bs-btn-border-width: 1.5px;
    --bs-btn-hover-bg: var(--pen-red);
    --bs-btn-hover-border-color: var(--pen-red);
    --bs-btn-hover-color: var(--paper);
    --bs-btn-active-bg: var(--pen-red);
    --bs-btn-active-border-color: var(--pen-red);
    --bs-btn-active-color: var(--paper);
    transition: background .18s ease, color .18s ease, transform .18s ease;
}
.btn-social:hover{
    transform:translateY(-2px) rotate(-4deg);
}

.navbar-toggler.tahak-toggler{
    border:1.5px solid var(--ink);
    border-radius:6px;
    width:40px;
    height:36px;
    padding:0;
    color:var(--ink);
    display:inline-flex;
    align-items:center;
    justify-content:center;
}
.tahak-toggler svg{
    width:20px;
    height:20px;
}

/* ============ NAV (chalkboard) ============ */
.site-nav .nav-link{
    color:var(--paper-alt);
    font-weight:600;
    letter-spacing:.03em;
    font-size:.98rem;
    padding:16px !important;
    position:relative;
    transition:color .15s ease;
}
.site-nav .nav-link::after{
    content:'';
    position:absolute;
    left:16px;
    right:16px;
    bottom:10px;
    height:9px;
    background:var(--marker-yellow);
    opacity:0;
    z-index:0;
    transform:scaleX(.4) rotate(-1deg);
    transform-origin:left center;
    transition: opacity .18s ease, transform .22s ease;
    border-radius:2px;
}
.site-nav .nav-link span{
    position:relative;
    z-index:1;
}
.site-nav .nav-link:hover,
.site-nav .nav-link:focus-visible{
    /*color:var(--chalk-green-dark);*/
}
.site-nav .nav-link:hover::after,
.site-nav .nav-link:focus-visible::after{
    opacity:1;
    transform:scaleX(1) rotate(-1deg);
}

@media (max-width:767.98px){
    .site-nav .nav-link{
        padding:12px 4px !important;
        border-bottom:1px solid rgba(250,247,238,0.1);
    }
    .site-nav .nav-link::after{
        left:4px;
        right:auto;
        width:120px;
    }
}

.btn-search{
    width:38px;
    height:38px;
    --bs-btn-color: var(--paper);
    --bs-btn-border-color: rgba(250,247,238,0.55);
    --bs-btn-border-width: 1.5px;
    --bs-btn-hover-bg: rgba(250,247,238,0.14);
    --bs-btn-hover-border-color: var(--marker-yellow);
    --bs-btn-hover-color: var(--paper);
    --bs-btn-active-bg: rgba(250,247,238,0.14);
    --bs-btn-active-border-color: var(--marker-yellow);
    --bs-btn-active-color: var(--paper);
}
.btn-search svg{
    width:17px;
    height:17px;
}

.search-input{
    background:transparent;
    border:0;
    border-radius:0;
    color:var(--paper);
    padding:14px 24px;
}
.search-input:focus{
    background:transparent;
    color:var(--paper);
    box-shadow:none;
}
.search-input::placeholder{
    color:rgba(250,247,238,0.55);
}

.torn-strip{
    height:22px;
    background:var(--paper);
    clip-path: polygon(0 40%, 5% 0, 10% 42%, 15% 6%, 20% 38%, 25% 0, 30% 44%, 35% 10%, 40% 40%, 45% 0, 50% 36%, 55% 4%, 60% 42%, 65% 0, 70% 36%, 75% 8%, 80% 40%, 85% 0, 90% 36%, 95% 10%, 100% 40%, 100% 100%, 0 100%);
}

/* ============ CAROUSEL ============ */
.banner-carousel{
    background:var(--ink);
}
.banner-carousel .carousel-item{
    aspect-ratio:16/8.2;
}
.banner-carousel .carousel-item img{
    width:100%;
    height:100%;
    object-fit:cover;
}
.banner-carousel .carousel-item{
    transition-duration:.6s;
}
.banner-caption{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    padding:22px 26px 20px;
    background:linear-gradient(to top, rgba(15,18,14,0.82), rgba(15,18,14,0));
    color:var(--paper);
}
.banner-caption h2 a {
    color:var(--paper);
}
.banner-caption h2 a:hover {
    color: var(--pen-red);
}

#bannerCarouse2 .carousel-item img {
    height: 285px !important;
}

.sponsor-link:hover div.border {
    border: 1px solid var(--pen-red) !important;
}

.tag{
    background:var(--pen-red) !important;
    font-family:'JetBrains Mono', monospace;
    font-size:.68rem;
    font-weight:400;
    letter-spacing:.08em;
    text-transform:uppercase;
    border-radius:2px;
}
.banner-caption h2{
    font-size:2rem;
    line-height:1.15;
    padding-right:70px;
}
@media (max-width:767.98px){
    .banner-caption h2{
        font-size:1.5rem;
    }
}

.banner-carousel .carousel-control-prev,
.banner-carousel .carousel-control-next{
    width:auto;
    opacity:1;
    padding:0 12px;
}
.banner-arrow{
    width:36px;
    height:36px;
    border-radius:50%;
    background:rgba(250,247,238,0.85);
    color:var(--ink);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:background .15s ease;
}
.banner-arrow svg{
    width:16px;
    height:16px;
}
.carousel-control-prev:hover .banner-arrow,
.carousel-control-next:hover .banner-arrow{
    background:var(--marker-yellow);
}

.banner-carousel .carousel-indicators{
    margin:0;
    left:auto;
    right:20px;
    bottom:14px;
    gap:7px;
}
.banner-carousel .carousel-indicators [data-bs-target]{
    width:9px;
    height:9px;
    margin:0;
    border-radius:50%;
    border:1.5px solid var(--paper);
    background:transparent;
    opacity:1;
    text-indent:0;
}
.banner-carousel .carousel-indicators .active{
    background:var(--marker-yellow);
    border-color:var(--marker-yellow);
}

/* ============ CATEGORY BOXES ============ */
.cat-box{
    display:block;
    height:100%;
    padding:20px 20px 18px;
    border:2px solid var(--ink);
    border-radius:var(--bs-border-radius);
    background:var(--paper);
    color:var(--ink);
    position:relative;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.cat-box:hover,
.cat-box:focus-visible{
    color:var(--ink);
    border-color:var(--pen-red);
    background:var(--paper-alt);
    transform:translateY(-3px) rotate(-.6deg);
    box-shadow:4px 4px 0 var(--pen-red);
    outline:none;
}
.cat-box-title{
    font-family:'Caveat', cursive;
    font-weight:700;
    font-size:2rem;
    line-height:1;
    color:var(--chalk-green);
    margin:0 0 8px;
    display:inline-block;
    background:linear-gradient(transparent 62%, transparent 62%);
    transition:background .2s ease;
}
.cat-box:hover .cat-box-title,
.cat-box:focus-visible .cat-box-title{
    background:linear-gradient(transparent 58%, var(--marker-yellow) 58%, var(--marker-yellow) 92%, transparent 92%);
}
.cat-box-sub{
    font-size:.95rem;
    line-height:1.4;
    /*color:var(--muted);*/
    margin:0;
}
.cat-box-arrow{
    position:absolute;
    top:16px;
    right:16px;
    width:18px;
    height:18px;
    color:var(--muted);
    transition:color .18s ease, transform .18s ease;
}
.cat-box:hover .cat-box-arrow{
    color:var(--pen-red);
    transform:translateX(3px);
}
@media (max-width:575.98px){
    .cat-box{
        padding:16px 14px 14px;
    }
    .cat-box-title{
        font-size:1.7rem;
    }
    .cat-box-sub{
        font-size:.8rem;
    }
    .cat-box-arrow{
        display:none;
    }
}

/* ============ SPONSORS & ARTICLES ============ */
.thumb{
    flex:0 0 auto;
    border-radius:3px;
    border:1px solid var(--line);
}
.thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:3px;
}
.thumb-52{
    width:52px;
    height:52px;
}
.thumb-64{
    width:64px;
    height:64px;
}

/* taped photo corner */
.taped{
    position:relative;
}
.taped::before{
    content:'';
    position:absolute;
    top:-9px;
    left:14px;
    width:46px;
    height:18px;
    background: repeating-linear-gradient(45deg, rgba(255,216,63,0.9) 0 5px, rgba(240,190,50,0.75) 5px 10px);
    transform:rotate(-7deg);
    box-shadow:0 1px 2px rgba(0,0,0,.18);
    z-index:2;
    border-radius:1px;
}

.sponsors-title{
    font-size:1.5rem;
    transform:rotate(-1deg);
}
.sponsor-desc{
    font-size:.78rem;
    line-height:1.3;
}

.col-title{
    font-size:1.9rem;
    border-bottom:2.5px dashed var(--line);
}
.article-item + .article-item{
    border-top:1px solid var(--line);
}
.article-item h4{
    font-size:.92rem;
    line-height:1.3;
}
.article-item h4 a:hover{
    color:var(--pen-red);
}
.article-meta{
    font-size:.7rem;
}
.article-meta svg{
    width:12px;
    height:12px;
}

/* ============ FOOTER ============ */
.site-footer{
    color:var(--paper-alt);
}
.site-footer .logo{
    color:var(--marker-yellow);
    font-size:2.2rem;
}
.footer-text{
    font-size:.85rem;
    line-height:1.5;
    color:rgba(250,247,238,0.7);
}
.footer-contact-item{
    font-size:.86rem;
    color:rgba(250,247,238,0.85);
}
.footer-contact-item svg{
    width:16px;
    height:16px;
    flex:0 0 auto;
    color:var(--marker-yellow);
}

@media (prefers-reduced-motion: reduce){
    .banner-carousel .carousel-item{
        transition:none;
    }
}


/* ============ CATEGORY PAGE ============ */
.breadcrumb{
    --bs-breadcrumb-divider-color: var(--muted);
    --bs-breadcrumb-item-active-color: var(--muted);
    font-family:'JetBrains Mono', monospace;
    font-size:.75rem;
}
.breadcrumb a:hover{
    color:var(--pen-red);
}

.cat-hero{
    border-bottom:2.5px dashed var(--line);
}
.cat-title{
    font-size:clamp(2.8rem, 7vw, 4.4rem);
    line-height:1;
    display:inline-block;
    transform:rotate(-2deg);
    background:linear-gradient(transparent 60%, var(--marker-yellow) 60%, var(--marker-yellow) 90%, transparent 90%);
    padding:0 6px;
}
.cat-desc{
    font-size:1.1rem;
    max-width:560px;
}
.cat-stat{
    font-family:'JetBrains Mono', monospace;
    font-size:.75rem;
}

/* category switcher — scrolls sideways on phones */
.cat-pills{
    display:flex;
    gap:8px;
    overflow-x:auto;
    scrollbar-width:none;
    padding-bottom:4px;
    -webkit-overflow-scrolling:touch;
}
.cat-pills::-webkit-scrollbar{
    display:none;
}
.cat-pill{
    flex:0 0 auto;
    border:1.5px solid var(--ink);
    border-radius:999px;
    padding:6px 14px;
    font-weight:600;
    font-size:.9rem;
    color:var(--ink);
    background:var(--paper);
    transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.cat-pill:hover{
    background:var(--marker-yellow);
    border-color:var(--marker-yellow);
    color:var(--ink);
}
.cat-pill.active{
    background:var(--chalk-green);
    border-color:var(--chalk-green);
    color:var(--paper);
}

.form-select.paper-select{
    background-color:var(--paper);
    border:1.5px solid var(--ink);
    font-weight:600;
    font-size:.9rem;
}
.form-select.paper-select:focus{
    box-shadow:0 0 0 .2rem rgba(255,216,63,.5);
    border-color:var(--chalk-green);
}

/* article cards */
.post-card{
    background:var(--paper);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.post-card:hover,
.post-card:focus-within{
    border-color:var(--ink) !important;
    transform:translateY(-3px) rotate(-.4deg);
    box-shadow:4px 4px 0 var(--pen-red);
}
.post-card .post-img{
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
    border-radius:3px;
    background:var(--paper-alt);
}
.post-card h2{
    font-size:1rem;
    line-height:1.3;
}
.post-card h2 a{
    outline:none;
}
.post-card:hover h2 a{
    color:var(--pen-red);
}
.post-excerpt{
    font-size:.85rem;
    line-height:1.5;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.badge.tag-type{
    background:var(--chalk-green) !important;
}

.post-card.is-new{
    animation:cardIn .4s ease both;
}
@keyframes cardIn{
    from{
        opacity:0;
        transform:translateY(12px);
    }
    to{
        opacity:1;
        transform:none;
    }
}

.btn-basic a {
    font-family:'Caveat', cursive;
    font-weight:700;
    font-size:1.2rem;
}

/* load more */
.btn-basic, .btn-loadmore  {
    --bs-btn-color:var(--ink);
    --bs-btn-bg:var(--paper);
    --bs-btn-border-color:var(--ink);
    --bs-btn-border-width:2px;
    --bs-btn-hover-bg:var(--marker-yellow);
    --bs-btn-hover-border-color:var(--ink);
    --bs-btn-hover-color:var(--ink);
    --bs-btn-active-bg:var(--marker-yellow);
    --bs-btn-active-border-color:var(--ink);
    --bs-btn-active-color:var(--ink);
    --bs-btn-disabled-bg:var(--paper);
    --bs-btn-disabled-border-color:var(--ink);
    --bs-btn-disabled-color:var(--ink);
    font-family:'Caveat', cursive;
    font-weight:700;
    font-size:1.5rem;
    padding:.35rem 2rem;
    box-shadow:4px 4px 0 var(--ink);
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn-basic:hover, .btn-loadmore:hover {
    transform:translate(-1px,-1px);
    box-shadow:5px 5px 0 var(--ink);
}
.btn-basic:active, .btn-loadmore:active{
    transform:translate(3px,3px);
    box-shadow:1px 1px 0 var(--ink);
}

.load-progress{
    height:4px;
    max-width:240px;
    background:var(--line);
    border-radius:2px;
}
.load-progress .progress-bar{
    background:var(--pen-red);
    transition:width .3s ease;
}
.load-status{
    font-family:'JetBrains Mono', monospace;
    font-size:.75rem;
}

@media (prefers-reduced-motion: reduce){
    .post-card.is-new{
        animation:none;
    }
}

/* ============ ARTICLE DETAIL ============ */
.read-progress{
    position:fixed;
    top:0;
    left:0;
    height:4px;
    width:0;
    background:var(--marker-yellow);
    z-index:1080;
    box-shadow:0 1px 2px rgba(0,0,0,.15);
}

.breadcrumb{
    --bs-breadcrumb-divider-color: var(--muted);
    --bs-breadcrumb-item-active-color: var(--muted);
    font-family:'JetBrains Mono', monospace;
    font-size:.75rem;
}
.breadcrumb a:hover{
    color:var(--pen-red);
}

.article-title{
    font-size:clamp(2.2rem, 5vw, 3.4rem);
    line-height:1.05;
    color:var(--ink);
}
.article-lead{
    font-size:1.15rem;
    line-height:1.6;
}

.avatar{
    width:44px;
    height:44px;
    border-radius:50%;
    object-fit:cover;
    border:1.5px solid var(--ink);
}
.avatar-lg{
    width:72px;
    height:72px;
}
.byline-meta{
    font-size:.72rem;
}
.byline-meta svg{
    width:13px;
    height:13px;
}

.hero-figure img{
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
}
.hero-figure.taped::before{
    left:28px;
    width:70px;
    height:22px;
    top:-11px;
}
.figure-caption{
    font-family:'JetBrains Mono', monospace;
    font-size:.72rem;
    color:var(--muted);
}

/* body typography */
.article-body{
    font-size:1.08rem;
    line-height:1.75;
}
.article-body p{
    margin-bottom:1.25rem;
}
.article-body h2{
    font-family:'Caveat', cursive;
    font-weight:700;
    font-size:2rem;
    color:var(--chalk-green);
    margin:2.25rem 0 .75rem;
}
.article-body > p:first-of-type::first-letter{
    font-family:'Caveat', cursive;
    font-weight:700;
    float:left;
    font-size:4.2rem;
    line-height:.8;
    padding:6px 10px 0 0;
    color:var(--pen-red);
}
.mark-yellow{
    background:linear-gradient(transparent 55%, var(--marker-yellow) 55%, var(--marker-yellow) 92%, transparent 92%);
    padding:0 2px;
}
.article-body a{
    color:var(--pen-red);
    text-decoration:underline;
    text-underline-offset:3px;
}

.tip-list li{
    position:relative;
    padding-left:34px;
    margin-bottom:.6rem;
}
.tip-list li::before{
    content:'✓';
    position:absolute;
    left:0;
    top:1px;
    width:24px;
    height:24px;
    border-radius:50%;
    border:1.5px solid var(--pen-red);
    color:var(--pen-red);
    font-size:.8rem;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    transform:rotate(-6deg);
}

/* sticky-note quote */
.note-quote{
    background:#FFF3B0;
    border:0;
    border-radius:2px;
    padding:28px 28px 22px;
    margin:2rem 0;
    transform:rotate(-1.2deg);
    box-shadow:0 6px 14px rgba(32,38,47,.12);
}
.note-quote p{
    font-family:'Caveat', cursive;
    font-weight:600;
    font-size:1.75rem;
    line-height:1.2;
    margin:0 0 .5rem;
}
.note-quote footer{
    font-family:'JetBrains Mono', monospace;
    font-size:.72rem;
    color:var(--muted);
}
.note-quote.taped::before{
    left:50%;
    margin-left:-23px;
}

/* exam info box */
.info-box{
    border:2px dashed var(--chalk-green);
    background:rgba(47,74,61,.05);
}
.info-box h3{
    font-size:1.6rem;
}

.tag-chip{
    --bs-btn-padding-y:.2rem;
    --bs-btn-padding-x:.65rem;
    --bs-btn-font-size:.72rem;
    --bs-btn-color:var(--ink);
    --bs-btn-border-color:var(--line);
    --bs-btn-hover-bg:var(--marker-yellow);
    --bs-btn-hover-border-color:var(--marker-yellow);
    --bs-btn-hover-color:var(--ink);
    font-family:'JetBrains Mono', monospace;
    border-radius:2px;
}

.share-label{
    font-family:'Caveat', cursive;
    font-size:1.35rem;
    font-weight:700;
}

.author-box{
    border-left:4px solid var(--pen-red) !important;
}

/* sidebar */
@media (min-width:992px){
    .sidebar-sticky{
        position:sticky;
        top:24px;
    }
}
.side-title{
    font-size:1.6rem;
    border-bottom:2.5px dashed var(--line);
}

/* related cards */
.related-card{
    background:var(--paper-alt);
    transition: transform .18s ease, box-shadow .18s ease;
}
.related-card:hover{
    transform:translateY(-3px) rotate(-.4deg);
    box-shadow:0 8px 18px rgba(32,38,47,.12);
}
.related-card img{
    aspect-ratio:16/10;
    object-fit:cover;
    width:100%;
}
.related-card h3{
    font-size:1rem;
    line-height:1.3;
}
.related-card a.stretched-link:hover{
    color:var(--pen-red);
}

/* comments */
.comment + .comment{
    border-top:1px solid var(--line);
}
.comment .avatar{
    width:38px;
    height:38px;
}
.form-control.paper-input{
    background:var(--paper);
    border:1.5px solid var(--line);
}
.form-control.paper-input:focus{
    border-color:var(--chalk-green);
    box-shadow:0 0 0 .2rem rgba(255,216,63,.45);
}
.btn-pen{
    --bs-btn-bg:var(--pen-red);
    --bs-btn-border-color:var(--pen-red);
    --bs-btn-color:#fff;
    --bs-btn-hover-bg:#B23725;
    --bs-btn-hover-border-color:#B23725;
    --bs-btn-hover-color:#fff;
    --bs-btn-active-bg:#9E2F1F;
    --bs-btn-active-border-color:#9E2F1F;
    font-weight:700;
    letter-spacing:.02em;
}

/* ============ SEARCH RESULTS ============ */
.breadcrumb{
    --bs-breadcrumb-divider-color: var(--muted);
    --bs-breadcrumb-item-active-color: var(--muted);
    font-family:'JetBrains Mono', monospace;
    font-size:.75rem;
}
.breadcrumb a:hover{
    color:var(--pen-red);
}

.page-title{
    font-size:clamp(2.2rem, 5vw, 3.2rem);
    line-height:1.05;
}

.search-hero .input-group{
    border:2px solid var(--ink);
    border-radius:var(--bs-border-radius);
    background:var(--paper);
    overflow:hidden;
    transition:box-shadow .18s ease, border-color .18s ease;
}
.search-hero .input-group:focus-within{
    border-color:var(--chalk-green);
    box-shadow:4px 4px 0 var(--marker-yellow);
}
.search-hero .input-group-text{
    background:transparent;
    border:0;
    color:var(--muted);
    padding-left:16px;
}
.search-hero .input-group-text svg{
    width:20px;
    height:20px;
}
.search-hero .form-control{
    background:transparent;
    border:0;
    box-shadow:none;
    font-size:1.1rem;
    padding:14px 8px;
}
.search-hero .btn-clear{
    border:0;
    color:var(--muted);
    background:transparent;
}
.search-hero .btn-clear:hover{
    color:var(--pen-red);
}
.search-hero .btn-clear svg{
    width:18px;
    height:18px;
}

.btn-pen{
    --bs-btn-bg:var(--pen-red);
    --bs-btn-border-color:var(--pen-red);
    --bs-btn-color:#fff;
    --bs-btn-hover-bg:#B23725;
    --bs-btn-hover-border-color:#B23725;
    --bs-btn-hover-color:#fff;
    --bs-btn-active-bg:#9E2F1F;
    --bs-btn-active-border-color:#9E2F1F;
    --bs-btn-active-color:#fff;
    font-weight:700;
    letter-spacing:.02em;
}
.search-hero .btn-pen{
    border-radius:0;
    padding-left:1.4rem;
    padding-right:1.4rem;
}

.suggest-chip{
    --bs-btn-padding-y:.2rem;
    --bs-btn-padding-x:.65rem;
    --bs-btn-font-size:.72rem;
    --bs-btn-color:var(--ink);
    --bs-btn-border-color:var(--line);
    --bs-btn-hover-bg:var(--marker-yellow);
    --bs-btn-hover-border-color:var(--marker-yellow);
    --bs-btn-hover-color:var(--ink);
    --bs-btn-active-bg:var(--marker-yellow);
    --bs-btn-active-border-color:var(--marker-yellow);
    font-family:'JetBrains Mono', monospace;
    border-radius:2px;
}

/* filters */
.filter-title{
    font-size:1.5rem;
    border-bottom:2.5px dashed var(--line);
}
.filter-group + .filter-group{
    margin-top:1.5rem;
}
.filter-label{
    font-family:'JetBrains Mono', monospace;
    font-size:.7rem;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
}
.form-check-input{
    border:1.5px solid var(--ink);
    background-color:var(--paper);
}
.form-check-input:checked{
    background-color:var(--chalk-green);
    border-color:var(--chalk-green);
}
.form-check-input:focus{
    box-shadow:0 0 0 .2rem rgba(255,216,63,.5);
    border-color:var(--chalk-green);
}
.filter-count{
    font-family:'JetBrains Mono', monospace;
    font-size:.68rem;
    color:var(--muted);
}
.offcanvas-lg{
    --bs-offcanvas-bg: var(--paper);
}
@media (min-width:992px){
    .filters-sticky{
        position:sticky;
        top:24px;
    }
}

.btn-outline-ink{
    --bs-btn-color:var(--ink);
    --bs-btn-border-color:var(--ink);
    --bs-btn-border-width:1.5px;
    --bs-btn-hover-bg:var(--ink);
    --bs-btn-hover-border-color:var(--ink);
    --bs-btn-hover-color:var(--paper);
    --bs-btn-active-bg:var(--ink);
    --bs-btn-active-color:var(--paper);
    font-weight:600;
}
.btn-outline-ink svg{
    width:16px;
    height:16px;
}

.form-select.paper-select{
    background-color:var(--paper);
    border:1.5px solid var(--ink);
    font-weight:600;
    font-size:.9rem;
}
.form-select.paper-select:focus{
    box-shadow:0 0 0 .2rem rgba(255,216,63,.5);
    border-color:var(--chalk-green);
}

.result-count{
    font-size:.95rem;
}
.active-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:var(--chalk-green);
    color:var(--paper);
    border:0;
    border-radius:2px;
    font-family:'JetBrains Mono', monospace;
    font-size:.7rem;
    padding:4px 8px;
}
.active-chip:hover{
    background:var(--pen-red);
}
.active-chip svg{
    width:11px;
    height:11px;
}

/* result cards */
.result-card{
    background:var(--paper);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.result-card:hover{
    border-color:var(--ink) !important;
    box-shadow:4px 4px 0 var(--line);
    transform:translateY(-2px);
}
.result-thumb{
    flex:0 0 auto;
}
.result-thumb img{
    width:100%;
    aspect-ratio:16/10;
    object-fit:cover;
    border-radius:3px;
}
@media (min-width:576px){
    .result-thumb{
        width:200px;
    }
    .result-thumb img{
        height:100%;
        aspect-ratio:auto;
        min-height:130px;
    }
}
.result-card h2{
    font-size:1.15rem;
    line-height:1.3;
}
.result-card h2 a:hover{
    color:var(--pen-red);
}
.result-excerpt{
    font-size:.92rem;
    line-height:1.55;
}
.result-card mark{
    background:linear-gradient(transparent 50%, var(--marker-yellow) 50%, var(--marker-yellow) 92%, transparent 92%);
    color:inherit;
    padding:0 1px;
}

/* pagination */
.pagination{
    --bs-pagination-color:var(--ink);
    --bs-pagination-bg:var(--paper);
    --bs-pagination-border-color:var(--line);
    --bs-pagination-hover-color:var(--ink);
    --bs-pagination-hover-bg:var(--marker-yellow);
    --bs-pagination-hover-border-color:var(--marker-yellow);
    --bs-pagination-focus-box-shadow:0 0 0 .2rem rgba(255,216,63,.5);
    --bs-pagination-active-bg:var(--chalk-green);
    --bs-pagination-active-border-color:var(--chalk-green);
    --bs-pagination-disabled-bg:var(--paper);
    --bs-pagination-disabled-color:var(--muted);
    font-family:'JetBrains Mono', monospace;
    font-size:.85rem;
}

/* empty state */
.empty-state{
    border:2px dashed var(--line);
    background:var(--paper-alt);
}
.empty-state .font-hand{
    font-size:2.2rem;
}


/*partners*/
.partners-carousel .partner-dots{
    position:static;
    margin:12px 0 0;
    justify-content:center;
    gap:7px;
}
.partners-carousel .partner-dots [data-bs-target]{
    width:9px;
    height:9px;
    margin:0;
    border-radius:50%;
    border:1.5px solid var(--ink);
    background:transparent;
    opacity:1;
    text-indent:0;
}
.partners-carousel .partner-dots .active{
    background:var(--pen-red);
    border-color:var(--pen-red);
}