/* Island world: home map, island pages, news/repos, cookie notice. Pastel, rounded. */
:root { --isl-sky:#dff1ff; --isl-grass:#9fd88a; --isl-ink:#2f2a3d; --isl-card:#fffdf8; --isl-line:#efe6d8; --isl-accent:#7b5cd6; --isl-soon:#a29bb3; }
body.hq-page { background:linear-gradient(180deg,#eaf6ff 0%,#fbf8f2 380px); }
.hq-main.hq-wide { max-width:1100px; }
.hq-hero h1 { font-size:clamp(1.5rem,3vw,2.3rem); margin:.2rem 0 .6rem; }
.hq-lead { font-size:1.06rem; color:#3c3650; max-width:860px; }
.hq-sitebar { background:rgba(255,255,255,.92); backdrop-filter:blur(6px); }
.hq-lang { display:flex; gap:.35rem; font-size:.82rem; }
.hq-lang a { padding:.15rem .5rem; border-radius:999px; border:1px solid var(--hq-line); color:var(--hq-muted); text-decoration:none; }
.hq-lang a[aria-current="true"] { background:var(--isl-accent); border-color:var(--isl-accent); color:#fff; }
.hq-footer-langs a { margin-right:.6rem; }

/* map */
.hq-map { position:relative; margin:1.2rem 0 1.4rem; border-radius:28px; overflow:hidden; box-shadow:0 18px 40px -18px rgba(70,90,140,.45); background:var(--isl-sky); }
.hq-map img { display:block; width:100%; height:auto; aspect-ratio:16/9; }
.hq-pins { position:absolute; inset:0; }
.hq-main .hq-pin, .hq-pin { position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:2px;
  text-decoration:none; color:var(--isl-ink); background:rgba(255,253,246,.94); border:2px solid #fff; border-radius:16px;
  padding:.3rem .75rem .35rem; box-shadow:0 6px 14px -6px rgba(60,50,90,.45); transition:transform .15s, box-shadow .15s; white-space:nowrap; }
.hq-pin:hover, .hq-pin:focus-visible { transform:translate(-50%,-56%) scale(1.06); box-shadow:0 10px 20px -8px rgba(60,50,90,.55); outline:none; }
.hq-pin:focus-visible { border-color:var(--isl-accent); }
.hq-pin-name { font-weight:800; font-size:.95rem; letter-spacing:-.01em; }
.hq-pin-tag { font-size:.72rem; color:#6b6480; }
.hq-pin.is-plaza { background:#f4efff; }
.hq-main .hq-pin.is-soon, .hq-pin.is-soon { background:rgba(245,243,248,.9); color:#6f6884; }
.hq-pin.is-soon .hq-pin-tag { color:var(--isl-soon); font-style:italic; }

/* cards & lists */
.hq-quick { background:#fff7df; border:2px solid #f6e3a7; border-radius:18px; padding:.9rem 1.15rem; margin:1rem 0 1.3rem; }
.hq-quick h2 { font-size:.95rem; margin:0 0 .25rem; text-transform:uppercase; letter-spacing:.04em; color:#9a7a16; }
.hq-quick p { margin:0; }
.hq-island-list { list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:.8rem; }
.hq-island-list.is-small { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); }
.hq-island-card a { display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto; column-gap:.6rem; align-items:center; height:100%; box-sizing:border-box;
  padding:.85rem 1rem; background:var(--isl-card); border:2px solid var(--isl-line); border-radius:20px; text-decoration:none; color:var(--isl-ink); transition:transform .15s,border-color .15s; }
.hq-island-card a:hover { transform:translateY(-2px); border-color:#cbbcf3; }
.hq-island-card .hq-emoji { grid-row:1 / span 2; font-size:1.7rem; }
.hq-island-card strong { font-size:1rem; }
.hq-island-card .hq-tag { grid-column:2; font-size:.85rem; color:#6b6480; }
.hq-island-card .hq-badge { display:none; }
.hq-island-card.is-soon a { background:#f6f4f9; color:#6f6884; border-style:dashed; }
.hq-badge { display:inline-block; font-size:.72rem; font-weight:700; padding:.05rem .5rem; border-radius:999px; background:#ece8f3; color:#6f6884; vertical-align:middle; }
.hq-badge.is-live { background:#dcf5d3; color:#2e7a1f; }
.hq-soon-title { font-weight:700; color:#6f6884; }
.hq-cards li { border-radius:16px; border-width:2px; border-color:var(--isl-line); background:var(--isl-card); }
.hq-two { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.hq-log { list-style:none; padding:0; }
.hq-log li { padding:.6rem 0; border-bottom:1px dashed var(--isl-line); }
.hq-log time { font-size:.85rem; color:var(--hq-muted); margin-right:.4rem; }
.hq-log p { margin:.2rem 0 0; color:#4a4460; }
.hq-faq details { background:var(--isl-card); border:2px solid var(--isl-line); border-radius:16px; padding:.6rem 1rem; margin:.5rem 0; }
.hq-faq summary { cursor:pointer; list-style:none; }
.hq-faq summary::-webkit-details-marker { display:none; }
.hq-faq summary h3 { display:inline; font-size:1rem; margin:0; }
.hq-faq summary::before { content:"Q"; font-weight:800; color:var(--isl-accent); margin-right:.5rem; }
.hq-faq details p { margin:.4rem 0 .2rem; }
.hq-post { max-width:780px; }
.hq-item { margin-top:1.6rem; }
.hq-postnav { display:flex; justify-content:space-between; gap:1rem; margin-top:2rem; padding-top:1rem; border-top:1px solid var(--hq-line); }

/* cookie notice */
.hq-consent { position:fixed; left:1rem; right:1rem; bottom:1rem; z-index:1000; max-width:720px; margin:0 auto; background:#fffdf8; color:#2f2a3d;
  border:2px solid var(--isl-line); border-radius:18px; box-shadow:0 14px 34px -12px rgba(40,30,70,.4); padding:.9rem 1.1rem; display:flex; gap:.8rem 1rem; flex-wrap:wrap; align-items:center;
  font:500 .92rem/1.5 Inter,"Apple SD Gothic Neo","Noto Sans KR",system-ui,sans-serif; }
.hq-consent p { margin:0; flex:1 1 320px; }
.hq-consent a { color:var(--isl-accent); }
.hq-consent .hq-consent-btns { display:flex; gap:.5rem; }
.hq-consent button { font:inherit; font-weight:700; border-radius:999px; padding:.45rem 1rem; cursor:pointer; border:2px solid var(--isl-accent); }
.hq-consent .is-accept { background:var(--isl-accent); color:#fff; }
.hq-consent .is-reject { background:#fff; color:var(--isl-accent); }

@media (max-width: 760px) {
  .hq-pins { display:none; }              /* labels would overlap: the list below is the mobile navigation */
  .hq-map { border-radius:18px; margin:.8rem 0; }
  .hq-two { grid-template-columns:1fr; }
  .hq-island-list { grid-template-columns:1fr; }
  .hq-sitebar-inner { gap:.4rem; }
  .hq-nav { font-size:.85rem; gap:.15rem .7rem; }
}
@media (min-width: 761px) and (max-width: 1000px) { .hq-pin-tag { display:none; } .hq-pin { padding:.25rem .6rem; } }
@media (prefers-reduced-motion: reduce) { .hq-pin, .hq-island-card a { transition:none; } }

/* Status badges (content/islands.json "stage") */
.hq-stage { display:inline-block; font-size:.7rem; font-weight:700; line-height:1.4; padding:.05rem .5rem; border-radius:999px; vertical-align:middle; white-space:nowrap; }
.hq-stage.is-live { background:#dcf5d3; color:#2e7a1f; }
.hq-stage.is-dev { background:#fff1cc; color:#8a5a00; }
.hq-stage.is-planned { background:#ece8f3; color:#6f6884; }
.hq-pin .hq-stage { margin:.15rem 0; }
.hq-island-card .hq-stage { align-self:flex-start; justify-self:start; width:fit-content; }
.hq-stage-line { margin:-.4rem 0 .8rem; }
