:root{--font-sans: "Outfit", sans-serif;--font-mono: "JetBrains Mono", monospace;--type-font: 28px;--type-line: 1.65}[data-theme]{--c: #ffffff;--surface: color-mix(in srgb, var(--bg) 92%, var(--text));--line: color-mix(in srgb, var(--bg) 86%, var(--text));--sub-dim: color-mix(in srgb, var(--bg) 80%, var(--text));--sub: color-mix(in srgb, var(--bg) 58%, var(--text));--text-bright: color-mix(in srgb, var(--text) 72%, var(--c));--accent-dim: color-mix(in srgb, var(--accent) 55%, var(--bg));--error: #d9636b;--error-extra: #7c3a3f}[data-theme=pearl],[data-theme=diamond],[data-theme=rose-gold],[data-theme=jade],[data-theme=topaz],[data-theme=quartz]{--c: #000000}[data-theme=amethyst]{--bg:#2a2438;--accent:#b794f6;--text:#e8e3f0}[data-theme=citrine]{--bg:#2b2419;--accent:#f4c542;--text:#efe6d3}[data-theme=malachite]{--bg:#16241c;--accent:#3ddc84;--text:#d4e8db}[data-theme=rose-quartz]{--bg:#2e2428;--accent:#f7a8b8;--text:#f0e2e5}[data-theme=aquamarine]{--bg:#16282d;--accent:#5fc9c0;--text:#d6ecec}[data-theme=sapphire]{--bg:#131a2e;--accent:#4d7cfe;--text:#dce3f5}[data-theme=garnet]{--bg:#2a1518;--accent:#d64550;--text:#f0dada}[data-theme=moonstone]{--bg:#232a30;--accent:#a8c5d6;--text:#e6edf2}[data-theme=peridot]{--bg:#21260f;--accent:#b5d334;--text:#e8edd2}[data-theme=tigers-eye]{--bg:#261c12;--accent:#c87f33;--text:#ede0cf}[data-theme=tanzanite]{--bg:#1c1d33;--accent:#7b6fe8;--text:#ddddf0}[data-theme=obsidian]{--bg:#161616;--accent:#7a8a99;--text:#e8e8e8}[data-theme=pearl]{--bg:#f4f1ea;--accent:#c9a96a;--text:#3a352c}[data-theme=diamond]{--bg:#f7f9fb;--accent:#5b8fb0;--text:#1f2933}[data-theme=rose-gold]{--bg:#f7ece9;--accent:#c98a76;--text:#4a3631}[data-theme=jade]{--bg:#eef3ee;--accent:#4f9d6b;--text:#243029}[data-theme=topaz]{--bg:#f6efe2;--accent:#d49a3a;--text:#3d3220}[data-theme=quartz]{--bg:#f3f3f5;--accent:#8a8fa3;--text:#2c2e36}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:radial-gradient(1200px 600px at 50% -10%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font-sans);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column;align-items:center}.mono{font-family:var(--font-mono)}nav{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:46px}.brand{font-family:var(--font-mono);font-size:20px;font-weight:700;letter-spacing:.2px;user-select:none}.brand .amethyst{color:var(--text-bright)}.brand .wpm{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:30px;font-family:var(--font-mono);font-size:14.5px}.nav-links a{color:var(--sub);text-decoration:none;transition:color .15s ease;cursor:pointer}.nav-links a:hover{color:var(--text-bright)}.nav-links a.active,.nav-links a.active:hover{color:var(--accent)}.nav-item{position:relative;display:inline-flex;align-items:center}.dropdown{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,-4px);display:flex;flex-direction:column;gap:2px;min-width:128px;padding:6px;background:color-mix(in srgb,var(--surface) 95%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #00000073;opacity:0;visibility:hidden;transition:opacity .15s ease,transform .15s ease,visibility .15s ease;z-index:60}.dropdown.open{opacity:1;visibility:visible;transform:translate(-50%)}.dropdown-item{font-family:var(--font-mono);font-size:13.5px;color:var(--sub);background:transparent;border:none;text-align:left;padding:7px 12px;border-radius:6px;cursor:pointer;transition:color .15s ease,background .15s ease}.dropdown-item:hover{color:var(--text-bright);background:color-mix(in srgb,var(--accent) 10%,transparent)}.modal-overlay{position:fixed;left:0;top:0;width:var(--app-w, 100vw);height:var(--app-h, 100vh);display:flex;align-items:center;justify-content:center;padding:24px;background:#0a0c0d73;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:100}.modal-overlay.open{opacity:1;visibility:visible}.modal{position:relative;display:flex;flex-direction:column;width:min(1100px,90vw);height:720px;max-height:90vh;padding:26px 28px;overflow:hidden;background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 70px #00000080;transform:translateY(10px) scale(.98);transition:transform .2s ease}.modal-overlay.open .modal{transform:none}.modal-title{flex:0 0 auto;text-align:center;font-family:var(--font-mono);font-size:18px;font-weight:500;color:var(--text-bright);letter-spacing:.3px}.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;margin-top:54px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.modal-body::-webkit-scrollbar{width:12px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;border:3px solid transparent;background-clip:padding-box}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--sub-dim);background-clip:padding-box}.modal-body::-webkit-scrollbar-button{display:none;height:0;width:0}.setting-category{max-width:560px;margin:0 auto}.cat-label{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--accent);margin-bottom:6px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0;border-top:1px solid var(--line)}.setting-row:first-of-type{border-top:none}.setting-name{font-family:var(--font-sans);font-size:15px;color:var(--text)}.switch{flex:0 0 auto;position:relative;width:46px;height:26px;padding:0;border:1px solid var(--line);border-radius:999px;background:var(--sub-dim);cursor:pointer;transition:background .18s ease,border-color .18s ease}.switch .knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--sub);transition:transform .18s ease,background .18s ease}.switch.on{background:color-mix(in srgb,var(--accent) 24%,transparent);border-color:var(--accent-dim)}.switch.on .knob{transform:translate(20px);background:var(--accent)}.appr-section+.appr-section{margin-top:36px}.appr-label{text-align:center;font-family:var(--font-mono);font-size:13px;letter-spacing:1.5px;color:var(--sub);margin-bottom:18px}.appr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;align-content:start;max-width:980px;margin:0 auto;padding:8px 10px 12px}.font-card{display:flex;align-items:center;justify-content:center;min-height:60px;padding:14px 16px;background:var(--surface);border:2px solid var(--line);border-radius:12px;color:var(--text);font-size:18px;text-align:center;cursor:pointer;transition:transform .12s ease,border-color .15s ease,box-shadow .15s ease}.font-card:hover{transform:translateY(-2px);border-color:var(--accent)}.font-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 8px 22px #00000047}.tm-wrap{max-width:560px;margin:0 auto;padding:6px 4px 12px}.tm-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}.tm-heading{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--accent)}.tm-count{font-family:var(--font-mono);font-size:14px;color:var(--sub)}#tm-list{display:flex;flex-direction:column;gap:12px}.tm-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg);border:2px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.tm-item:hover{border-color:var(--accent)}.tm-item.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.tm-sw{flex:0 0 auto;display:inline-flex;gap:6px;padding:6px;border-radius:8px;background:var(--bg);border:1px solid var(--line)}.tm-sw i{width:14px;height:14px;border-radius:50%;display:block}.tm-item-name{flex:1 1 auto;font-family:var(--font-mono);font-size:15px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tm-item-actions{flex:0 0 auto;display:inline-flex;gap:6px}.tm-mini{font-family:var(--font-sans);font-size:12.5px;color:var(--sub);background:transparent;border:none;padding:5px 9px;border-radius:6px;cursor:pointer;transition:color .15s ease,background .15s ease}.tm-mini:hover{color:var(--text-bright);background:var(--surface)}.tm-mini.tm-del:hover{color:var(--error)}.tm-add{width:100%;margin-top:14px;padding:14px;font-family:var(--font-mono);font-size:14px;color:var(--sub);background:transparent;border:2px dashed var(--line);border-radius:12px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.tm-add:hover{color:var(--accent);border-color:var(--accent-dim)}.tm-add:disabled{opacity:.4;cursor:not-allowed;color:var(--sub);border-color:var(--line)}.tm-name-input{width:100%;font-family:var(--font-mono);font-size:15px;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:20px;outline:none;transition:border-color .15s ease}.tm-name-input:focus{border-color:var(--accent)}.tm-name-input::placeholder{color:var(--sub)}.tm-colors{display:flex;flex-direction:column;gap:14px}.tm-color-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.tm-cl{font-family:var(--font-sans);font-size:14px;color:var(--text)}.tm-cc{display:inline-flex;align-items:center;gap:10px}.tm-pick{width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:8px;background:transparent;cursor:pointer}.tm-pick::-webkit-color-swatch-wrapper{padding:3px}.tm-pick::-webkit-color-swatch{border:none;border-radius:5px}.tm-hex{width:96px;font-family:var(--font-mono);font-size:14px;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px;outline:none;text-transform:lowercase;transition:border-color .15s ease}.tm-hex:focus{border-color:var(--accent)}.tm-hex.invalid{border-color:var(--error)}.tm-preview-label{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;color:var(--sub);margin:24px 0 10px}.tm-preview{cursor:default}.tm-preview:hover{transform:none;border-color:var(--line)}.tm-actions{display:flex;gap:12px;margin-top:26px}.tm-btn{flex:1 1 0;padding:12px;font-family:var(--font-mono);font-size:14px;color:var(--sub);background:transparent;border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}.tm-btn:hover{color:var(--text-bright);border-color:var(--sub)}.tm-save{color:var(--bg);background:var(--accent);border-color:var(--accent)}.tm-save:hover{color:var(--bg);background:var(--accent);border-color:var(--accent);filter:brightness(1.08)}.tm-save:disabled{opacity:.45;cursor:not-allowed;filter:none}.theme-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 19px;background:var(--bg);border:2px solid var(--line);border-radius:12px;cursor:pointer;text-align:left;transition:transform .12s ease,border-color .15s ease,box-shadow .15s ease}.theme-card:hover{transform:translateY(-2px);border-color:var(--accent)}.theme-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 8px 22px #00000047}.tc-name{font-family:var(--font-mono);font-size:14.5px;font-weight:500;color:var(--text)}.tc-dots{display:flex;gap:7px;flex:0 0 auto}.tc-dot{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px #80808040}.tc-accent{background:var(--accent)}.tc-text{background:var(--text)}.tc-sub{background:var(--sub)}.cl-modalBackdrop{position:fixed!important;left:0!important;top:0!important;width:var(--app-w, 100vw)!important;height:var(--app-h, 100vh)!important;display:flex!important;align-items:center!important;justify-content:center!important}.cl-avatarBox,.cl-userPreviewAvatarContainer,.cl-profileSection__profile{display:none!important}.cl-rootBox,.cl-rootBox *,.cl-card,.cl-card *,.cl-modalContent,.cl-modalContent *{font-family:var(--font-sans)!important}.cl-headerTitle,.cl-navbarButton,.cl-navbarButtonText,.cl-profileSectionTitle,.cl-profileSectionTitleText{font-family:var(--font-mono)!important}.cl-cardBox{background:color-mix(in srgb,var(--surface) 90%,transparent)!important;backdrop-filter:blur(16px)!important;-webkit-backdrop-filter:blur(16px)!important;border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:0 24px 70px #00000080!important;overflow:hidden!important}.cl-card,.cl-footer{background:transparent!important;background-image:none!important;border:none!important;box-shadow:none!important}.cl-headerTitle{color:var(--text-bright)!important}.cl-headerSubtitle,.cl-dividerText,.cl-footerActionText{color:var(--sub)!important}.cl-dividerLine{background:var(--line)!important}.cl-socialButtonsBlockButton,.cl-socialButtonsIconButton{background:var(--bg)!important;border:1px solid var(--line)!important;border-radius:10px!important;transition:border-color .15s ease,background .15s ease!important}.cl-socialButtonsBlockButton:hover,.cl-socialButtonsIconButton:hover{border-color:var(--accent)!important;background:var(--surface)!important}.cl-formFieldInput,.cl-input,.cl-otpCodeFieldInput{background:var(--bg)!important;border:1px solid var(--line)!important;color:var(--text)!important;border-radius:10px!important;transition:border-color .15s ease,box-shadow .15s ease!important}.cl-formFieldInput:focus,.cl-input:focus,.cl-otpCodeFieldInput:focus{border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent)!important;outline:none!important}.cl-formButtonPrimary{background:var(--accent)!important;color:var(--bg)!important;border:1px solid var(--accent)!important;border-radius:10px!important;text-transform:none!important;letter-spacing:.2px!important;box-shadow:none!important;transition:filter .15s ease!important}.cl-formButtonPrimary:hover{filter:brightness(1.08)!important}.cl-footerActionLink,.cl-identityPreviewEditButton,.cl-formResendCodeLink,.cl-alternativeMethodsBlockButton,.cl-navbarButton[data-active=true]{color:var(--accent)!important}.modal-close{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:transparent;border:none;border-radius:8px;color:var(--sub);cursor:pointer;transition:color .15s ease,background .15s ease}.modal-close:hover{color:var(--accent);background:var(--surface)}.modal-close svg{width:16px;height:16px;display:block}.config{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 0;margin:40px 0 8px;padding:0 16px}.config-group{display:inline-flex;align-items:center}.group-toggles{gap:22px}.group-type,.group-amount{gap:4px}.div{width:1px;height:22px;background:var(--line);margin:0 18px;flex:0 0 auto}.opt{font-family:var(--font-mono);font-size:13px;color:var(--sub);background:transparent;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:6px;transition:color .15s ease,background .15s ease;line-height:1}.opt:hover{color:var(--text-bright)}.opt.active{color:var(--accent)}.opt.toggle.active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.ic{width:14px;height:14px;display:inline-block;vertical-align:middle;flex:0 0 auto}.stage{width:100%;max-width:1000px;padding:0 24px;flex:1 0 auto;display:flex;flex-direction:column;justify-content:center;align-items:stretch}.readout{font-family:var(--font-mono);font-size:19px;color:var(--accent);margin-bottom:10px;min-height:30px;padding-left:2px;text-align:left;user-select:none}.readout .ro-main{font-size:22px}.readout .ro-stat{color:var(--accent)}.readout .ro-sep{color:var(--accent-dim)}.readout [data-tip]{position:relative;cursor:help}.readout [data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%);padding:4px 9px;background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--text-bright);font-family:var(--font-sans);font-size:12px;font-weight:400;letter-spacing:.2px;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px #0006;z-index:30}.typing{position:relative;height:calc(var(--type-font) * var(--type-line) * 3);overflow:hidden;cursor:text}.words{position:relative;font-family:var(--font-mono);font-size:var(--type-font);line-height:var(--type-line);color:var(--sub);font-weight:400;text-align:center;transition:transform .2s ease;will-change:transform}.typing.unfocused .words{filter:blur(4.5px);opacity:.45}.word{display:inline-block;vertical-align:top;margin-right:.6em}.char{display:inline-block;vertical-align:top}.char.correct{color:var(--text)}.char.incorrect{color:var(--error)}.char.extra{color:var(--error-extra)}.caret{position:absolute;left:0;top:0;width:2px;height:calc(var(--type-font) * 1.3);background:var(--accent);border-radius:1px;box-shadow:0 0 8px color-mix(in srgb,var(--accent) 55%,transparent);transition:left .08s ease,top .08s ease;animation:blink 1s ease-in-out infinite;pointer-events:none}.caret.typing{animation:none;opacity:1}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.focus-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:16px;color:var(--text);opacity:0;pointer-events:none;transition:opacity .15s ease;user-select:none}.typing.unfocused .focus-overlay{opacity:1;pointer-events:auto}.restart-row{display:flex;justify-content:center;margin-top:34px}.restart{background:transparent;border:none;color:var(--sub);cursor:pointer;padding:8px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease}.restart:hover{color:var(--accent)}.restart svg{width:20px;height:20px;display:block}#hidden-input{position:fixed;top:-1000px;left:-1000px;width:1px;height:1px;opacity:0;border:none;outline:none;pointer-events:none}.results{display:none;flex-direction:column;align-items:center;opacity:0;transform:translateY(14px);transition:opacity .35s ease,transform .35s ease}.results.show{opacity:1;transform:none}.results-big{display:flex;gap:64px;align-items:flex-start;margin-top:8px}.stat{display:flex;flex-direction:column;align-items:flex-start}.stat .num{font-family:var(--font-mono);font-size:64px;font-weight:500;color:var(--accent);line-height:1}.stat .lab{font-family:var(--font-sans);font-size:18px;color:var(--sub);margin-top:4px}.results-sub{display:flex;gap:56px;margin-top:40px}.sstat{display:flex;flex-direction:column;align-items:flex-start}.sstat .slab{font-family:var(--font-sans);font-size:13px;color:var(--sub);margin-bottom:4px}.sstat .sval{font-family:var(--font-mono);font-size:24px;font-weight:500;color:var(--text-bright);line-height:1}.xp-block{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:14px;margin-top:42px;min-height:96px}.xp-detail{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px;opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease}.xp-detail.show{opacity:1;transform:none}.xp-base{font-family:var(--font-mono);font-size:16px;color:var(--sub)}.xp-mults{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.xp-chip{font-family:var(--font-mono);font-size:12.5px;color:var(--text-bright);padding:4px 11px;border-radius:999px;border:1px solid var(--accent-dim);background:color-mix(in srgb,var(--accent) 12%,transparent);white-space:nowrap;opacity:0;transform:translateY(5px) scale(.95);transition:opacity .28s ease,transform .28s ease}.xp-chip b{color:var(--accent);font-weight:700}.xp-chip.show{opacity:1;transform:none}.xp-total{font-family:var(--font-mono);font-size:40px;font-weight:500;color:var(--accent);line-height:1;opacity:0;transform:translateY(10px) scale(.92);transition:opacity .45s cubic-bezier(.2,.8,.25,1),transform .45s cubic-bezier(.2,.8,.25,1)}.xp-total.show{opacity:1;transform:none}.xp-total .xp-num{font-weight:700}.xp-total .xp-unit{font-size:18px;color:var(--sub);margin-left:4px}.xp-total.pulse{animation:xpPulse .6s ease}@keyframes xpPulse{0%{text-shadow:none}35%{text-shadow:0 0 24px color-mix(in srgb,var(--accent) 65%,transparent)}to{text-shadow:none}}.xp-invalid{font-family:var(--font-sans);font-size:15px;color:var(--sub);opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease}.xp-invalid.show{opacity:1;transform:none}.xp-cta{display:flex;flex-direction:column;align-items:center;gap:16px;opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease}.xp-cta.show{opacity:1;transform:none}.xp-cta-text{font-family:var(--font-sans);font-size:15px;color:var(--sub)}.xp-cta-btns{display:flex;gap:12px}.xp-cta-btn{font-family:var(--font-mono);font-size:14px;padding:10px 22px;border-radius:10px;cursor:pointer;color:var(--sub);background:transparent;border:1px solid var(--line);transition:color .15s ease,background .15s ease,border-color .15s ease,filter .15s ease}.xp-cta-btn:hover{color:var(--text-bright);border-color:var(--sub)}.xp-cta-btn.primary{color:var(--bg);background:var(--accent);border-color:var(--accent)}.xp-cta-btn.primary:hover{color:var(--bg);background:var(--accent);border-color:var(--accent);filter:brightness(1.08)}#profile-view{display:none;width:100%;max-width:880px;margin:0 auto}body.viewing-profile .config,body.viewing-profile .test,body.viewing-profile .results{display:none!important}body.viewing-profile #profile-view{display:block}body.viewing-profile #profile-view{margin:auto}.pf-username{font-family:var(--font-mono);font-size:34px;font-weight:700;color:var(--text-bright);word-break:break-word}.pf-flairs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;min-height:30px}.pf-flair-placeholder{font-family:var(--font-mono);font-size:12px;color:var(--sub);border:1px dashed var(--line);border-radius:999px;padding:5px 12px}.pf-flair{font-family:var(--font-mono);font-size:12px;letter-spacing:.5px;border-radius:999px;padding:6px 14px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:default}.pf-flair-owner{color:var(--bg);background:var(--accent);border-color:var(--accent);cursor:pointer;transition:filter .15s ease}.pf-flair-owner:hover{filter:brightness(1.08)}.pf-toprow{display:flex;gap:16px;margin:30px 0 36px}.pf-stat{position:relative;flex:1 1 0;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 20px}.pf-help{position:absolute;top:12px;right:12px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0;font-family:var(--font-mono);font-size:12px;line-height:1;color:var(--sub);background:transparent;border:1px solid var(--line);border-radius:50%;cursor:pointer;transition:color .15s ease,border-color .15s ease}.pf-help:hover{color:var(--accent);border-color:var(--accent)}.pf-help[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);right:0;padding:4px 9px;background:var(--surface);border:1px solid var(--line);border-radius:6px;color:var(--text-bright);font-family:var(--font-sans);font-size:11.5px;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px #0006;z-index:30}.pf-level-bar{margin-top:12px;height:5px;border-radius:999px;background:var(--line);overflow:hidden}.pf-level-fill{display:block;height:100%;width:0;background:var(--accent);border-radius:999px;transition:width .5s ease}.pf-level-frac{font-family:var(--font-mono);font-size:11.5px;color:var(--sub);margin-top:8px}.pf-stat-val{font-family:var(--font-mono);font-size:30px;font-weight:500;color:var(--accent);line-height:1}.pf-stat-label{font-family:var(--font-sans);font-size:12px;color:var(--sub);letter-spacing:1.5px;text-transform:uppercase;margin-top:8px}.pf-section-label{font-family:var(--font-mono);font-size:13px;letter-spacing:1.5px;color:var(--sub);margin-bottom:18px}.pf-pb-group{margin-bottom:24px}.pf-pb-grouplabel{font-family:var(--font-mono);font-size:13px;color:var(--accent);margin-bottom:10px}.pf-pb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.pf-pb{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.pf-pb-amt{font-family:var(--font-mono);font-size:13px;color:var(--sub);margin-bottom:10px}.pf-pb-wpm{font-family:var(--font-mono);font-size:30px;font-weight:500;color:var(--accent);line-height:1}.pf-pb-acc{font-family:var(--font-mono);font-size:13px;color:var(--text);margin-top:7px}.pf-past-btn{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:28px;padding:18px 20px;font-family:var(--font-mono);font-size:15px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.pf-past-btn:hover{border-color:var(--accent);color:var(--text-bright)}.pf-past-arrow{color:var(--sub);font-size:22px;line-height:1}.pf-past-btn:hover .pf-past-arrow{color:var(--accent)}#modal-past .modal-body{display:flex}.past-split{flex:1 1 auto;display:flex;min-height:0}.past-pane{flex:1 1 0;display:flex;flex-direction:column;min-height:0;padding:0 26px}.past-pane:first-child{padding-left:0}.past-pane:last-child{padding-right:0}.past-pane+.past-pane{border-left:1px solid var(--line)}.past-pane-title{flex:0 0 auto;font-family:var(--font-mono);font-size:16px;font-weight:500;color:var(--accent);text-align:center;margin-bottom:18px}.past-list{flex:1 1 auto;min-height:0;overflow-y:auto}.past-empty{font-family:var(--font-sans);font-size:13px;color:var(--sub);text-align:center;margin-top:32px}.modal.modal-sm{width:min(440px,92vw);height:auto;max-height:80vh}.modal-sm .modal-body{margin-top:40px}.xph-toggle{display:flex;gap:6px;padding:5px;width:max-content;margin:0 auto 22px;background:var(--bg);border:1px solid var(--line);border-radius:999px}.xph-tab{font-family:var(--font-mono);font-size:13px;color:var(--sub);background:transparent;border:none;padding:7px 20px;border-radius:999px;cursor:pointer;transition:color .15s ease,background .15s ease}.xph-tab:hover{color:var(--text-bright)}.xph-tab.active{color:var(--bg);background:var(--accent)}.xph-panel{display:flex;flex-direction:column;gap:12px}.xph-rule{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:10px}.xph-mult{flex:0 0 auto;min-width:46px;font-family:var(--font-mono);font-size:16px;font-weight:700;color:var(--accent)}.xph-desc{font-family:var(--font-sans);font-size:14px;color:var(--text)}.xph-note{font-family:var(--font-sans);font-size:12.5px;color:var(--sub);text-align:center;margin-top:8px}.xph-empty{font-family:var(--font-sans);font-size:14px;color:var(--sub);text-align:center;padding:34px 0}@media (max-width: 720px){.pf-username{font-size:28px}.pf-toprow{flex-direction:column}}#duel-view{display:none;width:100%;max-width:560px;margin:0 auto}body.viewing-duel .config,body.viewing-duel .test,body.viewing-duel .results{display:none!important}body.viewing-duel #duel-view{display:block;margin:auto}.duel-top{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:300px}.duel-right{display:grid;grid-template-rows:2fr 1fr;gap:14px;min-height:0}.duel-btn{display:flex;align-items:center;justify-content:center;padding:22px 24px;color:var(--text);font-family:var(--font-mono);background:var(--surface);border:1px solid var(--line);border-radius:16px;cursor:pointer;transition:border-color .15s ease,color .15s ease,transform .12s ease,box-shadow .15s ease}.duel-btn:hover{border-color:var(--accent);color:var(--text-bright);transform:translateY(-2px)}.duel-btn .db-name{font-size:19px;font-weight:500;letter-spacing:.3px}.duel-comp{border-color:var(--accent-dim);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.duel-comp .db-name{font-size:26px;color:var(--accent)}.duel-comp:hover{box-shadow:0 0 0 1px var(--accent),0 10px 26px #00000047}.duel-wide{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:14px;padding:18px 22px;font-family:var(--font-mono);font-size:15px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:14px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.duel-wide:hover{border-color:var(--accent);color:var(--text-bright)}.duel-wide .db-arrow{color:var(--sub);font-size:22px;line-height:1}.duel-wide:hover .db-arrow{color:var(--accent)}.duel-btn[data-tip]{position:relative}.duel-btn[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);padding:7px 13px;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--text-bright);font-family:var(--font-sans);font-size:12.5px;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px #0006;z-index:30}#room-view{display:none;width:100%;max-width:620px;margin:0 auto}body.viewing-room .config,body.viewing-room .test,body.viewing-room .results{display:none!important}body.viewing-room #room-view{display:block;margin:auto}.room-head{text-align:center;margin-bottom:30px}.room-title{font-family:var(--font-mono);font-size:30px;font-weight:700;color:var(--text-bright);letter-spacing:.3px}.room-desc{font-family:var(--font-sans);font-size:14px;color:var(--sub);line-height:1.55;max-width:460px;margin:12px auto 0}.room-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.room-card{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-height:132px;padding:22px;color:var(--text);font-family:var(--font-mono);text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:16px;cursor:pointer;transition:border-color .15s ease,color .15s ease,transform .12s ease,box-shadow .15s ease}.room-card:hover{border-color:var(--accent);color:var(--text-bright);transform:translateY(-2px);box-shadow:0 8px 22px #00000038}.rc-name{font-size:18px;font-weight:500}.rc-sub{font-family:var(--font-sans);font-size:12.5px;color:var(--sub);line-height:1.45}@media (max-width: 560px){.room-grid{grid-template-columns:1fr}}#match-view{display:none;width:100%;max-width:900px;margin:0 auto;padding:0 24px}body.viewing-match .config,body.viewing-match .test,body.viewing-match .results{display:none!important}body.viewing-match #match-view{display:block;margin:auto}#admin-view{display:none;width:100%;max-width:720px;margin:0 auto;padding:0 24px}body.viewing-admin .config,body.viewing-admin .test,body.viewing-admin .results{display:none!important}body.viewing-admin #admin-view{display:block;margin:auto}.adm-head{text-align:center;margin-bottom:30px}.adm-title{font-family:var(--font-mono);font-size:30px;font-weight:700;color:var(--text-bright);letter-spacing:.3px}.adm-sub{font-family:var(--font-mono);font-size:13px;color:var(--accent);margin-top:8px}.adm-body{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:40px 24px}.adm-placeholder{font-family:var(--font-sans);font-size:14px;color:var(--sub);text-align:center}.adm-pass-wrap{max-width:280px;margin:0 auto;text-align:center}.adm-pass-input{width:100%;font-family:var(--font-mono);font-size:18px;text-align:center;letter-spacing:3px;color:var(--text-bright);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;outline:none;transition:border-color .15s ease}.adm-pass-input:focus{border-color:var(--accent)}.adm-pass-error{font-family:var(--font-sans);font-size:13px;color:var(--error);min-height:18px;margin-top:10px}.adm-pass-go{margin-top:8px;font-family:var(--font-mono);font-size:14px;padding:11px 30px;border-radius:10px;color:var(--bg);background:var(--accent);border:1px solid var(--accent);cursor:pointer;transition:filter .15s ease}.adm-pass-go:hover{filter:brightness(1.08)}.match-lobby{max-width:420px;margin:0 auto;text-align:center}.ml-title{font-family:var(--font-mono);font-size:24px;font-weight:700;color:var(--text-bright);margin-bottom:26px}.ml-label{font-family:var(--font-mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--sub);margin-bottom:12px}.ml-code{font-family:var(--font-mono);font-size:46px;font-weight:700;letter-spacing:8px;color:var(--accent);padding-left:8px}.ml-copy,.ml-go{margin-top:16px;font-family:var(--font-mono);font-size:14px;padding:10px 22px;border-radius:10px;color:var(--bg);background:var(--accent);border:1px solid var(--accent);cursor:pointer;transition:filter .15s ease}.ml-copy:hover,.ml-go:hover{filter:brightness(1.08)}.ml-input{width:100%;font-family:var(--font-mono);font-size:28px;font-weight:700;letter-spacing:6px;text-align:center;text-transform:uppercase;color:var(--text-bright);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;outline:none;transition:border-color .15s ease}.ml-input:focus{border-color:var(--accent)}.ml-status{font-family:var(--font-sans);font-size:14px;color:var(--sub);margin-top:24px;min-height:20px}.ml-leave,.mres-btn{margin-top:22px;font-family:var(--font-mono);font-size:13.5px;padding:9px 20px;border-radius:10px;color:var(--sub);background:transparent;border:1px solid var(--line);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.ml-leave:hover,.mres-btn:hover{color:var(--text-bright);border-color:var(--sub)}.mres-btn.primary{color:var(--bg);background:var(--accent);border-color:var(--accent)}.mres-btn.primary:hover{filter:brightness(1.08)}.ml-roster{max-width:320px;margin:24px auto 0;text-align:left}.ml-roster-count{font-family:var(--font-mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--sub);text-align:center;margin-bottom:12px}.ml-player{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;margin-bottom:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.ml-player-name{font-family:var(--font-mono);font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ml-player-tag{flex:0 0 auto;font-family:var(--font-sans);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--sub)}.ml-start{margin-top:22px;font-family:var(--font-mono);font-size:15px;padding:12px 32px;border-radius:10px;color:var(--bg);background:var(--accent);border:1px solid var(--accent);cursor:pointer;transition:filter .15s ease,opacity .15s ease}.ml-start:hover{filter:brightness(1.08)}.ml-start:disabled{opacity:.45;cursor:not-allowed;filter:none}.ml-reroll{margin-top:12px;font-family:var(--font-mono);font-size:12.5px;color:var(--sub);background:transparent;border:1px solid var(--line);border-radius:8px;padding:7px 16px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.ml-reroll:hover{color:var(--text-bright);border-color:var(--sub)}.ml-reroll:disabled{opacity:.4;cursor:not-allowed}.ml-btn-row{display:flex;gap:10px;justify-content:center;margin-top:12px}.ml-act{flex:1 1 0;max-width:150px;font-family:var(--font-mono);font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px 16px;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.ml-act:hover{color:var(--text-bright);border-color:var(--accent)}.ml-fun{position:relative;color:var(--sub-dim);background:color-mix(in srgb,var(--bg) 55%,#000);border-color:color-mix(in srgb,var(--line) 60%,transparent);cursor:not-allowed}.ml-fun:hover{color:var(--sub-dim);border-color:color-mix(in srgb,var(--line) 60%,transparent)}.ml-fun[data-tip]:hover:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 9px);left:50%;transform:translate(-50%);padding:6px 12px;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--text-bright);font-family:var(--font-sans);font-size:12px;white-space:nowrap;pointer-events:none;box-shadow:0 6px 18px #0006;z-index:30}.rs-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid var(--line)}.rs-row:first-child{border-top:none}.rs-words-row{flex-direction:column;align-items:stretch;gap:12px}.rs-words-head{display:flex;align-items:baseline;justify-content:space-between}.rs-label{font-family:var(--font-sans);font-size:15px;color:var(--text)}.rs-words-val{font-family:var(--font-mono);font-size:22px;font-weight:600;color:var(--accent)}.rs-slider{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:999px;background:var(--line);outline:none;cursor:pointer}.rs-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);border:none;cursor:pointer}.rs-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);border:none;cursor:pointer}.pl-count{font-family:var(--font-mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--sub);text-align:right;margin-bottom:14px}.pl-row{padding:12px 14px;margin-bottom:8px;background:var(--bg);border:1px solid var(--line);border-radius:10px}.pl-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px}.pl-name{font-family:var(--font-mono);font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pl-actions{flex:0 0 auto}.pl-x{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:18px;line-height:1;color:var(--sub);background:transparent;border:1px solid var(--line);border-radius:7px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.pl-x:hover{color:var(--error);border-color:var(--error)}.pl-confirm{display:inline-flex;gap:8px}.pl-cbtn{font-family:var(--font-mono);font-size:12.5px;padding:6px 12px;border-radius:7px;color:var(--sub);background:transparent;border:1px solid var(--line);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.pl-cbtn:hover{color:var(--text-bright);border-color:var(--sub)}.pl-kick:hover{color:var(--error);border-color:var(--error)}.pl-ban{position:relative;overflow:hidden;color:#e0666e;border-color:#7c3a3f}.pl-ban:hover{color:#ff7a82;border-color:#b04b52}.pl-ban.armed{color:#fff;background:#c0392b;border-color:#c0392b}.pl-ban-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:#c0392b;transition:width 2s linear;z-index:0}.pl-ban span,.pl-ban{position:relative}.pl-ban-msg{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;background:color-mix(in srgb,var(--error) 14%,var(--bg));border:1px solid #7c3a3f;border-radius:8px;font-family:var(--font-sans);font-size:12.5px;color:var(--text-bright)}.pl-ban-msg span{flex:1 1 auto}.pl-ban-msg-x{flex:0 0 auto;font-family:var(--font-sans);font-size:16px;line-height:1;color:var(--sub);background:transparent;border:none;cursor:pointer;padding:0 2px}.pl-ban-msg-x:hover{color:var(--text-bright)}.mr-bars{display:flex;flex-direction:column;gap:14px;margin-bottom:30px}.mr-bar-row{display:flex;align-items:center;gap:14px}.mr-name{flex:0 0 120px;font-family:var(--font-mono);font-size:14px;color:var(--text);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mr-bar{flex:1 1 auto;height:14px;border-radius:999px;background:var(--line);overflow:hidden}.mr-fill{display:block;height:100%;width:0;border-radius:999px;transition:width .18s ease}.mr-you{background:var(--accent)}.mr-opp{background:var(--sub)}.mr-countdown{font-family:var(--font-mono);font-size:40px;font-weight:700;color:var(--accent);text-align:center;height:50px;margin-bottom:6px}#duel-typing{position:relative;height:calc(var(--type-font) * var(--type-line) * 3);overflow:hidden;cursor:text}.mres-outcome{font-family:var(--font-mono);font-size:34px;font-weight:700;color:var(--accent);text-align:center;margin-bottom:30px}.mres-outcome.lost{color:var(--sub)}.mres-cols{display:flex;gap:24px;justify-content:center;align-items:stretch}.mres-col{flex:1 1 0;max-width:280px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:14px;text-align:center}.mres-col.winner{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.mres-who{font-family:var(--font-mono);font-size:16px;font-weight:500;color:var(--text-bright);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mres-tag{font-family:var(--font-sans);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--sub);margin-bottom:18px}.mres-stat{margin-bottom:14px}.mres-stat .v{font-family:var(--font-mono);font-size:30px;font-weight:600;color:var(--accent);line-height:1}.mres-stat .l{font-family:var(--font-sans);font-size:12px;color:var(--sub);margin-top:5px}.mres-actions{display:flex;gap:12px;justify-content:center;margin-top:30px}@media (max-width: 560px){.mr-name{flex-basis:84px}.mres-outcome{font-size:26px}}.results .restart-row{margin-top:44px}footer{height:60px;flex:0 0 auto}@media (max-width: 720px){:root{--type-font: 22px}nav{padding-top:28px}.config{margin-top:28px}.div{margin:0 10px}.stage{padding:0 16px}.results-big{gap:36px}.stat .num{font-size:48px}.results-sub{gap:28px;flex-wrap:wrap;justify-content:center}}
