:root{
    --ink:#15171a;
    --ink-soft:#2a2d33;
    --bone:#f1ede4;
    --bone-dim:#d9d3c4;
    --blue:#3355ff;
    --orange:#ff7a29;
    --line:#3a3d44;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ink);
    color:var(--bone);
    font-family:'IBM Plex Sans', sans-serif;
    line-height:1.6;
    overflow-x:hidden;
  }
  h1,h2,h3,.display{
    font-family:'Space Grotesk', sans-serif;
    letter-spacing:-0.01em;
  }
  a{color:inherit;text-decoration:none;}
  img,svg{display:block;max-width:100%;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
  @media(max-width:640px){.wrap{padding:0 20px;}}

  /* ---------- NAV ---------- */
  nav{
    position:sticky;top:0;z-index:50;
    background:rgba(21,23,26,0.9);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  nav .wrap{
    display:flex;align-items:center;justify-content:space-between;
    height:72px;
  }
  .logo{
    font-family:'Space Grotesk',sans-serif;
    font-weight:700;font-size:1.15rem;
    display:flex;align-items:center;gap:10px;
  }
  .logo .mark{width:22px;height:22px;flex-shrink:0;}
  .navlinks{display:flex;gap:32px;font-size:0.92rem;color:var(--bone-dim);}
  .navlinks a:hover{color:var(--bone);}
  .nav-cta{
    background:var(--blue);color:#fff;padding:10px 20px;border-radius:2px;
    font-size:0.88rem;font-weight:600;
  }
  .nav-cta:hover{background:#4462ff;}
  @media(max-width:760px){.navlinks{display:none;}}
  @media(max-width:760px){.nav-cta{display:none;}}

  .hamburger{
    display:none;
    flex-direction:column;justify-content:center;gap:5px;
    width:36px;height:36px;background:none;border:none;cursor:pointer;padding:0;
  }
  .hamburger span{display:block;width:22px;height:2px;background:var(--bone);transition:transform .2s ease, opacity .2s ease;}
  @media(max-width:760px){.hamburger{display:flex;}}
  .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .hamburger.open span:nth-child(2){opacity:0;}
  .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  .mobile-menu{
    display:none;
    flex-direction:column;
    border-top:1px solid var(--line);
    background:var(--ink);
  }
  .mobile-menu.open{display:flex;}
  .mobile-menu a{
    padding:16px 20px;font-size:1rem;color:var(--bone);
    border-bottom:1px solid var(--line);
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    padding:120px 0 100px;
    overflow:hidden;
  }
  .hero .wrap{
    display:grid;grid-template-columns:1.15fr 0.85fr;gap:60px;align-items:center;
  }
  @media(max-width:900px){.hero .wrap{grid-template-columns:1fr;}}
  .eyebrow{
    color:var(--orange);font-size:0.85rem;font-weight:600;
    margin-bottom:18px;
  }
  .hero h1{
    font-size:clamp(2.4rem,5vw,3.6rem);
    font-weight:700;
    line-height:1.08;
    margin-bottom:24px;
  }
  .hero p.lead{
    color:var(--bone-dim);
    font-size:1.08rem;
    max-width:46ch;
    margin-bottom:36px;
  }
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:14px 26px;border-radius:2px;
    font-weight:600;font-size:0.95rem;
    transition:transform .15s ease, background .15s ease;
    border:1px solid transparent;
  }
  .btn-primary{background:var(--bone);color:var(--ink);}
  .btn-primary:hover{background:#fff;transform:translateY(-1px);}
  .btn-ghost{border-color:var(--line);color:var(--bone);}
  .btn-ghost:hover{border-color:var(--bone-dim);}

  /* hero photo */
  .hero-photo{
    position:relative;
    border:1px solid var(--line);
    border-radius:4px;
    overflow:hidden;
    opacity:0;
    transform:translateY(16px);
    animation:fadein .7s ease forwards .1s;
  }
  .hero-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .hero-photo-tag{
    position:absolute;left:0;right:0;bottom:0;
    background:linear-gradient(0deg, rgba(0,0,0,0.75), rgba(0,0,0,0));
    color:var(--bone);
    font-size:0.82rem;font-weight:600;
    padding:28px 18px 14px;
  }
  @keyframes fadein{to{opacity:1;transform:translateY(0);}}
  @media (prefers-reduced-motion: reduce){
    .hero-photo{animation:none;opacity:1;transform:none;}
  }

  /* ---------- SECTION HEADERS ---------- */
  section{padding:100px 0;}
  .section-head{max-width:640px;margin-bottom:56px;}
  .section-head h2{font-size:clamp(1.8rem,3.2vw,2.4rem);font-weight:600;margin-bottom:14px;}
  .section-head p{color:var(--bone-dim);font-size:1.02rem;}

  /* ---------- PROCESS ---------- */
  .process{border-top:1px solid var(--line);position:relative;overflow:hidden;}
  .process-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:0;
    border-top:1px solid var(--line);
    position:relative;
  }
  .process-grid::before{
    content:"";
    position:absolute;top:56px;left:0;right:0;height:1px;
    background:repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 12px);
    z-index:0;
  }
  @media(max-width:900px){.process-grid{grid-template-columns:repeat(2,1fr);}.process-grid::before{display:none;}}
  @media(max-width:560px){.process-grid{grid-template-columns:1fr;}}
  .process-step{
    padding:32px 28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);
    position:relative;overflow:hidden;
  }
  .process-grid .process-step:last-child{border-right:none;}
  .process-step .ghost-num{
    position:absolute;top:-6px;right:8px;
    font-family:'Space Grotesk';font-weight:700;font-size:4.6rem;
    color:transparent;-webkit-text-stroke:1px var(--line);
    line-height:1;z-index:0;user-select:none;
    transition:transform .3s ease;
  }
  .process-step:hover .ghost-num{transform:translateY(-4px);}
  .process-step .icon-badge{
    position:relative;z-index:1;
    width:44px;height:44px;border-radius:50%;
    background:var(--ink);border:1px solid var(--line);
    display:flex;align-items:center;justify-content:center;
    margin-bottom:20px;
  }
  .process-step .icon-badge svg{width:22px;height:22px;}
  .process-step .num{color:var(--orange);font-family:'Space Grotesk';font-weight:600;font-size:.85rem;margin-bottom:14px;display:block;position:relative;z-index:1;}
  .process-step h3{font-size:1.05rem;font-weight:600;margin-bottom:8px;position:relative;z-index:1;}
  .process-step p{color:var(--bone-dim);font-size:0.92rem;position:relative;z-index:1;}

  /* ---------- PRODUCTS ---------- */
  .products-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  @media(max-width:900px){.products-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:560px){.products-grid{grid-template-columns:1fr;}}
  .product-card{
    background:var(--ink);
    padding:36px 28px;
    transition:background .2s ease;
  }
  .product-card:hover{background:#1b1e22;}
  .product-icon{width:52px;height:52px;margin-bottom:24px;}
  .product-card h3{font-size:1.08rem;font-weight:600;margin-bottom:8px;}
  .product-card p{color:var(--bone-dim);font-size:0.9rem;}
  .product-card.photo{padding:0;}
  .product-card.photo .ph-img{width:100%;aspect-ratio:3/4;overflow:hidden;}
  .product-card.photo .ph-img img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;filter:saturate(0.95);transition:transform .4s ease;}
  .product-card.photo:hover .ph-img img{transform:scale(1.04);}
  .product-card.photo .ph-body{padding:24px 26px 30px;}

  /* light box gallery */
  .lightbox-gallery{background:#0d0e10;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .lb-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);}
  @media(max-width:700px){.lb-grid{grid-template-columns:1fr;}}
  .coque-grid{grid-template-columns:1fr 1fr 1fr;}
  @media(max-width:900px){.coque-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:560px){.coque-grid{grid-template-columns:1fr;}}
  .lb-card{position:relative;background:#000;overflow:hidden;aspect-ratio:3/4;}
  .lb-card img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;}
  .lb-caption{
    position:absolute;left:0;right:0;bottom:0;
    background:linear-gradient(0deg, rgba(0,0,0,0.85), rgba(0,0,0,0));
    padding:34px 24px 18px;
  }
  .lb-caption h4{font-family:'Space Grotesk';font-weight:600;font-size:1.05rem;color:var(--bone);margin-bottom:4px;}
  .lb-caption p{color:var(--bone-dim);font-size:0.85rem;}

  /* atelier */
  .atelier-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:40px;align-items:center;}
  @media(max-width:800px){.atelier-grid{grid-template-columns:1fr;}}
  .atelier-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .atelier-photos img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;border-radius:3px;border:1px solid var(--line);display:block;}
  .atelier-photos .tall{grid-row:span 2;}
  .atelier-text h2{font-size:clamp(1.7rem,3vw,2.2rem);font-weight:600;margin-bottom:16px;}
  .atelier-text p{color:var(--bone-dim);margin-bottom:16px;max-width:46ch;}

  /* ---------- SOCIAL / SHOPS ---------- */
  .shops{
    background:var(--bone);color:var(--ink);
  }
  .shops .wrap{
    display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--bone-dim);border:1px solid var(--bone-dim);
    padding:0;max-width:1180px;
  }
  @media(max-width:760px){.shops .wrap{grid-template-columns:1fr;}}
  .shop-card{
    background:var(--bone);padding:44px 40px;
    display:flex;flex-direction:column;justify-content:space-between;
    min-height:220px;
  }
  .shop-card h3{font-size:1.3rem;font-weight:700;margin-bottom:10px;}
  .shop-card p{color:#5a564c;font-size:0.92rem;margin-bottom:24px;}
  .shop-link{
    font-weight:600;font-size:0.92rem;
    display:inline-flex;align-items:center;gap:6px;
    border-bottom:1px solid var(--ink);width:fit-content;padding-bottom:2px;
  }

  /* ---------- CONTACT ---------- */
  .contact .wrap{
    display:grid;grid-template-columns:1fr 1fr;gap:60px;
  }
  @media(max-width:800px){.contact .wrap{grid-template-columns:1fr;}}
  .field{margin-bottom:20px;}
  .field label{display:block;font-size:0.85rem;color:var(--bone-dim);margin-bottom:8px;}
  .field input,.field textarea{
    width:100%;background:transparent;border:1px solid var(--line);
    color:var(--bone);padding:13px 14px;font-family:inherit;font-size:0.95rem;
    border-radius:2px;
  }
  .field input:focus,.field textarea:focus{outline:none;border-color:var(--blue);}
  .field textarea{min-height:110px;resize:vertical;}
  .submit-btn{
    background:var(--blue);color:#fff;border:none;
    padding:14px 28px;font-weight:600;font-size:0.95rem;
    border-radius:2px;cursor:pointer;font-family:inherit;
  }
  .submit-btn:hover{background:#4462ff;}
  .contact-info h3{font-size:1.4rem;font-weight:600;margin-bottom:16px;}
  .contact-info p{color:var(--bone-dim);margin-bottom:28px;max-width:38ch;}
  .contact-meta{border-top:1px solid var(--line);padding-top:20px;font-size:0.9rem;color:var(--bone-dim);}
  .contact-meta div{margin-bottom:8px;}

  /* ---------- FOOTER ---------- */
  footer{border-top:1px solid var(--line);padding:36px 0;}
  footer .wrap{
    display:flex;justify-content:space-between;align-items:center;
    font-size:0.85rem;color:var(--bone-dim);flex-wrap:wrap;gap:12px;
  }

/* category page header */
.cat-header{padding:140px 0 60px;border-bottom:1px solid var(--line);}
.cat-header h1{font-size:clamp(2rem,4.5vw,3rem);font-weight:700;margin:14px 0 18px;}
.cat-header .lead{color:var(--bone-dim);font-size:1.05rem;max-width:56ch;margin-bottom:28px;}

/* category teaser grid on homepage */
.teaser-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
@media(max-width:900px){.teaser-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.teaser-grid{grid-template-columns:1fr;}}
.teaser-card{background:var(--ink);display:block;color:inherit;}
.teaser-card .t-img{aspect-ratio:3/4;overflow:hidden;position:relative;}
.teaser-card .t-img img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;transition:transform .4s ease;}
.teaser-card:hover .t-img img{transform:scale(1.05);}
.teaser-card .t-img.contain-fit img.bg{position:absolute;inset:0;object-fit:cover;filter:blur(20px) brightness(0.55);transform:scale(1.15);}
.teaser-card .t-img.contain-fit img.fg{position:relative;width:100%;height:100%;object-fit:contain;object-position:center center;}
.teaser-card:hover .t-img.contain-fit img.fg{transform:scale(1.03);}

.lb-card.wide{grid-column:span 2;aspect-ratio:16/9;}
.lb-card.wide img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(20px) brightness(0.5);transform:scale(1.15);}
.lb-card.wide img.fg{position:relative;width:100%;height:100%;object-fit:contain;object-position:center center;}
@media(max-width:700px){.lb-card.wide{grid-column:span 1;}}
.teaser-card .t-body{padding:22px 22px 26px;}
.teaser-card h3{font-size:1.05rem;font-weight:600;margin-bottom:6px;}
.teaser-card p{color:var(--bone-dim);font-size:0.88rem;margin-bottom:10px;}
.teaser-card .t-link{color:var(--blue);font-size:0.85rem;font-weight:600;}
