/* 
   =========================================
   THEME VARIABLES
   =========================================
*/
:root{
    --bg:#ffffff;
    --bg-card:#f9f9f9;
    --bg-input:#f5f5f5;
    --bg-hover:#f5f5f5;
    --border:#e5e5e5;
    --border-hover:#d4d4d4;
    --border-subtle:#efefef;
    --text:#0a0a0a;
    --text-2:#404040;
    --text-3:#737373;
    --text-4:#a3a3a3;
    --text-5:#d4d4d4;
    --btn-bg:#0a0a0a;
    --btn-text:#ffffff;
    --btn-hover:#262626;
    --nav-bg:rgba(255,255,255,0.85);
    --nav-border:rgba(0,0,0,0.06);
    --grid-line:rgba(0,0,0,0.04);
    --glow:rgba(0,0,0,0.02);
    --focus-ring:rgba(0,0,0,0.08);
    --focus-glow:rgba(0,0,0,0.02);
    --scrollbar-track:#f5f5f5;
    --scrollbar-thumb:#d4d4d4;
    --star-fill:#404040;
}
[data-theme="dark"]{
    --bg:#000000;
    --bg-card:#0a0a0a;
    --bg-input:#0a0a0a;
    --bg-hover:#080808;
    --border:#171717;
    --border-hover:#262626;
    --border-subtle:#111111;
    --text:#ffffff;
    --text-2:#d4d4d4;
    --text-3:#737373;
    --text-4:#525252;
    --text-5:#404040;
    --btn-bg:#ffffff;
    --btn-text:#000000;
    --btn-hover:#e5e5e5;
    --nav-bg:rgba(0,0,0,0.85);
    --nav-border:rgba(255,255,255,0.05);
    --grid-line:rgba(255,255,255,0.02);
    --glow:rgba(255,255,255,0.03);
    --focus-ring:rgba(255,255,255,0.1);
    --focus-glow:rgba(255,255,255,0.03);
    --scrollbar-track:#0a0a0a;
    --scrollbar-thumb:#333333;
    --star-fill:#d4d4d4;
}
*{
    margin:0;
    padding:0;
    box-sizing:border-box
}
html{
    scroll-behavior:smooth;
}
body{
    font-family:'Inter',sans-serif;
    background-color:var(--bg);
    color:var(--text)
}

/* 
   =========================================
   UTILITIES
   =========================================
*/
.bg-t{
    background-color:var(--bg);
}
.bg-t-card{
    background-color:var(--bg-card);
}
.bg-t-input{
    background-color:var(--bg-input);
}
.bg-t-hover{
    background-color:var(--bg-hover);
}
.c-t{
    color:var(--text);
}
.c-t2{
    color:var(--text-2);
}
.c-t3{
    color:var(--text-3);
}
.c-t4{
    color:var(--text-4);
}
.c-t5{
    color:var(--text-5);
}
.b-t{
    border-color:var(--border);
}
.b-t:hover{
    border-color:var(--border-hover);
}
.b-t-subtle{
    border-color:var(--border-subtle);
}
.btn-p{
    background-color:var(--btn-bg);
    color:var(--btn-text);
}
.btn-p:hover{
    background-color:var(--btn-hover);
}
::-webkit-scrollbar{
    width:6px;
}
::-webkit-scrollbar-track{
    background:var(--scrollbar-track);
}
::-webkit-scrollbar-thumb{
    background:var(--scrollbar-thumb);
    border-radius:3px;
}
.fade-up{
    opacity:0;
    transform:translateY(20px);
    transition:opacity .6s ease,transform .6s ease;
}
.fade-up.visible{
    opacity:1;
    transform:translateY(0);
}
[data-theme="dark"] .icon-sun{
    display:block;
}
[data-theme="dark"] .icon-moon{
    display:none;
}
[data-theme="light"] .icon-sun{
    display:none;
}
[data-theme="light"] .icon-moon{
    display:block;
}
.domain-name{
    font-family:'Inter', monospace;
    letter-spacing:-0.02em;
}

/* 
   =========================================
   TOAST
   =========================================
*/
.toast{
    transform:translateY(100px);
    opacity:0;
    transition:all .4s ease;
}
.toast.show{
    transform:translateY(0);
    opacity:1;
}

