.cv-page{min-height:calc(100dvh - var(--topbar-h));flex-direction:column;display:flex}.cv-hero{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;padding-top:48px;padding-bottom:32px;display:grid}.cv-hero-text{flex-direction:column;gap:12px;min-width:0;display:flex}.cv-hero h1{font-size:var(--fs-2xl);line-height:var(--lh-2xl);max-width:22ch}.cv-hero .lead{max-width:62ch}.cv-hero-art{align-items:center;gap:16px;margin-right:8px;display:flex}.cv-hero-art figure{flex-direction:column;align-items:center;gap:4px;margin:0;display:flex}.cv-hero-art canvas{filter:drop-shadow(0 12px 12px #00000059);width:112px;height:112px;animation:1.6s steps(7,jump-none) infinite alternate cv-bob}.cv-hero-art figure:last-child canvas{animation-delay:-.8s}.cv-hero-art figcaption{color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-sm);align-items:center;gap:6px;display:inline-flex}.cv-hero-arrows{border-radius:var(--r-md);background:var(--tool-accent-soft);width:48px;height:48px;color:var(--tool-accent);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--tool-accent) 30%, transparent);place-items:center;margin-bottom:24px;display:grid}@keyframes cv-bob{0%{transform:translateY(0)}to{transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.cv-hero-art canvas{animation:none}}.cv-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;padding-bottom:48px;display:grid}.cv-step-head{align-items:flex-start;gap:16px;padding:24px 24px 0;display:flex}.cv-step-head>div{flex:1;min-width:0}.cv-step-head h2{font-size:var(--fs-lg);line-height:var(--lh-lg)}.cv-step-head p{margin-top:4px}.cv-step-n{border-radius:var(--r-md);background:var(--tool-accent);width:40px;height:40px;color:var(--on-accent);font-size:var(--fs-lg);flex:none;place-items:center;line-height:1;display:grid;box-shadow:inset 0 -4px #00000040,inset 0 2px #fff3}.cv-step-icon{color:var(--text-3);flex:none;place-items:center;display:grid}.cv-step-body{flex-direction:column;gap:20px;padding:24px;display:flex}.cv-dz-wrap{position:relative}.cv-dz{min-height:196px}.cv-dz.is-busy{pointer-events:none;opacity:.4}.cv-busy{border-radius:var(--r-md);background:color-mix(in srgb, var(--surface) 88%, transparent);color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.cv-pack{flex-direction:column;gap:12px;display:flex}.cv-pack-row{border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--border);align-items:center;gap:16px;padding:16px;display:flex}.cv-pack-icon{border-radius:var(--r-sm);flex:none;place-items:center;width:72px;height:72px;display:grid;overflow:hidden}.cv-pack-icon img,.cv-pack-icon canvas{object-fit:contain;width:100%;height:100%}.cv-pack-info{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.cv-pack-name{font-size:var(--fs-md);line-height:var(--lh-md)}.cv-pack-badges{flex-wrap:wrap;gap:6px;display:flex}.cv-change{flex:none;align-self:flex-start}.cv-pack-desc{white-space:pre-line;overflow-wrap:anywhere;padding:0 4px}.cv-eds{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.cv-ed{border-radius:var(--r-md);background:var(--surface-2);color:var(--text);font:inherit;text-align:left;cursor:pointer;box-shadow:inset 0 0 0 2px var(--border);transition:box-shadow var(--dur-1) var(--ease), background var(--dur-1) var(--ease);border:0;align-items:center;gap:12px;padding:16px;display:flex;position:relative}.cv-ed:hover:not(:disabled){background:var(--surface-3)}.cv-ed:focus-visible{box-shadow:inset 0 0 0 2px var(--tool-accent), var(--focus-ring);outline:none}.cv-ed[aria-checked=true]{background:var(--tool-accent-soft);box-shadow:inset 0 0 0 2px var(--tool-accent)}.cv-ed.is-disabled{cursor:not-allowed;opacity:.45}.cv-ed-icon{border-radius:var(--r-sm);background:var(--surface);width:40px;height:40px;color:var(--tool-accent);box-shadow:inset 0 0 0 2px var(--border);flex:none;place-items:center;display:grid}.cv-ed-text{flex-direction:column;gap:2px;min-width:0;padding-right:20px;display:flex}.cv-ed-check{border-radius:var(--r-xs);background:var(--tool-accent);width:22px;height:22px;color:var(--on-accent);opacity:0;transition:opacity var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);place-items:center;margin-top:-11px;display:grid;position:absolute;top:50%;right:16px;transform:scale(.6)}.cv-ed[aria-checked=true] .cv-ed-check{opacity:1;transform:none}.cv-ed-text{padding-right:32px}.cv-version[hidden]{display:none}.cv-hint{min-height:24px;color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-sm)}.cv-go{width:100%}.cv-result{scroll-margin-top:calc(var(--topbar-h) + 16px);flex-direction:column;grid-column:1/-1;gap:20px;padding:24px;display:flex}.cv-res-head{align-items:flex-start;gap:16px;display:flex}.cv-res-titles{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.cv-res-titles h2{font-size:var(--fs-xl);line-height:var(--lh-xl)}.cv-res-icon{border-radius:var(--r-md);background:var(--surface-2);width:56px;height:56px;box-shadow:inset 0 0 0 2px var(--border);flex:none;place-items:center;display:grid}.cv-res-icon.is-ok{background:var(--tool-accent-soft);color:var(--tool-accent);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--tool-accent) 40%, transparent)}.cv-res-icon.is-warn,.cv-res-icon.is-error{background:color-mix(in srgb, var(--gold) 16%, transparent);color:var(--gold);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--gold) 40%, transparent)}.cv-res-icon.is-error{background:color-mix(in srgb, var(--red) 14%, transparent);color:var(--red);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--red) 40%, transparent)}.cv-progress{flex-direction:column;gap:16px;display:flex}.cv-prog-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;display:grid}.cv-prog-step{color:var(--text-3);font-size:var(--fs-sm);line-height:var(--lh-sm);align-items:center;gap:8px;display:flex}.cv-prog-dot{background:var(--surface-3);width:12px;height:12px;box-shadow:inset 0 0 0 2px var(--border-strong);flex:none}.cv-prog-step[data-state=active]{color:var(--text)}.cv-prog-step[data-state=active] .cv-prog-dot{background:var(--tool-accent);box-shadow:none;animation:.8s steps(2,jump-none) infinite alternate cv-blink}.cv-prog-step[data-state=done]{color:var(--text-2)}.cv-prog-step[data-state=done] .cv-prog-dot{background:var(--tool-accent);box-shadow:none}@keyframes cv-blink{to{opacity:.35}}.cv-summary{flex-direction:column;gap:12px;display:flex}.cv-meter{background:var(--surface-3);height:16px;box-shadow:inset 0 0 0 2px var(--border);border-radius:var(--r-xs);overflow:hidden}.cv-meter-fill{background:var(--tool-accent);height:100%;display:block;box-shadow:inset 0 -4px #0003}.cv-stats{flex-wrap:wrap;gap:8px 32px;display:flex}.cv-stat{align-items:baseline;gap:8px;display:flex}.cv-stat strong{font-size:var(--fs-lg);line-height:var(--lh-lg)}.cv-stat.tone-ok strong{color:var(--tool-accent)}.cv-stat.tone-warn strong{color:var(--gold)}.cv-actions{flex-wrap:wrap;gap:12px;display:flex}.cv-again{margin-left:auto}.cv-dl[hidden],.cv-install[hidden]{display:none}.cv-install{border-radius:var(--r-md);background:var(--tool-accent-soft);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--tool-accent) 30%, transparent);flex-direction:column;gap:8px;padding:16px;display:flex}.cv-saved{overflow-wrap:anywhere}.cv-file{min-width:0;color:var(--text);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cv-file .icon{color:var(--tool-accent);flex:none}.cv-file strong{overflow-wrap:anywhere;white-space:normal;min-width:0}.cv-note-list{flex-direction:column;gap:8px;list-style:none;display:flex}.cv-note-list li{color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-sm);gap:8px;display:flex}.cv-note-list .icon{color:var(--blue);flex:none;margin-top:2px}.cv-notes summary{cursor:pointer;color:var(--text-2);font-size:var(--fs-sm);align-items:center;gap:6px;display:inline-flex}.cv-notes ul{color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-sm);flex-direction:column;gap:6px;margin:8px 0 0 20px;display:flex}.cv-group{border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--border)}.cv-group>summary{cursor:pointer;border-radius:var(--r-md);align-items:center;gap:12px;padding:12px 16px;list-style:none;display:flex}.cv-group>summary::-webkit-details-marker{display:none}.cv-group>summary:focus-visible{box-shadow:var(--focus-ring);outline:none}.cv-group>summary .icon{color:var(--text-3);transition:transform var(--dur-1) var(--ease)}.cv-group[open]>summary .icon{transform:rotate(180deg)}.cv-group-title{flex:1;min-width:0}.cv-group.tone-warn .cv-group-title:before,.cv-group.tone-ok .cv-group-title:before,.cv-group.tone-muted .cv-group-title:before{content:"";background:var(--text-3);width:10px;height:10px;margin-right:10px;display:inline-block}.cv-group.tone-warn .cv-group-title:before{background:var(--gold)}.cv-group.tone-ok .cv-group-title:before{background:var(--tool-accent)}.cv-count{border-radius:var(--r-xs);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);line-height:var(--lh-md);box-shadow:inset 0 0 0 2px var(--border);padding:0 8px}.cv-group-hint{padding:0 16px 8px}.cv-list{border-radius:var(--r-sm);background:var(--surface);flex-direction:column;max-height:360px;margin:0 8px 8px;padding:4px 8px;list-style:none;display:flex;overflow:auto}.cv-list li{border-bottom:2px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0;padding:6px 0;display:flex}.cv-list li:last-child{border-bottom:0}.cv-list code{font-size:var(--fs-sm);overflow-wrap:anywhere;background:0 0;padding:0}.cv-to{color:var(--tool-accent)}.cv-arrow{color:var(--text-3)}.cv-detail{flex-basis:100%}.cv-more{padding:0 16px 12px}@media (max-width:1080px){.cv-hero-art canvas{width:88px;height:88px}}@media (max-width:960px){.cv-grid,.cv-hero{grid-template-columns:minmax(0,1fr)}.cv-hero-art{display:none}}@media (max-width:560px){.cv-hero{padding-top:32px;padding-bottom:24px}.cv-hero h1{font-size:var(--fs-xl);line-height:var(--lh-xl)}.cv-step-head{gap:12px;padding:16px 16px 0}.cv-step-icon{display:none}.cv-step-body,.cv-result{padding:16px}.cv-prog-steps{grid-template-columns:minmax(0,1fr)}.cv-res-icon{width:44px;height:44px}.cv-res-titles h2{font-size:var(--fs-lg);line-height:var(--lh-lg)}.cv-actions>*{flex:100%}.cv-again{margin-left:0}.cv-pack-row{gap:12px;padding:12px}.cv-pack-icon{width:56px;height:56px}.cv-change .btn-label{display:none}}
