/* L'Atelier à outils — feuille de style partagée */
:root{
  --bg:#EFEDE6;
  --surface:#FFFFFF;
  --surface-soft:#F7F5EF;
  --ink:#1C1B18;
  --ink-soft:#635F55;
  --line:#D9D4C6;
  --accent:#F2A900;
  --accent-ink:#1C1B18;
  --accent-soft:#FBE7B4;
  --good:#3E7B4F;
  --shadow:0 1px 0 rgba(28,27,24,.04), 0 8px 20px -14px rgba(28,27,24,.35);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#15140F; --surface:#201E17; --surface-soft:#262419;
    --ink:#ECE8DC; --ink-soft:#A69F8C; --line:#3A3728;
    --accent:#F2A900; --accent-ink:#15140F; --accent-soft:#4A3C12; --good:#78C48D;
    --shadow:0 1px 0 rgba(0,0,0,.2), 0 12px 24px -16px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"]{
  --bg:#15140F; --surface:#201E17; --surface-soft:#262419;
  --ink:#ECE8DC; --ink-soft:#A69F8C; --line:#3A3728;
  --accent:#F2A900; --accent-ink:#15140F; --accent-soft:#4A3C12; --good:#78C48D;
  --shadow:0 1px 0 rgba(0,0,0,.2), 0 12px 24px -16px rgba(0,0,0,.6);
}

*{box-sizing:border-box;}
html{color-scheme:light dark;scroll-behavior:smooth;}
html[data-theme="light"]{color-scheme:light;}
html[data-theme="dark"]{color-scheme:dark;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Source Sans 3", ui-sans-serif, system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}

/* Focus clavier visible et cohérent (accessibilité) : un contour net à la couleur d'accent
   du site, uniquement pour la navigation au clavier (:focus-visible) — la souris ne déclenche
   jamais ce contour, donc il ne gêne pas le confort visuel en usage normal à la souris/tactile. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible, summary:focus-visible{
  outline:2.5px solid var(--accent);
  outline-offset:2px;
  border-radius:4px;
}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px 60px;}

/* Page dédiée à un seul outil : mise en page resserrée, centrée, sans distraction */
.wrap-standalone{max-width:700px;}
.hero-standalone .hero-inner{max-width:700px;}
.card-standalone{max-width:none;margin:0;}
.standalone-footnote{
  max-width:700px;margin:28px auto 0;text-align:center;
  font-size:13px;color:var(--ink-soft);
}
.standalone-footnote a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:2px;}
.standalone-footnote a:hover{color:var(--accent);text-decoration-color:var(--ink-soft);}

