:root{--bg: #f6f5f9;--fg: #1f2230;--muted: #6a6f80;--card: #ffffff;--border: #e3e2ea;--shared: #565b6e}@media (prefers-color-scheme: dark){:root{--bg: #15161d;--fg: #ececf3;--muted: #9a9fb0;--card: #1f212b;--border: #2f3140;--shared: #b3b8cc}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{--accent: #8b5fbf;min-height:100vh;max-width:1280px;margin:0 auto;padding:56px 16px 24px;display:grid;grid-template-columns:1fr minmax(320px,1.3fr) 1fr;grid-template-areas:"char center str" "weak center focus" "people people people";gap:20px;align-items:start}.center-area{grid-area:center;align-self:stretch}.center{display:flex;flex-direction:column;align-items:center;text-align:center;position:sticky;top:max(16px,min(18vh,calc(100vh - 700px)));max-height:calc(100vh - 32px);overflow-y:auto}.a-char{grid-area:char}.a-str{grid-area:str}.a-weak{grid-area:weak}.a-focus{grid-area:focus}.letters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.letter{background:transparent;border:2px solid transparent;border-radius:16px;padding:8px 10px;cursor:pointer;color:var(--accent);display:flex;flex-direction:column;align-items:center;transition:transform .15s,background .15s,border-color .15s,color .3s}.letter:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);transform:translateY(-3px)}.letter:focus-visible{outline:none;border-color:var(--accent)}.letter:active{transform:scale(.95)}.letter-char{font-size:clamp(3.5rem,9vw,6.5rem);font-weight:800;line-height:1;animation:flip .3s ease}.letter-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-top:4px}@keyframes flip{0%{opacity:0;transform:rotateX(90deg)}to{opacity:1;transform:rotateX(0)}}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.type-name{margin:16px 0 0;font-size:2rem;color:var(--accent);animation:fade .3s ease}.group{margin:4px 0;font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.85rem}.borrowed{max-width:36ch;margin:2px 0 0;color:var(--muted);font-size:.72rem;line-height:1.4}.hint{color:var(--muted);font-size:.85rem}.card,.people{background:var(--card);border:1px solid var(--border);border-top:4px solid var(--accent);border-radius:14px;padding:18px 20px;transition:border-color .3s}.card h2,.people h2{margin:0 0 10px;font-size:1.05rem;color:var(--accent)}.card ul{list-style:none;margin:0;padding:0}.card li{padding:10px 0;border-top:1px solid var(--border)}.card li:first-child{border-top:0;padding-top:0}.card li:last-child{padding-bottom:0}.card h3{margin:0 0 3px;font-size:.95rem;font-weight:650;display:flex;gap:8px;align-items:baseline}.tag{flex:none;min-width:1.5em;text-align:center;font-size:.75rem;font-weight:800;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);border-radius:5px;padding:1px 4px}.btn{font:inherit;font-size:.85rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:999px;padding:7px 16px;cursor:pointer;text-decoration:none}.btn:hover{background:color-mix(in srgb,var(--accent) 20%,transparent)}.btn:focus-visible,.research-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-quiet{background:transparent;border-color:transparent;color:var(--muted);font-weight:500}.test{max-width:36ch;display:grid;gap:10px;justify-items:center}.test p{margin:0}.test-step{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.test-prompt,.test-legend{font-size:.78rem;color:var(--muted)}.test-question{font-weight:600;line-height:1.4}.test-result{font-size:.85rem;line-height:1.5;color:var(--muted)}.test-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.btn-rating{min-width:2.6em;padding-inline:0;font-variant-numeric:tabular-nums}.research-link{margin-top:14px;font-size:.85rem;color:var(--muted);text-underline-offset:3px}.research-link:hover{color:var(--accent)}.close-note{max-width:34ch;margin-top:0;font-size:.78rem}.sliders{width:min(100%,340px);margin:20px 0 4px;display:grid;gap:12px}.slider{display:grid;grid-template-columns:1.2em 1fr 1.2em;align-items:center;column-gap:10px}.slider-end{font-weight:800;font-size:.85rem;color:var(--muted)}.slider input{--track: linear-gradient(to right, transparent calc(50% - 1px) , var(--muted) calc(50% - 1px) calc(50% + 1px) , transparent calc(50% + 1px) ), linear-gradient( to right, var(--border) var(--lo, 40%), color-mix(in srgb, var(--accent) 35%, var(--border)) var(--lo, 40%) var(--hi, 60%), var(--border) var(--hi, 60%) );-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;min-width:0;height:22px;margin:0;background:transparent;cursor:pointer}.slider input::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:var(--track)}.slider input::-moz-range-track{height:6px;border-radius:3px;background:var(--track)}.slider input::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;border:2px solid var(--card);background:var(--accent)}.slider input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;border:2px solid var(--card);background:var(--accent)}.slider input:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.slider-readout{grid-column:1 / -1;font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.slider-readout.close{color:var(--fg);font-weight:600}.stability{display:grid;gap:4px;padding-top:10px;border-top:1px solid var(--border)}.stability-name{font-size:.8rem;font-weight:700}.stability-about{margin:0;font-size:.72rem;line-height:1.45;color:var(--muted)}.meter{position:relative;height:6px;margin:8px 0;border-radius:3px;background:linear-gradient(to right,var(--border) var(--lo),color-mix(in srgb,var(--accent) 35%,var(--border)) var(--lo) var(--hi),var(--border) var(--hi))}.meter:after{content:"";position:absolute;left:var(--at);top:50%;width:4px;height:16px;border-radius:2px;background:var(--accent);transform:translate(-50%,-50%)}.test-group{font-size:.8rem;color:var(--muted)}.test-group select{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--border);border-radius:6px;padding:3px 6px;max-width:100%}.card p.evidence{display:inline-block;margin:0 0 4px;font-size:.68rem;font-weight:650;line-height:1.5;letter-spacing:.02em;border-radius:999px;padding:0 8px;border:1px solid var(--border);color:var(--muted)}.card p.evidence a{color:inherit;text-decoration:none}.card p.evidence a:hover{text-decoration:underline;text-underline-offset:2px}.card p.evidence a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:999px}.card p.evidence-strong{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:transparent}.card p.evidence-limited{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.card p.evidence-thin{border-style:dashed}.card p{margin:0;font-size:.9rem;line-height:1.55;color:var(--muted)}.card{animation:fade .3s ease}.people{grid-area:people;text-align:center}.people ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.people li{min-width:0}.people a{height:100%;background:color-mix(in srgb,var(--accent) 12%,transparent);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:1px;color:inherit;text-decoration:none;transition:background .15s}.people a:hover{background:color-mix(in srgb,var(--accent) 24%,transparent)}.people a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.person-name{font-weight:600;font-size:.9rem;overflow-wrap:anywhere}.person-role{font-size:.75rem;color:var(--muted)}.note{color:var(--muted);font-size:.75rem;margin:12px 0 0}@media (max-width: 860px){.app{grid-template-columns:1fr;grid-template-areas:"center" "char" "str" "weak" "focus" "people"}.center{position:static;max-height:none;overflow:visible}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.app{position:relative}.lang-switch{position:absolute;top:12px;right:16px;display:flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--card)}.lang-switch button{border:0;background:transparent;color:var(--muted);font:inherit;font-size:.8rem;font-weight:600;padding:6px 12px;cursor:pointer}.lang-switch button.active{background:var(--accent);color:#fff}.lang-switch button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.person{width:100%;display:flex;flex-direction:column;align-items:center}.add-person{margin-top:14px}.app.pair{--accent: var(--shared);grid-template-areas:"intro intro intro" "char center str" "weak center focus" "people people people"}.pair .center{position:static;max-height:none;overflow:visible}.pair .person{padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--border)}.pair .letter-char{font-size:clamp(2.4rem,5vw,3.4rem)}.pair .type-name{margin-top:6px;font-size:1.3rem}.pair .lang-switch button.active{color:var(--bg)}.person-label{margin:0 0 4px;display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700}.person-number,.pair-dot{width:1.6em;height:1.6em;display:inline-grid;place-items:center;border-radius:50%;background:var(--accent);color:#15161d;font-size:.72rem;font-weight:800;line-height:1}.pair-note{max-width:36ch;margin:6px 0;font-size:.78rem;line-height:1.45}.pair-note:empty{display:none}.pair-intro{grid-area:intro}.pair-practices{grid-area:people}.card h1{margin:0 0 10px;font-size:1.05rem;color:var(--accent)}.pair-intro li,.pair-practices li{padding:6px 0;font-size:.9rem;line-height:1.55}.pair-practices .note{margin-top:10px;font-size:.78rem}.pair-track{display:grid;grid-template-columns:1.2em 1fr 1.2em;align-items:center;column-gap:10px;height:34px;text-align:center}.pair-line{position:relative;height:6px;border-radius:3px;background:linear-gradient(to right,transparent calc(50% - 1px),var(--muted) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px)),var(--border)}.pair-dot{position:absolute;top:50%;border:2px solid var(--card);box-sizing:content-box;transition:left .15s}.pair-dot-1{transform:translate(-50%,-80%)}.pair-dot-2{transform:translate(-50%,-20%)}.card p.pair-state{margin:2px 0 12px;font-size:.78rem;font-weight:600;color:var(--fg)}.card p.ask{margin-top:6px;color:var(--fg)}.ask span{font-weight:650}@media (max-width: 860px){.app.pair{grid-template-areas:"center" "intro" "char" "str" "weak" "focus" "people"}}
