    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    body { font-family: 'Nunito', system-ui, sans-serif; background: #F7F3EB; color: #2E2A32; }
    :root { --accent: #7A5FAF; }

    header { background: #7A5FAF; color: white; padding: 0 1.5rem; height: 52px; display: flex; align-items: center; gap: 12px; }
    header a { color: rgba(255,255,255,0.8); text-decoration: none; font-size: 14px; }
    header a:hover { color: white; }
    .header-sep { opacity: 0.3; margin: 0 2px; }

    main { max-width: 1100px; margin: 0 auto; padding: 2rem 1rem 4rem; }

    .game-title { border-bottom: 3px solid var(--accent); padding-bottom: 1rem; margin-bottom: 2rem; }
    .game-title h1 { font-size: 1.7rem; color: var(--accent); }
    .game-title p { color: #666; margin-top: 4px; font-size: 14px; }

    .cat-header { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent);
      border-bottom: 1px solid var(--accent); padding-bottom: 4px; margin: 2rem 0 0.75rem; font-weight: 700; }

    .article-card { border: 1px solid rgba(201,183,232,0.5);
      border-radius: 16px; padding: 1rem; margin-bottom: 0.75rem; transition: border-color 0.2s cubic-bezier(0.4,0,0.2,1); background: white; }
    .article-card:hover { border-color: var(--accent); }
    .article-card h3 { margin-bottom: 4px; font-size: 1rem; }
    .article-card h3 a { color: #2E2A32; text-decoration: none; }
    .article-card h3 a:hover { color: var(--accent); }
    .article-card p { color: #555; font-size: 13px; margin-top: 4px; line-height: 1.5; }

    .private-badge { font-size: 10px; padding: 1px 6px; border-radius: 4px; background: #666; color: white; margin-left: 6px; vertical-align: middle; }
    .tag-chip { display: inline-block; padding: 2px 10px; border-radius: 12px; background: var(--accent); color: white; font-size: 11px; margin: 2px; text-decoration: none; }

    .article-layout { display: flex; gap: 2rem; align-items: flex-start; }
    .article-body { flex: 1; min-width: 0; max-width: 720px; }
    .breadcrumb { font-size: 13px; color: #aaa; margin-bottom: 1.5rem; }
    .breadcrumb a { color: var(--accent); text-decoration: none; }
    .back-link { display: inline-block; margin-bottom: 1.5rem; color: var(--accent); text-decoration: none; font-size: 13px; }
    .back-link:hover { text-decoration: underline; }

    .article-body h1 { color: var(--accent); margin-bottom: 1rem; font-size: 1.6rem; }
    .article-body h2 { color: var(--accent); margin: 2rem 0 0.5rem; font-size: 1.15rem; }
    .article-body h3 { color: var(--accent); margin: 1.5rem 0 0.4rem; font-size: 1.05rem; }
    .article-body p { line-height: 1.75; margin-bottom: 1rem; }
    .article-body ul, .article-body ol { padding-left: 1.5rem; margin-bottom: 1rem; }
    .article-body li { line-height: 1.7; margin-bottom: 3px; }
    .article-body blockquote { border-left: 3px solid var(--accent); padding-left: 1rem; color: #555; margin: 1rem 0; font-style: italic; }
    .article-body code { background: #EDE8F5; padding: 1px 5px; border-radius: 3px; font-size: 12px; font-family: monospace; }
    .article-body pre { background: #F7F3EB; padding: 1rem; border-radius: 8px; overflow-x: auto; margin-bottom: 1rem; }
    .article-body pre code { background: none; padding: 0; font-size: 12px; }
    .article-body hr { border: none; border-top: 2px solid #eee; margin: 2rem 0; }
    .article-body table { border-collapse: collapse; width: 100%; margin-bottom: 1rem; font-size: 13px; }
    .article-body th { background: var(--accent); color: white; padding: 7px 12px; text-align: left; font-size: 12px; }
    .article-body td { padding: 7px 12px; border-bottom: 1px solid #eee; }
    .article-body tr:nth-child(even) td { background: #F7F3EB; }
    .article-body strong { font-weight: 700; }
    .article-body em { font-style: italic; }

    .toc-panel { width: 185px; flex-shrink: 0; position: sticky; top: 1.5rem; max-height: calc(100vh - 3rem);
      overflow-y: auto; border-right: 3px solid var(--accent); padding-right: 1rem; align-self: flex-start; }
    .toc-panel h4 { color: var(--accent); font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.1em;
      font-weight: 700; margin-bottom: 0.75rem; }
    .toc-panel a { display: block; color: #666; text-decoration: none; font-size: 11.5px; line-height: 1.45;
      padding: 3px 0; border-bottom: 1px solid #f0ece6; }
    .toc-panel a:hover { color: var(--accent); }
    .toc-panel a.toc-h3 { padding-left: 0.65rem; font-size: 11px; color: #999; }
    .toc-panel a.toc-active { color: var(--accent); font-weight: 600; }

    .related-panel { width: 220px; flex-shrink: 0; border-left: 3px solid var(--accent); padding-left: 1rem; position: sticky; top: 1.5rem; }
    .related-panel h3 { color: var(--accent); margin-bottom: 1rem; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.05em; }
    .related-item { margin-bottom: 0.75rem; }
    .related-item a { color: var(--accent); text-decoration: none; font-weight: 600; font-size: 13px; }
    .related-item a:hover { text-decoration: underline; }
    .related-item .rel-label { color: #aaa; font-size: 11px; display: block; margin-top: 1px; }
    .related-item p { color: #666; font-size: 12px; margin-top: 2px; }
    @media (max-width: 1000px) {
      .toc-panel { display: none; }
    }
    @media (max-width: 900px) {
      .article-layout { flex-direction: column; }
      .related-panel { width: 100%; position: static; border-left: none; border-top: 3px solid var(--accent); padding-left: 0; padding-top: 1rem; margin-top: 2rem; }
    }

    .tag-filter-bar { margin-bottom: 1.5rem; padding: 0.75rem 1rem; background: white; border: 1px solid rgba(201,183,232,0.4); border-radius: 16px; font-size: 13px; }
    .tag-filter-bar span { color: #666; }
    .tag-filter-bar a { color: var(--accent); text-decoration: none; margin-left: 0.5rem; }
    .tag-filter-bar a:hover { text-decoration: underline; }

    .error-page { text-align: center; padding: 5rem 1rem; color: #aaa; }
    .error-page h2 { font-size: 3rem; color: #ddd; margin-bottom: 1rem; }