/* ===== Mouvement d'entrée (respecte prefers-reduced-motion) ===== */
@keyframes riseIn{
  from{opacity:0;transform:translateY(14px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes popIn{
  0%{opacity:0;transform:scale(.94);}
  60%{opacity:1;transform:scale(1.015);}
  100%{opacity:1;transform:scale(1);}
}
@keyframes shimmerSweep{
  from{transform:translateX(-120%) skewX(-12deg);}
  to{transform:translateX(220%) skewX(-12deg);}
}
@keyframes softDrift{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(3%,-4%) scale(1.06);}
}
@keyframes wiggle{
  0%,100%{transform:rotate(8deg);}
  50%{transform:rotate(-6deg) scale(1.08);}
}
@keyframes ripple{
  from{transform:scale(0);opacity:.5;}
  to{transform:scale(2.6);opacity:0;}
}

.hero-inner > *{animation:riseIn .55s cubic-bezier(.2,.7,.3,1) backwards;}
.hero-inner > *:nth-child(1){animation-delay:.02s;}
.hero-inner > *:nth-child(2){animation-delay:.08s;}
.hero-inner > *:nth-child(3){animation-delay:.14s;}
.hero-inner > *:nth-child(4){animation-delay:.2s;}

.tool-card-wrap, .card, .related, .about{animation:riseIn .5s cubic-bezier(.2,.7,.3,1) backwards;}
.card{animation-delay:.06s;}
.related{animation-delay:.14s;}
.grid .tool-card-wrap:nth-child(1){animation-delay:.02s;}
.grid .tool-card-wrap:nth-child(2){animation-delay:.05s;}
.grid .tool-card-wrap:nth-child(3){animation-delay:.08s;}
.grid .tool-card-wrap:nth-child(4){animation-delay:.11s;}
.grid .tool-card-wrap:nth-child(5){animation-delay:.14s;}
.grid .tool-card-wrap:nth-child(6){animation-delay:.17s;}
.grid .tool-card-wrap:nth-child(7){animation-delay:.2s;}
.grid .tool-card-wrap:nth-child(8){animation-delay:.23s;}
.grid .tool-card-wrap:nth-child(9){animation-delay:.26s;}
.grid .tool-card-wrap:nth-child(10){animation-delay:.29s;}
.grid .tool-card-wrap:nth-child(n+11){animation-delay:.32s;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *, *::before, *::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

/* Nav */
nav.topbar{
  border-bottom:1px solid var(--line);
  background:var(--surface);
}
.topbar-inner{
  max-width:1160px;margin:0 auto;padding:16px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.brand{
  display:flex;align-items:center;gap:8px;
  font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:18px;
  text-decoration:none;color:var(--ink);
}
.brand .mark{
  width:22px;height:22px;background:var(--accent);border-radius:5px;
  display:inline-block;transform:rotate(8deg);transition:transform .3s ease;
}
.brand:hover .mark{animation:wiggle .5s ease;}
.crumb{font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--ink-soft);letter-spacing:.04em;}
.crumb a{text-decoration:none;color:var(--ink-soft);}
.crumb a:hover{color:var(--accent);}
.nav-right{display:flex;align-items:center;gap:14px;}
.theme-toggle{
  flex:none;display:flex;align-items:center;gap:7px;border:1px solid var(--line);
  background:var(--surface-soft);color:var(--ink-soft);cursor:pointer;
  border-radius:20px;padding:4px 10px 4px 4px;font-family:"JetBrains Mono",monospace;
  font-size:11px;letter-spacing:.02em;line-height:1;transition:border-color .15s,transform .15s;
}
.theme-toggle:hover{border-color:var(--accent);transform:translateY(-1px);}
.theme-toggle-track{
  position:relative;flex:none;width:34px;height:18px;border-radius:999px;
  background:var(--line);transition:background .2s ease;
}
.theme-toggle.is-dark .theme-toggle-track{background:var(--accent);}
.theme-toggle-icon{
  position:absolute;top:50%;transform:translateY(-50%);color:var(--ink-soft);
  display:flex;align-items:center;justify-content:center;transition:color .2s ease;
}
.theme-toggle-icon-light{left:3px;}
.theme-toggle-icon-dark{right:3px;color:var(--surface);}
.theme-toggle.is-dark .theme-toggle-icon-light{color:var(--surface);}
.theme-toggle.is-dark .theme-toggle-icon-dark{color:var(--accent-ink);}
.theme-toggle-knob{
  position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;
  background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.25);
  transition:transform .2s ease;
}
.theme-toggle.is-dark .theme-toggle-knob{transform:translateX(16px);}
.theme-toggle-label{min-width:32px;text-align:left;}

.search-row{margin-top:6px;position:relative;max-width:480px;}
.search-row input{
  width:100%;padding:12px 60px 12px 14px;border-radius:10px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:15px;
}
.search-kbd{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;
  font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--ink-soft);
  border:1px solid var(--line);border-radius:6px;padding:3px 7px;background:var(--surface-soft);
}
.section-title{
  font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);margin:0 0 14px;
}

.privacy-banner{
  display:flex;align-items:flex-start;gap:14px;padding:16px 18px;margin:0 0 28px;
  border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);
}
.privacy-banner-icon{font-size:22px;line-height:1;flex:none;}
.privacy-banner strong{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:15px;margin-bottom:2px;}
.privacy-banner span{font-size:13.5px;color:var(--ink-soft);line-height:1.5;}

.tag-chips{
  display:flex;flex-wrap:nowrap;gap:7px;margin:0 0 18px;
  overflow-x:auto;overflow-y:hidden;padding:1px 24px 14px 1px;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:var(--line) transparent;
  mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent 100%);
}
.tag-chips::-webkit-scrollbar{height:4px;}
.tag-chips::-webkit-scrollbar-track{background:transparent;}
.tag-chips::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;}
.tag-chips::-webkit-scrollbar-thumb:hover{background:var(--ink-soft);}
.tag-chip{
  flex:none;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.03em;
  border:1px solid var(--line);background:var(--surface);color:var(--ink-soft);
  border-radius:999px;padding:5px 11px;cursor:pointer;white-space:nowrap;
  transition:border-color .15s,color .15s,background .15s;
}
.tag-chip:hover{border-color:var(--accent);color:var(--ink);}
.tag-chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);}
@media (max-width:640px){
  .tag-chip{font-size:10.5px;padding:5px 10px;}
}

