/* ============================================================================
   CELLARHAND · ARTICLES STYLES  (used by articles/index.html and every
   article page in articles/)
   ----------------------------------------------------------------------------
   • Brand colours / fonts live in the :root block below (TOKENS). They match
     home.css and join.css; change them in all three to re-theme the site.
   • Section banners ( ===== LIST ===== etc.) mark each area.
   SECTION MAP: tokens · base · wine glass cursor · masthead · buttons · page ·
                list · article · call to action · footer · responsive
   ============================================================================ */

/* ============================== TOKENS ============================== */
:root{
  --paper:#F7F3EA;
  --ink:#1E1C18;
  --ink-60:rgba(30,28,24,.64);
  --ln:rgba(30,28,24,.2);
  --cream:#F2EFE6;
  --germinal:#AAB877;
  --floreal:#CD927E;
  --messidor:#E49E28;
  --fructidor:#792641;
  --vendemiaire:#B94438;
  --frimaire:#3A3A39;
  --ventose:#775F4C;
  --serif:"Fraunces", Georgia, serif;
  --body:"Tinos", "Times New Roman", Georgia, serif;
  --mast-h:62px;
}

/* ============================== BASE ============================== */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--body);font-size:1.08rem;line-height:1.82;
  color:var(--ink);background:var(--paper);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  display:flex;flex-direction:column;min-height:100vh;
}
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:2000;
  opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='280' height='280'><filter id='gr'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='280' height='280' filter='url(%23gr)'/></svg>");
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;}
::selection{background:var(--vendemiaire);color:var(--paper);}
:focus-visible{outline:2px solid var(--vendemiaire);outline-offset:3px;}
h1,h2{font-family:var(--serif);font-weight:540;line-height:1.05;letter-spacing:-0.015em;}
h1{font-size:clamp(2.4rem,4.8vw,3.8rem);}
em{font-style:italic;}
.k{font-family:var(--body);font-weight:700;font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;}
.sub{font-style:italic;font-size:clamp(1.2rem,1.9vw,1.45rem);line-height:1.45;color:var(--ventose);}

/* ============================== THE WINE GLASS (same as home.css; behaviour in assets/js/cursor.js) — empty it tips like a cursor, full it stands and sloshes ============================== */
.has-manicule, .has-manicule *{cursor:none !important;}
.has-manicule input,.has-manicule select,.has-manicule textarea,.has-manicule option{cursor:auto !important;}
#manicule{
  position:fixed;left:0;top:0;z-index:9999;
  width:40px;height:61px;pointer-events:none;opacity:0;
  transition:opacity .25s ease;
}
#manicule.on{opacity:1;}
#manicule .hand{
  width:100%;height:100%;
  transform-origin:18% 10%;
  transform:rotate(-10deg);
  transition:transform .22s cubic-bezier(.34,1.4,.5,1);
  filter:drop-shadow(1px 1.5px 0 rgba(30,28,24,.16));
}
#manicule .wine{
  transform:scaleY(0);transform-box:fill-box;transform-origin:50% 100%;
  transition:transform .4s ease;
}
#manicule .slosh{transform-box:fill-box;transform-origin:50% 62%;}
#manicule.hover .hand{transform:rotate(0deg);}
#manicule.hover .wine{transform:scaleY(1);}
#manicule.hover .slosh{animation:wslosh 2.1s ease-in-out .4s infinite;}
#manicule.press .hand{transform:rotate(-14deg) scale(.97);}
@keyframes wslosh{
  0%,100%{transform:rotate(0deg)}
  28%{transform:rotate(2.6deg)}
  64%{transform:rotate(-2.1deg)}
}

/* ============================== MASTHEAD ============================== */
.masthead{position:sticky;top:0;z-index:50;}
.masthead .bar{
  display:flex;align-items:center;justify-content:space-between;gap:2rem;
  padding:.5rem clamp(1.2rem,4vw,3rem);min-height:var(--mast-h);
  background:var(--frimaire);
}
.mast-logo img{height:42px;width:auto;}
.navlink{
  font-family:var(--body);font-weight:500;font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--cream);opacity:.85;text-decoration:none;transition:opacity .25s ease;
}
.navlink:hover{opacity:1;}

/* ============================== BUTTONS ============================== */
.btn{
  display:inline-block;font-family:var(--body);font-weight:700;
  font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;
  text-decoration:none;text-align:center;padding:1.1em 2.6em;
  background:var(--vendemiaire);color:var(--paper);
  border:1px solid var(--vendemiaire);
  transition:background-color .3s ease,border-color .3s ease;
}
.btn:hover{background:var(--fructidor);border-color:var(--fructidor);}
.tlink{
  font-family:var(--body);font-weight:700;font-size:.76rem;letter-spacing:.26em;text-transform:uppercase;
  text-decoration:none;padding-bottom:.35em;border-bottom:1px solid var(--vendemiaire);
  transition:color .25s ease;
}
.tlink:hover{color:var(--vendemiaire);}

