.cv-os-desktop{padding:var(--space-4);padding-bottom:var(--space-6);border:2px solid var(--ink-ghost);border-radius:var(--radius-md);background-color:var(--surface-sunken);background-image:linear-gradient(45deg, var(--line) 25%, transparent 25%, transparent 75%, var(--line) 75%), linear-gradient(45deg, var(--line) 25%, transparent 25%, transparent 75%, var(--line) 75%);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 14%, transparent);background-position:0 0,2px 2px;background-size:4px 4px;position:relative;overflow:hidden}.cv-os-vignette{z-index:2;pointer-events:none;border-radius:inherit;background:radial-gradient(115% 115% at 50% 40%, transparent 36%, color-mix(in srgb, var(--ink) 22%, transparent) 72%, color-mix(in srgb, var(--ink) 55%, transparent) 100%);position:absolute;inset:0}.cv-os-grain{z-index:3;pointer-events:none;opacity:.28;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='130' height='130'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");background-size:130px 130px;animation:.55s step-end infinite cv-os-grain;position:absolute;inset:0}@keyframes cv-os-grain{0%{background-position:0 0}20%{background-position:-28px 14px}40%{background-position:22px -30px}60%{background-position:-16px 26px}80%{background-position:30px 8px}to{background-position:-10px -18px}}.cv-os-brand{right:var(--space-4);bottom:calc(var(--space-2) + 1px);z-index:4;pointer-events:none;position:absolute}.cv-os-window{border:2px solid var(--ink);background:var(--white);box-shadow:4px 4px 0 color-mix(in srgb, var(--ink) 78%, transparent);border-radius:5px;overflow:hidden}.cv-os-titlebar{border-bottom:2px solid var(--ink);background:var(--white);justify-content:center;align-items:center;height:1.5rem;display:flex;position:relative}.cv-os-titlebar:before{content:"";background:repeating-linear-gradient(to bottom, var(--ink) 0 1px, transparent 1px 3px);position:absolute;inset:4px 8px}.cv-os-close{border:1.5px solid var(--ink);background:var(--white);border-radius:1px;width:12px;height:12px;position:absolute;top:50%;left:8px;transform:translateY(-50%)}.cv-os-title{padding:0 var(--space-2);background:var(--white);position:relative}.cv-os-screen{padding:var(--space-4);background:var(--white)}.cv-predict-line{min-height:3.1em;font-family:var(--font-mono);letter-spacing:normal;text-wrap:pretty;margin:0;font-weight:500;line-height:1.55}.cv-predict-word{animation:.3s both cv-predict-gw}.cv-predict-word--pick{color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent) inset;border-radius:var(--radius-md);padding:.05em .35em;font-weight:700;animation:.4s cubic-bezier(.2,1.4,.4,1) both cv-predict-pop}.cv-predict-cursor{vertical-align:-2px;background:var(--ink);width:.5em;height:1.05em;margin-left:3px;animation:1.1s step-end infinite cv-predict-blink;display:inline-block}.cv-predict-answers{justify-content:flex-start;min-height:0}.cv-lesson-feedback .cv-takeaway{animation:.3s both cv-predict-fade}.cv-predict-optrow{align-items:center;gap:var(--space-3);width:100%;display:flex}.cv-predict-optword{flex:none;min-width:5rem}.cv-predict-bar{border-radius:var(--radius-pill);background:var(--mist);flex:auto;height:10px;overflow:hidden}.cv-predict-bar-fill{border-radius:var(--radius-pill);background:var(--grad-uu-h);height:100%;display:block}.cv-predict-pct{text-align:right;white-space:nowrap;flex:none;min-width:3rem}@keyframes cv-predict-gw{0%{opacity:0;filter:blur(3px)}to{opacity:1;filter:none}}@keyframes cv-predict-pop{0%{opacity:0;transform:scale(.7)}60%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes cv-predict-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes cv-predict-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cv-predict-word,.cv-predict-word--pick,.cv-predict-cursor,.cv-lesson-feedback .cv-takeaway,.cv-os-grain{animation:none}}
