:root{
  --ink:#15110C; --ink-2:#1D1712; --stone:#EDE6D6; --stone-2:#E3D9C4;
  --gold:#B4894F; --gold-light:#D8B784; --oxblood:#5C2420; --taupe:#9C8D78;
  --line: rgba(237,230,214,0.14);
  --ok:#5C8A5C; --warn:#B4894F; --err:#A6453D;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--ink); color:var(--stone); font-family:'Inter',sans-serif; font-weight:300;}
h1,h2,h3,.serif{font-family:'Bodoni Moda',serif; font-weight:500; letter-spacing:0.01em;}
a{color:inherit; text-decoration:none;}
img{display:block; max-width:100%; height:auto;}
.eyebrow{font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-light); font-weight:500;}

/* woven divider */
.weave{height:10px;width:100%;background:repeating-linear-gradient(90deg,var(--gold) 0 2px,transparent 2px 14px,var(--oxblood) 14px 16px,transparent 16px 28px);opacity:.85;}

/* NAV */
nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:16px 5vw;background:rgba(21,17,12,.92);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);}
.brand{display:flex;align-items:center;gap:10px;}
.brand img{width:32px;height:32px;border-radius:50%;object-fit:cover;}
.brand span{font-family:'Bodoni Moda',serif;font-size:19px;letter-spacing:.1em;}
.navlinks{display:flex;align-items:center;gap:26px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;}
.navlinks a{opacity:.85;}
.navlinks a:hover{opacity:1;color:var(--gold-light);}
.currency-switch{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--taupe);}
.currency-switch a.active{color:var(--gold-light);}
.cart-link{position:relative;}
.cart-badge{position:absolute;top:-10px;right:-14px;background:var(--gold);color:var(--ink);font-size:10px;padding:1px 5px;border-radius:8px;}
.menu-btn{display:none;background:none;border:0;color:var(--stone);font-size:22px;cursor:pointer;}

/* BUTTONS */
.btn{display:inline-block;padding:13px 26px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;border-radius:2px;transition:all .25s;cursor:pointer;border:none;font-family:'Inter',sans-serif;}
.btn-solid{background:var(--gold);color:var(--ink);}
.btn-solid:hover{background:var(--gold-light);}
.btn-outline{border:1px solid var(--stone-2);color:var(--stone);background:transparent;}
.btn-outline:hover{border-color:var(--gold);color:var(--gold-light);}
.btn-block{width:100%;text-align:center;}
.btn-danger{background:var(--err);color:#fff;}

/* HERO */
.hero{position:relative;height:88svh;min-height:520px;width:100%;display:flex;align-items:flex-end;}
.hero .bg{position:absolute;inset:0;}
.hero .bg img{width:100%;height:100%;object-fit:cover;object-position:center 20%;}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(21,17,12,.92) 5%,rgba(21,17,12,.15) 55%,rgba(21,17,12,.35) 100%);}
.hero-content{position:relative;z-index:2;padding:0 5vw 56px;max-width:820px;}
.hero h1{font-size:clamp(36px,7vw,80px);line-height:1.02;color:var(--stone);}
.hero h1 em{font-style:italic;color:var(--gold-light);}
.hero p{margin-top:20px;max-width:480px;font-size:16px;line-height:1.7;color:var(--stone-2);}
.hero-ctas{margin-top:30px;display:flex;gap:14px;flex-wrap:wrap;}

/* PAGE HEADER (non-hero pages) */
.page-head{padding:90px 5vw 40px;background:var(--ink);}
.page-head h1{font-size:clamp(30px,4vw,50px);}
.page-head p{color:var(--stone-2);margin-top:12px;max-width:520px;font-size:14px;line-height:1.7;}

