/* ==================================================================
   그림 크기 설정 — 여기 숫자만 바꾸면 됩니다 (관리자 모드 "크기 조절"로도 바꿀 수 있습니다)
   px = 화면 점 크기 · contain = 그림 전체 보이기 · cover = 칸을 꽉 채우기(가장자리가 잘릴 수 있음)
   위치: center top(위) · center center(가운데) · center bottom(아래)
   ================================================================== */
:root{
  --cls-h:240px;    --cls-fit:contain;  --cls-pos:center bottom;   /* 클래스 그림 칸 높이 · 맞춤 · 위치 */
  --hunt-h:160px;   --hunt-fit:cover;   --hunt-pos:center center;  /* 사냥터 그림 */
  --doll-size:84px; --doll-fit:contain;                            /* 마법인형 그림(정사각) */
  --mcard-h:348px;  --mcard-h-m:150px;  --mcard-fit:cover; --mcard-pos:center center; /* 첫 화면 메뉴 카드 (PC · 휴대폰) */
  --slide-ratio:800/485; --slide-fit:cover;                        /* 게임 가이드 슬라이드 가로/세로 비율 */
  --boss-size:56px;                                                /* 보스 그림(동그라미) */
  --ad-img-w:50%;                                                  /* 자동홍보 안내 그림 너비(PC) */
}

:root{
  /* 기란서버 느낌: 먹빛 바탕 · 금색 강조 · 붉은 버튼 */
  --abyss:#171717; --stone:#1f1d1b; --slate:#2c2925; --brass:#facd50; --brass-dim:#b8914a;
  --ember:#b62319; --parch:#ece6dc; --mute:#a59d92; --line:rgba(204,173,150,.2);
  --display:"HeirofLightBold","Noto Sans KR",serif;
  --body:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
  color-scheme:dark;
}
@font-face{ font-family:"HeirofLightBold"; src:url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_20-07@1.0/HeirofLightBold.woff") format("woff"); font-display:swap; }
:root{ box-sizing:border-box; padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); }
html{ scroll-padding-top:calc(env(safe-area-inset-top,0px) + 72px); }
*,*::before,*::after{ box-sizing:inherit; }
body{ margin:0; background:var(--abyss); color:var(--parch); font-family:var(--body); font-size:16px; line-height:1.65; }
img{ max-width:100%; }
a{ color:inherit; }
:focus-visible{ outline:2px solid var(--brass); outline-offset:3px; }

