:root{--page: #F4F2EC;--bg: #F7F5F0;--panel-2: #EDEAE2;--border: #D9D6CD;--ink-1: #2A2A28;--ink-2: #7C7B76;--ink-3: #9a988f;--accent: #2A2A28;--accent-2: #9a988f;--accent-soft: rgba(42,42,40,.05);--on-accent: #F4F2EC;--glow: none;--shadow: none;--r-lg: 0;--r-md: 0;--sat: env(safe-area-inset-top,0px);--sab: env(safe-area-inset-bottom,0px)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden}html{overflow-x:clip}body{background:#cfcdc7;color:var(--ink-1);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-weight:300;display:flex;align-items:center;justify-content:center;-webkit-font-smoothing:antialiased}.phone{position:relative;width:100%;height:100vh;height:100dvh;max-width:560px;overflow:hidden;background:var(--page)}@media (min-width: 561px){.phone{height:min(880px,92dvh);border-radius:0}body{padding:20px}}#app{position:relative;height:100%;z-index:1}.screen{position:absolute;inset:0;display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .5s ease,transform .5s cubic-bezier(.16,1,.3,1)}.screen.active{opacity:1;visibility:visible;pointer-events:auto}.screen:not(.active){transform:translateY(14px)}#cover{padding:calc(32px + var(--sat)) 26px calc(24px + var(--sab));align-items:center;text-align:center}.wordmark{display:flex;align-items:center;justify-content:center;gap:1px;line-height:1}.wordmark .t{font-size:clamp(48px,16vw,66px);font-weight:800;letter-spacing:-.03em;color:var(--ink-1)}.wordmark .t.c{color:var(--accent)}.wordmark svg{width:clamp(40px,14vw,54px);height:auto;margin:0 3px 6px}.cover-kicker{margin-top:16px;font-size:12px;letter-spacing:.26em;color:var(--accent-2);text-transform:uppercase}.cover-sub{margin-top:16px;font-size:22px;line-height:1.4;color:var(--ink-1);font-weight:600}.cat-stage{width:210px;height:210px;margin:16px auto 6px;overflow:hidden}.cat-stage svg{width:210px!important;height:210px!important;display:block;margin:0 auto}.btn{appearance:none;border:0;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:17px;color:var(--on-accent);background:var(--accent);padding:16px 46px;border-radius:0;box-shadow:none;text-decoration:none;transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s ease}.btn:link,.btn:visited,.btn:hover{text-decoration:none}.btn:active{transform:scale(.97)}.btn.ghost{background:var(--bg);color:var(--ink-1);border:1px solid var(--ink-1);box-shadow:none;font-weight:600;font-size:15px;padding:14px 20px}.hint{margin-top:18px;font-size:12px;color:var(--ink-3);letter-spacing:.05em}.cover-count{font-size:12px;color:var(--ink-3);margin-top:12px}.cover-wave{position:absolute;left:0;right:0;bottom:0;height:110px;pointer-events:none;opacity:.5}.cover-wave path{fill:var(--accent-2)}#quiz{padding:calc(22px + var(--sat)) 24px calc(22px + var(--sab))}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.prev-btn{appearance:none;border:0;background:transparent;color:var(--ink-1);font-size:18px;cursor:pointer;padding:0 4px;font-family:inherit;line-height:1}.progress-text{font-size:13px;font-weight:600;color:var(--accent-2);letter-spacing:.06em}.bar{height:4px;border-radius:0;background:var(--border);overflow:hidden}.bar i{display:block;height:100%;border-radius:0;background:var(--accent);width:0%;transition:width .45s cubic-bezier(.16,1,.3,1)}.q-card{flex:1;display:flex;flex-direction:column;justify-content:center;margin:8px 0 14px}.q-cat{width:132px;height:132px;margin:0 auto 14px;overflow:hidden}.q-cat svg{width:132px!important;height:132px!important;display:block;margin:0 auto}.q-label{font-size:11px;letter-spacing:.26em;color:var(--accent);text-transform:uppercase;text-align:center;margin-bottom:12px;font-weight:600}.q-title{font-size:clamp(22px,6.8vw,29px);font-weight:800;letter-spacing:-.01em;line-height:1.32;text-align:center;color:var(--ink-1)}.opts{display:flex;flex-direction:column;gap:11px}.opt{width:100%;text-align:left;border:1px solid var(--border);background:var(--bg);border-radius:var(--r-md);padding:16px 18px;min-height:56px;font-family:inherit;font-size:16px;line-height:1.5;color:var(--ink-1);cursor:pointer;font-weight:400;transition:transform .15s cubic-bezier(.16,1,.3,1),border-color .2s ease,background .2s ease;display:flex;align-items:center;gap:12px}.opt .dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:var(--border);transition:background .2s ease}.opt:hover{border-color:var(--accent)}.opt:active{transform:scale(.985)}.opt.pick{border-color:var(--accent);background:var(--accent-soft)}.opt.pick .dot{background:var(--accent)}.next{margin-top:14px}.next[disabled]{opacity:.35;pointer-events:none}#result{padding:calc(24px + var(--sat)) 0 calc(26px + var(--sab));overflow-y:auto}.res-hero{position:relative;padding:26px 24px 30px;text-align:center;transition:background .5s ease}.res-cat{width:150px;height:150px;margin:0 auto 10px;position:relative;z-index:1;overflow:hidden}.res-cat svg{width:150px!important;height:150px!important;display:block;margin:0 auto}.res-label{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent-2);font-weight:600;position:relative;z-index:1}.res-name{font-size:clamp(30px,9vw,44px);font-weight:800;letter-spacing:-.01em;line-height:1.35;color:var(--ink-1);position:relative;z-index:2;margin-top:8px;overflow-wrap:anywhere}.res-title{font-size:18px;font-weight:600;color:var(--accent);margin-top:8px;position:relative;z-index:1}.res-source{font-size:12px;font-weight:600;color:var(--ink-3);margin-top:10px;position:relative;z-index:1}.res-link{color:var(--accent);font-weight:600;border-bottom:1px solid var(--border);padding-bottom:1px;cursor:pointer;user-select:none;transition:color .15s ease}.res-link:active{opacity:.6}.res-link.copied{color:#2a7a3f;border-bottom-color:#2a7a3f}.res-body{padding:14px 24px 0}.res-desc{font-size:16px;line-height:1.95;color:var(--ink-2);text-align:left;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:22px 20px;box-shadow:var(--shadow);font-weight:400}.tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:18px}.tag{font-size:13px;color:var(--ink-2);background:var(--panel-2);border:1px solid var(--border);border-radius:0;padding:6px 14px;font-weight:500}.sub-cats{margin-top:14px;display:flex;flex-direction:column;gap:10px}.sub-cat{background:var(--panel-2);border:1px solid var(--border);border-radius:0;padding:14px 16px;font-size:15px;color:var(--ink-2);text-align:left;line-height:1.6}.sub-cat b{color:var(--ink-1);font-weight:600}.chart-box{margin-top:16px;background:var(--bg);border:1px solid var(--border);border-radius:0;padding:16px}.chart-title{font-size:13px;font-weight:600;color:var(--ink-1);margin-bottom:12px}.chart{display:flex;gap:6px;align-items:flex-end}.bar-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px}.bar-track{width:100%;height:110px;display:flex;align-items:flex-end;background:var(--panel-2)}.bar-fill{width:100%;background:var(--accent);min-height:2px}.bar-label{font-size:10px;color:var(--ink-3)}.bar-val{font-size:10px;color:var(--ink-2)}.pair-box{margin-top:16px;display:flex;flex-direction:column;gap:10px}.pair-item{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;font-size:15px;color:var(--ink-2);text-align:left;line-height:1.6}.pair-item b{color:var(--ink-1);font-weight:600}.actions{display:flex;flex-direction:column;gap:10px;margin:24px 24px 0}.res-count{font-size:13px;color:var(--ink-2);text-align:center;margin:20px 24px 0}.action-row{display:flex;gap:10px}.action-row .btn{flex:1}.share-note{font-size:12px;color:var(--ink-3);margin-top:10px;text-align:center}.donate-box{text-align:center;margin:24px 24px 0;padding:20px;background:var(--bg);border:1px solid var(--border)}.donate-text{font-size:14px;color:var(--ink-2);margin-bottom:14px;line-height:1.7}.donate-img{width:200px;height:200px;object-fit:contain}.watermark{margin:26px 24px 0;text-align:center;font-size:12px;line-height:1.9;color:var(--ink-3)}.watermark .wm-warn{color:var(--ink-2);font-weight:500}.watermark .wm-author{margin-top:4px;font-size:11px;letter-spacing:.02em;color:var(--ink-2)}#gallery{padding:calc(20px + var(--sat)) 24px calc(24px + var(--sab));overflow-y:auto}.gallery-head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.g-back{appearance:none;border:1px solid var(--border);background:transparent;color:var(--ink-1);padding:8px 16px;border-radius:0;cursor:pointer;font-family:inherit;font-size:14px}.g-title{font-size:18px;font-weight:600;color:var(--ink-1)}.gallery-list{display:flex;flex-direction:column;gap:14px}.g-card{border:1px solid var(--border);background:var(--bg);border-radius:0;padding:18px}.g-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.g-dot{width:14px;height:14px;border-radius:0;flex:0 0 auto;margin-top:4px}.g-name{font-size:17px;font-weight:700;color:var(--ink-1)}.g-tags{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap}.g-tag{font-size:11px;color:var(--ink-3);border:1px solid var(--border);padding:2px 8px;border-radius:0}.g-desc{font-size:14px;line-height:1.8;color:var(--ink-2)}.g-pair{margin-top:10px;font-size:13px;color:var(--ink-3)}#vote{padding:calc(20px + var(--sat)) 24px calc(24px + var(--sab));overflow-y:auto}.vote-note{font-size:13px;color:var(--ink-3);margin-bottom:16px}.vote-item{width:100%;text-align:left;border:1px solid var(--border);background:var(--bg);border-radius:0;padding:16px;font-size:16px;color:var(--ink-1);cursor:pointer;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center;font-family:inherit}.vote-item .v-count{font-size:13px;color:var(--ink-3)}.more-section{margin:28px 24px 0;padding:20px;background:var(--bg);border:1px solid var(--border)}.more-title{font-size:15px;font-weight:700;color:var(--ink-1);margin-bottom:14px;text-align:center;letter-spacing:.02em}.more-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.more-card{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--panel-2);border:1px solid var(--border);border-radius:0;text-decoration:none;cursor:pointer;transition:transform .15s cubic-bezier(.16,1,.3,1),border-color .2s ease}.more-card:active{transform:scale(.97);border-color:var(--accent)}.more-emoji{font-size:20px;line-height:1}.more-name{font-size:13px;font-weight:600;color:var(--ink-1);line-height:1.3}.more-desc{font-size:11px;color:var(--ink-3);line-height:1.3}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.screen{transition:none}}
