.vim-widget{width:100%;--vim-gap:20px;--vim-cols:4}
.vim-widget *,.vim-widget *::before,.vim-widget *::after{box-sizing:border-box}

/* ---------- grid / masonry / slider ---------- */
.vim-widget .vim-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.vim-widget .vim-item{position:relative;overflow:hidden;min-width:0;background:#fff;border-radius:18px;box-shadow:0 10px 30px rgba(15,23,42,.10);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease}
.vim-widget .vim-item.vim-hidden{display:none}

.vim-widget.vim-layout-masonry .vim-grid{display:block!important;column-count:var(--vim-cols);column-gap:var(--vim-gap)}
.vim-widget.vim-layout-masonry .vim-item{break-inside:avoid;margin-bottom:var(--vim-gap)}
.vim-widget.vim-layout-masonry .vim-media{aspect-ratio:auto!important;height:auto!important}
.vim-widget.vim-layout-masonry .vim-media img{height:auto!important;position:static!important}

.vim-widget.vim-layout-slider .vim-grid{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--vim-cols) - 1) * var(--vim-gap)) / var(--vim-cols));overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:8px 2px 30px;margin:-8px -2px -30px}
.vim-widget.vim-layout-slider .vim-grid::-webkit-scrollbar{display:none}
.vim-widget.vim-layout-slider .vim-item{scroll-snap-align:start}

/* featured first image */
@media(min-width:768px){
.vim-widget.vim-featured .vim-grid{grid-auto-flow:dense}
.vim-widget.vim-featured .vim-item.vim-feat{grid-column:span 2;grid-row:span 2}
.vim-widget.vim-featured .vim-feat .vim-link{display:flex;flex-direction:column;height:100%}
.vim-widget.vim-featured .vim-feat .vim-media{flex:1;aspect-ratio:auto;height:auto;min-height:0}
.vim-widget.vim-featured .vim-feat .vim-media img{position:absolute;inset:0;width:100%;height:100%}
}