/* SECTIONS shared */
.manifesto{background:var(--stone);color:var(--ink);padding:100px 5vw;text-align:center;}
.manifesto .eyebrow{color:var(--oxblood);}
.manifesto blockquote{font-family:'Bodoni Moda',serif;font-style:italic;font-size:clamp(22px,3.2vw,38px);line-height:1.35;max-width:880px;margin:22px auto 0;color:#241C14;}

.craft{background:var(--ink);padding:100px 5vw;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.craft-images{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.craft-images .tall{aspect-ratio:3/4;overflow:hidden;border-radius:2px;}
.craft-images .tall img{width:100%;height:100%;object-fit:cover;}
.craft-images .tall:nth-child(2){margin-top:36px;}
.craft-text h2{font-size:clamp(28px,3.4vw,44px);line-height:1.15;margin-bottom:20px;}
.craft-text p{font-size:15px;line-height:1.85;color:var(--stone-2);margin-bottom:14px;max-width:480px;}
.talent-line{margin-top:26px;padding-top:22px;border-top:1px solid var(--line);font-family:'Bodoni Moda',serif;font-style:italic;font-size:19px;color:var(--gold-light);}

/* PRODUCT GRID */
.shop-wrap{padding:0 5vw 100px;}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px;}
.filters a{padding:8px 16px;border:1px solid var(--line);border-radius:20px;font-size:12px;letter-spacing:.06em;}
.filters a.active,.filters a:hover{border-color:var(--gold);color:var(--gold-light);}
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.p-card{background:var(--ink-2);border:1px solid var(--line);border-radius:2px;overflow:hidden;transition:transform .3s;}
.p-card:hover{transform:translateY(-4px);}
.p-card .img-wrap{aspect-ratio:3/4;overflow:hidden;}
.p-card .img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .6s;}
.p-card:hover .img-wrap img{transform:scale(1.05);}
.p-card .p-body{padding:16px;}
.p-card .p-cat{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--taupe);}
.p-card h3{font-size:17px;margin:6px 0 8px;line-height:1.3;}
.p-card .p-price{color:var(--gold-light);font-family:'Bodoni Moda',serif;font-size:16px;}
.empty-state{padding:80px 0;text-align:center;color:var(--stone-2);}

/* PRODUCT DETAIL */
.product-detail{padding:90px 5vw 100px;display:grid;grid-template-columns:1fr 1fr;gap:60px;}
.pd-gallery{aspect-ratio:3/4;overflow:hidden;border-radius:2px;}
.pd-gallery img{width:100%;height:100%;object-fit:cover;}
.pd-info .eyebrow{margin-bottom:10px;}
.pd-info h1{font-size:clamp(28px,3.4vw,42px);margin-bottom:14px;}
.pd-price{font-family:'Bodoni Moda',serif;font-size:26px;color:var(--gold-light);margin-bottom:22px;}
.pd-desc{color:var(--stone-2);line-height:1.85;font-size:15px;margin-bottom:26px;white-space:pre-line;}
.qty-row{display:flex;align-items:center;gap:14px;margin-bottom:22px;}
.qty-row input{width:64px;padding:10px;background:var(--ink);border:1px solid var(--line);color:var(--stone);text-align:center;border-radius:2px;}

/* CART */
.cart-wrap{padding:90px 5vw 100px;max-width:900px;margin:0 auto;}
.cart-item{display:grid;grid-template-columns:90px 1fr auto auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);}
.cart-item img{width:90px;height:110px;object-fit:cover;border-radius:2px;}
.cart-item h3{font-size:16px;margin-bottom:6px;}
.cart-item .price{color:var(--gold-light);font-family:'Bodoni Moda',serif;}
.cart-item form{display:flex;align-items:center;gap:8px;}
.cart-item input[type=number]{width:56px;padding:8px;background:var(--ink-2);border:1px solid var(--line);color:var(--stone);text-align:center;border-radius:2px;}
.cart-totals{margin-top:30px;display:flex;justify-content:flex-end;}
.cart-totals table{font-size:15px;}
.cart-totals td{padding:8px 16px;}
.cart-totals .grand{font-family:'Bodoni Moda',serif;font-size:22px;color:var(--gold-light);}

