:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f7f4;--bg-soft:#eaf1ec;--surface:#fff;--surface-2:#f8fbf9;--ink:#0b1712;--ink-2:#263a30;--mute:#5b6f64;--faint:#5f7468;--line:#e1eae4;--line-strong:#cddad2;--brand:#0f3d2a;--brand-2:#14573b;--accent:#12a150;--accent-ink:#fff;--link:#0b6b38;--neon:#4df08c;--mint-bg:#dff6e8;--mint-fg:#0b6b38;--sky-bg:#dcedfa;--sky-fg:#0b5a8a;--peach-bg:#fde8d9;--peach-fg:#9a4a12;--rose-bg:#fde3e0;--rose-fg:#a3281b;--violet-bg:#ebe4fb;--violet-fg:#5a34b0;--editor:#0e1914;--editor-ink:#e8eeea;--editor-line:#1d2e26;--radius:16px;--radius-sm:10px;--radius-lg:24px;--shadow-sm:0 1px 2px #0b17120d;--shadow:0 8px 28px #0b171212;--shadow-lg:0 24px 60px #0b17122e;--ring:0 0 0 3px #12a15047;--font:"Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--sidebar:264px;--ease:cubic-bezier(.2, .7, .2, 1)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090d0b;--bg-soft:#0f1512;--surface:#111815;--surface-2:#151e1a;--ink:#eaf1ed;--ink-2:#c4d3ca;--mute:#8aa095;--faint:#7f948a;--line:#1f2b25;--line-strong:#2b3a32;--brand:#14573b;--brand-2:#1a6e49;--accent:#22c066;--link:#5af59a;--mint-bg:#22c06629;--mint-fg:#5af59a;--sky-bg:#56aaeb29;--sky-fg:#7cc4f7;--peach-bg:#f4a46029;--peach-fg:#f7ab70;--rose-bg:#ff6b5a29;--rose-fg:#ff8f80;--violet-bg:#a07cf02e;--violet-fg:#b9a0f5;--editor:#0b120f;--shadow-sm:0 1px 2px #0006;--shadow:0 8px 28px #0006;--shadow-lg:0 24px 60px #0009;--ring:0 0 0 3px #22c06659}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.55}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:800;line-height:1.15}a{color:inherit}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}svg{flex-shrink:0}:focus-visible{box-shadow:var(--ring);border-radius:8px;outline:none}::selection{background:var(--neon);color:#04200f}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--mute)}.faint{color:var(--faint)}.mono{font-family:var(--mono)}.small{font-size:.85rem}.grow{flex:1;min-width:0}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.col{flex-direction:column;gap:12px;display:flex}.stack-lg{flex-direction:column;gap:28px;display:flex}.btn{white-space:nowrap;height:44px;transition:transform .15s var(--ease), background .15s, border-color .15s, box-shadow .15s, opacity .15s;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.93rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 6px 16px #0f3d2a47}.btn-primary:hover:not(:disabled){background:var(--brand-2)}.btn-neon{background:var(--neon);color:#04200f;box-shadow:0 8px 22px #4df08c59}.btn-neon:hover:not(:disabled){filter:brightness(1.05)}.btn-soft{background:var(--mint-bg);color:var(--mint-fg)}.btn-soft:hover:not(:disabled){filter:brightness(.97)}.btn-ghost{color:var(--ink);border-color:var(--line-strong);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--rose-bg);color:var(--rose-fg)}.btn-text{height:auto;color:var(--link);background:0 0;border-radius:8px;padding:6px 8px}.btn-text:hover:not(:disabled){text-decoration:underline}.btn-sm{height:34px;padding:0 14px;font-size:.84rem}.btn-lg{height:54px;padding:0 28px;font-size:1rem}.btn-block{width:100%}.btn-icon{width:40px;height:40px;color:var(--ink-2);border:1px solid var(--line);background:0 0;border-radius:12px;padding:0}.btn-icon:hover{background:var(--surface-2)}.field{flex-direction:column;gap:6px;display:flex}.label{color:var(--mute);letter-spacing:.01em;font-size:.8rem;font-weight:700}.input,.textarea,.select{background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;width:100%;min-height:46px;padding:0 14px;transition:border-color .15s,box-shadow .15s}.textarea{resize:vertical;min-height:90px;padding:12px 14px;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--faint)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.search{position:relative}.search svg{color:var(--faint);pointer-events:none;position:absolute;top:50%;left:15px;transform:translateY(-50%)}.search .input{height:52px;box-shadow:var(--shadow-sm);border-radius:999px;padding-left:44px}.code-input{background:var(--editor);width:100%;min-height:210px;color:var(--editor-ink);border:1px solid var(--editor-line);border-radius:var(--radius);font-family:var(--mono);resize:vertical;tab-size:2;padding:16px 18px;font-size:.86rem;line-height:1.65}.code-input:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.code-input::placeholder{color:#5e7568}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px}.card.tight{padding:14px 16px}.card.interactive{cursor:pointer;transition:transform .18s var(--ease), box-shadow .18s, border-color .18s}.card.interactive:hover{box-shadow:var(--shadow);border-color:var(--line-strong);transform:translateY(-2px)}.card.tint-mint{background:var(--mint-bg);color:var(--mint-fg);border-color:#0000}.card.tint-rose{background:var(--rose-bg);color:var(--rose-fg);border-color:#0000}.section-title{letter-spacing:-.01em;font-size:1.05rem;font-weight:800}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.badge{white-space:nowrap;background:var(--bg-soft);max-width:100%;height:24px;color:var(--mute);border-radius:999px;align-items:center;gap:5px;padding:0 10px;font-size:.74rem;font-weight:700;display:inline-flex}.badge.mint{background:var(--mint-bg);color:var(--mint-fg)}.badge.sky{background:var(--sky-bg);color:var(--sky-fg)}.badge.peach{background:var(--peach-bg);color:var(--peach-fg)}.badge.rose{background:var(--rose-bg);color:var(--rose-fg)}.badge.violet{background:var(--violet-bg);color:var(--violet-fg)}.dot{background:var(--faint);border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot.live{background:var(--accent);animation:2s infinite pulse;box-shadow:0 0 #12a15080}@keyframes pulse{70%{box-shadow:0 0 0 8px #12a15000}to{box-shadow:0 0 #12a15000}}.avatar{--size:40px;width:var(--size);height:var(--size);font-weight:800;font-size:calc(var(--size) * .4);background:var(--mint-bg);color:var(--mint-fg);text-transform:uppercase;object-fit:cover;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.avatar.v1{background:var(--sky-bg);color:var(--sky-fg)}.avatar.v2{background:var(--peach-bg);color:var(--peach-fg)}.avatar.v3{background:var(--violet-bg);color:var(--violet-fg)}.app{grid-template-columns:var(--sidebar) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:8px;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0}.sidebar .brand{text-align:left;background:0 0;border:0;padding:4px 10px 18px}.nav-item{height:46px;color:var(--mute);text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:0 14px;font-size:.95rem;font-weight:700;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:var(--bg-soft);color:var(--ink)}.nav-item.active{background:var(--mint-bg);color:var(--mint-fg)}.nav-item .count{background:var(--neon);color:#04200f;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;margin-left:auto;padding:0 7px;font-size:.74rem;font-weight:800;display:inline-flex}.sidebar .spacer{flex:1}.door{background:var(--bg-soft);border:1px solid var(--line);text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.door.open{background:var(--mint-bg);color:var(--mint-fg);border-color:#0000}.door strong{font-size:.88rem;display:block}.door span{opacity:.85;font-size:.76rem}.me-card{border:1px solid var(--line);text-align:left;background:0 0;border-radius:14px;align-items:center;gap:10px;width:100%;padding:10px;display:flex}.me-card:hover{background:var(--surface-2)}.main{flex-direction:column;min-width:0;display:flex}.topbar{display:none}.page:focus{outline:none}.page{width:100%;max-width:880px;animation:rise .35s var(--ease);margin:0 auto;padding:36px 32px 64px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.page-head{margin-bottom:26px}.page-head h1{font-size:2rem}.page-head p{color:var(--mute);margin-top:6px}.tabbar{display:none}@media (width<=860px){.app{grid-template-columns:1fr}.sidebar{display:none}.topbar{z-index:30;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:58px;padding:0 16px;display:flex;position:sticky;top:0}.page{padding:22px 16px 110px}.page-head h1{font-size:1.6rem}.tabbar{z-index:40;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:22px;grid-template-columns:repeat(4,1fr);padding:6px;display:grid;position:fixed;bottom:12px;left:12px;right:12px}.tab{color:var(--mute);background:0 0;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:3px;padding:8px 0 6px;font-size:.7rem;font-weight:700;display:flex;position:relative}.tab.active{background:var(--mint-bg);color:var(--mint-fg)}.tab .count{background:var(--neon);color:#04200f;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.66rem;font-weight:800;display:inline-flex;position:absolute;top:4px;right:calc(50% - 22px)}}.hero{border-radius:var(--radius-lg);color:#fff;background:radial-gradient(520px 260px at 92% -10%,#4df08c66,#0000 70%),radial-gradient(380px 240px at -5% 120%,#12a15080,#0000 70%),linear-gradient(135deg,#0a2d1f 0%,#0f3d2a 55%,#14573b 100%);padding:34px 32px;position:relative;overflow:hidden;box-shadow:0 22px 50px #0f3d2a4d}.hero:after{content:"";pointer-events:none;background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:34px 34px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 80% 20%,#000,#0000 70%);mask-image:radial-gradient(circle at 80% 20%,#000,#0000 70%)}.hero>*{z-index:1;position:relative}.hero h1{color:#fff;margin:8px 0 10px;font-size:clamp(1.9rem,4.5vw,2.7rem)}.hero p{color:#ffffffd1;max-width:460px}.hero .eyebrow{color:#dff6e8;background:#ffffff1f;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:.8rem;font-weight:700;display:inline-flex}.hero .actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.hero .btn-ghost{color:#fff;border-color:#ffffff47}.hero .btn-ghost:hover{background:#ffffff1a}.alert-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);animation:rise .3s var(--ease);align-items:center;gap:14px;padding:16px 18px;display:flex}.alert-card.live{border-color:var(--accent);box-shadow:0 0 0 4px #12a1501f}.error-line{font-family:var(--mono);color:var(--rose-fg);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:.8rem;display:block;overflow:hidden}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (width<=640px){.grid-2{grid-template-columns:1fr}.hero{padding:26px 22px}}.empty{text-align:center;color:var(--mute);border:1.5px dashed var(--line-strong);border-radius:var(--radius);flex-direction:column;align-items:center;gap:8px;padding:36px 20px;display:flex}.empty svg{color:var(--faint)}.empty strong{color:var(--ink)}.stepper{align-items:center;gap:8px;margin-bottom:22px;display:flex}.step{color:var(--faint);align-items:center;gap:8px;font-size:.82rem;font-weight:700;display:flex}.step .n{background:var(--bg-soft);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.78rem;display:inline-flex}.step.on{color:var(--ink)}.step.on .n{background:var(--brand);color:#fff}.step.done .n{background:var(--accent);color:#fff}.step-bar{background:var(--line);border-radius:2px;flex:1;min-width:14px;height:2px}.preview{border-radius:var(--radius);background:var(--editor);color:var(--editor-ink);border:1px solid var(--editor-line);overflow:hidden}.preview header{border-bottom:1px solid var(--editor-line);color:#8aa095;font-size:.78rem;font-family:var(--mono);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.preview pre{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;max-height:340px;margin:0;padding:16px;font-size:.82rem;line-height:1.65;overflow:auto}.masked{color:var(--neon);background:#4df08c29;border-radius:6px;padding:1px 6px}.radar-wait{place-items:center;width:150px;height:150px;margin:8px auto 18px;display:grid;position:relative}.radar-wait .ring{border:2px solid var(--accent);opacity:0;animation:ripple 2.4s infinite var(--ease);border-radius:50%;position:absolute;inset:0}.radar-wait .ring:nth-child(2){animation-delay:.8s}.radar-wait .ring:nth-child(3){animation-delay:1.6s}.radar-wait .core{background:var(--brand);width:64px;height:64px;color:var(--neon);border-radius:50%;place-items:center;display:grid;box-shadow:0 10px 30px #0f3d2a66}@keyframes ripple{0%{opacity:.7;transform:scale(.45)}to{opacity:0;transform:scale(1)}}.chips{scrollbar-width:none;gap:8px;padding:2px 0 6px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line-strong);background:var(--surface);height:34px;color:var(--ink-2);border-radius:999px;flex-shrink:0;padding:0 14px;font-size:.84rem;font-weight:700}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff}.fiche-row{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.fiche-row h3{margin-bottom:6px;font-size:1rem}.code-block{background:var(--editor);color:var(--editor-ink);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;border-radius:12px;padding:14px 16px;font-size:.82rem;line-height:1.6;position:relative}.code-block.error{color:#ff9c8a}.block-label{letter-spacing:.08em;text-transform:uppercase;color:var(--mute);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:.74rem;font-weight:800;display:flex}.project-top{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.project-top h3{margin-bottom:4px;font-size:1.1rem}.members{display:flex}.members .avatar{--size:30px;border:2px solid var(--surface);margin-left:-8px}.members .avatar:first-child{margin-left:0}.kanban{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (width<=720px){.kanban{grid-template-columns:1fr}}.kcol{background:var(--bg-soft);border-radius:14px;min-height:120px;padding:12px}.kcol h4{letter-spacing:.06em;text-transform:uppercase;color:var(--mute);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.78rem;display:flex}.task{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:8px;padding:10px 12px;font-size:.88rem}.task .row{gap:6px;margin-top:8px}.task select{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:3px 6px;font-size:.76rem}.passport{border-radius:var(--radius-lg);color:#fff;background:radial-gradient(420px 220px at 100% 0,#4df08c52,#0000 70%),linear-gradient(140deg,#0a2d1f,#0f3d2a 60%,#14573b);padding:30px;position:relative;overflow:hidden;box-shadow:0 22px 50px #0f3d2a4d}.passport h2{color:#fff;font-size:1.7rem}.passport .kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--neon);font-size:.72rem;font-weight:800}.passport .stat-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0 18px;display:grid}.passport .stat{background:#ffffff17;border-radius:14px;padding:14px}.passport .stat b{font-size:1.6rem;line-height:1;display:block}.passport .stat span{color:#ffffffb8;font-size:.76rem}.passport .badge{color:#dff6e8;background:#ffffff24}.hash{font-family:var(--mono);color:#fffc;word-break:break-all;background:#00000047;border-radius:10px;padding:10px 12px;font-size:.72rem;display:block}.proof{border-top:1px solid var(--line);align-items:flex-start;gap:12px;padding:14px 0;display:flex}.proof:first-child{border-top:0}.backdrop{z-index:80;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#050c0999;justify-content:center;align-items:center;padding:16px;animation:.2s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--shadow-lg);animation:rise .28s var(--ease);padding:26px;overflow:auto}.modal h2{margin-bottom:4px;font-size:1.3rem}.toasts{z-index:100;pointer-events:none;flex-direction:column;gap:10px;width:min(380px,100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.toast{pointer-events:auto;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);animation:rise .3s var(--ease);border-radius:14px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.toast svg{color:var(--neon);margin-top:2px}.toast.error svg{color:#ff8f80}.spinner{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{border-radius:var(--radius);background:linear-gradient(90deg, var(--bg-soft), var(--surface-2), var(--bg-soft));background-size:200% 100%;height:78px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.login{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh;display:grid}.login-art{color:#fff;background:radial-gradient(600px 400px at 90% 0,#4df08c66,#0000 70%),radial-gradient(500px 400px at 0 100%,#12a15073,#0000 70%),linear-gradient(145deg,#072217,#0f3d2a 60%,#14573b);flex-direction:column;justify-content:space-between;padding:44px;display:flex;position:relative;overflow:hidden}.login-art:after{content:"";pointer-events:none;background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 70% 30%,#000,#0000 75%);mask-image:radial-gradient(circle at 70% 30%,#000,#0000 75%)}.login-art>*{z-index:1;position:relative}.login-art h1{color:#fff;max-width:480px;font-size:clamp(2.2rem,4vw,3.2rem)}.login-art ul{color:#ffffffdb;flex-direction:column;gap:12px;margin:26px 0 0;padding:0;list-style:none;display:flex}.login-art li{align-items:center;gap:12px;display:flex}.login-art li svg{color:var(--neon)}.login-form{justify-content:center;align-items:center;padding:32px 20px;display:flex;position:relative}.login-form .theme{position:absolute;top:18px;right:18px}.login-box{width:100%;max-width:380px}@media (width<=860px){.login{grid-template-columns:1fr}.login-art{padding:28px 22px 34px}.login-art ul{display:none}}.salle{background:var(--editor);height:100dvh;color:var(--editor-ink);flex-direction:column;display:flex}.salle-bar{border-bottom:1px solid var(--editor-line);background:#0a110e;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.salle-bar .btn-ghost{color:var(--editor-ink);border-color:#2b4237}.salle-files{border-bottom:1px solid var(--editor-line);background:#0a110e;gap:2px;padding:6px 12px 0;display:flex;overflow-x:auto}.salle-file{color:#8aa095;font-family:var(--mono);background:0 0;border:0;border-radius:10px 10px 0 0;padding:8px 14px;font-size:.8rem}.salle-file.on{background:var(--editor);color:#fff;box-shadow:inset 0 2px 0 var(--accent)}.salle-body{flex:1;grid-template-columns:minmax(0,1fr) 340px;min-height:0;display:grid}.salle-editor{min-width:0;min-height:0;overflow:hidden}.salle-editor .cm-editor{height:100%}.salle-side{border-left:1px solid var(--editor-line);background:#0a110e;flex-direction:column;min-height:0;display:flex;overflow-y:auto}.salle-side h3{letter-spacing:.1em;text-transform:uppercase;color:#8aa095;padding:14px 16px 6px;font-size:.74rem}.chat-log{flex-direction:column;flex:1 0 150px;gap:10px;padding:6px 16px;display:flex;overflow-y:auto}.msg{font-size:.86rem;line-height:1.45}.msg b{color:var(--neon);font-weight:700}.msg.me b{color:#7cc4f7}.msg.sys{color:#8aa095;font-style:italic}.chat-form{border-top:1px solid var(--editor-line);gap:8px;padding:12px;display:flex}.chat-form input{color:#fff;background:#0f1a15;border:1px solid #2b4237;border-radius:999px;flex:1;min-width:0;height:40px;padding:0 14px}.chat-form input:focus{border-color:var(--accent);outline:none}.test-box{background:#11201a;border:1px solid #1f3a2d;border-radius:12px;margin:8px 16px 0;padding:12px 14px}.test-box.ok{background:#4df08c1f;border-color:#4df08c66}.test-box.ko{background:#ff6b5a1a;border-color:#ff6b5a66}.salle-foot{border-top:1px solid var(--editor-line);background:#0a110e;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.cm-editor{font-family:var(--mono);font-size:14px;background:var(--editor)!important}.cm-gutters{background:var(--editor)!important;border-right:1px solid var(--editor-line)!important;color:#5e7568!important}.kv{grid-template-columns:110px 1fr;gap:8px 14px;font-size:.9rem;display:grid}.kv dt{color:var(--mute)}.kv dd{margin:0}.switch{background:var(--line-strong);border:0;border-radius:999px;flex-shrink:0;width:48px;height:28px;transition:background .2s;position:relative}.switch:after{content:"";width:22px;height:22px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #00000040}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:after{transform:translate(20px)}.tech-picker{flex-wrap:wrap;gap:8px;display:flex}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.stat-tile{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);padding:16px}.stat-tile b{letter-spacing:-.03em;font-size:1.8rem;line-height:1.1;display:block}.stat-tile span{color:var(--mute);font-size:.8rem}.guide{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.guide li{background:var(--bg-soft);border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.guide li.done{opacity:.6}.guide .n{background:var(--brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:.78rem;font-weight:800;display:inline-flex}.guide li.done .n{background:var(--accent)}@media (width<=520px){.grid-3{gap:8px}.stat-tile{padding:12px}.stat-tile b{font-size:1.4rem}.guide li{flex-wrap:wrap}.guide li .grow{flex:calc(100% - 50px)}.guide li .btn{margin-left:38px}}.run-box{background:#0f1a15;border:1px solid #1f3a2d;border-radius:12px;flex-direction:column;gap:10px;margin:8px 16px 0;padding:12px 14px;display:flex}.expr{color:#e8eeea;background:#0b120f;border:1px solid #2b4237;border-radius:10px;width:100%;height:38px;padding:0 12px;font-size:.8rem}.expr:focus{border-color:var(--accent);outline:none}.run-out{background:#0b120f;border:1px solid #1f3a2d;border-radius:10px;padding:10px 12px}.run-out.ok{border-color:#4df08c73}.run-out.ko{border-color:#ff6b5a80}.run-out pre{white-space:pre-wrap;word-break:break-word;color:#c4d3ca;max-height:160px;margin:6px 0 0;font-size:.78rem;overflow:auto}.run-out.ko pre{color:#ffb4a6}.test-box.pop{animation:pop .5s var(--ease)}@keyframes pop{0%{transform:scale(.96);box-shadow:0 0 #4df08c99}60%{transform:scale(1.02);box-shadow:0 0 0 10px #4df08c00}to{transform:scale(1)}}.diff{border:1px solid var(--editor-line);background:var(--editor);color:var(--editor-ink);border-radius:12px;overflow:hidden}.diff-head{color:#8aa095;border-bottom:1px solid var(--editor-line);padding:8px 14px;font-size:.74rem}.diff pre{max-height:360px;font-family:var(--mono);margin:0;padding:8px 0;font-size:.8rem;line-height:1.6;overflow:auto}.dl{white-space:pre-wrap;word-break:break-word;padding:0 14px 0 0;transition:background .35s,color .35s;display:flex}.dl .g{text-align:center;color:#5e7568;-webkit-user-select:none;user-select:none;flex:0 0 26px}.dl.del{color:#ffb4a6;background:#ff6b5a24;-webkit-text-decoration:line-through #ff6b5a99;text-decoration:line-through #ff6b5a99}.dl.add{color:#b6f7cf;background:#4df08c24}.dl.flash{outline:1px solid var(--neon);outline-offset:-1px}.verify{background:#ffffff14;border-radius:14px;align-items:center;gap:16px;margin-top:16px;padding:14px;display:flex}.qr{background:#fff;border-radius:12px;flex:none;width:132px;height:132px;padding:4px;line-height:0}.qr svg{width:100%;height:100%}.verdict{align-items:center;gap:8px;margin-top:10px;font-size:.84rem;font-weight:700;display:flex}.verdict.ok{color:var(--neon)}.verdict.ko{color:#ff9c8a}@media (width<=520px){.verify{flex-direction:column;align-items:flex-start}}.stagger>*{animation:rise .55s var(--ease) both}.stagger>:nth-child(2){animation-delay:60ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.18s}.stagger>:nth-child(5){animation-delay:.24s}.stagger>:nth-child(6){animation-delay:.3s}.stagger>:nth-child(n+7){animation-delay:.36s}.card{transition:box-shadow .25s,border-color .25s}.btn-primary,.btn-neon{position:relative;overflow:hidden}.btn-primary:after,.btn-neon:after{content:"";transition:transform .7s var(--ease);pointer-events:none;background:linear-gradient(110deg,#0000 30%,#ffffff47 48%,#0000 66%);position:absolute;inset:0;transform:translate(-120%)}.btn-primary:hover:after,.btn-neon:hover:after{transform:translate(120%)}.hero .btn-neon{animation:3.2s ease-in-out infinite glow}@keyframes glow{50%{box-shadow:0 8px 34px #4df08c9e}}.hero h1{background:linear-gradient(100deg,#fff 30%,#b6f7cf 70%,#4df08c);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-art{pointer-events:none;width:min(330px,40%);top:50%;right:28px;transform:translateY(-50%);position:absolute!important}.hero .hero-art~*,.hero>.eyebrow,.hero>h1,.hero>p,.hero>.actions{max-width:58%}.scene{perspective:900px}.scene-win{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08140ed1;border:1px solid #ffffff24;border-radius:16px;animation:6s ease-in-out infinite floaty;position:relative;overflow:visible;transform:rotateY(-9deg)rotateX(4deg);box-shadow:0 28px 60px #00000073,0 0 0 1px #4df08c1a}@keyframes floaty{50%{transform:rotateY(-9deg)rotateX(4deg)translateY(-7px)}}.scene-bar{font-family:var(--mono);color:#8aa095;border-bottom:1px solid #ffffff1a;align-items:center;gap:6px;padding:10px 12px;font-size:.68rem;display:flex}.scene-bar i{background:#fff3;border-radius:50%;width:9px;height:9px}.scene-bar span{margin-left:6px}.scene-bar em{color:var(--neon);margin-left:auto;font-style:normal}.scene-bar em:before{content:"";background:var(--neon);border-radius:50%;width:6px;height:6px;margin-right:5px;animation:2s infinite pulse;display:inline-block}.scene-code{font-family:var(--mono);color:#c4d3ca;min-height:112px;padding:14px 14px 18px;font-size:.74rem;line-height:1.9}.scene-code p{white-space:pre;margin:0}.scene-code b{color:#c792ea;font-weight:500}.scene-code .bug{color:#ffb4a6;animation:8s infinite bugline}.scene-code .fix{color:#b6f7cf;clip-path:inset(0 100% 0 0);margin-top:-1.9em;animation:8s infinite fixline}@keyframes bugline{0%,42%{opacity:1;text-decoration:none}48%,54%{opacity:1;text-decoration:line-through}58%,94%{opacity:0}to{opacity:1;text-decoration:none}}@keyframes fixline{0%,52%{clip-path:inset(0 100% 0 0)}72%,94%{clip-path:inset(0)}to{clip-path:inset(0 100% 0 0)}}.cur{font-family:var(--mono);color:#04200f;white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:.62rem;font-weight:700;position:absolute}.cur:before{content:"";border:5px solid #0000;border-bottom-color:currentColor;position:absolute;top:-9px;left:-2px;transform:rotate(-30deg)}.cur.c1{color:#4df08c;background:#4df08c;animation:8s ease-in-out infinite moveA}.cur.c2{color:#7cc4f7;background:#7cc4f7;animation:8s ease-in-out infinite moveB}.cur.c1,.cur.c2{-webkit-text-fill-color:#04200f}@keyframes moveA{0%,to{top:49%;left:58%}45%{top:49%;left:66%}75%{top:62%;left:70%}}@keyframes moveB{0%,to{top:62%;left:18%}50%{top:52%;left:36%}80%{top:62%;left:50%}}.scene-test{height:34px;font-family:var(--mono);background:#ffffff0f;border-radius:10px;margin:0 12px 12px;font-size:.7rem;position:relative}.scene-test span{border-radius:10px;align-items:center;padding:0 12px;font-weight:700;display:flex;position:absolute;inset:0}.scene-test .ko{color:#ff9c8a;background:#ff6b5a24;animation:8s infinite koShow}.scene-test .ok{color:var(--neon);opacity:0;background:#4df08c29;animation:8s infinite okShow;box-shadow:0 0 22px #4df08c59}@keyframes koShow{0%,70%{opacity:1}74%,96%{opacity:0}to{opacity:1}}@keyframes okShow{0%,72%{opacity:0;transform:scale(.96)}78%,94%{opacity:1;transform:scale(1)}to{opacity:0}}.login-scene{max-width:520px;margin:26px 0 8px}@media (width<=860px){.login-scene{display:none}}@media (height<=700px){.login-art ul{display:none}}@media (width<=720px){.hero-art{display:none!important}.hero>.eyebrow,.hero>h1,.hero>p,.hero>.actions{max-width:none}}.confetti{z-index:90;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti span{width:var(--s);height:calc(var(--s) * .55);background:var(--c);opacity:0;animation:burst 1.6s cubic-bezier(.15, .7, .3, 1) var(--t) forwards;border-radius:2px;position:absolute;top:38%;left:50%}@keyframes burst{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(calc(cos(var(--a)) * var(--d)), calc(sin(var(--a)) * var(--d) + 180px)) rotate(var(--r))}}.celebrate{z-index:95;background:var(--neon);color:#04200f;animation:banner 3.4s var(--ease) both;border-radius:999px;align-items:center;gap:10px;padding:12px 22px;font-weight:800;display:flex;position:fixed;top:76px;left:50%;transform:translate(-50%);box-shadow:0 14px 40px #4df08c80}@keyframes banner{0%{opacity:0;transform:translate(-50%,-24px)scale(.9)}10%,86%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-12px)scale(.98)}}.drawn-check .ring{stroke:var(--accent);stroke-dasharray:145;stroke-dashoffset:145px;animation:.7s ease-out forwards draw}.drawn-check .tick{stroke:var(--accent);stroke-dasharray:40;stroke-dashoffset:40px;animation:.45s ease-out .55s forwards draw}@keyframes draw{to{stroke-dashoffset:0}}.passport:before{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 38%,#ffffff1c 50%,#0000 62%);animation:6s 1s infinite sheen;position:absolute;inset:0;transform:translate(-100%)}@keyframes sheen{40%,to{transform:translate(100%)}}.seal{background:radial-gradient(circle at 30% 30%,#4df08c59,#4df08c14);border:1.5px solid #4df08c8c;border-radius:50%;place-items:center;width:54px;height:54px;display:grid;box-shadow:0 0 24px #4df08c4d}.salle-seg{background:#0f1a15;border:1px solid #1f3a2d;border-radius:999px;padding:3px;display:none}.salle-seg button{color:#8aa095;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;height:30px;padding:0 12px;font-size:.78rem;font-weight:700;display:inline-flex}.salle-seg button.on{background:var(--neon);color:#04200f}.sec{flex-direction:column;display:flex}.chat-sec{flex:1 0 auto}@media (width<=860px){.salle-seg{display:inline-flex}.salle-body{grid-template-rows:minmax(0,1fr);grid-template-columns:1fr}.salle-side{border-left:0;display:none}.salle-body:not([data-tab=code]) .salle-editor{display:none}.salle-body:not([data-tab=code]) .salle-side{display:flex}.salle-body[data-tab=run] [data-sec=chat],.salle-body[data-tab=chat] [data-sec=run]{display:none}.salle-bar{flex-wrap:wrap}}.seg-tabs{background:var(--bg-soft);border:1px solid var(--line);border-radius:14px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.seg-tabs button{height:40px;color:var(--mute);background:0 0;border:0;border-radius:10px;font-size:.9rem;font-weight:700;transition:background .2s,color .2s,box-shadow .2s}.seg-tabs button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.btn-google{color:#1f1f1f;background:#fff;border-color:#dadce0}.btn-google:hover{background:#f8f9fa}[data-theme=dark] .btn-google{color:#1f1f1f;background:#fff}.divider{color:var(--faint);align-items:center;gap:12px;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.pw{display:block;position:relative}.pw .input{padding-right:48px}.pw-toggle{width:36px;height:36px;color:var(--faint);background:0 0;border:0;border-radius:10px;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--ink);background:var(--bg-soft)}.meter{align-items:center;gap:10px;margin-top:2px;display:flex}.meter .bars{gap:4px;display:flex}.meter i{background:var(--line-strong);border-radius:3px;width:28px;height:5px;transition:background .2s}.meter i.on.s1{background:#ff6b5a}.meter i.on.s2{background:#f2a93b}.meter i.on.s3{background:#7bcf5a}.meter i.on.s4{background:var(--accent)}.skip{z-index:200;background:var(--neon);color:#04200f;border:0;border-radius:10px;padding:10px 16px;font-weight:800;transition:top .15s;position:absolute;top:-60px;left:12px}.skip:focus{top:12px}:root{--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%234df08c' stroke-opacity='.2' stroke-width='1.4'%3E%3Cpath d='M28 4 52 28 28 52 4 28Z'/%3E%3Cpath d='M28 16 40 28 28 40 16 28Z'/%3E%3Cpath d='M28 0v4M28 52v4M0 28h4M52 28h4'/%3E%3C/g%3E%3C/svg%3E")}.login-art:before,.hero:before{content:"";background-image:var(--pattern);opacity:.9;pointer-events:none;background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(115deg,#0000 18%,#000 78%);mask-image:linear-gradient(115deg,#0000 18%,#000 78%)}.passport:after{content:"";background-image:var(--pattern);pointer-events:none;background-size:44px 44px;width:220px;height:220px;position:absolute;bottom:-20px;right:-20px;-webkit-mask-image:radial-gradient(circle at 100% 100%,#000,#0000 70%);mask-image:radial-gradient(circle at 100% 100%,#000,#0000 70%)}.pattern-band{background:linear-gradient(135deg, var(--brand) 25%, transparent 25%) -7px 0 / 14px 14px, linear-gradient(225deg, var(--brand) 25%, transparent 25%) -7px 0 / 14px 14px, linear-gradient(315deg, var(--accent) 25%, transparent 25%) 0 0 / 14px 14px, linear-gradient(45deg, var(--accent) 25%, #f2c14e 25%, #f2c14e 50%, transparent 50%) 0 0 / 14px 14px, var(--neon);opacity:.95;height:14px}.pattern-band.flip{transform:scaleY(-1)}.art{margin:0 auto 4px;display:block;overflow:visible}.art .glow{fill:var(--mint-bg)}.art .ground{fill:var(--line-strong);opacity:.6}.art .frame{fill:var(--surface);stroke:var(--line-strong);stroke-width:2px}.art .panel,.art .shield{fill:var(--brand)}.art .light{fill:var(--neon);opacity:.35}.art .spill{fill:var(--neon);opacity:.25}.art .knob{fill:#f2c14e}.art .line,.art .link{stroke:var(--faint);stroke-width:3px;stroke-linecap:round}.art .link{stroke:var(--accent);stroke-dasharray:2 6}.art .leaf{fill:var(--accent)}.art .card{stroke:var(--line-strong);stroke-width:1.5px}.art .card.back{fill:var(--sky-bg)}.art .card.mid{fill:var(--peach-bg)}.art .card.front{fill:var(--surface)}.art .card.ok{fill:var(--mint-bg)}.art .col{fill:var(--bg-soft)}.art .mark{fill:var(--accent)}.art .tick{stroke:var(--mint-fg);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.art .shield+.tick{stroke:var(--neon);stroke-width:7px}.art .spark{fill:#f2c14e;animation:2.6s ease-in-out infinite twinkle}.art .spark.s2{fill:var(--neon);animation-delay:1.2s}.art .avatar{stroke:var(--line-strong);stroke-width:2px}.art .a1{fill:var(--sky-bg)}.art .a2{fill:var(--peach-bg)}.art .head,.art .body{fill:var(--brand)}.art .ring{fill:none;stroke:var(--accent);stroke-width:1.6px;opacity:.4}.art .ring.r2{opacity:.28}.art .ring.r3{opacity:.18}.art .sweep{fill:var(--accent);opacity:.22;transform-origin:84px 62px;animation:4s linear infinite sweep}.art .dot{fill:var(--brand)}.art .ping{fill:var(--neon);animation:2s ease-in-out infinite twinkle}.art .float{animation:5s ease-in-out infinite floaty-art}@keyframes floaty-art{50%{transform:translateY(-5px)}}@keyframes twinkle{50%{opacity:.25;transform:scale(.8)}}@keyframes sweep{to{transform:rotate(360deg)}}.art .spark,.art .ping{transform-box:fill-box;transform-origin:50%}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{body{background:#fff}.sidebar,.tabbar,.topbar,.toasts,.no-print{display:none!important}.app{display:block}.page{max-width:none;padding:0;animation:none}.passport{box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.card{box-shadow:none;break-inside:avoid}}.amap{position:relative}.amap-svg{width:100%;height:auto;max-height:40vh;display:block}.amap-dots circle{fill:#fff3}.amap-helper{fill:var(--neon);opacity:.85;animation:3.2s ease-in-out infinite amap-blink}.amap-helper:nth-child(3n){animation-delay:1.1s}.amap-helper:nth-child(3n+1){animation-delay:2s}.amap-line{fill:none;stroke:var(--neon);stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px;filter:drop-shadow(0 0 5px var(--neon));animation:amap-draw 1.6s 1.1s var(--ease) forwards}.amap-ask{fill:#ff8a5c;filter:drop-shadow(0 0 8px #ff8a5c)}.amap-ok{fill:var(--neon);filter:drop-shadow(0 0 10px var(--neon));opacity:0;animation:.4s ease-out 2.5s forwards amap-pop}.amap-ring{fill:none;stroke:#ff8a5c;stroke-width:1.6px;transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out infinite amap-ping}.amap-ring.r2{stroke:var(--neon);opacity:0;animation:1.8s ease-out 2.5s infinite amap-ping}.amap-card{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#072217d1;border:1px solid #4df08c59;border-radius:16px;max-width:100%;margin-top:6px;padding:12px 16px;font-size:.86rem;animation:4.2s ease-out both amap-card;position:relative}.amap-card p{margin:2px 0 0}.amap-card p span{color:#ffffffb3}.amap-card .ok{color:var(--neon);opacity:0;animation:.4s ease-out 2.5s forwards amap-pop}.amap-live{letter-spacing:.08em;text-transform:uppercase;color:var(--neon);align-items:center;gap:6px;font-size:.7rem;font-weight:800;display:inline-flex}.amap-live i{background:var(--neon);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite amap-blink}@keyframes amap-draw{to{stroke-dashoffset:0}}@keyframes amap-pop{to{opacity:1}}@keyframes amap-blink{50%{opacity:.3}}@keyframes amap-ping{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(4)}}@keyframes amap-card{0%{opacity:0;transform:translateY(8px)}8%,92%{opacity:1;transform:none}to{opacity:0}}@media (prefers-reduced-motion:reduce){.amap-line{stroke-dashoffset:0;animation:none}.amap-ok,.amap-card .ok{opacity:1;animation:none}.amap-ring,.amap-helper,.amap-live i,.amap-card{animation:none}}.hero-map{border-radius:var(--radius-lg);background:linear-gradient(160deg,#072217,#0f3d2a);margin:0 0 18px;padding:16px 16px 10px}.espaces{grid-template-columns:220px minmax(0,1fr);gap:16px;height:calc(100vh - 150px);min-height:420px;display:grid}.espaces-list{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.room-title{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:14px 10px 4px;font-size:.72rem;font-weight:800}.room{min-height:40px;color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;padding:0 12px;font-weight:600;display:flex}.room:hover{background:var(--bg-soft)}.room.on{background:var(--mint-bg);color:var(--mint-fg)}.room .small{margin-left:auto}.espaces-main{flex-direction:column;padding:0;display:flex;overflow:hidden}.espaces-main header{border-bottom:1px solid var(--line);padding:14px 18px}.espaces-main h2{align-items:center;gap:6px;margin:0;font-size:1.1rem;display:flex}.espaces-scroll{flex-direction:column;flex:1;gap:12px;padding:14px 18px;display:flex;overflow-y:auto}.msg,.comment,.feed-item{align-items:flex-start;gap:10px;display:flex}.msg p{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 0}.espaces-main .msg a,.espaces-main .feed-item a,.comment a{color:var(--ink);text-decoration:none}.feed-item>svg{color:var(--accent);margin-top:2px}.follow{vertical-align:middle;opacity:.6;margin-left:4px}.msg:hover .follow{opacity:1}.espaces-form{border-top:1px solid var(--line);gap:8px;padding:12px 18px;display:flex}@media (width<=860px){.espaces{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;height:calc(100vh - 190px)}.espaces-list{flex-direction:row;gap:6px;overflow-x:auto}.room-title{display:none}.room{white-space:nowrap;flex-shrink:0}}.lp{background:var(--bg);min-height:100vh;color:var(--ink);overflow-x:clip}.lp-nav{z-index:2;justify-content:space-between;align-items:center;gap:12px;padding:16px clamp(16px,4vw,48px);display:flex;position:relative}.lp-nav-right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.lp-hero{--mx:30%;--my:30%;grid-template-columns:1fr 1.05fr;align-items:center;gap:clamp(20px,4vw,56px);max-width:1280px;margin:0 auto;padding:clamp(24px,5vw,64px) clamp(16px,4vw,48px);display:grid;position:relative}.lp-hero:before{content:"";background:radial-gradient(420px circle at var(--mx) var(--my), #4df08c38, transparent 70%);pointer-events:none;z-index:0;position:absolute;inset:0}.lp-hero>*{z-index:1;position:relative}.lp-pill{background:var(--mint-bg);color:var(--mint-fg);border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:700;display:inline-block}.lp-hero h1{letter-spacing:-.03em;margin:16px 0;font-size:clamp(2.1rem,4.6vw,3.4rem);line-height:1.06}.lp-hero h1 em{color:var(--link);font-style:normal}.lp-hero p{color:var(--mute);max-width:520px;font-size:1.08rem}.lp-cta{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.lp-hint{margin-top:18px;font-size:.9rem!important}.lp-room{background:var(--brand);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#e8eeea;flex-direction:column;gap:12px;padding:14px;display:flex}.lp-room-tabs{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lp-room-tabs button{color:#cfe9db;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff2e;border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:700}.lp-room-tabs button.on{background:var(--neon);color:#072217;border-color:var(--neon)}.lp-room-tabs .lp-replay{place-items:center;margin-left:auto;padding:7px 9px;display:grid}.lp-win{background:var(--editor);border:1px solid var(--editor-line);border-radius:14px;overflow:hidden}.lp-win-bar{border-bottom:1px solid var(--editor-line);color:#7f948a;align-items:center;gap:8px;padding:10px 14px;font-size:.85rem;display:flex}.lp-win-bar i{background:#2c3a33;border-radius:50%;width:11px;height:11px}.lp-win-bar span{margin-left:8px}.lp-presence{margin-left:auto;font-style:normal;display:flex}.lp-presence b{color:#3a2300;border:2px solid var(--editor);width:24px;height:24px;animation:lp-pop .4s var(--ease) both;background:#ffb347;border-radius:50%;place-items:center;font-size:.75rem;display:grid}.lp-presence b.h{background:var(--neon);color:#072217;margin-left:-6px}.lp-code{font:.95rem/1.7 var(--mono);min-height:190px;padding:18px 18px 20px;position:relative}.lp-line{white-space:pre-wrap;word-break:break-word;border-radius:6px;margin:0 -8px;padding:2px 8px}.lp-line.fixed{background:#4df08c29;animation:.9s ease-out lp-flash}.lp-cursor{background:var(--neon);color:#072217;font:700 .72rem var(--font);animation:lp-pop .3s var(--ease) both;border-radius:6px 6px 6px 0;padding:2px 8px;position:absolute;top:14px;right:18px}.lp-err{color:#ff9a8d;word-break:break-word;background:#2a1414;border:1px solid #6b2a2a;border-radius:10px;min-height:46px;margin-top:14px;padding:12px 14px;font-size:.85rem}.lp-ok{color:var(--neon);animation:lp-pop .4s var(--ease) both;background:#4df08c1f;border:1px solid #4df08c66;border-radius:10px;align-items:center;gap:8px;margin-top:14px;padding:12px 14px;font-weight:700;display:flex}.lp-feed{flex-direction:column;gap:8px;min-height:108px;display:flex}.lp-ev{color:#cfe9db;opacity:0;transition:opacity .4s, transform .4s var(--ease);align-items:center;gap:8px;margin:0;font-size:.88rem;display:flex;transform:translateY(8px);max-width:none!important}.lp-ev.in{opacity:1;transform:none}.lp-ev.gold{color:#ffe2a8}.lp-ev svg{flex:none}@keyframes lp-pop{0%{opacity:0;transform:scale(.6)}}@keyframes lp-flash{0%{background:#4df08c99}}.lp-stats{grid-template-columns:repeat(4,1fr);gap:12px;max-width:1280px;margin:0 auto;padding:0 clamp(16px,4vw,48px);display:grid}.lp-stats div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:4px;padding:18px;display:flex}.lp-stats b{letter-spacing:-.03em;color:var(--link);font-variant-numeric:tabular-nums;font-size:2.2rem}.lp-stats span{color:var(--mute);font-size:.9rem}.lp-section{max-width:1280px;margin:0 auto;padding:clamp(36px,6vw,80px) clamp(16px,4vw,48px) 0}.lp-section h2{letter-spacing:-.02em;margin-bottom:22px;font-size:clamp(1.5rem,3vw,2.2rem)}.lp-marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.lp-track{gap:12px;width:max-content;animation:60s linear infinite lp-slide;display:flex}.lp-marquee:hover .lp-track{animation-play-state:paused}.lp-fiche{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:300px;color:inherit;transition:transform .25s var(--ease), border-color .25s;flex-direction:column;gap:8px;padding:16px;text-decoration:none;display:flex}.lp-fiche:hover{border-color:var(--accent);transform:translateY(-4px)}.lp-fiche code{font:.78rem var(--mono);color:var(--rose-fg);background:var(--rose-bg);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:4px 8px;overflow:hidden}.lp-fiche span{color:var(--mute);font-size:.85rem}@keyframes lp-slide{to{transform:translate(-50%)}}.lp-video{padding-top:clamp(24px,4vw,48px);padding-bottom:clamp(20px,3vw,36px)}.lp-video-player{aspect-ratio:16/9;border-radius:var(--radius-lg);width:100%;max-width:960px;box-shadow:var(--shadow-lg);background:#072217;margin:0 auto;display:block}.lp-map{background:var(--brand);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:760px;margin:0 auto;padding:clamp(10px,2vw,24px)}.lp-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.lp-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);height:100%;transition:transform .25s var(--ease), box-shadow .25s;padding:22px}.lp-card:hover{box-shadow:var(--shadow);transform:translateY(-6px)rotate(-.4deg)}.lp-card h3{margin:10px 0 6px;font-size:1.1rem}.lp-card p{color:var(--mute)}.lp-card svg{color:var(--link)}.lp-final{border-radius:var(--radius-lg);background:linear-gradient(160deg, #072217, var(--brand) 70%);color:#fff;text-align:center;flex-direction:column;align-items:center;gap:22px;width:calc(100% - 2*clamp(16px,4vw,48px));max-width:1184px;margin:clamp(36px,6vw,80px) auto 0;padding:clamp(32px,5vw,64px);display:flex}.lp-final h2{max-width:640px;font-size:clamp(1.4rem,3vw,2.2rem)}.lp-foot{text-align:center;color:var(--mute);padding:32px 16px}.lp-reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(26px)}.lp-reveal.in{opacity:1;transform:none}@media (width<=860px){.lp-hero{grid-template-columns:1fr}.lp-stats{grid-template-columns:repeat(2,1fr)}.lp-grid{grid-template-columns:1fr}.lp-nav .btn-ghost{display:none}}@media (prefers-reduced-motion:reduce){.lp-track{animation:none}.lp-reveal{opacity:1;transition:none;transform:none}}
