/* 官網 v18（2026-10-22）：三態標示、首頁新段、第一次進服、旅人手冊。沿用 Ember-Plume tokens，只加新區塊。 */
.footer .footer-legal .footer-version{margin:0 0 .4rem;color:var(--gold);font:700 .92rem/1.6 var(--font-body)}

/* 待公告佔位（文案標【待使用者提供】處） */
.v18-tbd{display:inline-flex;align-items:center;gap:.4em;padding:.1em .7em;border:1px dashed var(--st-closed);border-radius:999px;color:var(--st-closed);font-weight:700;font-size:.92em;letter-spacing:.04em}
.v18-tbd::before{content:"";width:.5em;height:.5em;border-radius:50%;background:currentColor;opacity:.7}
.v18-tbd-list{display:grid;gap:10px;margin:18px 0}
.v18-tbd-list>div{display:grid;grid-template-columns:minmax(7em,auto) 1fr;gap:4px 14px;align-items:baseline;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-s);background:rgba(13,11,23,.45)}
.v18-tbd-list dt{color:var(--parchment);font-weight:700}
.v18-tbd-list dd{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.v18-tbd-list small{color:var(--ash-dim)}
.eh-join-card:has(>.eh-join-copy:only-child){grid-template-columns:1fr;max-width:820px;margin-inline:auto}

/* 首頁 02 職業附註 */
.v18-class-note{display:grid;gap:8px}
.v18-class-note p{margin:0}
.v18-class-note a{margin-left:0}

/* 首頁 03 第一小時 */
.v18-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.v18-choice-card{padding:22px;border:1px solid var(--line-strong);border-radius:var(--radius-m);background:var(--night-2)}
.v18-choice-card h3{margin:0 0 6px;font:700 1.35rem/1.3 var(--font-display);color:var(--gold)}
.v18-choice-card p{margin:0;color:var(--ash)}
.v18-choice-note{margin:14px 0 0;color:var(--ash)}
.v18-sub{margin:36px 0 14px;font:700 1.25rem/1.4 var(--font-display)}
.v18-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.v18-steps>li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:16px 18px;border:1px solid var(--line);border-radius:var(--radius-m);background:rgba(20,17,34,.7)}
.v18-step-n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(140deg,var(--gold),var(--ember));color:var(--night-0);font-weight:800}
.v18-steps h4{margin:0 0 4px;font-size:1.08rem;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.v18-steps h4 small{color:var(--ash-dim);font-weight:400}
.v18-steps p{margin:0;color:var(--ash)}
.v18-tip{margin:22px 0;padding:16px 20px;border-left:3px solid var(--gold);border-radius:0 var(--radius-s) var(--radius-s) 0;background:rgba(242,196,109,.07)}
.v18-tip p{margin:0}
.v18-tip p+p{margin-top:6px;color:var(--ash)}

/* 首頁 04 五門 */
.v18-doors{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.v18-door{--door:var(--gold);position:relative;padding:20px 20px 18px;border:1px solid color-mix(in srgb,var(--door) 45%,transparent);border-radius:var(--radius-m);background:linear-gradient(160deg,color-mix(in srgb,var(--door) 14%,var(--night-2)),var(--night-2) 70%)}
.v18-door h3{margin:8px 0 4px;font:700 1.2rem/1.3 var(--font-display)}
.v18-door p{margin:0;color:var(--ash)}
.v18-door-chip{display:inline-block;padding:.05em .7em;border-radius:999px;background:var(--door);color:var(--night-0);font-weight:800;font-size:.85rem}
.v18-door-free{border-style:dashed}
.v18-door code{font-family:var(--font-mono);color:var(--parchment)}

/* 路線圖三欄（首頁 05、手冊 04） */
.v18-road{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.v18-road-col{padding:20px;border:1px solid var(--line);border-radius:var(--radius-m);background:rgba(20,17,34,.75)}
.v18-road-col header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:10px}
.v18-road-col header small{color:var(--ash-dim)}
.v18-road-col ul{margin:0;padding-left:1.1em;display:grid;gap:8px;color:var(--ash)}
.v18-road-live{border-color:color-mix(in srgb,var(--st-live) 45%,transparent)}
.v18-road-dev{border-color:color-mix(in srgb,var(--st-dev) 40%,transparent)}
.v18-road-plan{border-color:color-mix(in srgb,var(--st-plan) 35%,transparent)}

/* 旅人手冊：技能清單、素材五階 */
.ap-skill-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.ap-skill-list li{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-s);background:rgba(13,11,23,.45)}
.ap-skill-list b{color:var(--gold)}
.ap-skill-list span{color:var(--ash)}
.ap-spec-line{margin:12px 0 0;color:var(--ash)}
.v18-tiers{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.v18-tiers li{padding:14px;border:1px solid var(--line);border-radius:var(--radius-s);background:rgba(20,17,34,.7)}
.v18-tiers b{display:block;color:var(--gold);font:800 1.1rem/1.2 var(--font-latin)}
.v18-tiers span{color:var(--ash);font-size:.95rem}
.v18-facts{margin:0;padding-left:1.1em;display:grid;gap:8px;color:var(--ash)}
.v18-facts strong{color:var(--parchment)}

/* 第一次進服頁 */
.v18-hotbar{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px}
.v18-hotbar li{display:grid;justify-items:center;gap:2px;padding:10px 4px;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--night-2);text-align:center;font-size:.9rem;color:var(--ash)}
.v18-hotbar b{color:var(--gold);font:800 1.15rem/1 var(--font-latin)}
.v18-stations{margin:0;padding:0;list-style:none;display:grid;gap:8px;counter-reset:st}
.v18-stations li{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-s);background:rgba(20,17,34,.7);counter-increment:st}
.v18-stations li::before{content:counter(st);display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--gold);color:var(--night-0);font-weight:800}
.v18-stations b{color:var(--parchment)}
.v18-commands{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.v18-commands>div{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-s);background:rgba(13,11,23,.5)}
.v18-commands dt code{font:700 1.02rem/1.4 var(--font-mono);color:var(--gold)}
.v18-commands dd{margin:2px 0 0;color:var(--ash)}
.v18-bullets{margin:0;padding-left:1.1em;display:grid;gap:6px;color:var(--ash)}
.v18-bullets b{color:var(--parchment)}
.v18-reward{margin:10px 0 0;color:var(--gold);font-weight:700}