/* FORMS (checkout, login, register, account, admin) */
.form-wrap{padding:90px 5vw 100px;max-width:560px;margin:0 auto;}
.form-wrap.wide{max-width:820px;}
.field{margin-bottom:20px;}
.field label{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--taupe);margin-bottom:8px;}
.field input,.field textarea,.field select{width:100%;padding:13px 14px;background:var(--ink-2);border:1px solid var(--line);color:var(--stone);border-radius:2px;font-family:'Inter',sans-serif;font-size:14px;}
.field textarea{min-height:110px;resize:vertical;}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--gold);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.pay-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:24px;}
.pay-option{border:1px solid var(--line);padding:16px;border-radius:2px;cursor:pointer;}
.pay-option input{margin-right:8px;}
.pay-option.selected{border-color:var(--gold);}
.alert{padding:14px 16px;border-radius:2px;margin-bottom:20px;font-size:14px;}
.alert-err{background:rgba(166,69,61,.15);border:1px solid var(--err);color:#F0B4AE;}
.alert-ok{background:rgba(92,138,92,.15);border:1px solid var(--ok);color:#BEE0BE;}
.helptext{font-size:12px;color:var(--taupe);margin-top:6px;}

/* TABLES (account/admin) */
.table-wrap{overflow-x:auto;}
table.data{width:100%;border-collapse:collapse;font-size:14px;}
table.data th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);color:var(--taupe);font-size:11px;letter-spacing:.08em;text-transform:uppercase;}
table.data td{padding:14px;border-bottom:1px solid var(--line);vertical-align:middle;}
table.data tr:hover{background:rgba(255,255,255,.02);}
.status-pill{padding:4px 10px;border-radius:12px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;}
.status-pending{background:rgba(180,137,79,.2);color:var(--gold-light);}
.status-contacted{background:rgba(156,141,120,.25);color:var(--stone-2);}
.status-paid,.status-completed{background:rgba(92,138,92,.2);color:#BEE0BE;}
.status-shipped{background:rgba(92,138,138,.2);color:#AEDADF;}
.status-cancelled{background:rgba(166,69,61,.2);color:#F0B4AE;}

footer{background:var(--ink-2);border-top:1px solid var(--line);}
.foot-inner{padding:44px 5vw 30px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;}
.fine{font-size:11px;color:var(--taupe);}
.foot-links{display:flex;gap:22px;font-size:12px;}
.foot-links a{opacity:.8;}
.foot-links a:hover{opacity:1;color:var(--gold-light);}

/* ADMIN shell */
.admin-body{display:flex;min-height:100vh;}
.admin-sidebar{width:230px;background:var(--ink-2);border-right:1px solid var(--line);padding:24px 0;flex-shrink:0;}
.admin-sidebar .brand{padding:0 22px 24px;}
.admin-sidebar nav a{display:block;padding:12px 22px;font-size:13px;letter-spacing:.04em;color:var(--stone-2);border-left:2px solid transparent;}
.admin-sidebar nav a:hover,.admin-sidebar nav a.active{color:var(--gold-light);border-left-color:var(--gold);background:rgba(180,137,79,.06);}
.admin-main{flex:1;padding:34px 40px;max-width:1200px;}
.admin-main h1{font-size:28px;margin-bottom:6px;}
.admin-main .sub{color:var(--taupe);font-size:13px;margin-bottom:30px;}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:40px;}
.stat-card{background:var(--ink-2);border:1px solid var(--line);padding:22px;border-radius:2px;}
.stat-card .num{font-family:'Bodoni Moda',serif;font-size:32px;color:var(--gold-light);}
.stat-card .lbl{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--taupe);margin-top:6px;}
.admin-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;}
.thumb-sm{width:52px;height:64px;object-fit:cover;border-radius:2px;}

@media (max-width:980px){
  .product-grid{grid-template-columns:repeat(2,1fr);}
  .craft{grid-template-columns:1fr;gap:36px;padding:80px 6vw;}
  .craft-images{order:2;}
  .product-detail{grid-template-columns:1fr;padding:70px 6vw 80px;gap:34px;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .admin-sidebar{position:fixed;left:-240px;top:0;bottom:0;z-index:200;transition:left .25s;}
  .admin-sidebar.open{left:0;}
  .admin-main{padding:24px 5vw;}
}
@media (max-width:680px){
  .menu-btn{display:block;}
  .navlinks{position:fixed;top:64px;left:0;right:0;background:var(--ink);flex-direction:column;align-items:flex-start;padding:20px 6vw;gap:16px;border-bottom:1px solid var(--line);display:none;}
  .navlinks.open{display:flex;}
  .product-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .cart-item{grid-template-columns:70px 1fr;grid-template-rows:auto auto;}
  .field-row{grid-template-columns:1fr;}
  .pay-options{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:1fr 1fr;}
  .foot-inner{flex-direction:column;align-items:flex-start;}
}

/* =========================================================
   MOTION & POLISH LAYER
   ========================================================= */
html{scroll-behavior:smooth;}

@keyframes pageFadeIn{from{opacity:0;}to{opacity:1;}}
body{animation:pageFadeIn .5s ease both;}

@keyframes kenBurns{
  0%{transform:scale(1.0);}
  100%{transform:scale(1.09);}
}
.hero .bg img{animation:kenBurns 16s ease-in-out infinite alternate;}

@keyframes fadeUp{
  from{opacity:0; transform:translateY(22px);}
  to{opacity:1; transform:translateY(0);}
}
.hero-content .eyebrow{animation:fadeUp .7s ease both .05s;}
.hero-content h1{animation:fadeUp .8s ease both .15s;}
.hero-content p{animation:fadeUp .8s ease both .28s;}
.hero-content .hero-ctas{animation:fadeUp .8s ease both .4s;}

/* generic scroll reveal */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1; transform:translateY(0);}

