:root{--bg:#050514;--bg-2:#0a0a1f;--primary:#00f0ff;--secondary:#ff2d75;--accent:#ffb800;--success:#00ff9d;--text:#e8ecff;--muted:#8b92b8;--border:rgba(0,240,255,0.18);--glass:rgba(15,18,45,0.55)}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--text);font-family:'Space Grotesk',sans-serif;overflow-x:hidden;scroll-behavior:smooth;line-height:1.5}
body{top:0!important;position:relative!important}
a{text-decoration:none;color:inherit}
button{font-family:inherit}
ul{list-style:none}
.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.grid{display:grid}.block{display:block}.inline-block{display:inline-block}
.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1 1 0%}
.items-center{align-items:center}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}
.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}
.space-y-1>*+*{margin-top:.25rem}.space-y-2>*+*{margin-top:.5rem}.space-y-3>*+*{margin-top:.75rem}.space-y-4>*+*{margin-top:1rem}
.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}
.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}.text-5xl{font-size:3rem}.text-7xl{font-size:4.5rem}.text-8xl{font-size:6rem}
.font-bold{font-weight:700}.font-black{font-weight:900}
.w-full{width:100%}.w-10{width:2.5rem}.w-14{width:3.5rem}.h-10{height:2.5rem}.h-14{height:3.5rem}
.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}
.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-12{padding:3rem}
.py-4{padding-top:1rem;padding-bottom:1rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-24{padding-top:6rem;padding-bottom:6rem}
.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}
.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.pt-20{padding-top:5rem}.pb-32{padding-bottom:8rem}
.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}
.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}
.mx-auto{margin-left:auto;margin-right:auto}
.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}
.border{border-width:1px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}
.cursor-pointer{cursor:pointer}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}
.relative{position:relative}.fixed{position:fixed}.absolute{position:absolute}.sticky{position:sticky}
.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.inset-0{top:0;right:0;bottom:0;left:0}
.z-0{z-index:0}.z-1{z-index:1}.z-50{z-index:50}.z-1000{z-index:1000}.z-2000{z-index:2000}
.leading-none{line-height:1}.break-all{word-break:break-all}.uppercase{text-transform:uppercase}
.tracking-widest{letter-spacing:.1em}.tracking-\[0\.3em\]{letter-spacing:.3em}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}
@media(min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:inline{display:inline}}
@media(min-width:768px){.md\:flex{display:flex}.md\:hidden{display:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-5xl{font-size:3rem}.md\:text-8xl{font-size:6rem}.md\:text-xl{font-size:1.25rem}.md\:p-12{padding:3rem}.md\:flex-col{flex-direction:column}}
@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}}
.font-display{font-family:'Orbitron',sans-serif;letter-spacing:.02em}
.font-mono{font-family:'JetBrains Mono',monospace}
#bg-canvas{position:fixed;inset:0;z-index:0;pointer-events:none}
.grid-floor{position:fixed;bottom:-50%;left:50%;width:200vw;height:100vh;transform:translateX(-50%) perspective(40vh) rotateX(60deg);background-image:linear-gradient(to right,rgba(0,240,255,.15) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,45,117,.12) 1px,transparent 1px);background-size:60px 60px;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(to top,black 0,transparent 80%);mask-image:linear-gradient(to top,black 0,transparent 80%);animation:gridMove 20s linear infinite}
@keyframes gridMove{0%{background-position:0 0}100%{background-position:0 60px}}
.blob{position:fixed;border-radius:50%;filter:blur(120px);opacity:.35;z-index:0;pointer-events:none;animation:float 18s ease-in-out infinite}
.blob-1{width:500px;height:500px;background:var(--primary);top:-10%;left:-10%}
.blob-2{width:600px;height:600px;background:var(--secondary);top:30%;right:-15%;animation-delay:-6s}
.blob-3{width:400px;height:400px;background:var(--accent);bottom:10%;left:20%;animation-delay:-12s;opacity:.2}
@keyframes float{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(50px,-30px) scale(1.1)}66%{transform:translate(-30px,40px) scale(.95)}}
body::before{content:'';position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.015) 2px,rgba(0,240,255,.015) 3px);pointer-events:none;z-index:100}
main,header,footer{position:relative;z-index:1}
.glass{background:var(--glass);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);border:1px solid var(--border);border-radius:16px}
.glass-strong{background:rgba(10,12,30,.75);backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--border)}
.gradient-text{background:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 50%,var(--accent) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;background-size:200% 200%;animation:gradientShift 8s ease infinite}
@keyframes gradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.calc-card{position:relative;transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden}
.calc-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 30%,rgba(0,240,255,.08) 50%,transparent 70%);transform:translateX(-100%);transition:transform .6s}
.calc-card:hover::before{transform:translateX(100%)}
.calc-card:hover{transform:translateY(-6px);border-color:var(--primary);box-shadow:0 20px 60px -10px rgba(0,240,255,.25),0 0 0 1px rgba(0,240,255,.3)}
.calc-card .icon-wrap{transition:all .4s}
.calc-card:hover .icon-wrap{transform:scale(1.15) rotate(-6deg)}
.btn-primary{background:linear-gradient(135deg,var(--primary),#0099ff);color:#001020;font-weight:700;padding:14px 32px;border-radius:8px;border:none;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;box-shadow:0 0 30px rgba(0,240,255,.4);display:inline-flex;align-items:center;justify-content:center}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 0 50px rgba(0,240,255,.7)}
.btn-secondary{background:transparent;color:var(--text);font-weight:600;padding:14px 32px;border-radius:8px;border:1px solid var(--border);cursor:pointer;transition:all .3s}
.btn-secondary:hover{border-color:var(--secondary);color:var(--secondary);box-shadow:0 0 30px rgba(255,45,117,.3)}
.hero-title{animation:titlePulse 4s ease-in-out infinite}
@keyframes titlePulse{0%,100%{filter:drop-shadow(0 0 20px rgba(0,240,255,.5))}50%{filter:drop-shadow(0 0 40px rgba(255,45,117,.6))}}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 10px var(--success);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.loading-bar{height:2px;background:linear-gradient(90deg,transparent,var(--primary),var(--secondary),var(--accent),transparent);background-size:200% 100%;animation:loadingSlide 3s linear infinite}
@keyframes loadingSlide{0%{background-position:200% 0}100%{background-position:-200% 0}}
.logo-mark{width:40px;height:40px;position:relative;display:inline-flex;align-items:center;justify-content:center}
.logo-mark::before{content:'';position:absolute;inset:0;background:conic-gradient(from 0deg,var(--primary),var(--secondary),var(--accent),var(--primary));border-radius:50%;animation:spin 8s linear infinite}
.logo-mark::after{content:'';position:absolute;inset:3px;background:var(--bg);border-radius:50%}
.logo-mark svg{position:relative;z-index:1;color:var(--primary)}
@keyframes spin{to{transform:rotate(360deg)}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.section-divider{height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:.4}
.ticker{font-family:'JetBrains Mono',monospace;font-weight:700}
.icon-wrap svg{width:24px;height:24px}

.reveal{opacity:1 !important;transform:none !important;transition:opacity .8s,transform .8s}

/*.reveal{opacity:1;transform:none;transition:opacity .8s,transform .8s} */
/*.reveal.visible{opacity:1;transform:none} */

.nav-link{position:relative;color:var(--muted);transition:color .3s;font-size:14px;font-weight:500}
.nav-link::after{content:'';position:absolute;bottom:-6px;left:0;width:0;height:2px;background:var(--primary);transition:width .3s;box-shadow:0 0 10px var(--primary)}
.nav-link:hover{color:var(--text)}
.nav-link:hover::after{width:100%}

/* CSS NON CRITIQUE */
.key{background:rgba(20,25,60,.6);border:1px solid var(--border);color:var(--text);padding:14px 8px;border-radius:10px;font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:600;cursor:pointer;transition:all .15s;user-select:none}
.key:hover{background:rgba(0,240,255,.15);border-color:var(--primary);transform:translateY(-1px)}
.key:active{transform:translateY(1px) scale(.96);box-shadow:inset 0 0 20px rgba(0,240,255,.3)}
.key-op{background:rgba(255,45,117,.12);border-color:rgba(255,45,117,.4);color:var(--secondary)}
.key-op:hover{background:rgba(255,45,117,.25);border-color:var(--secondary);box-shadow:0 0 20px rgba(255,45,117,.4)}
.key-fn{background:rgba(255,184,0,.08);border-color:rgba(255,184,0,.3);color:var(--accent);font-size:13px}
.key-fn:hover{background:rgba(255,184,0,.2);border-color:var(--accent);box-shadow:0 0 20px rgba(255,184,0,.4)}
.key-eq{background:linear-gradient(135deg,var(--primary),#0099ff);color:#001020;font-weight:900;box-shadow:0 0 25px rgba(0,240,255,.4)}
.key-eq:hover{box-shadow:0 0 40px rgba(0,240,255,.8)}
.key-clear{background:rgba(255,45,117,.2);border-color:var(--secondary);color:var(--secondary);font-weight:700}
.display{background:#02020a;border:1px solid var(--border);border-radius:12px;padding:20px;font-family:'JetBrains Mono',monospace;text-align:right;position:relative;overflow:hidden;box-shadow:inset 0 0 30px rgba(0,240,255,.1)}
.display::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.02) 2px,rgba(0,240,255,.02) 4px);pointer-events:none}
.display-expr{color:var(--muted);font-size:14px;min-height:20px;word-break:break-all}
.display-result{color:var(--primary);font-size:36px;font-weight:700;text-shadow:0 0 15px rgba(0,240,255,.5);word-break:break-all;line-height:1.2}
.input-field{background:rgba(5,8,25,.7);border:1px solid var(--border);color:var(--text);padding:12px 16px;border-radius:8px;font-family:'JetBrains Mono',monospace;font-size:15px;width:100%;transition:all .3s}
.input-field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,240,255,.15),0 0 20px rgba(0,240,255,.2)}
.input-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px;font-weight:500}
.result-box{background:linear-gradient(135deg,rgba(0,240,255,.08),rgba(255,45,117,.08));border:1px solid var(--primary);border-radius:12px;padding:20px;box-shadow:0 0 40px rgba(0,240,255,.15)}
.tab-btn{background:transparent;border:1px solid var(--border);color:var(--muted);padding:10px 18px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;transition:all .3s;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:8px}
.tab-btn.active{background:rgba(0,240,255,.15);border-color:var(--primary);color:var(--primary);box-shadow:0 0 20px rgba(0,240,255,.3)}
.tab-btn:hover:not(.active){color:var(--text);border-color:rgba(0,240,255,.4)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg-2)}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--primary),var(--secondary));border-radius:5px}
select.input-field{appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300f0ff' stroke-width='2'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:40px}
.toast{position:fixed;bottom:30px;right:-300px;background:var(--glass);backdrop-filter:blur(20px);border:1px solid var(--primary);color:var(--text);padding:14px 22px;border-radius:10px;font-size:14px;z-index:1000;transition:right .4s cubic-bezier(.4,0,.2,1);box-shadow:0 10px 40px rgba(0,240,255,.3)}
.toast.show{right:30px}
.meter-bar{height:12px;background:rgba(5,8,25,.7);border-radius:6px;overflow:hidden;position:relative;border:1px solid var(--border)}
.meter-fill{height:100%;border-radius:6px;transition:width .8s cubic-bezier(.4,0,.2,1),background .4s;position:relative}
.meter-fill::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:shimmer 2s infinite}
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.8);backdrop-filter:blur(8px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .3s}
.modal-overlay.active{opacity:1;pointer-events:auto}
.modal-box{max-width:800px;width:100%;max-height:85vh;overflow-y:auto;background:var(--bg-2);border:1px solid var(--primary);border-radius:16px;padding:2.5rem;box-shadow:0 0 60px rgba(0,240,255,.2);position:relative}
.modal-close{position:absolute;top:1rem;right:1rem;background:transparent;border:1px solid var(--border);color:var(--muted);width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}
.modal-close:hover{color:var(--secondary);border-color:var(--secondary)}
.disclaimer-box{margin-top:2rem;padding:1rem;background:rgba(255,184,0,.05);border:1px solid rgba(255,184,0,.2);border-radius:8px;font-size:.75rem;color:var(--muted);display:flex;align-items:flex-start;gap:.75rem}
.disclaimer-box svg{color:var(--accent);margin-top:2px;flex-shrink:0}
.max-h-\[400px\]{max-height:400px}.max-h-\[85vh\]{max-height:85vh}
@media (max-width: 768px) {
  .hero-title-text { font-size: 48px !important; }
  #bg-canvas, .grid-floor, .blob, body::before { display: none !important; }
  .hero-title, .logo-mark::before, .loading-bar { animation: none !important; }
  .glass, .glass-strong { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: rgba(10, 12, 30, 0.98) !important; }
  .display-result { font-size: 26px; }
  .modal-overlay, footer { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: rgba(10, 12, 30, 0.98) !important; }
  .meter-fill::after { animation: none !important; }
}
/* FORCER L'AFFICHAGE DU TEXTE */
.reveal, .reveal.visible {
    opacity: 1 !important;
    transform: none !important;
}