/* 헤더 */
header{ position:sticky; top:env(safe-area-inset-top,0px); z-index:30; background:#1b1b1b; border-bottom:1px solid rgba(0,0,0,.6); }
.bar{ max-width:1180px; margin:0 auto; display:flex; align-items:center; gap:24px; padding:12px 20px; }
.logo{ display:flex; align-items:center; gap:10px; text-decoration:none; font-family:var(--display); font-size:1.35rem; color:var(--brass); white-space:nowrap; }
.logo svg{ width:30px; height:30px; }
nav{ display:flex; gap:4px; overflow-x:auto; flex:1; scrollbar-width:none; }
nav a{ text-decoration:none; padding:8px 12px; color:#fff; font-size:.95rem; white-space:nowrap; border-radius:4px; }
nav a:hover, nav a.on{ color:var(--brass); background:transparent; }
.dl-btn{ text-decoration:none; background:var(--ember); color:#fff; padding:9px 16px; border-radius:4px; font-weight:700; font-size:.92rem; white-space:nowrap; }
.dl-btn:hover{ background:#d0342a; }

/* 히어로 */
.hero{ background:linear-gradient(180deg,#9fbdf0 0%,#cfc6f1 48%,#ffd3b0 100%); position:relative; min-height:78vh; display:grid; place-items:center; overflow:hidden; text-align:center; isolation:isolate; }
.hero canvas{ position:absolute; inset:0; width:100%; height:100%; z-index:-1; }
.hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse at 50% 108%, rgba(255,236,190,.95), rgba(255,190,130,.35) 35%, transparent 62%), linear-gradient(to bottom, transparent 70%, var(--abyss)); }
.crown{ width:92px; margin:0 auto 10px; color:var(--brass); }
.hero h1{ font-family:var(--display); font-weight:400; font-size:clamp(3.2rem, 11vw, 7.5rem); line-height:1; margin:0; letter-spacing:.04em; color:var(--parch); text-shadow:0 2px 30px rgba(255,255,255,.9); }
.hero .sub{ font-family:var(--display); font-size:clamp(1.1rem,2.6vw,1.5rem); color:var(--brass); margin:14px 0 6px; }
.hero p{ color:#453d62; margin:0 auto 28px; max-width:34em; padding:0 20px; }
.hero .ctas{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.ghost{ background:rgba(255,255,255,.55); text-decoration:none; border:1px solid var(--brass-dim); color:var(--brass); padding:9px 18px; border-radius:4px; font-weight:700; }
.ghost:hover{ background:rgba(201,164,92,.1); }
.next-boss{ margin-top:34px; display:inline-flex; gap:14px; align-items:center; border:1px solid var(--line); background:rgba(255,255,255,.72); padding:10px 18px; border-radius:6px; font-size:.95rem; }
.next-boss b{ font-family:var(--display); font-weight:400; font-size:1.15rem; color:var(--parch); }
.next-boss .cd{ color:var(--ember); font-variant-numeric:tabular-nums; font-weight:700; }

/* 섹션 공통 */
section.block{ max-width:1180px; margin:0 auto; padding:72px 20px 24px; }
.head{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; border-bottom:1px solid var(--line); padding-bottom:12px; margin-bottom:28px; }
.head h2{ font-family:var(--display); font-weight:400; font-size:2rem; margin:0; color:var(--brass); }
.head span{ color:var(--mute); font-size:.92rem; }

/* 서버정보 */
.info-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:36px; }
.rates{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.rates div{ background:var(--stone); padding:18px 16px; }
.rates dt{ color:var(--mute); font-size:.85rem; }
.rates dd{ margin:2px 0 0; font-family:var(--display); font-size:1.8rem; color:var(--parch); }
.rules h3{ font-size:1rem; margin:0 0 10px; color:var(--parch); }
.rules ol{ margin:0; padding-left:1.3em; color:var(--mute); }
.rules li{ margin-bottom:6px; }
.rules li strong{ color:var(--ember); font-weight:500; }
.feat{ margin-top:22px; color:var(--mute); }
.feat p{ margin:0 0 6px; }
.feat b{ color:var(--parch); font-weight:500; }

/* 사냥터 */
.fields{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; }
.field{ position:relative; min-height:190px; padding:20px; display:flex; flex-direction:column; justify-content:flex-end; border-radius:6px; overflow:hidden; border:1px solid var(--line); }
.field::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--bg); }
.field h3{ font-family:var(--display); font-weight:400; font-size:1.45rem; margin:0; }
.field .lv{ color:#7a4f0c; font-size:.88rem; font-weight:700; }
.field p{ margin:6px 0 0; font-size:.92rem; color:#2f2745; }

/* 보스 */
.filters{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.filters button{ font:inherit; font-size:.92rem; background:var(--stone); color:var(--mute); border:1px solid var(--line); padding:6px 14px; border-radius:4px; cursor:pointer; }
.filters button[aria-pressed="true"]{ background:var(--brass); color:var(--abyss); border-color:var(--brass); font-weight:700; }
.filters button.today::after{ content:" ●"; color:var(--ember); font-size:.6em; vertical-align:middle; }
.hint{ color:var(--mute); font-size:.88rem; margin:0 0 16px; }
.table-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:6px; }
table{ width:100%; border-collapse:collapse; min-width:640px; }
th{ text-align:left; font-weight:500; color:var(--mute); font-size:.85rem; background:var(--stone); padding:10px 14px; border-bottom:1px solid var(--line); }
td{ padding:12px 14px; border-bottom:1px solid rgba(201,164,92,.1); vertical-align:middle; }
tr:last-child td{ border-bottom:0; }
tr.daily td{ background:rgba(231,225,243,.55); }
.sigil{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; font-family:var(--display); font-size:1.25rem; color:#fff; border:1px solid rgba(255,255,255,.7); text-shadow:0 1px 4px rgba(0,0,0,.35); box-shadow:0 2px 8px rgba(70,50,120,.2); }
.bname{ font-family:var(--display); font-size:1.15rem; }
.day{ color:var(--brass); font-weight:700; font-size:.9rem; }
.time{ font-variant-numeric:tabular-nums; font-weight:700; }

/* 업데이트 */
.log{ list-style:none; margin:0; padding:0; border-left:1px solid var(--line); }
.log li{ position:relative; padding:0 0 26px 26px; }
.log li::before{ content:""; position:absolute; left:-5px; top:8px; width:9px; height:9px; border-radius:50%; background:var(--brass); }
.log li:first-child::before{ background:var(--ember); box-shadow:0 0 0 4px rgba(224,102,47,.25); }
.log time{ color:var(--mute); font-size:.88rem; }
.log h3{ margin:2px 0 4px; font-size:1.05rem; }
.log p{ margin:0; color:var(--mute); max-width:60ch; }

/* 다운로드 */
.download{ display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:center; background:var(--stone); border:1px solid var(--line); border-radius:6px; padding:32px; }
.download h3{ font-family:var(--display); font-weight:400; font-size:1.8rem; margin:0 0 8px; }
.download p{ color:var(--mute); margin:0 0 20px; }
.spec{ width:100%; min-width:0; }
.spec th{ background:transparent; }

/* 서버 시스템 */
.sys{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; margin-top:36px; }
.sys article{ background:var(--stone); border:1px solid var(--line); border-radius:6px; padding:20px; }
.sys h3{ font-family:var(--display); font-weight:400; font-size:1.3rem; margin:0 0 10px; color:var(--brass); }
.sys ul{ margin:0; padding-left:1.1em; color:var(--mute); }
.sys li{ margin-bottom:4px; }
.sys li b{ color:var(--parch); font-weight:500; }
.subh{ font-family:var(--display); font-weight:400; font-size:1.5rem; color:var(--parch); margin:44px 0 0; }

/* 공지사항 */
.notices{ border-top:1px solid var(--line); }
.notices details{ border-bottom:1px solid var(--line); }
.notices summary{ display:grid; grid-template-columns:72px 1fr auto; gap:14px; align-items:center; padding:14px 6px; cursor:pointer; list-style:none; }
.notices summary::-webkit-details-marker{ display:none; }
.notices summary:hover{ background:var(--stone); }
.tag{ font-size:.78rem; font-weight:700; text-align:center; padding:3px 0; border-radius:3px; background:var(--slate); color:var(--brass); }
.tag.hot{ background:var(--ember); color:#fff; }
.notices time{ color:var(--mute); font-size:.85rem; font-variant-numeric:tabular-nums; }
.notices .body{ padding:4px 6px 20px 92px; color:var(--mute); max-width:70ch; }
.notices .body p{ margin:0 0 8px; }

/* 클래스 */
.classes{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:18px; }
.cls{ background:var(--stone); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.cls .crest{ text-shadow:0 2px 10px rgba(0,0,0,.2); height:110px; display:grid; place-items:center; font-family:var(--display); font-size:3rem; color:rgba(255,255,255,.85); }
.cls div.txt{ padding:16px 18px 20px; }
.cls h3{ font-family:var(--display); font-weight:400; font-size:1.4rem; margin:0; }
.cls .role{ color:var(--brass); font-size:.85rem; font-weight:700; }
.cls p{ margin:8px 0 10px; color:var(--mute); font-size:.92rem; }
.cls dl{ margin:0; display:grid; grid-template-columns:auto 1fr; gap:4px 10px; font-size:.86rem; }
.cls dt{ color:var(--mute); }
.cls dd{ margin:0; }
.bars{ display:flex; gap:3px; align-items:center; }
.bars i{ width:12px; height:6px; background:var(--slate); border-radius:1px; }
.bars i.f{ background:var(--brass); }

/* 등급 */
.grade{ font-weight:700; font-size:.85rem; }
.g1{ color:#a79fb4; } .g2{ color:#6fb07a; } .g3{ color:#6f9fd8; } .g4{ color:#c98fe0; } .g5{ color:#e0a84a; }

/* 이벤트 */
.events{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.evt{ border:1px solid var(--line); border-radius:6px; overflow:hidden; background:var(--stone); }
.evt .top{ padding:20px; background:var(--bg); }
.evt .state{ font-size:.8rem; font-weight:700; padding:2px 8px; border-radius:3px; background:rgba(255,255,255,.7); color:var(--ember); }
.evt h3{ font-family:var(--display); font-weight:400; font-size:1.45rem; margin:10px 0 2px; }
.evt .when{ font-size:.85rem; color:#4a4266; }
.evt ul{ margin:0; padding:16px 20px 20px 36px; color:var(--mute); font-size:.92rem; }
.evt li{ margin-bottom:4px; }

/* 고객센터 */
.cs-grid{ display:grid; grid-template-columns:1fr 1.4fr; gap:36px; }
.cs-card{ background:var(--stone); border:1px solid var(--line); border-radius:6px; padding:22px; }
.cs-card h3{ margin:0 0 12px; font-size:1.05rem; }
.cs-card dl{ margin:0; display:grid; grid-template-columns:auto 1fr; gap:8px 16px; }
.cs-card dt{ color:var(--mute); }
.cs-card dd{ margin:0; }
.cs-card .dl-btn{ display:inline-block; margin-top:18px; }
.faq details{ border-bottom:1px solid var(--line); padding:12px 4px; }
.faq summary{ cursor:pointer; font-weight:500; }
.faq details p{ margin:8px 0 0; color:var(--mute); }
/* 자동홍보 — 참조 페이지(마블서버 autoad)의 배치와 색 구성을 따른다 */
.ad-box{ background:rgba(5,10,18,.86); border:1px solid rgba(228,183,92,.65); color:#f5f2e9; padding:20px; text-align:center; box-shadow:inset 0 1px 0 rgba(255,217,138,.08), 0 5px 18px rgba(0,0,0,.3); }
.ad-start{ width:80%; min-height:58px; margin:0 auto 18px; padding:15px 20px; display:flex; align-items:center; justify-content:center; color:#fff; text-decoration:none; font-size:26px; font-weight:900; letter-spacing:1px; background:linear-gradient(90deg,#3277ba 0%,#245c91 50%,#b62319 100%); border:1px solid #e4b75c; border-radius:4px; text-shadow:0 2px 3px rgba(0,0,0,.7); box-shadow:inset 0 1px 0 rgba(255,217,138,.18), 0 5px 16px rgba(0,0,0,.28); transition:filter .2s, transform .2s; }
.ad-start:hover{ filter:brightness(1.1); transform:translateY(-2px); }
.ad-notice{ margin:0; color:#ffd98a; font-size:17px; font-weight:700; line-height:1.7; word-break:keep-all; }
.ad-acc{ margin-top:25px; border:1px solid rgba(228,183,92,.65); background:rgba(5,10,18,.76); }
.ad-acc-btn{ width:100%; padding:16px 20px; border:0; background:rgba(10,21,36,.95); color:#ffd98a; font:inherit; font-size:20px; font-weight:700; cursor:pointer; transition:background .3s; }
.ad-acc-btn:hover{ background:rgba(50,119,186,.22); color:#fff; }
.ad-acc-btn[aria-expanded="true"]{ background:linear-gradient(90deg,#3277ba 0%,#b62319 100%); color:#fff; }
.ad-acc-body{ padding:20px; background:rgba(5,10,18,.68); line-height:1.7; }
.ad-step + .ad-step{ margin-top:36px; }
.ad-step p{ margin:0; color:#fff; font-size:16px; word-break:keep-all; }
.ad-step img{ display:block; max-width:50%; height:auto; margin:12px auto 0; border:1px solid rgba(228,183,92,.65); box-shadow:0 6px 18px rgba(0,0,0,.28); }
@media (max-width:1024px){ .ad-start{ width:90%; font-size:22px; } .ad-acc-btn{ font-size:18px; } .ad-step img{ max-width:70%; } }
@media (max-width:768px){ .ad-box{ padding:10px; } .ad-start{ width:100%; min-height:46px; padding:12px 8px; font-size:18px; } .ad-notice{ font-size:14px; } .ad-acc-btn{ padding:13px 15px; font-size:15px; } .ad-acc-body{ padding:15px; } .ad-step p{ font-size:14px; } .ad-step img{ max-width:100%; } }
@media (max-width:820px){ .cs-grid{ grid-template-columns:1fr; } .notices summary{ grid-template-columns:56px 1fr; } .notices time{ grid-column:2; } .notices .body{ padding-left:6px; } }

@media (max-width:1100px){ .bar > .dl-btn{ display:none; } }
nav{ gap:0; }
nav a{ padding:8px 8px; font-size:.93rem; }   /* 메뉴 11개가 넓은 화면에서 한 줄에 다 보이게 */

/* 페이지 전환 */
.page{ display:none; }
.page.active{ display:block; }
.hero.page.active{ display:grid; }
.banner{ position:relative; overflow:hidden; padding:64px 20px 40px; text-align:center; border-bottom:1px solid var(--line);
  background:radial-gradient(ellipse at 50% 140%, rgba(255,214,170,.9), transparent 60%), linear-gradient(to bottom, #b9cdf2, #e4dcf6 70%, var(--abyss)); }
.banner h1{ font-family:var(--display); font-weight:400; font-size:clamp(2.2rem,6vw,3.4rem); margin:0; color:var(--parch); text-shadow:0 2px 24px rgba(255,255,255,.9); }
.banner p{ margin:6px 0 0; color:var(--mute); }
.banner[hidden]{ display:none; }
section.block{ padding-top:40px; }
.head{ display:none; }

footer{ margin-top:72px; border-top:1px solid var(--line); padding:28px 20px 40px; text-align:center; color:var(--mute); font-size:.85rem; }

/* 팝업 */
.popups{ position:fixed; inset:0; z-index:60; display:flex; gap:16px; justify-content:center; align-items:flex-start; padding:calc(env(safe-area-inset-top,0px) + 90px) 16px 16px; pointer-events:none; flex-wrap:wrap; overflow-y:auto; }
.pop{ pointer-events:auto; width:280px; background:var(--stone); border:1px solid var(--brass-dim); border-radius:6px; overflow:hidden; box-shadow:0 18px 50px rgba(70,50,120,.25); }
.pop .art{ color:var(--parch); height:120px; display:grid; place-items:center; font-family:var(--display); font-size:1.6rem; }
.pop h3{ margin:0; padding:12px 16px 0; font-size:1rem; color:var(--brass); }
.pop p{ margin:6px 0 0; padding:0 16px 14px; color:var(--mute); font-size:.9rem; }
.pop .acts{ display:flex; border-top:1px solid var(--line); }
.pop .acts button{ white-space:nowrap; flex:1; font:inherit; font-size:.85rem; background:none; border:0; color:var(--mute); padding:10px; cursor:pointer; }
.pop .acts button + button{ border-left:1px solid var(--line); color:var(--parch); }
.pop .acts button:hover{ background:var(--slate); }

/* 플로팅 */
.float{ position:fixed; right:16px; bottom:calc(env(safe-area-inset-bottom,0px) + 16px); z-index:40; display:flex; flex-direction:column; gap:10px; align-items:flex-end; }
.float a, .float button{ width:52px; height:52px; border-radius:50%; display:grid; place-items:center; border:1px solid var(--line); background:var(--stone); color:var(--parch); cursor:pointer; text-decoration:none; font:inherit; font-size:.72rem; line-height:1.1; text-align:center; box-shadow:0 6px 20px rgba(70,50,120,.18); }
.float a.cs{ background:var(--ember); border-color:var(--ember); color:#fff; font-weight:700; }
.float svg{ width:22px; height:22px; }
#topBtn{ background:conic-gradient(var(--brass) var(--p,0%), var(--slate) 0); padding:3px; }
#topBtn span{ width:100%; height:100%; border-radius:50%; background:var(--stone); display:grid; place-items:center; font-weight:700; }

@media (max-width:820px){
  .info-grid, .download{ grid-template-columns:1fr; }
  .rates{ grid-template-columns:repeat(2,1fr); }
  .bar{ gap:12px; }
}
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

/* ===== 기란서버 느낌으로 바꾸며 추가 (참조: giransv2.blogspot.com) ===== */
body{ background:#171717 url("https://assets.playnccdn.com/static-nc-home/2.1.0/img/lineagew/news/bg.jpg") center top / cover fixed; }
.logo{ color:var(--brass); font-family:var(--display); text-shadow:0 2px 3px #000, 0 0 8px rgba(250,205,80,.4); }
.welcome{ background:rgba(0,0,0,.5); color:#ccc; text-align:center; padding:8px 12px; font-size:1rem; transition:opacity .5s; }
.welcome b{ color:var(--brass); font-weight:500; }
.welcome.hide{ opacity:0; height:0; padding:0; overflow:hidden; }

/* 첫 화면: 성곽 영상 */
#home.page.active{ display:block; }
.hero{ background:#000; min-height:0; aspect-ratio:16/7; max-height:78vh; display:grid; place-items:center; }
.hero-vid{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hero::after{ background:linear-gradient(to bottom, rgba(0,0,0,.15), rgba(0,0,0,.35) 60%, #171717); }
.hero-in{ padding:24px 16px; }
.hero h1{ color:transparent; background:linear-gradient(180deg,#fff3c4 10%,#facd50 55%,#b8791f); -webkit-background-clip:text; background-clip:text; filter:drop-shadow(0 3px 3px #000) drop-shadow(0 0 18px rgba(250,180,60,.35)); text-shadow:none; }
.hero .sub{ color:#fff; text-shadow:0 2px 4px #000; }
.hero p{ color:#e8e1d6; text-shadow:0 1px 3px #000; }
.ghost{ background:rgba(0,0,0,.45); color:var(--brass); border-color:var(--brass-dim); }
.ghost:hover{ background:rgba(250,205,80,.12); }
.next-boss{ background:rgba(0,0,0,.6); border-color:rgba(250,205,80,.35); color:#ddd; }
.next-boss b{ color:var(--brass); }
.next-boss .cd{ color:#ff7a5c; }
@media (max-width:820px){ .hero{ aspect-ratio:auto; min-height:70vh; max-height:none; } }

/* 메뉴 카드 4장 (장식 테두리는 원본 그림) */
.main-menu{ max-width:1200px; margin:0 auto; padding:30px 16px 10px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px 10px; }
.mcard{ position:relative; display:block; height:348px; text-decoration:none; }
.mcard::before{ content:""; position:absolute; inset:0; z-index:5; pointer-events:none; border:1px solid rgba(204,173,150,.2); border-radius:0 0 4px 4px; background:url("https://assets.playnccdn.com/static-nc-home/2.6.0/img/journey/event/banner_mask_pc.png") 0 0 / 100% 100% no-repeat; }
.mcard::after{ content:""; position:absolute; left:0; right:0; top:-19px; height:40px; z-index:6; background:url("https://assets.playnccdn.com/static-nc-home/2.6.0/img/journey/event/banner_deco.png") 50% 0 / 100% 100% no-repeat; }
.mcard .thumb{ display:flex; justify-content:center; align-items:center; height:100%; overflow:hidden; border-radius:0 0 4px 4px; background:#000; }
.mcard .thumb img{ width:100%; height:100%; object-fit:cover; transition:transform 1s; }
.mcard:hover .thumb img{ transform:scale(1.1); }
.mcard-title{ position:absolute; left:0; right:0; bottom:0; height:87px; z-index:6; display:flex; align-items:center; justify-content:center; border-top:1px solid rgba(204,173,150,.08); color:rgba(255,255,255,.83); font-size:20px; font-weight:700; letter-spacing:.05em; text-shadow:0 2px 2px rgba(0,0,0,.4); }
.mcard:hover .mcard-title{ color:var(--brass); }
@media (max-width:1024px){ .main-menu{ grid-template-columns:repeat(2,minmax(0,1fr)); } .mcard{ height:150px; } .mcard-title{ height:40px; font-size:14px; } }

/* 게임 가이드 슬라이드 */
.guide{ max-width:1200px; margin:30px auto 0; padding:0 16px; }
.guide-title{ height:126px; margin:0; font-size:0; background:url("https://assets.playnccdn.com/static-nc-home/2.6.0/img/journey/guide/subject_pc_ko.png") 50% 0 / auto 100% no-repeat; }
.guide-view{ position:relative; }
.slides{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; gap:4px; }
.slides::-webkit-scrollbar{ display:none; }
.slide{ flex:0 0 100%; scroll-snap-align:center; }
.slide img{ display:block; width:100%; height:auto; aspect-ratio:800/485; object-fit:cover; }
.gbtn{ position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:64px; height:72px; border:0; cursor:pointer; background:center / contain no-repeat; }
.gbtn.prev{ left:4px; background-image:url("https://assets.playnccdn.com/static-nc-home/2.3.1/img/lineagew/guide/prev_pc.png"); }
.gbtn.next{ right:4px; background-image:url("https://assets.playnccdn.com/static-nc-home/2.3.1/img/lineagew/guide/next_pc.png"); }
.gbtn:disabled{ opacity:.3; cursor:default; }
@media (max-width:1024px){ .guide-title{ height:76px; } .gbtn{ width:40px; height:46px; } }

/* 안쪽 페이지 머리 배너 */
.banner{ background:linear-gradient(rgba(0,0,0,.35), rgba(23,23,23,.95)), url("https://assets.playnccdn.com/static-nc-home/2.1.0/img/lineagew/news/bg.jpg") center / cover; border-bottom:1px solid var(--line); }
.banner h1{ color:transparent; background:linear-gradient(180deg,#fff3c4,#facd50 60%,#b8791f); -webkit-background-clip:text; background-clip:text; text-shadow:none; filter:drop-shadow(0 2px 2px #000); }
.banner p{ color:#cfc7ba; }

/* 밝은 테마에서 쓰던 색 덮기 */
section.block{ background:rgba(10,10,10,.55); border-left:1px solid var(--line); border-right:1px solid var(--line); }
.head h2, .sys h3, .subh{ color:var(--brass); }
tr.daily td{ background:rgba(250,205,80,.06); }
td{ border-bottom-color:rgba(204,173,150,.12); }
.field::before{ background:linear-gradient(to top, rgba(0,0,0,.82), rgba(0,0,0,.25)), var(--bg); }
.field .lv{ color:var(--brass); } .field p{ color:#ddd; } .field h3{ color:#fff; }
.evt .top{ background:linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.55)), var(--bg); }
.evt .when{ color:#cfc7ba; } .evt .state{ background:rgba(0,0,0,.5); color:var(--brass); }
.pop{ border-color:rgba(250,205,80,.5); }
.pop .art{ color:#2b2442; }
.filters button[aria-pressed="true"]{ color:#171717; }
.tag{ color:var(--brass); }
#topBtn span{ color:var(--parch); }

/* 오른쪽 아래 고객센터 배너 */
.float .cs-banner{ width:168px; height:auto; border-radius:0; display:flex; flex-direction:column; padding:0; overflow:hidden; border:1px solid rgba(250,205,80,.45); background:linear-gradient(180deg,#3a2a1a,#120d09); box-shadow:0 6px 20px rgba(0,0,0,.5); }
.cs-name{ padding:16px 8px 12px; font-family:var(--display); font-size:1.5rem; color:transparent; background:linear-gradient(180deg,#fff3c4,#facd50 60%,#b8791f); -webkit-background-clip:text; background-clip:text; filter:drop-shadow(0 2px 2px #000); }
.cs-go{ background:#b62319; color:#fff; font-size:.8rem; font-weight:700; padding:7px 4px; }
@media (max-width:600px){ .float .cs-banner{ width:120px; } .cs-name{ font-size:1.1rem; padding:10px 6px 8px; } }

/* 좁은 화면에서 가로로 넘치지 않게 */
html, body{ overflow-x:clip; }
.mcard, .mcard .thumb, .slide, .hero-in{ min-width:0; }
@media (max-width:480px){ .main-menu{ gap:22px 8px; padding-inline:10px; } .mcard{ height:130px; } .mcard-title{ font-size:13px; letter-spacing:0; } .hero .ctas{ gap:8px; } .next-boss{ flex-wrap:wrap; justify-content:center; gap:6px 12px; } }

/* ===== 관리자 모드 ===== */
.admin-entry{ display:block; margin:-34px auto 18px; background:none; border:0; color:var(--mute); font:inherit; font-size:.78rem; opacity:.6; cursor:pointer; padding:6px 10px; }
.admin-entry:hover{ opacity:1; color:var(--brass); }
.admin-modal{ position:fixed; inset:0; z-index:100; background:rgba(0,0,0,.65); display:grid; place-items:center; padding:16px; }
.admin-modal[hidden], .admin-bar[hidden]{ display:none; }
.admin-box{ width:min(360px,100%); background:#1f1d1b; border:1px solid rgba(250,205,80,.5); padding:22px; display:grid; gap:8px; box-shadow:0 20px 50px rgba(0,0,0,.6); }
.admin-box h2{ margin:0 0 6px; font-family:var(--display); font-weight:400; color:var(--brass); font-size:1.4rem; }
.admin-box label{ color:var(--mute); font-size:.88rem; }
.admin-box input{ font:inherit; padding:10px 12px; background:#111; color:var(--parch); border:1px solid var(--line); border-radius:4px; }
.admin-box input:focus{ outline:2px solid var(--brass); outline-offset:1px; }
.admin-msg{ min-height:1.3em; margin:0; color:#ff8a70; font-size:.86rem; }
.admin-acts{ display:flex; justify-content:flex-end; gap:8px; }
.admin-ui button{ font:inherit; font-size:.88rem; padding:8px 14px; border-radius:4px; border:1px solid var(--line); background:#2c2925; color:var(--parch); cursor:pointer; }
.admin-ui button.primary{ background:var(--ember); border-color:var(--ember); color:#fff; font-weight:700; }
.admin-ui button.danger{ background:none; color:#ff8a70; border-color:rgba(255,138,112,.4); }
.admin-ui button:disabled{ opacity:.45; cursor:default; }
.admin-ui button.admin-entry{ border:0; background:none; }
.admin-bar{ position:fixed; left:0; right:0; bottom:0; z-index:90; display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px)); background:rgba(15,13,11,.96); border-top:2px solid var(--brass); box-shadow:0 -6px 20px rgba(0,0,0,.5); }
.admin-hint{ color:var(--brass); font-size:.9rem; margin-right:auto; }
.admin-hint b{ color:#ff8a70; font-weight:500; }
.admin-status{ color:var(--parch); font-size:.86rem; }
body.admin-on{ padding-bottom:84px; }
body.admin-on .float{ bottom:calc(env(safe-area-inset-bottom,0px) + 90px); }
body.admin-on [data-ek]{ outline:1px dashed rgba(250,205,80,.45); outline-offset:2px; cursor:text; }
body.admin-on [data-ek]:hover, body.admin-on [data-ek]:focus{ outline:2px solid var(--brass); background-color:rgba(250,205,80,.06); }
body.admin-on [data-ek].ae-changed{ outline:2px solid #ff8a70; }
.filters[hidden], .admin-menu[hidden], #imgUrlForm[hidden]{ display:none; }
body.admin-on img[data-ik]{ outline:2px dashed rgba(250,205,80,.6); outline-offset:-2px; cursor:pointer; }
body.admin-on img[data-ik]:hover{ outline-style:solid; filter:brightness(1.1); }
body.admin-on img[data-ik].ae-changed{ outline:3px solid #ff8a70; }
body.admin-on table[data-tk] [contenteditable], body.admin-on #bossBody [contenteditable]{ outline:1px dashed rgba(250,205,80,.4); outline-offset:-3px; cursor:text; }
body.admin-on table[data-tk] [contenteditable]:focus, body.admin-on #bossBody [contenteditable]:focus{ outline:2px solid var(--brass); }
table.ae-changed{ box-shadow:0 0 0 2px #ff8a70; }
.admin-rowctl{ white-space:nowrap; width:1%; }
.admin-rowctl button, .admin-bosscol button, .admin-addrow button{ font:inherit; font-size:.85rem; min-width:30px; padding:3px 8px; margin:1px; border-radius:4px; border:1px solid var(--line); background:#2c2925; color:var(--parch); cursor:pointer; }
.admin-rowctl button[data-act="del"], .admin-bosscol button{ color:#ff8a70; }
.admin-bosscol{ white-space:nowrap; }
.admin-bosscol input[type=color]{ width:34px; height:30px; padding:0; border:1px solid var(--line); background:none; vertical-align:middle; cursor:pointer; }
#bossBody select{ font:inherit; font-size:.88rem; background:#111; color:var(--brass); border:1px solid var(--line); border-radius:4px; padding:4px 6px; }
.admin-note{ color:var(--mute); font-size:.82rem; }
.admin-menu{ position:fixed; z-index:95; display:grid; gap:6px; min-width:200px; padding:10px; background:#1f1d1b; border:1px solid rgba(250,205,80,.5); box-shadow:0 12px 30px rgba(0,0,0,.6); }
.admin-menu > button{ text-align:left; }
#imgUrlForm{ display:flex; gap:6px; }
#imgUrlForm input{ flex:1; min-width:0; font:inherit; font-size:.85rem; padding:6px 8px; background:#111; color:var(--parch); border:1px solid var(--line); border-radius:4px; }
.admin-panel{ width:min(760px,100%); max-height:88vh; overflow-y:auto; }
.admin-panel h3{ margin:12px 0 2px; color:var(--parch); font-size:1rem; }
.admin-menurows{ display:grid; gap:6px; }
.admin-mhead, .admin-mrow{ display:grid; grid-template-columns:1fr 1fr 1.6fr; gap:6px; }
.admin-mhead span{ color:var(--mute); font-size:.8rem; }
.admin-mrow input, .admin-pop input, .admin-pop textarea, .admin-pop select{ font:inherit; font-size:.88rem; width:100%; min-width:0; padding:6px 8px; background:#111; color:var(--parch); border:1px solid var(--line); border-radius:4px; }
.admin-pop{ border:1px solid var(--line); border-radius:6px; padding:8px 12px 12px; margin:8px 0; display:grid; grid-template-columns:1fr 1fr; gap:8px 10px; }
.admin-pop legend{ color:var(--brass); font-size:.85rem; padding:0 4px; }
.admin-pop label{ display:grid; gap:3px; color:var(--mute); font-size:.8rem; }
.admin-pop label:nth-of-type(3){ grid-column:1 / -1; }
.admin-pop button{ justify-self:start; align-self:end; }
@media (max-width:600px){ .admin-mhead{ display:none; } .admin-mrow{ grid-template-columns:1fr; padding-bottom:8px; border-bottom:1px solid var(--line); } .admin-pop{ grid-template-columns:1fr; } }
.admin-btnrows{ display:grid; gap:6px; }
.admin-bhead, .admin-brow{ display:grid; grid-template-columns:1.3fr 1fr 1.3fr; gap:6px; align-items:center; }
.admin-bhead span{ color:var(--mute); font-size:.8rem; }
.admin-where{ color:var(--parch); font-size:.84rem; line-height:1.3; }
.admin-brow input{ font:inherit; font-size:.88rem; width:100%; min-width:0; padding:6px 8px; background:#111; color:var(--parch); border:1px solid var(--line); border-radius:4px; }
@media (max-width:600px){ .admin-bhead{ display:none; } .admin-brow{ grid-template-columns:1fr; padding-bottom:8px; border-bottom:1px solid var(--line); } }

/* ===== 커츠서버 자료 페이지 ===== */
.sigil.has-img{ width:56px; height:56px; overflow:hidden; background:#000!important; border-color:rgba(250,205,80,.4); }
.sigil img{ width:100%; height:100%; object-fit:cover; display:block; }
/* 클래스 */
.classes{ grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.cls-img{ height:240px; background:linear-gradient(180deg,#2a2520,#0f0d0b); display:flex; align-items:flex-end; justify-content:center; overflow:hidden; }
.cls-img img{ max-height:100%; width:auto; object-fit:contain; }
.cls ul{ margin:8px 0 0; padding-left:1.1em; color:var(--mute); font-size:.92rem; }
.cls li{ margin-bottom:4px; }
/* 사냥터 */
.hunts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.hunt{ background:var(--stone); border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.hunt-img{ height:160px; background:#000; overflow:hidden; }
.hunt-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.hunt .txt{ padding:12px 16px 16px; }
.hunt h3{ margin:2px 0 6px; font-family:var(--display); font-weight:400; font-size:1.3rem; color:var(--parch); }
.hunt .lv{ color:var(--brass); font-size:.82rem; font-weight:700; }
.hunt p{ margin:0; color:var(--mute); font-size:.9rem; }
/* 마법인형 */
.dolls{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; margin-top:12px; }
.doll{ background:var(--stone); border:1px solid var(--line); border-radius:6px; padding:14px 10px; text-align:center; }
.doll-img{ width:84px; height:84px; margin:0 auto 6px; }
.doll-img img{ width:100%; height:100%; object-fit:contain; }
.doll .role{ color:var(--mute); font-size:.78rem; }
.doll h3{ margin:2px 0; font-family:var(--display); font-weight:400; font-size:1.1rem; color:var(--parch); }
.doll p{ margin:0; color:var(--brass); font-weight:700; font-size:.86rem; }
/* 홍보 */
.checks{ list-style:none; margin:0 0 18px; padding:0; }
.checks li{ position:relative; padding-left:1.6em; margin-bottom:6px; }
.checks li::before{ content:"✓"; position:absolute; left:0; color:var(--brass); font-weight:700; }
.promo-card{ margin-top:20px; }
.promo-text{ font-size:.92rem; line-height:1.8; background:#111; border:1px dashed var(--brass-dim); border-radius:6px; padding:14px; margin:8px 0 14px; color:var(--parch); }
button.dl-btn{ border:0; cursor:pointer; font-family:inherit; }
/* 고객센터 · 다운로드 */
.cs-links{ display:flex; flex-direction:column; gap:10px; align-items:flex-start; margin-top:12px; }
.faq-title{ margin:0 0 6px; color:var(--brass); font-size:1.05rem; }
.must-read{ margin-bottom:20px; }
.must-read ul{ margin:0; padding-left:1.1em; color:var(--mute); }
.mirrors{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.mirrors h3{ margin:0 0 6px; }
.mirrors .dl-btn{ display:inline-block; margin:6px 0; }
.admin-bimg{ width:44px; height:44px; padding:0!important; border-radius:50%!important; overflow:hidden; vertical-align:middle; background:#000!important; color:var(--brass)!important; font-family:var(--display)!important; font-size:1.1rem!important; outline:2px dashed rgba(250,205,80,.6); outline-offset:1px; }
.admin-bimg img{ width:100%; height:100%; object-fit:cover; display:block; }
.admin-bimg:hover{ outline-style:solid; }
.doll-note{ margin-top:18px; }

/* ===== 관리자 모드: 반복 칸 ===== */
body.admin-on [data-list] > *{ position:relative; }
body.admin-on [data-list]{ outline:1px dashed rgba(250,205,80,.25); outline-offset:6px; }
body.admin-on [data-list].ae-changed{ outline:2px solid #ff8a70; }
body.admin-on [data-list] [contenteditable="true"], body.admin-on [data-list] > [contenteditable="true"]{ outline:1px dashed rgba(250,205,80,.45); outline-offset:2px; cursor:text; }
body.admin-on [data-list] [contenteditable="true"]:focus{ outline:2px solid var(--brass); }
body.admin-on [data-list] img{ cursor:pointer; outline:2px dashed rgba(250,205,80,.6); outline-offset:-2px; }
.admin-itembar{ position:absolute; top:4px; right:4px; z-index:20; display:flex; gap:3px; padding:3px; border-radius:6px; background:rgba(10,8,6,.88); border:1px solid rgba(250,205,80,.5); opacity:.35; transition:opacity .15s; user-select:none; font-size:0; line-height:1; }
[data-list] > *:hover > .admin-itembar, [data-list] > *:focus-within > .admin-itembar{ opacity:1; }
.admin-itembar button{ font:inherit; font-size:13px; min-width:26px; height:26px; padding:0 6px; border-radius:4px; border:1px solid rgba(204,173,150,.3); background:#2c2925; color:#ece6dc; cursor:pointer; }
.admin-itembar button[data-act="idup"]{ color:#9be39b; }
.admin-itembar button[data-act="idel"]{ color:#ff8a70; }
.admin-itembar button:hover{ background:#3c362f; }
li > .admin-itembar, p > .admin-itembar, details > .admin-itembar{ top:-2px; }
#linkMenu{ min-width:260px; }
#linkRows{ display:grid; gap:6px; }
#linkRows label{ display:grid; gap:3px; color:var(--mute); font-size:.8rem; }
#linkRows input{ font:inherit; font-size:.85rem; padding:6px 8px; background:#111; color:var(--parch); border:1px solid var(--line); border-radius:4px; }
@media (hover:none){ .admin-itembar{ opacity:1; } }

/* ===== 그림 크기: 맨 위 "그림 크기 설정" 값을 쓴다 ===== */
.cls-img{ height:var(--cls-h); }
.cls-img img{ width:100%; height:100%; max-height:none; object-fit:var(--cls-fit); object-position:var(--cls-pos); }
.hunt-img{ height:var(--hunt-h); }
.hunt-img img{ object-fit:var(--hunt-fit); object-position:var(--hunt-pos); }
.doll-img{ width:var(--doll-size); height:var(--doll-size); }
.doll-img img{ object-fit:var(--doll-fit); }
.mcard{ height:var(--mcard-h); }
.mcard .thumb img{ object-fit:var(--mcard-fit); object-position:var(--mcard-pos); }
.slide img{ aspect-ratio:var(--slide-ratio); object-fit:var(--slide-fit); }
.sigil.has-img{ width:var(--boss-size); height:var(--boss-size); }
.ad-step img{ max-width:var(--ad-img-w); }
@media (max-width:1024px){ .mcard{ height:var(--mcard-h-m); } .ad-step img{ max-width:max(var(--ad-img-w),70%); } }
@media (max-width:768px){ .ad-step img{ max-width:100%; } }
/* 관리자 모드: 크기 조절 메뉴 */
#sizeMenu{ min-width:280px; max-width:min(360px, calc(100vw - 16px)); }
#sizeRows{ display:grid; gap:10px; margin:4px 0; }
.admin-size{ display:grid; gap:4px; color:var(--mute); font-size:.82rem; }
.admin-size span{ display:flex; align-items:center; gap:6px; }
.admin-size input[type=range]{ flex:1; accent-color:var(--brass); }
.admin-size input[type=number]{ width:64px; font:inherit; font-size:.85rem; padding:4px 6px; background:#111; color:var(--parch); border:1px solid var(--line); border-radius:4px; }
.admin-size i{ font-style:normal; color:var(--mute); }
.admin-size select{ font:inherit; font-size:.85rem; padding:5px 6px; background:#111; color:var(--parch); border:1px solid var(--line); border-radius:4px; }
#sizeMenu .admin-acts{ display:flex; gap:6px; justify-content:flex-end; }
#sizeMenu[hidden], #imgSize[hidden]{ display:none; }
.admin-local{ background:var(--brass); color:#171717; border-radius:3px; padding:1px 6px; font-size:.78rem; }

/* 마법인형·변신·성물 등급별 보기 버튼 */
.grade-tabs{ position:sticky; top:66px; z-index:5; padding:10px 0; margin:6px 0 4px; background:var(--abyss); }
.grade-tabs small{ opacity:.7; font-size:.8em; margin-left:2px; }
.dolls[hidden], h3.subh[hidden]{ display:none; }
@media (max-width:600px){ .grade-tabs{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; } .grade-tabs button{ flex:none; padding:6px 10px; } }
