/* ===================================
   SVG背景最適化用追加スタイル
   =================================== */

/* SVG画像の品質を最適化 */
body::after {
    /* ハードウェアアクセラレーションを有効化 */
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    
    /* ブラウザレンダリング最適化 */
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    backface-visibility: hidden;
    
    /* スムージングを無効化してシャープネスを保持 */
    -webkit-font-smoothing: none;
    -moz-osx-font-smoothing: none;
    
    /* SVG専用の最適化 */
    shape-rendering: geometricPrecision;
    
    /* ピクセル密度に応じた最適化 */
    image-rendering: -moz-crisp-edges;
    image-rendering: -o-crisp-edges;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
    
    /* SVGのアンチエイリアシングを調整 */
    filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='sharpness'><feConvolveMatrix order='3' preserveAlpha='true' kernelMatrix='0 -1 0 -1 5 -1 0 -1 0'/></filter></svg>#sharpness");
}

/* Retina/高DPIディスプレイ対応 */
@media only screen and (-webkit-min-device-pixel-ratio: 2),
       only screen and (min-resolution: 192dpi),
       only screen and (min-resolution: 2dppx) {
    body::after {
        /* 高解像度ディスプレイでの最適化 */
        image-rendering: -webkit-optimize-contrast;
        image-rendering: optimize-quality;
        
        /* シャープネスフィルターを削除（高DPIでは不要） */
        filter: none;
    }
}

/* 代替アプローチ: object要素でSVGを直接埋め込み（オプション） */
.svg-background-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -2;
    pointer-events: none;
}

.svg-background-object {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* SVGの拡大時の品質保持 */
@supports (image-rendering: crisp-edges) {
    body::after {
        image-rendering: crisp-edges;
    }
}

@supports not (image-rendering: crisp-edges) {
    body::after {
        image-rendering: -webkit-optimize-contrast;
        image-rendering: pixelated;
    }
}

/* ぼやけ防止の追加対策 */
body::after {
    /* ブラウザのぼやけフィルターを無効化 */
    filter: contrast(1.0);
    
    /* 3D変換を利用したレンダリング改善 */
    transform: perspective(1px) translateZ(0);
}

/* Safari専用の最適化 */
@supports (-webkit-appearance: none) {
    body::after {
        image-rendering: -webkit-optimize-contrast;
        -webkit-transform: translateZ(0);
    }
}

/* Firefox専用の最適化 */
@-moz-document url-prefix() {
    body::after {
        image-rendering: -moz-crisp-edges;
        image-rendering: crisp-edges;
    }
}

/* Chrome/Edge専用の最適化 */
@supports (-webkit-mask-image: url()) {
    body::after {
        image-rendering: pixelated;
        image-rendering: -webkit-optimize-contrast;
    }
}