/* 
   =========================================
   HAMBURGER ICON
   =========================================
*/
#menu-toggle{
    position:relative;
    width:36px;height:36px;
    display:flex;align-items:center;justify-content:center;
    border-radius:8px;
    transition:background .15s ease;
}
#menu-toggle:hover{
    background:var(--bg-hover);
}
#menu-toggle .menu-icon-closed,
#menu-toggle .menu-icon-open{
    position:absolute;
    transition:opacity .2s ease,transform .25s cubic-bezier(.2,.7,.2,1);
}
#menu-toggle .menu-icon-open{
    opacity:0;
    transform:rotate(-90deg) scale(.7);
}
#menu-toggle[aria-expanded="true"] .menu-icon-closed{
    opacity:0;
    transform:rotate(90deg) scale(.7);
}
#menu-toggle[aria-expanded="true"] .menu-icon-open{
    opacity:1;
    transform:rotate(0deg) scale(1);
}

/* 
   =========================================
   MOBILE MENU PANEL
   =========================================
*/
#mobile-menu{
    position:fixed;
    inset:0;
    z-index:60;
    display:none;
}
#mobile-menu.open{
    display:block;
}
#mobile-menu-backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0.4);
    opacity:0;
    transition:opacity .25s ease;
}
#mobile-menu.open #mobile-menu-backdrop{
    opacity:1;
}
#mobile-menu-panel{
    position:absolute;
    top:64px;
    left:0;right:0;
    background:var(--bg);
    border-bottom:1px solid var(--border);
    transform:translateY(-12px);
    opacity:0;
    transition:transform .25s cubic-bezier(.2,.7,.2,1),opacity .2s ease;
    max-height:calc(100vh - 64px);
    overflow-y:auto;
}
#mobile-menu.open #mobile-menu-panel{
    transform:translateY(0);
    opacity:1;
}
.mobile-menu-link{
    display:block;
    padding:12px 4px;
    font-size:14px;
    color:var(--text-2);
    text-decoration:none;
    border-bottom:1px solid var(--border-subtle);
    transition:color .15s ease;
}
.mobile-menu-link:last-child{
    border-bottom:none;
}
.mobile-menu-link:hover{
    color:var(--text);
}
/* 
   =========================================
   MOBILE STICKY NAV + HIDE HAMBURGER ON LARGER SCREENS
   =========================================
*/
@media(max-width:767px){
    #navbar{
        position:sticky;
        top:0;
        z-index:65;
    }
}
@media(min-width:768px){
    #menu-toggle{
        display:none;
    }
    #mobile-menu{
        display:none!important;
    }
}

/* 
   =========================================
   SUBMIT MODAL
   =========================================
*/
.modal-overlay{
    position:fixed;
    inset:0;
    z-index:80;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
}
.modal-overlay.open{
    display:flex;
}
.modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0.55);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    opacity:0;
    transition:opacity .25s ease;
}
.modal-overlay.open .modal-backdrop{
    opacity:1;
}
.modal-card{
    position:relative;
    width:100%;
    max-width:520px;
    max-height:90vh;
    overflow-y:auto;
    background:var(--bg);
    border:1px solid var(--border);
    border-radius:16px;
    box-shadow:0 24px 60px -12px rgba(0,0,0,0.5);
    transform:translateY(16px) scale(0.98);
    opacity:0;
    transition:transform .28s cubic-bezier(.2,.7,.2,1),opacity .28s ease;
}
.modal-overlay.open .modal-card{
    transform:translateY(0) scale(1);
    opacity:1;
}
@media(max-width:640px){
    .modal-overlay{
        align-items:flex-end;
        padding:0;
    }
    .modal-card{
        max-width:100%;
        max-height:92vh;
        border-radius:16px 16px 0 0;
        border-bottom:none;
        transform:translateY(100%);
    }
    .modal-overlay.open .modal-card{
        transform:translateY(0);
    }
}
.form-label{
    display:block;
    font-size:12px;
    font-weight:500;
    color:var(--text-2);
    margin-bottom:6px;
    letter-spacing:-0.01em;
}
.form-input{
    width:100%;
    background:var(--bg-input);
    border:1px solid var(--border);
    border-radius:10px;
    padding:10px 12px;
    font-size:13px;
    color:var(--text);
    outline:none;
    transition:border-color .15s ease,background .15s ease;
    font-family:inherit;
}
.form-input::placeholder{
    color:var(--text-4);
}
.form-input:focus{
    border-color:var(--border-hover);
}
.form-input:disabled{
    opacity:0.5;
    cursor:not-allowed;
}
.form-hint{
    font-size:11px;
    color:var(--text-4);
    margin-top:6px;
    line-height:1.5;
}
.hp-field{
    position:absolute;
    left:-9999px;
    width:1px;
    height:1px;
    overflow:hidden;
}
.lto-fields{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease,margin-top .3s ease;
    margin-top:0;
}
.lto-fields.on{
    max-height:180px;
    margin-top:12px;
}

