.home{position:relative;z-index:1;min-height:var(--app-height);display:grid;place-items:center;gap:2rem;padding:2rem 1rem 6rem}.home__title{margin:0;font-size:clamp(1.6rem,3vw,2.4rem);text-align:center;color:var(--color-text);text-shadow:var(--glow-purple);animation:titlePulse 15s ease-in-out infinite}.home__grid{min-height:var(--app-height);display:flex;align-items:center;justify-content:center;gap:3rem;text-align:center}@media (orientation: portrait){.home__grid{margin-top:2vh;flex-direction:column;transform:translateY(0);gap:6vh}.neon-btn{padding:3vh 2rem;font-size:1.5vh}}@media (orientation: landscape){.home__grid{flex-direction:row;transform:translateY(17vh)}.neon-btn{padding:4vh 2rem;font-size:1.5vw}}.neon-btn{--bg: var(--color-cyan-base);--bg-bright: var(--color-cyan-bright);--glow: var(--glow-cyan);position:relative;border:none;border-radius:999px;font-weight:600;letter-spacing:.3px;color:var(--color-bg);background:var(--bg);box-shadow:var(--glow);cursor:pointer;transition:transform .18s ease,box-shadow .25s ease,background .25s ease,filter .25s ease;isolation:isolate;overflow:hidden;text-align:center;will-change:transform,filter;animation:btnPulse 3s ease-in-out infinite}.neon-btn:focus-visible{outline:2px solid var(--bg-bright);outline-offset:3px}.neon-btn:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translate(-120%);transition:transform .7s ease;mix-blend-mode:screen;pointer-events:none}.neon-btn:hover{transform:translateY(-2px) scale(1.02);background:var(--bg-bright);box-shadow:0 0 6px var(--bg),var(--glow);filter:saturate(1.1)}.neon-btn:hover:after{transform:translate(120%)}.neon-btn--pink{--bg: var(--color-pink-base);--bg-bright: var(--color-pink-bright);--glow: var(--glow-pink)}.neon-btn--cyan{--bg: var(--color-cyan-base);--bg-bright: var(--color-cyan-bright);--glow: var(--glow-cyan)}.neon-btn--purple{--bg: var(--color-purple-base);--bg-bright: var(--color-purple-bright);--glow: var(--glow-purple)}.neon-btn--yellow{--bg: var(--color-yellow-base);--bg-bright: var(--color-yellow-bright);--glow: var(--glow-yellow)}@keyframes btnPulse{0%,to{transform:translateY(0) scale(1);filter:brightness(.8)}50%{transform:translateY(-1px) scale(1.12);filter:brightness(1.15)}}@keyframes titlePulse{0%,52%,62%,to{color:inherit}55%{color:var(--color-yellow-bright)}}@media (orientation: portrait){.cam-fab{position:absolute;right:10vw;bottom:-5vw;width:clamp(54px,8vw,72px);height:clamp(54px,8vw,72px);border-radius:50%;border:2px solid var(--color-cyan-base);background:#00000059;color:var(--color-cyan-light);display:grid;place-items:center;line-height:0;box-shadow:var(--glow-cyan);cursor:pointer;transition:transform .18s ease,background .25s ease,box-shadow .25s ease;z-index:20;animation:fabPulse 2.8s ease-in-out infinite}}@media (orientation: landscape){.cam-fab{position:fixed;right:10vw;bottom:15vh;width:clamp(54px,8vw,72px);height:clamp(54px,8vw,72px);border-radius:50%;border:2px solid var(--color-cyan-base);background:#00000059;color:var(--color-cyan-light);display:grid;place-items:center;line-height:0;box-shadow:var(--glow-cyan);cursor:pointer;transition:transform .18s ease,background .25s ease,box-shadow .25s ease;z-index:20;animation:fabPulse 2.8s ease-in-out infinite}}.cam-fab:before{content:"📷";display:block;font-size:clamp(1.2rem,3.2vw,1.6rem);line-height:1;transform:translateY(-25%);transform:translate(-49%)}@keyframes fabPulse{0%,to{box-shadow:var(--glow-cyan)}50%{box-shadow:0 0 12px var(--color-cyan-base),var(--glow-cyan)}}.edge-trigger{position:fixed;top:50%;right:0;z-index:50;transform:translateY(-50%);width:20px;height:7vw;border-radius:16px 0 0 16px;background:#0e022b2a;color:#fff;box-shadow:0 4px 12px #1b1b1b86;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none}.edge-trigger:focus{outline:none;box-shadow:0 0 0 6px #0ea5e966}.edge-trigger:active{transform:translateY(-50%) scale(.9)}.edge-overlay{position:fixed;inset:0;background:#0e040f11;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:59}.edge-drawer{position:fixed;top:0;right:0;height:100%;width:9rem;background:#100d1877;color:#fff;border-radius:16px 0 0 16px;padding:12px;z-index:60;box-shadow:-4px 0 16px #b4068e5b;transform:translate(100%);transition:transform .2s ease}.edge-drawer[data-state=open]{transform:translate(0)}.edge-actions{display:flex;flex-direction:column;gap:12px;margin-top:12px}.edge-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:44px;padding:0 16px;border-radius:9999px;border:none;background:#42033294;color:#fff;font-size:14px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer}.edge-btn:hover{background:#fff3}.edge-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:#ffffff1a;display:grid;place-items:center;cursor:pointer;border:none}.edge-close:hover{background:#fff3}.edge-close:focus{outline:none;box-shadow:0 0 0 2px #0ea5e999}:root{--color-bg: #0d0d1a;--color-bg-alt: #1a1a2e;--color-bg-light: #2a2a40;--color-pink-light: #ff7abf;--color-pink-base: #ff2d95;--color-pink-bright: #ff0088;--color-cyan-light: #7ff6ff;--color-cyan-base: #00f0ff;--color-cyan-bright: #00e5ff;--color-purple-light: #c48fff;--color-purple-base: #a64dff;--color-purple-bright: #9400ff;--color-yellow-light: #ffe680;--color-yellow-base: #ffd700;--color-yellow-bright: #ffea00;--color-green-light: #9dff9d;--color-green-base: #39ff14;--color-green-bright: #00ff66;--color-text: #f0f0f0;--color-text-dim: #aaa;--glow-pink: 0 0 10px var(--color-pink-base), 0 0 20px var(--color-pink-base), 0 0 40px var(--color-pink-bright);--glow-cyan: 0 0 10px var(--color-cyan-base), 0 0 20px var(--color-cyan-base), 0 0 40px var(--color-cyan-bright);--glow-purple: 0 0 10px var(--color-purple-base), 0 0 20px var(--color-purple-base), 0 0 40px var(--color-purple-bright);--glow-yellow: 0 0 10px var(--color-yellow-base), 0 0 20px var(--color-yellow-base), 0 0 40px var(--color-yellow-bright);--glow-green: 0 0 10px var(--color-green-base), 0 0 20px var(--color-green-base), 0 0 40px var(--color-green-bright)}html,body{margin:0;padding:0;height:var(--app-height);min-height:100vh;font-family:"Baloo 2",sans-serif;background:#2e2e2e00;color:#ffffffe9}canvas{position:fixed;top:0;left:0;z-index:-1}main{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:var(--app-height);gap:1rem}button{padding:1rem 2rem;font-size:1.2rem}h1{margin:1rem 0;font-size:1.8rem;text-align:center}@media screen and (orientation: portrait){#logo{position:absolute;top:73vh;left:10vw;width:15vh;filter:drop-shadow(0 0 5px #0ff) drop-shadow(0 0 10px #0ff) drop-shadow(0 0 20px #0ff);animation:glowPulse 2s infinite ease-in-out;z-index:10}.floating-message-loloup{position:relative;font-size:.7rem;top:73vh;left:35vw;font-weight:700;pointer-events:none;z-index:999;transition:opacity 1s ease;white-space:nowrap}}@media screen and (orientation: landscape){#logo{position:absolute;top:65vh;left:3vw;width:10vw;filter:drop-shadow(0 0 5px #0ff) drop-shadow(0 0 10px #0ff) drop-shadow(0 0 20px #0ff);animation:glowPulse 2s infinite ease-in-out;z-index:10}.floating-message-loloup{position:relative;font-size:.7rem;font-weight:700;pointer-events:none;z-index:999;transition:opacity 1s ease;white-space:nowrap;left:18vw;top:67vh}}@keyframes glowPulse{0%,to{filter:drop-shadow(0 0 5px #0ff) drop-shadow(0 0 10px #0ff) drop-shadow(0 0 20px #0ff)}50%{filter:drop-shadow(0 0 10px #0ff) drop-shadow(0 0 20px #0ff) drop-shadow(0 0 30px #0ff)}}@keyframes shake{0%{transform:translate(0) rotate(0)}20%{transform:translate(0) rotate(-5deg)}40%{transform:translate(0) rotate(5deg)}60%{transform:translate(0) rotate(-5deg)}80%{transform:translate(0) rotate(5deg)}to{transform:translate(0) rotate(0)}}#logo.shake{animation:shake .6s}#chat-form{position:fixed;bottom:10px;left:10px;right:10px;display:flex;justify-content:center;z-index:999}#chat-input{width:100%;max-width:400px;padding:8px 12px;border-radius:20px;border:none;outline:none;font-size:1rem}@keyframes pop{0%{transform:translate(-50%) scale(.8);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.fade-out{opacity:0}body.camera-page{margin:0;padding:0;background:#000;overflow:hidden;height:100vh;width:100vw;position:relative}.camera-page #camera-container{position:relative;width:100vw;height:100%}.camera-page #video{width:100%;height:100%;object-fit:cover}.camera-page #overlay-buttons{position:absolute;bottom:15vh;width:100%;display:flex;justify-content:center;gap:2rem;z-index:10}.camera-page #overlay-buttons .photo-btn{pointer-events:auto;all:unset;padding:1rem 2rem;font-size:2rem;color:#0ff;background:#00000080;border:2px solid #0ff;border-radius:50%;box-shadow:0 0 10px #0ff;cursor:pointer;transition:transform .2s,background .3s;z-index:56}.camera-page #overlay-buttons .photo-btn:hover{transform:scale(1.1);background:#0ff3}.camera-page #overlay-buttons .photo-btn:disabled{opacity:.4;box-shadow:none;border-color:#444;color:#888;cursor:not-allowed}.paroles-line{display:inline;font-size:1.5rem;font-family:"Baloo 2",sans-serif;color:#fff;text-align:center;text-shadow:0 0 5px rgba(0,255,255,.5),0 0 10px rgba(0,255,255,.3),0 0 20px rgba(0,255,255,.2);line-height:1.8;padding:.5rem;max-width:90vw}.line-wrapper{display:block;margin:1rem auto;text-align:center}.anchor-word{position:relative;display:inline-block}.floating-insert{position:absolute;bottom:calc(100% - .8rem);left:50%;transform:translate(-50%);font-size:1.2rem;color:#0ff;opacity:.9;white-space:nowrap;pointer-events:none;text-shadow:0 0 5px rgba(0,255,255,.5),0 0 10px rgba(0,255,255,.3),0 0 20px rgba(0,255,255,.2)}.anchor-word{white-space:nowrap}#navigation-overlay{position:fixed;right:1rem;bottom:2rem;z-index:2000;background-color:#0d4ea363;color:#ff0000b2;border:none;border-radius:50%;padding:1rem;font-size:1rem;box-shadow:0 4px 10px #0000004d;cursor:pointer;transition:transform .2s ease}#navigation-overlay:hover{transform:scale(1.1)}.overlay-chords{position:relative}.chords-layer{position:absolute;left:0;right:0;top:0;pointer-events:none}.chord-abs{position:absolute;bottom:100%;white-space:nowrap;transform:translateY(+.25em)}.chord-badge{color:#ff4949;font-size:.75em;line-height:1;padding:.1em .3em;border-radius:4px;background:#ca8d0900;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.u-container{max-width:880px;margin:24px auto;padding:0 12px;color:#fff}.u-panel{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:16px;margin-bottom:16px}.u-row{display:grid;gap:8px;margin-bottom:12px}.u-row-inline{grid-template-columns:1fr auto;align-items:end;gap:12px}.u-field input{width:100%}.u-textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.u-btn{padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#fff;cursor:pointer}.u-btn:hover{background:#ffffff26}.u-btn:disabled{opacity:.5;cursor:not-allowed}.u-btn-primary{background:#10b981;border-color:#10b981;color:#0b0f1a}.u-btn-primary:hover{background:#0ea371}.u-alert{padding:10px 12px;border-radius:10px;margin-top:10px;font-size:.95rem}.u-alert-error{background:#ef44441f;border:1px solid rgba(239,68,68,.35)}.u-alert-success{background:#10b9811f;border:1px solid rgba(16,185,129,.35)}.u-dim{opacity:.7}.u-title{font-size:1.1rem;font-weight:600;margin-bottom:6px}.u-tags{display:flex;flex-wrap:wrap;gap:8px;opacity:.85;font-size:.9rem;margin-bottom:8px}.u-lines{display:grid;gap:10px}.u-line{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start}.u-badge{display:inline-block;background:#fbbf2433;border:1px solid rgba(251,191,36,.35);color:#fff;padding:2px 8px;border-radius:999px;font-weight:600}.u-measures{display:flex;flex-wrap:wrap;gap:8px}.u-chip{display:inline-block;padding:6px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#ffffff14}main.info-content{display:block;height:auto}.info-content{position:relative;z-index:10;color:#fff;background:#fff0;padding:2rem 2rem 4rem;margin:.5rem 1rem 2rem;border-radius:1rem;font-family:"Baloo 2",sans-serif;max-width:800px;margin-left:auto;margin-right:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.info-content h1{font-size:2rem;margin-bottom:1rem}.info-content p{line-height:1.8;margin-bottom:1rem}.info-content ul{padding-left:1.2rem;margin-bottom:1rem}.info-content code{background:#7e7c7c4f;padding:.2rem .4rem;border-radius:2px;line-height:2.8;font-family:"Baloo 2",sans-serif}.photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:12px;perspective:1000px}.photo-grid img{width:100%;height:160px;object-fit:cover;border-radius:12px;box-shadow:0 4px 18px #00000040;transition:transform .3s ease,box-shadow .3s ease,opacity .4s;cursor:pointer;opacity:.95}.photo-grid img:hover{transform:rotateY(8deg) scale(1.04);box-shadow:0 8px 26px #00000073;opacity:1}@media (min-width: 720px){.photo-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.photo-grid img{height:200px}}.jam-highlight{position:relative;margin:28px 0;padding:2px;border-radius:18px;background:linear-gradient(135deg,#ff2bd1,#00f0ff);box-shadow:0 0 18px #ff2bd166,0 0 26px #00f0ff4d;animation:jamGlow 2s ease-in-out infinite alternate}.jam-highlight:after{content:"";position:absolute;inset:-40px;background:radial-gradient(circle at center,rgba(255,43,209,.25),rgba(0,240,255,.1),transparent 70%);border-radius:50%;filter:blur(40px);z-index:-2;animation:auraMove 2s ease-in-out infinite alternate}@keyframes auraMove{0%{transform:scale(1) translate(0)}to{transform:scale(1.5) translate(10px,-8px)}}@keyframes jamGlow{0%{box-shadow:0 0 16px #ff2bd166,0 0 24px #00f0ff40}to{box-shadow:0 0 26px #ff2bd1e6,0 0 40px #00f0ff99}}.jam-inner{background:#0a0a0aa6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:20px 24px;text-align:center;color:#fff}.jam-inner h2{font-size:1.6rem;margin-bottom:6px;background:linear-gradient(90deg,#ff2bd1,#00f0ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.5px}.jam-date{font-size:1.2rem;font-weight:600;margin:6px 0}.jam-lieu{font-size:1rem;opacity:.9;margin-bottom:10px}.jam-fine{font-size:.95rem;opacity:.85;margin-top:8px}.jam-highlight:before{content:"";position:absolute;inset:-4px;background:linear-gradient(90deg,#ff2bd14d,#00f0ff4d);border-radius:inherit;filter:blur(18px);z-index:-1}.paroles-neonA{font-family:"Baloo 2",sans-serif;font-size:1.6rem;line-height:1.8;color:#d5feff;text-align:left;text-shadow:0 0 5px rgba(0,255,255,.5),0 0 10px rgba(0,255,255,.3),0 0 20px rgba(0,255,255,.2);padding:1rem;margin:0 auto;max-width:90vw}.paroles-neonB{font-family:"Baloo 2",sans-serif;font-size:1.6rem;line-height:1.8;color:#ffe1fe;text-align:left;text-shadow:0 0 5px rgba(221,0,255,.5),0 0 10px rgba(255,0,238,.3),0 0 20px rgba(200,0,255,.2);padding:1rem;margin:0 auto;max-width:90vw}.paroles-neonC{font-family:"Baloo 2",sans-serif;font-size:1.6rem;line-height:1.8;color:#e6ffd0;text-align:left;text-shadow:0 0 5px rgba(69,82,18,.5),0 0 10px rgba(195,255,0,.3),0 0 20px rgba(183,255,0,.2);padding:1rem;margin:0 auto;max-width:90vw}@media screen and (orientation: portrait){#selection-container-paroles{text-align:left;padding:1rem;margin-top:1vh;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#83838311;border-radius:1rem;width:70vw;margin-left:auto;margin-right:auto;z-index:1}#selector-paroles{padding:1vh 4vh;font-size:1rem;border:none;border-radius:.5rem;background:#222;color:#fff}#contenu-paroles{flex-grow:1;white-space:pre-wrap;text-align:left;overflow-y:auto;padding:.5rem;background:#1a1a1a00;border-radius:12px;box-shadow:0 0 10px #000a;font-size:1rem;line-height:1.6;box-sizing:border-box}}@media screen and (orientation: landscape){#selection-container-paroles{text-align:left;padding:1rem;margin-top:1vh;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#7272720c;border-radius:1rem;width:80vw;margin-left:auto;margin-right:auto;z-index:1}#selector-paroles{padding:1vh 16vw;font-size:2rem;border:none;border-radius:.5rem;background:#222;color:#fff}#contenu-paroles{flex-grow:2;white-space:pre-wrap;overflow-y:auto;padding:1rem;background:#8b0d7200;border-radius:12px;box-shadow:0 0 10px #000a;text-align:left;font-size:1.1rem;line-height:1.6;box-sizing:border-box}}main{display:block;height:auto}#tempo-led{width:20px;height:20px;border-radius:50%;margin:.5rem auto;background:#444;transition:background .3s}#tempo-led.active{background:#41ead4}#morceau-infos{margin:0rem;width:100vw;text-align:center;padding:0rem}#description{font-size:.9rem;color:#aaa}.cellule.active{box-shadow:0 0 10px #0ff,0 0 20px #0ff,0 0 30px #0ff,0 0 40px #0ff;background:#0ff3;border-color:#0ff;transition:box-shadow .2s,background .2s}.rep{margin-left:1rem;font-weight:700;font-family:"Baloo 2",sans-serif;font-size:2rem;color:#ff9}body.no-scroll{overflow:hidden;height:var(--app-height)}body.scrollable{overflow-y:auto}#selection-container{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#8181811f;border-radius:2rem;z-index:1}#selector{text-align:center;padding:1vh;font-size:1rem;border:none;border-radius:.5rem;background:#222;color:#fff}@media screen and (orientation: portrait){#selection-container{padding:.5rem;margin-top:.5vh;max-width:500px;margin-left:auto;margin-right:auto}#selector{padding:1vh;border:none;border-radius:.5rem}#grille-section{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;min-height:80vh;padding:.5rem;box-sizing:border-box}.ligne{display:flex;flex-wrap:nowrap;gap:.8rem;margin-bottom:2rem;align-items:center;justify-content:center;position:relative}.cellule{border:2px solid #ff85f9a1;padding:.5rem 1rem;border-radius:12px;background:#adc23944;font-family:"Baloo 2",sans-serif;font-size:5vw;min-width:3ch;text-align:center;box-shadow:0 0 10px #fff3;transition:transform .2s ease;position:relative}.repetition-badge{position:absolute;top:-.5rem;right:-.5rem;background:#ff9;color:#000;font-size:.8rem;padding:2px 5px;border-radius:6px;font-weight:700;box-shadow:0 0 4px #0000004d}.grille{display:flex;gap:1rem;margin-bottom:1rem}.mesure{border:1px solid #fff;padding:.5rem 1rem;border-radius:8px;background:#ffffff1a;font-family:"Baloo 2",sans-serif}#grille-container{display:flex;flex-direction:column;gap:1rem;padding:2rem;box-sizing:border-box}}@media screen and (orientation: landscape){#selection-container{padding:.8rem 1rem;margin-top:1vh;max-width:500px;margin-left:auto;margin-right:auto}#selector{padding:1vh;border:none;border-radius:.5rem}#grille-section{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;min-height:80vw;padding:.5rem;box-sizing:border-box}.ligne{display:flex;flex-wrap:nowrap;gap:4rem;margin-bottom:1.5rem;align-items:center;justify-content:center;position:relative}.cellule{border:2px solid #ff85f9a1;padding:.1rem;border-radius:12px;background:#adc23944;font-family:"Baloo 2",sans-serif;font-size:5vw;min-width:5ch;text-align:center;box-shadow:0 0 10px #fff3;transition:transform .2s ease;position:relative}.repetition-badge{position:absolute;top:-.5rem;right:-.5rem;background:#ff9;color:#000;font-size:1.2rem;padding:2px 5px;border-radius:6px;font-weight:700;box-shadow:0 0 4px #0000004d}.grille{display:flex;gap:1rem;margin-bottom:1rem}.mesure{border:1px solid #fff;padding:.5rem 1rem;border-radius:8px;background:#ffffff1a;font-family:"Baloo 2",sans-serif}#grille-container{display:flex;flex-direction:column;gap:1rem;padding:2rem;box-sizing:border-box}}.cm-root{min-height:100vh;background:#07070a00;color:#fff;display:grid;place-items:center;padding:20px;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Inter,Roboto,Helvetica Neue,Arial;font-size:4vw}.cm-card{width:min(980px,92vw);background:#10121b18;border:1px solid rgba(65,234,212,.25);border-radius:18px;padding:24px;box-shadow:0 10px 40px #00000059,inset 0 0 0 1px #ffffff05}.cm-section{margin:14px 0 6px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#ff2e88}.cm-line{margin:.28rem 0}.cm-sp{white-space:pre}.cm-inline{ruby-position:over;ruby-align:center}.cm-ly{white-space:pre}.cm-ch{font-size:.9em;line-height:1;color:#41ead4;font-weight:800;text-shadow:0 0 8px rgba(65,234,212,.45),0 0 18px rgba(65,234,212,.25)}