/* staggered children inside a revealed container */
.stagger > *{opacity:0; transform:translateY(20px); transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1);}
.stagger.in > *{opacity:1; transform:translateY(0);}
.stagger.in > *:nth-child(1){transition-delay:.03s;}
.stagger.in > *:nth-child(2){transition-delay:.09s;}
.stagger.in > *:nth-child(3){transition-delay:.15s;}
.stagger.in > *:nth-child(4){transition-delay:.21s;}
.stagger.in > *:nth-child(5){transition-delay:.27s;}
.stagger.in > *:nth-child(6){transition-delay:.33s;}
.stagger.in > *:nth-child(7){transition-delay:.39s;}
.stagger.in > *:nth-child(8){transition-delay:.45s;}
.stagger.in > *:nth-child(n+9){transition-delay:.5s;}

/* nav: subtle shadow + tighten on scroll */
nav{transition:background .3s ease, box-shadow .3s ease, padding .3s ease;}
nav.scrolled{box-shadow:0 8px 24px rgba(0,0,0,.35); padding-top:12px; padding-bottom:12px;}
.brand img{transition:transform .4s ease;}
.brand:hover img{transform:rotate(-8deg) scale(1.05);}

/* nav links underline sweep */
.navlinks a{position:relative;}
.navlinks a:not(.cart-link)::after{
  content:''; position:absolute; left:0; bottom:-4px; width:0; height:1px; background:var(--gold-light);
  transition:width .3s ease;
}
.navlinks a:not(.cart-link):hover::after{width:100%;}

/* buttons: shine + lift */
.btn{position:relative; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-solid:hover{box-shadow:0 10px 24px rgba(180,137,79,.35);}
.btn::before{
  content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.35), transparent);
  transform:skewX(-20deg); transition:left .6s ease;
}
.btn:hover::before{left:130%;}
.btn:active{transform:translateY(0) scale(.98);}

/* product cards: lift + deeper zoom + shadow */
.p-card{transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease;}
.p-card:hover{transform:translateY(-6px); box-shadow:0 20px 40px rgba(0,0,0,.35); border-color:var(--gold);}
.p-card .img-wrap img{transition:transform .8s cubic-bezier(.2,.7,.2,1), filter .5s ease;}
.p-card:hover .img-wrap img{transform:scale(1.08); filter:brightness(1.05);}
.p-card .p-price{transition:color .3s ease;}
.p-card:hover .p-price{color:var(--gold);}

/* cart badge pop */
@keyframes badgePop{0%{transform:scale(0);}70%{transform:scale(1.25);}100%{transform:scale(1);}}
.cart-badge{animation:badgePop .4s cubic-bezier(.34,1.56,.64,1) both;}

/* weave divider draws in on reveal */
.weave{transform-origin:left center; transform:scaleX(0); transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.weave.in{transform:scaleX(1);}

/* form fields: focus glow */
.field input,.field textarea,.field select{transition:border-color .25s ease, box-shadow .25s ease;}
.field input:focus,.field textarea:focus,.field select:focus{box-shadow:0 0 0 3px rgba(180,137,79,.15);}

/* pay option select transition */
.pay-option{transition:border-color .25s ease, background .25s ease, transform .2s ease;}
.pay-option:hover{transform:translateY(-2px);}
.pay-option.selected{background:rgba(180,137,79,.08);}

/* currency switch active underline */
.currency-switch a{position:relative; padding-bottom:2px;}
.currency-switch a.active::after{content:'';position:absolute;left:0;bottom:-2px;width:100%;height:1px;background:var(--gold-light);}

/* admin stat cards */
.stat-card{transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;}
.stat-card:hover{transform:translateY(-3px); box-shadow:0 12px 26px rgba(0,0,0,.3); border-color:var(--gold);}

/* table row hover slide */
table.data tr{transition:background .2s ease;}

/* respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
  html{scroll-behavior:auto;}
}
