
/* explore-ui.css | 쌤쌤뮤지엄 탐험룸 공통 UI v1 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20..48,300..700,0..1,-50..200');

:root{
  --bg:#f6f7fb;--surface:#fff;--surface-soft:#fbfcfe;--line:#e7ebf3;
  --text:#142033;--text-2:#4b5b73;--text-3:#8a97ab;
  --brand:#f97316;--brand-2:#ffb84d;--brand-soft:#fff3e7;
  --blue:#3b82f6;--green:#10b981;--red:#ef4444;--purple:#8b5cf6;--gold:#f8c14a;
  --radius-xl:24px;--radius-lg:20px;--radius-md:14px;
  --shadow-sm:0 2px 10px rgba(15,23,42,.05);--shadow-md:0 8px 24px rgba(15,23,42,.08);--shadow-lg:0 16px 44px rgba(15,23,42,.14);
  --font:"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;min-height:100dvh}.app-shell{width:100%;max-width:480px;margin:0 auto;min-height:100dvh;background:var(--bg);position:relative;overflow-x:hidden}.topbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:12px;padding:12px 16px;background:rgba(255,255,255,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(231,235,243,.9)}.topbar .logo{height:26px;width:auto}.icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);box-shadow:var(--shadow-sm);cursor:pointer}.ms{font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;font-variation-settings:'FILL' 0,'wght' 500,'GRAD' 0,'opsz' 24}.ms.fill{font-variation-settings:'FILL' 1,'wght' 600,'GRAD' 0,'opsz' 24}.hero-card{margin:14px 16px 0;border-radius:28px;overflow:hidden;position:relative;min-height:190px;background:linear-gradient(135deg,#101827,#263a5c);box-shadow:var(--shadow-lg)}.hero-card img{width:100%;height:220px;object-fit:cover;display:block}.hero-card.no-image{display:flex;align-items:flex-end;background:linear-gradient(135deg,#f97316,#ffb84d)}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.56) 72%,rgba(0,0,0,.78) 100%)}.hero-content{position:absolute;left:0;right:0;bottom:0;padding:22px;color:#fff}.eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.25);padding:5px 10px;border-radius:999px;margin-bottom:10px}.hero-title{font-size:24px;font-weight:900;line-height:1.2;margin:0 0 6px;letter-spacing:-.02em}.hero-desc{font-size:13px;font-weight:700;opacity:.88;margin:0}.content{padding:18px 16px calc(92px + env(safe-area-inset-bottom))}.section-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 12px}.section-title{font-size:17px;font-weight:900;letter-spacing:-.02em}.section-sub{font-size:12px;color:var(--text-3);font-weight:700}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 10px;background:#fff;border:1px solid var(--line);font-size:12px;font-weight:800;color:var(--text-2)}.pill.orange{background:var(--brand-soft);border-color:#fed7aa;color:#c2410c}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stack{display:flex;flex-direction:column;gap:12px}.app-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;text-decoration:none;color:inherit;cursor:pointer}.app-card:active{transform:scale(.985)}@media(hover:hover){.app-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);border-color:#ffd7ad}}.thumb{position:relative;width:100%;aspect-ratio:16/10;background:linear-gradient(135deg,#eef2f7,#e2e8f0);overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb .fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--fallback-a,#ffedd5),var(--fallback-b,#dbeafe));}.thumb .fallback .ms{font-size:42px;color:rgba(20,32,51,.45)}.card-body{padding:12px}.card-title{font-size:15px;font-weight:900;color:var(--text);line-height:1.35;letter-spacing:-.02em}.card-desc{font-size:12px;line-height:1.45;color:var(--text-3);font-weight:700;margin-top:4px}.meta-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900;white-space:nowrap}.badge.orange{background:#fff3e7;color:#c2410c}.badge.blue{background:#eaf2ff;color:#1d4ed8}.badge.green{background:#e9fbf4;color:#047857}.badge.red{background:#fff0f0;color:#b91c1c}.badge.gray{background:#f1f5f9;color:#64748b}.badge.purple{background:#f3edff;color:#6d28d9}.list-card{display:flex;gap:12px;align-items:center;padding:12px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm);text-decoration:none;color:inherit}.list-thumb{width:74px;height:74px;border-radius:16px;overflow:hidden;flex:0 0 74px;background:#eef2f7;position:relative}.list-thumb img{width:100%;height:100%;object-fit:cover}.list-info{min-width:0;flex:1}.list-title{font-size:15px;font-weight:900;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-desc{font-size:12px;color:var(--text-3);font-weight:700;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}.quick{background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px 6px;text-align:center;text-decoration:none;color:var(--text-2);box-shadow:var(--shadow-sm)}.quick .ms{font-size:26px;color:var(--brand)}.quick span:last-child{display:block;margin-top:5px;font-size:11px;font-weight:900}.empty{padding:40px 20px;text-align:center;background:#fff;border:1px dashed #d9e1ee;border-radius:24px;color:var(--text-3);font-weight:800}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:55dvh;color:var(--text-3);font-weight:800}.spinner{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--brand);border-radius:999px;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:9999;max-width:480px;margin:0 auto;height:76px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-top:1px solid var(--line);display:flex;align-items:center}.bottom-nav a,.bottom-nav button{flex:1;border:0;background:transparent;text-decoration:none;color:var(--text-3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:var(--font);font-size:10.5px;font-weight:900;cursor:pointer;border-radius:16px;height:58px}.bottom-nav .ms{font-size:24px}.bottom-nav .on{color:var(--brand);background:var(--brand-soft)}.progress-shell{height:10px;background:rgba(255,255,255,.3);border-radius:999px;overflow:hidden;margin-top:14px}.progress-bar{height:100%;background:linear-gradient(90deg,#fff,#ffe7b8);border-radius:999px}.record-stat{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 16px 0}.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;text-align:center;box-shadow:var(--shadow-sm)}.stat b{display:block;font-size:21px;color:var(--brand);line-height:1}.stat span{display:block;margin-top:5px;font-size:11px;font-weight:900;color:var(--text-3)}.notice{padding:12px 14px;border-radius:16px;background:#fff7ed;color:#9a3412;font-size:12px;font-weight:800;line-height:1.55;border:1px solid #fed7aa}.locked{opacity:.54;filter:grayscale(.2);cursor:default}.photo-credit{font-size:10px;color:rgba(255,255,255,.68);margin-top:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ═══ 4단계 카드 도감 UI ═══ */
