    body {
      user-select: none;
      -webkit-user-select: none;
      background-color: #120c06;
      color: #140c04;
      font-family: 'Noto Serif KR', serif;
      font-weight: 500;
      -webkit-font-smoothing: subpixel-antialiased;
      -moz-osx-font-smoothing: auto;
      text-rendering: optimizeLegibility;
    }

    /* 모든 텍스트 획 선명도 보장 */
    p, span, div, h1, h2, h3, h4, h5, button, input {
      text-rendering: optimizeLegibility;
    }

    .prophet-paper {
      background-color: #f5edd8;
      background-image: 
        radial-gradient(circle at 50% 50%, rgba(255,255,255,0.55) 0%, rgba(220,195,150,0.35) 100%);
      box-shadow: inset 0 0 70px rgba(70, 45, 15, 0.3);
    }

    .marauders-paper {
      background-color: #dfcaa5;
      background-image: 
        radial-gradient(circle at 50% 50%, rgba(247, 237, 214, 0.8) 0%, rgba(184, 146, 75, 0.45) 100%);
      box-shadow: inset 0 0 100px rgba(45, 25, 10, 0.75);
    }

    @keyframes prophetMovingPhoto {
      0% { filter: sepia(0.55) contrast(1.1) brightness(0.96); }
      50% { filter: sepia(0.25) contrast(1.2) brightness(1.05); }
      100% { filter: sepia(0.55) contrast(1.1) brightness(0.96); }
    }
    .magical-moving-frame {
      animation: prophetMovingPhoto 4s ease-in-out infinite;
      position: relative;
      overflow: hidden;
    }
    .magical-moving-frame::after {
      content: "";
      position: absolute;
      top: -100%;
      left: -50%;
      width: 200%;
      height: 200%;
      background: linear-gradient(
        115deg, 
        transparent 35%, 
        rgba(255, 245, 210, 0.22) 50%, 
        transparent 65%
      );
      animation: magicalLightSweep 6.5s infinite linear;
      pointer-events: none;
    }
    @keyframes magicalLightSweep {
      0% { transform: translateY(-50%) rotate(25deg); }
      100% { transform: translateY(50%) rotate(25deg); }
    }

    @keyframes magicFlightDash {
      to { stroke-dashoffset: -32; }
    }
    .magic-flight-active {
      stroke-dasharray: 4, 3;
      animation: magicFlightDash 1.3s linear infinite;
    }

    @keyframes magicAuraPulse {
      0% { r: 5px; opacity: 0.95; }
      100% { r: 24px; opacity: 0; }
    }
    .magic-aura-pulse {
      animation: magicAuraPulse 2.2s cubic-bezier(0.2, 0.6, 0.4, 1) infinite;
    }

    @keyframes incantationBloom {
      0% { opacity: 0; transform: scale(0.96) translateY(6px); filter: blur(2px); }
      50% { opacity: 1; transform: scale(1.02) translateY(0); filter: blur(0px); text-shadow: 0 0 18px rgba(132, 28, 28, 0.6); }
      100% { opacity: 1; transform: scale(1); filter: blur(0px); text-shadow: 0 0 8px rgba(132, 28, 28, 0.3); }
    }
    .incantation-reveal {
      animation: incantationBloom 1.2s forwards cubic-bezier(0.25, 1, 0.5, 1);
    }

    .parchment-scrollbar::-webkit-scrollbar { height: 4px; width: 4px; }
    .parchment-scrollbar::-webkit-scrollbar-track { background: rgba(80, 50, 20, 0.08); }
    .parchment-scrollbar::-webkit-scrollbar-thumb { background: #8b6b44; border-radius: 4px; }

    .drop-cap::first-letter {
      float: left;
      font-family: 'Cinzel', serif;
      font-size: 2.5rem;
      line-height: 0.85;
      padding-top: 4px;
      padding-right: 8px;
      color: #7f1d1d;
      font-weight: 900;
    }

    .map-frame-4-3,
    .map-frame-full {
      width: 100%;
      height: 100%;
      position: relative;
    }

    .no-scrollbar::-webkit-scrollbar {
      display: none;
    }
    .no-scrollbar {
      -ms-overflow-style: none;
      scrollbar-width: none;
    }
    .snap-x-mandatory {
      scroll-snap-type: x mandatory;
    }
    .snap-center-slide {
      scroll-snap-align: center;
      scroll-snap-stop: always;
    }

    /* Bottom Destinations Carousel Drag Scroll */
    #destCarousel {
      cursor: grab;
      user-select: none;
      -webkit-user-select: none;
    }

    #destCarousel.is-dragging {
      cursor: grabbing !important;
    }

    #destCarousel.is-dragging .dest-card {
      cursor: grabbing !important;
    }

    #destCarousel .dest-card {
      user-select: none;
      -webkit-user-select: none;
    }
