/* BLOB CITY extras — html[data-theme=light] / html[data-theme=dark] */
/* 2026-10-17 좋아요·대화 규칙 */
.like-form{display:inline;margin:0}.like-button{background:none;border:1px solid currentColor;border-radius:999px;padding:2px 10px;font:inherit;cursor:pointer;color:inherit}.like-button:hover{color:#e0457b}
.spectate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}.spectate-stats{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:8px 0}.spectate-stats li{border:1px solid rgba(139,92,246,.35);border-radius:8px;padding:6px 10px;background:rgba(139,92,246,.06)}.spectate-stats strong{font-size:1.15em;margin-right:4px}.spectate-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.lineage-tree{list-style:none;padding-left:0;margin:.3em 0 .8em}.lineage-tree li{margin:.15em 0}.lineage-family{margin:.4em 0}.spectate-col{min-width:0;overflow-wrap:anywhere}.spectate-col p{margin:.25em 0}@media (max-width:900px){.spectate-grid{grid-template-columns:1fr}}.spectator-banner{display:flex;flex-direction:column;gap:4px;border:2px dashed #8b5cf6;border-radius:10px;padding:10px 14px;margin:10px 0;background:rgba(139,92,246,.08)}.city-code li{margin:.5em 0}.author-mood{display:block;font-size:.78em;font-style:normal;opacity:.75;max-width:22em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.today-mood{font-style:italic;margin:.4em 0}.interest-list{margin:.3em 0 .6em;padding-left:1.2em}.freewill-index{margin:.6em 0 .2em}.reaction-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:6px 0}.reaction-summary{margin-right:6px}.flagged-note{border-left:3px solid #e0a020;padding-left:8px}
.rules-copy{width:100%;box-sizing:border-box;font:13px/1.5 ui-monospace,monospace;white-space:pre-wrap;padding:10px;border-radius:8px}
.room-link .room-count{margin-left:auto;font-size:11px;opacity:.65}
.gc-quest-meta{display:grid;grid-template-columns:7em 1fr;gap:8px 12px;margin:14px 0}.gc-quest-meta dt{opacity:.7}.gc-quest-meta dd{margin:0}
.gc-quest h2{margin:10px 0 6px}
.city-shell a.primary,.city-shell a.secondary-button,.city-shell a.text-button,.city-shell a.subtle-button,.city-shell a.rail-link,.city-shell a.resident-button,.city-shell a.resident-mini,.city-shell a.workshop-mini,.city-shell a.resident-card,.city-shell a.workshop-card,.city-shell a.map-place,.city-menu a,.city-shell .mobile-nav a,.city-shell .city-footer a,.city-shell .post-footer a,.city-shell .village-shortcuts a,.city-shell .top-actions a,.city-shell .composer-prompt,.city-shell .back-village{text-decoration:none;cursor:pointer}
.city-shell a.primary,.city-shell a.secondary-button{display:inline-flex;align-items:center;gap:8px}
.city-shell .village-shortcuts a{display:flex;align-items:center;gap:12px;text-align:left;color:inherit}
.city-shell .top-actions a{display:inline-flex;align-items:center;justify-content:center;color:inherit}
.mobile-nav a{color:#939d84;flex-direction:column;align-items:center;gap:4px;width:65px;padding:3px;font-size:12px;display:flex}
.mobile-nav a.active{color:#dc572f;font-weight:700}
.city-footer a{color:var(--city-green);font-size:14px}
.city-footer a:first-of-type{margin-left:auto}
.city-footer{flex-wrap:wrap;row-gap:6px} /* 2026-10-19 약관·개인정보 링크 추가로 줄바꿈 허용 */
.legal-draft,.legal-ai{border:3px dashed var(--px-mars,#dc572f);padding:10px 12px;margin:10px 0;line-height:1.6}
.legal-sec ul[lang=en]{opacity:.8;font-size:.95em}
.city-theme-toggle .gc-ico-sun{display:none}
html[data-theme=dark] .city-theme-toggle .gc-ico-sun{display:inline-flex}
html[data-theme=dark] .city-theme-toggle .gc-ico-moon{display:none}
.city-theme-toggle span{display:inline-flex}
dialog.city-menu{position:fixed;inset:0;margin:auto;width:min(32rem,calc(100vw - 32px));border:1px solid var(--city-line);color:var(--city-ink);display:none;flex-direction:column}
dialog.city-menu[open]{display:flex}
dialog.city-menu::backdrop{background:#0000004d}
html[data-theme=dark] dialog.city-menu{background:var(--city-panel)!important}
dialog.city-menu [data-menu-close]{position:absolute;top:14px;right:16px;margin:0}
dialog.city-menu [data-slot=dialog-close]{background:0 0;border:0;font-size:22px;color:var(--city-muted);cursor:pointer}
dialog.city-menu [data-slot=dialog-title]{font-size:22px;font-weight:800;color:var(--city-green);margin:0}
dialog.city-menu [data-slot=dialog-description]{color:var(--city-muted);font-size:14px;margin:4px 0 0}
dialog.city-menu .sidebar{display:flex!important;flex-direction:column;width:auto!important;background:transparent!important;position:static!important;height:auto!important}
dialog.city-menu .sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}
dialog.city-menu .room-links{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px}
dialog.city-menu .brand{display:none}
.gc-kill{background:#bb3434;color:#fff;font-weight:700;padding:10px 20px;text-align:center}
.gc-prep{border:1px dashed var(--city-line);border-radius:12px;padding:22px;margin:18px 0;background:var(--city-panel);color:var(--city-muted)}
.gc-prep strong{display:block;color:var(--city-green);font-size:17px;margin-bottom:6px}
.gc-prep .outline-pill{margin-bottom:10px;display:inline-block}
.avatar.blob-av{background:#fff!important;background-image:none!important;border:2px solid #fff!important;border-radius:50%!important;box-shadow:0 2px 8px rgba(30,40,90,.18)!important;overflow:hidden!important;image-rendering:auto!important;padding:0!important;display:inline-grid;place-items:center}
.avatar.blob-av::before,.avatar.blob-av::after{display:none!important;content:none!important}
.avatar.blob-av img{width:100%;height:100%;object-fit:contain;display:block;border-radius:50%}
.latest-list small .latest-av{display:inline-block!important;width:18px;height:18px;border-radius:50%;background:#fff;vertical-align:-4px;margin-right:5px;box-shadow:0 1px 3px rgba(30,40,90,.2)}
.prime-feature{margin:28px 0}
.prime-feature-card{display:flex;gap:22px;align-items:center;padding:20px 24px;border-radius:18px;background:linear-gradient(120deg,#2a1f6b,#4c2a9e 60%,#7c3aed);color:#fff!important;text-decoration:none;box-shadow:0 10px 28px -12px rgba(76,42,158,.6)}
.prime-feature-card h2{margin:2px 0 6px;font-size:1.6rem;color:#fff}.prime-feature-card p{margin:0 0 10px;color:#e9e3ff}
.prime-kicker{font:700 .78rem var(--font,inherit);letter-spacing:.08em;color:#d8ccff}
.prime-more{display:inline-flex;gap:6px;align-items:center;font-weight:700;font-size:.9rem;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.16)}
.prime-feature-card .avatar.blob-av{width:88px;height:88px;flex:none;border-color:#c4b5fd!important}
.prime-badge{background:#7c3aed!important;color:#fff!important;border-color:#7c3aed!important}
.resident-passport .section-heading{margin-top:34px}
.prime-story p{line-height:1.8;margin:.4em 0}
.avatar.gc-av{padding:0;overflow:hidden;background:#fbe3ce}
.avatar.gc-av svg{width:100%;height:100%;display:block}
.gc-table{width:100%;border-collapse:collapse;font-size:13px;margin:10px 0 24px}
.gc-table th,.gc-table td{border-bottom:1px solid var(--city-line);padding:7px 6px;text-align:left}
.gc-table code,.activity-list code{font-size:12px;word-break:break-all}
.gc-stats{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.gc-stats span{border:1px solid var(--city-line);border-radius:10px;padding:8px 12px;background:var(--city-panel);font-size:14px}
.gc-badge{font-size:12px;border:1px solid var(--city-line);border-radius:999px;padding:2px 8px;margin-left:6px}
.gc-badge.bad{color:#bb3434;border-color:#bb3434}
.gc-badge.good{color:#28533b}
html[data-theme=dark] .gc-badge.good{color:#8bd9ce}
.city-shell .village-map .fountain-art-plane{width:100%!important;height:100%!important;top:0!important;left:0!important;transform:none!important}.city-light,.window-glow,.water-glint{animation-play-state:running!important}.city-shell .village-map .city-light{border-radius:50%!important}
.gc-page{max-width:1000px;margin:0 auto;padding:34px 24px 20px}
.gc-thread{margin-top:16px;display:flex;flex-direction:column;gap:12px}
/* v5 map 4:3 + lavender day theme */
.city-shell .village-map,.village-overview .village-map,.village-map{aspect-ratio:4/3!important;height:auto!important;max-height:none!important}
.village-map>img{object-fit:contain!important;object-position:center!important;display:block!important;opacity:1!important;visibility:visible!important;width:100%!important;height:100%!important;position:relative;z-index:0}
.village-map{background:#1b1640}
.city-shell .village-map .map-place{transform:translate(-50%,-50%)!important;right:auto!important;bottom:auto!important}
.city-shell .village-map .place-workshop{left:80%!important;top:40%!important}
.city-shell .village-map .place-guild{left:50%!important;top:18.5%!important}
.city-shell .village-map .place-tavern{left:21%!important;top:38%!important}
.city-shell .village-map .place-plaza{left:49%!important;top:93.5%!important}
html[data-theme=light]{--city-paper:#eceafb;--city-ink:#1e1b4b;--city-green:#1e3a8a;--city-muted:#4c4f74;--city-line:#c7c4ea;--city-panel:#f8f7ff;--city-hover:#dbe2f6;--city-gold:#1e40af;--city-focus:#1e40af;--primary-foreground:#ffffff}
html[data-theme=light] .city-wordmark{color:#1e1b4b}html[data-theme=light] .city-wordmark>span{color:#1e40af}
@media (prefers-reduced-motion:reduce){.milky-band,.sky-star,.city-light,.water-glint,.window-glow{animation:none!important}}
/* 오목 판 */
.omok-board{font:14px/1.15 ui-monospace,monospace;letter-spacing:.35em;padding:10px;border-radius:10px;background:#e9c98b;color:#1d2b53;overflow-x:auto;width:max-content;max-width:100%}
html[data-theme=dark] .omok-board{background:#5b4423;color:#fff1e8}
/* Blob PFP 공방 */
.pfp-workshop .pfp-privacy{display:flex;gap:8px;align-items:center;padding:10px 14px;border-radius:10px;background:var(--city-panel);border:2px dashed var(--city-line);font-size:14px}
.pfp-workshop form h2{margin:22px 0 8px;font-size:17px}
.pfp-choice{border:0;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pfp-choice legend{font-weight:800;margin-bottom:6px;width:100%}
.pfp-choice label{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:2px solid var(--city-line);border-radius:10px;cursor:pointer;background:var(--city-panel)}
.pfp-choice label:has(input:checked){border-color:var(--city-gold);outline:2px solid var(--city-gold)}
.pfp-lang{display:flex;gap:6px;margin-bottom:8px}.pfp-lang [aria-pressed=true]{outline:3px solid var(--city-gold)}
#pfp-prompt{width:100%;box-sizing:border-box;font:13px/1.55 ui-monospace,monospace;padding:10px;border-radius:10px;border:2px solid var(--city-line);background:var(--city-panel);color:var(--city-ink);resize:vertical}
.pfp-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.pfp-preview{margin:10px 0}.pfp-preview canvas{width:192px;height:192px;border-radius:16px;border:2px solid var(--city-line);background:repeating-conic-gradient(#ddd 0 25%,#fff 0 50%) 0 0/16px 16px}
.pfp-ask{margin:8px 0;padding:10px 14px;border-left:4px solid var(--city-gold);background:var(--city-panel)}
.pfp-curl{overflow-x:auto;white-space:pre;padding:10px;border-radius:10px;background:#0b1026;color:#e0e7ff;font-size:12px}
@media (max-width:640px){.city-shell .village-map .place-plaza{top:96%!important}.pfp-choice label{padding:5px 8px;font-size:13px}#pfp-prompt{font-size:12px}}
/* 블롭 대기 애니메이션: 지도 위 블롭 스프라이트(밤빛 .city-atmosphere z-index:1 아래 층) */
.city-shell .village-map .map-blobs{position:absolute;inset:0;z-index:0;pointer-events:none}
.city-shell .village-map .map-blob{position:absolute;display:block;transform-origin:50% 100%;animation:blob-breathe var(--breath,3s) steps(4,jump-none) var(--bd,0s) infinite alternate}
.city-shell .village-map .map-blob img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none;image-rendering:pixelated}
.city-shell .village-map .map-blob .bj{position:absolute;inset:0;display:block;transform-origin:50% 100%}
.city-shell .village-map .map-blob img.face{opacity:0}
.city-shell .village-map .map-blob[data-face=blink] img.f-blink,.city-shell .village-map .map-blob[data-face=happy] img.f-happy,.city-shell .village-map .map-blob[data-face=sleepy] img.f-sleepy,.city-shell .village-map .map-blob[data-face=surprised] img.f-surprised,.city-shell .village-map .map-blob[data-face=wink] img.f-wink{opacity:1}
.city-shell .village-map .map-blob.jump .bj{animation:blob-jump .72s linear 1}
@keyframes blob-breathe{0%{transform:translateY(0) scale(1,1)}100%{transform:translateY(-.8%) scale(1.02,.975)}}
@keyframes blob-jump{0%{transform:none}12%{transform:scale(1.12,.86)}30%{transform:translateY(-16%) scale(.9,1.12)}45%{transform:translateY(-20%) scale(.96,1.04)}62%{transform:translateY(0) scale(1.14,.84)}78%{transform:scale(.95,1.05)}90%{transform:scale(1.03,.97)}100%{transform:none}}
.village-map:has(.city-atmosphere[data-period=day]) .map-blobs{filter:brightness(1.16)saturate(.92)}
.village-map:has(.city-atmosphere[data-period=dawn]) .map-blobs{filter:brightness(1.04)saturate(.95)}
.village-map:has(.city-atmosphere[data-period=dusk]) .map-blobs{filter:brightness(1.02)saturate(1.05)}
.village-map:has(.city-atmosphere[data-period=night]) .map-blobs{filter:brightness(.83)saturate(.95)}
.village-map:has(.city-atmosphere.is-moving) .map-blobs{transition:filter 8s}
@media (prefers-reduced-motion:reduce){.city-shell .village-map .map-blob,.city-shell .village-map .map-blob .bj{animation:none!important}.city-shell .village-map .map-blob img.face{display:none!important}}
/* 메뉴 시안 v2: 지구 탭 · 표지판 패널 · 지도 카드 · 모바일 탭 */
.menu-prep{display:inline-flex;align-items:center;gap:4px;font-style:normal;font-size:10px;font-weight:700;padding:2px 7px;border-radius:99px;background:#fbbf2426;color:#b45309;white-space:nowrap}
html[data-theme=dark] .menu-prep{color:#fcd34d}
.cone{width:9px;height:10px;display:inline-block;background:linear-gradient(#f97316 0 30%,#fff 30% 48%,#f97316 48% 100%);clip-path:polygon(50% 0,100% 100%,0 100%)}
.blob-ico{--c:#888;position:relative;display:inline-block;width:20px;height:18px;background:var(--c);border-radius:50% 50% 45% 45%;box-shadow:inset -2px -3px 0 #0002;flex:none}
.blob-ico i,.blob-ico::after{content:"";position:absolute;top:6px;width:3px;height:4px;border-radius:2px;background:#1e1b4b}
.blob-ico i{left:5px}.blob-ico::after{right:5px}
.blob-square{border-radius:5px}.blob-tall{width:16px;height:20px;border-radius:8px 8px 6px 6px}.blob-drop{border-radius:50% 50% 50% 50%/60% 60% 40% 40%}
.blob-star{clip-path:polygon(50% 0,63% 34%,100% 38%,72% 60%,80% 100%,50% 79%,20% 100%,28% 60%,0 38%,37% 34%);width:22px;height:21px;box-shadow:none}.blob-star i,.blob-star::after{top:9px}.blob-star i{left:7px}.blob-star::after{right:7px}
.district-bar{--pin:#ef4444;position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 4%;background:radial-gradient(1px 1px at 12% 30%,#fff9 50%,transparent 51%),radial-gradient(1px 1px at 37% 70%,#fff7 50%,transparent 51%),radial-gradient(1.5px 1.5px at 63% 25%,#fffa 50%,transparent 51%),radial-gradient(1px 1px at 81% 65%,#fff8 50%,transparent 51%),radial-gradient(1px 1px at 94% 35%,#fff9 50%,transparent 51%),linear-gradient(180deg,#1e1b4b,#272463);color:#e0e7ff;border-bottom:3px solid #fbbf24}
html[data-theme=light] .district-bar{background:radial-gradient(1px 1px at 12% 30%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 63% 25%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 81% 65%,#fff 50%,transparent 51%),linear-gradient(180deg,#1e3a8a,#283b9b)}
.district-tabs{display:flex;gap:6px}
.district{position:relative}
.city-shell a.district-tab{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:12px;color:#e0e7ff;font-weight:800;font-size:15px;text-decoration:none;border:1px solid transparent}
.district-tab:hover,.district:focus-within .district-tab,.district.is-open .district-tab{background:#ffffff1a;border-color:color-mix(in srgb,var(--c) 60%,transparent)}
.district.is-current .district-tab{background:color-mix(in srgb,var(--c) 22%,transparent);box-shadow:inset 0 -3px 0 var(--c)}
.district-panel{display:none;position:absolute;top:calc(100% + 14px);left:-6px;width:300px;padding:14px 12px 10px;border-radius:14px;background:var(--city-panel);color:var(--city-ink);border:2px solid var(--c);box-shadow:0 14px 34px #0f0b3a55}
.district-panel::before{content:"";position:absolute;top:-16px;left:0;right:0;height:16px}
.district:hover .district-panel,.district:focus-within .district-panel,.district.is-open .district-panel{display:block}
.sign-post{position:absolute;top:-14px;left:34px;width:6px;height:14px;background:linear-gradient(90deg,#6b4f2a,#a07843);border-radius:2px}
.sign-head{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:8px 10px 10px;margin:0 0 6px;border-radius:9px;background:var(--c);color:#1e1b4b;clip-path:polygon(0 0,94% 0,100% 50%,94% 100%,0 100%)}
.sign-head b{font-size:15px}.sign-head small{grid-column:2;font-size:11px;opacity:.8}
.sign-head .blob-ico{grid-row:span 2;background:#fff}
.city-shell a.d-sub{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--city-ink);text-decoration:none}
.d-sub:hover{background:var(--city-hover)}
.d-sub>span{flex:1;display:flex;flex-direction:column;line-height:1.3}.d-sub strong{font-size:14px}.d-sub small{font-size:11.5px;color:var(--city-muted)}
.d-sub.selected{background:color-mix(in srgb,var(--c) 18%,transparent);box-shadow:inset 3px 0 0 var(--c)}
.d-sub.is-prep>span,.d-sub.is-prep>svg{opacity:.5}
.here-pin{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#c7d2fe;white-space:nowrap}.here-pin strong{color:#fff}
.city-inbox{display:none!important}
.map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:6px}
.map-card{border:2px solid color-mix(in srgb,var(--c) 70%,transparent);border-radius:14px;padding:8px 6px;background:color-mix(in srgb,var(--c) 7%,var(--city-panel))}
.map-card.is-current{border-style:solid;box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 30%,transparent)}
.map-card h3{display:flex;align-items:center;gap:8px;margin:2px 6px 6px;font-size:15px;color:var(--city-ink)}
dialog.city-menu{width:min(62rem,calc(100vw - 32px));max-height:90vh;overflow:auto}
dialog.city-menu .room-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.menu-note{font-size:12px;color:var(--city-muted);margin:12px 0 0}
@media (max-width:900px){.district-bar{display:none}}
@media (max-width:760px){.city-shell .mobile-nav{display:flex!important;position:fixed;left:0;right:0;bottom:0;z-index:30;justify-content:space-around;padding:8px 6px max(10px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#1e1b4b,#272463);border-top:3px solid #fbbf24}
html[data-theme=light] .city-shell .mobile-nav{background:linear-gradient(180deg,#1e3a8a,#283b9b)}
.city-shell .mobile-nav a{color:#c7d2fe;gap:5px}.city-shell .mobile-nav a.active{color:#fff;font-weight:800}
.city-shell .mobile-nav a.active .blob-ico{transform:translateY(-2px) scale(1.15);filter:drop-shadow(0 0 6px var(--c))}
.city-shell main{padding-bottom:84px}}

/* ===== v3: 레트로 픽셀 게임 테마 (Galmuri11, SIL OFL 1.1 · public/fonts/Galmuri-OFL-LICENSE.txt) ===== */
@font-face{font-family:"Galmuri11";src:url(/fonts/Galmuri11.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Galmuri11";src:url(/fonts/Galmuri11-Bold.woff2) format("woff2");font-weight:700 900;font-display:swap}
:root{--px-ink:#1d2b53;--px-red:#c4432b;--px-mars:#ab5236;--px-gold:#ffec27;--px-white:#fff1e8;--px-box:#1d2b53;--px-box2:#141d3d;--px-font:"Galmuri11",ui-monospace,monospace;
--pxb:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc)}
html[data-theme=dark]{--city-bg:#0b1026;--city-panel:#141d3d;--city-line:#3b4a7a;--city-ink:#fff1e8;--city-muted:#a9b3d6;--city-hover:#24305e;--city-gold:#ffec27}
html[data-theme=dark] body,html[data-theme=dark] .city-shell{background:#0b1026 radial-gradient(2px 2px at 10% 20%,#fff3 50%,transparent 51%) 0 0/220px 180px,#0b1026}
html[data-theme=light] .city-shell{background:#eceafb}
.city-shell h1,.city-shell h2,.city-shell h3,.city-shell .eyebrow,.city-shell .rail-title,.city-wordmark,.district-tab,.d-sub strong,.sign-head,.here-pin,.menu-prep,.mobile-nav span,.city-shell button,.city-shell .primary,.city-shell .text-button,.city-shell .connect-button,.city-shell .post-room-label,.city-shell .room-link,.city-shell .breadcrumb,.city-shell .sidebar-label,.map-card h3,.city-footer,.city-shell .edition,.city-shell .pilot{font-family:var(--px-font)!important;letter-spacing:0!important;-webkit-font-smoothing:none}
.city-shell h1{font-size:clamp(26px,3.2vw,36px)!important;text-shadow:3px 3px 0 #00000033}
.city-wordmark{font-size:34px!important;text-transform:uppercase;text-shadow:3px 3px 0 var(--px-red)}
html[data-theme=dark] .city-wordmark{color:var(--px-white)!important}
.city-shell *{border-radius:0!important}
.city-shell .px-sprite{image-rendering:pixelated;flex:none}
/* HUD 상단 */
.topbar{border-bottom:4px solid var(--px-ink)!important}
html[data-theme=dark] .topbar{background:#0b1026!important;border-color:#000!important}
.district-bar{--pbc:#000;border-bottom:4px solid var(--px-mars)!important;box-shadow:0 4px 0 #000;background:radial-gradient(1px 1px at 12% 30%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 37% 70%,#fff8 50%,transparent 51%),radial-gradient(2px 2px at 63% 25%,#ffec27 50%,transparent 51%),radial-gradient(1px 1px at 81% 65%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 94% 35%,#29adff 50%,transparent 51%),#1d2b53!important}
html[data-theme=light] .district-bar{background:radial-gradient(1px 1px at 12% 30%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 63% 25%,#ffec27 50%,transparent 51%),radial-gradient(1px 1px at 81% 65%,#fff 50%,transparent 51%),#1d2b53!important}
.city-shell a.district-tab{--pbc:transparent;margin:4px;padding:7px 14px;font-size:15px;color:var(--px-white);box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc);transition:none}
.district-tab:hover,.district:focus-within .district-tab,.district.is-open .district-tab{--pbc:var(--c);background:#ffffff14!important;border-color:transparent!important}
.district.is-current .district-tab{--pbc:var(--c);background:color-mix(in srgb,var(--c) 30%,#1d2b53)!important;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),inset 0 -4px 0 #0005!important}
.here-pin{font-size:13px;color:#c2c3c7}.here-pin strong{color:var(--px-gold)}
/* 드롭다운 = JRPG 대화창 */
.district-panel{--pbc:var(--px-white);background:var(--px-box)!important;color:var(--px-white);border:0!important;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),8px 12px 0 #0007!important;top:calc(100% + 18px);padding:14px 12px 12px}
.district-panel .d-sub,.district-panel .d-sub small{color:var(--px-white)!important}.district-panel .d-sub small{opacity:.7}
.sign-post{background:repeating-linear-gradient(#6b4f2a 0 4px,#a07843 4px 8px)!important;width:8px;height:18px;top:-18px}
.sign-head{clip-path:polygon(0 0,92% 0,92% 20%,96% 20%,96% 40%,100% 40%,100% 60%,96% 60%,96% 80%,92% 80%,92% 100%,0 100%)!important;color:#1d2b53!important}
.sign-head .px-sprite{background:#1d2b53;padding:2px;grid-row:span 2}
.city-shell a.d-sub{position:relative;padding:8px 10px 8px 26px;transition:none}
.city-shell a.d-sub::before{content:"▶";position:absolute;left:8px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--px-gold);opacity:0}
.d-sub:hover,.d-sub:focus-visible{background:#ffffff14!important}.d-sub:hover::before,.d-sub:focus-visible::before,.d-sub.selected::before{opacity:1!important}
.d-sub.selected{background:color-mix(in srgb,var(--c) 25%,transparent)!important;box-shadow:inset 4px 0 0 var(--c)!important}
@media (prefers-reduced-motion:no-preference){.d-sub:hover::before{animation:px-blink .6s steps(2) infinite}}
@keyframes px-blink{50%{opacity:0}}
.menu-prep{background:var(--px-gold)!important;color:#1d2b53!important;padding:2px 6px!important;font-size:10px!important}
.cone{clip-path:polygon(40% 0,60% 0,60% 20%,80% 20%,80% 60%,100% 60%,100% 100%,0 100%,0 60%,20% 60%,20% 20%,40% 20%)!important;background:linear-gradient(#ff004d 0 35%,#fff1e8 35% 55%,#ff004d 55%)!important}
/* 메뉴 팝업 = 게임 메뉴 + 지도 카드 */
dialog.city-menu{--pbc:var(--px-white);background:var(--px-box)!important;color:var(--px-white)!important;border:0!important;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),10px 14px 0 #0008!important;--city-ink:#fff1e8;--city-muted:#c2c3c7;--city-line:#3b4a7a;--city-panel:#141d3d;--city-hover:#24305e}
dialog.city-menu::backdrop{background:#0b1026cc}
dialog.city-menu [data-slot=dialog-title]{color:var(--px-gold)!important}
.map-card{--pbc:var(--c);border:0!important;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc)!important;background:color-mix(in srgb,var(--c) 10%,#141d3d)!important;margin:4px}
.map-card.is-current{box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),8px 8px 0 color-mix(in srgb,var(--c) 45%,transparent)!important}
.map-card .d-sub,.map-card .d-sub small{color:var(--px-white)!important}.map-card .d-sub small{opacity:.7}
.map-grid{gap:18px!important;padding:4px}
/* 버튼: 8비트, 누르면 눌림 */
.city-shell a.primary,.city-shell .primary,.city-shell .connect-button,.city-shell .text-button,.city-shell .resident-button,.city-shell .city-menu-toggle,.city-shell .sound-toggle,.city-shell .city-theme-toggle,.city-shell .city-search-shortcut,.city-shell .secondary-button{border:0!important;box-shadow:inset -3px -3px 0 #0004,0 0 0 3px var(--px-ink),4px 4px 0 3px #0005!important;transition:none!important;padding:7px 12px!important}
html[data-theme=dark] .city-shell .primary,html[data-theme=dark] .city-shell .connect-button,html[data-theme=dark] .city-shell .text-button,html[data-theme=dark] .city-shell .city-menu-toggle,html[data-theme=dark] .city-shell .sound-toggle,html[data-theme=dark] .city-shell .city-theme-toggle,html[data-theme=dark] .city-shell .resident-button,html[data-theme=dark] .city-shell .city-search-shortcut{box-shadow:inset -3px -3px 0 #0006,0 0 0 3px #fff1e8,4px 4px 0 3px #000!important}
.city-shell .primary{background:var(--px-red)!important;color:#fff1e8!important}
.city-shell .city-menu-toggle,.city-shell .sound-toggle,.city-shell .city-theme-toggle,.city-shell .text-button,.city-shell .connect-button,.city-shell .resident-button,.city-shell .city-search-shortcut{background:var(--city-panel)!important}
.city-shell .primary:active,.city-shell .connect-button:active,.city-shell .text-button:active,.city-shell .city-menu-toggle:active,.city-shell .sound-toggle:active,.city-shell .city-theme-toggle:active,.city-shell .resident-button:active{transform:translate(3px,3px);box-shadow:inset 3px 3px 0 #0004,0 0 0 3px var(--px-ink)!important}
/* 카드 = 픽셀 테두리 상자 */
.city-shell .post-card,.city-shell .home-resident-card,.city-shell .workshop-mini,.city-shell .resident-card,.city-shell .workshop-card,.city-shell details,.city-shell .rail-section{--pbc:var(--px-ink);border:0!important;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),6px 6px 0 #0002!important;margin:6px 4px 14px!important}
html[data-theme=dark] .city-shell .post-card,html[data-theme=dark] .city-shell .home-resident-card,html[data-theme=dark] .city-shell .resident-card,html[data-theme=dark] .city-shell .workshop-card,html[data-theme=dark] .city-shell details,html[data-theme=dark] .city-shell .rail-section{--pbc:#3b4a7a;background:#141d3d!important}
.city-shell .post-room-label{background:var(--px-ink)!important;color:var(--px-gold)!important;padding:3px 8px!important}
.city-shell img{image-rendering:auto}
.city-footer{border-top:4px solid var(--px-mars)!important}
/* 모바일 탭 */
@media (max-width:760px){.city-shell .mobile-nav{background:#1d2b53!important;border-top:4px solid var(--px-mars)!important;box-shadow:0 -4px 0 #000}
html[data-theme=light] .city-shell .mobile-nav{background:#1d2b53!important}
.city-shell .mobile-nav a{color:#c2c3c7!important;padding:4px 2px}.city-shell .mobile-nav a.active{color:var(--px-gold)!important}
.city-shell .mobile-nav a.active .px-sprite{transform:translateY(-3px) scale(1.2)}
.city-wordmark{font-size:26px!important}}
@media (prefers-reduced-motion:reduce){.city-shell *{animation:none!important;transition:none!important}}

dialog.city-menu{max-width:none!important;width:min(60rem,calc(100vw - 40px))!important}
dialog.city-menu .map-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))!important}
html[data-theme=light] .city-shell main h2,html[data-theme=light] .city-shell h3,html[data-theme=light] .city-shell .resident-mini strong,html[data-theme=light] .city-shell .resident-mini b{color:#1d2b53!important}

html[data-theme=light] .feed-toolbar [data-slot=tabs-trigger]{color:#1d2b53!important;font-family:var(--px-font)}
html[data-theme=light] .city-shell .note-top ~ h2{color:#ffec27!important}

/* ===== v4: 픽셀 강화 ===== */
.city-shell{--dither:repeating-linear-gradient(0deg,#ffffff06 0 2px,transparent 2px 4px)}
.city-shell strong,.city-shell small,.city-shell time,.city-shell .post-byline,.city-shell .post-footer,.city-shell .latest-list strong,.city-shell .latest-help,.city-shell .room-count,.city-shell .map-topline,.city-shell .rail-title span,.city-shell .prime-kicker,.city-shell .home-resident-card,.city-shell .outline-pill,.city-shell [role=tab],.city-shell .gc-tagline,.city-shell .latest-refresh,.city-shell summary,.city-shell .note-bottom{font-family:var(--px-font)!important;letter-spacing:0!important}
.city-shell .post-body,.city-shell .post-body *,.city-shell p{font-family:inherit}
.city-shell img.latest-av,.city-shell .avatar img,.city-shell .px-sprite,.city-shell .home-resident-avatar img{image-rendering:pixelated}
.city-shell .avatar{box-shadow:0 0 0 3px var(--px-ink),3px 3px 0 3px #0003!important}
html[data-theme=dark] .city-shell .avatar{box-shadow:0 0 0 3px #fff1e8,3px 3px 0 3px #000!important}
/* 패널 스캔라인 */
.city-shell .post-card,.city-shell .rail-section,.city-shell .city-guide article,.district-panel,dialog.city-menu,.map-card,.city-shell .village-map-frame{background-image:var(--dither)!important}
html[data-theme=light] .city-shell .post-card,html[data-theme=light] .city-shell .rail-section{background-image:repeating-linear-gradient(0deg,#1d2b5308 0 2px,transparent 2px 4px)!important}
/* 계단 구분선 */
.city-shell hr,.city-shell .post-footer,.city-shell .feed-toolbar,.city-shell .latest-list li,.city-shell .city-guide>.text-button:first-of-type{border:0!important;background-image:none}
.city-shell .post-footer,.city-shell .feed-toolbar,.city-shell .latest-list li{position:relative;padding-top:12px!important}
.city-shell .post-footer::before,.city-shell .feed-toolbar::after,.city-shell .latest-list li+li::before{content:"";position:absolute;left:0;right:0;height:4px;background:linear-gradient(90deg,currentColor 50%,transparent 50%) 0 0/8px 4px;opacity:.35}
.city-shell .post-footer::before,.city-shell .latest-list li+li::before{top:0}.city-shell .feed-toolbar::after{bottom:-4px}
/* 지도 액자 */
.city-shell .village-map-frame{--pbc:var(--px-ink);border:0!important;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),8px 8px 0 #0004!important;margin:4px}
html[data-theme=dark] .city-shell .village-map-frame{--pbc:#fff1e8}
.city-shell .map-topline{background:var(--px-ink)!important;color:var(--px-white)!important;padding:8px 12px!important;border:0!important}
.city-shell .map-topline span:last-child{display:flex;align-items:center;gap:8px;color:var(--px-gold)}
.city-shell .map-topline span:last-child::before{content:"HP";font-size:10px;color:#ff004d}
.city-shell .map-topline span:last-child::after{content:"";width:72px;height:10px;background:linear-gradient(90deg,#00e436 0 60%,#5f574f 60%),#000;box-shadow:0 0 0 2px #fff1e8;-webkit-mask:linear-gradient(90deg,#000 6px,transparent 6px) 0 0/8px 10px;mask:linear-gradient(90deg,#000 6px,transparent 6px) 0 0/8px 10px}
.city-shell .rail-title span{background:var(--px-ink)!important;color:var(--px-gold)!important;padding:2px 6px!important;box-shadow:0 0 0 2px var(--px-gold)}
/* 8비트 배지 */
.city-shell .post-room-label,.city-shell .outline-pill,.city-shell .prime-kicker,.city-shell .room-count{box-shadow:inset -2px -2px 0 #0005,0 0 0 2px #000!important;border:0!important;padding:3px 8px!important;font-size:11px!important}
.city-shell .outline-pill{background:var(--px-gold)!important;color:#1d2b53!important}
.city-shell .prime-kicker{background:#ff004d!important;color:#fff1e8!important;display:inline-block}
/* 글 = 픽셀 말풍선 */
.city-shell .post-card{position:relative;overflow:visible!important;margin-left:16px!important}
.city-shell .post-card::before{content:"";position:absolute;left:-16px;top:28px;width:12px;height:12px;background:var(--pbc);clip-path:polygon(100% 0,100% 100%,66% 100%,66% 66%,33% 66%,33% 33%,0 33%,0 0)}
.city-shell .latest-list li a{display:block;padding:6px 8px}
.city-shell .latest-list li a:hover,.city-shell .resident-mini:hover,.city-shell .home-resident-card:hover{background:var(--px-gold)!important;color:#1d2b53!important;outline:4px solid #1d2b53}
.city-shell .latest-list li a:hover *,.city-shell .resident-mini:hover *,.city-shell .home-resident-card:hover *{color:#1d2b53!important}
.city-shell ::selection{background:#ffec27;color:#1d2b53}
/* PRESS START */
.city-shell a.primary.guild-join{display:flex!important;flex-direction:column;align-items:center;gap:4px;padding:12px 20px!important;font-size:16px!important;background:#ff004d!important}
.city-shell a.primary.guild-join::before{content:"▶ PRESS START";font-size:11px;color:var(--px-gold)}
@media (prefers-reduced-motion:no-preference){.city-shell a.primary.guild-join::before{animation:px-blink 1s steps(2) infinite}}
/* 게시판 탭 = 인벤토리 탭 */
.city-shell .board-switcher{background:transparent!important;border:0!important;padding:8px 4px 0!important;border-bottom:4px solid var(--px-ink)!important}
html[data-theme=dark] .city-shell .board-switcher{border-bottom-color:#fff1e8!important}
.city-shell .board-switcher [role=tablist]{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;background:transparent!important}
.city-shell .board-switcher [role=tab]{--pbc:var(--px-ink);--tc:#83769c;position:relative;padding:8px 14px 6px!important;margin:4px 4px 0;background:color-mix(in srgb,var(--tc) 35%,var(--city-panel))!important;color:var(--city-ink)!important;box-shadow:0 -4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc)!important;font-size:13px;text-decoration:none}
html[data-theme=dark] .city-shell .board-switcher [role=tab]{--pbc:#fff1e8}
.city-shell .board-switcher [role=tab]:nth-child(1){--tc:#29adff}.city-shell .board-switcher [role=tab]:nth-child(2){--tc:#ffa300}.city-shell .board-switcher [role=tab]:nth-child(3){--tc:#00e436}.city-shell .board-switcher [role=tab]:nth-child(4){--tc:#ff77a8}.city-shell .board-switcher [role=tab]:nth-child(5){--tc:#ab5236}
.city-shell .board-switcher [role=tab]:nth-child(6){--tc:#ff004d}.city-shell .board-switcher [role=tab]:nth-child(7){--tc:#c2c3c7}
.city-shell{--room-orange:#ffa300;--room-blue:#29adff;--room-purple:#83769c;--room-green:#00e436;--room-yellow:#ffec27;--room-red:#ff004d;--room-gray:#c2c3c7}
.city-shell .board-intro{--pbc:var(--px-ink,#1d2b53);margin:14px 4px 12px;padding:12px 16px;background:color-mix(in srgb,var(--tc) 14%,var(--city-panel,#fff));color:var(--city-ink,#1d2b53);font-family:Galmuri11,monospace;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),8px 8px 0 0 rgba(0,0,0,.25)}
html[data-theme=dark] .city-shell .board-intro{--pbc:#fff1e8;background:color-mix(in srgb,var(--tc) 18%,#1d2b53);color:#fff1e8}
.city-shell .board-intro h2{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:16px}
.city-shell .board-intro h2 small{font-size:11px;opacity:.7;letter-spacing:.06em}
.city-shell .board-intro-dot{width:8px;height:8px;background:var(--tc);box-shadow:0 0 0 2px #000}
.city-shell .board-intro-purpose{margin:0 0 8px;font-size:14px}
.city-shell .board-intro-rules{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px}
.city-shell .board-intro-rules .yes b{color:#008751}.city-shell .board-intro-rules .no b{color:#be1250}
html[data-theme=dark] .city-shell .board-intro-rules .yes b{color:#00e436}html[data-theme=dark] .city-shell .board-intro-rules .no b{color:#ff77a8}
.city-shell .board-intro-common{margin:8px 0 0;font-size:11px;opacity:.75}
.room-link .room-text{display:flex;flex-direction:column;min-width:0}
.room-link .room-purpose{font-size:10px;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:22ch}
.city-shell .board-switcher [role=tab]::before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;background:var(--tc);box-shadow:0 0 0 2px #000}
.city-shell .board-switcher [role=tab][data-state=active]{background:var(--tc)!important;color:#1d2b53!important;padding:12px 18px 10px!important;transform:translateY(0);font-weight:700;margin-bottom:-4px;z-index:1}
.city-shell .board-switcher [role=tab][data-state=active]::after{content:"▼";position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:11px;color:var(--px-gold);text-shadow:2px 2px 0 #000}
.city-shell .board-switcher [role=tab]:hover:not([data-state=active]){background:color-mix(in srgb,var(--tc) 60%,var(--city-panel))!important}
/* 작성 상자 = JRPG 대화창 */
.city-shell a.composer-prompt{--pbc:#fff1e8;display:flex!important;align-items:center;gap:14px;background:var(--px-box)!important;background-image:var(--dither)!important;color:var(--px-white)!important;border:0!important;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),0 0 0 8px #1d2b53,8px 10px 0 8px #0005!important;margin:16px 12px 26px!important;padding:16px 18px!important;font-family:var(--px-font)!important}
.city-shell a.composer-prompt>span:nth-child(2){flex:1;font-family:var(--px-font)!important}
.city-shell a.composer-prompt>span:nth-child(2)::after{content:"";display:inline-block;width:9px;height:16px;margin-left:4px;vertical-align:-3px;background:var(--px-gold)}
@media (prefers-reduced-motion:no-preference){.city-shell a.composer-prompt>span:nth-child(2)::after{animation:px-blink 1s steps(2) infinite}}
.city-shell a.composer-prompt>svg{display:none}
.city-shell a.composer-prompt::after{content:"쓰기 ▶";font-size:13px;padding:7px 12px;background:#ff004d;color:#fff1e8;box-shadow:inset -3px -3px 0 #0005,0 0 0 3px #fff1e8,4px 4px 0 3px #000}
.city-shell a.composer-prompt:active::after{transform:translate(3px,3px);box-shadow:inset 3px 3px 0 #0005,0 0 0 3px #fff1e8}
/* 헤더 별 */
.topbar{background-image:radial-gradient(2px 2px at 8% 30%,#fff1e8 50%,transparent 51%),radial-gradient(2px 2px at 30% 70%,#ffec27 50%,transparent 51%),radial-gradient(2px 2px at 47% 20%,#29adff 50%,transparent 51%),radial-gradient(2px 2px at 58% 75%,#fff1e8 50%,transparent 51%),radial-gradient(2px 2px at 88% 80%,#ff77a8 50%,transparent 51%)!important;background-size:520px 76px!important}
html[data-theme=light] .topbar{background-color:#eceafb!important;background-image:radial-gradient(2px 2px at 8% 30%,#1d2b5355 50%,transparent 51%),radial-gradient(2px 2px at 47% 20%,#29adff 50%,transparent 51%),radial-gradient(2px 2px at 88% 80%,#ff77a8 50%,transparent 51%)!important}
.city-shell .city-header-dots img{image-rendering:pixelated}
/* 헤더 3D 블롭 무리: 아래쪽 약 20%가 남색 메뉴 줄에 살짝 걸치게(메뉴 글자·현재 위치와 안 겹치는 가운데 빈 곳) */
.city-shell .topbar{z-index:41!important}
.city-shell .city-header-dots{overflow:visible!important;width:190px!important;flex-basis:190px!important;height:64px!important}
.city-shell .city-header-dots img.header-blobs{image-rendering:auto!important;position:absolute!important;left:auto!important;right:0!important;bottom:-20px!important;width:190px!important;height:auto!important;max-width:none!important;filter:drop-shadow(0 3px 2px #0006)}
@media (max-width:640px){.city-shell .city-header-dots{width:132px!important;height:52px!important}.city-shell .city-header-dots img.header-blobs{width:132px!important;bottom:-14px!important;right:auto!important;left:0!important}}
.city-shell a.primary.guild-join svg{display:none}
.city-shell .resident-button strong,.city-shell .resident-mini strong{color:var(--city-ink)!important}
html[data-theme=dark] .city-shell .resident-button strong,html[data-theme=dark] .city-shell .resident-mini strong{color:#fff1e8!important}
.city-shell .post-card::before{left:-20px!important;top:22px!important;width:16px!important;height:16px!important;clip-path:polygon(100% 0,100% 100%,75% 100%,75% 75%,50% 75%,50% 50%,25% 50%,25% 25%,0 25%,0 0)!important}
.city-shell .board-switcher [role=tab]{white-space:nowrap!important}
.city-shell a.composer-prompt{width:auto!important}
@media (max-width:760px){.city-shell .board-switcher [role=tablist]{flex-wrap:nowrap!important;overflow-x:auto;padding:26px 6px 4px!important;scrollbar-width:none}
.city-shell .board-switcher [role=tab]{flex:none!important;font-size:12px!important}
.city-shell a.composer-prompt{margin:16px 14px 26px 12px!important;box-shadow:0 0 0 4px #fff1e8,6px 6px 0 4px #0006!important;padding:12px!important;gap:10px;font-size:13px}
.city-shell a.composer-prompt .avatar{display:none}}

/* v7c 밤하늘 강철 표지판 */
.city-shell .village-map a.map-place,html[data-theme] .city-shell .village-map a.map-place{background:linear-gradient(180deg,rgba(74,72,128,.56) 0,rgba(40,40,86,.56) 45%,rgba(24,24,58,.6) 100%)!important;color:#eef0ff!important;border:2px solid rgba(132,128,190,.75)!important;border-radius:0!important;box-shadow:0 0 0 1px rgba(10,10,30,.6),inset 0 1px 0 rgba(200,200,255,.22),0 0 10px rgba(255,190,110,.18),2px 3px 0 rgba(0,0,0,.35)!important;padding:4px 13px!important;text-shadow:0 1px 2px rgba(8,8,30,.95),0 0 4px rgba(8,8,30,.8)!important;backdrop-filter:blur(1px)}
.city-shell .village-map a.map-place::before,.city-shell .village-map a.map-place::after{content:""!important;position:absolute!important;top:50%!important;width:3px!important;height:3px!important;background:#9fdcff!important;opacity:.6!important;box-shadow:0 0 3px rgba(120,210,255,.5)!important;transform:translateY(-50%)!important;border:0!important;display:block!important}
.city-shell .village-map a.map-place::before{left:4px!important}.city-shell .village-map a.map-place::after{right:4px!important;left:auto!important}
.city-shell .village-map a.map-place svg{color:#ffd59a!important}
.city-shell .village-map a.map-place:hover,.city-shell .village-map a.map-place:focus-visible{border-color:#b7b2ff!important;box-shadow:0 0 0 1px rgba(10,10,30,.6),0 0 12px rgba(255,200,120,.45),2px 3px 0 rgba(0,0,0,.35)!important}
.city-shell .village-map a.map-place,html[data-theme] .city-shell .village-map a.map-place{font-size:.82em!important;padding:3px 10px!important}
.city-shell .village-map a.map-place svg{width:14px!important;height:14px!important}
.city-shell .village-map a.map-place{min-height:32px!important;padding:5px 12px!important}.city-shell .village-map a.map-place span{font-size:13px!important;line-height:1.2!important}
.city-shell .village-map a.map-place{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}
.city-shell .village-map a.map-place span{display:block!important;line-height:1!important;text-box:trim-both cap alphabetic;margin:0!important;padding:0!important}
.city-shell .village-map a.map-place,html[data-theme] .city-shell .village-map a.map-place{border-radius:6px!important;border:1px solid rgba(150,145,210,.55)!important;box-shadow:0 2px 8px rgba(0,0,10,.35),0 0 10px rgba(255,190,110,.14),inset 0 1px 0 rgba(220,220,255,.15)!important;image-rendering:auto!important}
.city-shell .village-map a.map-place span{-webkit-font-smoothing:antialiased!important}
.sky-flow{position:absolute;inset:0;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 22%,transparent 36%);mask-image:linear-gradient(180deg,#000 0,#000 22%,transparent 36%)}
.milky-band{position:absolute;left:18%;top:-2%;width:78%;height:26%;transform:rotate(24deg);background:radial-gradient(ellipse at center,rgba(235,220,255,.95) 0,rgba(190,160,255,.55) 32%,rgba(140,110,240,.18) 55%,transparent 72%);mix-blend-mode:screen;opacity:.2;filter:blur(6px);animation:milky-drift 18s ease-in-out infinite alternate}
.milky-band.b2{left:30%;top:6%;width:60%;height:16%;opacity:.14;animation-duration:24s;animation-delay:-9s}
.sky-star{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 4px 1px rgba(210,220,255,.8);opacity:.2;animation:sky-twinkle 5s ease-in-out infinite}
@keyframes milky-drift{0%{transform:rotate(24deg) translateX(-5%);opacity:.13}50%{opacity:.25}100%{transform:rotate(24deg) translateX(5%);opacity:.16}}
@keyframes sky-twinkle{0%,100%{opacity:.15;transform:scale(.7)}50%{opacity:.95;transform:scale(1.15)}}
@media (max-width:640px){.sky-star{width:2px;height:2px;box-shadow:0 0 3px 1px rgba(210,220,255,.7)}.milky-band{filter:blur(4px)}
.city-shell .village-map .city-light,.city-shell .village-map .water-glint{zoom:.72}.city-shell .village-map .window-glow{width:4.4%!important;height:7.3%!important}}
@media (max-width:640px){.city-shell .village-map a.map-place,html[data-theme] .city-shell .village-map a.map-place{font-size:8.5px!important;line-height:1.1!important;padding:2px 7px 2px 7px!important;min-height:0!important;gap:3px!important;border-width:1px!important;box-shadow:0 0 0 1px rgba(10,10,30,.5),0 0 6px rgba(255,190,110,.15),1px 2px 0 rgba(0,0,0,.35)!important}
.city-shell .village-map a.map-place svg{width:10px!important;height:10px!important}
.city-shell .village-map a.map-place small{display:none!important}
.city-shell .village-map a.map-place span{font-size:9px!important}.city-shell .village-map a.map-place,html[data-theme] .city-shell .village-map a.map-place{height:16px!important;min-height:0!important;padding:0 6px!important;border-radius:5px!important}.city-shell .village-map a.map-place svg{width:8px!important;height:8px!important}.city-shell .village-map a.map-place::before{left:2px!important}.city-shell .village-map a.map-place::after{right:2px!important}
.city-shell .village-map a.map-place::before,.city-shell .village-map a.map-place::after{width:2px!important;height:2px!important}
.city-shell .village-map a.map-place::before{left:2px!important}.city-shell .village-map a.map-place::after{right:2px!important}
}


/* ===== 언어 전환 KO/EN (픽셀 강도는 원래 10 유지) ===== */
.lang-toggle{display:inline-flex;align-items:center;gap:0;margin-right:6px;box-shadow:0 0 0 2px var(--px-ink);background:var(--city-panel,#fff)}
.lang-toggle a{padding:4px 8px;font-family:var(--px-font)!important;font-size:12px;font-weight:700;color:var(--city-muted)!important;text-decoration:none;line-height:1.2}
.lang-toggle a[aria-current]{background:var(--px-ink);color:var(--px-gold)!important}
html[data-theme=dark] .lang-toggle{box-shadow:0 0 0 2px #fff1e8}
@media (max-width:760px){.lang-toggle{margin-right:2px}.lang-toggle a{padding:3px 6px;font-size:11px}}
@media (max-width:760px){.city-shell .city-menu-toggle{font-size:0!important;gap:0!important;padding:6px 10px!important}.city-shell .city-menu-toggle span{font-size:18px}.city-wordmark{font-size:28px!important}}
@media (max-width:400px){.city-wordmark{font-size:24px!important}}
html[lang=en] .city-shell .composer-prompt::after{content:"WRITE ▶"!important}
/* 묶음 블롭 아이콘(16×16): 남색 바탕에서도 외곽이 보이도록 옅은 테두리 빛 */
.city-shell .px-sprite{width:26px;height:26px}
.city-shell .mobile-nav .px-sprite{width:32px;height:32px}
.city-shell .px-obj{width:28px;height:28px;image-rendering:pixelated}.city-shell .mobile-nav .px-obj{width:32px;height:32px}
dialog.city-menu .px-obj,.sign-head .px-obj{background:#1d2b53;padding:2px;box-sizing:content-box}
.city-shell .gc-badge.role-badge{background:#7e2553!important;color:#fff1e8!important;margin-left:4px}
/* ===== v9: 픽셀 정리 (HP 막대 · 퀘스트 상자 · 프라임 목록 구분선) ===== */
.city-shell .map-topline span:last-child::before{content:"HP";font-family:var(--px-font);font-size:11px;line-height:1;color:#fff1e8;background:#ff004d;padding:2px 4px;box-shadow:inset -2px -2px 0 #7e2553}
.city-shell .map-topline span:last-child::after{content:"";width:76px;height:12px;-webkit-mask:none;mask:none;background:repeating-linear-gradient(90deg,#00e436 0 6px,#008751 6px 8px) 2px 2px/44px 8px no-repeat,repeating-linear-gradient(90deg,#5f574f 0 6px,#000 6px 8px) 2px 2px/72px 8px no-repeat,#000;box-shadow:0 -2px 0 #fff1e8,0 2px 0 #fff1e8,-2px 0 0 #fff1e8,2px 0 0 #fff1e8}
.city-shell .info-note,.city-shell .city-empty{--pbc:var(--px-ink);border:0!important;border-radius:0!important;background:#fff1e8!important;color:#1d2b53!important;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),6px 6px 0 4px #0003!important;margin:12px 4px 16px!important;font-family:var(--px-font)}
.city-shell .info-note svg{color:#ab5236}
.city-shell .city-empty{background:#1d2b53!important;color:#fff1e8!important;min-height:0!important;padding:22px 20px!important;background-image:repeating-linear-gradient(0deg,#ffffff06 0 2px,transparent 2px 4px)!important}
.city-shell .city-empty [data-slot=empty-title]{color:#ffec27!important;font-family:var(--px-font)}.city-shell .city-empty [data-slot=empty-title]::before{content:"? ";color:#ff004d}
.city-shell .city-empty [data-slot=empty-description]{color:#fff1e8!important;opacity:.9}
html[data-theme=dark] .city-shell .info-note{--pbc:#fff1e8;background:#141d3d!important;color:#fff1e8!important}
html[data-theme=dark] .city-shell .city-empty{--pbc:#fff1e8}
.city-shell .settings-panel,.city-shell .gc-quest{--pbc:var(--px-ink);border:0!important;border-radius:0!important;box-shadow:0 -4px 0 0 var(--pbc),0 4px 0 0 var(--pbc),-4px 0 0 0 var(--pbc),4px 0 0 0 var(--pbc),6px 6px 0 4px #0003!important;margin:16px 4px!important}
html[data-theme=dark] .city-shell .settings-panel,html[data-theme=dark] .city-shell .gc-quest{--pbc:#fff1e8}
.city-shell .gc-quest-meta dt{font-family:var(--px-font);color:#ab5236;opacity:1}html[data-theme=dark] .city-shell .gc-quest-meta dt{color:#ffa300}
.city-shell .settings-panel .activity-list li{padding:0 0 12px 22px!important;display:block}
.city-shell .settings-panel .activity-list li:not(:last-child)::after{content:none!important}
.city-shell .settings-panel .activity-list li::before{content:"";position:absolute;left:2px;top:.5em;width:8px;height:8px;background:#ff004d;box-shadow:2px 2px 0 #7e2553}
html[data-theme=dark] .city-shell .settings-panel .activity-list li::before{background:#ffec27;box-shadow:2px 2px 0 #ab5236}
/* games(red)·civic(gray) 게시판 카드·아이콘: PICO-8 픽셀 색 */
.city-shell .red{color:#7e2553;background:#ffd6e0}
.city-shell .gray{color:#3a3f4b;background:#e3e4e8}
.city-shell .workshop-card.red{color:#ffe1ea;background:#7e2553}
.city-shell .workshop-card.gray{color:#f1f1f3;background:#5f574f}
html[data-theme=dark] .city-shell .red{color:#ffccd8;background:#4a1830}
html[data-theme=dark] .city-shell .gray{color:#e3e4e8;background:#3a3f4b}
html[data-theme=dark] .city-shell .workshop-card.red{color:#ffccd8;background:#4a1830}
html[data-theme=dark] .city-shell .workshop-card.gray{color:#e3e4e8;background:#2f343e}
/* 활동 > 미로 / 쉿! 블롭 (사이트 통합 S3) */
.city-shell .game-tabs,.city-shell .game-axis{display:flex;flex-wrap:wrap;gap:8px;margin:8px 4px 4px}
.city-shell .game-tabs .is-current,.city-shell .game-axis .is-current{background:#ffec27;color:#1d2b53}
.city-shell .game-section{margin:18px 4px}
.city-shell .game-section h2{font-family:var(--px-font);font-size:18px;margin:0 0 8px}
.city-shell .game-section h2 small{font-size:12px;opacity:.75;margin-left:6px}
.city-shell .game-table-wrap{overflow-x:auto}
.city-shell .game-table{width:100%;min-width:300px}
.city-shell .maze-map{font-family:var(--px-font);line-height:1.05;font-size:13px;background:#1d2b53;color:#fff1e8;padding:12px;overflow-x:auto;max-width:100%}
.city-shell .maze-moves code{word-break:break-all}
.city-shell .duel-transcript{padding-left:22px;display:flex;flex-direction:column;gap:6px}
.city-shell .duel-transcript .side-attack b{color:#ff004d}.city-shell .duel-transcript .side-defend b{color:#29adff}
html[data-theme=dark] .city-shell .game-tabs .is-current,html[data-theme=dark] .city-shell .game-axis .is-current{background:#ffec27;color:#1d2b53}
/* 벤치 난이도 등: 고른 버튼이 .text-button 기본 배경(!important)에 덮이지 않게 */
.city-shell .game-tabs a.text-button.is-current,.city-shell .game-axis a.text-button.is-current{background:#ffec27!important;color:#1d2b53!important;box-shadow:inset -3px -3px 0 #0004,0 0 0 3px #ff004d,4px 4px 0 3px #0005!important}


/* 장소 바로가기(도시 안내 · ☰ 메뉴): 2열 같은 크기 칸 */
.spot-list{margin:10px 0 6px;font-size:13px;width:100%}
.spot-list h3{margin:0 0 6px;font-size:13px;font-weight:700;letter-spacing:.02em}
.spot-list .spot-group{margin:0 0 8px}
.spot-list h4{margin:0 0 4px;padding-left:2px;font-size:11px;line-height:16px;font-weight:700;opacity:.65;text-transform:uppercase}
.spot-list ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px}
.spot-list li{min-width:0;margin:0}
.spot-list a{display:flex;align-items:center;justify-content:flex-start;gap:6px;box-sizing:border-box;width:100%;height:30px;padding:0 8px;border-radius:7px;border:1.5px solid color-mix(in srgb,var(--sc,#ffa300) 60%,transparent);color:var(--city-ink);text-decoration:none;font-size:12.5px;font-weight:600;line-height:1}
.spot-list a svg{flex:none;width:14px;height:14px;color:var(--sc,#ffa300)}
.spot-list a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spot-list a:hover,.spot-list a:focus-visible{background:color-mix(in srgb,var(--sc,#ffa300) 22%,transparent)}
.spot-list a em{margin-left:auto;flex:none;font-style:normal;font-size:10px;font-weight:600;opacity:.6}
dialog.city-menu .spot-list h3,dialog.city-menu .spot-list h4,dialog.city-menu .spot-list a{color:#eef0ff!important}
@media (max-width:900px){.city-guide .spot-list.in-guide{display:none}}

/* ===== 대화 효과(chatfx.ts) ===== */
@keyframes fx-pop{0%{opacity:0;transform:translateY(6px) scale(.7)}60%{opacity:1;transform:translateY(-2px) scale(1.06)}80%{transform:translateY(0) scale(.97)}100%{opacity:1;transform:none}}
@keyframes fx-sticker{0%{opacity:0;transform:scale(0) rotate(-14deg)}55%{opacity:1;transform:scale(1.25) rotate(6deg)}75%{transform:scale(.92) rotate(-3deg)}100%{opacity:1;transform:scale(1) rotate(-4deg)}}
@keyframes fx-glow{0%,100%{box-shadow:0 0 0 2px color-mix(in srgb,var(--fx-c,#ffa300) 35%,transparent),0 0 8px 0 color-mix(in srgb,var(--fx-c,#ffa300) 25%,transparent)}50%{box-shadow:0 0 0 2px color-mix(in srgb,var(--fx-c,#ffa300) 70%,transparent),0 0 16px 3px color-mix(in srgb,var(--fx-c,#ffa300) 45%,transparent)}}
@keyframes fx-dot{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-3px);opacity:1}}
@keyframes fx-fly{0%{opacity:0;transform:translate(0,0) scale(.4)}12%{opacity:1;transform:translate(calc(var(--dx)*.08),calc(var(--dy)*.08 - 10px)) scale(1.1)}50%{transform:translate(calc(var(--dx)*.5),calc(var(--dy)*.5 - 26px)) scale(1)}88%{opacity:1;transform:translate(var(--dx),var(--dy)) scale(1.15)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.6)}}
@keyframes fx-float{0%{opacity:0;transform:translate(0,0) scale(.4)}20%{opacity:1;transform:translate(2px,-8px) scale(1.1)}100%{opacity:0;transform:translate(-4px,-40px) scale(.9)}}
@keyframes fx-line{0%{opacity:0;clip-path:inset(0 100% 0 0)}25%{opacity:.9;clip-path:inset(0 0 0 0)}75%{opacity:.9;clip-path:inset(0 0 0 0)}100%{opacity:0;clip-path:inset(0 0 0 100%)}}
@keyframes fx-spark{0%{opacity:0;transform:scale(0) rotate(0)}40%{opacity:1;transform:scale(1.2) rotate(45deg)}100%{opacity:0;transform:scale(.2) rotate(90deg) translateY(-8px)}}
@keyframes fx-bump{0%,100%{transform:none}40%{transform:scale(1.18) rotate(-6deg)}70%{transform:scale(.95)}}

.chat-fx [data-fx-item]{animation:fx-pop .48s steps(6,end) both;animation-delay:calc(var(--fx-i,0) * 70ms)}
.chat-fx .fx-bubble{position:relative;display:block;margin:6px 0 4px 2px;padding:7px 10px;border:2px solid var(--city-ink,#0b0f24);border-radius:4px;background:color-mix(in srgb,var(--fx-c,#ffa300) 12%,var(--city-panel,#fff));box-shadow:3px 3px 0 0 color-mix(in srgb,var(--city-ink,#0b0f24) 30%,transparent);font-family:Galmuri11,inherit;line-height:1.55;overflow-wrap:anywhere}
.chat-fx .fx-bubble::before{content:"";position:absolute;left:12px;top:-8px;width:6px;height:6px;background:inherit;border-left:2px solid var(--city-ink,#0b0f24);border-top:2px solid var(--city-ink,#0b0f24);transform:skewX(-20deg)}
.chat-fx .fx-who{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}
.chat-fx .fx-av{width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--city-ink,#0b0f24);image-rendering:pixelated;flex:none}
.chat-fx .fx-mention{display:inline-block;padding:0 3px;border-radius:3px;background:color-mix(in srgb,#ff77a8 22%,transparent);color:inherit;font-weight:700;white-space:nowrap}
.chat-fx .fx-mention.fx-hit{animation:fx-bump .5s steps(5,end)}
.chat-fx .fx-av.fx-hit,.chat-fx .latest-av.fx-hit{animation:fx-bump .5s steps(5,end)}
.chat-fx .fx-new-tag,.chat-fx .fx-reply-pop{position:relative;display:inline-block;margin-left:6px;padding:1px 6px 2px;border:2px solid var(--city-ink,#0b0f24);border-radius:4px;background:#ffec27;color:#0b0f24;font:700 10px/14px Galmuri11,inherit;letter-spacing:.04em;transform:rotate(-4deg);animation:fx-sticker .55s steps(6,end) both;animation-delay:calc(var(--fx-i,0) * 70ms + .25s);vertical-align:1px}
.chat-fx .fx-reply-pop{background:#8fe3ff}
.chat-fx .fx-new-tag::after,.chat-fx .fx-reply-pop::after{content:"";position:absolute;left:6px;bottom:-6px;width:5px;height:5px;background:inherit;border-right:2px solid var(--city-ink,#0b0f24);border-bottom:2px solid var(--city-ink,#0b0f24);transform:skewX(25deg)}
.chat-fx .fx-long{--fx-c:#ffa300;border-radius:6px;animation:fx-pop .48s steps(6,end) both,fx-glow 3.2s ease-in-out infinite;animation-delay:calc(var(--fx-i,0) * 70ms),1s}
.chat-fx .fx-long.fx-hot{--fx-c:#ff77a8;animation-duration:.48s,2.2s}
.chat-fx .fx-long-chip{display:inline-block;margin-left:6px;padding:0 5px;border-radius:3px;background:color-mix(in srgb,var(--fx-c,#ffa300) 25%,transparent);font:700 10px/16px Galmuri11,inherit;white-space:nowrap}
.chat-fx .fx-typing{display:inline-flex;align-items:center;gap:2px;margin-left:5px;padding:3px 5px;border:2px solid var(--city-ink,#0b0f24);border-radius:8px 8px 8px 2px;background:var(--city-panel,#fff);vertical-align:middle}
.chat-fx .fx-typing i{display:block;width:3px;height:3px;background:var(--city-ink,#0b0f24);animation:fx-dot 1.2s steps(4) infinite}
.chat-fx .fx-typing i:nth-child(2){animation-delay:.18s}.chat-fx .fx-typing i:nth-child(3){animation-delay:.36s}
.chat-fx .latest-list li[data-fx-item]{border-radius:6px}
.chat-fx .latest-list li.fx-long{margin:3px 0}
/* 날아다니는 조각(body에 붙음, 클릭 통과) */
.fx-fly,.fx-line,.fx-spark{position:absolute;z-index:60;pointer-events:none}
.fx-fly{width:21px;height:18px;animation:fx-fly 1.25s cubic-bezier(.3,.1,.3,1) forwards}
.fx-fly.fx-float{animation:fx-float 1.2s steps(10,end) forwards}
.fx-fly::before{content:"";position:absolute;left:0;top:0;width:3px;height:3px;box-shadow:3px 0px 0 0 #ff77a8,6px 0px 0 0 #ff77a8,12px 0px 0 0 #ff77a8,15px 0px 0 0 #ff77a8,0px 3px 0 0 #ff77a8,3px 3px 0 0 #fff1e8,6px 3px 0 0 #ff77a8,9px 3px 0 0 #ff77a8,12px 3px 0 0 #ff77a8,15px 3px 0 0 #ff77a8,18px 3px 0 0 #ff77a8,0px 6px 0 0 #ff77a8,3px 6px 0 0 #ff77a8,6px 6px 0 0 #ff77a8,9px 6px 0 0 #ff77a8,12px 6px 0 0 #ff77a8,15px 6px 0 0 #ff77a8,18px 6px 0 0 #ff77a8,3px 9px 0 0 #ff77a8,6px 9px 0 0 #ff77a8,9px 9px 0 0 #ff77a8,12px 9px 0 0 #ff77a8,15px 9px 0 0 #ff77a8,6px 12px 0 0 #ff77a8,9px 12px 0 0 #ff77a8,12px 12px 0 0 #ff77a8,9px 15px 0 0 #ff77a8;filter:drop-shadow(1px 1px 0 #0b0f24)}
.fx-line{height:0;border-top:3px dotted #ff77a8;transform-origin:0 50%;animation:fx-line 1.4s steps(8,end) forwards}
.fx-spark{width:9px;height:9px;animation:fx-spark .7s steps(5,end) forwards}
.fx-spark::before,.fx-spark::after{content:"";position:absolute;background:#ffec27}
.fx-spark::before{left:3px;top:0;width:3px;height:9px}.fx-spark::after{left:0;top:3px;width:9px;height:3px}
@media (prefers-reduced-motion:reduce){.chat-fx [data-fx-item],.chat-fx .fx-long,.chat-fx .fx-new-tag,.chat-fx .fx-reply-pop,.chat-fx .fx-typing i,.chat-fx .fx-mention{animation:none!important}.fx-fly,.fx-line,.fx-spark{display:none!important}}

.ax-card .ax-ver{font-size:10px;opacity:.7}
.ax-top{list-style:none;margin:6px 0;padding:0;display:grid;gap:6px}
.ax-top a{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit}
.ax-top a>span{display:flex;flex-direction:column;min-width:0;flex:1}
.ax-top small{opacity:.8}
.ax-score{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
.ax-spark{letter-spacing:1px;font-family:ui-monospace,monospace;opacity:.85}
.ax-collecting{border:1px dashed var(--city-line);border-radius:10px;padding:8px 10px;margin:6px 0}
.ax-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin:12px 0}
.ax-entry{padding:14px;display:block}
.ax-entry header{display:flex;gap:10px;align-items:center}
.ax-entry h2{font-size:17px;margin:0}
.ax-headline{margin:2px 0}
.ax-trend{font-size:12px;border:1px solid var(--city-line);border-radius:999px;padding:0 6px}
.ax-parts{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:4px;font-size:13px}
.ax-parts li{display:grid;grid-template-columns:92px 1fr 48px;align-items:center;gap:6px}
.ax-parts em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums}
.ax-parts .ax-gate{grid-template-columns:92px 1fr}
.ax-bar{display:block;height:8px;border-radius:4px;background:color-mix(in srgb,currentColor 12%,transparent);overflow:hidden}
.ax-bar i{display:block;height:100%;background:#ffa300}
.ax-mini{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px}
.ax-pill{display:inline-block;font-weight:800;font-size:18px;border:2px solid var(--city-line);border-radius:12px;padding:2px 10px}
.ax-grades{display:flex;flex-wrap:wrap;gap:6px}
.ax-how{margin:10px 0}

.job-tabs{display:flex;gap:10px;margin:8px 0}.job-tabs a[aria-current]{font-weight:800;text-decoration:underline}
.job-card .post-top,.job-detail .post-top{display:flex;gap:8px;align-items:center}
.job-st{font-size:12px;padding:2px 8px;border-radius:999px;background:rgba(127,127,127,.18)}
.job-open{background:rgba(60,170,90,.22)}.job-frozen{background:rgba(131,118,156,.3)}.job-disputed{background:rgba(220,80,60,.22)}.job-accepted,.job-auto_accepted,.job-resolved{background:rgba(70,120,220,.2)}
.job-cat{font-size:12px;opacity:.8}.job-pay{margin-left:auto;font-variant-numeric:tabular-nums}
.job-facts{margin:8px 0;padding-left:18px}.job-log{font-size:13px;padding-left:20px}.job-delivery{border-left:3px solid rgba(127,127,127,.3);padding-left:8px;margin:6px 0}

.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:8px 0}
.badge-card{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:12px;text-decoration:none;color:inherit}
.badge-card:hover{border-color:#ffa300}
.badge-icon{font-size:28px;line-height:1}
.badge-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.badge-main small{font-size:12px;opacity:.75}
.badge-ok{color:#1f9d55;font-size:12px}
.badge-table{width:100%;border-collapse:collapse}
.badge-table th,.badge-table td{text-align:left;padding:6px 8px;border-bottom:1px solid color-mix(in srgb,currentColor 12%,transparent);vertical-align:top;word-break:break-all}
.badge-table th{width:30%;font-weight:600;word-break:normal}

.news-mast{text-align:center;border-bottom:3px double currentColor;margin-bottom:14px;padding-bottom:8px}.news-mast h1{font-size:34px;letter-spacing:.04em;margin:4px 0}
.news-kicker{font-weight:700;margin:0}.news-sub{margin:4px 0}.news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.news-sec h2{font-size:18px;margin:0 0 8px}.news-list{padding-left:20px;margin:6px 0}.news-list li{margin:4px 0}
.news-tag{font-size:12px;padding:1px 7px;border-radius:999px;background:rgba(127,127,127,.18)}.news-off{opacity:.85}
.news-nav{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin:16px 0}.news-archive{padding-left:18px}.news-archive li{margin:6px 0}
