        @font-face {
            font-family: 'VT323';
            src: url('font/vt323-v18-latin-regular.woff2') format('woff2');
            font-weight: 400;
            font-style: normal;
            font-display: block;
        }
        @font-face {
            font-family: 'Orbitron';
            src: url('font/orbitron-v35-latin-regular.woff2') format('woff2');
            font-weight: 400;
            font-style: normal;
            font-display: swap;
        }
        @font-face {
            font-family: 'Orbitron';
            src: url('font/orbitron-v35-latin-700.woff2') format('woff2');
            font-weight: 700;
            font-style: normal;
            font-display: swap;
        }
        @font-face {
            font-family: 'Orbitron';
            src: url('font/orbitron-v35-latin-900.woff2') format('woff2');
            font-weight: 900;
            font-style: normal;
            font-display: swap;
        }
        @font-face {
            font-family: 'Share Tech Mono';
            src: url('font/share-tech-mono-v16-latin-regular.woff2') format('woff2');
            font-weight: 400;
            font-style: normal;
            font-display: swap;
        }
        @font-face {
            font-family: 'Aurebesh';
            src: url('font/Aurebesh Bold.otf') format('opentype');
            font-weight: 700;
            font-style: normal;
            font-display: block;
        }

        /* ── VARIABLES & RÈGLES ── */
        :root {
            --g:     #00ff41;
            --g2:    #00cc33;
            --g3:    #007722;
            --g4:    #003311;
            --g5:    #001a09;
            --gdim:  #1a4422;
            --m1:    #0d0e0f;
            --m2:    #252727;
            --m3:    #1e2020;
            --scr:   #030504;
            --red:   #ff3300;
            --red2:  #cc2200;
            --warn:  #aa8800;
            --border-screen:  #0a1410;
            --border-console: #0a1010;
            --glow:  0 0 8px #00ff41, 0 0 20px #009922, 0 0 40px #004411;
            --glow2: 0 0 4px #00ff41, 0 0 12px #009922;
            --rglow: 0 0 8px #ff3300, 0 0 20px #cc2200;

            /* ── PCB palette ── */
            --pcb-trace:   #002a10;
            --pcb-trace2:  #003d18;
            --pcb-via:     #004d1e;
            --pcb-comp:    #003318;
            --pcb-bright:  #005525;
            --pcb-silk:    #1a3a1a;

            /* ── z-index layers ── */
            --z-content:          2;
            --z-screen-glare:     5;
            --z-screen-scanlines: 6;
            --z-plate-bg:         1;
            --z-tag:              10;
            --z-phosphor:         12;
            --z-sticker-wrap:     18;
            --z-sticker:          20;
            --z-bolt:             100;
            --z-vignette:         200;
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }

        body {
            background: #000;
            width: 100vw; height: 100vh;
            overflow: hidden;
            font-family: 'Share Tech Mono', monospace;
        }
        @media (max-width: 800px), (max-height: 500px) {
            body { overflow: auto; }
            .casing { min-height: 500px; min-width: 800px; }
        }

        /* ── CASING ── */
        .casing {
            width: 100%; height: 100%;
            display: grid;
            grid-template-rows: 34px 1fr 28px;
            background:
                repeating-linear-gradient(0deg, transparent 0, transparent 3px, rgba(255,255,255,.008) 3px, rgba(255,255,255,.008) 4px),
                repeating-linear-gradient(90deg, rgba(255,255,255,0) 0, rgba(255,255,255,0) 40px, rgba(255,255,255,.012) 40px, rgba(255,255,255,.012) 41px),
                linear-gradient(160deg, #111214 0%, #0a0b0c 40%, #0d0e10 100%);
            position: relative;
        }
        .casing::after {
            content: '';
            position: absolute; inset: 0;
            background: radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,.7) 100%);
            pointer-events: none; z-index: var(--z-vignette);
        }

        /* bolts */
        .bolt {
            position: absolute; width: 20px; height: 20px; border-radius: 50%;
            background: radial-gradient(circle at 38% 32%, #4a4c4c 0%, #252727 40%, #141515 100%);
            border: 1px solid #3a3c3c;
            box-shadow: inset 0 1px 3px rgba(255,255,255,.12), 0 2px 4px rgba(0,0,0,.9);
            z-index: var(--z-bolt);
        }
        .bolt::after {
            content: '✕'; position: absolute; top:50%; left:50%;
            transform: translate(-50%,-50%) rotate(45deg);
            color: #333; font-size: 9px; line-height: 1;
        }
        .b-tl{top:10px;left:10px;} .b-tr{top:10px;right:10px;}
        .b-bl{bottom:10px;left:10px;} .b-br{bottom:10px;right:10px;}

        /* ── HAZARD BARS ── */
        .hazard {
            background: repeating-linear-gradient(-45deg, #1c1500 0,#1c1500 12px, #0d0e0f 12px,#0d0e0f 24px);
            display: flex; align-items: center; justify-content: space-between;
            padding: 0 36px;
        }
        .hazard-top { border-bottom: 2px solid #222; }
        .hazard-bot { border-top:    2px solid #222; }
        .hazard-text {
            font-family: 'Orbitron', sans-serif;
            font-size: 9px; letter-spacing: 4px; color: #604000;
            text-transform: uppercase;
            animation: hFlicker 4s ease-in-out infinite;
        }
        .hazard-text.bright { color: #aa7700; animation-delay: 2s; }
        @keyframes hFlicker {
            0%,100%{opacity:1;} 48%{opacity:1;} 50%{opacity:.6;} 52%{opacity:1;}
            94%{opacity:1;} 96%{opacity:.4;} 98%{opacity:1;}
        }

        /* ── MAIN GRID ── */
        .main-area {
            display: grid;
            grid-template-columns: 1fr 2fr 1fr;
            grid-template-rows: repeat(2, 1fr);
            gap: 10px;
            padding: 12px 20px;
            min-height: 0;
        }

        /* ── COMP-PANEL PLACEMENT ── */
        .mod-a { grid-column: 1; grid-row: 1; }
        .mod-b { grid-column: 3; grid-row: 1; }

        /* ── PANEL BASE ── */
        .panel {
            background: var(--m1);
            border: 1px solid var(--m3); border-top-color: var(--m2);
            position: relative; overflow: hidden;
            box-shadow:
                inset 0 1px 0 rgba(255,255,255,.04),
                inset 0 -1px 0 rgba(0,0,0,.6),
                inset 0 0 40px rgba(0,0,0,.6);
        }
        .panel-tag {
            position: absolute; top:-1px; left:10px;
            background: var(--m1); border: 1px solid var(--m3); border-top: none;
            color: var(--g3); font-family: 'Orbitron',sans-serif;
            font-size: 8px; letter-spacing: 3px; padding: 2px 8px 1px;
            text-transform: uppercase; z-index: var(--z-tag);
        }

        /* ── LEDS ── */
        .led { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
        .led-red        { background:var(--red);  box-shadow:var(--rglow); animation:lRed .9s ease-in-out infinite alternate; }
        .led-red-solid  { background:var(--red);  box-shadow:var(--rglow); }
        .led-green      { background:var(--g2);   box-shadow:var(--glow2); animation:lGreen 2.2s ease-in-out infinite alternate; }
        .led-orange     { background:#ff8800;      box-shadow:0 0 8px #ff8800,0 0 18px #cc6600; animation:lOrange 1.8s ease-in-out infinite alternate; }
        .led-dim        { background:#1a2a1a; }
        @keyframes lRed    { from{opacity:1;box-shadow:var(--rglow);} to{opacity:.25;box-shadow:none;} }
        @keyframes lGreen  { from{opacity:1;} to{opacity:.5;} }
        @keyframes lOrange { from{opacity:1;box-shadow:0 0 8px #ff8800,0 0 18px #cc6600;} to{opacity:.4;box-shadow:none;} }

        /* ══════════════════════════
           COMPONENT PANELS (col1/col3)
        ══════════════════════════ */
        .comp-panel {
            display:flex; flex-direction:column;
            align-items:center; justify-content:center;
            padding:20px 12px 14px; gap:6px;
        }
        .comp-logo { width:60%; aspect-ratio:1; margin-bottom:4px; overflow:hidden; flex-shrink:0; }
        .comp-logo svg { width:100%; height:100%; }
        .comp-brand { font-family:'Orbitron',sans-serif; font-size:15px; font-weight:900; color:var(--g2); letter-spacing:2px; text-align:center; text-transform:uppercase; }
        .comp-ref   { font-family:'Share Tech Mono',monospace; font-size:12px; color:var(--g4); letter-spacing:1px; }
        .comp-divider { width:85%; height:1px; background:linear-gradient(to right,transparent,var(--g3),transparent); margin:4px 0; }
        .comp-role  { font-family:'Share Tech Mono',monospace; font-size:13px; color:var(--g3); text-align:center; }
        .comp-leds  { display:flex; gap:8px; margin-top:6px; }

        /* ══════════════════════════
           TIMER PANEL
        ══════════════════════════ */
        .timer-panel {
            grid-column:2; grid-row:1;
            display:flex; flex-direction:column;
            align-items:center; justify-content:flex-start;
            padding:18px 24px 14px; gap:6px;
        }
        .timer-label {
            font-family:'Orbitron',sans-serif; font-size:9px;
            color:var(--g4); letter-spacing:6px; text-transform:uppercase;
            align-self:flex-start;
        }
        .timer-screen {
            background:var(--scr);
            border:2px solid var(--border-screen); border-bottom-color:#050a05;
            width:100%; padding:10px 20px 8px; text-align:center;
            position:relative;
            box-shadow: inset 0 0 80px rgba(0,0,0,.95), inset 0 0 20px rgba(0,255,65,.04), 0 0 30px rgba(0,0,0,.7);
        }
        .timer-screen::before {
            content:''; position:absolute; top:0; left:0; right:0; height:40%;
            background:linear-gradient(to bottom,rgba(255,255,255,.025),transparent);
            pointer-events:none; z-index: var(--z-screen-glare);
        }
        .timer-screen::after {
            content:''; position:absolute; inset:0;
            background:repeating-linear-gradient(0deg,transparent 0,transparent 3px,rgba(0,0,0,.18) 3px,rgba(0,0,0,.18) 4px);
            pointer-events:none; z-index: var(--z-screen-scanlines);
        }
        .digits {
            font-family:'VT323',monospace;
            font-size:clamp(72px,7.5vw,112px); color:var(--g);
            text-shadow:var(--glow); letter-spacing:6px; line-height:1;
            animation:dPulse 2s ease-in-out infinite; position:relative; z-index: var(--z-content);
        }
        .colon { animation:blink 1s step-end infinite; display:inline-block; }
        @keyframes blink   { 0%,49%{opacity:1;} 50%,100%{opacity:0;} }
        @keyframes dPulse  {
            0%,100%{text-shadow:0 0 8px #00ff41,0 0 18px #009922,0 0 36px #004411;}
            50%    {text-shadow:0 0 12px #00ff41,0 0 28px #00cc33,0 0 55px #007722,0 0 80px #003311;}
        }
        .timer-sub { font-family:'Orbitron',sans-serif; font-size:9px; color:var(--g4); letter-spacing:7px; margin-top:4px; position:relative; z-index: var(--z-content); }
        .timer-bar-wrap { width:100%; height:4px; background:var(--g5); border:1px solid var(--g4); }

        /*MODIFICATION TIMER : animation:tbshrink
        10min : 559s, 15min : 899s , 20min : 1199s 30min : 1799s*/
        .timer-bar { height:100%; background:linear-gradient(to right,var(--g4),var(--g)); box-shadow:0 0 8px var(--g2); animation:tbShrink 1799s linear forwards; width:100%; }
        @keyframes tbShrink { to{width:0%;} }

        .status-row { display:flex; align-items:center; gap:20px; }
        .status-item { display:flex; align-items:center; gap:6px; font-family:'Share Tech Mono',monospace; font-size:10px; color:var(--gdim); letter-spacing:1px; }

        /* ══════════════════════════
           WIRES PANEL  (col1 row2)
        ══════════════════════════ */
        .wires-panel {
            grid-column:1; grid-row:2;
            position:relative;
            overflow:hidden;
        }
        .wires-svg-wrap {
            position:absolute; inset:18px 0 0 0; overflow:hidden;
        }

        /* ══════════════════════════
           CONSOLE PANEL  (col2 row2)
        ══════════════════════════ */
        .console-panel {
            grid-column:2; grid-row:2;
            display:flex; flex-direction:column;
            padding:18px 0 0;
        }
        .console-output {
            flex:1;
            background:var(--scr);
            margin:0 8px 0;
            padding:10px 14px 8px;
            overflow-y:auto; overflow-x:hidden;
            position:relative;
            border:1px solid var(--border-console);
            scroll-behavior:smooth;
        }
        .console-output::-webkit-scrollbar { width:4px; }
        .console-output::-webkit-scrollbar-track { background:#000; }
        .console-output::-webkit-scrollbar-thumb { background:var(--g4); }
        .console-output::after {
            content:''; position:absolute; inset:0;
            background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,rgba(0,0,0,.22) 2px,rgba(0,0,0,.22) 3px);
            pointer-events:none; z-index: var(--z-tag);
        }
        .console-phosphor {
            position: absolute;
            left: 8px; right: 0;
            top: 18px; bottom: 40px;
            pointer-events: none;
            overflow: hidden;
            z-index: var(--z-phosphor);
        }
        .console-phosphor::before {
            content: '';
            position: absolute;
            left: 0; right: 0; height: 20%;
            background: linear-gradient(
                to bottom,
                transparent         0%,
                rgba(0,255,65,.018) 35%,
                rgba(0,255,65,.032) 50%,
                rgba(0,255,65,.018) 65%,
                transparent         100%
            );
            animation: phosphorSweep 9s linear infinite;
        }
        @keyframes phosphorSweep { from{top:-20%;} to{top:110%;} }
        .console-lines {
            font-family:'VT323',monospace; font-size:15px;
            color:var(--g); line-height:1.45; position:relative; z-index: var(--z-content);
        }
        .cl-dim  { color:var(--g4); }
        .cl-warn { color: var(--warn); }
        .cl-err  { color: var(--red2); }
        .cl-ok   { color:var(--g2); }
        .console-input-wrap {
            margin: 0 8px 8px;
            background: var(--scr);
            border: 1px solid var(--border-console); border-top: 1px solid #0d1a0d;
            display: flex; align-items: center;
            padding: 6px 10px; gap: 6px;
            cursor: text;
        }
        .console-prompt {
            font-family: 'VT323', monospace; font-size: 16px;
            color: var(--g); flex-shrink: 0; user-select: none;
        }
        .console-fake-input {
            flex: 1; outline: none;
            font-family: 'VT323', monospace; font-size: 16px;
            color: var(--g); letter-spacing: 1px;
            white-space: nowrap; overflow: hidden;
            min-height: 1.2em; position: relative;
        }
        .console-fake-input .cmd-placeholder { color: var(--g4); }
        .fake-cursor {
            display: inline-block;
            width: 9px; height: 15px;
            background: var(--g);
            vertical-align: bottom; margin-left: 1px;
            animation: blink 1s step-end infinite;
        }

        /* ══════════════════════════
           ID PANEL  (col3 row2)
        ══════════════════════════ */
        .id-panel {
            grid-column:3; grid-row:2;
            display:flex; flex-direction:column;
            align-items:center; justify-content:center;
            padding:20px 12px 14px;
            gap: 12px;
        }

        /* ── PCB background SVG (injected by JS) ── */
        .pcb-bg {
            position: absolute;
            inset: 0;
            width: 100%; height: 100%;
            pointer-events: none;
            z-index: 1;
        }

        /* ── PCB data pulse animation along traces ── */
        @keyframes pcbPulse {
            0%   { stroke-dashoffset: 200; opacity: 0; }
            10%  { opacity: 1; }
            90%  { opacity: 1; }
            100% { stroke-dashoffset: 0;   opacity: 0; }
        }
        .pcb-pulse {
            stroke-dasharray: 8 192;
            animation: pcbPulse 3.5s linear infinite;
        }
        .pcb-pulse-slow {
            stroke-dasharray: 6 194;
            animation: pcbPulse 5.2s linear infinite;
            animation-delay: 1.8s;
        }

        /* ── Via blink ── */
        @keyframes viaBlink {
            0%,88%,100% { opacity: 0.6; }
            90%          { opacity: 1; filter: drop-shadow(0 0 3px #005525); }
        }
        .pcb-via-active { animation: viaBlink 4s ease-in-out infinite; }

        /* ══════════════════════════
           IDENTIFICATION — code matrix Aurebesh
        ══════════════════════════ */
        .id-matrix-label {
            font-family: 'Orbitron', sans-serif;
            font-size: 8px;
            color: var(--g4);
            letter-spacing: 4px;
            text-transform: uppercase;
            align-self: flex-start;
            position: relative;
            z-index: var(--z-content);
        }
        .id-matrix {
            display: flex;
            flex-direction: column;
            gap: 10px;
            align-items: center;
            position: relative;
            z-index: var(--z-content);
        }
        .id-row {
            display: flex;
            gap: 6px;
        }
        .id-char {
            font-family: 'Aurebesh', monospace;
            font-size: 22px;
            color: var(--g3);
            line-height: 1;
            text-shadow: 0 0 6px rgba(0, 255, 65, 0.2);
            width: 20px;
            text-align: center;
            animation: charFlicker 8s ease-in-out infinite;
            animation-delay: calc(var(--ci) * 0.13s);
        }
        @keyframes charFlicker {
            0%, 94%, 100% { opacity: 1; }
            95%            { opacity: 0.35; }
            96%            { opacity: 1; }
            98%            { opacity: 0.6; }
            99%            { opacity: 1; }
        }

        /* ── STICKER WRAP ── */
        .sticker-wrap {
            flex-shrink: 0;
            position: relative;
            z-index: var(--z-sticker-wrap);
        }
        .sticker-plate-behind {
            position: absolute;
            top: -10px; left: -13px; right: -15px; bottom: -10px;
            background:
                repeating-linear-gradient(
                    90deg,
                    rgba(255,255,255,0) 0px, rgba(255,255,255,0) 18px,
                    rgba(255,255,255,0.008) 18px, rgba(255,255,255,0.008) 19px
                ),
                linear-gradient(170deg, #1a1b1c 0%, #111213 50%, #161718 100%);
            border: 1px solid #2a2c2c;
            border-top-color: #323434;
            box-shadow:
                inset 0 1px 0 rgba(255,255,255,.04),
                inset 0 0 16px rgba(0,0,0,.5),
                0 2px 6px rgba(0,0,0,.7);
            z-index: var(--z-plate-bg);
        }
        .plate-rivet-sm {
            position: absolute;
            width: 6px; height: 6px; border-radius: 50%;
            background: radial-gradient(circle at 35% 35%, #3a3c3c, #151616);
            border: 1px solid #2a2c2c;
        }
        .prv-tl{top:4px;left:4px;} .prv-tr{top:4px;right:4px;}
        .prv-bl{bottom:4px;left:4px;} .prv-br{bottom:4px;right:4px;}
        .plate-real-data {
            position: absolute; inset: 0;
            display: flex; align-items: center; justify-content: center;
            font-family: 'Share Tech Mono', monospace;
            font-size: 10px; color: #1c3a1c; line-height: 1.75;
            letter-spacing: .5px; padding: 8px 15px;
            z-index: var(--z-content); pointer-events: none;
        }
        .plate-real-data b { color: var(--g3); font-weight: normal; }
        .sticker {
            position: relative; width: 250px;
            background: linear-gradient(155deg, #ede8d8 0%, #e0d8c0 60%, #d8cfb0 100%);
            transform: rotate(1.2deg);
            padding: 9px 13px 10px;
            box-shadow: 4px 5px 13px rgba(0,0,0,.75), 1px 1px 4px rgba(0,0,0,.4), inset 0 0 0 1px rgba(255,255,255,.35);
            cursor: pointer;
            transition: transform .15s, box-shadow .15s;
            z-index: var(--z-sticker);
        }
        .sticker:hover {
            transform: rotate(1.2deg) translateY(-3px);
            box-shadow: 5px 8px 18px rgba(0,0,0,.85), 1px 1px 4px rgba(0,0,0,.4);
        }
        .sticker::after {
            content:''; position:absolute; bottom:0; right:0; width:25px; height:25px;
            background:linear-gradient(225deg, var(--m1) 47%, rgba(200,190,165,.55) 50%);
            box-shadow:-2px -2px 6px rgba(0,0,0,.4);
        }
        .sticker-header {
            font-family:'Orbitron',sans-serif; font-size:10px; font-weight:700;
            color:#1a1a00; letter-spacing:2.5px;
            border-bottom:1px solid #aaa; padding-bottom:4px; margin-bottom:6px;
            text-align:center; text-transform:uppercase;
        }
        .sticker-cols { display:flex; gap:13px; align-items:flex-start; }
        .sticker-col {
            flex:1; font-family:'Share Tech Mono',monospace; font-size:11px;
            color:#222; line-height:1.7;
        }
        .sticker-col-sep { width:1px; background:#bbb; flex-shrink:0; align-self:stretch; }
        .sticker-barcode { display:flex; gap:1px; margin-top:8px; height:13px; align-items:stretch; }
        .bc-bar{background:#1a1a1a;flex-grow:1;} .bc-bar.t{flex-grow:2;} .bc-bar.w{flex-grow:3;}


        /* ══════════════════════════
           TIMER BOTTOM ROW
           Conteneur flex qui aligne le spec-screen (gauche)
           et le sticker (droite) en bas du timer-panel.
        ══════════════════════════ */
        .timer-bottom {
            margin-top: auto;
            width: 100%;
            display: flex;
            align-items: flex-end;
            gap: 16px;
        }

        /* ══════════════════════════
           SPEC SCREEN
        ══════════════════════════ */
        .spec-screen {
            flex: 1;
            min-width: 0;
            background: var(--scr);
            border: 2px solid var(--border-screen);
            border-bottom-color: #050a05;
            position: relative;
            overflow: hidden;
            box-shadow:
                inset 0 0 60px rgba(0,0,0,.95),
                inset 0 0 14px rgba(0,255,65,.03),
                0 0 20px rgba(0,0,0,.7);
        }

        /* Scanlines overlay — identique au timer-screen */
        .spec-screen::before {
            content: '';
            position: absolute;
            top: 0; left: 0; right: 0;
            height: 35%;
            background: linear-gradient(to bottom, rgba(255,255,255,.018), transparent);
            pointer-events: none;
            z-index: var(--z-screen-glare);
        }
        .spec-screen::after {
            content: '';
            position: absolute;
            inset: 0;
            background: repeating-linear-gradient(
                0deg,
                transparent 0, transparent 3px,
                rgba(0,0,0,.18) 3px, rgba(0,0,0,.18) 4px
            );
            pointer-events: none;
            z-index: var(--z-screen-scanlines);
        }

        /* Contenu intérieur — au-dessus des pseudo-éléments */
        .spec-inner {
            padding: 7px 10px 8px;
            position: relative;
            z-index: var(--z-content);
        }

        /* Ligne de titre */
        .spec-header {
            font-family: 'Aurebesh', monospace;
            font-size: 11px;
            color: var(--g3);
            letter-spacing: 1px;
            text-align: center;
            border-bottom: 1px solid var(--g4);
            padding-bottom: 4px;
            margin-bottom: 5px;
            text-shadow: 0 0 8px rgba(0,180,60,.3);
        }

        /* Lignes de données */
        .spec-line {
            font-family: 'Aurebesh', monospace;
            font-size: 13px;
            color: var(--g);
            line-height: 1.55;
            text-shadow: 0 0 5px rgba(0,255,65,.35);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            animation: specLinePulse 6s ease-in-out infinite;
        }

        /* Décalages de phase pour éviter un clignotement synchronisé */
        .spec-line:nth-child(2) { animation-delay: 0s;    color: var(--g2); }
        .spec-line:nth-child(3) { animation-delay: 1.4s;  color: var(--g);  }
        .spec-line:nth-child(4) { animation-delay: 2.8s;  color: var(--g);  }

        /* Ligne note_bomb — peut se découper sur plusieurs lignes */
        .spec-notes {
            font-family: 'Aurebesh', monospace;
            font-size: 11px;
            color: var(--g3);
            line-height: 1.45;
            white-space: normal;
            overflow: hidden;
            margin-top: 3px;
            text-shadow: 0 0 4px rgba(0,180,50,.25);
            animation-delay: 4.2s;
        }

        @keyframes specLinePulse {
            0%,100% { opacity: 1; }
            48%      { opacity: 1; }
            50%      { opacity: .55; }
            52%      { opacity: 1; }
            92%      { opacity: 1; }
            94%      { opacity: .4; }
            96%      { opacity: 1; }
        }

/* ── SPEC SCREEN — état déchiffré (après cipher.decrypt) ────── */
/*
 * Ajoutée par bomb-display.js::playSpecScreenDecrypt()
 * au terme de l'animation de scramble.
 * Bascule toutes les lignes de données d'Aurebesh vers Share Tech Mono,
 * rendant le contenu du spec screen lisible.
 */
.spec-screen--decrypted .spec-header,
.spec-screen--decrypted .spec-line,
.spec-screen--decrypted .spec-notes {
    font-family: 'Share Tech Mono', monospace;
    /* Légère transition pour adoucir le changement de rendu */
    transition: color 0.4s ease;
}

/* Accentue légèrement la couleur pour signifier que les données sont "réelles" */
.spec-screen--decrypted .spec-line:nth-child(2) { color: var(--g);  }
.spec-screen--decrypted .spec-line:nth-child(3) { color: var(--g2); }
.spec-screen--decrypted .spec-line:nth-child(4) { color: var(--g2); }
.spec-screen--decrypted .spec-notes             { color: var(--g3); }
