:root {
            --accent: #00e5ff;
            --glitch-cyan: #00e5ff;
            --glitch-magenta: #ff00c1;
            --text: #ffffff;
            --bg-base: #040814;
            --terminal-bg: rgba(4, 8, 20, 0.95);
        }

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

        /* Tilpasset Scrollbar */
        ::-webkit-scrollbar {
            width: 5px;
            height: 5px;
        }

        ::-webkit-scrollbar-track {
            background: rgba(0, 0, 0, 0.2);
        }

        ::-webkit-scrollbar-thumb {
            background: var(--accent);
            border-radius: 10px;
            box-shadow: 0 0 10px var(--accent);
        }

        body,
        html {
            width: 100%;
            height: 100dvh;
            min-height: 100dvh;
            font-family: 'Inter', sans-serif;
            color: var(--text);
            overflow: hidden;
            background-color: var(--bg-base);
            display: flex;
            justify-content: center;
            align-items: center;
        }

        /* Ambient Mesh Bakgrunn - VARME BÅLTONER */
        .mesh-wrapper {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;
            overflow: hidden;
            background: var(--bg-base);
        }

        .mesh-ball {
            position: absolute;
            border-radius: 50%;
            filter: blur(120px);
            opacity: 0.55;
            mix-blend-mode: screen;
            animation: float 22s infinite ease-in-out;
        }

        .ball-1 {
            width: 85vw;
            height: 85vw;
            background: rgba(255, 69, 0, 0.18);
            top: -25%;
            left: -10%;
        }

        .ball-2 {
            width: 75vw;
            height: 75vw;
            background: rgba(255, 20, 147, 0.12);
            bottom: -15%;
            right: -5%;
            animation-delay: -5s;
        }

        .ball-3 {
            width: 60vw;
            height: 60vw;
            background: rgba(255, 140, 0, 0.1);
            top: 30%;
            left: 25%;
            animation-duration: 28s;
        }

        @keyframes float {

            0%,
            100% {
                transform: translate(0, 0) scale(1);
            }

            33% {
                transform: translate(6vw, 9vh) scale(1.08);
            }

            66% {
                transform: translate(-4vw, 13vh) scale(0.92);
            }
        }

        .overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(4, 8, 20, 0.35);
            backdrop-filter: blur(12px);
            z-index: 1;
        }

        #bg-canvas {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 2;
            opacity: 0.8;
            pointer-events: none;
        }

        .container {
            position: relative;
            text-align: center;
            z-index: 10;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            height: 100dvh;
            width: 100%;
            pointer-events: none;
        }

        .logo-container {
            pointer-events: auto;
        }

        #glitch-text {
            font-family: 'Space Grotesk', sans-serif;
            font-size: clamp(3.5rem, 18vw, 10rem);
            font-weight: 700;
            letter-spacing: -4px;
            color: var(--text);
            text-transform: lowercase;
            line-height: 1;
        }

        .char {
            display: inline-block;
            position: relative;
            opacity: 0;
            transform: translateY(20px);
            animation: charIn 0.8s forwards;
        }

        @keyframes charIn {
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .char.glitch-active::before,
        .char.glitch-active::after {
            content: attr(data-char);
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            opacity: 0.8;
            z-index: -1;
        }

        .char.glitch-active::before {
            color: var(--glitch-cyan);
            animation: glitchMove 0.15s infinite;
            clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
            transform: translate(-6px, 0);
        }

        .char.glitch-active::after {
            color: var(--glitch-magenta);
            animation: glitchMove 0.15s infinite reverse;
            clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%);
            transform: translate(6px, 0);
        }

        @keyframes glitchMove {
            0% {
                transform: translate(-4px, 1px);
            }

            50% {
                transform: translate(4px, -1px);
            }

            100% {
                transform: translate(-4px, 1px);
            }
        }

        .content-group {
            opacity: 0;
            animation: fadeInUp 1s ease-out forwards;
            animation-delay: 1.8s;
            pointer-events: auto;
        }

        @keyframes fadeInUp {
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .subtitle-wrapper {
            margin-bottom: 45px;
            min-height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .subtitle {
            font-family: 'Space Grotesk', sans-serif;
            font-size: clamp(1rem, 4vw, 1.6rem);
            color: var(--accent);
            opacity: 0;
            transition: 0.8s;
            padding: 0 20px;
        }

        .subtitle.visible {
            opacity: 0.7;
        }

        /* Modaler */
        .terminal-base {
            position: fixed;
            left: 50%;
            transform: translateX(-50%);
            background: var(--terminal-bg);
            border: 1px solid var(--accent);
            z-index: 99;
            transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
            padding: 20px;
            font-family: 'JetBrains Mono', monospace;
            box-shadow: 0 0 40px rgba(0, 229, 255, 0.15);
            backdrop-filter: blur(12px);
        }

        #terminal-toggle {
            position: fixed;
            bottom: 25px;
            right: 25px;
            z-index: 100;
            background: rgba(0, 229, 255, 0.05);
            border: 1px solid var(--accent);
            color: var(--accent);
            padding: 12px 24px;
            font-family: 'JetBrains Mono', monospace;
            cursor: pointer;
            transition: 0.3s;
            pointer-events: auto;
            font-size: 0.75rem;
            letter-spacing: 2px;
        }

        #terminal-toggle:hover {
            background: var(--accent);
            color: var(--bg-base);
            box-shadow: 0 0 20px var(--accent);
        }

        #terminal-window {
            bottom: -500px;
            width: 94%;
            max-width: 800px;
            height: 380px;
            display: flex;
            flex-direction: column;
        }

        #terminal-window.open {
            bottom: 90px;
        }

        #contact-modal {
            top: -900px;
            width: 94%;
            max-width: 500px;
        }

        #contact-modal.open {
            top: 50%;
            transform: translate(-50%, -50%);
        }

        .terminal-header {
            display: flex;
            justify-content: space-between;
            border-bottom: 1px solid rgba(0, 229, 255, 0.2);
            padding-bottom: 10px;
            margin-bottom: 15px;
            font-size: 0.7rem;
            color: var(--accent);
            letter-spacing: 1px;
        }

        #terminal-output {
            flex-grow: 1;
            overflow-y: auto;
            color: var(--accent);
            font-size: 0.82rem;
            line-height: 1.5;
            padding-right: 8px;
        }

        .input-line {
            display: flex;
            gap: 10px;
            align-items: center;
            margin-top: 10px;
            color: var(--accent);
            border-top: 1px solid rgba(0, 229, 255, 0.1);
            padding-top: 10px;
        }

        #terminal-input {
            background: transparent;
            border: none;
            color: #fff;
            outline: none;
            flex-grow: 1;
            font-family: inherit;
            font-size: 0.82rem;
        }

        /* NY RYDDIG FORM STYLING */
        .contact-form {
            display: flex;
            flex-direction: column;
            gap: 15px;
            padding: 5px 0;
        }

        .contact-form input,
        .contact-form textarea {
            background: rgba(0, 229, 255, 0.05);
            border: 1px solid rgba(0, 229, 255, 0.2);
            padding: 18px;
            color: #fff;
            font-family: 'JetBrains Mono', monospace;
            outline: none;
            transition: 0.3s;
            width: 100%;
            font-size: 0.95rem;
            border-radius: 4px;
        }

        .contact-form input:focus,
        .contact-form textarea:focus {
            border-color: var(--accent);
            background: rgba(0, 229, 255, 0.1);
            box-shadow: 0 0 15px rgba(0, 229, 255, 0.1);
        }

        .contact-form input::placeholder,
        .contact-form textarea::placeholder {
            color: rgba(0, 229, 255, 0.4);
            text-transform: uppercase;
            letter-spacing: 2px;
            font-size: 0.75rem;
        }

        .submit-btn {
            background: transparent;
            border: 1px solid var(--accent);
            color: var(--accent);
            padding: 20px;
            cursor: pointer;
            text-transform: uppercase;
            font-family: 'JetBrains Mono', monospace;
            font-weight: 700;
            letter-spacing: 4px;
            transition: 0.4s;
            margin-top: 10px;
        }

        .submit-btn:hover {
            background: var(--accent);
            color: var(--bg-base);
            box-shadow: 0 0 25px var(--accent);
        }

        .submit-btn:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }

        .links {
            display: flex;
            gap: 45px;
            justify-content: center;
        }

        .links a {
            color: var(--text);
            font-size: 1.7rem;
            opacity: 0.5;
            transition: 0.3s;
            pointer-events: auto;
        }

        .links a:hover {
            color: var(--accent);
            opacity: 1;
            transform: translateY(-5px);
        }

        .close-btn {
            cursor: pointer;
            transition: 0.3s;
            padding: 5px;
        }

        .close-btn:hover {
            color: var(--glitch-magenta);
        }