/* Alto entry: a single quiet glass surface, framed by a moving sculpture. */
.entry{min-height:100dvh;position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;padding:38px;background:radial-gradient(ellipse at 52% 35%,#fffdfc 0%,#f2edee 55%,#e6dce2 100%)}
.entry-sculpture{position:absolute;inset:0;z-index:-1;overflow:hidden;perspective:1100px;pointer-events:none}
.glass-loop{position:absolute;width:1100px;height:620px;border-radius:50%;border:76px solid #ab315238;box-shadow:inset 3px 7px 3px #ffffffc9,inset -16px -18px 28px #7d1e4233,12px 34px 55px #64203a20,-2px -2px 2px #ffffffb0;background:linear-gradient(130deg,#ffffff00 35%,#ffffff10);transform-style:preserve-3d}
.loop-one{left:calc(50% - 1050px);top:calc(50% - 350px);transform:rotate(-48deg) rotateY(25deg);animation:loop-drift-one 24s ease-in-out infinite alternate}
.loop-two{width:950px;height:610px;right:calc(50% - 1030px);top:calc(50% - 190px);border-width:92px;border-color:#fdf7f980;box-shadow:inset 6px 9px 4px #fff,inset -22px -8px 30px #a6385e30,20px 45px 65px #632b4520,-2px -2px 2px #fff;transform:rotate(-45deg) rotateX(25deg);animation:loop-drift-two 29s ease-in-out infinite alternate}
.loop-three{width:1250px;height:500px;left:calc(50% - 540px);top:calc(50% - 670px);border-width:34px;border-color:#fff8;box-shadow:inset 0 4px 4px #fff,8px 30px 40px #72304b10;transform:rotate(-33deg);animation:loop-drift-three 32s ease-in-out infinite alternate}
.entry-horizon{position:absolute;inset:0;background:linear-gradient(0deg,#eee7ec8a,transparent 25%,transparent 80%,#efe8ed80)}
.entry-glass{width:440px;max-width:100%;position:relative;padding:42px 46px 35px;border-radius:32px;border:1px solid #ffffffeb;background:linear-gradient(140deg,#ffffffa3,#ffffff66);box-shadow:0 35px 90px #4b1d3c12,inset 0 1px 1px #fff,inset 0 -1px 1px #fff5;backdrop-filter:blur(28px) saturate(1.1);-webkit-backdrop-filter:blur(28px) saturate(1.1);animation:entry-rise .7s cubic-bezier(.16,.7,.2,1)}
.entry-brand{display:flex;align-items:center;flex-direction:column;gap:0}.entry-brand img{width:236px;height:auto;transform:translateX(13px)}.entry-brand span{font-size:11px;letter-spacing:1.5px;color:#7f6472;margin-top:2px;font-weight:400}.entry h1{font-size:32px;line-height:1.25;letter-spacing:-1.1px;font-weight:450;color:#41323e;text-align:center;margin:40px -15px 35px}.entry h1 em{font-style:normal;color:#a32448;font-weight:550}.entry form{gap:12px;margin:0}.entry-field{position:relative}.entry-field>.icon{position:absolute;left:17px;top:18px;color:#9b7f8d;width:19px;height:19px}.entry-field input{height:55px;padding:0 17px 0 46px;background:#ffffff82;border:1px solid #ffffffb8;border-radius:13px;color:#44313e;font-size:14px;box-shadow:inset 0 2px 5px #71485a05;transition:background .25s,box-shadow .25s,border-color .25s}.entry-field input::placeholder{color:#8a7582;font-weight:400}.entry-field input:focus{outline:none;background:#fff9;border-color:#bd6f8880;box-shadow:0 0 0 4px #ae345b0b}.entry-submit{min-height:54px;width:100%;border-radius:13px;background:linear-gradient(110deg,#b32b50,#92203f);border:1px solid #9f2647;color:#fff;font-size:13px;font-weight:550;letter-spacing:.15px;box-shadow:0 9px 22px #97244526,inset 0 1px 0 #ffffff35;transition:transform .2s,box-shadow .2s,filter .2s}.entry-submit:hover{transform:translateY(-2px);box-shadow:0 13px 25px #97244538,inset 0 1px 0 #ffffff35;filter:brightness(1.04)}.entry-submit:active{transform:translateY(0) scale(.985)}.entry .error:empty{display:none}.entry .error{font-size:12px;text-align:center;margin-top:2px;line-height:1.5}.entry-back{display:grid;place-items:center;justify-self:center;width:38px;height:38px;border-radius:50%;background:#fff5;border:1px solid #fff8;color:#9c6b80;margin-top:2px}.entry-back:hover{background:#fff9}.code-field input{padding-left:17px;text-align:center;letter-spacing:5px;font-variant-numeric:tabular-nums}.code-field input::placeholder{letter-spacing:1px;font-size:13px}
body.dark .entry{background:radial-gradient(ellipse at 52% 35%,#382532 0%,#201b26 55%,#15131c 100%)}body.dark .loop-one{border-color:#b3496b45;box-shadow:inset 3px 7px 3px #edb0c350,inset -16px -18px 28px #28091d66,12px 34px 55px #07040960,-2px -2px 2px #ffe0ed40}body.dark .loop-two{border-color:#c39bb525;box-shadow:inset 6px 9px 4px #f2d9ee50,inset -22px -8px 30px #a6385e40,20px 45px 65px #07040960,-2px -2px 2px #fff2}body.dark .loop-three{border-color:#e6c5df15;box-shadow:inset 0 4px 4px #fff3,8px 30px 40px #0002}body.dark .entry-horizon{background:linear-gradient(0deg,#1a162290,transparent 25%,transparent 80%,#21192750)}body.dark .entry-glass{background:linear-gradient(140deg,#48344399,#30263288);border-color:#ffe5f02b;box-shadow:0 35px 90px #08030b35,inset 0 1px 1px #fff3,inset 0 -1px 1px #fff1}body.dark .entry-brand img{content:url('assets/alto-logo-clair.svg')}body.dark .entry-brand span{color:#c9a9bc}body.dark .entry h1{color:#f5eaf1}body.dark .entry h1 em{color:#ed9bb5}body.dark .entry-field input{background:#ffffff08;border-color:#ffffff18;color:#fff}body.dark .entry-field input::placeholder{color:#c6aab9}body.dark .entry-field>.icon{color:#c6aab9}body.dark .entry-field input:focus{background:#ffffff0d;border-color:#c987a066}body.dark .entry-back{background:#ffffff08;border-color:#ffffff18;color:#edc8d9}
@keyframes loop-drift-one{from{transform:translate(-22px,14px) rotate(-48deg) rotateY(25deg)}to{transform:translate(30px,-26px) rotate(-35deg) rotateY(10deg)}}@keyframes loop-drift-two{from{transform:translate(22px,10px) rotate(-45deg) rotateX(25deg)}to{transform:translate(-26px,-30px) rotate(-58deg) rotateX(10deg)}}@keyframes loop-drift-three{from{transform:translateY(-20px) rotate(-33deg)}to{transform:translateY(35px) rotate(-25deg)}}@keyframes entry-rise{from{transform:translateY(14px) scale(.985)}to{transform:none}}
@media(min-width:768px) and (max-width:1100px){.entry-glass{width:420px;padding:40px 42px 34px}.loop-one{left:calc(50% - 890px);top:calc(50% - 480px)}.loop-two{right:calc(50% - 890px);top:calc(50% - 70px)}}@media(max-height:650px){.entry{padding:22px}.entry-glass{padding:25px 42px}.entry-brand img{width:205px}.entry h1{margin-top:22px;margin-bottom:22px;font-size:28px}}@media(prefers-reduced-motion:reduce){.entry *{animation:none!important;transition:none!important}}

.entry h1{font-size:26px;line-height:1.35;letter-spacing:-.8px}.entry-signature{position:absolute;right:28px;bottom:22px;font-size:11px;letter-spacing:.5px;color:#806c79}body.dark .entry-signature{color:#bda3b3}

/* Broad, clearly visible movement; the login surface stays still. */
.loop-one{animation:loop-drift-one 14s ease-in-out infinite alternate}
.loop-two{animation:loop-drift-two 17s ease-in-out infinite alternate}
.loop-three{animation:loop-drift-three 20s ease-in-out infinite alternate}
@keyframes loop-drift-one{from{transform:translate(-150px,95px) rotate(-62deg) rotateY(32deg)}to{transform:translate(160px,-100px) rotate(-18deg) rotateY(-12deg)}}
@keyframes loop-drift-two{from{transform:translate(140px,100px) rotate(-22deg) rotateX(32deg)}to{transform:translate(-160px,-110px) rotate(-76deg) rotateX(-14deg)}}
@keyframes loop-drift-three{from{transform:translate(-120px,-65px) rotate(-48deg)}to{transform:translate(110px,150px) rotate(-8deg)}}
@media(prefers-reduced-motion:reduce){.entry .glass-loop{animation:none!important}}

.entry h1.entry-slogan{display:flex;flex-direction:column;align-items:center;margin:32px -15px 30px;line-height:1;gap:9px}
.slogan-gestion{font-size:11px;font-weight:500;letter-spacing:5.5px;text-transform:uppercase;padding-left:5.5px;color:#806775}
.slogan-travaux{font-size:57px;font-weight:650;letter-spacing:-3px;line-height:1.05}.slogan-travaux>span{color:#ab2c50}
.entry h1 em.slogan-maintenance{font-family:Georgia,'Times New Roman',serif;font-size:39px;font-style:italic;font-weight:400;letter-spacing:-1.7px;line-height:1.12}
body.dark .slogan-gestion{color:#c9a9bc}body.dark .slogan-travaux>span{color:#ed9bb5}
@media(max-height:650px){.entry h1.entry-slogan{margin:20px -15px;gap:6px}.slogan-travaux{font-size:47px}.entry h1 em.slogan-maintenance{font-size:33px}}

.entry-signature sup{font-size:1em;vertical-align:baseline;margin-left:3px;font-weight:inherit}
