body{margin:0;background:radial-gradient(ellipse at 30% 0,#21714d,#0b4932 60%,#083c2b);color:#fff8e7;font-family:system-ui,-apple-system,Segoe UI,sans-serif}
.cv-app,.cv-app *{box-sizing:border-box}
.cv-app{max-width:1180px;margin:auto;padding:12px 8px 24px}
.cv-app [hidden]{display:none!important}
.cv-app button,.cv-app summary,.cv-app input{touch-action:manipulation}
.cv-app button{font:700 14px system-ui;min-height:44px;border:1px solid #ffffff50;border-radius:12px;padding:10px 16px;background:#ffffff12;color:#fff8e7;cursor:pointer}
.cv-app button:hover:not(:disabled){background:#ffffff24}
.cv-app button:disabled{opacity:.46;cursor:default}
.cv-app button:focus-visible,.cv-app summary:focus-visible,.cv-app input:focus-visible{outline:3px solid #f4cc6c;outline-offset:4px}
.cv-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}
.cv-heading h1{font:700 clamp(38px,5vw,60px)/1.05 Georgia,serif;margin:4px 0 8px;letter-spacing:.01em}
.cv-heading p{margin:0;color:#e0e9dc}
.cv-app .cv-kicker{font-size:10px;font-weight:800;letter-spacing:2px;color:#f0d289;margin-bottom:10px}
.cv-app .cv-primary{background:linear-gradient(#f6d888,#dbb150);border-color:#f6d888;color:#243922;box-shadow:0 3px 0 #9b7832}
.cv-app .cv-primary:hover:not(:disabled){background:#ffe3a2}
.cv-setup{border:1px solid #ffffff30;border-radius:24px;background:#07372470;padding:clamp(20px,4vw,40px)}
.cv-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center}
.cv-intro h2{font:700 clamp(30px,4vw,44px)/1.12 Georgia,serif;margin:0 0 20px}
.cv-intro p{line-height:1.7;max-width:60ch;color:#e0e9dc}
.cv-preview{display:flex;justify-content:center;align-items:center;min-height:210px;padding:20px}
.cv-preview img{width:clamp(78px,10vw,110px);height:auto;border-radius:8px;box-shadow:0 12px 25px #0005;margin-left:-22px}
.cv-preview img:first-child{transform:rotate(-14deg);margin:0}.cv-preview img:nth-child(2){transform:translateY(-16px);z-index:1}.cv-preview img:last-child{transform:rotate(14deg)}
.cv-setup-actions{display:flex;gap:24px;align-items:center;justify-content:space-between;border-top:1px solid #ffffff25;padding-top:24px;margin-top:16px}
.cv-setup-actions strong{font:700 23px Georgia,serif}.cv-setup-actions p{font-size:13px;color:#dce7d5;margin:8px 0 0}
.cv-deck-builder,.cv-conventions{margin-top:24px;border-top:1px solid #ffffff25;padding-top:20px;line-height:1.7}
.cv-app summary{cursor:pointer;font-weight:700;min-height:44px;padding:8px 0;color:#f5dc9e}
.cv-app fieldset{border:0;margin:20px 0 0;padding:0}.cv-app legend{font-weight:700;margin-bottom:12px}
.cv-presets{display:flex;gap:8px;flex-wrap:wrap}
.cv-deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:10px}
.cv-deck-option{position:relative;border:2px solid transparent;border-radius:9px;padding:7px;background:#ffffff10;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;text-align:center}
.cv-deck-option:has(input:checked){background:#ffffff22;border-color:#d8be70}
.cv-deck-option input{width:20px;height:20px;accent-color:#ead080}
.cv-deck-option img{width:100%;aspect-ratio:360/523;object-fit:contain;max-height:96px;border-radius:4px}
.cv-status{padding:16px 20px;border:1px solid #eed28a70;border-radius:14px;background:#073322;color:#fff1c4;line-height:1.6;margin:0 0 16px}
.cv-hud{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px;font-size:13px}
.cv-turn{border-radius:30px;background:#f5efdf;color:#174b36;padding:8px 14px;font-weight:800}
.cv-counts{display:flex;gap:16px;align-items:center;flex-wrap:wrap;color:#e0e9dc}
.cv-hand-panel{background:#ffffff0c;border:1px solid #ffffff25;border-radius:20px;padding:16px;margin-bottom:24px}
.cv-hand-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}
.cv-hand-title h2{font:700 22px Georgia,serif;margin:0}.cv-hand-title span{color:#dbe6d4;font-size:12px}
.cv-hand{display:flex;gap:10px;flex-wrap:wrap;padding:6px 2px 10px}
.cv-app .cv-card{padding:0;border:0;border-radius:6px;background:#fff;flex-shrink:0;min-height:0;width:68px;height:99px;position:relative;box-shadow:0 4px 9px #0004}
.cv-app .cv-card img{width:100%;height:100%;object-fit:contain;display:block;border-radius:inherit;pointer-events:none}
.cv-app .cv-card:disabled{opacity:1}
.cv-hand .cv-card[aria-pressed=true]{outline:3px solid #f5cb69;outline-offset:3px;transform:translateY(-5px)}
.cv-hand .cv-card:disabled{opacity:.65}
.cv-card-help{color:#f8df9c;font-size:14px;line-height:1.6;min-height:24px;margin:4px 0 12px}
.cv-actions{display:flex;gap:10px;flex-wrap:wrap}.cv-actions [aria-pressed=true]{background:#ead080;color:#173e2b}
.cv-routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cv-route{min-width:0;border:1px solid #ffffff30;border-radius:20px;overflow:hidden;background:#052d2040}
.cv-route-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;background:#052c21}
.cv-route-heading h2{font:700 20px Georgia,serif;margin:0}.cv-route-heading span{font-size:11px;color:#e7d399;text-align:right}
.cv-lane{padding:16px;min-width:0}.cv-lane+.cv-lane{border-top:1px dashed #ffffff40;background:#ffffff06}
.cv-lane-header{display:flex;gap:8px;justify-content:space-between;align-items:center}.cv-lane-header h3{margin:0;font:700 14px system-ui}
.cv-total{font:700 27px Georgia,serif;white-space:nowrap}.cv-total small{font:12px system-ui;color:#e0e9dc}
.cv-lane[data-state=valid] .cv-total{color:#c7eea4}.cv-lane[data-state=bust] .cv-total{color:#ffb5a2}
.cv-lane-status{font-size:11px;line-height:1.5;color:#e0e9dc;margin:8px 0 12px;min-height:33px}
.cv-stack{display:flex;gap:8px;overflow:auto;min-height:137px;padding:5px 4px 8px;align-items:flex-start;scrollbar-width:thin}
.cv-entry{flex:0 0 62px;text-align:center}.cv-entry .cv-card{width:60px;height:87px}
.cv-entry .cv-card:not(:disabled){outline:2px solid #f5cb69;outline-offset:2px}
.cv-entry p{font-size:11px;margin:5px 0 0;color:#fae1a3;line-height:1.4}
.cv-empty{font-size:12px;align-self:center;color:#c9dcc6;text-align:center;width:100%;padding:20px 0}
.cv-app .cv-lane-action{width:100%;font-size:12px;padding:8px;min-height:44px}
.cv-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;color:#dae5d1;font-size:12px;margin:20px 0}
.cv-history{margin-top:20px;padding:16px 20px;border:1px solid #ffffff25;border-radius:16px}.cv-history ol{padding-left:24px;font-size:13px;line-height:1.8;color:#dce8d4}
.cv-result{background:#f5efdf;color:#173e2b;border-radius:20px;padding:24px;margin-bottom:20px;text-align:center}.cv-result h2{font:700 36px Georgia,serif;margin:0 0 10px}.cv-result p{line-height:1.6}
@media(max-width:720px){.cv-intro{grid-template-columns:1fr}.cv-preview{display:none}.cv-setup-actions{align-items:stretch;flex-direction:column;gap:16px}.cv-routes{grid-template-columns:1fr}.cv-route{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.cv-route-heading{grid-column:1/-1}.cv-lane{padding:12px}.cv-lane+.cv-lane{border-top:0;border-left:1px dashed #ffffff40}.cv-heading{align-items:flex-start}.cv-heading p:not(.cv-kicker){font-size:13px}.cv-hand{gap:9px}.cv-app .cv-hand .cv-card{width:57px;height:83px}.cv-hand-title{align-items:flex-start}.cv-hand-title span{max-width:120px;text-align:right}.cv-setup{padding:20px}.cv-counts{gap:10px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.cv-app *{scroll-behavior:auto;transition:none}}
