/* Technologies.fr: a circuit index, never a simulated application dashboard. */
.dn-circuit {
    --circuit-ink: var(--dn-ink, #071a27);
    --circuit-paper: var(--dn-paper, #fff);
    --circuit-soft: var(--dn-paper-soft, #edf7fb);
    --circuit-cyan: var(--dn-accent, #008ec7);
    --circuit-cyan-text: #006d96;
    --circuit-violet: var(--dn-accent-2, #5b50c8);
    --circuit-line: var(--dn-line, #b7d5e1);
    overflow: hidden;
    color: var(--circuit-ink);
    background: var(--circuit-paper);
}
.dn-circuit :is(h1,h2,h3,p,ol) { margin-top: 0; }
.dn-circuit a { color: inherit; text-decoration: none; }
.dn-circuit .dn-category { color: var(--circuit-cyan-text); }
.dn-circuit img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dn-circuit :is(article,div,header,section,nav) { min-width: 0; }
.dn-circuit :is(h1,h2,h3,p,a,strong) { overflow-wrap: anywhere; }
.dn-circuit-status { color: #fff; background: var(--circuit-ink); border-bottom: 1px solid color-mix(in srgb,var(--circuit-cyan) 72%,#fff); }
.dn-circuit-status__inner { display: grid; grid-template-columns: 1fr auto 1fr; gap: 24px; align-items: center; min-height: 39px; font-size: 10px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.dn-circuit-status__inner p { margin-bottom: 0; }
.dn-circuit-status__inner p:first-child { display: flex; align-items: center; gap: 10px; }
.dn-circuit-status__inner p:first-child span { width: 8px; height: 8px; background: #72e3ff; border: 2px solid var(--circuit-ink); border-radius: 50%; box-shadow: 0 0 0 2px #72e3ff; }
.dn-circuit-status__inner time { justify-self: end; color: #afc5ce; }

.dn-circuit-mast { position: relative; background-color: var(--circuit-soft); background-image: linear-gradient(90deg,color-mix(in srgb,var(--circuit-line) 60%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--circuit-line) 60%,transparent) 1px,transparent 1px); background-size: 42px 42px; border-bottom: 1px solid var(--circuit-line); }
.dn-circuit-mast::after { position: absolute; right: 0; bottom: -6px; left: 0; height: 6px; background: linear-gradient(90deg,var(--circuit-cyan) 0 64%,var(--circuit-violet) 64%); content: ""; }
.dn-circuit-mast__inner { display: grid; grid-template-columns: 145px minmax(0,1fr) 270px; gap: clamp(32px,5vw,78px); align-items: center; min-height: 420px; padding-top: 64px; padding-bottom: 64px; }
.dn-circuit-mast__mark { position: relative; width: 132px; height: 172px; }
.dn-circuit-mast__mark::before,.dn-circuit-mast__mark::after { position: absolute; top: 54px; left: 61px; width: 2px; height: 78px; background: var(--circuit-ink); content: ""; transform-origin: 50% 0; }
.dn-circuit-mast__mark::before { transform: rotate(-42deg); }
.dn-circuit-mast__mark::after { transform: rotate(42deg); }
.dn-circuit-mast__mark > span,.dn-circuit-mast__mark > i,.dn-circuit-mast__mark > b { position: absolute; z-index: 1; display: block; background: #fff; border: 8px solid var(--circuit-cyan); border-radius: 50%; box-shadow: 0 0 0 2px var(--circuit-ink); }
.dn-circuit-mast__mark > span { top: 4px; left: 36px; width: 58px; height: 58px; }
.dn-circuit-mast__mark > i { right: 3px; bottom: 31px; width: 34px; height: 34px; }
.dn-circuit-mast__mark > b { bottom: 8px; left: 1px; width: 34px; height: 34px; }
.dn-circuit-mast__mark small { position: absolute; right: 0; bottom: -14px; left: 0; font-size: 9px; font-weight: 800; letter-spacing: .18em; text-align: center; }
.dn-circuit-mast__copy .dn-kicker { margin-bottom: 19px; color: var(--circuit-cyan-text); font-size: 11px; letter-spacing: .16em; }
.dn-circuit-mast__copy h1 { max-width: 740px; margin-bottom: 28px; font-size: clamp(48px,6.8vw,94px); font-weight: 800; letter-spacing: -.065em; line-height: .88; }
.dn-circuit-mast__copy h1 em { color: var(--circuit-violet); font-style: normal; font-weight: 300; }
.dn-circuit-mast__copy > p:last-child { max-width: 670px; margin-bottom: 0; color: color-mix(in srgb,var(--circuit-ink) 72%,#fff); font-size: clamp(16px,1.55vw,21px); line-height: 1.55; }
.dn-circuit-mast__principles { margin-bottom: 0; padding: 0; list-style: none; border-top: 2px solid var(--circuit-ink); }
.dn-circuit-mast__principles li { display: grid; grid-template-columns: 38px 1fr; gap: 12px; align-items: center; min-height: 63px; border-bottom: 1px solid var(--circuit-line); }
.dn-circuit-mast__principles span { color: var(--circuit-cyan); font-size: 10px; font-weight: 800; }
.dn-circuit-mast__principles strong { font-size: 14px; text-transform: uppercase; }

.dn-circuit-section-head { display: flex; gap: 28px; align-items: flex-end; justify-content: space-between; margin-bottom: 28px; padding-bottom: 13px; border-bottom: 1px solid var(--circuit-line); }
.dn-circuit-section-head :is(p,h2) { margin-bottom: 0; }
.dn-circuit-section-head p { color: var(--circuit-cyan-text); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.dn-circuit-section-head p span { display: inline-block; margin-right: 12px; color: var(--circuit-ink); }
.dn-circuit-section-head strong { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.dn-circuit-section-head h2 { font-size: clamp(27px,3.3vw,45px); letter-spacing: -.045em; line-height: 1; }
.dn-circuit-signal { padding-top: 94px; padding-bottom: 104px; }
.dn-circuit-signal__grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(300px,.7fr); gap: 30px; }
.dn-circuit-lead { display: grid; grid-template-rows: minmax(380px,38vw) auto; background: var(--circuit-ink); border: 1px solid var(--circuit-ink); }
.dn-circuit-lead__media { overflow: hidden; }
.dn-circuit-lead__body { position: relative; padding: clamp(24px,3.2vw,48px); color: #fff; }
.dn-circuit-coordinate { display: block; margin-bottom: 22px; color: #86dff4; font-size: 9px; font-weight: 800; letter-spacing: .17em; }
.dn-circuit-lead .dn-category { color: #72e3ff; }
.dn-circuit-lead h2 { max-width: 820px; margin: 10px 0 26px; font-size: clamp(32px,4.35vw,62px); letter-spacing: -.045em; line-height: 1; }
.dn-circuit-lead .dn-meta { display: flex; gap: 24px; align-items: center; justify-content: space-between; color: #afc5ce; }
.dn-circuit-lead .dn-meta a { padding-bottom: 3px; color: #fff; border-bottom: 1px solid var(--circuit-cyan); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.dn-circuit-briefs { display: grid; grid-template-rows: repeat(2,minmax(0,1fr)); gap: 18px; }
.dn-circuit-briefs article { display: flex; flex-direction: column; padding: 18px; border: 1px solid var(--circuit-line); box-shadow: inset 5px 0 0 var(--circuit-cyan); }
.dn-circuit-briefs article:nth-child(2) { box-shadow: inset 5px 0 0 var(--circuit-violet); }
.dn-circuit-briefs__head { display: flex; justify-content: space-between; margin-bottom: 13px; color: color-mix(in srgb,var(--circuit-ink) 60%,#fff); font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.dn-circuit-briefs__media { height: 150px; margin-bottom: 17px; overflow: hidden; }
.dn-circuit-briefs h3 { margin: 8px 0 0; font-size: clamp(20px,2vw,29px); letter-spacing: -.03em; line-height: 1.08; }

.dn-circuit-live { padding: 92px 0 105px; color: #fff; background: var(--circuit-ink); }
.dn-circuit-section-head--light { border-color: #33505e; }
.dn-circuit-section-head--light p { color: #72e3ff; }
.dn-circuit-section-head--light p span { color: #fff; }
.dn-circuit-live__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: #33505e; border: 1px solid #33505e; }
.dn-circuit-live__grid article { position: relative; display: grid; grid-template-rows: 210px 1fr; padding: 18px; background: var(--circuit-ink); }
.dn-circuit-live__grid article.is-primary { grid-row: span 2; grid-template-rows: minmax(350px,1fr) auto; }
.dn-circuit-live__grid article:last-child:not(.is-primary) { grid-column: span 2; grid-template-columns: 220px minmax(0,1fr); grid-template-rows: none; gap: 20px; }
.dn-circuit-live__port { position: absolute; z-index: 2; top: -6px; left: -6px; width: 11px; height: 11px; background: var(--circuit-ink); border: 3px solid var(--circuit-cyan); border-radius: 50%; }
.dn-circuit-live__media { min-height: 0; overflow: hidden; }
.dn-circuit-live__grid article > div { display: flex; flex-direction: column; padding-top: 22px; }
.dn-circuit-live__grid article:last-child:not(.is-primary) > div { padding-top: 0; }
.dn-circuit-live__grid article > div > p { display: flex; gap: 13px; justify-content: space-between; margin-bottom: 16px; color: #8ab2c3; font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.dn-circuit-live h3 { margin-bottom: 24px; font-size: clamp(22px,2.5vw,36px); letter-spacing: -.035em; line-height: 1.04; }
.dn-circuit-live__grid article:not(.is-primary) h3 { font-size: clamp(19px,1.7vw,26px); }
.dn-circuit-live time { margin-top: auto; color: #8ab2c3; font-size: 10px; text-transform: uppercase; }

.dn-circuit-map { padding-top: 100px; padding-bottom: 106px; }
.dn-circuit-map > header { display: grid; grid-template-columns: 1fr minmax(280px,430px); gap: 60px; align-items: end; margin-bottom: 60px; }
.dn-circuit-map h2 { margin: 8px 0 0; font-size: clamp(42px,6vw,82px); letter-spacing: -.06em; line-height: .9; }
.dn-circuit-map > header > p { margin-bottom: 0; color: color-mix(in srgb,var(--circuit-ink) 67%,#fff); line-height: 1.7; }
.dn-circuit-map nav { position: relative; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--circuit-line); border: 1px solid var(--circuit-line); }
.dn-circuit-map nav::before { position: absolute; z-index: 2; top: calc(50% - 1px); right: 6%; left: 6%; height: 2px; background: var(--circuit-cyan); content: ""; pointer-events: none; }
.dn-circuit-map nav a { position: relative; z-index: 3; display: grid; grid-template-columns: 26px 1fr auto; gap: 12px; align-items: center; min-height: 128px; padding: 26px; background: var(--circuit-paper); transition: color .2s ease,background-color .2s ease; }
.dn-circuit-map nav a:hover,.dn-circuit-map nav a:focus-visible { color: #fff; background: var(--circuit-violet); }
.dn-circuit-map__node { width: 18px; height: 18px; background: #fff; border: 5px solid var(--circuit-cyan); border-radius: 50%; box-shadow: 0 0 0 2px var(--circuit-ink); }
.dn-circuit-map nav a:hover .dn-circuit-map__node,.dn-circuit-map nav a:focus-visible .dn-circuit-map__node { box-shadow: 0 0 0 2px #fff; }
.dn-circuit-map nav small { position: absolute; top: 17px; left: 66px; color: color-mix(in srgb,var(--circuit-ink) 58%,#fff); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.dn-circuit-map nav strong { padding-top: 15px; font-size: clamp(17px,1.8vw,24px); }
.dn-circuit-map nav i { font-style: normal; }

.dn-circuit-components { padding: 88px 0 100px; background: var(--circuit-soft); border-block: 1px solid var(--circuit-line); }
.dn-circuit-components__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.dn-circuit-components__grid article { display: flex; flex-direction: column; min-height: 350px; padding: clamp(24px,3vw,38px); background: var(--circuit-paper); border: 1px solid var(--circuit-line); }
.dn-circuit-components__number { display: flex; align-items: center; justify-content: space-between; margin-bottom: 55px; color: var(--circuit-violet); font-size: 44px; font-weight: 300; letter-spacing: -.06em; }
.dn-circuit-components__number span { width: 18px; height: 18px; background: #fff; border: 5px solid var(--circuit-cyan); border-radius: 50%; box-shadow: 0 0 0 2px var(--circuit-ink); }
.dn-circuit-components h3 { margin: 11px 0 17px; font-size: clamp(24px,2.5vw,34px); letter-spacing: -.04em; line-height: 1.03; }
.dn-circuit-components article > p { margin-bottom: 30px; color: color-mix(in srgb,var(--circuit-ink) 67%,#fff); line-height: 1.65; }
.dn-circuit-components article > a { display: flex; justify-content: space-between; margin-top: auto; padding-top: 15px; color: var(--circuit-cyan-text); border-top: 1px solid var(--circuit-line); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.dn-circuit-log { padding-top: 96px; padding-bottom: 112px; }
.dn-circuit-log > div > article { display: grid; grid-template-columns: 52px minmax(0,1fr) 120px 66px; gap: 22px; align-items: center; min-height: 108px; border-bottom: 1px solid var(--circuit-line); }
.dn-circuit-log > div > article:first-child { border-top: 1px solid var(--circuit-line); }
.dn-circuit-log > div > article > span { color: var(--circuit-cyan-text); font-size: 11px; font-weight: 800; }
.dn-circuit-log h3 { margin: 6px 0 0; font-size: clamp(19px,2.2vw,30px); letter-spacing: -.035em; line-height: 1.08; }
.dn-circuit-log time { color: color-mix(in srgb,var(--circuit-ink) 62%,#fff); font-size: 10px; text-transform: uppercase; }
.dn-circuit-log > div > article > a { justify-self: end; font-size: 10px; font-weight: 800; text-transform: uppercase; }

@media (max-width: 1180px) {
    .dn-circuit-mast__inner { grid-template-columns: 110px minmax(0,1fr) 230px; gap: 36px; }
    .dn-circuit-mast__mark { transform: scale(.82); transform-origin: left center; }
    .dn-circuit-signal__grid { grid-template-columns: minmax(0,1.45fr) minmax(270px,.75fr); }
    .dn-circuit-map nav a { padding: 22px 18px; }
}
@media (max-width: 900px) {
    .dn-circuit-status__inner { grid-template-columns: 1fr auto; }
    .dn-circuit-status__inner p:nth-child(2) { display: none; }
    .dn-circuit-mast__inner { grid-template-columns: 90px minmax(0,1fr); min-height: 0; }
    .dn-circuit-mast__principles { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,1fr); }
    .dn-circuit-mast__principles li { padding: 0 14px; border-right: 1px solid var(--circuit-line); }
    .dn-circuit-signal__grid { grid-template-columns: 1fr; }
    .dn-circuit-briefs { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: none; }
    .dn-circuit-live__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dn-circuit-live__grid article.is-primary { grid-column: span 2; grid-row: auto; grid-template-columns: minmax(0,1.3fr) minmax(280px,.7fr); grid-template-rows: none; gap: 22px; }
    .dn-circuit-map > header { grid-template-columns: 1fr 300px; gap: 35px; }
    .dn-circuit-map nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .dn-circuit-map nav::before { display: none; }
    .dn-circuit-components__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
    .dn-circuit-components__grid article:last-child { grid-column: 1 / -1; }
    .dn-circuit-components__grid article { min-height: 320px; }
}
@media (max-width: 720px) {
    .dn-circuit-status__inner { min-height: 34px; font-size: 8px; letter-spacing: .1em; }
    .dn-circuit-mast__inner { display: block; padding-top: 50px; padding-bottom: 52px; }
    .dn-circuit-mast__mark { float: right; width: 92px; height: 130px; margin: 0 0 14px 20px; transform: scale(.7); transform-origin: top right; }
    .dn-circuit-mast__copy h1 { font-size: clamp(45px,13.5vw,72px); }
    .dn-circuit-mast__principles { clear: both; display: grid; margin-top: 38px; }
    .dn-circuit-mast__principles li { display: block; min-height: 65px; padding: 15px 8px; }
    .dn-circuit-mast__principles span { display: block; margin-bottom: 8px; }
    .dn-circuit-section-head { display: block; }
    .dn-circuit-section-head :is(strong,h2) { display: block; margin-top: 10px; }
    .dn-circuit-signal { padding-top: 70px; padding-bottom: 75px; }
    .dn-circuit-lead { grid-template-rows: minmax(270px,66vw) auto; }
    .dn-circuit-lead .dn-meta { display: block; }
    .dn-circuit-lead .dn-meta a { display: table; margin-top: 18px; }
    .dn-circuit-briefs { grid-template-columns: 1fr; }
    .dn-circuit-briefs article { display: grid; grid-template-columns: 120px minmax(0,1fr); column-gap: 17px; }
    .dn-circuit-briefs__head { grid-column: 1 / -1; }
    .dn-circuit-briefs__media { grid-row: span 2; height: 116px; margin-bottom: 0; }
    .dn-circuit-live { padding: 72px 0 78px; }
    .dn-circuit-live__grid { grid-template-columns: 1fr; }
    .dn-circuit-live__grid article,.dn-circuit-live__grid article.is-primary { grid-column: auto; grid-template-columns: 132px minmax(0,1fr); grid-template-rows: none; gap: 16px; }
    .dn-circuit-live__grid article:last-child:not(.is-primary) { grid-column: auto; grid-template-columns: 132px minmax(0,1fr); grid-template-rows: none; gap: 16px; }
    .dn-circuit-live__grid article.is-primary { grid-template-columns: 1fr; }
    .dn-circuit-live__grid article.is-primary .dn-circuit-live__media { height: 280px; }
    .dn-circuit-live__media { height: 132px; }
    .dn-circuit-live__grid article > div { padding-top: 0; }
    .dn-circuit-live__grid article.is-primary > div { padding-top: 16px; }
    .dn-circuit-live h3,.dn-circuit-live__grid article:not(.is-primary) h3 { margin-bottom: 14px; font-size: 21px; }
    .dn-circuit-map { padding-top: 74px; padding-bottom: 78px; }
    .dn-circuit-map > header { display: block; margin-bottom: 38px; }
    .dn-circuit-map > header > p { margin-top: 24px; }
    .dn-circuit-map nav { grid-template-columns: 1fr; }
    .dn-circuit-map nav a { min-height: 94px; }
    .dn-circuit-components { padding: 70px 0 76px; }
    .dn-circuit-components__grid { grid-template-columns: 1fr; }
    .dn-circuit-components__grid article:last-child { grid-column: auto; }
    .dn-circuit-components__grid article { min-height: 0; }
    .dn-circuit-components__number { margin-bottom: 32px; }
    .dn-circuit-log { padding-top: 72px; padding-bottom: 84px; }
    .dn-circuit-log > div > article { grid-template-columns: 34px minmax(0,1fr) 30px; gap: 13px; min-height: 116px; }
    .dn-circuit-log time { display: none; }
    .dn-circuit-log > div > article > a { width: 30px; overflow: hidden; white-space: nowrap; }
}
@media (max-width: 480px) {
    .dn-circuit-status__inner p:first-child { font-size: 7px; }
    .dn-circuit-status__inner time { font-size: 7px; }
    .dn-circuit-mast__mark { display: none; }
    .dn-circuit-mast__copy h1 { letter-spacing: -.06em; }
    .dn-circuit-mast__principles strong { font-size: 10px; }
    .dn-circuit-briefs article { grid-template-columns: 96px minmax(0,1fr); padding: 14px; }
    .dn-circuit-briefs__media { height: 102px; }
    .dn-circuit-live__grid article,.dn-circuit-live__grid article.is-primary { grid-template-columns: 1fr; }
    .dn-circuit-live__grid article:last-child:not(.is-primary) { grid-template-columns: 1fr; }
    .dn-circuit-live__grid article:not(.is-primary) .dn-circuit-live__media { height: 190px; }
    .dn-circuit-live__grid article > div { padding-top: 16px; }
    .dn-circuit-map h2 { font-size: 44px; }
    .dn-circuit-log h3 { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .dn-circuit-map nav a { transition: none; }
}