/* Hero */
header.hero{
  padding:44px 24px 32px;border-bottom:1px solid var(--line);margin-bottom:36px;
  position:relative;overflow:hidden;
}
header.hero::before, header.hero::after{
  content:"";position:absolute;border-radius:50%;filter:blur(52px);pointer-events:none;z-index:0;
  animation:softDrift 14s ease-in-out infinite;
}
header.hero::before{
  width:340px;height:340px;top:-160px;right:8%;
  background:radial-gradient(circle, var(--accent) 0%, transparent 70%);opacity:.16;
}
header.hero::after{
  width:260px;height:260px;bottom:-150px;left:4%;
  background:radial-gradient(circle, var(--good) 0%, transparent 70%);opacity:.1;
  animation-duration:18s;animation-delay:-4s;
}
.hero-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.hero-fx-icon{
  position:absolute;font-size:54px;line-height:1;opacity:.1;filter:grayscale(.15);
  animation:heroFxFloat 16s ease-in-out infinite;
}
.hero-fx-icon:nth-child(1){top:8%;right:12%;font-size:64px;animation-duration:15s;}
.hero-fx-icon:nth-child(2){top:52%;right:28%;font-size:38px;opacity:.08;animation-duration:19s;animation-delay:-5s;}
.hero-fx-icon:nth-child(3){top:22%;right:4%;font-size:46px;opacity:.07;animation-duration:22s;animation-delay:-11s;}
@keyframes heroFxFloat{
  0%{transform:translate(0,0) rotate(0deg);}
  50%{transform:translate(-14px,16px) rotate(8deg);}
  100%{transform:translate(0,0) rotate(0deg);}
}
@media (max-width:640px){.hero-fx{display:none;}}
.hero-inner{max-width:1160px;margin:0 auto;display:flex;flex-direction:column;gap:12px;position:relative;z-index:1;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);
}
.eyebrow::before{content:"";width:8px;height:8px;background:var(--accent);border-radius:1px;transform:rotate(45deg);}
h1{
  font-family:"Bricolage Grotesque", ui-sans-serif, sans-serif;font-weight:800;
  font-size:clamp(30px,4.6vw,48px);line-height:1.03;margin:0;text-wrap:balance;letter-spacing:-.01em;
}
h1 em{font-style:normal;background:linear-gradient(transparent 62%, var(--accent-soft) 62%);}
.tagline{
  font-family:"Bricolage Grotesque", ui-sans-serif, sans-serif;font-weight:600;
  font-size:clamp(15px,2vw,19px);color:var(--accent);margin:-6px 0 2px;
}
.hero p{max-width:62ch;color:var(--ink-soft);font-size:16.5px;line-height:1.55;margin:0;}

/* Grid of tool cards (home page) */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px;margin-bottom:40px;}
.tool-card-wrap{position:relative;}
.tool-card-wrap[hidden]{display:none;}
.pin-btn{
  position:absolute;top:12px;right:12px;z-index:2;
  width:28px;height:28px;border-radius:7px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink-soft);cursor:pointer;font-size:14px;
  display:flex;align-items:center;justify-content:center;
}
.pin-btn:hover{color:var(--accent);border-color:var(--accent);}
.pin-btn.pinned{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);}
.tool-card{
  display:flex;flex-direction:column;gap:10px;height:100%;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:20px;text-decoration:none;color:var(--ink);
  transition:transform .18s cubic-bezier(.2,.8,.3,1.3), border-color .18s ease, box-shadow .18s ease;
  position:relative;overflow:hidden;
}
.tool-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
.tool-card:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:0 14px 28px -18px rgba(0,0,0,.35);}
.tool-card:hover::before{transform:scaleX(1);}
.tool-card .num{
  font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--accent-ink);
  background:var(--accent);border-radius:6px;width:26px;height:26px;
  display:flex;align-items:center;justify-content:center;
  transition:transform .3s cubic-bezier(.3,.6,.3,1.5);
}
.tool-card:hover .num{transform:rotate(-8deg) scale(1.1);}
.tool-card h2{margin:0;font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:18px;}
.tool-card p{margin:0;color:var(--ink-soft);font-size:13.5px;line-height:1.45;}
.tool-card .tag{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;color:var(--ink-soft);}

/* Single-tool page layout */
.tool-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start;}
@media (max-width:880px){.tool-layout{grid-template-columns:1fr;}}
.tool-main{min-width:0;}
.tool-sidebar{display:flex;flex-direction:column;gap:18px;position:sticky;top:20px;}

.card{
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);overflow:hidden;
}
.card-body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:16px;}

.row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;}
label.opt{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--ink-soft);user-select:none;}
label.opt input{accent-color:var(--accent);}

select, input[type="number"], input[type="text"], textarea{
  font-family:"Source Sans 3",sans-serif;font-size:14px;padding:9px 11px;
  border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);width:100%;
}
textarea{resize:vertical;min-height:80px;font-family:"JetBrains Mono",monospace;font-size:13px;}
.field{display:flex;flex-direction:column;gap:5px;}
.field span{font-size:12px;color:var(--ink-soft);}

input[type="file"]{
  font-family:"Source Sans 3",sans-serif;font-size:13.5px;color:var(--ink-soft);
  padding:9px;border:1px dashed var(--line);border-radius:9px;background:var(--surface-soft);
}
.filelist{display:flex;flex-direction:column;gap:4px;margin:4px 0 2px;}
.filelist-item{font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--ink-soft);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.filelist-actions{display:flex;gap:4px;flex:none;}
.filelist-actions button:disabled{opacity:.35;cursor:not-allowed;}

