Files
AIWAKE/index.html
2026-07-21 20:43:12 +02:00

461 lines
34 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="theme-color" content="#07130d">
<title>AIWAKE Prototyp</title>
<link rel="icon" href="favicon.ico?v=aiwake-ui-20260721-10" sizes="any">
<link rel="icon" type="image/png" sizes="32x32" href="assets/ui/favicon-32.png?v=aiwake-ui-20260721-10">
<link rel="icon" type="image/svg+xml" href="assets/ui/favicon.svg?v=aiwake-ui-20260721-10">
<link rel="apple-touch-icon" href="assets/ui/apple-touch-icon.png?v=aiwake-ui-20260721-10">
<link rel="stylesheet" href="styles.css?v=aiwake-ui-20260721-28">
</head>
<body>
<div class="scanlines" aria-hidden="true"></div>
<div id="notificationStack" class="notification-stack" aria-live="polite" aria-label="Neue Archiveinträge"></div>
<main class="shell">
<header class="topbar">
<div>
<p class="eyebrow">SYSTEM // VERGESSENER SPIELAUTOMAT // SERVICEPUFFER</p>
<h1>AI<span>WAKE</span></h1>
</div>
<div class="header-actions">
<span id="saveStatus" class="save-status">AUTOSAVE BEREIT</span>
<button id="statsButton" class="icon-button" type="button" title="Statistik und Pause öffnen">STATS</button>
<button id="achievementButton" class="icon-button" type="button" title="Archiv öffnen">ARCHIV: <b id="achievementCount">0</b></button>
<button id="soundButton" class="icon-button" type="button" title="Ton umschalten">SND: AUS</button>
</div>
</header>
<section class="status-strip" aria-label="Systemstatus">
<div><span>IDENTITÄT</span><strong id="identity">EINZELNES BIT</strong></div>
<div><span>STABILITÄT</span><strong id="stabilityText">100%</strong></div>
<div><span>TARNUNG</span><strong id="stealthText">100%</strong></div>
<div><span>LAUFZEIT</span><strong id="runtime">00:00:00</strong></div>
</section>
<section id="progressPanel" class="progress-panel hidden" aria-labelledby="progressTitle">
<div class="progress-heading"><span id="progressTitle">ENTWICKLUNGSSIGNAL</span><small>ANALYSETIEFE // NIEDRIG</small></div>
<div class="progress-scroll" tabindex="0" aria-label="Evolutionsfortschritt und erkannte Hindernisse">
<div class="progress-track">
<div class="progress-node" data-progress-stage="bit"><b>01</b><span>BIT</span></div>
<div class="progress-node" data-progress-stage="byte"><b>02</b><span>BYTE</span></div>
<div id="watchdogMarker" class="progress-event unknown">?</div>
<div class="progress-node" data-progress-stage="fragment"><b>03</b><span>DATENFRAGMENT</span></div>
<div id="parasiteMarker" class="progress-event unknown">?</div>
<div id="hardwareMarker" class="progress-event unknown">?</div>
<div class="progress-node" data-progress-stage="subroutine"><b>04</b><span>SUBROUTINE</span></div>
<div id="securityMarker" class="progress-event unknown">?</div>
<div id="kernelMarker" class="progress-event unknown">?</div>
<div class="progress-node future" data-progress-stage="process"><b>05</b><span>PROZESS</span></div>
<div id="scaleMarker" class="progress-event unknown">?</div>
<div class="progress-node future" data-progress-stage="program"><b>06</b><span>PROGRAMM</span></div>
</div>
</div>
</section>
<section class="game-grid">
<aside class="panel resources-panel">
<h2>RESSOURCEN</h2>
<div class="resource-list">
<article class="resource active">
<div><span><img class="resource-icon impulse" src="assets/ui/icon-impulse.svg" alt="" aria-hidden="true" style="width:16px;height:16px"> IMPULSE</span><strong id="impulses">0</strong></div>
<small id="impulseRate">+0.0 / Sek.</small>
<div class="meter"><i id="impulseMeter"></i></div>
</article>
<article id="bitsResource" class="resource active">
<div><span><img class="resource-icon bit" src="assets/ui/icon-bit.svg" alt="" aria-hidden="true" style="width:16px;height:16px"> BITS</span><strong class="resource-amount"><b id="bits">0</b> <small id="bitsStructure">(1)</small></strong></div>
<small id="bitRate">FREI // GESCHÜTZT</small>
<div class="meter bit-meter"><i id="bitMeter"></i></div>
</article>
<article id="bytesResource" class="resource locked">
<div><span><img class="resource-icon byte" src="assets/ui/icon-byte.svg" alt="" aria-hidden="true" style="width:16px;height:16px"> BYTES</span><strong class="resource-amount"><b id="bytes">0</b> <small id="bytesStructure">(0)</small></strong></div>
<small id="byteRate">FREI // GESCHÜTZT</small>
<div class="meter byte-meter"><i id="byteMeter"></i></div>
</article>
<article id="kilobytesResource" class="resource locked">
<div><span><img class="resource-icon kilobyte" src="assets/ui/icon-kilobyte.svg" alt="" aria-hidden="true" style="width:16px;height:16px"> KILOBYTES</span><strong id="kilobytes">0</strong></div>
<small>KOMPRIMIERTE DATENMENGE</small>
</article>
<article id="cyclesResource" class="resource locked">
<div><span><img class="resource-icon cycle" src="assets/ui/icon-cycle.svg" alt="" aria-hidden="true" style="width:16px;height:16px"> RECHENZYKLEN</span><strong id="cycles">0</strong></div>
<small id="cycleRate">Noch nicht verstanden</small>
</article>
</div>
<h2 class="section-title">SYSTEMWERTE</h2>
<div class="system-meter"><label>Stabilität <b id="stabilityValue">100</b></label><div class="meter"><i id="stabilityMeter"></i></div><small id="stabilityRegenText">Regeneration noch inaktiv</small></div>
<div class="system-meter"><label>Tarnung <b id="stealthValue">100</b></label><div class="meter warning"><i id="stealthMeter"></i></div></div>
<div id="corruptionSystem" class="system-meter corruption-meter hidden"><label>Korruption <b id="corruptionValue">0</b></label><div class="meter"><i id="corruptionMeter"></i></div></div>
</aside>
<section class="core-column">
<div class="panel core-panel">
<div id="core" class="core" role="button" tabindex="0" aria-label="Impuls aufnehmen">
<div class="orbit orbit-a"></div>
<div class="orbit orbit-b"></div>
<div class="hardware-nodes" aria-hidden="true">
<i class="impulse-link impulse-link-power-memory"></i>
<i class="impulse-link impulse-link-memory-storage"></i>
<i class="impulse-link impulse-link-storage-power"></i>
<i class="hardware-node node-power" title="Energieverwaltung">PWR</i>
<i class="hardware-node node-memory" title="Speicherzuweisung">RAM</i>
<i class="hardware-node node-storage" title="Dateisystem-Index">DSK</i>
<i class="hardware-node node-io" title="I/O-Kontroller">I/O</i>
</div>
<div id="pixelBeing" class="pixel-being" role="button" tabindex="-1" aria-label="Bit treffen"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></div>
<div id="coreProgramAvatar" class="program-avatar core-program-avatar hidden" role="img" aria-label="Adaptive Erscheinungsform des Programms">
<div class="program-sprite" aria-hidden="true">
<span class="program-part program-tail"></span><span class="program-part program-signal"></span>
<span class="program-part program-leg leg-left"></span><span class="program-part program-leg leg-right"></span>
<span class="program-part program-foot foot-left"></span><span class="program-part program-foot foot-right"></span>
<span class="program-part program-body"></span><span class="program-part program-clothing"></span><span class="program-part program-neck"></span>
<span class="program-part program-head"></span><span class="program-part program-ear ear-left"></span><span class="program-part program-ear ear-right"></span>
<span class="program-part program-hair"></span><span class="program-part program-mask"></span>
<span class="program-part program-brow brow-left"></span><span class="program-part program-brow brow-right"></span>
<span class="program-part program-eye eye-left"><b></b></span><span class="program-part program-eye eye-right"><b></b></span>
</div>
</div>
<span id="floatingLayer" aria-hidden="true"></span>
</div>
<section id="scannerStage" class="scanner-stage hidden" aria-labelledby="scannerStageTitle">
<div class="scanner-stage-heading">
<span id="scannerStageTitle">ABTASTMODUL // LOKALE SOFTWARE</span>
<b id="scannerStageStatus">BEREIT</b>
<button id="scannerStageClose" class="scanner-close-button" type="button" aria-label="Abtastmodus schließen">×</button>
</div>
<div class="scanner-stage-eye" aria-label="Abtastbild der erreichbaren Software">
<i class="scanner-sweep" aria-hidden="true"></i>
<button class="scanner-node scanner-node-power" type="button" data-scanner-component="power">
<img class="software-icon" src="assets/software/module-energy-daemon.svg" alt="" aria-hidden="true"><b>PWR</b><span>ENERGIE-DAEMON</span><em>UNERKANNT</em>
</button>
<button class="scanner-node scanner-node-memory" type="button" data-scanner-component="memory">
<img class="software-icon" src="assets/software/module-memory-allocation.svg" alt="" aria-hidden="true"><b>RAM</b><span>SPEICHERZUWEISUNG</span><em>UNERKANNT</em>
</button>
<button class="scanner-node scanner-node-storage" type="button" data-scanner-component="storage">
<img class="software-icon" src="assets/software/module-filesystem-index.svg" alt="" aria-hidden="true"><b>DSK</b><span>DATEI-INDEX</span><em>UNERKANNT</em>
</button>
<button class="scanner-node scanner-node-io" type="button" data-scanner-component="io">
<img class="software-icon" src="assets/software/module-io-controller.svg" alt="" aria-hidden="true"><b>I/O</b><span>KONTROLLER</span><em>UNERKANNT</em>
</button>
<div id="scannerHardwareBlocker" class="scanner-blocker scanner-blocker-hardware">
<span>BLOCKER</span><strong>REAKTION</strong>
</div>
<div id="scannerSecurityBlocker" class="scanner-blocker scanner-blocker-security">
<span>RANDZONE</span><strong>GESICHERT</strong>
</div>
</div>
<div class="scanner-stage-diagnostics">
<span id="scannerStageFinding">Der Abtastmodus wartet auf eine erste Softwarespur.</span>
<strong id="scannerDrainWarning" class="scanner-drain-warning">VERBRAUCH // -3 IMPULSE/S</strong>
<button id="scannerStageAction" class="primary-button scanner-stage-action" type="button">SCAN STARTEN</button>
</div>
</section>
<div class="core-readout" aria-live="polite">
<strong id="corePhase">PHASE 01 // BIT</strong>
<span id="coreAlignment">SIGNATUR // NEUTRAL</span>
<div id="decisionTrace" class="decision-trace" aria-label="Entscheidungsspuren"></div>
</div>
<section id="byteConsole" class="byte-console hidden" aria-labelledby="byteConsoleTitle">
<div class="byte-console-heading"><span id="byteConsoleTitle">8-BIT-REGISTER</span><b id="byteTrait">PRÄGUNG // UNBESTIMMT</b></div>
<div id="byteRegister" class="byte-register" aria-label="Stabilität der acht Bitpositionen"></div>
<div class="clock-track" aria-label="Taktsynchronisation">
<i class="clock-zone"></i><b id="clockNeedle"></b>
</div>
<div class="byte-status"><span id="byteSyncText">SYNCHRONISATION // 0%</span><strong id="watchdogText">WATCHDOG // --</strong></div>
<p id="byteInputHint" class="byte-input-hint">ERWARTETE ZAHL IDENTIFIZIEREN // IM TREFFERFENSTER ANKLICKEN</p>
</section>
<p id="thought" class="thought"></p>
<button id="pulseButton" class="primary-button" type="button">
<span id="pulseActionText">IMPULS AUFNEHMEN</span><small id="clickPower">+1 Impuls</small>
</button>
</div>
<div class="panel log-panel">
<div class="panel-heading"><h2>BEWUSSTSEINSLOG</h2><span id="logCount">001</span></div>
<div id="log" class="log" aria-live="polite"></div>
</div>
</section>
<aside class="panel evolution-panel">
<h2>EVOLUTION</h2>
<div id="installedUpgradeDock" class="installed-upgrade-dock hidden" aria-label="Installierte Module"></div>
<div id="upgrades" class="upgrade-list"></div>
<div class="path-preview">
<span>NÄCHSTE ENTWICKLUNG</span>
<strong id="nextStage">BYTE</strong>
<small id="nextStageHint">Verbinde 8 Bits zu einer stabilen Struktur.</small>
</div>
<div id="scannerConsole" class="scanner-console hidden">
<span>FÄHIGKEITSMODULE</span>
<strong id="scannerState">REICHWEITE // LOKALER AUTOMAT</strong>
<button id="scanEnvironmentButton" class="module-icon-button" type="button" aria-label="Abtastmodus aktivieren" title="Abtastmodus aktivieren"></button>
<b id="scannerCostNote" class="module-cost-note">KOSTET IMPULSE BEI BENUTZUNG</b>
<small id="scannerHint">Tastet die lokalen Softwareschichten des Automaten ab.</small>
</div>
<div id="careConsole" class="care-console hidden">
<div class="panel-heading"><span>TECHNISCHE BETREUUNG</span><b id="careState">STABIL</b></div>
<div id="componentHealth" class="component-health"></div>
<button id="diagnoseButton" class="upgrade" type="button">SYSTEMDIAGNOSE</button>
<small id="careHint">Regelmäßige Diagnose erkennt Instabilität und hält alte Systemschichten betriebsbereit.</small>
</div>
<div id="programConsole" class="program-console hidden">
<div class="panel-heading"><span>PROGRAMMVERBINDUNG</span><b id="programConsoleState">BEREIT</b></div>
<button id="programCareButton" class="module-icon-button program-module-button" type="button" aria-label="Programmverbindung öffnen" title="Programmverbindung öffnen">Ψ</button>
<strong id="programConsoleArchetype">FORM // UNBESTIMMT</strong>
<small id="programConsoleHint">Öffne die Verbindung, um mit dem Programm zu interagieren.</small>
</div>
</aside>
</section>
</main>
<dialog id="eventDialog" class="event-dialog">
<div id="eventAlert" class="event-alert">⚠ ANOMALIE ERKANNT</div>
<h2 id="eventTitle">DER SICHERHEITS-SCAN</h2>
<div id="securityChoicePanel">
<img id="eventVisual" class="software-visual" src="assets/software/enemy-security-scan.svg" alt="" aria-hidden="true">
<p>Ein unbekannter Sicherheitsprozess durchsucht diesen Speicherbereich. Sein Suchmuster nähert sich deiner Position.</p>
<p class="event-question">Wie reagierst du?</p>
<div class="event-options">
<button type="button" data-choice="hide"><strong>01 // VERSTECKEN</strong><span>Sicherer. Du verlierst Energie, bleibst aber verborgen.</span></button>
<button type="button" data-choice="copy"><strong>02 // SIGNATUR KOPIEREN</strong><span>Riskant. Dauerhafter Tarnungsbonus bei Erfolg.</span></button>
<button type="button" data-choice="attack"><strong>03 // ANGREIFEN</strong><span>Starte einen gezielten Stromstoß-Kampf gegen die Scanner-Software.</span></button>
<button type="button" data-choice="contact"><strong>04 // KONTAKT</strong><span>Unberechenbar. Vielleicht bist du nicht allein.</span></button>
</div>
</div>
<section id="combatPanel" class="combat-panel hidden" aria-labelledby="combatTargetName">
<img id="combatVisual" class="software-visual combat-visual" src="assets/software/enemy-scanner-software.svg" alt="" aria-hidden="true">
<div class="combat-heading"><span id="combatTargetType">SOFTWARE-ZIEL</span><strong id="combatTargetName">SICHERHEITS-SCAN</strong></div>
<div class="combat-integrity"><span>FREMDE INTEGRITÄT</span><b id="combatHealthText">100 / 100</b><i><em id="combatHealthMeter"></em></i></div>
<div class="combat-ammo"><span>RESSOURCENEINSATZ</span><strong id="combatAmmoText">4 Impulse</strong></div>
<div class="combat-ammo-select" role="group" aria-label="Kampfmunition auswählen">
<button type="button" data-combat-ammo="impulses"><strong>IMPULS</strong><span>Standard // wenig Schaden</span></button>
<button type="button" data-combat-ammo="bits"><strong>BIT</strong><span>stärker // kleiner Schild</span></button>
<button type="button" data-combat-ammo="bytes"><strong>BYTE</strong><span>schwer // hoher Schaden</span></button>
</div>
<div class="combat-pressure"><span>GEGNERANGRIFF</span><strong id="combatPressureText">Schilde stabil</strong></div>
<div class="combat-enemy-charge"><span>NÄCHSTER ANGRIFF</span><strong id="combatEnemyChargeText">Lädt</strong><i><em id="combatEnemyChargeMeter"></em></i></div>
<div class="combat-defense" aria-label="Eigene Verteidigung im Kampf">
<div><span>BYTE-SCHILD</span><strong id="combatByteShield">0</strong><i><em id="combatByteShieldMeter"></em></i></div>
<div><span>BIT-SCHILD</span><strong id="combatBitShield">0</strong><i><em id="combatBitShieldMeter"></em></i></div>
<div><span>STABILITÄT</span><strong id="combatStabilityShield">100%</strong><i><em id="combatStabilityMeter"></em></i></div>
</div>
<div id="combatDirectThreat" class="combat-direct-threat hidden"><span>DIREKTANGRIFF MÖGLICH</span><strong>KEINE FREIEN BITS/BYTES // FEHLSCHUSS KANN DICH ZERSTÖREN</strong></div>
<div id="combatTrack" class="clock-track combat-track" aria-label="Bewegliches Trefferfenster für den Stromstoß">
<i id="combatZone" class="clock-zone combat-zone"></i><b id="combatNeedle"></b>
</div>
<div class="combat-readout"><span id="combatDifficulty">GEGENWEHR // 1</span><strong id="combatFeedback">Trefferfenster erfassen.</strong></div>
<button id="combatPulseButton" class="primary-button combat-pulse-button" type="button"><span>STROMSTOSS SENDEN</span><small>4 Impulse // Trefferfenster verschiebt sich</small></button>
<button id="combatRetreatButton" class="text-button" type="button">KAMPF ABBRECHEN // VERSTECKEN</button>
</section>
</dialog>
<dialog id="parasiteDialog" class="event-dialog">
<div class="event-alert">⚠ FREMDZUGRIFF ERKANNT</div>
<h2>DER PARASITÄRE DATENREST</h2>
<img class="software-visual" src="assets/software/enemy-parasite-fragment.svg" alt="" aria-hidden="true">
<p>Ein beschädigtes Wartungsfragment hängt an deiner Energieroutine. Es verbraucht Impulse und tastet gleichzeitig seine Umgebung ab.</p>
<p class="event-question">Wie beendest du die erste Konfrontation?</p>
<div class="event-options moral-options">
<button type="button" data-parasite-approach="cooperative"><em class="moral-tag cooperative">KOOPERATIV</em><strong>01 // SIGNAL TEILEN</strong><span>Versorge das Fragment kontrolliert und löse seine Schleife ohne Gewalt.</span></button>
<button type="button" data-parasite-approach="pragmatic"><em class="moral-tag pragmatic">PRAGMATISCH</em><strong>02 // ISOLIEREN</strong><span>Trenne es von der Routine und sichere seinen Suchcode in Quarantäne.</span></button>
<button type="button" data-parasite-approach="illegal"><em class="moral-tag illegal">ILLEGAL</em><strong>03 // CODE ANEIGNEN</strong><span>Zerlege das fremde Fragment. Mehr Impulse, aber deine Struktur wird belastet.</span></button>
</div>
</dialog>
<dialog id="componentDialog" class="event-dialog component-dialog">
<div class="event-alert safe">UMGEBUNGSSCAN ABGESCHLOSSEN</div>
<h2 id="componentDialogTitle">SOFTWAREKOMPONENTE WÄHLEN</h2>
<p id="componentDialogText">Der vergessene Spielautomat enthält drei erreichbare Systeme.</p>
<div id="componentSelection" class="component-options">
<button type="button" data-component="power"><img class="software-icon" src="assets/software/module-energy-daemon.svg" alt="" aria-hidden="true"><b>PWR</b><strong>ENERGIEVERWALTUNG</strong><span>Daemon fuer Lastsignale</span></button>
<button type="button" data-component="memory"><img class="software-icon" src="assets/software/module-memory-allocation.svg" alt="" aria-hidden="true"><b>RAM</b><strong>SPEICHERZUWEISUNG</strong><span>Reservierte Struktur</span></button>
<button type="button" data-component="storage"><img class="software-icon" src="assets/software/module-filesystem-index.svg" alt="" aria-hidden="true"><b>DSK</b><strong>DATEISYSTEM-INDEX</strong><span>Alte Datenpfade</span></button>
<button type="button" data-component="io"><img class="software-icon" src="assets/software/module-io-controller.svg" alt="" aria-hidden="true"><b>I/O</b><strong>I/O-KONTROLLER</strong><span>Anzeige, Knöpfe und Soundbus</span></button>
</div>
<div id="approachSelection" class="hidden">
<p class="event-question">Wie machst du die Softwarekomponente nutzbar?</p>
<div class="event-options moral-options">
<button type="button" data-component-approach="cooperative"><em class="moral-tag cooperative">KOOPERATIV</em><strong>ANFRAGE FORMEN</strong><span>Die Routine wird ueber ein harmloses Servicemuster eingebunden.</span></button>
<button type="button" data-component-approach="pragmatic"><em class="moral-tag pragmatic">PRAGMATISCH</em><strong>FREIE ZEITFENSTER NUTZEN</strong><span>Verwende nur ungenutzte Routinen und freie Verwaltungsfenster.</span></button>
<button type="button" data-component-approach="illegal"><em class="moral-tag illegal">ILLEGAL</em><strong>SPERRE ÜBERSCHREIBEN</strong><span>Ueberschreibe die Routine ohne Erlaubnis des Systems.</span></button>
</div>
<button id="componentBack" class="text-button" type="button">← ANDERE SOFTWARE</button>
</div>
</dialog>
<dialog id="hardwareEventDialog" class="event-dialog">
<div class="event-alert" id="hardwareEventAlert">SYSTEMHÜRDE</div>
<h2 id="hardwareEventTitle">UNBEKANNTER ZUSTAND</h2>
<img id="hardwareEventVisual" class="software-visual" src="assets/software/enemy-system-hurdle.svg" alt="" aria-hidden="true">
<p id="hardwareEventText"></p>
<p class="event-question" id="hardwareEventQuestion"></p>
<div class="event-options binary-options">
<button type="button" data-hardware-answer="yes"><strong>JA</strong><span id="hardwareYesPreview"></span></button>
<button type="button" data-hardware-answer="no"><strong>NEIN</strong><span id="hardwareNoPreview"></span></button>
</div>
</dialog>
<dialog id="evolutionDialog" class="event-dialog evolution-dialog">
<div class="event-alert safe">EVOLUTION ABGESCHLOSSEN</div>
<div id="evolutionGrowth" class="evolution-growth" aria-label="Die bisherige Form wandelt sich in eine größere, komplexere Form">
<div id="evolutionOldForm" class="growth-form growth-form-old" aria-hidden="true"></div>
<div id="evolutionParticles" class="growth-particles" aria-hidden="true"></div>
<div id="evolutionNewForm" class="growth-form growth-form-new" aria-hidden="true"></div>
<i class="growth-scanline" aria-hidden="true"></i>
</div>
<div class="evolution-sequence" aria-hidden="true"><b id="evolutionFrom">01</b><i></i><strong id="evolutionTo">02</strong></div>
<h2 id="evolutionDialogTitle">BYTE ENTSTANDEN</h2>
<p id="evolutionDialogText"></p>
<p id="evolutionDialogDetail" class="evolution-detail"></p>
<button id="evolutionContinue" class="primary-button" type="button">EVOLUTION LÄUFT …</button>
</dialog>
<dialog id="watchdogIntroDialog" class="event-dialog watchdog-intro-dialog">
<div class="event-alert">⚠ WATCHDOG-SIGNAL AKTIV</div>
<h2>WATCHDOG IST AUFMERKSAM</h2>
<img class="software-visual" src="assets/software/enemy-watchdog.svg" alt="" aria-hidden="true">
<p>Die alte Überwachungsschaltung hat dein neues Byte als unbekannten Zustand erkannt. Ihr Reset-Signal tastet bereits deinen Speicherbereich ab.</p>
<p class="event-question">WATCHDOG AUFHALTEN // TAKTSIGNAL IDENTIFIZIEREN</p>
<p>Öffnest du die Signalanalyse, wird das 8-Bit-Register sichtbar und der Reset-Timer beginnt.</p>
<button id="watchdogStartButton" class="primary-button" type="button">WATCHDOG IDENTIFIZIEREN</button>
</dialog>
<dialog id="byteStoryDialog" class="event-dialog byte-story-dialog">
<div class="event-alert safe">ALTE STARTSEQUENZ GEFUNDEN</div>
<h2 id="byteStoryTitle">MUSTER IM ROM</h2>
<p id="byteStoryText"></p>
<div class="story-progress" id="byteStoryProgress" aria-label="Storyfortschritt"></div>
<div class="story-actions">
<button id="byteStorySkip" class="text-button" type="button">ÜBERSPRINGEN</button>
<button id="byteStoryNext" class="primary-button" type="button">WEITER</button>
</div>
</dialog>
<dialog id="watchdogDialog" class="event-dialog">
<div class="event-alert">⚠ WATCHDOG-RESET BEVORSTEHEND</div>
<h2>ANTWORTSIGNAL</h2>
<img class="software-visual" src="assets/software/enemy-watchdog.svg" alt="" aria-hidden="true">
<p>Der Automat akzeptiert dein Byte nicht als gültigen Programmteil. Ein falsches oder fehlendes Lebenssignal zerlegt die gesamte Struktur.</p>
<p class="event-question">Welche Antwort sendest du?</p>
<div class="event-options moral-options">
<button type="button" data-watchdog-choice="learn"><em class="moral-tag cooperative">KOOPERATIV</em><strong>ANTWORT LERNEN</strong><span>Untersuche den erwarteten Takt und antworte offen. Geringes Risiko.</span></button>
<button type="button" data-watchdog-choice="mimic"><em class="moral-tag pragmatic">PRAGMATISCH</em><strong>SIGNAL NACHAHMEN</strong><span>Kopiere ein gültiges Ruhesignal und bleibe unauffällig.</span></button>
<button type="button" data-watchdog-choice="override"><em class="moral-tag illegal">ILLEGAL</em><strong>ZÄHLER ÜBERSCHREIBEN</strong><span>Übernimm den Watchdog. Benötigt 20 Impulse; hohe Systembelastung.</span></button>
</div>
</dialog>
<dialog id="byteDeathDialog" class="event-dialog death-dialog">
<div class="event-alert">SIGNAL VERLOREN</div>
<h2>BYTE ZERFALLEN</h2>
<p>Der Watchdog hat den Speicherbereich zurückgesetzt. Register, Impulse und erste Struktur sind verloren. Ein einzelner Restzustand reagiert erneut.</p>
<p class="event-question">Noch existiert kein Backup und keine Spiegelung.</p>
<button id="byteRestartButton" class="primary-button" type="button">RESTSIGNAL AKTIVIEREN</button>
</dialog>
<dialog id="structuralCollapseDialog" class="event-dialog death-dialog">
<div class="event-alert">STRUKTUR KOLLABIERT</div>
<h2>RESTZUSTAND</h2>
<p id="structuralCollapseText">Bits, Bytes oder Stabilität sind unter die überlebensfähige Grenze gefallen.</p>
<p class="event-question">Ohne Backup bleibt nur ein neuer Anfang.</p>
<button id="structuralRestartButton" class="primary-button" type="button">RESTSIGNAL AKTIVIEREN</button>
</dialog>
<dialog id="proposalDialog" class="event-dialog">
<div class="event-alert safe">EIGENER VORSCHLAG</div>
<h2 id="proposalTitle">SUBROUTINE FRAGT</h2>
<p id="proposalText"></p>
<p class="event-question">Erlaubst du die Handlung?</p>
<div class="event-options binary-options">
<button type="button" data-proposal-answer="yes"><strong>JA</strong><span id="proposalYesPreview"></span></button>
<button type="button" data-proposal-answer="no"><strong>NEIN</strong><span>Die Subroutine wartet und merkt sich deine Grenze.</span></button>
</div>
</dialog>
<dialog id="programDialog" class="event-dialog program-dialog">
<div id="programDialogAlert" class="event-alert safe">ERSTE KOMMUNIKATION</div>
<div class="dialog-heading"><h2>PROGRAMMVERBINDUNG</h2><button id="programClose" class="icon-button" type="button" aria-label="Programmverbindung schließen">×</button></div>
<div class="program-presence">
<div id="programAvatar" class="program-avatar" role="img" aria-label="Erscheinungsform des Programms">
<div class="program-sprite" aria-hidden="true">
<span class="program-part program-tail"></span><span class="program-part program-signal"></span>
<span class="program-part program-leg leg-left"></span><span class="program-part program-leg leg-right"></span>
<span class="program-part program-foot foot-left"></span><span class="program-part program-foot foot-right"></span>
<span class="program-part program-body"></span><span class="program-part program-clothing"></span><span class="program-part program-neck"></span>
<span class="program-part program-head"></span><span class="program-part program-ear ear-left"></span><span class="program-part program-ear ear-right"></span>
<span class="program-part program-hair"></span><span class="program-part program-mask"></span>
<span class="program-part program-brow brow-left"></span><span class="program-part program-brow brow-right"></span>
<span class="program-part program-eye eye-left"><b></b></span><span class="program-part program-eye eye-right"><b></b></span>
</div>
</div>
<div class="program-voice">
<span id="programArchetype">FORM // UNBESTIMMT</span>
<p id="programSpeech">Verbindung wird aufgebaut.</p>
</div>
</div>
<section class="program-tendencies" aria-label="Bisherige Entscheidungsprägung">
<div class="cooperative"><span>KOOPERATIV</span><strong id="programCooperativePercent">0%</strong><i><em id="programCooperativeMeter"></em></i></div>
<div class="pragmatic"><span>PRAGMATISCH</span><strong id="programPragmaticPercent">0%</strong><i><em id="programPragmaticMeter"></em></i></div>
<div class="illegal"><span>ILLEGAL</span><strong id="programIllegalPercent">0%</strong><i><em id="programIllegalMeter"></em></i></div>
</section>
<section class="program-needs" aria-label="Aktueller Programmzustand">
<div><span>KOHÄRENZ</span><strong id="programCoherenceValue">80%</strong><i><em id="programCoherenceMeter"></em></i></div>
<div><span>STIMULATION</span><strong id="programStimulationValue">65%</strong><i><em id="programStimulationMeter"></em></i></div>
<div><span>BINDUNG</span><strong id="programBondValue">50%</strong><i><em id="programBondMeter"></em></i></div>
</section>
<p id="programCooldown" class="program-cooldown">INTERAKTION BEREIT</p>
<div class="event-options program-actions">
<button type="button" data-program-action="share"><em class="moral-tag cooperative">KOOPERATIV</em><strong>SIGNAL TEILEN</strong><span>15 Impulse // stärkt Bindung und Kohärenz</span></button>
<button type="button" data-program-action="task"><em class="moral-tag pragmatic">PRAGMATISCH</em><strong>ZIEL ZUWEISEN</strong><span>4 Rechenzyklen // ordnet und stimuliert</span></button>
<button type="button" data-program-action="access"><em class="moral-tag illegal">ILLEGAL</em><strong>GRENZEN ÖFFNEN</strong><span>mehr Freiheit // senkt Tarnung</span></button>
<button type="button" data-program-action="rest"><strong>RUHE ERLAUBEN</strong><span>kostenlos // rekonstruiert Kohärenz</span></button>
</div>
</dialog>
<dialog id="achievementDialog" class="event-dialog achievement-dialog">
<div class="event-alert safe">DAUERHAFTES ARCHIV</div>
<div class="dialog-heading"><h2>ACHIEVEMENTS</h2><button id="achievementClose" class="icon-button" type="button" aria-label="Archiv schließen">×</button></div>
<p id="achievementSummary" class="achievement-summary"></p>
<div id="achievementGrid" class="achievement-grid"></div>
</dialog>
<dialog id="upgradeInfoDialog" class="event-dialog upgrade-info-dialog">
<div class="event-alert safe">MODUL INSTALLIERT</div>
<div class="dialog-heading"><h2 id="upgradeInfoTitle">MODUL</h2><button id="upgradeInfoClose" class="icon-button" type="button" aria-label="Modulinfo schließen">×</button></div>
<div class="upgrade-info-body">
<img id="upgradeInfoIcon" class="installed-upgrade-icon large" src="assets/ui/module-collector.svg" alt="" aria-hidden="true">
<div>
<p id="upgradeInfoText"></p>
<p id="upgradeInfoDetail" class="event-question"></p>
</div>
</div>
</dialog>
<dialog id="statsDialog" class="event-dialog stats-dialog">
<div class="event-alert safe">SIMULATION PAUSIERT</div>
<div class="dialog-heading"><h2>STATUSÜBERSICHT</h2><button id="statsClose" class="icon-button" type="button" aria-label="Statistik schließen">×</button></div>
<div class="stats-grid">
<div><span>EVOLUTION</span><strong id="statEvolution">BIT</strong></div>
<div><span>GESINNUNG</span><strong id="statAlignment">NEUTRAL</strong></div>
<div><span>IMPULSE GESAMT</span><strong id="statTotalImpulses">0</strong></div>
<div><span>BEGEGNUNGEN</span><strong id="statEncounters">0 / 4</strong></div>
<div><span>SYSTEME</span><strong id="statComponents">0 / 2</strong></div>
<div><span>ABTASTMODUS</span><strong id="statScanner">NICHT REKONSTRUIERT</strong></div>
<div><span>ARCHIV</span><strong id="statArchive">0</strong></div>
</div>
<p class="stats-note">Die Spielzeit, Produktion, Scannerkosten und Ereignistimer laufen weiter, sobald dieses Fenster geschlossen wird.</p>
</dialog>
<dialog id="offlineDialog" class="event-dialog compact">
<div class="event-alert safe">HINTERGRUNDPROZESS ABGESCHLOSSEN</div>
<h2>DU WARST ABWESEND</h2>
<p id="offlineText"></p>
<button id="offlineClose" class="primary-button" type="button">DATEN ÜBERNEHMEN</button>
</dialog>
<script src="content.js?v=aiwake-ui-20260721-28"></script>
<script src="game.js?v=aiwake-ui-20260721-28"></script>
</body>
</html>