*{margin:0;padding:0;box-sizing:border-box;}
body{background:#0a0e14;color:#fff;font-family:'Courier New',monospace;overflow-x:hidden;}
canvas{display:block;}

/* ── NAV ─────────────────────────────────────────────── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:center;align-items:center;padding:18px 40px;background:rgba(10,14,20,0.7);backdrop-filter:blur(12px);border-bottom:1px solid rgba(94,234,212,.12);}
.logo{font-size:1.1rem;letter-spacing:4px;color:#fff;}.logo span{color:#5eead4;}
nav ul{list-style:none;display:flex;gap:30px;}
nav ul li a{color:#a8b3c4;text-decoration:none;font-size:.8rem;letter-spacing:2px;transition:color .3s;}
nav ul li a:hover{color:#5eead4;}

/* ── HERO (dark, cinématique) ────────────────────────── */
#hero{position:relative;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at center,#0f1822 0%,#0a0e14 70%);}
#hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(94,234,212,.10),transparent 60%);pointer-events:none;}
#hero-canvas-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:.55;}
#hero-canvas-wrap canvas{position:absolute;}
.hero-text{position:relative;z-index:10;text-align:center;padding:40px 24px;}
.hero-text::before{content:'';position:absolute;inset:-20px -40px;background:radial-gradient(ellipse at center,rgba(10,14,20,.55) 0%,transparent 70%);z-index:-1;pointer-events:none;}
.hero-text h1{font-size:clamp(2.5rem,8vw,6rem);letter-spacing:8px;line-height:1;text-transform:uppercase;}
.hero-text h1 .line1{display:block;color:#f5f1e8;text-shadow:0 0 40px rgba(94,234,212,.25);}
.hero-text p{margin-top:18px;font-size:.85rem;letter-spacing:4px;color:#a8b3c4;}
.hero-text .cta{display:inline-block;margin-top:36px;padding:14px 38px;background:rgba(94,234,212,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(94,234,212,.35);color:#5eead4;text-decoration:none;font-size:.75rem;letter-spacing:4px;transition:all .3s;text-transform:uppercase;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 24px -8px rgba(94,234,212,.15);}
.hero-text .cta:hover{background:rgba(94,234,212,.18);border-color:rgba(94,234,212,.6);color:#a7f3e3;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 0 40px rgba(94,234,212,.35);}

/* ── TRANSITION dark → clair ─────────────────────────── */
.transition-band{height:1px;background:#5eead4;opacity:.4;}

/* ── MANIFESTO (narrative reveal) ────────────────────── */
#manifesto{background:#0a0e14;padding:160px 40px;position:relative;overflow:hidden;}
#manifesto::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:80px;background:linear-gradient(180deg,#5eead4,transparent);}
.manifesto-inner{max-width:900px;margin:0 auto;}
.manifesto-label{font-size:.65rem;letter-spacing:6px;color:#5eead4;text-transform:uppercase;margin-bottom:32px;opacity:0;transform:translateY(20px);transition:opacity 1s,transform 1s;}
.manifesto-text{font-size:clamp(1.5rem,3.2vw,2.6rem);line-height:1.5;letter-spacing:1px;color:#a8b3c4;font-weight:300;}
.manifesto-text span{display:inline-block;opacity:0;transform:translateY(20px);transition:opacity .8s,transform .8s;}
.manifesto-text .accent{color:#5eead4;}
.manifesto-text .coral{color:#ff6b5b;}
#manifesto.visible .manifesto-label,#manifesto.visible .manifesto-text span{opacity:1;transform:translateY(0);}
#manifesto.visible .manifesto-text span:nth-child(1){transition-delay:.1s;}
#manifesto.visible .manifesto-text span:nth-child(2){transition-delay:.35s;}
#manifesto.visible .manifesto-text span:nth-child(3){transition-delay:.6s;}
#manifesto.visible .manifesto-text span:nth-child(4){transition-delay:.85s;}

/* ── SECTIONS claires ────────────────────────────────── */
.section-title{font-size:.7rem;letter-spacing:6px;color:#ff6b5b;text-transform:uppercase;margin-bottom:50px;display:flex;align-items:center;gap:16px;font-weight:normal;}
.section-title::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,#ff6b5b,transparent);}

#about{padding:100px 40px;background:#f5f1e8;}
#about .inner{max-width:1100px;margin:0 auto;}
#about .bio h3{font-size:clamp(1.5rem,3vw,2.5rem);letter-spacing:3px;margin-bottom:20px;line-height:1.3;color:#0a0e14;font-weight:normal;}
#about .bio p{color:#4a5566;line-height:1.8;font-size:.88rem;margin-bottom:14px;max-width:680px;}
.tag{display:inline-block;border:1px solid #c4cdd9;padding:5px 14px;font-size:.7rem;letter-spacing:2px;color:#4a5566;transition:all .25s;background:rgba(255,255,255,.4);}
.tag:hover{border-color:#0d9488;color:#0d9488;background:rgba(94,234,212,.08);}

section#projects{padding:100px 40px;background:#f5f1e8;}
section#projects .section-title{max-width:1100px;margin:0 auto 50px;}
.projects-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;}
.project-card{border:1px solid #d4dae3;background:#fdfbf5;padding:28px;position:relative;overflow:hidden;transition:border-color .3s,transform .3s,box-shadow .3s;cursor:pointer;}
.project-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,107,91,.05),rgba(94,234,212,.04));opacity:0;transition:opacity .3s;}
.project-card:hover{border-color:#ff6b5b;transform:translateY(-4px);box-shadow:0 12px 30px -10px rgba(255,107,91,.22);}
.project-card:hover::before{opacity:1;}
.project-card:hover .card-scribble{opacity:.1;}
.card-scribble{position:absolute;inset:0;opacity:0;transition:opacity .5s;pointer-events:none;z-index:0;}
.card-scribble canvas{width:100%;height:100%;display:block;}
.card-lang{font-size:.65rem;letter-spacing:3px;color:#ff6b5b;margin-bottom:12px;position:relative;z-index:1;}
.card-title{font-size:1rem;letter-spacing:2px;margin-bottom:10px;color:#0a0e14;position:relative;z-index:1;}
.card-desc{font-size:.78rem;color:#5a6473;line-height:1.7;margin-bottom:18px;position:relative;z-index:1;}
.card-link{position:absolute;inset:0;z-index:5;text-decoration:none;}
.card-footer{display:flex;gap:20px;font-size:.7rem;color:#a8b3c4;position:relative;z-index:1;}
.card-footer span{color:#6a7585;letter-spacing:2px;transition:color .25s;}
.project-card:hover .card-footer span{color:#ff6b5b;}

/* ── TRANSITION clair → dark (contact) ───────────────── */
.transition-band-rev{height:1px;background:#5eead4;opacity:.4;}

/* ── CONTACT (retour dark) ───────────────────────────── */
#contact-wrap{padding:120px 40px;text-align:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#0f1822 0%,#0a0e14 70%);}
#contact-wrap::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(94,234,212,.10),transparent 60%);pointer-events:none;}
.contact-inner{position:relative;z-index:2;max-width:800px;margin:0 auto;}
.contact-inner .section-title{color:#5eead4;justify-content:center;}
.contact-inner .section-title::after{background:linear-gradient(90deg,#5eead4,transparent);}
.contact-inner h3{font-size:clamp(1.8rem,4vw,3rem);letter-spacing:5px;margin-bottom:16px;color:#f5f1e8;text-shadow:0 0 30px rgba(94,234,212,.2);font-weight:normal;}
.contact-inner p{color:#a8b3c4;font-size:.85rem;letter-spacing:2px;margin-bottom:40px;}
.contact-links{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;margin-bottom:48px;}
.contact-links a{background:rgba(94,234,212,.06);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(168,179,196,.3);padding:14px 32px;text-decoration:none;color:#a8b3c4;font-size:.75rem;letter-spacing:3px;transition:all .3s;text-transform:uppercase;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);}
.contact-links a:hover{background:rgba(94,234,212,.15);border-color:rgba(94,234,212,.5);color:#5eead4;box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 25px rgba(94,234,212,.3);}

.email-field{max-width:480px;margin:0 auto;display:flex;background:rgba(255,255,255,.03);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(168,179,196,.2);border-radius:2px;overflow:hidden;transition:border-color .3s,box-shadow .3s;}
.email-field:focus-within{border-color:rgba(94,234,212,.5);box-shadow:0 0 30px rgba(94,234,212,.15);}
.email-field input{flex:1;background:transparent;border:none;outline:none;padding:14px 18px;color:#f5f1e8;font-family:'Courier New',monospace;font-size:.78rem;letter-spacing:1px;}
.email-field input::placeholder{color:#6a7585;letter-spacing:2px;}
.email-field button{background:transparent;border:none;border-left:1px solid rgba(168,179,196,.2);color:#5eead4;padding:0 22px;font-family:'Courier New',monospace;font-size:.7rem;letter-spacing:3px;cursor:pointer;text-transform:uppercase;transition:background .3s;}
.email-field button:hover{background:rgba(94,234,212,.1);}

.contact-form{max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:14px;text-align:left;}
.contact-form input,.contact-form textarea{background:rgba(255,255,255,.03);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(168,179,196,.2);outline:none;padding:14px 18px;color:#f5f1e8;font-family:'Courier New',monospace;font-size:.78rem;letter-spacing:1px;transition:border-color .3s,box-shadow .3s;resize:none;}
.contact-form input:focus,.contact-form textarea:focus{border-color:rgba(94,234,212,.5);box-shadow:0 0 25px rgba(94,234,212,.12);}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#6a7585;letter-spacing:2px;}
.contact-form textarea{font-family:'Courier New',monospace;line-height:1.5;}
.contact-form button{margin-top:6px;background:rgba(94,234,212,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(94,234,212,.35);color:#5eead4;padding:14px 22px;font-family:'Courier New',monospace;font-size:.72rem;letter-spacing:3px;cursor:pointer;text-transform:uppercase;transition:all .3s;display:flex;justify-content:center;align-items:center;gap:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08);}
.contact-form button:hover{background:rgba(94,234,212,.18);border-color:rgba(94,234,212,.6);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 0 30px rgba(94,234,212,.3);}
.contact-form button .btn-arrow{transition:transform .3s;}
.contact-form button:hover .btn-arrow{transform:translateX(4px);}
.contact-form.sent button{background:rgba(94,234,212,.2);border-color:#5eead4;color:#5eead4;pointer-events:none;}
.contact-form.error button{background:rgba(255,107,91,.12);border-color:rgba(255,107,91,.6);color:#ff6b5b;}
.form-status{font-size:.72rem;letter-spacing:2px;color:#6a7585;text-align:center;min-height:1em;transition:color .3s;}
.form-status.err{color:#ff6b5b;}

footer{border-top:1px solid rgba(94,234,212,.12);background:#0a0e14;padding:40px;font-size:.7rem;color:#6a7585;letter-spacing:3px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;}
.footer-ascii{font-family:'Courier New',monospace;font-size:.6rem;letter-spacing:0;line-height:1;color:#5eead4;opacity:.5;white-space:pre;}
.footer-meta{display:flex;gap:24px;align-items:center;}
.footer-dot{width:6px;height:6px;border-radius:50%;background:#5eead4;box-shadow:0 0 10px #5eead4;animation:pulse 2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:.4;}50%{opacity:1;}}

@media(max-width:700px){
  nav ul{gap:16px;}
}