.slider-row{display:flex;align-items:center;gap:10px;}
input[type="range"]{accent-color:var(--accent);flex:1;}
.slider-val{font-family:"JetBrains Mono",monospace;font-size:13px;font-weight:700;min-width:24px;text-align:right;}

button.go{
  align-self:flex-start;font-family:"Source Sans 3",sans-serif;font-weight:600;font-size:14.5px;
  padding:11px 20px;border:none;border-radius:9px;background:var(--accent);color:var(--accent-ink);
  cursor:pointer;transition:transform .08s ease, box-shadow .2s ease;
  position:relative;overflow:hidden;isolation:isolate;
}
button.go::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(100deg, transparent 30%, rgba(255,255,255,.55) 50%, transparent 70%);
  transform:translateX(-120%) skewX(-12deg);
}
button.go:hover::before{animation:shimmerSweep 1s ease;}
button.go:hover{box-shadow:0 8px 18px -10px color-mix(in srgb, var(--accent) 70%, transparent);}
button.go:active{transform:scale(.96);}
button.go > *{position:relative;z-index:1;}
.ripple{
  position:absolute;border-radius:50%;background:rgba(255,255,255,.55);
  pointer-events:none;z-index:0;animation:ripple .55s ease-out forwards;
}

.output{
  display:flex;align-items:center;gap:8px;background:var(--surface-soft);
  border:1px dashed var(--line);border-radius:10px;padding:14px 16px;min-height:48px;
  transition:border-color .3s ease;
}
.output.pop{animation:popIn .38s cubic-bezier(.25,.7,.3,1.4);border-color:var(--accent);}
.field.pop textarea, .field.pop input{animation:popIn .38s cubic-bezier(.25,.7,.3,1.4);}
.output .val{font-family:"JetBrains Mono",monospace;font-size:16px;font-weight:500;word-break:break-word;flex:1;line-height:1.4;white-space:pre-wrap;}
.output .val.empty{color:var(--ink-soft);font-style:italic;font-family:"Source Sans 3",sans-serif;font-size:14px;}
.copy{
  flex:none;background:none;border:1px solid var(--line);border-radius:7px;width:34px;height:34px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-soft);font-size:14px;
}
.copy:hover{color:var(--ink);border-color:var(--ink-soft);}
.copy.copied{color:var(--good);border-color:var(--good);}
.copy.copy-failed{color:#C25B3E;border-color:#C25B3E;}

.strength{display:flex;gap:4px;}
.strength i{flex:1;height:4px;border-radius:2px;background:var(--line);}
.strength i.on1{background:#C25B3E;}
.strength i.on2{background:#E0A63E;}
.strength i.on3{background:var(--good);}
.strength i.on4{background:var(--good);}

.hint{font-size:13px;color:var(--ink-soft);line-height:1.5;}

.swatch-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;
}
.swatch{
  display:flex;flex-direction:column;border-radius:10px;overflow:hidden;
  border:1px solid var(--line);cursor:pointer;background:none;padding:0;text-align:left;
  font-family:inherit;animation:popIn .32s cubic-bezier(.25,.7,.3,1.4) backwards;
  transition:transform .15s ease;
}
.swatch:hover{transform:translateY(-3px);}
.swatch .fill{height:64px;}
.swatch .info{padding:8px 9px;background:var(--surface-soft);}
.swatch .hex{font-family:"JetBrains Mono",monospace;font-size:12.5px;font-weight:700;color:var(--ink);}
.swatch .extra{font-family:"JetBrains Mono",monospace;font-size:10.5px;color:var(--ink-soft);margin-top:2px;}

.pdf2img-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
.pdf2img-cell{cursor:default;padding:8px;}
.pdf2img-cell:hover{transform:none;}
.pdf2img-dl svg{flex:none;}
.pdf2img-dl:hover{box-shadow:0 8px 18px -10px color-mix(in srgb, var(--accent) 70%, transparent);}

.vie-grid{
  display:grid;grid-template-columns:repeat(52,1fr);gap:2px;margin:14px 0;
  max-width:100%;overflow-x:auto;
}
.vie-cell{aspect-ratio:1;background:var(--surface-soft);border:1px solid var(--line);border-radius:1px;}
.vie-cell.lived{background:var(--accent);border-color:var(--accent);}
@media (max-width:640px){
  .vie-grid{grid-template-columns:repeat(26,1fr);}
}

.qr-wrap{
  display:flex;align-items:center;justify-content:center;min-height:200px;
  background:var(--surface-soft);border:1px dashed var(--line);border-radius:10px;padding:16px;
}
.qr-wrap img, .qr-wrap canvas{border-radius:6px;background:#fff;padding:8px;}

.stat-tile{
  background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;
  padding:10px 14px;min-width:100px;
}
.stat-tile .n{font-family:"JetBrains Mono",monospace;font-size:20px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
.stat-tile .l{font-size:11.5px;color:var(--ink-soft);margin-top:2px;}

.breathing-wrap{display:flex;justify-content:center;padding:24px 0;}
.breathing-circle{
  width:140px;height:140px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%, var(--accent-soft), var(--accent) 75%);
  display:flex;align-items:center;justify-content:center;
  font-family:"JetBrains Mono",monospace;font-weight:700;font-size:13px;color:var(--accent-ink);
  transform:scale(.7);transition:transform 4s ease-in-out;
  box-shadow:0 0 0 1px var(--line), 0 20px 40px -20px rgba(0,0,0,.4);
  text-align:center;padding:10px;
}
.breathing-circle.grow{transform:scale(1.15);}
.breathing-circle.shrink{transform:scale(.7);}
.breathing-circle.hold{transform:scale(1.15);}

.calc{
  background:var(--surface-soft);border:1px solid var(--line);border-radius:12px;
  padding:14px;display:flex;flex-direction:column;gap:12px;max-width:340px;
}
.calc-screen{text-align:right;padding:6px 8px;}
.calc-sub{font-family:"JetBrains Mono",monospace;font-size:13px;color:var(--ink-soft);min-height:16px;}
.calc-main{
  font-family:"JetBrains Mono",monospace;font-size:34px;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;word-break:break-all;
}
.calc-mem{
  font-family:"JetBrains Mono",monospace;font-size:12px;font-weight:700;color:var(--accent);
  min-height:14px;
}
.calc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.calc-grid-mem .calc-btn{padding:9px 0;font-size:13px;}
.calc-btn{
  font-family:"Source Sans 3",sans-serif;font-size:17px;font-weight:600;
  padding:14px 0;border:1px solid var(--line);border-radius:9px;background:var(--surface);
  color:var(--ink);cursor:pointer;transition:transform .06s ease, background .1s ease;
}
.calc-btn:hover{background:var(--bg);}
.calc-btn:active{transform:scale(.95);}
.calc-btn.calc-op{background:var(--surface);color:var(--accent);font-weight:700;}
.calc-btn.calc-zero{grid-column:span 2;}
.calc-btn.calc-equal{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);align-self:auto;padding:14px 0;}

.about{
  font-size:14px;line-height:1.65;color:var(--ink-soft);
  border-top:1px solid var(--line);padding-top:16px;margin-top:4px;
}
.about strong{color:var(--ink);}

.disclaimer{
  display:flex;gap:9px;align-items:flex-start;font-size:12.5px;line-height:1.55;
  color:var(--ink-soft);background:var(--surface-soft);border:1px solid var(--line);
  border-radius:10px;padding:11px 13px;margin-top:2px;
}
.disclaimer::before{content:"⚠️";flex:none;font-size:14px;line-height:1.4;}
.disclaimer a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:2px;}
.data-source{font-size:11.5px;color:var(--ink-soft);opacity:.8;margin-top:2px;}

/* Graphique de prix crypto (outil "crypto") */
.crypto-chart-block{margin:14px 0;}
.crypto-range-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.crypto-range-btn{
  font-size:12.5px;padding:6px 11px;border-radius:999px;border:1px solid var(--line);
  background:var(--surface-soft);color:var(--ink-soft);cursor:pointer;transition:background .15s,color .15s,border-color .15s;
}
.crypto-range-btn:hover{border-color:var(--accent);color:var(--ink);}
.crypto-range-btn.active{background:var(--accent);border-color:var(--accent);color:#1a1300;font-weight:600;}
.crypto-chart-wrap{position:relative;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);padding:10px;}
.crypto-chart-wrap canvas{display:block;width:100%;height:auto;max-height:220px;}
.crypto-chart-wrap #cryptoChartStatus{margin:6px 2px 0;}

/* Related tools — colonne latérale, 10 outils tirés au sort */
.related{display:flex;flex-direction:column;gap:8px;}
.related h3{
  margin:0 0 2px;font-family:"JetBrains Mono",monospace;font-size:11.5px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);
}
.related-grid{display:flex;flex-direction:column;gap:2px;}
.related a{
  display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;
  text-decoration:none;color:var(--ink);font-size:14px;border:1px solid transparent;
}
.related a:hover{background:var(--surface-soft);border-color:var(--line);}
.related a .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none;}
.related-all{
  display:block;width:100%;text-align:center;text-decoration:none;cursor:pointer;
  font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--accent);
  background:var(--accent-soft);border:none;border-radius:8px;padding:9px 10px;margin-top:4px;
}
.related-all:hover{filter:brightness(1.05);}
@media (max-width:880px){.tool-sidebar{position:static;}}

