*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(135deg,#b9ddfa,#0a55b9);color:#09234c}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(410px,1fr);gap:0}.showcase{position:relative;min-height:100vh;overflow:hidden;background:#0d579f}.showcase-bg{position:absolute;inset:0;background:linear-gradient(145deg,#d5eafc,#0c65b9)}.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s ease,visibility .7s;overflow:hidden}.slide.is-active{opacity:1;visibility:visible}.slide-first img{width:100%;height:100%;object-fit:cover;object-position:center}.showcase:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 60%,rgba(4,30,80,.58) 100%)}.showcase-top,.showcase-bottom{position:absolute;left:5%;right:5%;z-index:2}.showcase-top{top:5%}.showcase-bottom{bottom:3%;display:flex;flex-direction:column;align-items:flex-start;gap:12px}.brand{display:flex;align-items:center;gap:12px}.brand .cap{font-size:48px;line-height:1}.brand strong{font-size:39px;letter-spacing:-2px;color:#07285d}.brand strong span{color:#1266cc}.brand small{display:block;font-size:13px;letter-spacing:.1px;color:#435b7b}.showcase-top .brand{background:rgba(240,248,255,.82);width:max-content;padding:9px 16px;border-radius:18px;backdrop-filter:blur(8px)}.features{display:flex;gap:9px;flex-wrap:wrap}.features span{font-size:12px;color:#fff;background:rgba(7,36,83,.64);padding:8px 11px;border-radius:9px;backdrop-filter:blur(7px)}.ecosystem{color:#fff;background:rgba(13,39,84,.62);padding:12px 18px;border:1px solid #ffffff55;border-radius:15px;font-size:14px;line-height:1.6;backdrop-filter:blur(9px)}.ecosystem b{color:#ffd44c}.carousel-controls{display:flex;align-items:center;gap:22px;margin-left:70px}.nav-slide{border:1px solid #ffffff88;border-radius:50%;height:43px;width:43px;color:white;background:#ffffff25;font-size:29px;cursor:pointer}.dots{display:flex;align-items:center;gap:8px}.dot{border:2px solid #ffffffbb;background:#b4d2ee;border-radius:50%;width:13px;height:13px;cursor:pointer;padding:0}.dot.is-active{background:#1268d4;outline:2px solid white;outline-offset:2px}.slide-card{background:radial-gradient(circle at 70% 55%,#67bbf3,#0a55a7 70%)}.slide-verify{background:linear-gradient(145deg,#062c69,#168dba)}.slide-campus{background:linear-gradient(140deg,#d9f3fa,#3584bd)}.slide-text{position:absolute;top:26%;left:7%;max-width:62%;z-index:1;color:#fff;text-shadow:0 2px 10px #06336577}.slide-text h2{font-size:clamp(28px,3.6vw,54px);line-height:1.1;margin:14px 0}.slide-text p{font-size:clamp(15px,1.5vw,20px);line-height:1.5}.eyebrow{font-size:13px;font-weight:800;letter-spacing:2px;color:#ffe27a}.card-n2{position:absolute;width:60%;max-width:650px;right:2%;top:50%;transform:translateY(-25%) rotate(-5deg);box-shadow:0 24px 55px #03255d88;border-radius:12px;animation:cardFloat 5s ease-in-out infinite}.qr-symbol{position:absolute;right:12%;top:40%;font-size:clamp(150px,20vw,330px);color:#fff;text-shadow:0 0 30px #4ed7ff}.portrait{position:absolute;height:95%;right:0;bottom:-12%;filter:drop-shadow(0 10px 20px #08385b77)}@keyframes cardFloat{50%{transform:translateY(-29%) rotate(-2deg)}}.form-side{padding:4vh 4%;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#a7cffa,#0a57b4)}.login-card{width:100%;max-width:520px;padding:clamp(26px,4vw,56px);background:#fff;border-radius:21px;box-shadow:0 18px 60px #042a6480}.form-brand{justify-content:center}.form-brand .cap{font-size:49px}.form-brand strong{font-size:44px}.form-brand small{text-align:center}.color-bars{display:flex;gap:0;justify-content:center;margin:13px 0 34px}.color-bars i{height:5px;width:42px;background:#1166db}.color-bars i:nth-child(2){background:#f5c435}.color-bars i:nth-child(3){background:#0eab99}.login-card h1{font-size:36px;letter-spacing:-1.5px;margin:0 0 6px}.intro{margin:0 0 30px;color:#6d7d99}.field{display:flex;align-items:center;gap:12px;height:54px;border:1px solid #cad6e6;border-radius:10px;padding:0 16px;margin-bottom:16px;color:#5c7294;background:#fff}.field:focus-within{border-color:#1469d9;box-shadow:0 0 0 3px #1469d922}.field>span:not(.sr-only){font-size:21px;min-width:22px}.field input{border:0;outline:0;width:100%;height:100%;font-size:16px;min-width:0;background:transparent}.form-options{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:18px 0 24px;font-size:13px}.form-options a,.support a{color:#075ed1;text-decoration:none}.form-options a:hover,.support a:hover{text-decoration:underline}.remember{display:flex;align-items:center;gap:7px;color:#566987;white-space:nowrap}.remember input{width:18px;height:18px;accent-color:#1268d4}.submit,.register-button{display:block;text-align:center;width:100%;padding:15px 18px;border:0;border-radius:10px;color:white;font-weight:700;font-size:16px;cursor:pointer;text-decoration:none}.submit{background:#0965d4}.submit:hover{background:#0755b8}.register-button{background:#139a58}.register-button:hover{background:#0f8149}.separator{display:flex;align-items:center;gap:15px;color:#8493a8;margin:20px 0;font-size:13px}.separator:before,.separator:after{content:"";height:1px;background:#d6deea;flex:1}.support{text-align:center;margin:24px 0 0;color:#71829b;font-size:14px}.message{padding:12px;border-radius:8px;margin:0 0 15px;font-size:14px}.error{background:#fff0ef;color:#9c2424}.success{background:#e9f8ee;color:#146637}.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}@media(max-width:960px){.login-layout{grid-template-columns:1fr}.showcase{min-height:360px;height:42vh}.showcase-top{top:12px}.showcase-top .brand strong{font-size:28px}.showcase-top .brand .cap{font-size:31px}.showcase-bottom{bottom:10px}.features,.ecosystem{display:none}.carousel-controls{margin-left:0}.form-side{padding:24px 16px 50px}.login-card{max-width:540px;padding:28px}}@media(max-width:480px){.showcase{height:270px;min-height:270px}.showcase-top .brand small{font-size:10px}.login-card h1{font-size:30px}.form-brand strong{font-size:35px}.form-options{font-size:12px}.slide-text{top:32%;max-width:80%}.slide-text h2{font-size:25px}.slide-text p{font-size:13px}.card-n2{width:48%;top:66%}}@media(prefers-reduced-motion:reduce){.slide{transition:none}.card-n2{animation:none}}/* La première scène est la maquette validée, déjà composée avec logo et textes. */
.showcase:has(.slide-first.is-active) .showcase-top,.showcase:has(.slide-first.is-active) .features,.showcase:has(.slide-first.is-active) .ecosystem{display:none}

.brand-logo{width:67px;height:62px;object-fit:contain;flex-shrink:0}.form-brand .brand-logo{width:75px;height:70px}@media(max-width:480px){.brand-logo{width:44px;height:44px}.form-brand .brand-logo{width:62px;height:58px}}
