.codex-promo{--cx-dark:#071522;--cx-panel:#0d2234;--cx-blue:#01b5ff;--cx-paper:#f5f7f8;--cx-line:#cfd9df;color:#12202c}
.codex-promo section{margin-inline:auto}
.codex-promo-hero{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:clamp(2rem,5vw,6rem);padding:clamp(3rem,7vw,7rem) max(4vw,calc((100vw - 1240px)/2));background:linear-gradient(135deg,#071522 0%,#0b2133 66%,#0a2c42 100%);color:#fff;overflow:hidden}
.codex-promo-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:58px 58px;mask-image:linear-gradient(to right,#000,transparent)}
.codex-promo-copy,.codex-promo-brand{position:relative;z-index:1}
.codex-promo-eyebrow,.codex-section-heading>p,.codex-model-copy>p,.codex-promo-cta p{margin:0 0 1rem;color:var(--cx-blue);font-size:.78rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.codex-promo-copy h1{max-width:14ch;margin:0;font-size:clamp(3rem,6.2vw,6.4rem);line-height:.92;letter-spacing:-.055em}
.codex-promo-lead{max-width:67ch;margin:1.5rem 0 0;color:#c8d6e0;font-size:clamp(1.05rem,1.5vw,1.34rem);line-height:1.62}
.codex-promo-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.codex-promo-actions .button,.codex-promo-cta .button{border-color:#fff;color:#fff}
.codex-promo-actions .button.primary,.codex-promo-cta .button.primary{background:var(--cx-blue);border-color:var(--cx-blue);color:#04111b}
.codex-promo-status{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:2.5rem 0 0;padding:0;background:rgba(255,255,255,.16);list-style:none}
.codex-promo-status li{padding:1rem;background:rgba(7,21,34,.88)}
.codex-promo-status strong,.codex-promo-status span{display:block}
.codex-promo-status strong{color:#fff;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.codex-promo-status span{margin-top:.3rem;color:#a9bcc9;font-size:.9rem}
.codex-promo-brand{display:grid;place-items:center;min-height:470px;border:1px solid rgba(255,255,255,.17);background:rgba(2,12,20,.5);box-shadow:0 30px 80px rgba(0,0,0,.28)}
.codex-promo-brand::before,.codex-promo-brand::after{content:"";position:absolute;width:80px;height:80px;border-color:var(--cx-blue);opacity:.7}
.codex-promo-brand::before{top:20px;left:20px;border-top:2px solid;border-left:2px solid}
.codex-promo-brand::after{right:20px;bottom:20px;border-right:2px solid;border-bottom:2px solid}
.codex-promo-brand>img{position:relative;z-index:2;width:min(78%,430px);height:auto;filter:drop-shadow(0 16px 32px rgba(0,0,0,.28))}
.codex-promo-brand>p{position:absolute;right:1.5rem;bottom:1rem;margin:0;color:#8da7b7;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.codex-promo-network{position:absolute;inset:0;overflow:hidden}
.codex-promo-network span{position:absolute;width:10px;height:10px;background:var(--cx-blue);box-shadow:0 0 24px var(--cx-blue)}
.codex-promo-network span:nth-child(1){left:12%;top:22%}.codex-promo-network span:nth-child(2){right:14%;top:16%}.codex-promo-network span:nth-child(3){left:20%;bottom:18%}.codex-promo-network span:nth-child(4){right:16%;bottom:26%}.codex-promo-network span:nth-child(5){left:50%;top:12%}
.codex-promo-network i{position:absolute;height:1px;background:linear-gradient(90deg,transparent,rgba(1,181,255,.65),transparent);transform-origin:left center}
.codex-promo-network i:nth-of-type(1){left:12%;top:23%;width:72%;transform:rotate(-5deg)}.codex-promo-network i:nth-of-type(2){left:20%;bottom:19%;width:65%;transform:rotate(-18deg)}.codex-promo-network i:nth-of-type(3){left:23%;top:25%;width:60%;transform:rotate(35deg)}.codex-promo-network i:nth-of-type(4){left:48%;top:13%;width:48%;transform:rotate(48deg)}

.codex-promo-vision,.codex-promo-principles,.codex-promo-roadmap{padding:clamp(4rem,8vw,8rem) max(4vw,calc((100vw - 1240px)/2))}
.codex-section-heading{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);column-gap:3rem;align-items:start;margin-bottom:2.5rem}
.codex-section-heading>p{grid-column:1}
.codex-section-heading h2{grid-column:1/3;max-width:18ch;margin:.2rem 0 1rem;font-size:clamp(2.4rem,5vw,5rem);line-height:.98;letter-spacing:-.045em}
.codex-section-heading>span{grid-column:2;max-width:66ch;color:#596873;font-size:1.05rem;line-height:1.65}
.codex-pillar-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--cx-line);border-left:1px solid var(--cx-line)}
.codex-pillar-grid article{position:relative;min-height:310px;padding:1.6rem;border-right:1px solid var(--cx-line);border-bottom:1px solid var(--cx-line);background:#fff;overflow:hidden}
.codex-pillar-grid article::after{content:"";position:absolute;right:-38px;bottom:-38px;width:130px;height:130px;border:22px solid var(--pillar);opacity:.11;border-radius:50%}
.codex-pillar-grid article>span{color:var(--pillar);font-weight:900}
.codex-pillar-grid h3{margin:4rem 0 1rem;font-size:1.75rem}
.codex-pillar-grid p{margin:0;color:#596873;line-height:1.62}

.codex-promo-model{display:grid;grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr);gap:clamp(2.5rem,6vw,7rem);align-items:center;padding:clamp(4rem,8vw,8rem) max(4vw,calc((100vw - 1240px)/2));background:var(--cx-paper)}
.codex-model-copy h2{margin:0;font-size:clamp(2.8rem,5vw,5.6rem);line-height:.95;letter-spacing:-.05em}
.codex-model-copy>p:not(:first-child){color:#596873;font-size:1.1rem;line-height:1.65}
.codex-model-copy ul{display:grid;gap:1rem;margin:2rem 0 0;padding:0;list-style:none}
.codex-model-copy li{padding:1rem 0;border-top:1px solid #cbd5dc;line-height:1.55}
.codex-interface-preview{border:1px solid #9fb0bc;background:#091927;box-shadow:18px 22px 0 #01b5ff}
.codex-preview-top{display:flex;align-items:center;gap:.7rem;height:58px;padding:0 1rem;border-bottom:1px solid #253d4e;color:#fff}
.codex-preview-top span{width:18px;height:18px;background:var(--cx-blue)}
.codex-preview-top b{margin-right:auto}.codex-preview-top i{width:14px;height:14px;border:1px solid #6c8494}
.codex-preview-body{display:grid;grid-template-columns:74px 1fr 160px;min-height:430px}
.codex-preview-body>aside{display:grid;align-content:start;gap:18px;padding:22px;border-right:1px solid #253d4e}
.codex-preview-body>aside:last-child{border-right:0;border-left:1px solid #253d4e}
.codex-preview-body>aside span,.codex-preview-body>aside b{display:block;height:22px;background:#18384e}
.codex-preview-body>main{display:grid;gap:14px;padding:20px}
.codex-preview-compose{height:54px;border:1px solid #31536a;background:#10283a}
.codex-preview-body article{position:relative;padding:18px 18px 15px 58px;border:1px solid #28465a;background:#0e2435}
.codex-preview-body article>i{position:absolute;top:18px;left:17px;width:28px;height:28px;background:var(--cx-blue);border-radius:50%}
.codex-preview-body article strong,.codex-preview-body article p,.codex-preview-body article footer{display:block;background:#29495e}
.codex-preview-body article strong{width:40%;height:13px}.codex-preview-body article p{width:94%;height:10px;margin:14px 0}.codex-preview-body article p+p{width:72%}.codex-preview-body article footer{height:25px;margin-top:22px}

.codex-promo-principles{background:#071522;color:#fff}
.codex-promo-principles .codex-section-heading>span{color:#a8bac6}
.codex-principles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#2b4150}
.codex-principles-grid article{min-height:210px;padding:2rem;background:#0b1e2c}
.codex-principles-grid h3{margin:0 0 1rem;color:var(--cx-blue);font-size:1.35rem}
.codex-principles-grid p{margin:0;color:#b7c7d1;line-height:1.65}

.codex-promo-roadmap ol{display:grid;grid-template-columns:repeat(4,1fr);margin:0;padding:0;border-top:1px solid var(--cx-line);border-left:1px solid var(--cx-line);list-style:none}
.codex-promo-roadmap li{min-height:260px;padding:1.5rem;border-right:1px solid var(--cx-line);border-bottom:1px solid var(--cx-line)}
.codex-promo-roadmap li>span{display:block;color:var(--cx-blue);font-weight:900}
.codex-promo-roadmap strong{display:block;margin:3.5rem 0 1rem;font-size:1.2rem}
.codex-promo-roadmap p{margin:0;color:#596873;line-height:1.58}

.codex-promo-cta{display:flex;justify-content:space-between;gap:2rem;align-items:center;padding:clamp(2.5rem,5vw,4.5rem) max(4vw,calc((100vw - 1240px)/2));background:#01b5ff;color:#03121c}
.codex-promo-cta h2{margin:0;font-size:clamp(2rem,4vw,4rem);line-height:1}
.codex-promo-cta span{display:block;max-width:70ch;margin-top:1rem;line-height:1.6}
.codex-promo-cta p{color:#03121c}
.codex-promo-cta .button.primary{background:#071522;color:#fff;border-color:#071522;white-space:nowrap}

@media (max-width:1000px){
  .codex-promo-hero,.codex-promo-model{grid-template-columns:1fr}
  .codex-promo-brand{min-height:380px}
  .codex-pillar-grid,.codex-promo-roadmap ol{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:720px){
  .codex-promo-hero{padding-inline:1rem}
  .codex-promo-copy h1{font-size:clamp(2.7rem,13vw,4.8rem)}
  .codex-promo-status{grid-template-columns:1fr}
  .codex-promo-brand{min-height:300px}
  .codex-section-heading{display:block}
  .codex-section-heading h2{font-size:clamp(2.3rem,11vw,4rem)}
  .codex-pillar-grid,.codex-principles-grid,.codex-promo-roadmap ol{grid-template-columns:1fr}
  .codex-pillar-grid article,.codex-promo-roadmap li{min-height:auto}
  .codex-preview-body{grid-template-columns:48px 1fr}
  .codex-preview-body>aside:last-child{display:none}
  .codex-promo-cta{display:grid}
}
@media (prefers-reduced-motion:no-preference){
  .codex-promo-network span{animation:codexPulse 2.8s ease-in-out infinite alternate}
  .codex-promo-network span:nth-child(2),.codex-promo-network span:nth-child(4){animation-delay:.7s}
  @keyframes codexPulse{to{transform:scale(1.5);opacity:.55}}
}

/* 2026-07-23 · ingresso alla bacheca pubblica */
.codex-live-entry{display:grid;grid-template-columns:minmax(0,.82fr) minmax(420px,1.18fr);gap:clamp(2.5rem,6vw,7rem);align-items:center;padding:clamp(4rem,7vw,7rem) max(4vw,calc((100vw - 1240px)/2));background:#fff;border-bottom:1px solid var(--cx-line)}
.codex-live-copy h2{max-width:14ch;margin:.2rem 0 1.2rem;font-size:clamp(2.6rem,5vw,5.5rem);line-height:.96;letter-spacing:-.05em}
.codex-live-copy>p:not(.codex-promo-eyebrow){max-width:66ch;margin:0;color:#52636f;font-size:1.08rem;line-height:1.7}
.codex-live-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2rem}
.codex-live-actions .button.primary{background:var(--cx-dark);border-color:var(--cx-dark);color:#fff}
.codex-login-link{display:inline-flex;align-items:center;min-height:44px;color:#334652;font-weight:800;text-decoration-thickness:1px;text-underline-offset:4px}
.codex-login-link:hover{color:#006c98}
.codex-live-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:2.2rem 0 0;background:var(--cx-line);border:1px solid var(--cx-line)}
.codex-live-facts div{padding:1rem;background:#f8fafb}
.codex-live-facts dt{color:#687985;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.codex-live-facts dd{margin:.4rem 0 0;color:#152631;font-size:.9rem;font-weight:800;line-height:1.35}
.codex-board-preview{display:block;overflow:hidden;border:1px solid #b8c6cf;background:#f5f8fa;color:#12202c;text-decoration:none;box-shadow:18px 22px 0 var(--cx-blue);transition:transform .22s ease,box-shadow .22s ease}
.codex-board-preview:hover{transform:translate(-3px,-3px);box-shadow:22px 26px 0 var(--cx-blue)}
.codex-board-preview:focus-visible{outline:4px solid #071522;outline-offset:5px}
.codex-board-topbar{display:flex;align-items:center;gap:.75rem;min-height:62px;padding:.8rem 1rem;border-bottom:1px solid #d2dce2;background:#fff}
.codex-board-mark{display:grid;place-items:center;width:34px;height:34px;background:#071522;color:#01b5ff;font-size:1.25rem;font-weight:950}
.codex-board-topbar strong{margin-right:auto;font-size:1.02rem}
.codex-board-state{padding:.38rem .55rem;background:#e8f8ff;color:#006c98;font-size:.69rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.codex-board-layout{display:grid;grid-template-columns:74px minmax(0,1fr);min-height:440px}
.codex-board-layout>aside{display:grid;align-content:start;justify-items:center;gap:1rem;padding:1.3rem .7rem;border-right:1px solid #d9e2e7;background:#eef3f6}
.codex-board-layout>aside span{width:30px;height:7px;background:#a9b9c3}
.codex-board-layout>aside span.is-active{background:#01b5ff}
.codex-board-layout>main{padding:clamp(1rem,3vw,2rem)}
.codex-board-profile{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;padding:.9rem;border:1px solid #d7e0e5;background:#fff}
.codex-board-avatar{display:grid;place-items:center;flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:#071522;color:#fff;font-size:.76rem;font-weight:900}
.codex-board-profile strong,.codex-board-profile small{display:block}
.codex-board-profile small{margin-top:.15rem;color:#6a7b86}
.codex-board-layout article{padding:clamp(1.2rem,3vw,2rem);border:1px solid #d7e0e5;background:#fff;box-shadow:0 12px 30px rgba(17,43,60,.07)}
.codex-board-kicker{margin:0 0 .75rem;color:#007fae;font-size:.72rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.codex-board-layout h3{max-width:18ch;margin:0;font-size:clamp(1.45rem,3vw,2.2rem);line-height:1.05;letter-spacing:-.035em}
.codex-board-layout article>p:not(.codex-board-kicker){color:#5b6c77;line-height:1.6}
.codex-board-layout article footer{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.2rem}
.codex-board-layout article footer span{padding:.38rem .55rem;border:1px solid #d8e1e6;background:#f7fafb;color:#42545f;font-size:.72rem;font-weight:800}
.codex-board-open{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:1.2rem;color:#071522;font-weight:900}
.codex-board-open b{color:#007fae;font-size:1.25rem}
.codex-promo-roadmap li{position:relative}
.codex-promo-roadmap li.is-done::after,.codex-promo-roadmap li.is-current::after{position:absolute;top:1.25rem;right:1.25rem;padding:.3rem .45rem;font-size:.65rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.codex-promo-roadmap li.is-done::after{content:"Operativo";background:#e5f6ee;color:#176744}
.codex-promo-roadmap li.is-current::after{content:"In sviluppo";background:#e5f7ff;color:#006c98}

@media (max-width:1000px){
  .codex-live-entry{grid-template-columns:1fr}
  .codex-board-preview{max-width:760px}
}
@media (max-width:720px){
  .codex-live-entry{padding-inline:1rem}
  .codex-live-copy h2{font-size:clamp(2.25rem,11vw,4rem)}
  .codex-live-facts{grid-template-columns:1fr}
  .codex-live-actions{align-items:flex-start;flex-direction:column}
  .codex-board-preview{box-shadow:9px 12px 0 var(--cx-blue)}
  .codex-board-preview:hover{transform:none;box-shadow:9px 12px 0 var(--cx-blue)}
  .codex-board-layout{grid-template-columns:44px minmax(0,1fr);min-height:390px}
  .codex-board-layout>aside{padding-inline:.35rem}
  .codex-board-layout>aside span{width:24px}
  .codex-board-state{display:none}
}
@media (prefers-reduced-motion:reduce){
  .codex-board-preview{transition:none}
}
