:root{
  --black:#0b0908;
  --black-2:#141110;
  --bone:#f2ede3;
  --gold:#c9a876;
  --ember:#8a3324;
  --ember-bright:#c4502f;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--black);
  color:var(--bone);
  font-family:'Inter',sans-serif;
  font-weight:300;
  overflow-x:hidden;
  cursor:none;
  min-height:100vh;
}
@media (hover:none), (max-width:749px){ body{ cursor:auto; } }
h1,h2,h3{font-family:'Fraunces',serif;font-weight:500;letter-spacing:-0.01em;}
a{color:inherit;}
img,video{max-width:100%;display:block;}
.eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;opacity:.65;font-weight:400;}
.wrap{max-width:1360px;margin:0 auto;padding:0 32px;}
@media (max-width:749px){.wrap{padding:0 20px;}}

/* ===== Preloader ===== */
.preloader{position:fixed;inset:0;background:var(--black);z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;transition:opacity .7s ease, visibility .7s ease;}
.preloader img{width:64px;opacity:0;animation:kco-fade 1s ease forwards;}
.preloader span{font-family:'Fraunces',serif;font-size:13px;letter-spacing:.3em;text-transform:uppercase;opacity:0;animation:kco-fade 1s ease .3s forwards;}
.preloader.hide{opacity:0;visibility:hidden;pointer-events:none;}
@keyframes kco-fade{to{opacity:.9;}}

/* ===== Custom cursor ===== */
.cur,.cur-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9998;border-radius:50%;transform:translate(-50%,-50%);}
.cur{width:5px;height:5px;background:var(--gold);}
.cur-ring{width:30px;height:30px;border:1px solid rgba(201,168,118,.5);transition:width .2s ease,height .2s ease,border-color .2s ease;}
.cur-ring.active{width:56px;height:56px;border-color:var(--bone);}
@media (hover:none), (max-width:749px){.cur,.cur-ring{display:none;}}

/* ===== Progress + grain ===== */
.progress{position:fixed;top:0;left:0;height:2px;background:var(--gold);z-index:9997;width:0%;}
.grain{position:fixed;inset:-100px;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  animation:grain 1s steps(4) infinite;}
@keyframes grain{0%{transform:translate(0,0);}50%{transform:translate(-2%,2%);}100%{transform:translate(2%,-2%);}}

/* ===== Ambient storm layer (site-wide background atmosphere) ===== */
.storm-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:
    radial-gradient(ellipse 120% 60% at 50% 100%, rgba(40,34,30,.5), transparent 60%),
    linear-gradient(180deg, #0b0908 0%, #14100d 100%);}
.storm-flash{position:fixed;inset:0;z-index:0;pointer-events:none;background:rgba(220,215,235,0);}
.storm-cloud{position:absolute;bottom:-20%;width:140%;left:-20%;height:60%;opacity:.35;filter:blur(2px);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='800' height='400'><filter id='c'><feTurbulence type='fractalNoise' baseFrequency='0.012 0.04' numOctaves='4' seed='7'/><feColorMatrix type='matrix' values='0 0 0 0 0.05  0 0 0 0 0.04  0 0 0 0 0.035  0 0 0 0.9 0'/></filter><rect width='100%25' height='100%25' filter='url(%23c)'/></svg>");
  animation:cloud-drift 90s linear infinite;}
@keyframes cloud-drift{0%{transform:translateX(0);}100%{transform:translateX(-10%);}}

/* ===== Nav ===== */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:22px 32px;mix-blend-mode:difference;}
nav img{height:26px;}
nav .links{display:flex;gap:28px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;}
nav .links a{text-decoration:none;opacity:.85;transition:opacity .2s;}
nav .links a:hover,nav .links a.active{opacity:1;}
.nav-toggle{display:none;background:none;border:0;color:var(--bone);font-size:22px;cursor:pointer;z-index:101;}
.mobile-menu{position:fixed;inset:0;background:var(--black);z-index:99;display:none;flex-direction:column;align-items:center;justify-content:center;gap:28px;}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-family:'Fraunces',serif;font-size:24px;font-style:italic;text-decoration:none;}
@media (max-width:749px){
  nav .links{display:none;}
  .nav-toggle{display:block;}
}