/* Ad slots */
.ad-slot{
  background:var(--surface-soft);border:1px dashed var(--line);border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  color:var(--ink-soft);font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.06em;
  min-height:90px;overflow:hidden;text-align:center;padding:8px;
}
.ad-slot.leaderboard{min-height:90px;margin:0 0 28px;}
.ad-slot.sidebar{min-height:250px;}
.ad-slot.infeed{min-height:100px;margin:18px 0;}

/* ===== Couche de jeu : HUD, badges, quête, toasts, confettis ===== */
.hud-pill{
  position:fixed;right:18px;bottom:18px;z-index:40;
  display:flex;align-items:center;gap:10px;
  background:var(--surface);border:1px solid var(--line);border-radius:999px;
  box-shadow:var(--shadow);padding:9px 16px 9px 12px;cursor:pointer;
  transition:transform .12s cubic-bezier(.3,.6,.3,1.5), box-shadow .2s ease;
  animation:riseIn .5s cubic-bezier(.2,.7,.3,1) .3s backwards;
}
.hud-pill:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 12px 24px -14px rgba(0,0,0,.4);}
.hud-flame{font-size:16px;line-height:1;}
.hud-mid{display:flex;flex-direction:column;gap:4px;min-width:88px;}
.hud-level{font-family:"JetBrains Mono",monospace;font-size:11px;font-weight:700;color:var(--ink);}
.hud-bar{width:100%;height:5px;border-radius:3px;background:var(--line);overflow:hidden;}
.hud-bar-fill{height:100%;background:var(--accent);width:0%;transition:width .4s ease;}
.hud-xp{font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--ink-soft);}