.cardbook-toolbar{display:flex;gap:8px;overflow-x:auto;padding:0 2px 12px;margin-bottom:8px;scrollbar-width:none}.cardbook-toolbar::-webkit-scrollbar{display:none}.filter-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-family:var(--font);font-size:12px;font-weight:900;color:var(--text-2);white-space:nowrap;cursor:pointer}.filter-chip.on{background:var(--brand-soft);border-color:#fed7aa;color:#c2410c}.cardbook-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.collect-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.collect-card:active{transform:scale(.985)}.collect-card.locked{opacity:.72}.collect-card.locked .card-art{filter:grayscale(.72)}.collect-frame{position:relative;padding:10px;background:linear-gradient(135deg,#f8fafc,#eef2f7)}.collect-frame.rarity-rare{background:linear-gradient(135deg,#eff6ff,#dbeafe)}.collect-frame.rarity-epic{background:linear-gradient(135deg,#f5f3ff,#ede9fe)}.collect-frame.rarity-legendary{background:linear-gradient(135deg,#fffbeb,#fef3c7)}.card-art{position:relative;width:100%;aspect-ratio:3/4;border-radius:18px;overflow:hidden;background:#eef2f7;border:2px solid rgba(255,255,255,.85);box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}.card-art.large{max-width:210px;margin:0 auto;box-shadow:var(--shadow-md)}.card-art img{width:100%;height:100%;object-fit:cover;display:block}.card-art-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.75),transparent 38%),linear-gradient(135deg,#fff7ed,#e0f2fe)}.card-art-fallback .ms{font-size:54px;color:rgba(20,32,51,.42)}.collect-body{padding:12px}.collect-body h3{font-size:15px;line-height:1.25;margin:0;color:var(--text);font-weight:900;letter-spacing:-.02em}.collect-body p{margin:6px 0 0;font-size:12px;line-height:1.45;color:var(--text-3);font-weight:700;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rarity-chip,.owned-chip,.lock-chip{display:inline-flex;align-items:center;gap:3px;border-radius:999px;padding:4px 8px;font-size:10.5px;font-weight:900}.rarity-chip{position:absolute;left:16px;top:16px;background:rgba(255,255,255,.9);color:#475569}.rarity-chip .ms,.owned-chip .ms,.lock-chip .ms{font-size:13px}.rarity-chip.rarity-rare{color:#1d4ed8}.rarity-chip.rarity-epic{color:#6d28d9}.rarity-chip.rarity-legendary{color:#b45309}.owned-chip{position:absolute;right:16px;bottom:16px;background:#ecfdf5;color:#047857}.lock-chip{position:absolute;right:16px;bottom:16px;background:rgba(241,245,249,.94);color:#64748b}.card-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:10px}.card-stats div{background:#f8fafc;border:1px solid #edf2f7;border-radius:10px;padding:6px 7px}.card-stats span{display:block;font-size:10px;color:var(--text-3);font-weight:900}.card-stats b{display:block;margin-top:2px;font-size:13px;color:var(--text);font-weight:900}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:10000;display:flex;align-items:flex-end;justify-content:center;padding:16px}.card-modal{position:relative;width:100%;max-width:448px;max-height:90dvh;overflow:auto;background:#fff;border-radius:28px 28px 20px 20px;padding:18px;box-shadow:var(--shadow-lg);animation:modalIn .18s ease both}.modal-close{position:absolute;right:14px;top:14px;width:38px;height:38px;border:0;border-radius:999px;background:rgba(255,255,255,.9);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}.modal-body{padding:14px 2px 2px}.modal-body .meta-row{margin-bottom:8px}.modal-body h2{margin:0;font-size:23px;line-height:1.25;font-weight:900;letter-spacing:-.03em}.modal-body p{font-size:14px;line-height:1.6;color:var(--text-2);font-weight:700}.info-box{display:flex;align-items:center;gap:10px;background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:12px;margin:12px 0}.info-box .ms{color:var(--brand)}.info-box b{display:block;font-size:12px}.info-box span:last-child{display:block;font-size:13px;color:var(--text-3);font-weight:800;margin-top:2px}.report-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:16px;box-shadow:var(--shadow-sm);margin-bottom:12px}.report-card h3{margin:0 0 8px;font-size:16px;font-weight:900}.report-card p{margin:0;font-size:13px;line-height:1.65;color:var(--text-2);font-weight:700}.report-list{padding-left:18px;margin:8px 0 0}.report-list li{font-size:13px;line-height:1.6;color:var(--text-2);font-weight:700}@keyframes modalIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

.stars{display:inline-flex;align-items:center;gap:1px;vertical-align:-3px}.stars .ms{font-size:15px;color:#cbd5e1}.stars .ms.fill{color:#f59e0b}
