@font-face{font-family:DM Sans;src:url('./assets/dm-sans-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:DM Sans;src:url('./assets/dm-sans-semibold.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
:root{font-family:'DM Sans',sans-serif;font-synthesis:none;color:#0b3152;background:#f6f8fa;color-scheme:light}
*{box-sizing:border-box}
body{margin:0;-webkit-font-smoothing:antialiased;min-width:280px}
.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}
.icon-library{position:absolute;width:0;height:0;overflow:hidden}
.icon{display:block;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.site-header{mix-blend-mode:multiply;position:absolute;top:25px;left:0;right:0;z-index:5;display:flex;justify-content:center;pointer-events:none}
.brand-pair{display:flex;align-items:center;gap:27px}
.compagnons-logo{width:232px;height:auto;display:block;mix-blend-mode:multiply}
.brand-times{font-size:21px;font-weight:400;color:#a9b6c0}
.darcos-logo{width:73px;height:73px;object-fit:contain;display:block}
.home{height:100svh;min-height:600px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#fff 0%,#f9fafb 30%,#f2f5f8 100%)}
.scene-stage{position:absolute;inset:95px 0 100px;display:grid;place-items:center}
.ambient-light{position:absolute;inset:4% 5% 0;background:radial-gradient(ellipse at 52% 46%,#ffe8c440 0%,#fffaf72a 36%,transparent 66%);pointer-events:none}
.blueprint-grid{position:absolute;inset:15% 4% -10%;background-image:radial-gradient(#8097ab .75px,transparent .9px);background-size:29px 29px;opacity:.22;mask-image:radial-gradient(ellipse at 50% 53%,black 3%,transparent 62%);transform:perspective(650px) rotateX(26deg);pointer-events:none}
#module-scene{width:min(1200px,100%);height:100%;min-height:0;position:relative;isolation:isolate;touch-action:pan-y}
#module-scene canvas{width:100%;height:100%;display:block;opacity:0;transition:opacity .65s ease}
#module-scene[data-ready=true] canvas{opacity:1}
.scene-fallback{position:absolute;width:100%;height:100%;inset:0;object-fit:contain;transition:opacity .3s}
[data-ready=true] .scene-fallback{opacity:0;visibility:hidden}
.module-dock{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:9px;background:#ffffffbf;border:1px solid #fff;border-radius:25px;box-shadow:0 12px 42px #1439550b,0 1px 3px #14395506;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);z-index:5;max-width:calc(100% - 40px)}
.module-entry{display:flex;align-items:center;justify-content:center;gap:12px;min-height:61px;padding:0 22px;border-radius:17px;border:0;font:600 14px/1.35 'DM Sans',sans-serif;text-decoration:none;white-space:nowrap;transition:background .2s,transform .2s,box-shadow .2s;outline-offset:5px}
.module-veille{background:#0b3152;color:#fff;box-shadow:0 4px 12px #0b315214}
.module-icon{width:23px;height:23px}
.module-veille .module-icon{color:#ffc261}
.module-entry .arrow-icon{width:19px;height:19px;color:#ffbf54;margin-left:13px;transition:transform .2s}
.module-veille:hover{background:#164363;transform:translateY(-2px);box-shadow:0 8px 18px #0b315224}
.module-veille:hover .arrow-icon{transform:translateX(3px)}
.module-veille:focus-visible{outline:3px solid #ed9f29}
.module-rh{color:#7a8c99;background:transparent;cursor:not-allowed}
.module-rh .module-icon{color:#93a3af}
.lock-icon{width:15px;height:15px;margin-left:9px;color:#9caab4}
.dock-divider{width:1px;height:23px;background:#e3e9ed;margin:0 2px}
@media(min-width:1600px){#module-scene{width:min(1450px,100%)}.site-header{top:34px}.compagnons-logo{width:259px}.darcos-logo{width:82px;height:82px}.scene-stage{inset:110px 0 110px}.module-dock{bottom:40px}.module-entry{min-height:65px;font-size:15px;padding:0 27px}}
@media(max-width:750px){.site-header{top:22px}.brand-pair{gap:23px}.compagnons-logo{width:211px}.darcos-logo{width:66px;height:66px}.scene-stage{inset:90px -18px 120px}.module-dock{bottom:31px;gap:7px;padding:7px;border-radius:21px}.module-entry{font-size:12px;padding:0 15px;gap:9px;min-height:55px;border-radius:15px}.module-entry .arrow-icon{margin-left:3px;width:16px}.module-icon{width:20px;height:20px}.lock-icon{margin-left:0;width:13px}.dock-divider{margin:0}}
@media(max-width:520px){.home{min-height:550px}.site-header{top:21px}.brand-pair{gap:21px}.compagnons-logo{width:200px}.darcos-logo{width:65px;height:65px}.brand-times{font-size:18px}.scene-stage{inset:82px -10px 148px}.module-dock{bottom:27px;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:7px;max-width:calc(100% - 32px);width:372px;align-items:stretch;border-radius:23px}.module-entry{flex-wrap:wrap;align-content:center;gap:9px 7px;font-size:12px;min-height:88px;padding:12px 5px;border-radius:17px}.module-entry>span{width:100%;text-align:center;order:2;letter-spacing:-.15px}.module-entry .module-icon{width:23px;height:23px}.module-entry .arrow-icon{width:15px;height:15px;margin-left:0}.module-entry .lock-icon{width:13px;height:13px}.dock-divider{display:none}.module-rh{background:#f2f5f86b;color:#6c808e}.blueprint-grid{background-size:24px 24px;inset:25% 0 -10%}}
@media(max-width:350px){.brand-pair{gap:15px}.compagnons-logo{width:177px}.darcos-logo{width:58px;height:58px}.module-entry{font-size:10.5px}.scene-stage{inset:78px -10px 138px}.module-dock{bottom:23px}.module-entry .module-icon{width:21px;height:21px}}
@media(max-height:650px) and (min-width:751px){.home{min-height:490px}.site-header{top:12px}.compagnons-logo{width:180px}.darcos-logo{width:57px;height:57px}.scene-stage{inset:64px 0 78px}.module-dock{bottom:17px}.module-entry{min-height:49px;font-size:12px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.module-veille:hover{transform:none}}

/* Authentication is a real server-checked state, never a browser-stored flag. */
[hidden]{display:none!important}
.auth-layer{position:absolute;inset:108px 0 0;z-index:4;display:flex;flex-direction:column;align-items:center;padding:26px 22px 42px;overflow-y:auto;transition:opacity .35s,transform .45s cubic-bezier(.2,.7,.2,1)}
.auth-layer.leaving{opacity:0;transform:translateY(-18px);pointer-events:none}
.auth-card{width:min(100%,414px);margin:auto;flex-shrink:0;padding:30px 34px 25px;background:#ffffffeb;border:1px solid #fff;border-radius:27px;box-shadow:0 25px 85px #1639520b,0 2px 9px #16395204;text-align:left}
.auth-emblem{width:71px;height:71px;position:relative;margin:0 auto 20px;display:grid;place-items:center}
.auth-emblem>svg{width:49px;height:49px;fill:#efa028;transform:rotate(-12deg);filter:drop-shadow(0 5px 7px #e79b242c)}
.auth-orbit{position:absolute;inset:17px -5px;border:1px solid #d8b477;border-radius:50%;transform:rotate(-28deg)}
.auth-emblem i{position:absolute;width:8px;height:8px;border-radius:50%;background:#0b3152;left:1px;bottom:16px}
.auth-kicker{display:block;text-align:center;font-size:9px;font-weight:600;letter-spacing:2px;color:#8b9aa5;margin-bottom:12px}
.auth-card h2{font-size:27px;line-height:1.22;letter-spacing:-1px;color:#0b3152;font-weight:600;text-align:center;margin:0 0 10px}
.auth-intro{text-align:center;font-family:'DM Sans',sans-serif;font-weight:400;font-size:13px;line-height:1.6;color:#647985;margin:0 0 28px}
.auth-card label{display:block;font-size:12px;color:#345368;margin:0 0 8px}
.auth-card input{appearance:none;width:100%;height:47px;border:1px solid #dce4e9;border-radius:11px;padding:0 13px;font:400 14px 'DM Sans',sans-serif;color:#12354c;background:#fcfdfe;transition:border-color .2s,box-shadow .2s;min-width:0}
.auth-card input:focus{outline:none;border-color:#e1a044;box-shadow:0 0 0 3px #f5bd6526}
.auth-card input::placeholder{color:#9ba9b3}
#login-email,#login-name{margin-bottom:20px}
.password-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.password-label label{margin:0}
.text-action{border:0;padding:0;background:none;font:400 10px 'DM Sans',sans-serif;color:#68808f;cursor:pointer}
.text-action:hover{color:#0b3152;text-decoration:underline}
.password-field{position:relative}
.password-field input{padding-right:48px}
#toggle-password{position:absolute;right:5px;top:4px;height:39px;width:39px;background:none;border:0;color:#8b9daa;cursor:pointer;border-radius:7px;display:grid;place-items:center}
#toggle-password svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.5;fill:none}
.auth-submit{display:flex;justify-content:center;align-items:center;gap:14px;width:100%;min-height:47px;border:0;border-radius:11px;font:600 13px 'DM Sans',sans-serif;background:#0b3152;color:#fff;cursor:pointer;transition:background .2s,transform .2s;margin-top:23px}
.auth-submit:hover:not(:disabled){background:#164768;transform:translateY(-1px)}
.auth-submit:disabled{cursor:wait;opacity:.75}
.auth-submit .icon{width:17px;height:17px;color:#ffbc54}
.auth-submit.is-busy .icon{display:none}
.auth-submit.is-busy:after,.auth-spinner{content:'';width:16px;height:16px;flex-shrink:0;border-radius:50%;border:2px solid #b8c8d750;border-top-color:#ecad4e;animation:portal-spin .8s linear infinite}
.auth-footnote{font:400 10px/1.6 'DM Sans',sans-serif;color:#7b8b97;text-align:center;margin:19px 0 0}
.auth-hint{font:400 11px/1.5 'DM Sans',sans-serif;color:#6b7f8c;margin:9px 0 0}
.auth-error{font:400 12px/1.5 'DM Sans',sans-serif;background:#fff3ee;border:1px solid #f2d4c5;border-radius:9px;padding:11px 12px;color:#a44628;margin:15px 0 0}
.auth-preview{font:400 10px/1.5 'DM Sans',sans-serif;color:#8b7352;border-top:1px solid #e7ebef;text-align:center;padding-top:13px;margin:14px 0 0}
#setup-secret-fields{margin-top:20px}
.auth-loading{display:flex;align-items:center;gap:12px;color:#6d8290;font-size:13px;margin:auto}
.auth-unavailable p{font:400 14px/1.7 'DM Sans',sans-serif;color:#627987;text-align:center}
body[data-auth="checking"] .scene-stage,body[data-auth="login"] .scene-stage,body[data-auth="unavailable"] .scene-stage{opacity:0;visibility:hidden;transform:translateY(16px) scale(.98)}
.scene-stage{transition:opacity .8s,transform 1.1s cubic-bezier(.2,.7,.2,1)}
body[data-auth="entering"] .scene-stage,body[data-auth="home"] .scene-stage{opacity:1;visibility:visible;transform:none}
body[data-auth="entering"] .module-dock{animation:dock-enter .65s .45s both cubic-bezier(.2,.7,.2,1)}
.account-area{position:absolute;z-index:6;right:38px;top:42px;pointer-events:auto;mix-blend-mode:normal}

.account-trigger{height:43px;display:flex;align-items:center;gap:9px;padding:0 11px 0 7px;border:1px solid #e2e8ed;background:#ffffffd9;border-radius:30px;cursor:pointer;color:#4d6577}
.account-trigger>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#ebf0f4;font:600 11px 'DM Sans',sans-serif;color:#2f536b}
.account-trigger svg{height:13px;width:13px;fill:none;stroke:currentColor;stroke-width:1.5}
.account-menu{position:absolute;right:0;top:53px;width:259px;background:#fff;border:1px solid #e3e9ef;border-radius:18px;padding:18px;box-shadow:0 20px 50px #1439551a;display:flex;flex-direction:column;gap:7px}
.account-menu strong{font-size:13px;overflow-wrap:anywhere}
.account-menu>span{font:400 11px/1.5 'DM Sans',sans-serif;color:#758997;overflow-wrap:anywhere;margin-bottom:11px}
.account-menu button{border:0;border-radius:9px;padding:12px 11px;text-align:left;color:#2a4c63;background:#f4f7f9;cursor:pointer;font:600 12px 'DM Sans',sans-serif}
.account-menu button:hover{background:#eaf0f4}
.account-menu p{font:400 11px/1.5 'DM Sans',sans-serif;color:#a34528;margin:5px 0 0}
button:focus-visible,a:focus-visible{outline:3px solid #e9a044;outline-offset:3px}
.help-dialog{border:1px solid #e0e7ed;background:#fff;color:#12354c;border-radius:23px;padding:35px;width:min(420px,calc(100% - 36px));box-shadow:0 25px 80px #19354c20}
.help-dialog::backdrop{background:#13375028;backdrop-filter:blur(5px)}
.help-dialog h2{font-size:24px;letter-spacing:-.7px;margin:0 0 17px}
.help-dialog p{font:400 14px/1.7 'DM Sans',sans-serif;color:#607787}
.dialog-close{position:absolute;right:11px;top:9px;width:30px;height:30px;background:none;border:0;border-radius:50%;font-size:23px;color:#8c9fab;cursor:pointer}
.noscript-note{position:fixed;inset:35% 20%;z-index:15;background:#fff;padding:30px;text-align:center;border-radius:20px}
@keyframes portal-spin{to{transform:rotate(360deg)}}
@keyframes dock-enter{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}
@media(max-width:600px){.auth-layer{inset:104px 0 0;padding:22px 20px 30px}.auth-card{padding:25px 26px 22px;border-radius:23px}.auth-card h2{font-size:26px}.auth-emblem{margin-bottom:17px;width:59px;height:59px}.auth-emblem>svg{width:43px;height:43px}.auth-intro{margin-bottom:24px;font-size:12px}.account-area{right:18px;top:103px}.account-trigger{height:36px}.account-trigger>span{height:26px;width:26px}.account-menu{top:45px;width:248px}.auth-card input{font-size:16px}.auth-loading{font-size:12px}}
@media(max-height:760px){.auth-layer{padding-top:15px}.auth-card{padding-top:24px;padding-bottom:21px}.auth-emblem{height:42px;margin-bottom:13px}.auth-emblem>svg{height:38px}.auth-orbit{inset:10px 1px}.auth-kicker{margin-bottom:9px}.auth-intro{margin-bottom:21px}.auth-footnote{margin-top:15px}}
@media(prefers-reduced-motion:reduce){.auth-submit:hover{transform:none}.auth-layer,.scene-stage{transition:none}.auth-spinner{animation:portal-spin 2s linear infinite!important}}