.hud-overlay{
  position:fixed;inset:0;background:rgba(20,18,12,.35);
  opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:49;
}
.hud-overlay.open{opacity:1;pointer-events:auto;}

.hud-panel{
  position:fixed;right:18px;bottom:84px;z-index:50;
  width:320px;max-width:calc(100vw - 36px);max-height:70vh;overflow-y:auto;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);padding:18px;
  transform:translateY(12px) scale(.98);opacity:0;pointer-events:none;
  transition:transform .18s ease, opacity .18s ease;
}
.hud-panel.open{transform:translateY(0) scale(1);opacity:1;pointer-events:auto;}
.hud-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.hud-panel-title{font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:15px;}
.hud-panel-sub{font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--ink-soft);margin-top:3px;}
.hud-panel-explain{font-size:12.5px;color:var(--ink-soft);line-height:1.5;margin:10px 0 0;}
.hud-close{
  background:none;border:1px solid var(--line);border-radius:7px;width:26px;height:26px;
  color:var(--ink-soft);cursor:pointer;flex:none;
}
.hud-close:hover{color:var(--ink);}

.quest-card{
  display:flex;align-items:center;gap:12px;margin-top:14px;
  background:var(--accent-soft);border-radius:10px;padding:12px;
}
.quest-icon{font-size:22px;line-height:1;}
.quest-title{font-size:13px;font-weight:700;color:var(--ink);}
.quest-desc{font-size:12px;color:var(--ink-soft);margin-top:2px;}

.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.badge-tile{
  display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;
  background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;
  padding:10px 6px;opacity:.5;
}
.badge-tile{transition:transform .15s ease;}
.badge-tile.unlocked{opacity:1;border-color:var(--accent);}
.badge-tile.unlocked:hover{transform:translateY(-2px) scale(1.04);}
.badge-icon{font-size:20px;}
.badge-label{font-size:10.5px;color:var(--ink-soft);line-height:1.25;}
.badge-tile.unlocked .badge-label{color:var(--ink);}

.history-box{
  background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;display:flex;flex-direction:column;gap:4px;
}
.history-title{
  font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft);margin-bottom:2px;
}
.history-item{
  font-family:"JetBrains Mono",monospace;font-size:12.5px;color:var(--ink-soft);
  white-space:pre-wrap;word-break:break-word;padding:3px 0;border-top:1px dashed var(--line);
}
.history-item:first-child{border-top:none;}

.wheel-card{
  margin-top:14px;padding-top:14px;border-top:1px solid var(--line);
  display:flex;align-items:center;gap:12px;
}
.wheel-emoji{font-size:26px;transition:transform .5s ease;}
.wheel-emoji.spin{transform:rotate(1080deg);}
.wheel-text{flex:1;}
.wheel-title{font-size:13px;font-weight:700;color:var(--ink);}
.wheel-desc{font-size:11.5px;color:var(--ink-soft);margin-top:2px;}
.wheel-btn{
  font-family:"Source Sans 3",sans-serif;font-weight:600;font-size:12.5px;
  padding:7px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);
  color:var(--ink);cursor:pointer;flex:none;
}
.wheel-btn:disabled{opacity:.45;cursor:not-allowed;}
.wheel-btn:not(:disabled):hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);}

.prestige-card{
  margin-top:14px;padding-top:14px;border-top:1px solid var(--line);
}
.prestige-title{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:4px;}
.prestige-desc{font-size:12px;color:var(--ink-soft);line-height:1.5;margin-bottom:10px;}
.prestige-card .go{width:100%;text-align:center;justify-content:center;}

