:root {
            /* Light Mode */
            --bg-color-light:var(--c-text);
            --card-bg-light: rgba(255, 255, 255, 0.9);
            --card-border-light: rgba(0, 0, 0, 0.1);
            --text-main-light:var(--c-bg2);
            --text-muted-light:var(--c-muted);
            --code-bg-light: #e9ecef;

            /* Dark Mode */
            --bg-color-dark: #050505;
            --card-bg-dark: rgba(255, 255, 255, 0.05);
            --card-border-dark: rgba(255, 255, 255, 0.2);
            --text-main-dark:var(--c-text);
            --text-muted-dark:var(--c-muted);
            --code-bg-dark: rgba(0, 0, 0, 0.3);

            /* Accent Colors */
            --accent-cyan:var(--c-cyan);
            --accent-amber:var(--c-warn);

            /* Active Theme */
            --bg-color: var(--bg-color-dark);
            --card-bg: var(--card-bg-dark);
            --card-border: var(--card-border-dark);
            --text-main: var(--text-main-dark);
            --text-muted: var(--text-muted-dark);
            --code-bg: var(--code-bg-dark);
        }

        html.light-mode {
            --bg-color: var(--bg-color-light);
            --card-bg: var(--card-bg-light);
            --card-border: var(--card-border-light);
            --text-main: var(--text-main-light);
            --text-muted: var(--text-muted-light);
            --code-bg: var(--code-bg-light);
        }

        * {
            transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
        }

        body {
            margin: 0;
            padding: 0;
            background: var(--bg-color);
            color: var(--text-main);
            font-family: 'Outfit', sans-serif;
            min-height: 100vh;
            overflow-x: hidden;
        }

        /* Theme Toggle */
        .theme-toggle {
            position: fixed;
            top: 30px;
            right: 30px;
            z-index: 1000;
            background: var(--card-bg);
            border: 2px solid var(--card-border);
            border-radius: 50px;
            padding: 12px 20px;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 0.9rem;
            color: var(--text-main);
            backdrop-filter: blur(10px);
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
            transition: all 0.3s ease;
        }

        .theme-toggle:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 25px rgba(0, 0, 0, 0.3);
            border-color: var(--accent-cyan);
        }

        .theme-icon {
            font-size: 1.2rem;
            transition: transform 0.3s ease;
        }

        .theme-toggle:hover .theme-icon {
            transform: rotate(180deg);
        }

        /* Background Glows */
        .glow {
            position: fixed;
            width: 600px;
            height: 600px;
            border-radius: 50%;
            filter: blur(80px);
            opacity: 0.1;
            z-index: -1;
            pointer-events: none;
            animation: float 10s ease-in-out infinite;
        }

        .glow-1 {
            top: -200px;
            left: -100px;
            background: var(--accent-cyan);
        }

        .glow-2 {
            bottom: -200px;
            right: -100px;
            background: var(--accent-amber);
            animation-delay: 5s;
        }

        @keyframes float {

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

            50% {
                transform: translate(30px, 30px) scale(1.1);
            }
        }

        /* Header */
        header {
            padding: 60px 20px 40px;
            text-align: center;
            animation: fadeIn 0.8s ease;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
            }

            to {
                opacity: 1;
            }
        }

        .home-link {
            display: flex;
            align-items: center;
            gap: 6px;
            color: var(--text-muted);
            text-decoration: none;
            font-size: 0.85rem;
            font-weight: 400;
            transition: color 0.2s;
        }
        .home-link:hover { color: var(--accent-cyan); }

        .home-link span {
            color: var(--accent-cyan);
        }

        /* Main Content */
        main {
            max-width: 1000px;
            margin: 0 auto;
            padding: 0 40px 60px;
        }

        .section-card {
            background: var(--card-bg);
            border: 1px solid var(--card-border);
            border-radius: 20px;
            padding: 40px;
            margin-bottom: 30px;
            backdrop-filter: blur(10px);
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
            animation: cardFadeIn 0.6s ease both;
        }

        .section-card:nth-child(1) {
            animation-delay: 0.2s;
        }

        .section-card:nth-child(2) {
            animation-delay: 0.4s;
        }

        .section-card:nth-child(3) {
            animation-delay: 0.6s;
        }

        .section-card:nth-child(4) {
            animation-delay: 0.8s;
        }

        @keyframes cardFadeIn {
            from {
                opacity: 0;
                transform: translateY(30px);
            }

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

        h2 {
            color: var(--accent-cyan);
            margin-top: 0;
            font-size: 1.8rem;
        }

        h3 {
            color: var(--accent-amber);
            margin-top: 25px;
            font-size: 1.3rem;
        }

        p {
            color: var(--text-muted);
            line-height: 1.8;
            margin: 15px 0;
        }

        ul {
            padding-left: 20px;
            color: var(--text-muted);
            line-height: 1.8;
        }

        li {
            margin-bottom: 10px;
        }

        strong {
            color: var(--text-main);
        }

        /* Mermaid Diagram */
        .mermaid {
            background: var(--code-bg);
            padding: 30px;
            border-radius: 12px;
            margin: 25px 0;
            overflow-x: auto;
            border: 1px solid var(--card-border);
        }

        /* Footer */
        footer {
            text-align: center;
            padding: 40px 20px;
            font-size: 0.9rem;
            color: var(--text-muted);
            background: var(--card-bg);
            backdrop-filter: blur(10px);
            border-top: 1px solid var(--card-border);
        }

        .footer-link {
            color: var(--accent-cyan);
            text-decoration: none;
            transition: opacity 0.2s;
        }

        .footer-link:hover {
            opacity: 0.8;
        }

        @media (max-width: 768px) {
            .theme-toggle {
                top: 20px;
                right: 20px;
                padding: 10px 16px;
            }

            .home-link {
                font-size: 2rem;
            }

            main {
                padding: 0 20px 40px;
            }

            .section-card {
                padding: 25px;
            }

            h2 {
                font-size: 1.5rem;
            }

            h3 {
                font-size: 1.1rem;
            }
        }

        /* Navigation */
        header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 20px 40px;
            position: relative;
            z-index: 100;
        }

        .home-link {
            font-size: 1.5rem;
            font-weight: 700;
            color: var(--text-main);
            text-decoration: none;
            margin-bottom: 0;
        }

        .nav-link {
            color: var(--text-muted);
            text-decoration: none;
            margin-left: 20px;
            transition: 0.3s;
            font-weight: 500;
        }

        .nav-link:hover {
            color: var(--accent-cyan);
        }

