﻿@import url("https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Cinzel:wght@400;700;900&family=Rajdhani:wght@300;400;600;700&display=swap");:root{--doom-black:       #080608;--doom-dark:        #0e0b0e;--doom-surface:     #141018;--doom-panel:       #1a1520;--doom-border:      #2a1f30;--doom-border-glow: #3d1a1a;--doom-red:         #c0392b;--doom-red-bright:  #e74c3c;--doom-red-glow:    rgba(192, 57, 43, 0.35);--doom-ember:       #e67e22;--doom-amber:       #c8a050;--doom-amber-dim:   #8a6a30;--doom-text:        #d4c5a9;--doom-text-dim:    #8a7a6a;--doom-text-muted:  #5a4a3a;--doom-mono:        #a8c0a0;--doom-mono-dim:    #5a6a58;--doom-font-display: 'Cinzel', serif;--doom-font-ui:      'Rajdhani', sans-serif;--doom-font-mono:    'Share Tech Mono', monospace;--doom-glow-red: 0 0 20px rgba(192, 57, 43, 0.4), 0 0 60px rgba(192, 57, 43, 0.15);--doom-glow-amber: 0 0 12px rgba(200, 160, 80, 0.4)}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{background-color:var(--doom-black);color:var(--doom-text);font-family:var(--doom-font-ui);font-size:16px;line-height:1.6;min-height:100vh;overflow-x:hidden}body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.025'/%3E%3C/svg%3E");pointer-events:none;z-index:9999}a{color:var(--doom-amber);text-decoration:none;transition:color 0.2s}a:hover{color:var(--doom-red-bright);text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:var(--doom-font-display);font-weight:700;letter-spacing:0.05em;color:var(--doom-text)}code,pre,.font-mono{font-family:var(--doom-font-mono)}.doom-scanlines{position:fixed;inset:0;background:repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.03) 2px, rgba(0,0,0,0.03) 4px);pointer-events:none;z-index:9998}.navbar{background:linear-gradient(180deg, rgba(8,6,8,0.98) 0%, rgba(14,11,14,0.95) 100%);border-bottom:1px solid var(--doom-border-glow);padding:0;box-shadow:0 2px 20px rgba(0,0,0,0.8),0 1px 0 var(--doom-red) inset;position:sticky;top:0;z-index:1000;backdrop-filter:blur(12px)}.navbar .navbar-brand{font-family:var(--doom-font-display);font-size:1.2rem;font-weight:900;letter-spacing:3px;color:var(--doom-red) !important;text-shadow:var(--doom-glow-red);padding:12px 20px;display:flex;align-items:center;gap:10px;text-transform:uppercase}.navbar .navbar-brand .brand-skull{font-size:1.4rem;animation:skull-flicker 4s infinite}.navbar .navbar-nav .nav-link{font-family:var(--doom-font-mono);font-size:0.78rem;letter-spacing:2px;text-transform:uppercase;color:var(--doom-text-dim) !important;padding:18px 16px;transition:all 0.2s;border-bottom:2px solid transparent}.navbar .navbar-nav .nav-link:hover{color:var(--doom-amber) !important;border-bottom-color:var(--doom-amber)}.navbar .navbar-nav .nav-link.active{color:var(--doom-red) !important;border-bottom-color:var(--doom-red)}.navbar .navbar-toggler{border-color:var(--doom-border-glow);color:var(--doom-red)}@keyframes skull-flicker{0%,95%,100%{opacity:1}96%{opacity:0.3}97%{opacity:1}98%{opacity:0.5}99%{opacity:1}}.btn{font-family:var(--doom-font-mono);font-size:0.78rem;letter-spacing:2px;text-transform:uppercase;border-radius:2px;transition:all 0.2s;position:relative;overflow:hidden}.btn::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg, transparent, rgba(255,255,255,0.06), transparent);transition:left 0.4s}.btn:hover::before{left:100%}.btn-primary{background:var(--doom-red);border-color:var(--doom-red);color:#fff;box-shadow:0 0 0 transparent}.btn-primary:hover{background:var(--doom-red-bright);border-color:var(--doom-red-bright);box-shadow:var(--doom-glow-red);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-outline-secondary{color:var(--doom-text-dim);border-color:var(--doom-border);background:transparent}.btn-outline-secondary:hover{color:var(--doom-amber);border-color:var(--doom-amber);background:rgba(200,160,80,0.08)}.form-control,.form-select{background:var(--doom-surface);border:1px solid var(--doom-border);color:var(--doom-text);border-radius:2px;font-family:var(--doom-font-mono);font-size:0.88rem;transition:all 0.2s;padding:10px 14px}.form-control:focus,.form-select:focus{background:var(--doom-panel);border-color:var(--doom-red);box-shadow:0 0 0 3px rgba(192,57,43,0.15),var(--doom-glow-red);color:var(--doom-text);outline:none}.form-control::placeholder,.form-select::placeholder{color:var(--doom-text-muted)}.form-label{font-family:var(--doom-font-mono);font-size:0.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--doom-text-dim);margin-bottom:6px}.card{background:var(--doom-panel);border:1px solid var(--doom-border);border-radius:3px;box-shadow:0 4px 20px rgba(0,0,0,0.5);overflow:hidden}.card .card-header{background:var(--doom-surface);border-bottom:1px solid var(--doom-border-glow);font-family:var(--doom-font-mono);font-size:0.75rem;letter-spacing:2px;text-transform:uppercase;color:var(--doom-text-dim);padding:12px 20px}.card .card-body{padding:24px}.challenge-card{background:var(--doom-panel);border:1px solid var(--doom-border);border-radius:3px;padding:0;cursor:pointer;transition:all 0.25s;position:relative;overflow:hidden}.challenge-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--doom-border-glow);transition:background 0.25s}.challenge-card:hover{border-color:var(--doom-red);transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,0,0,0.6),var(--doom-glow-red)}.challenge-card:hover::before{background:var(--doom-red);box-shadow:var(--doom-glow-red)}.challenge-card.solved{border-color:var(--doom-mono-dim)}.challenge-card.solved::before{background:var(--doom-mono-dim)}.challenge-card.solved .challenge-value{color:var(--doom-mono-dim)}.challenge-card.solved::after{content:'✓ GELÖST';position:absolute;top:8px;right:10px;font-family:var(--doom-font-mono);font-size:0.6rem;letter-spacing:1px;color:var(--doom-mono-dim)}.challenge-card .challenge-inner{padding:20px;display:flex;flex-direction:column;gap:8px;min-height:120px}.challenge-card .challenge-category{font-family:var(--doom-font-mono);font-size:0.62rem;letter-spacing:3px;text-transform:uppercase;color:var(--doom-text-muted)}.challenge-card .challenge-name{font-family:var(--doom-font-display);font-size:0.95rem;font-weight:700;color:var(--doom-text);line-height:1.3}.challenge-card .challenge-value{font-family:var(--doom-font-mono);font-size:1.3rem;font-weight:700;color:var(--doom-amber);margin-top:auto;text-shadow:var(--doom-glow-amber)}.challenge-card .challenge-solves{font-family:var(--doom-font-mono);font-size:0.65rem;color:var(--doom-text-muted);letter-spacing:1px}.challenge-category-label.encoding{color:#4a9eff}.challenge-category-label.web{color:#50c878}.challenge-category-label.stego{color:#da70d6}.challenge-category-label.osint{color:#ffd700}.challenge-category-label.network{color:#00ced1}.challenge-category-label.esoteric{color:#ff69b4}.challenge-category-label.meta{color:var(--doom-red-bright)}.challenge-category-label.warmup{color:var(--doom-text-dim)}.modal-content{background:var(--doom-panel);border:1px solid var(--doom-border-glow);border-radius:3px;box-shadow:0 20px 80px rgba(0,0,0,0.9),var(--doom-glow-red)}.modal-content .modal-header{background:var(--doom-surface);border-bottom:1px solid var(--doom-border-glow);padding:20px 24px}.modal-content .modal-header .modal-title{font-family:var(--doom-font-display);font-size:1.2rem;letter-spacing:2px;color:var(--doom-text)}.modal-content .modal-header .btn-close{filter:invert(1) brightness(0.6)}.modal-content .modal-header .btn-close:hover{filter:invert(1)}.modal-content .modal-body{padding:28px 24px;font-family:var(--doom-font-ui);color:var(--doom-text);line-height:1.7}.modal-content .modal-footer{border-top:1px solid var(--doom-border);padding:16px 24px;background:var(--doom-surface)}.modal-backdrop{background:rgba(0,0,0,0.85)}.score-table{width:100%;border-collapse:separate;border-spacing:0 4px}.score-table thead tr{background:transparent}.score-table thead tr th{font-family:var(--doom-font-mono);font-size:0.65rem;letter-spacing:3px;text-transform:uppercase;color:var(--doom-text-muted);padding:8px 16px;border:none}.score-table tbody tr{background:var(--doom-panel);border:1px solid var(--doom-border);transition:all 0.2s;position:relative}.score-table tbody tr:hover{background:rgba(192,57,43,0.06);border-color:var(--doom-red)}.score-table tbody tr.rank-1{background:rgba(200,160,80,0.08);border-color:var(--doom-amber-dim)}.score-table tbody tr.rank-1 .rank-cell{color:var(--doom-amber);text-shadow:var(--doom-glow-amber)}.score-table tbody tr.rank-2 .rank-cell{color:#c0c0c0}.score-table tbody tr.rank-3 .rank-cell{color:#cd7f32}.score-table tbody tr td{padding:14px 16px;border:none;font-family:var(--doom-font-ui);color:var(--doom-text)}.score-table tbody tr td:first-child{border-radius:2px 0 0 2px}.score-table tbody tr td:last-child{border-radius:0 2px 2px 0}.rank-cell{font-family:var(--doom-font-mono);font-size:1rem;font-weight:700;color:var(--doom-text-muted);width:50px;text-align:center}.score-cell{font-family:var(--doom-font-mono);font-weight:700;color:var(--doom-amber);font-size:1rem}.team-name-cell a{color:var(--doom-text);font-weight:600;letter-spacing:0.5px}.team-name-cell a:hover{color:var(--doom-red-bright)}.doom-page-header{background:linear-gradient(180deg, var(--doom-dark) 0%, var(--doom-black) 100%);border-bottom:1px solid var(--doom-border);padding:40px 0 32px;margin-bottom:32px;position:relative;overflow:hidden}.doom-page-header::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg, transparent, var(--doom-red), transparent);animation:scan-line 3s ease-in-out infinite}.doom-page-header .doom-page-title{font-family:var(--doom-font-display);font-size:clamp(1.5rem, 3vw, 2.4rem);font-weight:900;letter-spacing:4px;text-transform:uppercase;color:var(--doom-text);margin:0}.doom-page-header .doom-page-title span{color:var(--doom-red);text-shadow:var(--doom-glow-red)}.doom-page-header .doom-page-subtitle{font-family:var(--doom-font-mono);font-size:0.75rem;letter-spacing:3px;color:var(--doom-text-muted);margin-top:6px}@keyframes scan-line{0%{transform:scaleX(0);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}51%{transform:scaleX(1);transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}.alert{border-radius:2px;border:1px solid;font-family:var(--doom-font-mono);font-size:0.82rem;letter-spacing:0.5px;padding:12px 18px}.alert.alert-success{background:rgba(46,204,113,0.08);border-color:rgba(46,204,113,0.3);color:#2ecc71}.alert.alert-danger{background:rgba(192,57,43,0.1);border-color:rgba(192,57,43,0.4);color:var(--doom-red-bright)}.alert.alert-warning{background:rgba(200,160,80,0.08);border-color:rgba(200,160,80,0.3);color:var(--doom-amber)}.alert.alert-info{background:rgba(74,158,255,0.08);border-color:rgba(74,158,255,0.3);color:#4a9eff}.badge{font-family:var(--doom-font-mono);font-size:0.6rem;letter-spacing:1.5px;text-transform:uppercase;border-radius:1px;padding:4px 8px}.badge-doom-red{background:rgba(192,57,43,0.2);color:var(--doom-red-bright);border:1px solid rgba(192,57,43,0.4)}.badge-doom-amber{background:rgba(200,160,80,0.15);color:var(--doom-amber);border:1px solid rgba(200,160,80,0.3)}.badge-doom-mono{background:rgba(168,192,160,0.08);color:var(--doom-mono);border:1px solid rgba(168,192,160,0.2)}.footer{background:var(--doom-dark);border-top:1px solid var(--doom-border);padding:20px 0;margin-top:60px;text-align:center;font-family:var(--doom-font-mono);font-size:0.65rem;letter-spacing:2px;color:var(--doom-text-muted)}.footer a{color:var(--doom-text-muted)}.footer a:hover{color:var(--doom-red)}.text-doom-red{color:var(--doom-red) !important}.text-doom-amber{color:var(--doom-amber) !important}.text-doom-mono{color:var(--doom-mono) !important}.text-doom-dim{color:var(--doom-text-dim) !important}.text-doom-muted{color:var(--doom-text-muted) !important}.doom-divider{border:none;border-top:1px solid var(--doom-border);margin:24px 0}.doom-terminal-label{font-family:var(--doom-font-mono);font-size:0.65rem;letter-spacing:3px;text-transform:uppercase;color:var(--doom-text-muted)}.doom-terminal-label::before{content:'// ';color:var(--doom-text-muted)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--doom-dark)}::-webkit-scrollbar-thumb{background:var(--doom-border-glow);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--doom-red)}::selection{background:rgba(192,57,43,0.35);color:var(--doom-text)}

/* ── Doom Auth Pages ────────────────────────────────────────────────── */
.doom-auth-wrapper {
  min-height: calc(100vh - 60px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 20px 40px;
  background: linear-gradient(160deg, #0d1a0e 0%, #0e0b0e 50%, #0a1008 100%);
}
.doom-auth-card {
  position: relative;
  width: 100%;
  max-width: 440px;
  background: rgba(14,11,14,0.96);
  border: 1px solid var(--doom-border-glow);
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(192,57,43,0.1), 0 20px 60px rgba(0,0,0,0.8), var(--doom-glow-red);
  overflow: hidden;
  animation: card-rise 0.5s ease-out;
}
@keyframes card-rise { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
.doom-auth-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--doom-red), transparent);
}
.doom-auth-header {
  text-align: center;
  padding: 32px 28px 20px;
  border-bottom: 1px solid var(--doom-border);
}
.doom-auth-skull {
  font-size: 2rem;
  display: block;
  margin-bottom: 8px;
  animation: skull-flicker 4s infinite;
}
.doom-auth-title {
  font-family: var(--doom-font-display);
  font-size: 1.4rem;
  font-weight: 900;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--doom-text);
  margin: 0 0 4px;
}
.doom-auth-sub {
  font-family: var(--doom-font-mono);
  font-size: 0.62rem;
  letter-spacing: 3px;
  color: var(--doom-red);
  margin: 0;
}
.doom-auth-body {
  padding: 24px 28px 28px;
}

/* ── Navbar fixed-top padding fix ───────────────────────────────────── */
main[role="main"] { padding-top: 56px; }