.chest-card{
  margin-top:14px;padding-top:14px;border-top:1px solid var(--line);
}
.chest-title{font-size:13px;font-weight:700;color:var(--ink);margin-bottom:6px;}
.chest-days{display:flex;gap:5px;margin-bottom:10px;}
.chest-day{
  flex:1;text-align:center;font-family:"JetBrains Mono",monospace;font-size:10px;font-weight:700;
  padding:6px 2px;border-radius:7px;background:var(--surface-soft);border:1px solid var(--line);
  color:var(--ink-soft);
}
.chest-day.done{background:var(--accent-soft);border-color:var(--accent);color:var(--ink);}
.chest-day.today{border-color:var(--accent);border-width:2px;color:var(--ink);}
.chest-desc{font-size:12px;color:var(--ink-soft);line-height:1.5;margin-bottom:10px;}
.chest-btn{
  font-family:"Source Sans 3",sans-serif;font-weight:600;font-size:12.5px;width:100%;
  padding:9px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface);
  color:var(--ink);cursor:pointer;
}
.chest-btn:disabled{opacity:.45;cursor:not-allowed;}
.chest-btn:not(:disabled):hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);}
.chest-btn.pulse{animation:chest-pulse 1.4s ease-in-out infinite;}
@keyframes chest-pulse{
  0%,100%{box-shadow:0 0 0 0 var(--accent-soft);}
  50%{box-shadow:0 0 0 6px var(--accent-soft);}
}

/* Mini-jeu caché : test de réflexe (déclenché par le code Konami, aucun indice visible ailleurs) */
.reflex-panel{width:320px;text-align:center;}
.reflex-zone{
  margin-top:14px;height:150px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:16px;color:#fff;
  background:var(--ink-soft);cursor:pointer;user-select:none;transition:background .15s ease;
}
.reflex-zone.waiting{background:#C25B3E;}
.reflex-zone.ready{background:#3E7B4F;}
.reflex-result{font-size:13px;color:var(--ink-soft);margin-top:12px;min-height:18px;}

.xp-toast{
  position:fixed;left:50%;bottom:88px;transform:translate(-50%,8px);
  background:var(--ink);color:var(--bg);
  font-family:"JetBrains Mono",monospace;font-size:13px;font-weight:600;
  padding:9px 16px;border-radius:999px;z-index:60;
  opacity:0;transition:opacity .25s ease, transform .25s ease;
  box-shadow:0 8px 20px -8px rgba(0,0,0,.4);white-space:nowrap;
}
.xp-toast.show{opacity:1;transform:translate(-50%,0);}

.confetti-piece{
  position:fixed;top:40vh;width:8px;height:8px;z-index:55;pointer-events:none;
  animation:confetti-fall 1.2s ease-out forwards;
}
@keyframes confetti-fall{
  0%{transform:translate(0,0) rotate(0);opacity:1;}
  100%{transform:translate(var(--dx),46vh) rotate(var(--rot));opacity:0;}
}
@media (prefers-reduced-motion:reduce){
  .hud-pill, .hud-bar-fill, .hud-panel, .xp-toast{transition:none;}
  .confetti-piece{animation:none;display:none;}
}

footer{
  margin-top:56px;padding-top:32px;border-top:1px solid var(--line);
  font-size:13px;color:var(--ink-soft);
}
.footer-inner{
  display:grid;grid-template-columns:1.4fr 1fr 1.4fr;gap:28px;margin-bottom:24px;
}
@media (max-width:640px){.footer-inner{grid-template-columns:1fr;gap:22px;}}
.footer-brand .footer-logo{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);
  font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:16px;
}
.footer-brand .footer-logo .mark{width:16px;height:16px;background:var(--accent);border-radius:4px;transform:rotate(8deg);display:inline-block;}
.footer-brand p{margin:8px 0 0;font-size:13px;color:var(--ink-soft);max-width:26ch;}
.footer-col h4{
  margin:0 0 10px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);font-weight:600;
}
.footer-col{display:flex;flex-direction:column;gap:7px;}
.footer-col a{color:var(--ink-soft);text-decoration:none;font-size:13.5px;}
.footer-col a:hover{color:var(--accent);}
.footer-col p{margin:0;line-height:1.5;color:var(--ink-soft);max-width:38ch;}
.footer-bottom{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
  padding-top:18px;border-top:1px solid var(--line);
  font-family:"JetBrains Mono",monospace;font-size:12px;color:var(--ink-soft);
}
.footer-top{
  background:none;border:1px solid var(--line);border-radius:999px;padding:7px 14px;
  color:var(--ink-soft);font-family:"JetBrains Mono",monospace;font-size:12px;cursor:pointer;
  transition:border-color .15s,color .15s;
}
.footer-top:hover{border-color:var(--accent);color:var(--accent);}

