/* === BASE & ROOT === */
* {box-sizing: border-box; padding: 0; margin: 0; -webkit-tap-highlight-color: transparent; user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none;}
:root { --background-rgb: 0 0 0; --blue-rgb: 0 0 0; --primary-rgb: 50 50 50; }

body, html { width: 100vw; min-height: 100vh; overflow-x: hidden; overflow-y: auto; margin: 0; font-family:'Audemars', 'Darkella', "Inter", sans-serif; color: #000;background-color: transparent;}

a {text-decoration: none;}
@font-face { font-family:'Black'; src:url('../../assets/BlackFlag.ttf') format('truetype'); font-display:swap; }
@font-face { font-family:'Darkella'; src:url('../../assets/Darkella\ Demo.otf') format('opentype'); font-display:swap; }
@font-face { font-family:'Audemars'; src:url('../../assets/JHCAudemars-Medium.otf') format('opentype'); font-display:swap; }

#grid-bg { position: fixed; inset: 0; z-index: -1; pointer-events: none; }

.circleII {height: 24px; width: 24px; border-radius: 24px; background-color: black;position: fixed;top: 0; left: 0; pointer-events: none; z-index: 100; /* so that it stays on top of all other elements */} 
@media (max-width: 1000px) {.circleII{display: none;}}

/* === CONTENT SECTION === */
.content-section { position: relative;width: 100%;padding: 10vh 2vw; display: flex;flex-direction: column;align-items: center; background: transparent; z-index: 20; overflow: hidden !important; }
.content-wrapper { max-width: 2000px; margin: 0 auto; color: #000; animation: contentBreath 6s ease-in-out infinite; }
@keyframes contentBreath { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.01); } }

