:root{--bg: #f3ede1;--ink: #1c1814;--muted: #6b5f4e;--accent: #8b2e2e;--card: #faf5e9;--border: #d9ccb4;--shadow-tone: #b39c7d;--serif: "Noto Serif TC", "Source Han Serif TC", "Songti TC", serif;--display: "Cormorant Garamond", "Noto Serif TC", serif}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.3;z-index:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.11 0 0 0 0 0.09 0 0 0 0 0.08 0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}#app{position:relative;z-index:1;min-height:100vh}button{border:none;background:none;cursor:pointer;font-family:inherit;color:inherit}.hairline{height:1px;background:var(--ink);opacity:.3}.welcome{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:48px 24px;background-image:radial-gradient(ellipse at top,rgba(139,46,46,.04),transparent 60%),radial-gradient(ellipse at bottom,rgba(28,24,20,.03),transparent 50%)}.welcome-inner{max-width:28rem;width:100%;text-align:center}.welcome-since{display:flex;align-items:center;justify-content:center;margin-bottom:32px}.welcome-since .line{width:48px}.welcome-since .label{margin:0 12px;font-family:var(--display);font-style:italic;color:var(--accent);font-size:12px;letter-spacing:.2em}.welcome-eyebrow{font-size:13px;letter-spacing:.4em;color:var(--muted);font-family:var(--display);margin-bottom:16px}.welcome-title{font-size:48px;line-height:1.15;margin-bottom:24px;font-weight:500;letter-spacing:.02em}.welcome-title em{color:var(--accent);font-style:italic;font-family:var(--display);font-weight:400}.welcome-sub{font-size:16px;line-height:1.6;color:var(--muted);font-weight:300;margin-bottom:4px}.welcome-sub.small{font-size:14px;margin-bottom:48px}.btn-primary{padding:16px 40px;font-size:13px;letter-spacing:.3em;background:var(--ink);color:var(--bg);font-family:var(--display);transition:transform .2s,opacity .2s}.btn-primary:active{transform:scale(.95)}.btn-primary:hover{opacity:.9}.welcome-dims{margin-top:64px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:11px;color:var(--muted);flex-wrap:wrap}.welcome-dims em{font-family:var(--display);font-style:italic}.welcome-disclaimer{margin:40px auto 0;max-width:22rem;font-size:11px;line-height:1.7;color:var(--muted);opacity:.75}.quiz{min-height:100vh;display:flex;flex-direction:column}.quiz-top{padding:24px 24px 16px}.quiz-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.back-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);font-family:var(--display);letter-spacing:.2em;transition:opacity .2s}.back-btn:disabled{opacity:.3;cursor:default}.back-btn svg{width:14px;height:14px}.quiz-meta{display:flex;align-items:center;gap:8px;font-size:12px}.quiz-meta .dim{font-family:var(--display);color:var(--accent);font-style:italic;letter-spacing:.1em}.quiz-meta .dot{color:var(--muted)}.quiz-meta .count{font-family:var(--display);color:var(--muted);letter-spacing:.1em;font-variant-numeric:tabular-nums}.progress{height:1px;background:var(--border);width:100%;position:relative}.progress-fill{position:absolute;left:0;top:0;bottom:0;background:var(--ink);transition:width .5s ease-out}.quiz-body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:32px 24px}.quiz-content{max-width:28rem;width:100%;margin:0 auto;animation:fadeIn .4s ease-out}.quiz-eyebrow{font-size:12px;letter-spacing:.3em;margin-bottom:16px;text-align:center;color:var(--muted);font-family:var(--display)}.quiz-question{font-size:24px;line-height:1.7;text-align:center;margin-bottom:40px;padding:0 8px;font-weight:400}.options{display:flex;flex-direction:column;gap:12px}.option{width:100%;padding:20px;text-align:left;background:var(--card);border:1px solid var(--border);transition:transform .2s,box-shadow .2s;display:flex;align-items:flex-start;gap:16px}.option:active{transform:scale(.98)}.option:hover{box-shadow:0 1px 4px #0000000a}.option-letter{font-size:20px;font-family:var(--display);color:var(--accent);font-style:italic;flex-shrink:0;margin-top:2px}.option-text{font-size:16px;line-height:1.65;font-weight:400}.quiz-foot{text-align:center;padding:0 24px 24px;font-size:12px;color:var(--muted);font-style:italic}.results{padding:40px 24px 56px;background-image:radial-gradient(ellipse at top,rgba(139,46,46,.06),transparent 60%);animation:fadeInUp .8s ease-out}.results-inner{max-width:28rem;margin:0 auto}.results-eyebrow{text-align:center;margin-bottom:24px}.results-eyebrow .label{font-size:12px;letter-spacing:.4em;color:var(--muted);font-family:var(--display);margin-bottom:8px}.results-eyebrow .row{display:flex;align-items:center;justify-content:center;gap:12px}.results-eyebrow .row .line{width:32px}.results-eyebrow .row .num{font-size:12px;letter-spacing:.2em;font-family:var(--display);font-style:italic;color:var(--accent)}.type-card{text-align:center;padding:32px 24px;margin-bottom:24px;background:var(--card);border:1px solid var(--border);position:relative}.type-seal{position:absolute;top:12px;right:12px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.15em;border:1.5px solid var(--accent);color:var(--accent);font-family:var(--display);transform:rotate(3deg)}.type-code{font-size:64px;margin-bottom:4px;letter-spacing:.05em;font-family:var(--display);font-weight:500;line-height:1}.type-suffix{font-size:14px;color:var(--muted);font-family:var(--display);letter-spacing:.3em;margin-bottom:16px;font-style:italic}.type-name{font-size:30px;font-weight:500;color:var(--accent);margin-bottom:12px}.type-tagline{font-size:14px;color:var(--muted);font-family:var(--display);font-style:italic;padding:0 24px;line-height:1.6}.type-desc{font-size:16px;line-height:1.9;margin-bottom:32px;padding:0 8px}.section-label{font-size:12px;letter-spacing:.3em;text-align:center;color:var(--muted);font-family:var(--display);margin-bottom:8px}.section-zh{font-size:13px;text-align:center;color:var(--muted);margin-bottom:20px;font-style:italic;font-family:var(--display)}.section{margin-bottom:40px}.breakdown-rows{display:flex;flex-direction:column;gap:20px}.dim-row{display:flex;flex-direction:column;gap:8px}.dim-labels{display:flex;justify-content:space-between;align-items:baseline}.dim-labels .side{display:flex;align-items:baseline;gap:8px;font-size:13px}.dim-letter{font-size:18px;font-family:var(--display);color:var(--muted)}.dim-letter.active{font-weight:600;color:var(--accent)}.dim-name{font-size:12px;color:var(--muted)}.dim-name.active{color:var(--ink)}.dim-pct{font-size:12px;color:var(--muted);font-family:var(--display);font-variant-numeric:tabular-nums}.dim-bar{position:relative;height:2px;background:var(--border)}.dim-fill-left{position:absolute;left:0;top:0;bottom:0;background:var(--accent);transition:width 1s ease-out}.dim-fill-right{position:absolute;right:0;top:0;bottom:0;background:var(--accent);transition:width 1s ease-out}.dim-center{position:absolute;top:-3px;left:50%;width:1px;height:8px;background:var(--ink);opacity:.4;transform:translate(-.5px)}.identity-block{background:var(--card);border:1px solid var(--border);padding:20px 24px;margin-bottom:16px}.identity-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.identity-name{font-size:13px;color:var(--muted);font-family:var(--display);letter-spacing:.15em}.identity-pct{font-size:13px;color:var(--accent);font-family:var(--display);font-variant-numeric:tabular-nums;font-style:italic}.identity-title{font-size:18px;color:var(--accent);margin-bottom:8px;font-weight:500}.identity-desc{font-size:14px;line-height:1.85;color:var(--ink)}.functions-grid{display:flex;flex-direction:column;gap:0;background:var(--card);border:1px solid var(--border)}.func-row{display:flex;align-items:flex-start;padding:14px 18px;border-bottom:1px dashed var(--border);gap:14px}.func-row:last-child{border-bottom:none}.func-row.shadow{opacity:.55}.func-rank{flex-shrink:0;width:24px;text-align:center;font-family:var(--display);font-style:italic;color:var(--muted);font-size:14px;padding-top:2px}.func-code{flex-shrink:0;width:32px;font-size:22px;font-family:var(--display);font-weight:600;color:var(--accent);line-height:1.1}.func-row.shadow .func-code{color:var(--muted)}.func-body{flex:1;min-width:0}.func-line{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.func-name{font-size:14px;font-weight:500}.func-pos{font-size:11px;color:var(--muted);font-family:var(--display);font-style:italic}.func-desc{font-size:12px;color:var(--muted);line-height:1.6}.func-divider{padding:8px 18px;font-size:10px;letter-spacing:.3em;color:var(--muted);font-family:var(--display);background:var(--bg);border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);text-align:center;font-style:italic}.restart-wrap{text-align:center;margin-top:8px}.btn-secondary{display:inline-flex;align-items:center;gap:8px;padding:12px 32px;font-size:12px;border:1px solid var(--ink);color:var(--ink);font-family:var(--display);letter-spacing:.3em;transition:transform .2s,background .2s,color .2s}.btn-secondary:active{transform:scale(.95)}.btn-secondary:hover{background:var(--ink);color:var(--bg)}.btn-secondary svg{width:12px;height:12px}.results-fin{margin-top:48px;display:flex;align-items:center;justify-content:center;gap:12px}.results-fin .line{width:40px;opacity:.2}.results-fin .label{font-size:10px;letter-spacing:.3em;color:var(--muted);font-family:var(--display);font-style:italic}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(min-width:640px){.welcome-title{font-size:56px}.quiz-question{font-size:26px}.type-code{font-size:76px}}