/* ===== Page hero (non-home pages) ===== */
.page-hero{position:relative;padding:170px 0 70px;text-align:center;}
.page-hero .eyebrow{margin-bottom:16px;}
.page-hero h1{font-size:clamp(30px,5vw,52px);font-style:italic;}

/* ===== Buttons ===== */
.btn{display:inline-block;padding:14px 30px;border-radius:2px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:opacity .25s,transform .25s;}
.btn:hover{opacity:.8;transform:translateY(-2px);}
.btn-outline{border:1px solid var(--bone);color:var(--bone);}
.btn-filled{background:var(--bone);color:var(--black);}
.btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:8px;}

/* ===== Section shells ===== */
section{position:relative;z-index:2;}
.intro{padding:70px 0 40px;text-align:center;}
.intro .eyebrow{margin-bottom:18px;}
.intro h2{font-size:clamp(24px,3.6vw,38px);font-style:italic;max-width:700px;margin:0 auto;line-height:1.4;font-weight:400;}
.intro .accent{color:var(--gold);font-style:normal;}

/* ===== Fun link tiles (home) ===== */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;padding:20px 0 100px;}
.tile{position:relative;aspect-ratio:3/4;overflow:hidden;text-decoration:none;display:flex;align-items:flex-end;padding:26px;border:1px solid rgba(242,237,227,.1);}
.tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .5s ease;}
.tile:hover video{transform:scale(1.06);}
.tile::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,9,8,0) 40%,rgba(11,9,8,.9) 100%);z-index:1;}
.tile-label{position:relative;z-index:2;}
.tile-label .eyebrow{color:var(--gold);margin-bottom:6px;}
.tile-label h3{font-size:22px;font-style:italic;}

/* ===== Gallery ===== */
.gallery{padding:20px 0 120px;}
.group-label{font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin:44px 0 16px;opacity:.85;}
.group-label:first-of-type{margin-top:0;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px;}
.tilt{perspective:800px;aspect-ratio:4/5;overflow:visible;cursor:pointer;position:relative;background:var(--black-2);display:flex;align-items:center;justify-content:center;}
.tilt img{width:100%;height:100%;object-fit:contain;transition:transform .2s ease-out;will-change:transform;}
.tilt .cap{position:absolute;left:8px;bottom:8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:opacity .25s;text-shadow:0 2px 8px rgba(0,0,0,.9);pointer-events:none;}
.tilt:hover .cap{opacity:.9;}

/* ===== Lightbox ===== */
.lightbox{position:fixed;inset:0;background:rgba(11,9,8,.96);z-index:500;display:none;align-items:center;justify-content:center;flex-direction:column;padding:32px;}
.lightbox.open{display:flex;}
.lightbox img{max-width:92vw;max-height:82vh;object-fit:contain;}
.lightbox .cap{margin-top:16px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;opacity:.75;}
.lightbox .close{position:absolute;top:22px;right:30px;background:none;border:0;color:var(--bone);font-size:34px;cursor:pointer;line-height:1;}

