@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-normal-Yta7XZ9C.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-normal-lsPpqi9g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-normal-DkJXBcIH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-normal-DqXqCC0q.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-italic-ClXnudBg.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-italic-DakTmaFY.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-italic-DVnfXoMy.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-italic-C9gO-8KC.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-italic-D3igDnAQ.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-italic-C-296ow0.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-italic-CE7zdTnu.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-italic-CalKM9tT.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-italic-Y14P-dkT.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-italic-DhNIfkTX.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-ext-600-normal-BMhMHfrj.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-600-normal-CsIYWmWK.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-600-normal-C2atO-64.woff2) format("woff2"),url(/assets/cormorant-garamond-cyrillic-600-normal-FNmA3REe.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-vietnamese-600-normal-BoXdMtcr.woff2) format("woff2"),url(/assets/cormorant-garamond-vietnamese-600-normal-C4HEjEaf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-ext-600-normal-DaBc-lu7.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-ext-600-normal-Dk3-quAP.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans,sans-serif;color:#263e32;background:#f2f0e8;font-synthesis:none;--cream:#f2f0e8;--ink:#263e32;--muted:#7b8176;--sage:#6b8059;--gold:#a47b49;--border:#263e3226;--glass:#f5f2e9f2}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #a37b48;outline-offset:4px}button{transition:background .18s,transform .18s,color .18s}button:active{transform:translateY(1px)}svg{width:18px;height:18px;stroke-width:1.5;flex-shrink:0}.hidden{display:none!important}#world{position:fixed;left:42%;top:136px;width:calc(58% - 52px);height:calc(100dvh - 310px);display:block;border-radius:3px;background:#c9d3b2;outline:1px solid #263e321a;transition:border-radius .3s}.vignette{position:fixed;inset:0;pointer-events:none;opacity:0;transition:opacity .4s}#app{position:relative;height:100dvh;pointer-events:none}#app button,#app input,#app select,#app dialog,.typing-panel{pointer-events:auto}.topbar{height:106px;margin:0 52px;display:flex;align-items:center;gap:60px;position:relative;z-index:10;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:11px;background:none;padding:0;letter-spacing:2px;font-weight:600;font-size:24px;line-height:1.05;white-space:nowrap}.brand-mark{width:32px;height:38px}.brand-divider{font-family:Georgia,serif;font-weight:400;padding:0 4px;color:#9b9e86}.brand small{font-size:7px;letter-spacing:3px;display:block;text-align:center;margin-top:7px;font-weight:500}.main-nav{display:flex;gap:34px;margin-left:55px;align-items:center;height:100%}.nav-link{position:relative;padding:0;background:none;font-size:11px;display:flex;align-items:center;gap:10px;color:#7c8578;height:100%}.nav-link svg{width:13px;height:13px}.nav-link.active{color:var(--ink)}.nav-link.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ink)}.nav-link:hover{color:var(--ink)}.top-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.connection{font-size:9px;display:flex;align-items:center;gap:6px;margin-right:18px}.connection i,.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--sage)}.connection i.offline{background:#b7674e}.connection small{font-size:8px;color:#8a8e80;margin-left:3px}.icon-button{width:35px;height:35px;display:grid;place-items:center;background:none;border:1px solid var(--border);border-radius:50%}.icon-button svg{width:15px;height:15px}.icon-button:hover{background:#263e320c}.home-screen{height:calc(100dvh - 106px)}.hero{position:absolute;left:52px;top:clamp(145px,20.2vh,230px);width:calc(42% - 100px)}.eyebrow,.tiny-label{font-size:8px;letter-spacing:1.8px;font-weight:500;color:#788064}.eyebrow{display:flex;align-items:center;gap:9px}.fine-line{width:26px;height:1px;background:#7e866b}.hero h1{font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(58px,6vw,105px);line-height:.9;font-weight:500;letter-spacing:-2.5px;margin:25px 0 24px;white-space:nowrap}.hero h1 em{font-weight:500;color:#7a855d}.hero p{font-size:12px;line-height:1.9;color:#777f71;margin:0}.entry-form{max-width:325px;margin-top:30px}.name-label{font-size:8px;letter-spacing:1.5px;color:#788064;display:block;margin-bottom:6px}.entry-name{position:relative;margin-bottom:14px}.entry-name input{width:100%;height:35px;background:none;border:0;border-bottom:1px solid #263e3238;padding:0 25px 4px 0;color:var(--ink);font-size:13px;border-radius:0}.entry-name>svg{position:absolute;right:0;top:6px;width:15px;height:15px;color:#8a907c;pointer-events:none}.entry-name input::placeholder{color:#969b8e;font-size:11px}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;width:100%;padding:0 18px;background:var(--ink);color:var(--cream);border:1px solid var(--ink);border-radius:2px;font-size:12px;font-weight:500}.primary-button>span{flex:1;text-align:left}.primary-button svg{width:16px;height:16px}.primary-button:hover{background:#3c5743}.play-options{display:flex;align-items:center;justify-content:space-between;margin:17px 0 18px}.play-options button{display:flex;align-items:center;gap:12px;font-size:10px;background:none;padding:0}.play-options button:hover{color:#9d7848}.play-options svg{width:13px;height:13px}.play-options>span{height:14px;width:1px;background:var(--border)}.practice-button{display:flex;align-items:center;gap:7px;background:none;font-size:10px;padding:12px 0 0;width:100%;border-top:1px solid var(--border);white-space:nowrap}.practice-button>span{color:#949889;font-size:9px;margin-right:auto}.practice-button svg{width:13px;height:13px}.practice-button:hover{color:#9d7848}.course-topline{position:absolute;left:42%;right:52px;top:119px;display:flex;align-items:center;justify-content:space-between;font-size:7px;letter-spacing:1.5px;color:#818771}.course-topline>span:first-child{display:flex;align-items:center;gap:6px}.course-topline .live-dot{width:4px;height:4px}.course-caption{position:absolute;bottom:80px;left:42%;right:52px;display:flex;align-items:center;justify-content:space-between;gap:12px}.course-caption .tiny-label{font-size:7px;letter-spacing:1.3px}.course-caption h2{font-family:Cormorant Garamond,Georgia,serif;font-size:27px;font-weight:500;margin:2px 0 0;letter-spacing:-.5px}.silks-control{border-left:1px solid var(--border);padding-left:22px}.silks-label{display:flex;align-items:center;gap:16px;font-size:6px;letter-spacing:1.4px;color:#858a79}.silks-label b{font-weight:500;font-size:6px;letter-spacing:1px}.color-picker{display:flex;gap:9px;margin-top:9px}.color-swatch{width:17px;height:17px;background:var(--swatch);border:3px solid var(--cream);border-radius:50%;outline:1px solid transparent;padding:0}.color-swatch:hover{outline-color:#8e967d}.color-swatch.selected{outline-color:var(--swatch)}.course-stamp{position:absolute;right:70px;top:157px;width:76px;height:76px;border:1px solid #f2f0e8a1;color:#fffced;border-radius:50%;text-align:center;padding:12px 0;pointer-events:none;text-shadow:0 1px 4px #33452655}.course-stamp>span,.course-stamp>small{display:block;font-size:5px;letter-spacing:1.3px}.course-stamp>b{font-family:Cormorant Garamond;font-size:31px;font-weight:500;line-height:1.1}.course-stamp>b>span{font-size:22px;font-style:italic}.home-footer{position:absolute;bottom:0;height:56px;left:52px;right:52px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:15px}.footer-note{font-family:Cormorant Garamond,Georgia,serif;font-style:italic;font-size:16px;color:#858b75}.footer-facts{display:flex;align-items:center;gap:32px;margin-left:auto;margin-right:35px}.footer-facts>span{display:flex;align-items:center;gap:8px;font-size:6px;letter-spacing:1px;color:#8b907e}.footer-facts b{font-family:Cormorant Garamond;font-size:19px;font-weight:500;color:var(--ink)}.footer-facts svg{width:14px;height:14px}.edition{font-size:6px;letter-spacing:1px}.edition>span{color:#979b8d;margin-left:8px}.panel{background:var(--glass);border:1px solid #f7f3e669;border-radius:3px;box-shadow:0 15px 60px #1b302f18;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.card-heading>svg{width:14px;height:14px;color:#8c927e}.text-button{display:flex;align-items:center;gap:7px;background:none;padding:4px 0;font-size:9px;color:#748069}.text-button svg{width:12px;height:12px}.text-button:hover{color:#a47b49}.badge{font-size:7px;letter-spacing:1.5px;display:inline-flex;align-items:center;color:#5c6a4d;background:#f4f1e5eb;border:1px solid #fff8;padding:6px 9px;border-radius:2px}body[data-screen=lobby] #world,body[data-screen=race] #world,body[data-screen=results] #world{inset:0;width:100%;height:100dvh;border-radius:0;outline:none}body[data-screen=lobby] .vignette{opacity:1;background:linear-gradient(90deg,#20392c50,transparent 70%)}body[data-screen=lobby] .topbar{background:#f2f0e8ed;margin:0;padding:0 52px}body.in-game .topbar{display:none}body.in-game .vignette{opacity:1;background:linear-gradient(0deg,#182c3333,transparent 40%)}.lobby-screen{position:absolute;inset:106px 0 0;display:flex;align-items:center;gap:50px;padding:24px 52px}.lobby-card{width:490px;padding:27px;pointer-events:auto}.lobby-card h2,.dialog h2,.results-card h2{font-family:Cormorant Garamond,Georgia,serif;font-size:39px;line-height:1.03;letter-spacing:-1px;font-weight:500;margin:12px 0}.lobby-card>p,.dialog>p,.results-card>p{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 20px}.room-code-line{display:flex;align-items:center;gap:14px;border-block:1px solid var(--border);padding:12px 0;font-size:8px;letter-spacing:1px;color:#858b7c}.room-code-line button{display:flex;align-items:center;gap:14px;background:none;padding:0;color:var(--ink)}.room-code-line b{font-size:19px;font-weight:500;letter-spacing:3px}.room-code-line svg{width:13px;height:13px}.room-code-line>span:last-child{margin-left:auto}.player-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.player-slot{display:flex;align-items:center;gap:9px;min-height:60px;padding:10px;border:1px solid var(--border);background:#fff4;border-radius:2px}.avatar{display:inline-grid;place-items:center;flex-shrink:0;width:30px;height:33px;background:var(--rider-color);color:#fffbe9;font-size:13px;font-weight:500;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%)}.slot-info{min-width:0}.slot-info b{display:block;font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.slot-info small{display:block;font-size:6px;letter-spacing:.5px;margin-top:4px;color:#8b907f}.player-slot.ready{border-color:#6b805955;background:#6b80590a}.player-slot.ready small{color:var(--sage)}.player-slot.empty{border-style:dashed;background:none;color:#9c9f94;font-size:9px}.player-slot.empty .avatar{background:#e1e2d6!important;color:#a1a694}.lobby-note{display:flex;align-items:flex-start;gap:9px;margin:15px 0 20px;color:#87907b;font-size:9px;line-height:1.6}.lobby-note svg{width:14px;height:14px;flex-shrink:0}.secondary-button{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--border);border-radius:2px;background:none;padding:14px;width:100%;font-size:10px}.secondary-button:hover{background:#263e320a}.lobby-card .secondary-button{margin-top:8px}.lobby-track{position:absolute;right:7%;bottom:11%;text-align:right;color:#fffbea;text-shadow:0 2px 25px #213b3238}.lobby-track .tiny-label{color:#fffbe9b5}.lobby-track h2{font-family:Cormorant Garamond,Georgia,serif;font-size:88px;line-height:.78;font-weight:500;letter-spacing:-3px;margin:20px 0}.lobby-track p{font-size:11px}.course-details{font-size:7px;letter-spacing:2px;color:#fffbe9b0}.race-screen{position:absolute;inset:0;pointer-events:none}.race-top-left{position:absolute;left:32px;top:27px;color:#fffceb;text-shadow:0 1px 9px #20362850}.race-top-left h2{font-family:Cormorant Garamond,Georgia,serif;font-size:32px;font-weight:500;letter-spacing:-.5px;margin:9px 0 5px}.race-top-left .tiny-label{color:#fffcebaf;font-size:7px;letter-spacing:1.3px}.timer{position:absolute;left:50%;top:24px;transform:translate(-50%);padding:12px 25px 9px;min-width:134px;text-align:center}.timer>span{display:block;font-size:6px;letter-spacing:1.8px;color:#87907a}.timer b{display:block;font-size:31px;font-weight:500;letter-spacing:1px;font-variant-numeric:tabular-nums;line-height:1.4}.timer-line{width:24px;height:2px;background:var(--sage);margin:0 auto}.leaderboard{position:absolute;top:24px;right:30px;width:248px;padding:16px}.leaderboard .card-heading{margin-bottom:10px}.leaderboard .eyebrow{font-size:7px}.standing{display:flex;align-items:center;gap:8px;padding:9px 0;border-top:1px solid #263e3214}.standing .avatar{width:24px;height:28px;font-size:10px}.standing .place{width:13px;font-family:Cormorant Garamond;font-size:20px;color:#86917a}.standing-name{flex:1;min-width:0}.standing-name b{display:block;font-size:9px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-progress{height:2px;margin-top:7px;background:#263e320e}.mini-progress i{display:block;height:100%;background:var(--rider-color);transition:width .15s linear}.standing strong{font-size:8px;font-weight:500;color:#7d886e}.standing.self .place{color:var(--ink)}.typing-panel{position:absolute;bottom:22px;left:50%;transform:translate(-50%);width:min(1120px,calc(100% - 60px));padding:17px 24px 16px;pointer-events:auto;min-height:197px;background:#f4f1e9f7}.typing-heading{display:flex;align-items:center;gap:20px;margin-bottom:14px}.typing-heading .eyebrow{font-size:7px;letter-spacing:1.3px}.typing-heading #typing-hint{font-size:9px;color:#969c8d;margin-left:auto}.typing-heading .text-button{font-size:8px;margin-left:13px}.passage-window{height:56px;overflow:hidden;position:relative;margin-bottom:13px}.passage{position:relative;font-size:23px;line-height:38px;font-weight:400;letter-spacing:.05px;color:#a4a99a;transition:transform .12s}.passage .correct{color:#3e5d40}.passage .current{color:#263e32;background:#e4e7d8;box-shadow:0 2px #6b8059}.passage .wrong{background:#ecd3c8;box-shadow:0 2px #b2604b;color:#a24b3a}.capture-input{position:absolute;width:1px;height:1px;opacity:0;left:28px;bottom:22px;padding:0;border:0}.race-progress{height:2px;background:#dfe1d4}.race-progress>div{height:100%;background:var(--sage);width:0;transition:width .12s linear}.metrics{display:flex;align-items:center;gap:35px;margin-top:13px}.wpm-dial,.metric{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:63px}.wpm-dial b,.metric b{font-family:Cormorant Garamond,Georgia,serif;font-size:33px;line-height:1;font-weight:500}.wpm-dial>span,.metric>span{font-size:6px;letter-spacing:1px;color:#959c88}.metric b>span{font-size:17px;margin-left:2px;color:#929b80}.metric.position{border-left:1px solid var(--border);padding-left:28px;min-width:92px}.position b{color:var(--gold)}.keyboard-hint{display:flex;align-items:center;gap:7px;font-size:8px;color:#959d88;margin-left:auto}kbd{font-family:inherit;border:1px solid #263e3226;border-radius:2px;padding:3px 6px;font-size:14px}.metric-progress{font-size:7px;letter-spacing:.7px;margin-left:22px;color:#6b8059}.focus-race{position:absolute;z-index:2;inset:45px 16px 76px;display:flex;align-items:center;justify-content:center;gap:9px;background:#f4f1e9ed;color:#3c533c;font-size:13px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.focus-race>span{font-size:9px;color:#8e977f;margin-left:12px}.race-utilities{position:absolute;left:32px;bottom:242px;display:flex;gap:8px}.race-utilities .icon-button{background:#f4f1e9cc;border-color:#fff8;pointer-events:auto}.countdown{position:absolute;top:34%;left:50%;transform:translate(-50%,-30%);text-align:center;color:#fffde8;text-shadow:0 2px 24px #20392b55}.countdown>span{font-size:8px;letter-spacing:3px}.countdown b{display:block;font-family:Cormorant Garamond,Georgia,serif;font-size:120px;line-height:1.1;font-weight:500}.countdown p{font-family:Cormorant Garamond;font-size:21px;font-style:italic;margin:0}.finish-banner{position:absolute;top:43%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:16px;padding:20px 30px}.finish-banner svg{width:28px;height:28px;color:var(--gold)}.finish-banner b{font-size:10px;letter-spacing:1px}.finish-banner p{margin:6px 0 0;font-size:10px;color:#87907b}.result-screen{position:absolute;inset:0;display:grid;place-items:center;background:#1e352c66;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:25px}.results-card{width:680px;max-width:100%;padding:35px;pointer-events:auto}.results-card h2{font-size:46px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--border);padding:20px 0;margin:25px 0}.result-stat{border-left:1px solid var(--border);text-align:center}.result-stat:first-child{border:0}.result-stat b{display:block;font-family:Cormorant Garamond;font-size:43px;font-weight:500;line-height:1.1}.result-stat>span{font-size:6px;letter-spacing:1.2px;color:#8b947e}.results-table{margin:20px 0 26px}.results-table-head,.results-row{display:grid;grid-template-columns:2.5fr .75fr .9fr .95fr;align-items:center;gap:10px}.results-table-head{font-size:6px;color:#8c957f;letter-spacing:1px;padding:0 8px 10px}.results-row{font-size:10px;border-top:1px solid #263e3214;padding:10px 8px}.results-row.self{background:#6b80590c}.result-racer{display:flex;align-items:center;gap:9px;min-width:0}.result-racer b{font-weight:500;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-racer .avatar{width:23px;height:27px;font-size:9px}.rank{font-family:Cormorant Garamond;font-size:22px;width:15px;color:#929b83}.result-actions{display:flex;gap:12px}.result-actions .primary-button{flex:1.25}.result-actions .secondary-button{flex:1}.dialog{color:var(--ink);width:440px;max-width:calc(100vw - 36px);padding:36px;border-color:#fff8;background:#f4f1e9;pointer-events:auto}.dialog::backdrop{background:#1a312b77;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog-close{position:absolute;right:17px;top:17px;width:28px;height:28px}.dialog-close svg{width:13px;height:13px}.dialog>.eyebrow{margin:8px 0 20px}.dialog h2{font-size:42px;margin-bottom:19px}.dialog h2 em{font-weight:500;color:#7a855d}.dialog form>label{font-size:7px;letter-spacing:1px;color:#8c957e}.dialog form>input{height:56px;width:100%;margin:9px 0 20px;background:#fff6;border:1px solid var(--border);color:var(--ink);font-size:26px;text-align:center;letter-spacing:7px;text-transform:uppercase;border-radius:2px}.how-step{display:flex;gap:17px;padding:17px 0;border-top:1px solid var(--border)}.how-step>b{font-family:Cormorant Garamond;font-size:26px;font-weight:500;color:#a0a58d}.how-step h3{font-size:13px;font-weight:500;margin:0 0 6px}.how-step p{font-size:10px;line-height:1.8;color:#8a927e;margin:0}.dialog-done{margin-top:17px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;border-top:1px solid var(--border);padding:18px 0}.setting-row select{background:#e9eadd;border:1px solid var(--border);padding:7px;color:var(--ink);font-size:10px}.setting-row input{accent-color:var(--ink);width:18px;height:18px}.dialog .setting-row+p{margin-top:15px;font-size:10px}.toast{position:fixed;z-index:100;bottom:27px;left:50%;transform:translate(-50%);background:#263e32f7;color:#f5f2e7;padding:15px 22px;border:1px solid #ffffff35;box-shadow:0 8px 35px #18322722;border-radius:3px;font-size:11px;max-width:calc(100vw - 30px);text-align:center}.toast.error{background:#894e3a;color:#fff5e9}.loading-screen{position:fixed;z-index:200;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--cream)}.loading-monogram{font-family:Cormorant Garamond,Georgia,serif;font-size:65px;font-weight:500;letter-spacing:-5px}.loading-monogram>span{color:#a5ad8c;font-style:italic}.loading-track{height:1px;width:140px;background:#263e321c;margin-top:28px;overflow:hidden}.loading-track>span{display:block;width:40%;height:100%;background:var(--sage);animation:loading 1.3s infinite ease-in-out}.loading-screen p{font-size:8px;letter-spacing:1.2px;color:#8a947b;margin-top:16px}.graphics-error{position:fixed;bottom:80px;left:50%;transform:translate(-50%);padding:18px;max-width:500px;background:#8b4f3e;color:#fff8ee;z-index:300;font-size:12px;text-align:center;pointer-events:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(350%)}}@media(min-width:1600px){.hero{top:22vh}.entry-form{margin-top:38px;max-width:355px}.hero p{font-size:14px}.hero h1{margin-top:32px;margin-bottom:30px}.entry-name input{height:44px}.primary-button{min-height:53px}.course-caption{bottom:83px}.course-caption h2{font-size:33px}}@media(max-height:760px)and (min-width:901px){.topbar{height:86px}.hero{top:128px}.hero h1{font-size:68px;margin:18px 0}.hero p{font-size:11px;line-height:1.7}.entry-form{margin-top:22px}.primary-button{min-height:43px}.play-options{margin:14px 0}.practice-button{padding-top:10px}.course-topline{top:101px}#world{top:119px;height:calc(100dvh - 253px)}.course-stamp{top:139px}.course-caption{bottom:73px}.course-caption h2{font-size:25px}.home-footer{height:50px}.lobby-screen{top:86px}.lobby-card{padding:22px}.lobby-card h2{font-size:34px}.lobby-card>p{margin-bottom:13px}.player-slot{min-height:50px}.player-grid,.lobby-note{margin:12px 0}.results-card{padding:25px}.results-card h2{font-size:38px}.result-stats{margin:16px 0;padding:13px 0}.results-table{margin:14px 0 20px}.results-row{padding:8px}.typing-panel{min-height:181px;padding-top:14px;padding-bottom:12px}.typing-heading{margin-bottom:9px}.passage-window{margin-bottom:10px}.metrics{margin-top:10px}.race-utilities{bottom:222px}}@media(max-width:1150px)and (min-width:901px){.topbar{margin-inline:32px;gap:25px}.main-nav{margin-left:15px;gap:22px}.connection{margin-right:5px}.hero{left:32px;width:calc(42% - 60px)}.hero h1{font-size:70px}.course-topline,.course-caption{right:32px}#world{width:calc(58% - 32px)}.home-footer{left:32px;right:32px}.footer-facts{margin-right:0;gap:20px}.footer-note{font-size:14px}.course-caption h2{font-size:23px}.silks-control{padding-left:14px}.color-picker{gap:5px}.silks-label{gap:7px}.course-stamp{right:48px}.practice-button>span{font-size:8px}}@media(max-width:900px){body{overflow:auto}#app{min-height:1050px;height:100dvh}.topbar{height:86px;margin-inline:26px;gap:20px}.brand{font-size:21px}.brand-mark{width:28px}.main-nav{margin-left:auto;gap:20px}.nav-link{font-size:10px}.nav-link.active,.connection{display:none}.top-actions{margin-left:0;gap:7px}.hero{position:relative;top:auto;left:auto;width:auto;padding:42px 28px 0;max-width:680px}.hero h1{font-size:77px;line-height:.9;margin:20px 0}.hero p{font-size:12px;max-width:340px}.desktop-break{display:none}.entry-form{position:absolute;left:54%;top:70px;width:40%;max-width:320px;margin:0}.practice-button{flex-wrap:wrap}.practice-button>span{width:100%;margin-bottom:4px}.hero .eyebrow{font-size:7px}.home-screen{height:964px}.course-topline{top:391px;left:28px;right:28px}#world{left:28px;top:410px;width:calc(100% - 56px);height:440px;position:absolute}.course-caption{inset:868px 28px auto}.course-stamp{top:432px;right:48px}.home-footer{inset:982px 28px auto;height:55px}.footer-facts{margin:0}.footer-note{font-size:14px}.edition{display:none}body[data-screen=lobby],body.in-game{overflow:hidden}body[data-screen=lobby] #app,body.in-game #app{height:100dvh;min-height:0}body[data-screen=lobby] .topbar{padding-inline:24px}.lobby-screen{inset:86px 0 0;padding:25px}.lobby-card{width:440px;padding:23px}.lobby-track{right:5%;bottom:6%}.lobby-track h2{font-size:60px}.lobby-track p{display:none}.typing-panel{width:calc(100% - 32px);bottom:16px;padding:16px 20px}.leaderboard{right:16px;top:20px;width:210px;padding:13px}.race-top-left{left:22px;top:22px}.race-top-left h2{font-size:29px}.timer{top:20px;min-width:112px;padding:10px 16px}.typing-heading{gap:12px}.typing-heading #typing-hint{font-size:8px}.typing-heading .text-button{margin-left:0}.metrics{gap:23px}.keyboard-hint .metric-progress{display:none}.race-utilities{left:22px;bottom:237px}.passage{font-size:22px}.course-caption h2{font-size:29px}}@media(max-width:600px){body[data-screen=home] #app{min-height:1210px}.topbar{height:80px;margin-inline:21px;gap:12px}.brand{font-size:20px;gap:7px}.brand small{font-size:6px;letter-spacing:2.5px}.brand-mark{width:25px;height:32px}.main-nav{margin-left:auto;gap:0}.nav-link{font-size:9px}.nav-link svg{display:none}.top-actions{gap:5px}.top-actions .icon-button{width:29px;height:29px}.top-actions #sound-button{display:none}.hero{padding:36px 23px 0}.hero h1{font-size:76px;margin:23px 0 20px;letter-spacing:-2px}.hero p{max-width:290px;font-size:11px;line-height:1.8}.entry-form{position:relative;inset:auto;width:100%;max-width:none;margin-top:27px}.entry-name input{height:38px}.primary-button{height:48px}.play-options{margin:19px 0}.practice-button{flex-wrap:nowrap;font-size:10px}.practice-button>span{font-size:8px;width:auto;margin-bottom:0}.course-topline{top:586px;left:23px;right:23px;font-size:6px;letter-spacing:1px}#world{left:23px;top:608px;width:calc(100% - 46px);height:390px}.course-stamp{top:626px;right:38px;width:65px;height:65px;padding-top:9px}.course-stamp b{font-size:26px}.course-stamp>span,.course-stamp>small{font-size:4px}.course-caption{top:1017px;left:23px;right:23px;flex-wrap:wrap;gap:20px}.course-caption h2{font-size:28px}.course-caption .tiny-label{font-size:6px}.silks-control{border:0;padding:0;width:100%;display:flex;justify-content:space-between;align-items:center}.color-picker{margin:0;gap:10px}.silks-label{gap:10px;font-size:6px}.color-swatch{width:19px;height:19px}.home-footer{top:1142px;left:23px;right:23px;align-items:flex-start;padding-top:15px;flex-direction:column;gap:11px}.footer-note{font-size:15px}.footer-facts{justify-content:space-between;width:100%;gap:10px}.footer-facts>span{font-size:5px}.footer-facts b{font-size:15px}.footer-facts svg{width:12px}.lobby-screen{inset:80px 0 0;padding:18px;align-items:center;overflow:auto}.lobby-card{width:100%;padding:22px 18px;background:#f5f2e9f5}.lobby-card h2{font-size:32px}.lobby-card>p{font-size:10px;margin-bottom:15px}.lobby-track{display:none}.player-grid{gap:6px;margin:14px 0}.player-slot{min-height:54px;gap:7px;padding:8px}.slot-info b{max-width:95px;font-size:9px}.slot-info small{font-size:5px}.avatar{width:26px;height:30px}.lobby-note{font-size:8px;margin:12px 0 16px}.lobby-card .card-heading{margin-bottom:16px}.lobby-kind{font-size:7px}.race-top-left{top:16px;left:16px}.race-top-left h2{font-size:24px;margin-top:6px}.race-top-left .tiny-label{font-size:5px;letter-spacing:.5px}.race-top-left .badge{font-size:5px;padding:4px 6px}.timer{left:auto;right:16px;transform:none;min-width:85px;top:16px;padding:7px 12px}.timer b{font-size:24px}.timer>span{font-size:5px}.leaderboard{top:112px;right:16px;width:157px;padding:10px;background:#f5f2e9dd}.leaderboard .card-heading{margin-bottom:6px}.leaderboard .eyebrow{font-size:5px}.leaderboard .card-heading>svg{width:11px;height:11px}.standing{gap:5px;padding:6px 0}.standing .place{font-size:16px;width:10px}.standing .avatar{width:18px;height:21px;font-size:7px}.standing-name b{font-size:7px}.standing strong{font-size:6px}.mini-progress{margin-top:4px}.typing-panel{width:calc(100% - 22px);bottom:11px;padding:12px 13px;min-height:188px}.typing-heading{margin-bottom:8px;flex-wrap:wrap;gap:6px}.typing-heading .eyebrow{font-size:6px;letter-spacing:1px}.typing-heading #typing-hint{font-size:7px;width:100%;order:3;margin:0;height:12px}.typing-heading .text-button{margin-left:auto;font-size:7px}.typing-heading .text-button svg{width:10px}.passage-window{height:48px;margin-bottom:9px}.passage{font-size:19px;line-height:32px}.metrics{margin-top:12px;gap:0;justify-content:space-between}.wpm-dial b,.metric b{font-size:29px}.wpm-dial,.metric{min-width:42px}.metric>span,.wpm-dial>span{font-size:5px;letter-spacing:.6px}.metric b>span{font-size:14px}.metric.position{min-width:60px;padding-left:15px}.keyboard-hint{margin-left:0;font-size:6px;gap:4px}.keyboard-hint>span:not(.metric-progress){display:none}kbd{font-size:12px;padding:3px 5px}.focus-race{inset:52px 8px 73px;font-size:11px;gap:5px}.focus-race svg{width:14px}.focus-race>span{font-size:7px;margin-left:5px}.race-utilities{left:16px;bottom:218px}.race-utilities .icon-button{width:30px;height:30px}.countdown{top:40%;min-width:250px}.countdown b{font-size:100px}.countdown p{font-size:18px}.countdown>span{font-size:6px}.finish-banner{width:260px;padding:17px 20px;gap:13px;top:43%}.finish-banner b,.finish-banner p{font-size:8px}.results-card{padding:25px 18px}.results-card h2{font-size:36px}.results-card>p{font-size:10px}.result-stats{padding:14px 0;margin:20px 0}.result-stat b{font-size:34px}.result-stat>span{font-size:5px;letter-spacing:.6px}.results-table-head,.results-row{grid-template-columns:2fr .6fr .8fr .85fr;gap:6px}.results-table-head{font-size:5px;padding-inline:4px}.results-row{font-size:8px;padding-inline:4px}.result-racer{gap:5px}.result-racer b{font-size:8px}.result-racer .rank{font-size:18px;width:9px}.result-racer .avatar{width:18px;height:22px;font-size:7px}.result-actions{gap:8px}.result-actions .primary-button{font-size:10px;padding-inline:12px}.result-actions .primary-button svg{width:13px}.result-actions .secondary-button{font-size:8px;padding-inline:10px}.dialog{padding:30px 25px}.dialog h2{font-size:38px}.toast{font-size:10px;padding:13px 18px}.graphics-error{width:calc(100% - 40px)}}.course-caption{bottom:77px;align-items:flex-end}.character-picker{display:flex;gap:9px;margin-top:9px}.character-option{display:flex;flex-direction:column;align-items:center;gap:5px;background:none;padding:0 3px;color:#9a9e8d;font-size:7px;min-width:42px}.character-portrait{display:block;width:38px;height:38px;background:#e8e8dc;border-radius:50%;overflow:hidden;border:2px solid var(--cream);outline:1px solid transparent;transition:outline-color .2s}.character-portrait img{display:block;width:100%;height:100%;object-fit:cover}.character-option:hover{color:var(--ink)}.character-option:hover .character-portrait{outline-color:#b4bba1}.character-option.selected{color:var(--ink)}.character-option.selected .character-portrait{outline-color:#71835c;background:#dbe0ca}.toy-roster .tiny-label{font-size:6px;letter-spacing:1.1px}.silks-control{margin-bottom:3px}@media(max-height:760px)and (min-width:901px){#world{height:calc(100dvh - 282px)}.course-caption{bottom:66px}}@media(max-width:1150px)and (min-width:901px){.character-picker{gap:4px}.character-option{min-width:35px;font-size:6px}.character-portrait{width:32px;height:32px}.silks-control{padding-left:12px}.color-picker{gap:3px}.color-swatch{width:15px;height:15px}.silks-label{flex-direction:column;gap:4px;align-items:flex-start}.toy-roster .tiny-label{font-size:5px}}@media(max-width:900px){#world{height:420px}.course-caption{top:850px;bottom:auto}.character-portrait{width:40px;height:40px}.character-picker{gap:9px}.character-option{min-width:45px}.home-footer{top:982px}}@media(max-width:600px){body[data-screen=home] #app{min-height:1290px}#world{height:390px}.course-caption{top:1017px;bottom:auto;gap:19px}.toy-roster{width:100%}.toy-roster .tiny-label{font-size:6px}.character-picker{justify-content:space-between;margin-top:12px;gap:4px}.character-option{min-width:39px;font-size:7px}.character-portrait{width:42px;height:42px}.silks-control{margin:0}.home-footer{top:1205px}.home-screen{height:1210px}.silks-label,.silks-label b{font-size:7px}}.avatar img{display:block;width:100%;height:100%;object-fit:cover}.you-label{color:#8a9777}.results-card{max-height:calc(100dvh - 50px);overflow-y:auto}.dialog{max-height:calc(100dvh - 36px);overflow-y:auto}.ai-badge{font-family:DM Sans,sans-serif;display:inline-block;margin-left:5px;padding:1px 3px;border:1px solid #6b80594d;border-radius:2px;font-size:6px;line-height:1.3;font-weight:500;letter-spacing:.3px;color:#7a886b;vertical-align:middle}.bot-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-block:1px solid var(--border);margin-top:4px}.bot-controls label{display:flex;align-items:center;gap:9px;font-size:10px;pointer-events:auto;cursor:pointer}.bot-controls input{accent-color:var(--ink);width:14px;height:14px;margin:0}.bot-controls small{display:block;font-size:7px;color:#939b86;margin-top:3px}.bot-controls>span{font-size:7px;color:#879276;white-space:nowrap}.lobby-card{max-height:calc(100dvh - 146px);overflow-y:auto}.capture-input{left:24px;top:48px;bottom:auto;width:calc(100% - 48px);height:56px;pointer-events:none!important}@media(max-height:760px)and (min-width:901px){.lobby-card{max-height:calc(100dvh - 112px)}}@media(max-width:600px){.lobby-card{max-height:calc(100dvh - 115px)}.bot-controls small{font-size:6px}.bot-controls>span{font-size:6px}.ai-badge{font-size:5px;padding:1px 2px;margin-left:3px}}.wpm-dial b,.metric b{font-family:DM Sans,sans-serif;font-size:27px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-1px}.wpm-dial>span,.metric>span{font-size:7px;margin-top:4px}.standing-name b{font-size:10px}.standing strong{font-size:9px}.leaderboard .eyebrow{font-size:8px}@media(max-width:600px){.wpm-dial b,.metric b{font-size:25px}.wpm-dial>span,.metric>span{font-size:5px;margin-top:3px}.standing-name b{font-size:7px}.standing strong{font-size:6px}.leaderboard .eyebrow{font-size:5px}}.typing-panel{--typing-line-height:36px;min-height:0}.passage-window{height:calc(var(--typing-line-height)*3);overflow:hidden;cursor:text}.passage{display:flex;flex-wrap:wrap;column-gap:.65ch;align-content:flex-start;font-family:ui-monospace,Cascadia Code,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:23px;line-height:var(--typing-line-height);letter-spacing:0;color:#a1a796;transition:transform .12s ease;-webkit-user-select:none;user-select:none}.typing-word{position:relative;display:inline-flex;flex-shrink:0;height:var(--typing-line-height);white-space:pre;border-bottom:1px solid transparent}.typing-word .letter{display:block;min-width:1ch}.typing-word .letter.pending{color:#a1a796}.typing-word .letter.correct{color:#354c3c}.typing-word .letter.incorrect{color:#b05b4c}.typing-word .letter.missed{color:#c18a7d}.typing-word .letter.extra{color:#97483f}.typing-word.error-word{border-bottom-color:#b05b4c}.typing-caret{position:absolute;left:-1px;top:0;width:2px;background:#8c7548;border-radius:1px;pointer-events:none;opacity:0;transition:transform 75ms linear,opacity .1s;will-change:transform;z-index:1}.typing-focused .typing-caret{opacity:1}.caps-lock{padding:3px 6px;border:1px solid #bd9a5a66;border-radius:3px;color:#9b783e;font-size:8px;white-space:nowrap}.capture-input{height:calc(var(--typing-line-height)*3)}.focus-race{inset:45px 16px 76px}.keyboard-hint kbd{font-family:ui-monospace,Consolas,monospace;font-size:10px;line-height:1.2;padding:4px 6px}.keyboard-hint .metric-progress{margin-left:12px}.race-utilities{bottom:285px}@media(max-height:760px)and (min-width:901px){.typing-panel{--typing-line-height:34px;min-height:0}.passage{font-size:22px}.race-utilities{bottom:259px}}@media(max-width:900px){.typing-panel{--typing-line-height:34px}.passage{font-size:21px}.race-utilities{bottom:279px}.typing-heading{gap:9px}.caps-lock{font-size:7px;padding:2px 4px}}@media(max-width:600px){.typing-panel{--typing-line-height:29px;min-height:0}.passage{font-size:18px}.passage-window{height:calc(var(--typing-line-height)*3)}.race-utilities{bottom:253px}.typing-heading .caps-lock{margin-left:2px;font-size:6px}.keyboard-hint kbd{font-size:8px;padding:3px 4px}.focus-race{inset:58px 8px 63px}.focus-race>span{display:none}}@media(prefers-reduced-motion:reduce){.passage,.typing-caret{transition:none}}@media(max-width:600px){body[data-screen=home] #app{min-height:1330px}.hero h1{font-size:clamp(56px,19.4vw,76px)}.course-topline{top:620px}#world{top:642px}.course-stamp{top:660px}.course-caption{top:1051px}.home-footer{top:1239px}.home-screen{height:1250px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.sound-volume-row>span{display:flex;align-items:center;gap:12px;width:55%}.setting-row #sound-volume{width:100%;height:20px;min-width:70px;cursor:pointer}.sound-volume-row output{min-width:32px;font-size:10px;text-align:right;color:var(--sage);font-variant-numeric:tabular-nums}.audio-preview-row{display:flex;align-items:center;gap:16px;padding:4px 0 11px}.audio-preview-row .secondary-button{width:auto;flex:0 0 auto;height:36px;padding:0 13px;font-size:10px;white-space:nowrap;display:flex;align-items:center;gap:7px}.audio-preview-row svg{width:14px;height:14px}.dialog .audio-preview-row p,.dialog .settings-note{font-size:10px;line-height:1.7;color:#89917d;margin:0}.dialog .settings-note{border-top:1px solid var(--border);padding-top:15px}.dialog #audio-status{max-width:210px}@media(max-width:900px){body{overflow-x:hidden}body[data-screen=lobby],body.in-game{overscroll-behavior:none}body[data-screen=lobby] #app,body.in-game #app{position:fixed;top:var(--app-offset-top,0px);left:0;width:100%;height:var(--app-height,100dvh);min-height:0;overflow:hidden}body[data-screen=lobby] #world,body.in-game #world{position:fixed;inset:auto;top:var(--app-offset-top,0px);left:0;width:100%;height:var(--app-height,100dvh)}.dialog{max-height:calc(var(--app-height,100dvh) - 24px);overscroll-behavior:contain}.results-card{max-height:calc(var(--app-height,100dvh) - 32px);overscroll-behavior:contain}.capture-input{font-size:16px}}@media(max-width:600px){body[data-screen=home] #app{min-height:calc(1440px + env(safe-area-inset-top) + env(safe-area-inset-bottom))}body[data-screen=home] .topbar{height:calc(80px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}.topbar{margin-inline:16px;gap:8px}.top-actions .icon-button,.dialog-close,.race-utilities .icon-button{width:44px;height:44px;min-height:44px}.nav-link,.text-button,.play-options button,.practice-button,.secondary-button{min-height:44px}.entry-name input{height:48px;font-size:16px}.entry-name input::placeholder{font-size:13px}.entry-name>svg{top:15px}.play-options{margin-block:9px}.practice-button{padding-top:0}body[data-screen=home] .course-topline{top:calc(676px + env(safe-area-inset-top))}body[data-screen=home] #world{top:calc(698px + env(safe-area-inset-top))}.course-stamp{top:calc(716px + env(safe-area-inset-top))}.course-caption{top:calc(1108px + env(safe-area-inset-top))}.home-footer{top:calc(1320px + env(safe-area-inset-top))}.home-screen{height:1360px}.character-option{min-width:44px;min-height:60px;padding-inline:0}.character-picker{gap:0}.silks-control{display:block}.silks-label{justify-content:space-between}.color-picker{justify-content:space-between;gap:0;margin-top:4px}.color-swatch{width:44px;height:44px;border-width:12px;outline-offset:-9px}.setting-row select,.dialog form>input{min-height:44px;font-size:16px}.dialog form>input{font-size:26px}.setting-row{min-height:60px}.setting-row input[type=checkbox],.bot-controls input{width:22px;height:22px}.bot-controls label{min-height:44px}.lobby-card{max-height:calc(var(--app-height,100dvh) - 112px - env(safe-area-inset-top))}.lobby-screen{top:calc(80px + env(safe-area-inset-top));padding:12px 14px max(12px,env(safe-area-inset-bottom));overscroll-behavior:contain}body[data-screen=lobby] .topbar{height:calc(80px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0}.slot-info b{max-width:none}.player-slot{min-width:0}.result-screen{padding:16px 12px max(16px,env(safe-area-inset-bottom))}.results-card{padding:22px 16px}.dialog{max-width:calc(100vw - 24px);padding:30px 22px}.dialog-close{top:6px;right:6px}.audio-preview-row .secondary-button{min-height:44px}.toast{bottom:max(12px,env(safe-area-inset-bottom))}.race-top-left{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left))}.race-top-left h2{font-size:23px;margin:4px 0}.race-top-left .badge,.race-top-left .tiny-label{font-size:6px}.timer{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));min-width:88px;padding:7px 12px}.leaderboard{top:calc(83px + env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));width:auto;padding:7px 4px}.leaderboard .card-heading{display:none}#standings{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0}.standing{display:grid;grid-template-columns:14px 1fr;gap:2px;min-width:0;padding:1px 5px;border-top:0;border-left:1px solid var(--border)}.standing:first-child{border-left:0}.standing .avatar{display:none}.standing .place{grid-column:1;grid-row:1;font-size:17px;width:auto;line-height:1}.standing-name{grid-column:1 / -1;grid-row:2}.standing-name b{font-size:8px;line-height:1.4}.standing-name b:has(.ai-badge){position:relative;padding-right:12px}.standing .ai-badge{position:absolute;right:0;top:2px;font-size:5px;margin-left:0;padding:0 1px}.standing strong{grid-column:2;grid-row:1;font-size:8px;text-align:right}.mini-progress{margin-top:3px}.standing.self{background:#6b80590d}.typing-panel{--typing-line-height:26px;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));transform:none;width:auto;padding:10px 12px}.typing-heading{height:28px;min-height:28px;flex-wrap:nowrap;gap:6px;margin-bottom:8px}.typing-heading .eyebrow{font-size:6px;letter-spacing:.8px;white-space:nowrap}.typing-heading #typing-hint{display:none}.typing-heading .text-button{min-height:44px;margin-block:-8px;font-size:9px;white-space:nowrap}.typing-heading .caps-lock{font-size:6px}.passage-window{height:calc(var(--typing-line-height)*2);margin-bottom:8px}.passage{font-size:18px}.capture-input{top:46px;left:12px;width:calc(100% - 24px);height:calc(var(--typing-line-height)*2);font-size:16px}.metrics{margin-top:9px;gap:5px}.wpm-dial b,.metric b{font-size:23px}.wpm-dial>span,.metric>span{font-size:6px;letter-spacing:.3px}.metric.position{padding-left:10px;min-width:52px}.keyboard-hint kbd,.keyboard-hint>span:not(.metric-progress){display:none}.keyboard-hint .metric-progress{display:block;margin-left:0;font-size:6px;letter-spacing:0;white-space:nowrap}.focus-race{inset:46px 8px 53px;min-height:44px;font-size:12px}.focus-race>span{display:none}.race-utilities{left:max(12px,env(safe-area-inset-left));bottom:calc(185px + env(safe-area-inset-bottom));gap:6px}.countdown{top:39%;min-width:230px}.countdown b{font-size:90px}.countdown p{font-size:17px}.finish-banner{top:40%;width:min(280px,calc(100% - 30px))}body[data-keyboard=open] .race-top-left h2,body[data-keyboard=open] .race-top-left .tiny-label{display:none}body[data-keyboard=open] .timer{padding:4px 10px}body[data-keyboard=open] .timer>span,body[data-keyboard=open] .timer-line{display:none}body[data-keyboard=open] .timer b{font-size:22px}body[data-keyboard=open] .leaderboard{top:calc(50px + env(safe-area-inset-top))}}@media(max-width:900px)and (max-height:500px){body.in-game .race-top-left{top:8px;left:max(12px,env(safe-area-inset-left))}body.in-game .race-top-left h2,body.in-game .race-top-left .tiny-label{display:none}body.in-game .timer{top:8px;right:max(12px,env(safe-area-inset-right));left:auto;transform:none;min-width:80px;padding:3px 10px}body.in-game .timer>span,body.in-game .timer-line{display:none}body.in-game .timer b{font-size:21px}body.in-game .leaderboard{top:48px;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));width:auto;padding:5px}body.in-game .leaderboard .card-heading{display:none}body.in-game #standings{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}body.in-game .standing{display:flex;gap:4px;padding:2px 5px;border-top:0;border-left:1px solid var(--border);min-width:0}body.in-game .standing:first-child{border-left:0}body.in-game .standing .avatar,body.in-game .mini-progress{display:none}body.in-game .standing .place{font-size:15px;width:11px}body.in-game .standing-name b,body.in-game .standing strong{font-size:8px}body.in-game .typing-panel{--typing-line-height:26px;bottom:max(8px,env(safe-area-inset-bottom));padding:8px 12px}body.in-game .typing-heading{height:26px;min-height:26px;flex-wrap:nowrap;margin-bottom:5px}body.in-game .typing-heading #typing-hint{display:none}body.in-game .typing-heading .text-button{min-height:44px;margin-block:-9px}body.in-game .passage-window{height:var(--typing-line-height);margin-bottom:6px}body.in-game .passage{font-size:18px}body.in-game .capture-input{top:39px;height:var(--typing-line-height);font-size:16px}body.in-game .metrics{margin-top:7px}body.in-game .wpm-dial b,body.in-game .metric b{font-size:22px}body.in-game .focus-race{inset:35px 8px 45px;min-height:44px}body.in-game .race-utilities{bottom:calc(137px + env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left))}body.in-game .countdown{top:32%}body.in-game .countdown b{font-size:58px}body.in-game .countdown p{display:none}}
