/* Jules Cipher — design tokens (from claude_design export) */
@font-face{
  font-family:'resistanceregular';
  src:url('../fonts/resistance_generale-webfont.woff2') format('woff2'),
      url('../fonts/resistance_generale-webfont.woff') format('woff'),
      url('../fonts/resistance_generale-webfont.ttf') format('truetype');
  font-weight:normal;font-style:normal;
}
@import url('https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap');

:root{
  /* base palette */
  --black-void:#0a0a0a;
  --black-surface:#161616;
  --black-raised:#1f1f1f;
  --paper:#efe8d8;
  --white-ink:#f5f2ea;
  --grey-ink:#a8a49a;
  /* riso/rave accents */
  --riso-mud:#a68a5b;
  --riso-pink:#e8304f;
  --riso-yellow:#ffe600;
  --riso-cyan:#00c2c4;
  /* semantic */
  --bg-page:var(--black-void);
  --bg-surface:var(--black-surface);
  --text-primary:var(--white-ink);
  --text-muted:var(--grey-ink);
  --accent-primary:var(--riso-mud);
  --border-default:rgba(245,242,234,0.16);
  --link-color:var(--riso-cyan);
  --link-hover:var(--riso-mud);

  --font-display:'resistanceregular','Anton',sans-serif;
  --font-mono:'Space Mono',monospace;
  --text-xs:0.75rem;
  --text-sm:0.875rem;
  --text-body:1rem;
  --text-lg:1.25rem;
  --text-2xl:2.5rem;
  --text-3xl:3.5rem;
  --leading-body:1.6;
  --tracking-tight:-0.02em;
  --tracking-wide:0.06em;

  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --space-8:64px;
  --space-9:96px;
  --radius-sm:2px;
  --container-max:1200px;

  --shadow-riso-sm:3px 3px 0 var(--riso-pink);
  --shadow-riso-md:6px 6px 0 var(--riso-pink);
  --shadow-riso-cyan:6px 6px 0 var(--riso-cyan);
  --ease-snap:cubic-bezier(0.2,0.9,0.2,1);
  --duration-fast:120ms;
}

.wobble-a{border-radius:2px 8px 3px 10px/9px 2px 8px 3px;}
.texture-scanlines{background-image:repeating-linear-gradient(0deg,rgba(245,242,234,0.05) 0px,rgba(245,242,234,0.05) 1px,transparent 1px,transparent 3px);}