/* ===== Bouton imprimer + suggestions croisées ===== */
.print-btn{
  display:inline-flex;align-items:center;gap:8px;margin-top:14px;
  padding:10px 18px;border-radius:9px;border:1px solid var(--line);background:var(--surface);
  color:var(--ink);font-family:"Source Sans 3",sans-serif;font-weight:600;font-size:14px;cursor:pointer;
  transition:border-color .15s,transform .08s;
}
.print-btn:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft);}
.print-btn:active{transform:scale(.97);}

.next-tools{
  margin-top:22px;padding:16px 18px;border-radius:12px;background:var(--surface-soft);
  border:1px solid var(--line);
}
.next-tools h4{
  margin:0 0 10px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);
}
.next-tools-links{display:flex;flex-wrap:wrap;gap:8px;}
.next-tools a, .next-tools .next-dynamic{
  display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:9px;
  text-decoration:none;color:var(--ink);font-size:13.5px;border:1px solid var(--line);
  background:var(--surface);transition:border-color .15s,transform .15s;
}
.next-tools a:hover, .next-tools .next-dynamic:hover{border-color:var(--accent);transform:translateY(-1px);}
.next-tools .next-dynamic{cursor:pointer;}
.next-tools .next-dynamic[hidden]{display:none;}

.learn-more{
  margin-top:22px;padding:18px 20px;border-radius:12px;
  background:color-mix(in srgb, var(--accent) 7%, var(--surface));
  border:1px solid color-mix(in srgb, var(--accent) 25%, var(--line));
}
.learn-more h3{
  margin:0 0 8px;font-family:"Bricolage Grotesque",sans-serif;font-size:15.5px;font-weight:700;
  color:var(--ink);display:flex;align-items:center;gap:7px;
}
.learn-more h3::before{content:"💡";font-size:14px;}
.learn-more p{margin:0 0 12px;font-size:14px;line-height:1.65;color:var(--ink-soft);}
.learn-more p:last-child{margin-bottom:0;}
.learn-more h3:nth-of-type(2){margin-top:16px;padding-top:14px;border-top:1px solid color-mix(in srgb, var(--accent) 20%, var(--line));}
.learn-more h3:nth-of-type(2)::before{content:"⚙️";}
.learn-more strong{color:var(--ink);}
.learn-more code{
  font-family:"JetBrains Mono",monospace;font-size:12.5px;background:var(--surface);
  padding:1px 5px;border-radius:4px;border:1px solid var(--line);
}

.faq-box{
  margin-top:22px;padding:18px 20px;border-radius:12px;background:var(--surface);border:1px solid var(--line);
}
.faq-box h3{
  margin:0 0 12px;font-family:"Bricolage Grotesque",sans-serif;font-size:15.5px;font-weight:700;color:var(--ink);
}
.faq-item{border-top:1px solid var(--line);padding:12px 0;}
.faq-item:first-of-type{border-top:none;padding-top:0;}
.faq-item summary{
  cursor:pointer;font-weight:600;font-size:14.5px;color:var(--ink);list-style:none;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:18px;color:var(--ink-soft);flex:none;transition:transform .2s ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{margin:10px 0 0;font-size:13.5px;line-height:1.6;color:var(--ink-soft);}

.print-header, .print-footer{display:none;}
@media print{
  @page{margin:16mm 14mm;}
  nav.topbar, footer, .hud-pill, .hud-panel, .ad-slot, .tool-sidebar, .related,
  .standalone-footnote, .print-btn, .next-tools, .learn-more, .faq-box, .search-row, .hero .eyebrow,
  .hero-standalone p, .pin-btn, .theme-toggle, .hero-fx, .xp-toast,
  .privacy-banner, .tag-chips, .search-kbd, #recentSection{
    display:none !important;
  }
  body{background:#fff;color:#000;}
  .wrap, .wrap-standalone{max-width:100% !important;padding:0 !important;}
  .tool-layout{display:block !important;}
  .card-standalone{box-shadow:none !important;border:none !important;max-width:100% !important;}
  header.hero, header.hero-standalone{border-bottom:none;padding:0;margin:0;}
  header.hero::before, header.hero::after{display:none !important;}
  a{text-decoration:none;color:#000;}

  .print-header{
    display:flex !important;align-items:center;justify-content:space-between;
    padding-bottom:10px;margin-bottom:18px;border-bottom:2px solid #1C1B18;
  }
  .print-logo{display:flex;align-items:center;gap:8px;font-family:"Bricolage Grotesque",sans-serif;font-weight:800;font-size:16px;color:#000;}
  .print-logo .mark{width:16px;height:16px;background:#F2A900;border-radius:4px;display:inline-block;}
  .print-header-tool{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.04em;color:#555;}

  .print-footer{
    display:flex !important;align-items:center;justify-content:space-between;
    margin-top:26px;padding-top:10px;border-top:1px solid #999;
    font-family:"JetBrains Mono",monospace;font-size:10.5px;color:#555;
  }
  .print-footer strong{color:#000;}
}