/* ---------- card ---------- */
.vim-widget .vim-link{display:block;position:relative;color:inherit;text-decoration:none;line-height:0;outline:0}
.vim-widget .vim-link[data-full]{cursor:zoom-in}
.vim-widget .vim-link:focus-visible{box-shadow:inset 0 0 0 3px #4f46e5}
.vim-widget .vim-media{position:relative;overflow:hidden;width:100%;aspect-ratio:4/5;background:#f1f3f9}
.vim-widget .vim-media img{display:block;width:100%;max-width:none;height:100%;object-fit:cover;object-position:center;transition:transform .7s cubic-bezier(.2,.7,.2,1),opacity .35s ease,filter .35s ease}
.vim-widget .vim-media::after{content:"";position:absolute;inset:0;z-index:1;background:rgba(15,23,42,.45);opacity:0;transition:opacity .35s ease;pointer-events:none}

/* hover zoom icon */
.vim-widget.vim-icon .vim-link[data-full] .vim-media::before{content:"";position:absolute;z-index:2;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f172a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E") center/24px no-repeat;box-shadow:0 12px 32px rgba(0,0,0,.28);opacity:0;transform:scale(.5);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.vim-widget.vim-icon .vim-item:hover .vim-media::before{opacity:1;transform:scale(1)}
@media(hover:none){.vim-widget.vim-icon .vim-media::before{display:none}}

/* ---------- category badge ---------- */
.vim-widget .vim-badge{position:absolute;z-index:3;top:14px;left:14px;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;font-size:12px;font-weight:700;line-height:1;letter-spacing:.02em;white-space:nowrap;color:#fff;background:var(--vim-b,#4f46e5);box-shadow:0 6px 16px rgba(15,23,42,.22)}
.vim-widget .vim-badge[data-cat="gulf"]{--vim-b:#f59e0b}
.vim-widget .vim-badge[data-cat="russia"]{--vim-b:#2563eb}
.vim-widget .vim-badge[data-cat="europe"]{--vim-b:#7c3aed}
.vim-widget .vim-badge[data-cat="upcoming"]{--vim-b:#10b981}
.vim-badge-tr .vim-badge{left:auto;right:14px}
.vim-badge-bl .vim-badge{top:auto;bottom:14px}
.vim-badge-br .vim-badge{top:auto;left:auto;bottom:14px;right:14px}
.vim-bs-glass .vim-badge{background:rgba(255,255,255,.22);color:#fff;border:1px solid rgba(255,255,255,.45);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.vim-bs-dark .vim-badge{background:rgba(15,23,42,.78);color:#fff}
.vim-bs-light .vim-badge{background:#fff;color:#0f172a}
.vim-bs-light .vim-badge::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--vim-b,#4f46e5)}

/* ---------- titles ---------- */
.vim-widget .vim-title{line-height:1.35;font-size:15px;font-weight:600;color:#0f172a;padding:14px 16px;text-align:left;word-break:break-word}
.vim-widget.vim-cap-overlay .vim-title,
.vim-widget.vim-cap-hover .vim-title{position:absolute;z-index:3;left:0;right:0;bottom:0;color:#fff;padding:56px 18px 18px;background:linear-gradient(to top,rgba(15,23,42,.82),rgba(15,23,42,0))}
.vim-widget.vim-cap-hover .vim-title{opacity:0;transform:translateY(14px);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.7,.2,1)}
.vim-widget.vim-cap-hover .vim-item:hover .vim-title{opacity:1;transform:none}
@media(hover:none){.vim-widget.vim-cap-hover .vim-title{opacity:1;transform:none}}

/* ---------- hover effects ---------- */
.vim-hover-zoom .vim-item:hover .vim-media img,
.vim-hover-zoomlift .vim-item:hover .vim-media img{transform:scale(1.08)}
.vim-hover-lift .vim-item:hover,
.vim-hover-zoomlift .vim-item:hover{transform:translateY(-8px);box-shadow:0 24px 48px rgba(15,23,42,.20)}
.vim-hover-fade .vim-item:hover .vim-media img{opacity:.72}
.vim-hover-grayscale .vim-media img{filter:grayscale(100%)}
.vim-hover-grayscale .vim-item:hover .vim-media img{filter:grayscale(0)}
.vim-hover-overlay .vim-item:hover .vim-media::after{opacity:1}

/* ---------- animate on scroll ---------- */
.vim-widget .vim-link{transition:opacity .7s ease var(--d,0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.vim-widget.vim-ready .vim-item:not(.vim-in) .vim-link{opacity:0;transform:translateY(24px)}
.vim-widget.vim-ready.vim-anim-fade .vim-item:not(.vim-in) .vim-link{transform:none}
.vim-widget.vim-ready.vim-anim-zoom .vim-item:not(.vim-in) .vim-link{transform:scale(.9)}
@keyframes vimPop{from{opacity:0;transform:translateY(16px) scale(.97)}}
.vim-widget.vim-filtered .vim-item{animation:vimPop .5s cubic-bezier(.2,.7,.2,1) backwards}

/* ---------- filter tabs ---------- */
.vim-widget .vim-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 30px}
.vim-widget .vim-tab{cursor:pointer;display:inline-flex;align-items:center;gap:9px;margin:0;padding:11px 20px;border:1px solid #e4e8f1;border-radius:999px;background:#fff;color:#475569;font-size:14px;font-weight:600;line-height:1;box-shadow:0 2px 6px rgba(15,23,42,.05);transition:all .25s ease;text-transform:none;letter-spacing:0}
.vim-widget .vim-tab span{display:inline-block;padding:3px 9px;border-radius:999px;background:#eef0f7;color:#64748b;font-size:11.5px;font-weight:700;line-height:1.2;transition:all .25s ease}
.vim-widget .vim-tab:hover{color:#0f172a;border-color:#cbd2e3;transform:translateY(-2px)}
.vim-widget .vim-tab.on{background:linear-gradient(135deg,#4f46e5,#7c3aed);border-color:transparent;color:#fff;box-shadow:0 10px 22px rgba(79,70,229,.32)}
.vim-widget .vim-tab.on span{background:rgba(255,255,255,.22);color:#fff}
.vim-widget .vim-tab:focus-visible{outline:3px solid rgba(79,70,229,.35);outline-offset:2px}

/* ---------- slider arrows ---------- */
.vim-widget .vim-stage{position:relative}
.vim-widget .vim-nav{position:absolute;z-index:6;top:50%;width:48px;height:48px;margin:-24px 0 0;padding:0 0 3px;border:0;border-radius:50%;background:#fff;color:#0f172a;font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 28px rgba(15,23,42,.22);transition:opacity .25s ease,transform .25s ease}
.vim-widget .vim-nav:hover{transform:scale(1.08);background:#fff;color:#4f46e5}
.vim-widget .vim-nav-prev{left:-14px}
.vim-widget .vim-nav-next{right:-14px}
.vim-widget .vim-nav[disabled]{opacity:0;pointer-events:none}
@media(max-width:767px){.vim-widget .vim-nav{width:40px;height:40px;font-size:26px}.vim-widget .vim-nav-prev{left:6px}.vim-widget .vim-nav-next{right:6px}}

/* ---------- load more ---------- */
.vim-widget .vim-more-wrap{margin-top:36px;text-align:center}
.vim-widget .vim-more{cursor:pointer;border:0;padding:15px 40px;border-radius:999px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-size:15px;font-weight:600;line-height:1.2;box-shadow:0 10px 24px rgba(79,70,229,.30);transition:transform .25s ease,box-shadow .25s ease}
.vim-widget .vim-more:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(79,70,229,.38);color:#fff}

/* ---------- lightbox ---------- */
.vim-lb{position:fixed;inset:0;z-index:999999;background:rgba(8,12,24,.94);display:none;align-items:center;justify-content:center;padding:56px 76px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.vim-lb.on{display:flex;animation:vimFade .25s ease}
@keyframes vimFade{from{opacity:0}}
.vim-lb figure{margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.vim-lb img{max-width:100%;max-height:calc(100vh - 160px);object-fit:contain;border-radius:10px;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.vim-lb figcaption{color:#e2e8f0;font:600 15px/1.4 -apple-system,"Segoe UI",Roboto,sans-serif;text-align:center}
.vim-lb button{position:absolute;border:0;background:rgba(255,255,255,.12);color:#fff;width:48px;height:48px;border-radius:50%;font-size:28px;line-height:1;padding:0 0 3px;cursor:pointer;transition:background .2s}
.vim-lb button:hover{background:rgba(255,255,255,.26)}
.vim-lb-x{top:16px;right:16px}
.vim-lb-prev{left:16px;top:50%;margin-top:-24px}
.vim-lb-next{right:16px;top:50%;margin-top:-24px}
@media(max-width:640px){.vim-lb{padding:56px 12px}.vim-lb-prev,.vim-lb-next{top:auto;bottom:12px;margin:0}.vim-lb-prev{left:calc(50% - 58px)}.vim-lb-next{right:calc(50% - 58px)}}

/* =====================================================================
   v2.2 — category colours, headings, new layouts, design styles
   ===================================================================== */
.vim-widget .vim-item[data-cat="gulf"]{--vim-b:#f59e0b;--vim-g:rgba(245,158,11,.5)}
.vim-widget .vim-item[data-cat="russia"]{--vim-b:#2563eb;--vim-g:rgba(37,99,235,.5)}
.vim-widget .vim-item[data-cat="europe"]{--vim-b:#7c3aed;--vim-g:rgba(124,58,237,.5)}
.vim-widget .vim-item[data-cat="upcoming"]{--vim-b:#10b981;--vim-g:rgba(16,185,129,.5)}

/* ---------- heading ---------- */
.vim-widget .vim-head{display:flex;flex-direction:column;align-items:center;text-align:center;margin:0 0 34px;--vim-lo:center}
.vim-widget .vim-eyebrow{display:inline-block;margin:0 0 14px;padding:6px 14px;border-radius:999px;font-size:12.5px;font-weight:700;line-height:1.2;letter-spacing:.14em;text-transform:uppercase;color:#4f46e5;background:rgba(79,70,229,.10)}
.vim-widget .vim-h{margin:0;max-width:100%;font-size:clamp(26px,3.2vw,40px);font-weight:800;letter-spacing:-.02em;line-height:1.15;color:#0f172a;overflow-wrap:anywhere}
.vim-widget .vim-sub{margin:var(--vim-hg,12px) 0 0;max-width:680px;font-size:16px;line-height:1.65;color:#64748b}

/* shrink-wrapped box so the line can match the text width exactly */
.vim-widget .vim-hgroup{display:flex;flex-direction:column;align-items:inherit;max-width:100%}
.vim-widget .vim-hgroup .vim-sub{margin-top:var(--vim-hg,12px)}

/* ---------- adjustable heading underline ---------- */
.vim-widget .vim-line{display:block;flex:none;box-sizing:border-box;width:64px;max-width:100%;height:var(--vim-lt,4px);margin:var(--vim-ls,16px) 0 var(--vim-la,0);border-radius:4px;transform-origin:var(--vim-lo,center) center;transition-property:transform,opacity;transition-duration:.9s;transition-timing-function:cubic-bezier(.2,.7,.2,1)}
.vim-widget .vim-line-above{margin:var(--vim-la,0) 0 var(--vim-ls,16px)}
.vim-widget .vim-line.vim-line-text{width:100%}
.vim-widget .vim-line-gradient{background:linear-gradient(var(--vim-ga,90deg),var(--vim-g1,#4f46e5),var(--vim-g2,#ec4899),var(--vim-g3,var(--vim-g2,#f59e0b)))}
.vim-widget .vim-line-solid{background:var(--vim-lcol,#4f46e5)}
.vim-widget .vim-line-dashed,.vim-widget .vim-line-dotted,.vim-widget .vim-line-double{height:0;background:none;border-radius:0;border-top:var(--vim-lt,4px) solid var(--vim-lcol,#4f46e5)}
.vim-widget .vim-line-dashed{border-top-style:dashed}
.vim-widget .vim-line-dotted{border-top-style:dotted}
.vim-widget .vim-line-double{border-top-style:double;border-top-width:max(var(--vim-lt,4px),3px)}
/* entrance animation (only once JS is ready, so no-JS visitors still see the line) */
.vim-widget.vim-hready .vim-head:not(.vim-head-in) .vim-la-grow{transform:scaleX(0)}
.vim-widget.vim-hready .vim-head:not(.vim-head-in) .vim-la-fade{opacity:0}
@media(prefers-reduced-motion:reduce){.vim-widget .vim-line{transition:none}.vim-widget.vim-hready .vim-head:not(.vim-head-in) .vim-la-grow{transform:none}.vim-widget.vim-hready .vim-head:not(.vim-head-in) .vim-la-fade{opacity:1}}

/* empty state */
.vim-empty-wrap{width:100%}
.vim-empty-wrap .vim-empty{margin:0;padding:34px 22px;text-align:center;border-radius:16px;background:#f3f5fb;color:#64748b;font-size:16px;line-height:1.6}

/* ---------- bento mosaic ---------- */
.vim-widget.vim-layout-bento .vim-grid{grid-auto-flow:dense;grid-auto-rows:220px}
.vim-widget.vim-layout-bento .vim-link{display:flex;flex-direction:column;height:100%}
.vim-widget.vim-layout-bento .vim-item{height:100%}
.vim-widget.vim-layout-bento .vim-media{flex:1;aspect-ratio:auto!important;height:auto!important;min-height:0}
.vim-widget.vim-layout-bento .vim-media img{position:absolute!important;inset:0;width:100%;height:100%!important}
.vim-widget.vim-layout-bento .vim-item[data-b="big"]{grid-column:span 2;grid-row:span 2}
.vim-widget.vim-layout-bento .vim-item[data-b="tall"]{grid-row:span 2}
.vim-widget.vim-layout-bento .vim-item[data-b="wide"]{grid-column:span 2}

/* ---------- spotlight gallery ---------- */
.vim-widget.vim-layout-spotlight .vim-grid{display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--vim-cols) - 1) * var(--vim-gap)) / var(--vim-cols));overflow-x:auto;scrollbar-width:thin;position:relative;padding:8px 2px 14px;margin:-8px -2px 0}
.vim-widget.vim-layout-slider .vim-grid{position:relative}
.vim-widget.vim-layout-spotlight .vim-media{aspect-ratio:1/1!important;height:auto!important}
.vim-widget.vim-layout-spotlight .vim-title,
.vim-widget.vim-layout-spotlight .vim-grid .vim-badge{display:none}
.vim-widget.vim-layout-spotlight .vim-link{cursor:pointer}
.vim-widget.vim-layout-spotlight .vim-media::before{display:none!important}
.vim-widget.vim-layout-spotlight .vim-item{opacity:.62;transition:opacity .3s ease,transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,outline-color .3s}
.vim-widget.vim-layout-spotlight .vim-item:hover{opacity:1}
.vim-widget.vim-layout-spotlight .vim-item.vim-active{opacity:1;outline:3px solid #4f46e5;outline-offset:2px}
.vim-widget .vim-spot-view{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center;height:520px;margin-bottom:var(--vim-gap);border-radius:22px;background:#0f172a;box-shadow:0 24px 60px rgba(15,23,42,.28)}
.vim-widget .vim-spot-view::before{content:"";position:absolute;inset:-40px;z-index:-1;background:var(--vim-bg) center/cover no-repeat;filter:blur(36px) saturate(1.35) brightness(.65);transform:scale(1.1)}
.vim-widget .vim-spot-img{display:block;width:auto;max-width:calc(100% - 120px);height:auto;max-height:calc(100% - 40px);object-fit:contain;border-radius:8px;box-shadow:0 28px 70px rgba(0,0,0,.5);transition:opacity .3s ease}
.vim-widget[data-lightbox="1"] .vim-spot-img{cursor:zoom-in}
.vim-widget .vim-spot-title{position:absolute;left:0;right:0;bottom:0;padding:54px 28px 20px;color:#fff;font-size:18px;font-weight:700;line-height:1.35;background:linear-gradient(to top,rgba(8,12,24,.85),rgba(8,12,24,0))}
.vim-widget .vim-spot-view .vim-badge{top:18px;left:18px;font-size:13px;padding:8px 15px}
.vim-widget .vim-spot-prev{left:18px}
.vim-widget .vim-spot-next{right:18px}
@media(max-width:767px){.vim-widget .vim-spot-img{max-width:calc(100% - 24px)}.vim-widget .vim-spot-view .vim-nav{top:auto;bottom:14px;margin:0}.vim-widget .vim-spot-prev{left:14px}.vim-widget .vim-spot-next{right:14px}.vim-widget .vim-spot-title{padding-bottom:16px;font-size:15px}}

/* =====================================================================
   DESIGN STYLES  (classic = base styles above)
   ===================================================================== */

/* ---- Gradient border ---- */
.vim-d-gradient .vim-item{padding:3px;background-image:linear-gradient(135deg,var(--vim-b,#4f46e5),#ec4899 55%,#f59e0b);background-size:220% 220%;background-position:0% 50%;border-radius:22px;box-shadow:0 14px 34px rgba(79,70,229,.18);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease,background-position 1s ease}
.vim-d-gradient .vim-item:hover{background-position:100% 50%}
.vim-d-gradient .vim-link{background:#fff;border-radius:19px;overflow:hidden}
.vim-d-gradient .vim-title{background:#fff}

/* ---- Category accent bar ---- */
.vim-d-accent .vim-item{background:#fff;border-radius:14px;border-top:6px solid var(--vim-b,#4f46e5);box-shadow:0 14px 32px rgba(15,23,42,.11)}
.vim-d-accent .vim-title{font-weight:700;border-top:1px solid #eef0f6}
.vim-d-accent .vim-media{border-radius:0}
.vim-d-accent .vim-badge{background:#fff;color:#0f172a}
.vim-d-accent .vim-badge::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--vim-b,#4f46e5)}

/* ---- Polaroid ---- */
.vim-d-polaroid .vim-item{overflow:visible;background:#fff;padding:12px 12px 0;border-radius:4px;box-shadow:0 16px 36px rgba(15,23,42,.20),0 0 0 1px rgba(15,23,42,.05);transform:rotate(-1.4deg)}
.vim-d-polaroid .vim-item:nth-child(even){transform:rotate(1.2deg)}
.vim-d-polaroid .vim-item:nth-child(3n){transform:rotate(-.5deg)}
.vim-d-polaroid.vim-cap-none .vim-item{padding-bottom:46px}
.vim-d-polaroid .vim-media{border-radius:2px;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}
.vim-d-polaroid .vim-title{padding:16px 6px 18px;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:500;text-align:center}
.vim-d-polaroid .vim-item::before{content:"";position:absolute;z-index:6;top:-11px;left:50%;width:86px;height:24px;margin-left:-43px;background:rgba(253,224,130,.8);box-shadow:0 2px 6px rgba(0,0,0,.12);transform:rotate(-3deg);pointer-events:none}
.vim-d-polaroid .vim-item:hover{transform:rotate(0) translateY(-10px) scale(1.02);box-shadow:0 26px 50px rgba(15,23,42,.26),0 0 0 1px rgba(15,23,42,.05)}

/* ---- Dark premium glow ---- */
.vim-d-dark .vim-item{background:#0b1020;border:1px solid rgba(255,255,255,.10);border-radius:20px;box-shadow:0 16px 44px rgba(2,6,23,.40)}
.vim-d-dark .vim-item:hover{border-color:var(--vim-b,#6366f1);box-shadow:0 0 0 1px var(--vim-b,#6366f1),0 0 44px var(--vim-g,rgba(99,102,241,.5)),0 24px 50px rgba(2,6,23,.5)}
.vim-d-dark .vim-media{background:#151b30}
.vim-d-dark .vim-title{color:#e2e8f0;font-weight:700}
.vim-d-dark .vim-badge{background:rgba(255,255,255,.12);color:#fff;border:1px solid var(--vim-b,rgba(255,255,255,.4));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}

/* ---- Bold outline (neo-brutalist) ---- */
.vim-d-brutal .vim-item{background:#fff;border:3px solid #0f172a;border-radius:14px;box-shadow:7px 7px 0 #0f172a;transition:transform .2s ease,box-shadow .2s ease}
.vim-d-brutal .vim-item:hover{transform:translate(-4px,-4px);box-shadow:11px 11px 0 #0f172a}
.vim-d-brutal.vim-cap-below .vim-media{border-bottom:3px solid #0f172a}
.vim-d-brutal .vim-title{font-weight:800;font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.vim-d-brutal .vim-badge{border:2px solid #0f172a;border-radius:8px;color:#0f172a;background:var(--vim-b,#fde047);box-shadow:3px 3px 0 #0f172a;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.vim-d-brutal .vim-tab{border:2px solid #0f172a;border-radius:10px;box-shadow:3px 3px 0 #0f172a;font-weight:800}
.vim-d-brutal .vim-tab.on{background:#fde047;color:#0f172a;box-shadow:3px 3px 0 #0f172a}
.vim-d-brutal .vim-tab.on span{background:#0f172a;color:#fff}

/* ---- Viewfinder corners ---- */
.vim-d-viewfinder .vim-item{overflow:visible;background:transparent;border-radius:0;box-shadow:none}
.vim-d-viewfinder .vim-media{border-radius:4px;box-shadow:0 16px 36px rgba(15,23,42,.16)}
.vim-d-viewfinder .vim-link::before,
.vim-d-viewfinder .vim-link::after{content:"";position:absolute;z-index:4;width:32px;height:32px;border:0 solid var(--vim-b,#4f46e5);pointer-events:none;transition:width .45s cubic-bezier(.2,.7,.2,1),height .45s cubic-bezier(.2,.7,.2,1)}
.vim-d-viewfinder .vim-link::before{top:-9px;left:-9px;border-top-width:4px;border-left-width:4px}
.vim-d-viewfinder .vim-link::after{bottom:-9px;right:-9px;border-bottom-width:4px;border-right-width:4px}
.vim-d-viewfinder .vim-item:hover .vim-link::before,
.vim-d-viewfinder .vim-item:hover .vim-link::after{width:calc(100% + 18px);height:calc(100% + 18px)}
.vim-d-viewfinder .vim-title{background:transparent;padding-left:2px}
.vim-d-viewfinder.vim-layout-slider .vim-grid,
.vim-d-viewfinder.vim-layout-spotlight .vim-grid{padding-left:12px;padding-right:12px}
.vim-d-viewfinder.vim-layout-spotlight .vim-item.vim-active{outline:0}

/* ---------- lightbox counter (v2.3) ---------- */
.vim-lb-count{position:absolute;top:26px;left:50%;transform:translateX(-50%);padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.12);color:#e2e8f0;font:600 13px/1 -apple-system,"Segoe UI",Roboto,sans-serif;letter-spacing:.04em;pointer-events:none}
.vim-lb button:focus-visible{outline:3px solid #fff;outline-offset:2px}
