:root{
    /* Theme variables (overridable via theme presets) */
    --nc-bg: #ffffff;
    --nc-text: #1f2937;
    --nc-accent: #3b82f6;
    --nc-muted: #6b7280;
    --nc-border: rgba(0,0,0,0.1);
    --nc-hover: rgba(59,130,246,0.1);
    --nc-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --nc-item-padding: 0 24px 0 0;
    --nc-height: 56px;
    --nc-radius: 0;
    --nc-shadow: 0 1px 3px rgba(0,0,0,0.06);
    --nc-transition: all 0.3s ease;
}

/* Theme presets */
.nc-theme-light {
    --nc-bg:#f9fafb;
    --nc-text:#111827;
    --nc-accent:#3b82f6;
    --nc-muted:#6b7280;
    --nc-border:rgba(0,0,0,0.1);
    --nc-hover:rgba(59,130,246,0.1);
}
.nc-theme-minimal {
    --nc-bg:#ffffff;
    --nc-text:#1f2937;
    --nc-accent:#6366f1;
    --nc-muted:#9ca3af;
    --nc-border:rgba(0,0,0,0.05);
    --nc-hover:rgba(99,102,241,0.08);
    --nc-shadow: none;
}
.nc-theme-dark {
    --nc-bg:#111827;
    --nc-text:#f9fafb;
    --nc-accent:#60a5fa;
    --nc-muted:#d1d5db;
    --nc-border:rgba(255,255,255,0.1);
    --nc-hover:rgba(96,165,250,0.15);
    --nc-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.nc-theme-ocean {
    --nc-bg:#ecfeff;
    --nc-text:#164e63;
    --nc-accent:#06b6d4;
    --nc-muted:#0e7490;
    --nc-border:rgba(6,182,212,0.2);
    --nc-hover:rgba(6,182,212,0.1);
    --nc-shadow: 0 1px 2px rgba(6,182,212,0.1);
}

/* Container */
.nc-ticker{
    font-family:var(--nc-font);
    background:var(--nc-bg);
    color:var(--nc-text);
    border-bottom:1px solid var(--nc-border);
    box-shadow:var(--nc-shadow);
    height:var(--nc-height);
    display:flex;
    align-items:center;
    z-index:9999;
    overflow:hidden !important;
    position:relative;
    width:100%;
}

/* Prevent any scrollbars globally */
.nc-ticker,
.nc-ticker *{
    scrollbar-width:none !important;
    -ms-overflow-style:none !important;
}
.nc-ticker::-webkit-scrollbar,
.nc-ticker *::-webkit-scrollbar{
    display:none !important;
    width:0 !important;
    height:0 !important;
}

/* Fixed variant */
.nc-ticker--fixed{
    position:fixed;
    left:0;
    right:0;
    top:0;
    border-radius:0;
    border-left:none;
    border-right:none;
    border-top:none;
}

/* inner layout */
.nc-ticker__inner{
    width:100%;
    display:flex;
    align-items:center;
    height:100%;
    overflow:hidden !important;
    position:relative;
    flex:1;
}

/* list: contains ticker items */
.nc-ticker__list{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    align-items:center;
    white-space:nowrap;
    overflow:hidden !important;
    position:relative;
    flex-shrink:0;
}

.nc-ticker__item{
    white-space:nowrap;
    padding:var(--nc-item-padding);
    font-size:15px;
    font-weight:400;
    display:inline-block;
    flex-shrink:0;
    line-height:var(--nc-height);
}
.nc-ticker__item a{
    text-decoration:none;
    color:var(--nc-text);
    white-space:nowrap;
    display:inline-block;
    transition:color 0.2s ease;
}
.nc-ticker__item a:hover{
    color:var(--nc-accent);
}
.nc-ticker__item::after{
    content:"•";
    margin-left:24px;
    color:var(--nc-muted);
    font-weight:300;
}

/* pause button - positioned absolutely to avoid layout conflict */
.nc-ticker__pause{
    position:absolute;
    right:16px;
    top:50%;
    transform:translateY(-50%);
    background:var(--nc-accent);
    border:none;
    padding:8px 16px;
    border-radius:4px;
    cursor:pointer;
    font-size:13px;
    font-weight:500;
    color:#ffffff;
    transition:all 0.2s ease;
    z-index:10;
    box-shadow:0 2px 4px rgba(0,0,0,0.1);
}
.nc-ticker__pause:hover{
    background:var(--nc-accent);
    opacity:0.9;
    box-shadow:0 4px 8px rgba(0,0,0,0.15);
}
.nc-ticker__pause:active{
    transform:translateY(-50%) scale(0.95);
}

/* just added highlight */
.nc-ticker__item.nc-just-added{
    animation: nc-fade-in 0.6s ease-out;
}
.nc-ticker__item.nc-just-added a{
    color:var(--nc-accent);
    font-weight:500;
}

/* animations */

/* MARQUEE ANIMATION - Continuous smooth scroll */
.nc-animation-marquee .nc-ticker__inner{
    padding-right:80px;
}
.nc-animation-marquee .nc-ticker__list {
    display:inline-flex;
    padding-left:100%;
    animation: nc-marquee-scroll 30s linear infinite;
}
@keyframes nc-marquee-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* SLIDE ANIMATION - Slide from right to left */
.nc-animation-slide .nc-ticker__inner{
    padding-right:80px;
}
.nc-animation-slide .nc-ticker__list {
    display:inline-flex;
    animation: nc-slide-scroll 25s linear infinite;
}
@keyframes nc-slide-scroll {
    0% { transform: translateX(100%); }
    100% { transform: translateX(-100%); }
}

/* FADE ANIMATION - Crossfade one item at a time */
.nc-animation-fade .nc-ticker__inner{
    padding-right:80px;
    padding-left:16px;
}
.nc-animation-fade .nc-ticker__list {
    display:block;
    position:relative;
    width:100%;
    height:var(--nc-height);
}
.nc-animation-fade .nc-ticker__item {
    opacity:0;
    position:absolute;
    left:0;
    top:0;
    width:100%;
    animation: nc-fade-in-out 16s ease-in-out infinite;
}
.nc-animation-fade .nc-ticker__item:nth-child(1) { animation-delay: 0s; }
.nc-animation-fade .nc-ticker__item:nth-child(2) { animation-delay: 4s; }
.nc-animation-fade .nc-ticker__item:nth-child(3) { animation-delay: 8s; }
.nc-animation-fade .nc-ticker__item:nth-child(4) { animation-delay: 12s; }
.nc-animation-fade .nc-ticker__item:nth-child(n+5) { display:none; }
.nc-animation-fade .nc-ticker__item::after { display:none; }
@keyframes nc-fade-in-out {
    0% { opacity:0; transform:translateX(-30px); }
    6.25% { opacity:1; transform:translateX(0); }
    25% { opacity:1; transform:translateX(0); }
    31.25% { opacity:0; transform:translateX(30px); }
    100% { opacity:0; transform:translateX(30px); }
}

/* VERTICAL ANIMATION - Vertical scrolling ticker */
.nc-animation-vertical .nc-ticker {
    height:auto;
    min-height:150px;
    max-height:200px;
}
.nc-animation-vertical .nc-ticker__inner{
    padding-right:80px;
}
.nc-animation-vertical .nc-ticker__list {
    flex-direction:column;
    align-items:flex-start;
    animation: nc-vertical-slide 20s linear infinite;
}
.nc-animation-vertical .nc-ticker__item {
    display:block;
    width:100%;
    padding:8px 0;
    line-height:1.6;
}
.nc-animation-vertical .nc-ticker__item::after { display:none; }
@keyframes nc-vertical-slide {
    0% { transform: translateY(0); }
    100% { transform: translateY(-100%); }
}

/* 3D ANIMATION - 3D rotating effect */
.nc-animation-ticker-3d .nc-ticker__inner{
    padding-right:80px;
}
.nc-animation-ticker-3d .nc-ticker__list {
    perspective:1000px;
    transform-style:preserve-3d;
    display:inline-flex;
    padding-left:100%;
    animation: nc-3d-scroll 35s linear infinite;
}
.nc-animation-ticker-3d .nc-ticker__item {
    transform-style:preserve-3d;
    animation: nc-3d-wobble 3s ease-in-out infinite;
}
.nc-animation-ticker-3d .nc-ticker__item:nth-child(2n) { animation-delay: -1s; }
.nc-animation-ticker-3d .nc-ticker__item:nth-child(3n) { animation-delay: -2s; }
@keyframes nc-3d-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
@keyframes nc-3d-wobble {
    0%, 100% { transform: rotateY(0deg); }
    25% { transform: rotateY(-3deg); }
    50% { transform: rotateY(0deg); }
    75% { transform: rotateY(3deg); }
}

/* fade in for appended items */
@keyframes nc-fade-in{
    from { opacity:0; }
    to { opacity:1; }
}

/* reduced motion respects */
@media (prefers-reduced-motion: reduce){
    .nc-animation-marquee .nc-ticker__list,
    .nc-animation-slide .nc-ticker__list,
    .nc-animation-fade .nc-ticker__item,
    .nc-animation-vertical .nc-ticker__list,
    .nc-animation-ticker-3d .nc-ticker__list,
    .nc-animation-ticker-3d .nc-ticker__item {
        animation:none !important;
    }
}

/* paused state: stops CSS animations */
.nc-ticker.nc-paused .nc-ticker__list,
.nc-ticker.nc-paused .nc-ticker__item {
    animation-play-state:paused !important;
}
.nc-ticker.nc-paused {
    opacity:0.7;
}

/* dragging state */
.nc-ticker__list.nc-dragging {
    cursor:grabbing;
    scroll-behavior: auto;
    user-select:none;
    -webkit-user-select:none;
    -ms-user-select:none;
}


/* Responsive adjustments */
@media (max-width: 768px) {
    .nc-ticker{
        --nc-height: 48px;
        --nc-item-padding: 0 16px 0 0;
    }
    .nc-ticker__item{
        font-size:14px;
    }
    .nc-ticker__pause{
        right:8px;
        padding:6px 12px;
        font-size:12px;
    }
}