.mt {position: relative;width: fit-content; margin-top: 100px; color:#000;text-align:center;font-family: 'Black', 'Audemars', 'Darkella', "Inter", sans-serif;font-size:8rem;font-weight:lighter;}
.content-marquee { display: flex;align-items: center; position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width: 100%;height:min-content; overflow: hidden; pointer-events: none; z-index: 1;  background-color: #fffb00; border: 2px solid #fffb00;}
.content-marquee-track {  display: flex;align-items: center; white-space: nowrap; animation: contentMarquee 40s linear infinite;}
.content-marquee span { font-family: 'Audemars', 'Darkella', "Inter", sans-serif; font-size: 2rem; line-height: 1; color: rgb(0, 0, 0); letter-spacing: 10px; }
@keyframes contentMarquee { from { transform: translateX(0%); } to { transform: translateX(-50%); } }
@media (max-width: 1000px) {.mt{font-size: 4rem;} }

/* ================= WORK SECTION ================= */
.work-section { position: relative; width: 100%; padding: 0vh 0vw; display: flex;flex-direction: column;align-items: center; }
.wt {top:-10%;}
@media (max-width: 1000px) {.wt {top:-12%;} .content-marquee span {font-size: 1.5rem;}}

/* =========================================================
   LIBRARY SEARCH + FILTER
   ========================================================= */
.library-tools{width:90vw;margin:80px auto 35px;position:relative;z-index:10;}
.search-box input {user-select: text;-webkit-user-select: text;}
/* ================= SEARCH ================= */
.search-box{width:100%;height:85px;background:#fff;border:2px solid #000;box-shadow:6px 6px 0 #000;display:flex;align-items:center;gap:25px;padding:0 25px;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1);}
.search-box:hover{transform:translate(-3px,-3px);box-shadow:10px 10px 0 #000;}
.search-box:focus-within{transform:translate(-3px,-3px);box-shadow:10px 10px 0 #000;}
.search-box i{font-size:1.4rem;margin-right:20px;}
.search-box input{width:100%;height:100%;border:none;outline:none;background:transparent;font-family:'Audemars','Darkella',"Inter",sans-serif;font-size:2rem;color:#000;user-select:text;-webkit-user-select:text;}
.search-box input::placeholder{color:#777;}
.search-key{width:35px;height:35px;display:flex;align-items:center;justify-content:center;background:#fffb00;border:2px solid #000;font-family:'Audemars',sans-serif;font-size:1.3rem;font-weight: bolder; display: none;}
/* ================= FILTER ROW ================= */
.filter-row{display:flex;align-items:center;flex-wrap:wrap;margin-top:25px;gap:10px;}
.filter-btn{position:relative;padding:10px 18px;background:#fff;color:#000;border:2px solid #000;font-family:'Audemars','Darkella',"Inter",sans-serif;font-size:1.1rem;cursor:pointer;transition:background .3s cubic-bezier(.22,1,.36,1),color .3s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s cubic-bezier(.22,1,.36,1);}
.filter-btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 #000;}
.filter-btn.active{background:#fffb00;box-shadow:4px 4px 0 #000;}.filter-btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 #000;}
/* ================= STATUS ================= */
.library-status{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:12px;border-top:2px solid #000;font-family:'Audemars',sans-serif;font-size:.9rem;letter-spacing:2px;}
#result-count{font-size:1.2rem;font-weight:bold;}
/* ================= SMOOTH FILTER TRANSITION ================= */
.block.is-hidden {display: none;}
/* ================= NO RESULTS ================= */
.no-results{width:90vw;padding:70px 30px;background:#fff;border:2px solid #000;box-shadow:6px 6px 0 #000;text-align:center;font-family:'Black','Audemars',sans-serif;font-size:4rem;}
.no-results span{display:block;margin-top:15px;font-family:'Audemars',sans-serif;font-size:1.2rem;}
/*
.block.filter-enter{animation:libraryEnter .55s cubic-bezier(.22,1,.36,1) both;}
@keyframes libraryEnter{ 0%{opacity:0;transform:translateY(25px) scale(.98);filter:blur(6px);} 60%{opacity:.8;filter:blur(1px);} 100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}}
*/
/* ================= MOBILE ================= */
@media(max-width:1000px){
  .library-tools{width:90vw;margin-top:50px;}
  .search-box{height:70px;padding:0 15px;}
  .search-box input{font-size:1.4rem;}
  .search-key{display:none;}
  .filter-row{gap:7px;}
  .filter-btn{font-size:.9rem;padding:8px 12px;}
  .library-status{font-size:.7rem;}
  .no-results{font-size:2.5rem;}
}

/* ================= BLOCK ================= */
.block {padding: 2rem 2rem 2rem 2rem; display: flex; justify-content: space-between; align-items: center; width: 90vw; height: fit-content; background:#fff;border:2px solid #000;box-shadow:6px 6px 0 #000;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s cubic-bezier(.22,1,.36,1); } /* Main block row */
.block:hover{/*transform:translate(-6px,-6px);*/box-shadow:14px 14px 0 #000;}
.block__title, .block a { position: relative; font-size: 5rem; margin: 0 0 0 0; padding: 0; cursor: pointer; font-family: 'Audemars', 'Darkella', "Inter", sans-serif; font-weight: lighter; color: #000; text-align: center; line-height: 1; user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; } /* Heading and links */
.block__title::before{content:'';position:absolute;z-index:-1;top:35%;bottom:35%;left:-.25em;right:-.25em;background:#fffb00;transform-origin:center right;transform:scaleX(0);transition:transform .33s ease-in-out;}
.block__title:hover::before{transform:scaleX(1);transform-origin:center left;}
.PLAY { position: relative; display: inline-block; font-size: 4rem; font-weight: bold; color: #000; text-decoration: none; overflow: hidden; } /* Play button style */
.block__title:hover { color: #000; } /* Maintain title color on hover */
.block__title span { display: inline-block; white-space: pre; } /* Individual animated characters */
.block[data-fx="6"] a::after, a.content__text-link[data-fx="6"]::after { content: ''; z-index: -1; width: 100%; bottom: .25rem; left: 0; position: absolute; height: 2px; background: currentColor; transform: scale3d(0,1,1); transform-origin: 100% 50%; transition: transform .7s cubic-bezier(.860,0,.070,1); } /* Animated underline */
a.content__text-link[data-fx="6"]::after { bottom: 0; } /* Text-link underline position */
.block[data-fx="6"] a:hover::after, a.content__text-link[data-fx="6"]:hover::after { transform: scale3d(1,1,1); } /* Reveal underline */
.hover-reveal { position: fixed; width: 250px;aspect-ratio: 4/5;height: auto; top: 0; left: 0; pointer-events: none; opacity: 0; } /* Floating preview container */
.hover-reveal__inner, .hover-reveal__img { width: 100%; height: 100%; position: relative; } /* Preview wrappers */
.hover-reveal__deco { width: 100%; height: 100%; position: absolute; top: 0; left: 0; background-color: #000; } /* Background layer */
.hover-reveal__img { background-size: cover; background-position: 50% 50%; } /* Preview image */

.visit-btn { display: flex; align-items: center; gap: 12px; padding: 2px 18px; background: transparent; border: 1px solid rgba(0, 0, 0, 0); color: #000; cursor: pointer; position: relative; transition: 0.3s ease; }
.visit-btn:hover { transform: translateY(-2px); }
.text { font-family: 'Audemars', 'Darkella', "Inter", sans-serif; font-size: 3rem; letter-spacing: 1px; }
.arrows { display: flex; gap: 3px; }
.arrow { width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 10px solid #000; opacity: 0.3; transform-origin: center; animation: pulseArrow 1.2s infinite; }
.arrow:nth-child(2) { animation-delay: 0.15s; }
.arrow:nth-child(3) { animation-delay: 0.3s; }
@keyframes pulseArrow { 0% { opacity: 0.2; transform: translateX(0) scale(1); } 50% { opacity: 1; transform: translateX(4px) scale(1.1); } 100% { opacity: 0.2; transform: translateX(0) scale(1); } }
.visit-btn::after { content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: linear-gradient(90deg, transparent, Black, transparent); transform: translateX(-120%); transition: 0.6s ease; }
.visit-btn:hover::after { transform: translateX(120%); }

/* ================= DESKTOP LAYOUT ================= */
@media screen and (min-width:53em){
  .block { align-items: center; } /* Center block content */
  .content { position: relative; display: flex; flex-direction: column; justify-content: start; align-items: center; gap: 20px; margin: 0 auto; padding-top: 0vh; min-width: 80vw; height: fit-content; text-align: left; } /* Content wrapper */
}
/* ================= MOBILE HOVER REVEAL ================= */
@media (max-width:1000px){
  .hover-reveal { left: 50% !important; transform: translateX(-50%) !important; top: auto !important; bottom: 20px !important; position: fixed !important; } /* Center preview on mobile */
}
/* ================= SMALL DEVICES ================= */
@media only screen and (max-device-width:1000px){
  .title { font-size: .5rem; } /* Small title */
  .block { flex-direction: column; margin-top: 2vh;} /* Stack block content */
  .block__title { font-size: 5rem; } /* Smaller heading */
  .block__title::before {display: none;}
  .block a { font-size: 2.5rem; } /* Smaller link */
  .content { padding-top: 0vh; } /* Reset spacing */
  .text {font-size: 2rem;}
}

/* === FOOTER === */
.premium-footer{position: relative; width:90%;margin:10px auto 60px;background:#fff;border:2px solid #000;padding:70px;box-shadow:6px 6px 0 #000;transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s cubic-bezier(.22,1,.36,1);}
.premium-footer:hover{transform:translate(-4px,-4px);box-shadow:12px 12px 0 #000;}
.footer-grid{display:flex;justify-content:space-between;gap:120px;}
.footer-brand{width:40%;}
.footer-brand h1{font-family:'Black';font-size:5rem;line-height:.9;margin-bottom:20px;font-weight: lighter;}
.footer-brand p{font-family:'Audemars', 'Darkella', ;font-size:1.5rem;margin-bottom:20px;max-width:420px;}
.footer-brand span{position: relative;z-index: 0;isolation: isolate; display:inline-block;padding:8px 18px;font-family:'Audemars', 'Darkella';font-weight:normal;font-size: 2rem;}
.footer-brand span::before{content:'';position:absolute;z-index:-1;top:35%;bottom:40%;left:-.25em;right:-.25em;background:#fffb00;transform:scaleX(1);transform-origin:center left;}
.footer-links{display:flex;gap:90px;}
.footer-links div{display:flex;flex-direction:column;}
.footer-links h4{margin-bottom:25px;font-family:'Black';font-size:1.5rem;letter-spacing:2px;}
.footer-links a{color:#000;text-decoration:none;margin:8px 0;font-family:'Audemars', 'Darkella', ;position:relative;width:max-content;font-size: 1.5rem;}
.footer-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:#ffe600;transition:.35s;}
.footer-links a:hover::after{width:100%;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;border-top:2px solid #000;margin-top:60px;padding-top:30px;font-family:'Audemars', 'Darkella';font-size: 1.5rem;}
@media(max-width:900px){
  .footer-grid{flex-direction:column;}
  .footer-brand{width:100%;}
  .footer-links{flex-wrap:wrap;gap:60px;}
  .footer-bottom{flex-direction:column;gap:15px;}
}
@media only screen and (max-device-width: 1000px){
  .text-container{top: 1%;} 
  .socialsII{font-size: 1.5rem; margin: 0 5px;}
  .foot-link { flex-direction: column; }
  .foot-copy { font-size: 5rem; }
  .footer a { margin: 0 0; }
  .foot-link-III span { font-size: 1rem; }
}

/* === LOADER CSS === */
.loading { display: flex; align-items: center; justify-content: center; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 110; background: #000; opacity: 0; transition: 0.5s; }
.before-load .loading { opacity: 1; }
.load-counter { position: absolute;bottom: 0;left: 0;width: 100%; /* ✅ full width */ display: flex;justify-content: center;gap: 10px; /* ✅ true centering */ font-family: 'Audemars', 'Darkella', "Inter", sans-serif; font-size: clamp(9rem, 15vw, 18rem); font-weight: lighter; color: #fff;text-shadow: 0 0 0.02em #fff; letter-spacing: 10px;text-align: center; z-index: 50;pointer-events: none; }
.footer-marquee { background-color: #fffb00; position: absolute; width: 300%; top: 0%; left: -50%; z-index: 1; pointer-events: none; }
.footer-marquee-track { white-space: nowrap; animation: footerMarquee 60s linear infinite; }
.footer-marquee span { font-family: 'Audemars', 'Darkella', 'Black', 'Nortune', 'American'; font-size: 5rem; color: #000; }
@keyframes footerMarquee { from { transform: translateX(0%); } to { transform: translateX(-50%); } }
@media (max-width: 2000px) { .load-counter{font-size: 15vw;}}
@media (max-width: 1000px) { .load-counter{font-size: 10rem;bottom:20%;}}