/* v38: old-typewriter fast writing/speaking redesign */
.fast38-page{max-width:none!important;padding-top:18px!important;background:radial-gradient(circle at 12% 12%,#fff5d9 0 11%,transparent 11.5%),radial-gradient(circle at 88% 18%,#ecdfff 0 13%,transparent 13.5%),linear-gradient(180deg,#f7efe2 0%,#f1e8dc 42%,#e9e5f1 100%)!important;color:#2b2632}
.fast38-head{max-width:980px;margin:0 auto 18px;padding-inline:8px}.fast38-head h1{font-family:'Readex Pro',sans-serif;font-size:clamp(30px,5vw,48px);letter-spacing:-.03em}.fast38-head small{font-size:11px;color:#7c6e80}
.fast38-machine{width:min(920px,calc(100% - 20px));margin:0 auto}.fast38-machine-bar{position:relative;z-index:3;height:62px;border-radius:28px 28px 14px 14px;background:linear-gradient(180deg,#312b36,#17141c);box-shadow:0 9px 0 #0d0b11,0 18px 35px #352b3b30;color:#e8dece;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;padding:0 18px;border:1px solid #504754}.fast38-machine-bar>b{text-align:center;font:800 11px/1 'DM Sans',sans-serif;letter-spacing:.17em}.fast38-reel{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle,#a59b88 0 16%,#3d3740 17% 36%,#0f0e12 37% 57%,#716a61 58% 64%,#17151b 65%);box-shadow:inset 0 0 0 1px #ffffff17}.fast38-reel.right{justify-self:end}
.fast38-paper{position:relative;min-height:420px;margin:-5px 18px 0;padding:34px 26px 26px;border-radius:0 0 34px 34px;background:linear-gradient(90deg,#f4ecd8 0 2%,#fffdf5 2% 98%,#f4ecd8 98%);box-shadow:0 16px 0 #c2b5a2,0 28px 48px #4e43351f;border-inline:1px solid #ded1bd;overflow:hidden}.fast38-paper:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 0 7%,#d8a7a43f 7% 7.3%,transparent 7.3%),repeating-linear-gradient(0deg,transparent 0 44px,#b9b0a233 44px 45px)}.fast38-paper-rule{position:absolute;top:45px;bottom:22px;left:50%;width:1px;background:#9b8b7540;opacity:.4}
.fast38-window{position:relative;height:176px;overflow:hidden;border-radius:18px;background:#fffdf8e8;border:1px solid #d8cebf;box-shadow:inset 0 2px 12px #766a5713;display:flex;align-items:center}.fast38-window:before,.fast38-window:after{content:'';position:absolute;top:0;bottom:0;width:48px;z-index:4;pointer-events:none}.fast38-window:before{left:0;background:linear-gradient(90deg,#fffdf8,transparent)}.fast38-window:after{right:0;background:linear-gradient(-90deg,#fffdf8,transparent)}
.fast38-track{min-width:max-content;padding-inline:46%;transition:transform .12s linear;transform:translateX(calc(var(--shift,0) * -1ch))}.fast38-overlay{white-space:pre;font:900 clamp(31px,5vw,48px)/1.4 'DM Sans',ui-monospace,monospace;letter-spacing:.01em;color:#17141a}.fast38-char{display:inline-block;min-width:.55ch}.fast38-char.pending{color:#17141a24;text-shadow:0 1px 0 #fff}.fast38-char.correct{color:#121014}.fast38-char.wrong{color:#d92f45;background:#ffe1e5;border-radius:3px}.fast38-char.fixed{color:#188b4d}.fast38-char.auto{color:#4c3d59}.fast38-caret{position:absolute;left:50%;top:26px;bottom:26px;width:2px;background:#684d78;z-index:5;box-shadow:0 0 0 3px #684d7813;animation:fast38Blink .8s steps(1) infinite}@keyframes fast38Blink{50%{opacity:.25}}
#fast38-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.fast38-tip{position:relative;z-index:2;margin:20px 2px 0;padding:12px 14px;border-radius:14px;background:#f4eee3;color:#6d6257;font-size:11px;font-weight:800;line-height:1.7}.fast38-bottom{width:min(920px,calc(100% - 20px));margin:22px auto 0;display:grid;grid-template-columns:auto minmax(220px,360px);gap:14px;align-items:center}.fast38-counter{display:flex;gap:6px;align-items:baseline;padding:11px 15px;border-radius:999px;background:#ffffffa8;border:1px solid #fff;color:#746877}.fast38-counter b{font:900 24px 'DM Sans',sans-serif;color:#3d3543}.fast38-bottom>.primary{width:100%;min-height:58px!important;border-radius:19px!important;background:linear-gradient(135deg,#4d4059,#796083)!important;box-shadow:0 7px 0 #332a3a!important}
.fast38-speech-controls{position:relative;z-index:2;margin-top:24px;padding:22px;border-radius:24px;background:linear-gradient(145deg,#f8f1e7,#efe7f4);border:1px solid #ded2dc;text-align:center}.fast38-mic{border:0;border-radius:999px;padding:13px 20px;background:#322b3a;color:#fff;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:9px;box-shadow:0 6px 0 #1d1822}.fast38-mic.active{background:#b63d61;box-shadow:0 6px 0 #77243d,0 0 0 8px #df75951f}.fast38-speech-controls p{min-height:56px;margin:18px 0 8px;padding:12px 14px;border-radius:15px;background:#fff;color:#322b36;text-align:left;font:700 17px/1.6 'DM Sans',sans-serif}.fast38-speech-controls small{display:block;color:#786c78;font-size:10px;line-height:1.7;font-weight:800}
.lit38-final{max-width:900px!important;background:radial-gradient(circle at 20% 10%,#fff2be 0 10%,transparent 10.5%),linear-gradient(180deg,#f8f0ff,#eef9f4)!important}.lit38-final-card{width:min(620px,92vw);margin:34px auto;padding:34px 24px;border-radius:38px;background:linear-gradient(145deg,#fff8cf,#eadfff 55%,#dff4eb);box-shadow:0 14px 0 #c9b6d9,0 26px 42px #44364e1c;border:3px solid #fff;text-align:center}.lit38-final-card>span{display:inline-block;padding:7px 11px;border-radius:999px;background:#ffffffb5;color:#725884;font-size:10px;font-weight:900}.lit38-final-card>strong{display:block;margin:24px auto 15px;font:900 clamp(130px,35vw,240px)/.9 'DM Sans',sans-serif;color:#1b1720;text-shadow:0 7px 0 #ffffff8c}.lit38-final-card>p{max-width:460px;margin:0 auto 20px;color:#6d6171;line-height:1.8;font-weight:700}.lit38-final-card>small{display:block;min-height:30px;margin:15px 0;color:#594c62}.lit38-final-card>.primary{width:100%}
@media(max-width:600px){.fast38-page{padding-inline:8px!important}.fast38-machine{width:100%}.fast38-machine-bar{height:54px;border-radius:24px 24px 12px 12px;padding-inline:13px}.fast38-paper{margin-inline:7px;padding:22px 13px 18px;min-height:390px}.fast38-window{height:170px}.fast38-track{padding-inline:43%}.fast38-overlay{font-size:33px}.fast38-tip{font-size:10px}.fast38-bottom{grid-template-columns:1fr;width:100%}.fast38-counter{justify-self:start}.fast38-speech-controls{padding:17px}.lit38-final-card{padding:28px 16px;border-radius:31px}.lit38-final-card>strong{font-size:42vw}}