/* Current about page follows the shared Windows 95 theme. */
.about-updated{max-width:1000px;margin:1rem auto;padding:0 20px;box-sizing:border-box;font-size:.85rem;color:var(--c-muted);}
:root.t95 .section-card{background:var(--c-bg2);border:2px solid;border-color:var(--retro-field) var(--retro-shadow) var(--retro-shadow) var(--retro-field);border-radius:0;box-shadow:1px 1px 0 var(--retro-shadow);backdrop-filter:none;}
.mermaid{box-sizing:border-box;max-width:100%;}
.mermaid svg{min-width:560px;}
.mermaid:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;}
.diagram-fallback{white-space:normal;color:var(--c-text);}
@media(max-width:480px){main{padding-inline:12px;}.section-card{padding:18px 14px;}.mermaid{padding:12px;}main p,main li{overflow-wrap:anywhere;}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;}}

/* 주요 기능 카테고리 구분선. 2026-09-14: h3 4곳만 인라인 style 이던 것을 클래스로
   옮겼다. 선언은 그대로라 렌더링은 이전과 같다. */
.feature-cat{font-size:1.5rem;margin-top:1.5rem;padding:.6rem 0 .3rem;
  border-top:2px solid var(--text-muted,#8b949e);color:var(--text-muted,#8b949e)}
.feature-cat.is-cyan{border-top-color:var(--accent-cyan,#4cc9f0);color:var(--accent-cyan,var(--c-cyan))}
.feature-cat.is-amber{border-top-color:var(--accent-amber,#ff9e00);color:var(--accent-amber,var(--c-warn))}