/* ============================== PAGE ============================== */
.page{flex:1;border-left:10px solid var(--frimaire);padding:clamp(4rem,7vw,6.5rem) 0 clamp(5rem,9vw,8rem);}
.wrapc{max-width:1080px;margin:0 auto;padding:0 clamp(1.2rem,4vw,4rem);}

/* the quiet header: one dot, one line (same as join.html) */
.sthead{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:2.4rem;}
.sleft{display:flex;align-items:center;gap:1.1rem;}
.sthead .sdot{flex:none;width:14px;height:14px;border-radius:999px;background:var(--vendemiaire);}
.sthead .k{color:var(--ventose);}
.sthead .k a{text-decoration:none;}
.sthead .k a:hover{color:var(--vendemiaire);}

/* ============================== LIST (articles/index.html) ============================== */
.list{max-width:760px;}
.list-head h1{margin-bottom:1.1rem;}
.list-head .sub{margin-bottom:clamp(3.4rem,6vw,5rem);}
.cards{display:grid;gap:0;}
.card{border-top:1px solid var(--ln);padding:clamp(2.2rem,4vw,3rem) 0;}
.card:last-child{border-bottom:1px solid var(--ln);}
.meta{font-family:var(--body);font-weight:700;font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ventose);}
.meta .sep{margin:0 .6em;color:var(--ln);}
.card h2{font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.15;margin:.8rem 0 .9rem;}
.card h2 a{text-decoration:none;transition:color .25s ease;}
.card h2 a:hover{color:var(--vendemiaire);}
.card .sum{color:var(--ink-60);max-width:34em;line-height:1.7;margin-bottom:1.6rem;}

/* ============================== ARTICLE (one article page) ============================== */
.article{max-width:680px;}
.article-head h1{font-size:clamp(2.1rem,4.2vw,3.3rem);line-height:1.1;margin-bottom:1.4rem;}
.article-head .sub{margin-bottom:2rem;}
.byline{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;
  padding:1.3rem 0;border-top:1px solid var(--ln);border-bottom:1px solid var(--ln);
  margin-bottom:clamp(2.6rem,5vw,3.6rem);}
.byline .who{font-family:var(--serif);font-style:italic;font-weight:440;font-size:1.1rem;}
.byline .role{font-family:var(--body);font-weight:700;font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-60);}
.byline .date{font-family:var(--body);font-weight:700;font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ventose);margin-left:auto;}
.prose p{font-size:1.12rem;line-height:1.9;}
.prose p + p{margin-top:1.5em;}
.prose a{text-decoration:none;border-bottom:1px solid var(--vendemiaire);transition:color .25s ease;}
.prose a:hover{color:var(--vendemiaire);}
.prose .signoff{font-family:var(--serif);font-style:italic;font-weight:440;font-size:1.45rem;margin-top:2em;}

/* ============================== CALL TO ACTION ============================== */
.cta{margin-top:clamp(4rem,7vw,5.5rem);padding-top:clamp(2.6rem,5vw,3.4rem);border-top:1px solid var(--ln);}
.cta .k{color:var(--ventose);}
.cta .sub{margin:.8rem 0 2rem;}
.cta-row{display:flex;align-items:center;gap:2.2rem;flex-wrap:wrap;}
.back{display:inline-block;margin-top:clamp(3rem,5vw,4rem);}

/* ============================== FOOTER (same as join.html) ============================== */
.footer{background:var(--frimaire);color:var(--cream);
  border-left:10px solid var(--frimaire);
  padding:2rem clamp(1.2rem,4vw,3rem);}
.footer-row{max-width:1080px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap;
  font-family:var(--body);font-weight:500;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(242,239,230,.75);}
.footer-row .slogan{font-family:var(--serif);font-style:italic;font-weight:440;font-size:1.1rem;
  letter-spacing:.02em;text-transform:none;color:var(--cream);}
.footer-row a{color:var(--cream);text-decoration:none;border-bottom:1px solid rgba(242,239,230,.45);padding-bottom:.2em;transition:color .25s;}
.footer-row a:hover{color:var(--germinal);}

/* ============================== RESPONSIVE ============================== */
@media(max-width:700px){
  .page,.footer{border-left-width:8px;}
  .byline .date{margin-left:0;width:100%;}
  .prose p{font-size:1.06rem;line-height:1.85;}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  #manicule .hand,#manicule .wine{transition:none;}
  #manicule .slosh{animation:none;}
}