.success-state{
    display:none;
    padding:8px 4px 4px;
}
.success-state.on{
    display:block;
}
body.modal-open{
    overflow:hidden;
}
.f-check{
    display:flex;
    align-items:center;
    gap:8px;
    cursor:pointer;
    padding:4px 0;
}
.f-check input{
    display:none;
}
.f-check .box{
    width:16px;
    height:16px;
    min-width:16px;
    border-radius:4px;
    border:1.5px solid var(--border-hover);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:all .15s ease;
    background:transparent;
}
.f-check input:checked+.box{
    background:var(--btn-bg);
    border-color:var(--btn-bg);
}
.f-check input:checked+.box svg{
    opacity:1;
}
.f-check .box svg{
    opacity:0;
    transition:opacity .15s ease;
}
.f-toggle{
    width:36px;
    height:20px;
    border-radius:10px;
    background:var(--border-hover);
    cursor:pointer;
    position:relative;
    transition:background .2s ease;
    flex-shrink:0;
}
.f-toggle::after{
    content:'';
    position:absolute;
    top:2px;
    left:2px;
    width:16px;
    height:16px;
    border-radius:50%;
    background:var(--bg);
    transition:transform .2s ease;
}
.f-toggle.on{
    background:var(--btn-bg);
}
.f-toggle.on::after{
    transform:translateX(16px);
}
#navbar{
    background:transparent;
    border-bottom:1px solid transparent;
}
#navbar.scrolled,
#navbar.menu-open{
    background:var(--nav-bg);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-bottom-color:var(--nav-border);
}

/* 
   =========================================
   Home PAGE
   =========================================
*/
    
/* HERO */
.grid-bg{
    background-image: linear-gradient(var(--grid-line) 1px,transparent 1px),
                      linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
    background-size:60px 60px;
}
.search-glow:focus-within{
    box-shadow:0 0 0 1px var(--focus-ring),0 0 40px var(--focus-glow);
}
@keyframes pulse-dot{
    0%,100%{opacity:1}50%{opacity:.4};
}
.pulse-dot{
    animation:pulse-dot 2s ease-in-out infinite;
}
@keyframes ticker{
    0%{
        transform:translateX(0);
    }
    100%{
        transform:translateX(-50%)};
    }
.ticker-track{
    animation:ticker 30s linear infinite;
    will-change:transform;
}
.ticker-track:hover{
    animation-play-state:paused;
}
/* STAGGERED ENTRANCE */
.stagger>*:nth-child(1){
    transition-delay:0ms;
}
.stagger>*:nth-child(2){
    transition-delay:80ms;
}
.stagger>*:nth-child(3){
    transition-delay:160ms;
}
.stagger>*:nth-child(4){
    transition-delay:240ms;
}
.stagger>*:nth-child(5){
    transition-delay:320ms;
}
.stagger>*:nth-child(6){
    transition-delay:400ms;
}
.stagger>*:nth-child(7){
    transition-delay:480ms;
}
.stagger>*:nth-child(8){
    transition-delay:560ms;
}
/* FEATURED DOMAINS */
.cat-filter.active{
    background-color:var(--btn-bg)!important;
    color:var(--btn-text)!important;
    border-color:var(--btn-bg)!important;
}
/* FAQ */
.faq-answer{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease,padding .3s ease;
}
.faq-item.active .faq-answer{
    max-height:200px;
    padding-top:12px;
}
.faq-item.active .faq-icon{
    transform:rotate(45deg);
}
.faq-icon{
    transition:transform .2s ease;
}
/*  SKELETON LOADING */
.skeleton{
    background:var(--bg-hover);
    border-radius:6px;
    animation:skeletonPulse 1.6s ease-in-out infinite;
}
@keyframes skeletonPulse{
    0%,
    100%{
        opacity:.6
    }
    50%{
        opacity:1
    };
}