/* ===== Shop ===== */
.shop{padding:20px 0 130px;}
.shop-intro{text-align:center;margin-bottom:56px;}
.product-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;max-width:1200px;margin:0 auto;}
.product-card{border:1px solid rgba(242,237,227,.12);background:radial-gradient(circle at 50% 0%,rgba(201,168,118,.05),transparent 60%);}
.product-card .flip{position:relative;aspect-ratio:4/5;overflow:hidden;cursor:pointer;}
.product-card .flip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .4s ease;}
.product-card .flip img.back{opacity:0;}
.product-card .flip:hover img.back{opacity:1;}
.product-card .flip:hover img.front{opacity:0;}
.product-card .flip-hint{position:absolute;bottom:10px;right:10px;font-size:9px;letter-spacing:.1em;text-transform:uppercase;opacity:.6;background:rgba(11,9,8,.6);padding:4px 8px;z-index:2;}
.product-card .info{padding:20px;}
.product-card h3{font-size:19px;font-style:italic;margin-bottom:6px;}
.product-card .price{color:var(--gold);font-size:14px;margin-bottom:10px;}
.product-card .desc{font-size:13px;opacity:.75;line-height:1.6;margin-bottom:16px;}
.product-card .status-badge{display:inline-block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.6;margin-bottom:10px;}
.empty-shop{max-width:560px;margin:0 auto;text-align:center;border:1px solid rgba(242,237,227,.15);padding:56px 36px;background:radial-gradient(circle at 50% 20%,rgba(201,168,118,.07),transparent 70%);}
.empty-shop img{width:40px;margin:0 auto 18px;opacity:.75;}
.empty-shop h3{font-size:24px;margin-bottom:10px;font-style:italic;}
.empty-shop p{font-size:14px;opacity:.7;line-height:1.7;margin-bottom:24px;}

/* ===== About ===== */
.about{display:grid;grid-template-columns:1.1fr 1fr;gap:0;min-height:calc(100vh - 90px);}
.about-media{position:relative;overflow:hidden;}
.about-media img.main{width:100%;height:100%;object-fit:cover;}
.about-media img.accent{display:none;}
.about-head{display:flex;align-items:flex-end;gap:24px;margin-bottom:26px;}
.about-head img.shadow-inset{width:120px;height:120px;object-fit:cover;border:1px solid rgba(242,237,227,.15);flex-shrink:0;}
.about-head h2{margin-bottom:0;}
@media (max-width:480px){.about-head{flex-direction:column;align-items:flex-start;}.about-head img.shadow-inset{width:100px;height:100px;}}
.about-content{padding:80px 60px;display:flex;flex-direction:column;justify-content:center;}
.about-content .eyebrow{margin-bottom:18px;}
.about-content h2{font-size:clamp(30px,4vw,44px);margin-bottom:26px;font-style:italic;}
.about-content p{font-size:15px;line-height:1.85;opacity:.85;margin-bottom:18px;}
.fueled{font-style:italic;opacity:.65;font-size:14px;margin:22px 0;}
.signoff{font-family:'Fraunces',serif;font-size:19px;line-height:1.5;margin:26px 0 34px;font-style:italic;}
@media (max-width:900px){
  .about{grid-template-columns:1fr;}
  .about-media img.main{min-height:64vh;}
  .about-content{padding:60px 24px;}
}

/* ===== Collab / Contact ===== */
.collab{padding:90px 0;text-align:center;}
.collab h2{font-size:clamp(26px,4.4vw,44px);max-width:720px;margin:0 auto 34px;line-height:1.3;font-style:italic;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:900px;margin:0 auto;padding:0 0 100px;align-items:center;}
.contact-grid img.qr{width:100%;border:1px solid rgba(242,237,227,.12);}
.contact-info{text-align:left;}
.contact-info .row{margin-bottom:20px;}
.contact-info .row .label{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.contact-info .row a{text-decoration:none;font-size:15px;opacity:.9;}
@media (max-width:749px){.contact-grid{grid-template-columns:1fr;}}

footer{padding:60px 0 40px;text-align:center;border-top:1px solid rgba(242,237,227,.08);position:relative;z-index:2;}
footer img.wordmark{width:180px;margin:0 auto 22px;opacity:.9;}
.social-row{display:flex;justify-content:center;gap:26px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:20px;}
.social-row a{text-decoration:none;opacity:.75;transition:opacity .2s;}
.social-row a:hover{opacity:1;}
footer .fine{font-size:11px;opacity:.4;letter-spacing:.05em;}

/* Gallery media */
.tilt video{width:100%;height:100%;object-fit:cover;transition:transform .2s ease-out;will-change:transform;display:block;}
.lightbox video{max-width:92vw;max-height:82vh;object-fit:contain;display:none;}
