/* Jake 위젯 · 헤더 · 메뉴 (PC/모바일) — 모든 값은 CSS 변수, 위젯 설정이 덮어씀 */
.jn{--jn-h:72px;--jn-hh:var(--jn-h);--jn-logo-h:40px;--jn-max:1240px;--jn-px:24px;--jn-gap:30px;--jn-rad:18px;--jn-fl:12px;--jn-blur:18px;--jn-dr-w:340px;
  --jn-accent:var(--jwm-brand,#ea4b2c);--jn-accent-fg:var(--jwm-on-brand,#fff);--jn-bg:var(--jwm-bg,#fff);--jn-fg:var(--jwm-ink,#17191d);--jn-fg2:var(--jwm-ink2,#5f6670);--jn-hi:var(--jn-fg);--jn-line:var(--jwm-line,#eceef1);--jn-tfg:#fff;
  --jn-sub-bg:var(--jwm-surface,#fff);--jn-sub-fg:var(--jwm-ink,#17191d);--jn-btn-bg:var(--jn-accent);--jn-btn-fg:var(--jn-accent-fg);--jn-dr-bg:var(--jwm-surface,#fff);--jn-dr-fg:var(--jwm-ink,#17191d);--jn-dim:rgba(14,12,10,.52);
  --jn-ease:cubic-bezier(.22,.8,.24,1);
  position:relative;z-index:50;display:flow-root;line-height:1.4;word-break:keep-all;-webkit-tap-highlight-color:transparent}
.jn *,.jn *::before,.jn *::after{box-sizing:border-box}
.jn ul{list-style:none;margin:0;padding:0}
.jn a{text-decoration:none}
.jn button{font:inherit;color:inherit;background:none;border:0;margin:0;padding:0;cursor:pointer;-webkit-appearance:none;appearance:none;box-shadow:none;text-transform:none;letter-spacing:inherit;min-height:0}
.jn button:hover,.jn button:focus{background:none;color:inherit}
.jn a:focus-visible,.jn button:focus-visible,.jn input:focus-visible{outline:2px solid var(--jn-accent);outline-offset:3px;border-radius:8px}
.jn .jn-ico{width:22px;height:22px;flex:0 0 auto;display:block}
.jn .jn-mo{display:none}

/* ── 색 테마 ── */
.jn.th-dark{--jn-bg:var(--jwm-bg,#211c19);--jn-fg:var(--jwm-ink,#f6f1eb);--jn-fg2:var(--jwm-ink2,rgba(246,241,235,.62));--jn-line:var(--jwm-line,rgba(255,255,255,.09));
  --jn-sub-bg:var(--jwm-surface,#2b2521);--jn-sub-fg:var(--jwm-ink,#f6f1eb);--jn-dr-bg:var(--jwm-surface,#1b1714);--jn-dr-fg:var(--jwm-ink,#f6f1eb)}
.jn.th-light{--jn-bg:var(--jwm-bg,#fff)}
.jn.th-brand .jn-badge:not(.is-dot){background:var(--jwm-surface,#fff);color:var(--jn-accent)}
.jn.th-brand{--jn-bg:var(--jn-accent);--jn-fg:var(--jwm-on-brand,#fff);--jn-fg2:color-mix(in srgb,var(--jwm-on-brand,#fff) 80%,transparent);--jn-line:color-mix(in srgb,var(--jwm-on-brand,#fff) 20%,transparent);--jn-btn-bg:var(--jwm-on-brand,#fff);--jn-btn-fg:var(--jn-accent)}
.jn.th-neo{--jn-accent:var(--jwm-brand,#ffd23f);--jn-accent-fg:var(--jwm-on-brand,#111);--jn-fg:var(--jwm-ink,#111);--jn-fg2:var(--jwm-ink2,#111);--jn-line:var(--jwm-ink,#111);--jn-btn-fg:var(--jwm-ink,#111);--jn-sub-fg:var(--jwm-ink,#111);--jn-dr-fg:var(--jwm-ink,#111)}
/* 네온 — 포스터 키트 공통 색을 그대로 따라감 */
.jn.th-neon{--jn-bg:var(--jwm-bg,var(--jks-bg,#0e0e0e));--jn-fg:var(--jwm-ink,var(--jks-ink,#f5f5f5));--jn-fg2:var(--jwm-ink3,var(--jks-ink2,#a3a3a3));--jn-line:var(--jwm-line,var(--jks-line,#2c2c2c));--jn-accent:var(--jwm-brand,var(--jks-ac1,#c8f04a));--jn-accent-fg:var(--jwm-on-brand,var(--jks-ac1fg,#0e0e0e));
  --jn-sub-bg:var(--jwm-surface,var(--jks-card,#1c1c1c));--jn-sub-fg:var(--jwm-ink,var(--jks-ink,#f5f5f5));--jn-dr-bg:var(--jwm-bg,var(--jks-bg,#0e0e0e));--jn-dr-fg:var(--jwm-ink,var(--jks-ink,#f5f5f5))}
.jn.th-neon .jn-a{font-weight:700}.jn.th-neon .jn-li.is-cur>.jn-a{font-weight:900}
/* 포인트 색 빠른 선택 — 테마보다 뒤 */
.jn.ac-orange{--jn-accent:var(--jwm-brand,#ff6a13)}.jn.ac-red{--jn-accent:var(--jwm-brand,#e5322d)}.jn.ac-green{--jn-accent:var(--jwm-brand,#03c75a)}.jn.ac-blue{--jn-accent:var(--jwm-brand,#2f6bff)}
.jn.ac-mint{--jn-accent:var(--jwm-brand,#12b5a5)}.jn.ac-pink{--jn-accent:var(--jwm-brand,#ec4f8f)}.jn.ac-purple{--jn-accent:var(--jwm-brand,#7a4dff)}
.jn.ac-yellow{--jn-accent:var(--jwm-brand,#ffd23f);--jn-accent-fg:var(--jwm-on-brand,#111)}.jn.ac-black{--jn-accent:var(--jwm-brand,#15171c);--jn-accent-fg:var(--jwm-on-brand,#fff)}
.jn.th-dark.ac-black{--jn-accent:var(--jwm-brand,#f6f1eb);--jn-accent-fg:var(--jwm-on-brand,#15171c)}

/* ── 판 ── */
.jn .jn-bar{position:relative;background:var(--jn-bg);color:var(--jn-fg);transition:background-color .3s,box-shadow .3s,border-color .3s,transform .3s var(--jn-ease)}
.jn.sh-line .jn-bar{border-bottom:1px solid var(--jn-line)}
.jn.th-neo .jn-bar{border-bottom:2.5px solid var(--jwm-ink,#111)}
.jn.sh-float .jn-bar{margin:var(--jn-fl) auto 0;width:calc(100% - var(--jn-fl) * 2);max-width:calc(var(--jn-max) + 32px);border-radius:var(--jn-rad);
  border:1px solid var(--jn-line);box-shadow:0 10px 30px -18px rgba(20,24,30,.35)}
.jn.sh-glass .jn-bar{background:color-mix(in srgb,var(--jn-bg) 70%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(var(--jn-blur));backdrop-filter:saturate(1.6) blur(var(--jn-blur));
  border-bottom:1px solid color-mix(in srgb,var(--jn-fg) 8%,transparent)}
.jn.is-scrolled .jn-bar{background:var(--jn-sbg,var(--jn-bg));box-shadow:0 8px 24px -16px rgba(10,12,16,.4)}
.jn.sh-glass.is-scrolled .jn-bar{background:color-mix(in srgb,var(--jn-sbg,var(--jn-bg)) 76%,transparent)}
.jn.th-neo.is-scrolled .jn-bar{box-shadow:0 4px 0 #111}
/* 처음엔 투명 */
.jn.is-trans.is-top:not(.is-open) .jn-bar{background:transparent;box-shadow:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;
  --jn-fg:var(--jn-tfg);--jn-fg2:color-mix(in srgb,var(--jn-tfg) 78%,transparent);--jn-hi:var(--jn-tfg);--jn-line:color-mix(in srgb,var(--jn-tfg) 25%,transparent)}
.jn.is-trans.is-top:not(.is-open) .jn-bar::before{content:"";position:absolute;inset:0 0 -30px;pointer-events:none;z-index:-1;
  background:linear-gradient(to bottom,rgba(0,0,0,.32),transparent)}
.jn .jn-logo.has-tr .jn-lg-tr{display:none}
.jn.is-trans.is-top:not(.is-open) .jn-logo.has-tr .jn-lg{display:none}
.jn.is-trans.is-top:not(.is-open) .jn-logo.has-tr .jn-lg-tr{display:block}

/* ── 안쪽 격자 (배치) ── */
.jn .jn-in{display:grid;align-items:center;column-gap:16px;height:var(--jn-hh);max-width:var(--jn-max);margin:0 auto;padding:0 var(--jn-px);
  grid-template-columns:auto 1fr auto;grid-template-areas:"logo nav act";transition:height .3s var(--jn-ease)}
.jn.sh-float .jn-in{max-width:none}
.jn .jn-logo{grid-area:logo}.jn .jn-nav{grid-area:nav;min-width:0}.jn .jn-act{grid-area:act}.jn .jn-burg{grid-area:burg}
.jn.ly-left .jn-nav{justify-self:start;margin-left:clamp(12px,3vw,48px)}
.jn.ly-center .jn-in{grid-template-columns:1fr auto 1fr}
.jn.ly-center .jn-logo{justify-self:start}.jn.ly-center .jn-act{justify-self:end}
.jn.ly-right .jn-nav{justify-self:end;margin-right:clamp(4px,1.5vw,20px)}
.jn.ly-logo-center .jn-in{grid-template-columns:1fr auto 1fr;grid-template-areas:"nav logo act"}
.jn.ly-logo-center .jn-nav{justify-self:start}.jn.ly-logo-center .jn-act{justify-self:end}
.jn.ly-stack .jn-in{grid-template-columns:1fr auto 1fr;grid-template-areas:". logo act" "nav nav nav";height:auto;padding-top:18px;row-gap:10px}
.jn.ly-stack .jn-logo{justify-self:center}.jn.ly-stack .jn-act{justify-self:end}
.jn.ly-stack .jn-nav{justify-self:stretch;display:flex;justify-content:center;border-top:1px solid var(--jn-line);padding:4px 0}
.jn.ly-stack.do-shrink.is-scrolled .jn-in{padding-top:10px}

/* ── 로고 ── */
.jn .jn-logo{display:flex;align-items:center;flex:0 0 auto;color:var(--jn-fg);min-width:0}
.jn .jn-lg{display:block;height:var(--jn-logo-h);width:auto;max-width:none;transition:height .3s var(--jn-ease)}
.jn .jn-lg-mo{display:none}
.jn.do-shrink.is-scrolled .jn-lg{height:calc(var(--jn-logo-h) * .86)}
.jn .jn-logo-t{font-size:22px;font-weight:800;letter-spacing:-.03em;color:var(--jn-fg);white-space:nowrap}
.jn .jn-logo.is-none{width:0}

/* ── PC 메뉴 공통 ── */
.jn .jn-menu{position:relative;display:flex;align-items:center;gap:var(--jn-gap);flex-wrap:nowrap}
.jn .jn-li{position:relative;flex:0 0 auto}
.jn .jn-a{position:relative;z-index:1;display:inline-flex;align-items:center;gap:5px;padding:10px 0;font-size:15.5px;font-weight:650;letter-spacing:-.01em;
  color:var(--jn-fg);white-space:nowrap;transition:color .2s,background-color .2s,border-color .2s,box-shadow .2s,transform .15s}
.jn .jn-li:hover>.jn-a,.jn .jn-li.is-cur>.jn-a,.jn .jn-li.is-anc>.jn-a{color:var(--jn-hi)}
.jn .jn-caret{display:inline-flex;opacity:.6;transition:transform .25s var(--jn-ease)}
.jn .jn-caret .jn-ico{width:14px;height:14px}
.jn .jn-li.has-sub:hover>.jn-a .jn-caret,.jn .jn-li.is-open>.jn-a .jn-caret{transform:rotate(180deg)}
.jn .jn-badge{display:inline-block;font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.02em;line-height:1;padding:3px 5px 2.5px;border-radius:5px;
  background:var(--jn-accent);color:var(--jn-accent-fg);transform:translateY(-6px);margin-left:1px}
.jn .jn-badge.is-dot{width:6px;height:6px;padding:0;border-radius:50%;background:#ff3b30;transform:translateY(-8px)}

/* 1. 밑줄 */
.jn.pc-underline .jn-a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2.5px;border-radius:2px;background:var(--jn-accent);
  transform:scaleX(0);transition:transform .32s var(--jn-ease)}
.jn.pc-underline .jn-li:hover>.jn-a::after,.jn.pc-underline .jn-li.is-cur>.jn-a::after,.jn.pc-underline .jn-li.is-anc>.jn-a::after{transform:scaleX(1)}
/* 2. 점 */
.jn.pc-dot .jn-a{color:var(--jn-fg2);font-weight:600}
.jn.pc-dot .jn-li:hover>.jn-a{color:var(--jn-fg)}
.jn.pc-dot .jn-li.is-cur>.jn-a,.jn.pc-dot .jn-li.is-anc>.jn-a{color:var(--jn-fg);font-weight:750}
.jn.pc-dot .jn-a::after{content:"";position:absolute;left:50%;bottom:-2px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--jn-accent);
  transform:scale(0);transition:transform .25s var(--jn-ease)}
.jn.pc-dot .jn-li.is-cur>.jn-a::after,.jn.pc-dot .jn-li.is-anc>.jn-a::after{transform:scale(1)}
/* 3. 둥근 배경 */
.jn.pc-pill .jn-menu{gap:calc(var(--jn-gap) * .2)}
.jn.pc-pill .jn-a{padding:9px 15px;border-radius:999px}
.jn.pc-pill .jn-li:hover>.jn-a{background:color-mix(in srgb,var(--jn-fg) 7%,transparent)}
.jn.pc-pill .jn-li.is-cur>.jn-a,.jn.pc-pill .jn-li.is-anc>.jn-a{background:color-mix(in srgb,var(--jn-accent) 13%,transparent);color:var(--jn-accent)}
/* 4·5. 미끄러지는 배경 / 캡슐 (JS 가 .jn-glide 위치를 옮김) */
.jn.pc-glide .jn-menu,.jn.pc-capsule .jn-menu{gap:calc(var(--jn-gap) * .1)}
.jn.pc-glide .jn-a,.jn.pc-capsule .jn-a{padding:9px 16px;color:var(--jn-fg2)}
.jn.pc-glide .jn-li:hover>.jn-a,.jn.pc-glide .jn-li.is-cur>.jn-a,.jn.pc-glide .jn-li.is-anc>.jn-a,
.jn.pc-capsule .jn-li:hover>.jn-a,.jn.pc-capsule .jn-li.is-cur>.jn-a,.jn.pc-capsule .jn-li.is-anc>.jn-a{color:var(--jn-fg)}
.jn .jn-glide{position:absolute;left:0;top:0;width:0;height:0;border-radius:999px;pointer-events:none;opacity:0;z-index:0}
.jn .jn-glide.is-ready{transition:transform .38s var(--jn-ease),width .38s var(--jn-ease),opacity .2s}
.jn.pc-glide .jn-glide{background:color-mix(in srgb,var(--jn-fg) 8%,transparent)}
.jn.pc-capsule .jn-menu{padding:4px;border-radius:999px;background:color-mix(in srgb,var(--jn-fg) 6%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--jn-fg) 6%,transparent)}
.jn.pc-capsule .jn-glide{background:var(--jn-bg);box-shadow:0 1px 2px rgba(0,0,0,.08),0 4px 14px -6px rgba(0,0,0,.22)}
.jn.pc-capsule.th-dark .jn-glide,.jn.pc-capsule.th-brand .jn-glide{background:color-mix(in srgb,var(--jn-fg) 16%,transparent);box-shadow:none}
.jn.pc-capsule.is-trans.is-top .jn-glide{background:rgba(255,255,255,.22);box-shadow:none}
/* 6. 박스 */
.jn.pc-box .jn-menu{gap:calc(var(--jn-gap) * .15)}
.jn.pc-box .jn-a{padding:9px 16px;border-radius:10px}
.jn.pc-box .jn-li:hover>.jn-a{background:color-mix(in srgb,var(--jn-fg) 10%,transparent)}
.jn.pc-box .jn-li.is-cur>.jn-a,.jn.pc-box .jn-li.is-anc>.jn-a{background:var(--jn-accent);color:var(--jn-accent-fg)}
.jn.pc-box.th-brand .jn-li.is-cur>.jn-a,.jn.pc-box.th-brand .jn-li.is-anc>.jn-a{background:var(--jwm-surface,#fff);color:var(--jn-accent)}
/* 7. 글자만 */
.jn.pc-bold .jn-a{color:var(--jn-fg2);font-weight:500}
.jn.pc-bold .jn-li:hover>.jn-a{color:var(--jn-fg)}
.jn.pc-bold .jn-li.is-cur>.jn-a,.jn.pc-bold .jn-li.is-anc>.jn-a{color:var(--jn-fg);font-weight:800}
.jn.pc-bold .jn-li.is-cur>.jn-a .jn-t{background:linear-gradient(transparent 62%,color-mix(in srgb,var(--jn-accent) 35%,transparent) 62%)}
/* 8. 네오 */
.jn.pc-neo .jn-menu{gap:calc(var(--jn-gap) * .25)}
.jn.pc-neo .jn-a{padding:7px 14px;border:2px solid transparent;border-radius:10px;font-weight:800}
.jn.pc-neo .jn-li:hover>.jn-a{border-color:var(--jn-fg);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--jn-fg)}
.jn.pc-neo .jn-li.is-cur>.jn-a,.jn.pc-neo .jn-li.is-anc>.jn-a{background:var(--jn-accent);color:var(--jn-accent-fg);border-color:var(--jn-fg);box-shadow:3px 3px 0 var(--jn-fg)}

/* ── PC 하위 메뉴 카드 ── */
.jn .jn-sub{position:absolute;top:100%;left:50%;min-width:200px;padding-top:10px;z-index:20;opacity:0;visibility:hidden;
  transform:translate(-50%,6px);transition:opacity .2s,transform .25s var(--jn-ease),visibility 0s .25s}
.jn .jn-li.has-sub:hover>.jn-sub,.jn .jn-li.has-sub:focus-within>.jn-sub,.jn .jn-li.is-open>.jn-sub{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}
.jn .jn-sul{background:var(--jn-sub-bg);color:var(--jn-sub-fg);border-radius:14px;padding:8px;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--jn-sub-fg) 7%,transparent),0 18px 40px -16px rgba(10,12,16,.35)}
.jn.th-neo .jn-sul{box-shadow:none;border:2.5px solid var(--jwm-ink,#111);box-shadow:5px 5px 0 #111}
.jn .jn-sa{display:flex;align-items:center;gap:6px;padding:10px 12px;border-radius:9px;font-size:14.5px;font-weight:600;color:var(--jn-sub-fg);white-space:nowrap;transition:background-color .15s,color .15s}
.jn .jn-sa:hover{background:color-mix(in srgb,var(--jn-sub-fg) 6%,transparent)}
.jn .jn-sa.is-cur,.jn .jn-sli.is-cur>.jn-sa{color:var(--jn-accent)}
.jn.th-neo .jn-sli.is-cur>.jn-sa,.jn.ac-yellow .jn-sli.is-cur>.jn-sa{color:inherit;background:var(--jn-accent)}
.jn .jn-sa.is-3{padding:7px 12px 7px 24px;font-size:13.5px;font-weight:500;opacity:.8}
.jn .jn-sa .jn-badge{transform:none}

/* ── 오른쪽 (회원 · 버튼) ── */
.jn .jn-act{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
.jn .jn-ibtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--jn-fg);transition:background-color .2s}
.jn .jn-ibtn:hover{background:color-mix(in srgb,var(--jn-fg) 8%,transparent)}
.jn .jn-login,.jn .jn-join{font-size:14px;font-weight:650;color:var(--jn-fg);white-space:nowrap;transition:color .2s,opacity .2s,background-color .2s}
.jn .jn-login:hover{color:var(--jn-hi);opacity:.75}
.jn .jn-join{color:var(--jn-accent)}
.jn.th-brand .jn-join:not(.is-btn){color:var(--jn-fg)}
.jn .jn-join.is-btn,.jn .jn-cta{display:inline-flex;align-items:center;height:38px;padding:0 17px;border-radius:999px;background:var(--jn-btn-bg);color:var(--jn-btn-fg);font-size:14px;font-weight:700;white-space:nowrap;
  transition:filter .2s,transform .15s}
.jn .jn-join.is-btn:hover,.jn .jn-cta:hover{filter:brightness(1.07);color:var(--jn-btn-fg)}
.jn .jn-join.is-btn:active,.jn .jn-cta:active{transform:scale(.97)}
.jn .jn-cta{background:var(--jn-fg);color:var(--jn-bg)}
.jn .jn-cta:hover{color:var(--jn-bg)}
.jn.th-brand .jn-cta{background:rgba(0,0,0,.22);color:#fff}
.jn.th-neo .jn-join.is-btn,.jn.th-neo .jn-cta{border:2px solid var(--jwm-ink,#111);box-shadow:3px 3px 0 #111;border-radius:10px}
.jn.th-neo .jn-cta{background:var(--jwm-surface,#fff);color:var(--jwm-ink,#111)}
.jn .jn-cta.is-sm{height:32px;padding:0 12px;font-size:13px}

/* 아바타 */
.jn .jn-av{position:relative;display:inline-grid;place-items:center;flex:0 0 auto;border-radius:50%;overflow:hidden;
  background:color-mix(in srgb,var(--jn-accent) 18%,var(--jwm-surface,#fff));color:color-mix(in srgb,var(--jn-accent) 80%,#000)}
.jn .jn-av b{font-size:.46em;font-weight:800;line-height:1}
.jn .jn-av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;background:inherit}
.jn .jn-av-s{width:30px;height:30px;font-size:30px}.jn .jn-av-m{width:32px;height:32px;font-size:32px}.jn .jn-av-l{width:44px;height:44px;font-size:44px}
.jn.th-dark .jn-av{background:color-mix(in srgb,var(--jn-accent) 30%,#2b2521);color:#fff}
.jn .jn-macc{align-items:center;justify-content:center;width:40px;height:40px}

/* 회원 드롭다운 */
.jn .jn-uwrap{position:relative}
.jn .jn-user{display:inline-flex;align-items:center;gap:8px;padding:4px 8px 4px 4px;border-radius:999px;color:var(--jn-fg);transition:background-color .2s}
.jn .jn-user:hover,.jn .jn-uwrap.is-open .jn-user{background:color-mix(in srgb,var(--jn-fg) 8%,transparent)}
.jn .jn-uname{font-size:14px;font-weight:650;white-space:nowrap;max-width:9em;overflow:hidden;text-overflow:ellipsis}
.jn .jn-uwrap.is-open .jn-caret{transform:rotate(180deg)}
.jn .jn-udrop{position:absolute;right:0;top:calc(100% + 10px);width:236px;padding:8px;border-radius:16px;background:var(--jn-sub-bg);color:var(--jn-sub-fg);z-index:30;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--jn-sub-fg) 7%,transparent),0 22px 44px -18px rgba(10,12,16,.4);
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .25s var(--jn-ease),visibility 0s .25s}
.jn .jn-uwrap.is-open .jn-udrop{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.jn.th-neo .jn-udrop{box-shadow:5px 5px 0 #111;border:2.5px solid var(--jwm-ink,#111)}
.jn .jn-uhead{display:flex;align-items:center;gap:11px;padding:10px 10px 14px;margin-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--jn-sub-fg) 9%,transparent)}
.jn .jn-uhead b{display:block;font-size:15px;font-weight:800}
.jn .jn-uextra{display:block;font-size:12.5px;opacity:.7;margin-top:2px}
.jn .jn-ulink{display:flex;align-items:center;gap:10px;padding:10px;border-radius:10px;font-size:14px;font-weight:600;color:var(--jn-sub-fg);transition:background-color .15s}
.jn .jn-ulink:hover{background:color-mix(in srgb,var(--jn-sub-fg) 6%,transparent);color:var(--jn-sub-fg)}
.jn .jn-ulink .jn-ico{width:18px;height:18px;opacity:.65}
.jn .jn-ico-dot{display:block;width:18px;height:18px;position:relative}.jn .jn-ico-dot::after{content:"";position:absolute;left:7px;top:7px;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5}
.jn .jn-ulink.is-out{color:color-mix(in srgb,var(--jn-sub-fg) 60%,transparent);margin-top:4px;border-top:1px solid color-mix(in srgb,var(--jn-sub-fg) 8%,transparent);border-radius:0 0 10px 10px;padding-top:12px}

/* ── 햄버거 ── */
.jn .jn-burg{align-items:center;justify-content:center;gap:8px;height:40px;min-width:40px;padding:0 4px;color:var(--jn-fg);border-radius:12px}
.jn.mol-center .jn-burg{justify-self:start;margin-left:-6px}
.jn.mol-center .jn-act{justify-self:end}
.jn.mol-center .jn-logo{justify-self:center}
.jn .jn-bl{position:relative;display:block;width:22px;height:16px}
.jn .jn-bl i{position:absolute;left:0;right:0;height:2px;border-radius:2px;background:currentColor;transition:transform .3s var(--jn-ease),opacity .2s,width .3s var(--jn-ease),top .3s var(--jn-ease)}
.jn .jn-bl i:nth-child(1){top:0}.jn .jn-bl i:nth-child(2){top:7px}.jn .jn-bl i:nth-child(3){top:14px}.jn .jn-bl i:nth-child(4){display:none}
.jn .b-lines2 .jn-bl{height:10px}.jn .b-lines2 .jn-bl i:nth-child(2){top:8px;left:auto;width:62%}.jn .b-lines2 .jn-bl i:nth-child(3){display:none}
.jn .b-text .jn-bl{width:18px;height:10px}.jn .b-text .jn-bl i:nth-child(2){top:8px}.jn .b-text .jn-bl i:nth-child(3){display:none}
.jn .jn-bt{font-size:14px;font-weight:700}
.jn .b-circle{width:40px;padding:0;border-radius:50%;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--jn-fg) 22%,transparent)}
.jn .b-circle .jn-bl{width:16px;height:8px}.jn .b-circle .jn-bl i:nth-child(2){top:6px}.jn .b-circle .jn-bl i:nth-child(3){display:none}
.jn .b-dots .jn-bl{width:16px;height:16px}
.jn .b-dots .jn-bl i{width:5px;height:5px;border-radius:50%;right:auto}
.jn .b-dots .jn-bl i:nth-child(1){top:0;left:0}.jn .b-dots .jn-bl i:nth-child(2){top:0;left:11px;width:5px}.jn .b-dots .jn-bl i:nth-child(3){top:11px;left:0}
.jn .b-dots .jn-bl i:nth-child(4){display:block;top:11px;left:11px}
/* 열리면 X (헤더 아래로 펼침에서 보임) */
.jn.is-open .jn-burg:not(.b-dots) .jn-bl i:nth-child(1){top:50%;margin-top:-1px;transform:rotate(45deg)}
.jn.is-open .jn-burg:not(.b-dots) .jn-bl i:nth-child(2){top:50%;margin-top:-1px;width:100%;transform:rotate(-45deg)}
.jn.is-open .jn-burg:not(.b-dots) .jn-bl i:nth-child(3){opacity:0}
.jn.is-open .b-dots .jn-bl{transform:rotate(45deg);transition:transform .3s var(--jn-ease)}

/* ── 검색 ── */
.jn .jn-search{position:absolute;left:0;right:0;top:100%;z-index:25;padding:12px var(--jn-px) 16px;background:var(--jn-sbg,var(--jn-bg));
  box-shadow:0 18px 30px -22px rgba(10,12,16,.45);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .25s var(--jn-ease),visibility 0s .25s}
.jn.sh-float .jn-search{left:var(--jn-fl);right:var(--jn-fl);top:calc(100% + 8px);border-radius:var(--jn-rad)}
.jn.is-search .jn-search{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.jn .jn-sform{display:flex;align-items:center;gap:10px;max-width:720px;margin:0 auto;padding:0 6px 0 16px;height:52px;border-radius:14px;
  background:color-mix(in srgb,var(--jn-fg) 7%,transparent);color:var(--jn-fg)}
.jn .jn-sform>.jn-ico{opacity:.55}
.jn .jn-sform input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--jn-fg);font:inherit;font-size:16px;padding:0;box-shadow:none;outline:0}
.jn .jn-sform input::placeholder{color:var(--jn-fg2)}
.jn .jn-sgo{height:38px;padding:0 16px;border-radius:10px;background:var(--jn-accent);color:var(--jn-accent-fg);font-size:14px;font-weight:700}
.jn .jn-sgo:hover{background:var(--jn-accent);color:var(--jn-accent-fg);filter:brightness(1.06)}

/* ── 모바일 가로 탭 ── */
.jn .jn-chips{position:relative}
.jn .jn-chips ul{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:2px var(--jn-px) 10px;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}
.jn .jn-chips ul::-webkit-scrollbar{display:none}
.jn .jn-chips li{flex:0 0 auto;scroll-snap-align:start}
.jn .jn-chip{display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 14px;border-radius:999px;font-size:14px;font-weight:650;white-space:nowrap;
  color:var(--jn-fg);background:color-mix(in srgb,var(--jn-fg) 8%,transparent);transition:background-color .2s,color .2s}
.jn .jn-chip.is-cur{background:var(--jn-fg);color:var(--jn-bg)}
.jn.th-brand .jn-chip{background:rgba(255,255,255,.16)}
.jn.th-brand .jn-chip.is-cur{background:var(--jwm-surface,#fff);color:var(--jn-accent)}
.jn.th-neo .jn-chip{border:2px solid var(--jwm-ink,#111);background:var(--jwm-surface,#fff)}.jn.th-neo .jn-chip.is-cur{background:var(--jn-accent);color:var(--jwm-ink,#111)}
.jn .jn-chip .jn-badge{transform:translateY(-5px)}

/* =====================================================
 * 모바일 메뉴판 — 공통
 * ===================================================== */
.jn .jn-dim{position:fixed;inset:0;z-index:100000;background:var(--jn-dim);opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
.jn.is-open .jn-dim{opacity:1;visibility:visible;transition-delay:0s}
.jn .jn-panel{position:fixed;z-index:100001;display:flex;flex-direction:column;background:var(--jn-dr-bg);color:var(--jn-dr-fg);visibility:hidden;
  overscroll-behavior:contain;transition:transform .42s var(--jn-ease),opacity .3s,visibility 0s .42s}
.jn.is-open .jn-panel{visibility:visible;transition-delay:0s}
.jn .jn-phead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;min-height:64px;padding:10px 12px 10px 22px}
.jn .jn-phead .jn-logo-t{color:var(--jn-dr-fg)}
.jn .jn-phead .jn-lg{height:calc(var(--jn-logo-h) * .82)}
.jn .jn-x{color:var(--jn-dr-fg);background:color-mix(in srgb,var(--jn-dr-fg) 7%,transparent)}
.jn .jn-x:hover{background:color-mix(in srgb,var(--jn-dr-fg) 12%,transparent)}
.jn .jn-pbody{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;padding:4px 22px calc(24px + env(safe-area-inset-bottom))}

/* 회원 카드 */
.jn .jn-pa{margin:4px 0 14px;padding:16px;border-radius:16px;background:color-mix(in srgb,var(--jn-dr-fg) 5%,transparent)}
.jn .jn-pa p{margin:0 0 12px;font-size:14px;color:color-mix(in srgb,var(--jn-dr-fg) 70%,transparent)}
.jn .jn-pa-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.jn .jn-pa-btns a{display:flex;align-items:center;justify-content:center;height:44px;border-radius:12px;font-size:15px;font-weight:700}
.jn .jn-pa-login{color:var(--jn-dr-fg);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--jn-dr-fg) 18%,transparent)}
.jn .jn-pa-join{background:var(--jn-accent);color:var(--jn-accent-fg)}
.jn .jn-pa-btns a:only-child{grid-column:1/-1}
.jn .jn-pa-me{display:flex;align-items:center;gap:12px;color:var(--jn-dr-fg)}
.jn .jn-pa-me>.jn-pa-t{flex:1;min-width:0}.jn .jn-pa-me b{display:block;font-size:16px;font-weight:800}.jn .jn-pa-me small{display:block;font-size:12.5px;opacity:.6;margin-top:1px}
.jn .jn-pa-me>.jn-ico{width:18px;height:18px;opacity:.45}
.jn .jn-pa-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.jn .jn-pa-links a{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:600;color:var(--jn-dr-fg);
  background:color-mix(in srgb,var(--jn-dr-fg) 7%,transparent)}
.jn .jn-pa-links a.is-out{margin-left:auto;background:none;opacity:.55;padding:0 4px}
.jn.th-neo .jn-pa{border:2px solid var(--jwm-ink,#111);background:var(--jwm-surface,#fff)}

/* 메뉴 줄 (아코디언) */
.jn .jn-pm{display:flex;flex-direction:column}
.jn .jn-mi.d0{border-bottom:1px solid color-mix(in srgb,var(--jn-dr-fg) 8%,transparent)}
.jn .jn-mrow{display:flex;align-items:center;gap:6px}
.jn .jn-ma{flex:1;display:flex;align-items:center;gap:6px;min-height:54px;padding:12px 0;font-size:17px;font-weight:700;letter-spacing:-.02em;color:var(--jn-dr-fg)}
.jn .jn-mi.is-cur>.jn-mrow>.jn-ma{color:var(--jn-accent)}
.jn.th-neo .jn-mi.is-cur>.jn-mrow>.jn-ma,.jn.ac-yellow .jn-mi.is-cur>.jn-mrow>.jn-ma{color:inherit;text-decoration:underline;text-decoration-color:var(--jn-accent);text-decoration-thickness:6px;text-underline-offset:-2px}
.jn .jn-tog{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;color:var(--jn-dr-fg);opacity:.6;transition:transform .3s var(--jn-ease),background-color .2s}
.jn .jn-tog .jn-ico{width:18px;height:18px}
.jn .jn-mi.is-open>.jn-mrow>.jn-tog{transform:rotate(180deg);opacity:1}
.jn .jn-msub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s var(--jn-ease)}
.jn .jn-msub>ul{min-height:0;overflow:hidden}
.jn .jn-mi.is-open>.jn-msub{grid-template-rows:1fr}
.jn .jn-msub>ul{padding-left:12px;border-left:2px solid color-mix(in srgb,var(--jn-dr-fg) 9%,transparent);margin:0 0 0 2px}
.jn .jn-mi.is-open>.jn-msub>ul{margin-bottom:12px}
.jn .jn-mi.d1 .jn-ma,.jn .jn-mi.d2 .jn-ma{min-height:44px;padding:8px 0;font-size:15px;font-weight:600;color:color-mix(in srgb,var(--jn-dr-fg) 75%,transparent)}
.jn .jn-mi.d1 .jn-tog{width:34px;height:34px}
.jn .jn-ma .jn-badge{transform:translateY(-4px)}

.jn .jn-pfoot{margin-top:auto;padding-top:24px;display:flex;flex-direction:column;gap:12px}
.jn .jn-pcta{display:flex;align-items:center;justify-content:center;height:52px;border-radius:14px;background:var(--jn-accent);color:var(--jn-accent-fg);font-size:16px;font-weight:800}
.jn.th-neo .jn-pcta{border:2.5px solid var(--jwm-ink,#111);box-shadow:4px 4px 0 #111}
.jn .jn-pnote{margin:0;font-size:13px;line-height:1.6;color:color-mix(in srgb,var(--jn-dr-fg) 55%,transparent)}

/* 1. 서랍 */
.jn.mo-drawer .jn-panel{top:0;bottom:0;width:min(86vw,var(--jn-dr-w));box-shadow:0 0 50px rgba(0,0,0,.25)}
.jn.mo-drawer.side-right .jn-panel{right:0;transform:translateX(105%)}
.jn.mo-drawer.side-left .jn-panel{left:0;transform:translateX(-105%)}
.jn.mo-drawer.is-open .jn-panel{transform:none}

/* 2. 화면 가득 */
.jn.mo-full .jn-panel{inset:0;opacity:0;transform:scale(1.02)}
.jn.mo-full.is-open .jn-panel{opacity:1;transform:none}
.jn.mo-full .jn-pbody{padding-top:16px}
.jn.mo-full .jn-pa{order:3;margin:22px 0 0}
.jn.mo-full nav{order:1}.jn.mo-full .jn-pfoot{order:4}
.jn.mo-full .jn-mi.d0{border:0}
.jn.mo-full .jn-mi.d0>.jn-mrow>.jn-ma{font-size:clamp(26px,8vw,34px);font-weight:800;letter-spacing:-.035em;min-height:0;padding:9px 0}
.jn.mo-full .jn-mi.d0{opacity:0;transform:translateY(14px);transition:opacity .4s,transform .5s var(--jn-ease)}
.jn.mo-full.is-open .jn-mi.d0{opacity:1;transform:none;transition-delay:calc(.08s + var(--i,0) * .045s)}
.jn.mo-full .jn-dim{display:none}

/* 3. 아래에서 시트 */
.jn.mo-sheet .jn-panel{left:0;right:0;bottom:0;max-height:88vh;max-height:88dvh;border-radius:24px 24px 0 0;transform:translateY(105%);box-shadow:0 -10px 40px rgba(0,0,0,.18)}
.jn.mo-sheet.is-open .jn-panel{transform:none}
.jn.mo-sheet .jn-phead{position:relative;justify-content:flex-end;min-height:52px;padding:8px 10px 0}
.jn .jn-grip{position:absolute;left:50%;top:10px;width:40px;height:5px;margin-left:-20px;border-radius:5px;background:color-mix(in srgb,var(--jn-dr-fg) 18%,transparent)}
.jn.mo-sheet .jn-pm{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.jn.mo-sheet .jn-mi.d0{border:0;border-radius:14px;background:color-mix(in srgb,var(--jn-dr-fg) 5%,transparent)}
.jn.mo-sheet .jn-mi.d0.has-sub{grid-column:1/-1}
.jn.mo-sheet .jn-mi.d0>.jn-mrow{padding:0 6px 0 16px}
.jn.mo-sheet .jn-mi.d0>.jn-mrow>.jn-ma{min-height:58px;font-size:15.5px}
.jn.mo-sheet .jn-mi.d0.is-cur{background:color-mix(in srgb,var(--jn-accent) 12%,transparent)}
.jn.mo-sheet .jn-mi.d0>.jn-msub>ul{margin:0 16px 0 18px}
.jn.mo-sheet .jn-mi.d0.is-open>.jn-msub>ul{margin-bottom:12px}
.jn.th-neo.mo-sheet .jn-mi.d0{border:2px solid var(--jwm-ink,#111);background:var(--jwm-surface,#fff)}
.jn.th-neo.mo-sheet .jn-mi.d0.is-cur{background:var(--jn-accent)}
.jn.th-neo.mo-sheet .jn-panel{border:2.5px solid var(--jwm-ink,#111);border-bottom:0}

/* 4. 헤더 아래로 펼침 */
.jn.mo-drop .jn-panel{left:0;right:0;top:var(--jn-top,var(--jn-hh));max-height:calc(100vh - var(--jn-top,var(--jn-hh)));max-height:calc(100dvh - var(--jn-top,var(--jn-hh)));
  border-radius:0 0 22px 22px;opacity:0;transform:translateY(-10px);box-shadow:0 24px 40px -20px rgba(0,0,0,.35);transition:transform .35s var(--jn-ease),opacity .25s,visibility 0s .35s}
.jn.mo-drop.is-open .jn-panel{opacity:1;transform:none}
.jn.mo-drop .jn-pbody{padding-top:14px}
.jn.mo-drop .jn-dim{top:var(--jn-top,var(--jn-hh))}
.jn.mo-drop.sh-float .jn-panel{left:var(--jn-fl);right:var(--jn-fl);top:calc(var(--jn-top,var(--jn-hh)) + 8px);border-radius:var(--jn-rad)}

/* 편집기 미리보기 */
.jn.is-prev .jn-panel,.jn.is-prev .jn-dim{position:absolute}
.jn.is-prev.mo-drawer .jn-panel,.jn.is-prev.mo-full .jn-panel{top:100%;bottom:auto;height:640px}
.jn.is-prev.mo-sheet .jn-panel{top:100%;bottom:auto}
.jn.is-prev.mo-drop .jn-panel{top:100%}
.jn.is-prev .jn-dim{top:100%;height:640px}
.jn.is-edit .jn-panel{z-index:30}.jn.is-edit .jn-dim{z-index:29}

.jn .jn-warn{margin:8px auto;max-width:var(--jn-max);padding:10px 14px;border-radius:10px;background:#fff4e5;color:#8a4b00;font-size:13px;font-weight:600;line-height:1.5;border:1px dashed #f0a040}
/* 고정 (JS) */
.jn-host.jn-fixed{position:fixed!important;left:0;right:0;width:100%!important;max-width:none!important;z-index:990;margin-top:0!important;transition:transform .35s var(--jn-ease)}
.jn-host.jn-over{position:relative;z-index:990}
.jn-host.jn-hidden{transform:translateY(-100%)}
.jn-host.jn-hidden .jn-sub,.jn-host.jn-hidden .jn-udrop{visibility:hidden}
.jn.is-open:not(.is-prev){z-index:100002}
.jn-host-open{position:relative;z-index:100002!important}
.jn-spacer{display:block;height:0;pointer-events:none}
html.jn-lock,html.jn-lock body{overflow:hidden}

/* 모바일 기본 크기 (Elementor 반응형 설정이 이김) */
@media (max-width:1024px){.jn{--jn-h:64px;--jn-px:18px}}
@media (max-width:767px){.jn{--jn-h:58px;--jn-logo-h:32px;--jn-px:16px}.jn .jn-act{gap:4px}.jn .jn-login.jn-mo,.jn .jn-join.jn-mo{font-size:13.5px;padding:0 4px}}

@media (prefers-reduced-motion:reduce){
  .jn *,.jn *::before,.jn *::after{transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important}
  .jn-host.jn-fixed{transition:none}
}