/* 
   =========================================
   DOMAINS PAGE
   =========================================
*/

/* FILTER SIDEBAR */
#filter-sidebar{
    transition:transform .3s ease;
}
.mobile-bar{
    display:none;
}
@media(max-width:1023px){
    #filter-sidebar{
        display:block;
        position:fixed;
        inset:0;
        z-index:70;
        transform:translateX(-100%);
        visibility:hidden;
        transition:transform .3s ease,visibility .3s ease;
        overflow-y:auto;
        background:var(--bg);
    }
    #filter-sidebar.open{
        transform:translateX(0);
        visibility:visible;
    }
    #filter-sidebar .sidebar-inner{
        min-height:100%;
        display:flex;
        flex-direction:column;
    }
    #filter-sidebar .filter-scroll{
        flex:1;
        overflow-y:auto;
        padding-bottom:80px;
    }
    #filter-sidebar .mobile-bar{
        position:sticky;
        bottom:0;
        background:var(--bg);
        border-top:1px solid var(--border);
        padding:16px 24px;
        display:flex;
        gap:12px;
    }
}
@media(min-width:1024px){
    #filter-sidebar{
        position:sticky;
        top:5rem;
        height:calc(100vh - 5rem);
        overflow-y:auto;
        align-self:flex-start;
        scrollbar-width:thin;
        display:block;
        visibility:visible;
        transform:none;
    }
}
/*FILTER ACCORDION */
.filter-body{
    max-height:500px;
    overflow:hidden;
    transition:max-height .3s ease;
}
.filter-section.collapsed .filter-body{
    max-height:0!important;
}
.filter-chevron{
    transition:transform .2s ease;
}
.filter-section.collapsed .filter-chevron{
    transform:rotate(-90deg);
}
.filter-body.loading .c-t4{
    opacity:.35;
}
.filter-body{
    transition:opacity .15s ease;
}
/* SORT DROPDOWN */
.sort-dd{
    display:none;
    position:absolute;
    right:0;
    top:calc(100% + 6px);
    min-width:220px;
    z-index:40;
    border-radius:12px;
    overflow:hidden;
}
.sort-dd.open{
    display:block;
}
.sort-dd button{
    width:100%;
    text-align:left;
    padding:10px 16px;
    font-size:13px;
    transition:background .1s ease;
}
.sort-dd button:hover{
    background:var(--bg-hover);
}
.sort-dd button.active{
    color:var(--text);
    font-weight:500;
}
/* ACTIVE FILTER TAGS */
.af-tag{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 10px 4px 12px;
    border-radius:20px;
    font-size:11px;
    font-weight:500;
    cursor:default;
    white-space:nowrap;
    border:1px solid var(--border);
    color:var(--text-2);
    background:var(--bg-card);
    transition:all .15s ease;
}
.af-tag button{
    cursor:pointer;
    opacity:0.5;
    transition:opacity .15s ease;
    display:flex;
    align-items:center;
}
.af-tag button:hover{
    opacity:1;
}
/* SKELETON LOADING */
.skeleton{
    background:var(--bg-hover);
    border-radius:6px;
    animation:skeletonPulse 1.6s ease-in-out infinite;
}
@keyframes skeletonPulse{
    0%,
    100%{
        opacity:.6;
    }
    50%{
        opacity:1;
    }
}

/* 
   =========================================
   SINGLE DOMAIN PAGE
   =========================================
*/
 
/* TAB INDICATOR */
.tab-btn{
    position:relative
}
.tab-btn::after{
    content:'';
    position:absolute;
    bottom:-1px;
    left:0;
    right:0;
    height:1px;
    background:transparent;
    transition:background .2s ease;
}
.tab-btn.active::after{
    background:var(--text);
}
.tab-panel{
    display:none;
}
.tab-panel.active{
    display:block;
}
/* OFFER PANEL */
.offer-panel{
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease,opacity .35s ease;
    opacity:0;
}
.offer-panel.open{
    max-height:200px;
    opacity:1;
}
/* METRIC BAR */
.metric-bar{
    transition:width .8s ease;
}
/* WATCHLIST HEART */
.watchlist-btn.active svg{
    fill:var(--text);
}
/* PRICE HISTORY */
.ph-bar{
    transition:opacity .15s ease;
}
.ph-bar:hover{
    opacity:0.8;
}