@media (max-width:900px){
  .v18-doors,.v18-road,.v18-commands{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v18-tiers{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v18-hotbar{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media (max-width:600px){
  .v18-choice,.v18-doors,.v18-road,.v18-commands{grid-template-columns:1fr}
  .v18-tiers{grid-template-columns:1fr 1fr}
  .v18-hotbar{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v18-tbd-list>div{grid-template-columns:1fr}
}
.v18-tip code,.v18-bullets code,.w6-section p code{font-family:var(--font-mono);color:var(--gold)}
.progress-section .v18-road{margin:28px 0 8px}

/* 羽冠城地圖 v18 */
.v18-map-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;margin:24px 0}
.v18-map-panel h2{margin:0 0 10px;font:700 1.1rem/1.4 var(--font-display)}
.v18-map-canvas{position:relative;border:1px solid var(--line-strong);border-radius:var(--radius-m);overflow:hidden;background:radial-gradient(circle at 50% 65%,rgba(255,123,58,.08),transparent 60%),var(--night-2)}
.v18-map-overview{aspect-ratio:2300/2400}
.v18-map-inset{aspect-ratio:150/160}
.v18-map-canvas svg{position:absolute;inset:0;width:100%;height:100%}
.v18-map-protect{fill:none;stroke:#bdb7ff;stroke-opacity:.45;stroke-width:6;stroke-dasharray:30 20}
.v18-map-wall{fill:rgba(242,196,109,.05);stroke:#f2c46d;stroke-opacity:.6;stroke-width:10}
.v18-map-road{fill:none;stroke:#ffb867;stroke-opacity:.45;stroke-width:8;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.v18-map-inset .v18-map-road{stroke-width:2;stroke-dasharray:6 5}
.v18-map-plaza{fill:rgba(242,196,109,.25);stroke:#f2c46d;stroke-width:2;vector-effect:non-scaling-stroke}
.v18-map-inset-box{fill:none;stroke:#74e0b5;stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:4 3}
.v18-map-label{fill:#d3c6b0;font:600 46px var(--font-body)}
.v18-map-label-s{fill:#d3c6b0;font:600 5px var(--font-body)}
.v18-map-inset-tag{position:absolute;left:var(--x);top:var(--y);transform:translate(4px,-120%);padding:1px 8px;border-radius:999px;background:rgba(13,11,23,.85);border:1px solid #74e0b5;color:#74e0b5;font-size:.78rem;white-space:nowrap}
.v18-pin{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);padding:0;border:0;background:none;cursor:pointer}
.v18-pin-dot{display:grid;place-items:center;min-width:26px;height:26px;padding:0 4px;border-radius:999px;background:var(--gold);color:var(--night-0);font:800 .78rem/1 var(--font-body);box-shadow:0 0 0 3px rgba(13,11,23,.85),0 4px 12px rgba(0,0,0,.5)}
.v18-pin-gate .v18-pin-dot{background:#a9c4ff}
.v18-pin-station .v18-pin-dot{background:#74e0b5}
.v18-pin-challenge .v18-pin-dot{background:#ffb45c}
.v18-pin-quest .v18-pin-dot{background:#ff8a6a}
.v18-pin-dungeon .v18-pin-dot{background:#bdb7ff}
.v18-pin-spawn .v18-pin-dot,.v18-pin-plaza .v18-pin-dot{background:#fff1c9}
.v18-pin[aria-pressed="true"] .v18-pin-dot{outline:3px solid #fff;outline-offset:2px}
.v18-pin:focus-visible .v18-pin-dot{outline:3px solid #fff;outline-offset:2px}
.v18-map-list-head h2{margin:0;font:700 1.4rem/1.3 var(--font-display)}
.v18-map-list-head p{margin:4px 0 14px;color:var(--ash)}
.v18-map-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.v18-map-list li{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-s);background:rgba(20,17,34,.7);scroll-margin-top:110px}
.v18-map-list li.is-active{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}
.v18-map-list h3{margin:0 0 2px;font-size:1rem;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.v18-map-list p{margin:0;color:var(--ash)}
.v18-map-list small{color:var(--ash-dim);font-family:var(--font-mono)}
.v18-map-num{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--night-4);color:var(--gold);font-weight:800}
.v18-map-extra{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:28px 0}
.v18-map-card{padding:22px;border:1px solid var(--line-strong);border-radius:var(--radius-m);background:var(--night-2)}
.v18-map-card h2{margin:8px 0 6px;font:700 1.3rem/1.3 var(--font-display)}
.v18-map-card p{color:var(--ash)}
.v18-map-card code{font-family:var(--font-mono);color:var(--gold)}
@media (max-width:900px){.v18-map-grid,.v18-map-list,.v18-map-extra{grid-template-columns:1fr}}
@media (max-width:600px){.v18-pin-dot{min-width:22px;height:22px;font-size:.7rem}.v18-map-label{font-size:60px}}
