diff --git a/frontend/public/images/1-box.png b/frontend/public/images/1-box.png
new file mode 100644
index 0000000..b343dbd
Binary files /dev/null and b/frontend/public/images/1-box.png differ
diff --git a/frontend/public/images/2-box.png b/frontend/public/images/2-box.png
new file mode 100644
index 0000000..0ec4438
Binary files /dev/null and b/frontend/public/images/2-box.png differ
diff --git a/frontend/public/images/3-box.png b/frontend/public/images/3-box.png
new file mode 100644
index 0000000..87a8401
Binary files /dev/null and b/frontend/public/images/3-box.png differ
diff --git a/frontend/src/app/app.routes.ts b/frontend/src/app/app.routes.ts
index bba628f..169e387 100644
--- a/frontend/src/app/app.routes.ts
+++ b/frontend/src/app/app.routes.ts
@@ -26,4 +26,9 @@ export const routes: Routes = [
loadComponent: () => import('./feature/lootboxes/lootbox-selection/lootbox-selection.component'),
canActivate: [authGuard],
},
+ {
+ path: 'game/lootboxes/open/:id',
+ loadComponent: () => import('./feature/lootboxes/lootbox-opening/lootbox-opening.component'),
+ canActivate: [authGuard],
+ },
];
diff --git a/frontend/src/app/feature/home/home.component.ts b/frontend/src/app/feature/home/home.component.ts
index eb12454..7320cd0 100644
--- a/frontend/src/app/feature/home/home.component.ts
+++ b/frontend/src/app/feature/home/home.component.ts
@@ -68,7 +68,7 @@ export default class HomeComponent implements OnInit {
id: '6',
name: 'Lootboxen',
image: '/lootbox.webp',
- route: '/game/lootbox',
+ route: '/game/lootboxes',
},
];
diff --git a/frontend/src/app/feature/lootboxes/README.md b/frontend/src/app/feature/lootboxes/README.md
deleted file mode 100644
index 2aecc6b..0000000
--- a/frontend/src/app/feature/lootboxes/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# Lootboxes Feature
-
-Diese Funktion ermöglicht es Spielern, Lootboxen zu kaufen und zu öffnen.
-
-## Komponenten
-
-- **LootboxSelection**: Zeigt alle verfügbaren Lootboxen an und ermöglicht Filterung nach Kategorien.
-- (Weitere Komponenten werden implementiert)
-
-## Implementierung
-
-### Lootbox-Kategorien
-- Gewöhnlich (Common): Niedrigere Preise, höhere Gewinnchance
-- Selten (Rare): Mittlere Preise, mittlere Gewinnchance
-- Legendär (Legendary): Hohe Preise, niedrige Gewinnchance
-
-### Routen
-- `/lootboxes`: Hauptseite mit Lootbox-Auswahl
-- `/lootboxes/open/:id`: Öffnen einer bestimmten Lootbox
-- `/lootboxes/fairness`: Informationen zur Fairness-Garantie
-
-## Hinweise zur Implementierung
-
-1. **Bilder**: Stelle sicher, dass die korrekten Bilder unter `/assets/images/lootboxes/` vorhanden sind.
-2. **Styling**: Das Styling ist an Counter-Strike-Lootboxen angelehnt.
-3. **Authentifizierung**: Alle Lootbox-Routen sind durch den Auth-Guard geschützt.
-
-## Lootbox-Objekt-Interface
-
-```typescript
-interface Lootbox {
- id: string;
- name: string;
- category: 'common' | 'rare' | 'legendary';
- price: number;
- image: string;
- chance: number;
- maxPrize: number;
-}
-```
\ No newline at end of file
diff --git a/frontend/src/app/feature/lootboxes/lootbox-opening/lootbox-opening.component.css b/frontend/src/app/feature/lootboxes/lootbox-opening/lootbox-opening.component.css
new file mode 100644
index 0000000..ef5b2b7
--- /dev/null
+++ b/frontend/src/app/feature/lootboxes/lootbox-opening/lootbox-opening.component.css
@@ -0,0 +1,98 @@
+body {
+ background: linear-gradient(to bottom, #181c2a, #232c43);
+}
+
+.case-strip-outer {
+ position: relative;
+ width: 900px;
+ max-width: 100vw;
+ height: 120px;
+ margin: 0 auto;
+ overflow: hidden;
+ background: #232c43;
+ border-radius: 16px;
+ border: 2px solid #2d3748;
+ box-shadow: 0 4px 32px 0 #000a;
+}
+
+.case-strip-inner {
+ display: flex;
+ align-items: center;
+ height: 100%;
+ will-change: transform;
+}
+
+.case-strip-reward {
+ width: 120px;
+ height: 100px;
+ margin: 0 6px;
+ background: #1a2233;
+ border-radius: 10px;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ font-size: 1.25rem;
+ font-weight: 600;
+ box-shadow: 0 2px 8px rgba(0,0,0,0.18);
+ border: 2px solid transparent;
+ transition: border-color 0.2s, color 0.2s;
+}
+
+.text-yellow-400 {
+ border-color: #facc15;
+ color: #facc15;
+}
+.text-purple-400 {
+ border-color: #a78bfa;
+ color: #a78bfa;
+}
+.text-blue-400 {
+ border-color: #60a5fa;
+ color: #60a5fa;
+}
+
+.case-strip-marker {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ transform: translateX(-50%);
+ width: 6px;
+ height: 100%;
+ background: linear-gradient(to bottom, #facc15 60%, #fff0 100%);
+ z-index: 2;
+ border-radius: 3px;
+ box-shadow: 0 0 16px #facc15, 0 0 2px #fff;
+ pointer-events: none;
+}
+
+.open-btn {
+ background: linear-gradient(90deg, #facc15 0%, #a78bfa 100%);
+ color: #232c43;
+ font-size: 1.5rem;
+ font-weight: bold;
+ padding: 0.75rem 2.5rem;
+ border-radius: 999px;
+ border: none;
+ box-shadow: 0 2px 12px #0005;
+ transition: background 0.2s, color 0.2s, transform 0.1s;
+ cursor: pointer;
+}
+.open-btn:hover {
+ background: linear-gradient(90deg, #ffe066 0%, #c4b5fd 100%);
+ color: #181c2a;
+ transform: translateY(-2px) scale(1.04);
+}
+
+.loader {
+ border: 4px solid rgba(255, 255, 255, 0.2);
+ border-radius: 50%;
+ border-top: 4px solid #facc15;
+ width: 40px;
+ height: 40px;
+ animation: spin 1s linear infinite;
+}
+@keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
\ No newline at end of file
diff --git a/frontend/src/app/feature/lootboxes/lootbox-opening/lootbox-opening.component.html b/frontend/src/app/feature/lootboxes/lootbox-opening/lootbox-opening.component.html
new file mode 100644
index 0000000..c72a20a
--- /dev/null
+++ b/frontend/src/app/feature/lootboxes/lootbox-opening/lootbox-opening.component.html
@@ -0,0 +1,50 @@
+
Alle unsere Lootboxen unterliegen einem verifizierbaren Fairness-System. - Die Gewinnchancen sind transparent und werden von unabhängigen Prüfern bestätigt.
- Mehr zur Fairness-Garantie +Fairness garantiert - Alle Ergebnisse werden transparent berechnet.