@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Source+Sans+3:wght@400;500;600&display=swap";:root{--bg: #f6f1e7;--bg2: #efe9dc;--panel: rgba(255,255,255,.86);--panel2: rgba(255,255,255,.68);--border: rgba(28,25,23,.12);--text: #1c1917;--muted: #5f5a4e;--muted2: #7b7568;--brand: #d97706;--brand2: #0f766e;--danger: #b91c1c;--r-lg: 16px;--r-xl: 22px;--shadow: 0 18px 60px rgba(28,25,23,.18);--shadow2: 0 10px 24px rgba(28,25,23,.12);--max: 1120px}*{box-sizing:border-box}html,body{height:100%}#root{min-height:100%}body{margin:0;color:var(--text);background:radial-gradient(900px 520px at 12% -10%,rgba(217,119,6,.18),transparent 60%),radial-gradient(700px 460px at 90% 8%,rgba(15,118,110,.18),transparent 55%),radial-gradient(860px 640px at 50% 115%,rgba(34,197,94,.1),transparent 60%),linear-gradient(180deg,#f9f5ed 0%,var(--bg) 55%,var(--bg2) 100%);font-family:"Source Sans 3",Noto Sans SC,Microsoft YaHei,PingFang SC,Hiragino Sans GB,Arial,sans-serif}a{color:inherit;text-decoration:none}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.container{width:100%;max-width:var(--max);margin:0 auto;padding:32px 18px 40px}.card{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.cardPad{padding:18px}.h1{font-family:Fraunces,serif;font-size:42px;line-height:1.1;margin:0;letter-spacing:.2px}.sub{margin-top:10px;color:var(--muted);line-height:1.7;font-size:15px}.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.badge{padding:7px 12px;border-radius:999px;border:1px solid rgba(217,119,6,.25);background:#d977061a;color:#7c4b0c;font-size:12px}.btnRow{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:14px;cursor:pointer;border:1px solid var(--border);background:#ffffffbf;color:var(--text);transition:transform .08s ease,box-shadow .15s ease,border-color .15s ease}.btn:hover{border-color:#1c191733;box-shadow:0 8px 22px #1c19171a}.btn:active{transform:translateY(1px)}.btnPrimary{border-color:#d9770673;background:linear-gradient(180deg,#d97706eb,#d97706b8);color:#1b1305;font-weight:600}.btnPrimary:hover{border-color:#d97706a6;box-shadow:0 10px 24px #d9770638}.pill{border-radius:999px;padding:8px 12px}.pillActive{background:linear-gradient(180deg,#0f766e38,#0f766e14);border-color:#0f766e73;color:#0a3f3a}.grid2{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-top:16px}@media(max-width:980px){.grid2{grid-template-columns:1fr}}.hr{height:1px;background:#1c19171f;margin:14px 0}.kv{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:560px){.kv{grid-template-columns:1fr}}.kvItem{padding:12px;border-radius:var(--r-lg);border:1px solid rgba(28,25,23,.08);background:#ffffff9e}.kvTitle{font-size:12px;color:var(--muted2)}.kvValue{margin-top:6px;font-size:14px;color:var(--text);line-height:1.6}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border);background:#ffffffb3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbarLeft{display:flex;align-items:center;gap:12px}.topbarTitle{font-family:Fraunces,serif;font-weight:700;letter-spacing:.2px}.viewerLayout{flex:1;display:flex;min-height:0}.viewerStage{flex:1;padding:16px;min-width:0}.viewerStageCard{height:100%;padding:18px;display:flex;align-items:center;justify-content:center;text-align:center}.viewerSide{width:380px;border-left:1px solid var(--border);padding:16px;overflow:auto;background:#ffffff94;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@media(max-width:980px){.viewerSide{width:100%;border-left:0;border-top:1px solid var(--border)}.viewerLayout{flex-direction:column}}@keyframes floatIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:no-preference){.card,.badge{animation:floatIn .6s ease both}.grid2>.card:nth-child(1){animation-delay:.04s}.grid2>.card:nth-child(2){animation-delay:.12s}}