*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--black-void) url('../img/fond_noir.png') repeat;
  color:var(--text-primary);
  font-family:var(--font-mono);
}
a{color:var(--link-color);text-decoration:none;}
a:hover{color:var(--link-hover);}
::selection{background:var(--riso-pink);color:#0a0a0a;}

/* nav */
.navbar{
  position:sticky;top:0;z-index:20;
  display:flex;gap:var(--space-6);
  padding:var(--space-4) var(--space-6);
  font-size:var(--text-sm);
  
  letter-spacing:var(--tracking-wide);
  background:var(--bg-page);
  border-bottom:1px solid var(--border-default);
}
.navbar a{color:var(--text-primary);cursor:pointer;}
.navbar a.active{color:var(--riso-mud);}

/* page sections */
.page{display:none;}
.page.active{display:block;}
.wrap{max-width:var(--container-max);margin:0 auto;padding:var(--space-9) var(--space-6);}

/* hero */
.hero{position:relative;width:100%;min-height:min(82vh,720px);background:#000;}
.hero-bg{position:absolute;inset:0;overflow:hidden;}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-overlay{position:absolute;inset:0;background:rgba(10,10,10,0.8);}
.hero-overlay::after{content:"";position:absolute;left:0;right:0;bottom:0;height:140px;background:linear-gradient(to bottom, transparent, var(--black-void));}
.hero-content{position:relative;min-height:min(82vh,720px);display:flex;flex-direction:column;justify-content:center;padding:var(--space-6);}
.hero-title{font-family:var(--font-display);color:var(--white-ink);font-size:clamp(3rem,9vw,8rem);line-height:1;letter-spacing:var(--tracking-tight);}
.hero-title .accent{color:var(--riso-mud);}
.hero-tagline{font-size:var(--text-lg);color:var(--grey-ink);margin-top:var(--space-5);letter-spacing:var(--tracking-wide);}
.hero-tags{display:flex;gap:var(--space-2);margin-top:var(--space-5);flex-wrap:wrap;}

/* tag */
.tag{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);text-transform:lowercase;padding:3px 10px;border-radius:999px;}
.tag::before{content:"#";opacity:0.6;}
.tag--mud{background:var(--riso-mud);color:var(--white-ink);}
.tag--pink{background:var(--riso-pink);color:#0a0a0a;}
.tag--yellow{background:var(--riso-yellow);color:#0a0a0a;}
.tag--cyan{background:var(--riso-cyan);color:#0a0a0a;}

/* headings */
.h2{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--white-ink);letter-spacing:var(--tracking-tight);margin-bottom:var(--space-4);}
.display-title{font-family:var(--font-display);font-size:clamp(2.5rem,7vw,6rem);line-height:0.95;letter-spacing:var(--tracking-tight);color:var(--white-ink);}
.subtitle{font-size:var(--text-lg);color:var(--grey-ink);margin-top:var(--space-3);letter-spacing:var(--tracking-wide);}
p{font-size:var(--text-body);line-height:var(--leading-body);color:var(--text-primary);max-width:640px;}
p.muted{color:var(--text-muted);}

/* home grid */
.home-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-8);}
@media (max-width:800px){.home-grid{grid-template-columns:1fr;}}

/* code snippet */
.code-snippet{font-size:13px;line-height:1.7;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-4);margin:0;overflow:auto;}
.code-snippet div > span{margin-right:10px;}
.code-snippet.accent-mud div > span{color:var(--riso-mud);}
.code-snippet.accent-yellow div > span{color:var(--riso-yellow);}

/* card */
.card{background:var(--bg-surface);border:2px solid var(--white-ink);box-shadow:var(--shadow-riso-md);padding:var(--space-5);border-radius:var(--radius-sm);}
.card.accent-cyan{box-shadow:var(--shadow-riso-cyan);}
.card-title{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:var(--tracking-tight);}
.card-meta{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-2);}

/* button */
.btn{
  font-family:var(--font-mono);font-weight:700;letter-spacing:var(--tracking-wide);
  border-radius:var(--radius-sm);cursor:pointer;border:2px solid transparent;
  transition:transform var(--duration-fast) var(--ease-snap), box-shadow var(--duration-fast) var(--ease-snap);
  display:inline-block;box-shadow:none;
}
.btn--sm{padding:6px 14px;font-size:12px;}
.btn--primary{background:var(--riso-mud);color:#0a0a0a;border-color:var(--riso-mud);}
.btn--secondary{background:transparent;color:var(--white-ink);border-color:var(--white-ink);}
.btn:hover{box-shadow:var(--shadow-riso-sm);}
.btn:active{transform:translate(2px,2px);}

/* social link */
.social-link{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;border:2px solid var(--white-ink);
  color:var(--white-ink);font-size:13px;
  transition:background var(--duration-fast) var(--ease-snap), color var(--duration-fast) var(--ease-snap), border-color var(--duration-fast) var(--ease-snap);
}
.social-link:hover{background:var(--riso-mud);color:#0a0a0a;border-color:var(--riso-mud);}

/* video slot */
.yt-slot{position:relative;aspect-ratio:16/9;border:2px solid var(--white-ink);border-radius:var(--radius-sm);background:var(--black-surface);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.yt-slot--cyan{border-color:var(--riso-cyan);}
.yt-slot span{text-align:center;color:var(--grey-ink);font-size:var(--text-sm);letter-spacing:var(--tracking-wide);}
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-5);}

/* footer */
.site-footer{border-top:2px solid var(--border-default);padding:var(--space-6);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);font-size:var(--text-xs);color:var(--grey-ink);letter-spacing:var(--tracking-wide);}