/* 
   =========================================
   BLOG PAGE
   =========================================
*/
.post-img{
    position:relative;
    background:linear-gradient(135deg,var(--bg-hover) 0%,var(--bg-card) 100%);
    overflow:hidden;
}
.post-img::before{
    content:'';
    position:absolute;
    inset:0;
    background-image: linear-gradient(var(--grid-line) 1px,transparent 1px),
                      linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
    background-size:24px 24px;
    opacity:.7;
    pointer-events:none;
}
.post-img i{
    position:relative;
    z-index:1;
    transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.blog-cat-filter.active{
    background-color:var(--btn-bg)!important;
    color:var(--btn-text)!important;
    border-color:var(--btn-bg)!important;
}
.blog-card:hover .post-img i{
    transform:translateY(-6px);
}
.blog-card:hover .blog-title{
    opacity:.75;
}

/* 
   =========================================
   SINGLE POST PAGE
   =========================================
*/
    
.post-img{
    position:relative;
    background:linear-gradient(135deg,var(--bg-hover) 0%,var(--bg-card) 100%);
    overflow:hidden;
}
.post-img::before{
    content:'';
    position:absolute;
    inset:0;
    background-image: linear-gradient(var(--grid-line) 1px,transparent 1px),
                       linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
    background-size:24px 24px;
    opacity:.7;
    pointer-events:none;
}
.post-img i{
    position:relative;
    z-index:1;
}
/* READING PROGRESS BAR */
#reading-progress{
    position:fixed;
    top:0;
    left:0;
    height:2px;
    z-index:70;
    background:var(--text);
    width:0%;
    transition:width .1s linear;
    pointer-events:none;
}
/* POST BODY */
.article-body{
    font-size:16px;
    line-height:1.75;
    color:var(--text-2);
}
.article-body p{
    margin-bottom:1.5em;
}
.article-body h2{
    font-size:1.5rem;
    font-weight:500;
    line-height:1.3;
    color:var(--text);
    margin:2.5em 0 1em;
    letter-spacing:-0.01em;
}
.article-body h3{
    font-size:1.15rem;
    font-weight:500;
    line-height:1.35;
    color:var(--text);
    margin:2em 0 .75em;
    letter-spacing:-0.01em;
}
.article-body ul,
.article-body ol{
    margin:0 0 1.5em 1.5em;
    padding-left:.5em;
}
.article-body li{
    margin-bottom:.6em;
}
.article-body li::marker{
    color:var(--text-4);
}
.article-body blockquote{
    border-left:2px solid var(--border-hover);
    padding:.25em 0 .25em 1.5em;
    margin:2em 0;
    font-size:1.1rem;
    line-height:1.6;
    color:var(--text);
    font-style:italic;
}
.article-body strong{
    color:var(--text);
    font-weight:500;
}
.article-body a{
    color:var(--text);
    text-decoration:underline;
    text-underline-offset:3px;
    text-decoration-color:var(--text-4);
    transition:text-decoration-color .15s ease;
}
.article-body a:hover{
    text-decoration-color:var(--text);
}
.article-body code{
    font-family:'Inter',monospace;
    font-size:.9em;
    background:var(--bg-hover);
    padding:.15em .4em;
    border-radius:4px;
    color:var(--text);
}
/* SHARE BUTTONS */
.share-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 14px;
    border-radius:8px;
    border:1px solid var(--border);
    background:transparent;
    color:var(--text-3);
    font-size:12px;
    font-weight:500;
    cursor:pointer;
    transition:all .15s ease;
}
.share-btn:hover{
    color:var(--text);
    border-color:var(--border-hover);
}
/* TABLE OF CONTENTS links */
.toc-link{
    display:block;
    padding:6px 0 6px 14px;
    font-size:12px;
    line-height:1.4;
    color:var(--text-4);
    border-left:1px solid var(--border);
    text-decoration:none;
    transition:all .15s ease;
}
.toc-link:hover{
    color:var(--text-2);
    border-left-color:var(--border-hover);
}
.toc-link.active{
    color:var(--text);
    border-left-color:var(--text);
    font-weight:500;
}