* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--slate-50); color: var(--slate-700); }
.chroma-page { width: min(calc(100% - 40px), 980px); margin: 0 auto; padding: 34px 0 72px; }
.game-card,.about-card { border: 1px solid var(--slate-100); border-radius: var(--radius-lg); background: white; box-shadow: var(--shadow-sm); }
.game-card { overflow: hidden; }
.game-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; padding: 30px 32px 24px; }
.game-header h1 { margin: 5px 0 7px; color: var(--slate-900); font-size: clamp(34px,6vw,50px); line-height: 1; letter-spacing: -.045em; }
.game-header p { margin: 0; color: var(--slate-600); }
.icon-button { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--slate-200); border-radius: var(--radius-md); background: white; color: var(--slate-600); box-shadow: var(--shadow-xs); font-weight: 700; cursor: pointer; }
.run-strip { display: grid; grid-template-columns: repeat(4,1fr); border-block: 1px solid var(--slate-200); background: var(--slate-50); }
.run-strip > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 13px 18px; border-right: 1px solid var(--slate-200); }
.run-strip > div:last-child { border-right: 0; }
.run-strip span { color: var(--slate-500); font-size: 12px; font-weight: 600; }
.run-strip strong { color: var(--slate-800); font-size: 18px; }
#lives { color: #d43f56; font-size: 14px; letter-spacing: .08em; }
.arena { display: grid; grid-template-columns: 1fr 1fr; }
.colour-card { min-width: 0; margin: 0; padding: 24px 28px 28px; background: white; }
.colour-card + .colour-card { border-left: 1px solid var(--slate-200); }
.colour-card figcaption { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.colour-card figcaption span { color: var(--slate-700); font-size: 14px; font-weight: 600; }
.colour-card figcaption small { color: var(--slate-500); font-size: 11px; }
.swatch { display: block; width: 100%; height: 310px; padding: 0; border: 1px solid rgba(20,25,40,.14); border-radius: var(--radius-md); box-shadow: inset 0 1px rgba(255,255,255,.22); }
button.swatch { cursor: pointer; }
button.swatch:focus-visible { outline: 3px solid var(--cobalt-300); outline-offset: 3px; }
.lock-panel { display: grid; grid-template-columns: 1fr auto; gap: 16px 22px; align-items: center; padding: 20px 28px; border-top: 1px solid var(--slate-200); background: var(--slate-50); }
.lock-copy strong,.lock-copy span { display: block; }
.lock-copy strong { color: var(--slate-700); font-size: 14px; }
.lock-copy span { margin-top: 3px; color: var(--slate-500); font-size: 12px; }
.lock-button,.primary-button { min-height: 46px; padding: 10px 18px; border: 1px solid var(--cobalt-600); border-radius: var(--radius-md); background: var(--cobalt-600); color: white; font-weight: 700; cursor: pointer; }
.lock-button:disabled { border-color: var(--slate-200); background: var(--slate-200); color: var(--slate-500); cursor: default; }
.accuracy-track { grid-column: 1/-1; height: 5px; overflow: hidden; border-radius: 99px; background: var(--slate-200); }
#scoreFill { width: 0; height: 100%; background: var(--cobalt-500); transition: width .2s; }
.message { margin: 0; padding: 14px 28px; border-top: 1px solid var(--slate-200); color: var(--slate-500); font-size: 13px; text-align: center; }
.message.good { background: var(--success-bg); color: #176d49; }
.message.bad { background: var(--danger-bg); color: var(--danger); }
.ad-card { height: 92px; display: grid; place-items: center; margin: 20px 0; border: 1px dashed var(--slate-300); border-radius: var(--radius-md); color: var(--slate-400); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.about-card { display: grid; grid-template-columns: .8fr 1.2fr; gap: 32px; padding: 28px; }
.about-card h2 { margin: 5px 0 0; color: var(--slate-800); font-size: 23px; }
.about-card p { margin: 0; color: var(--slate-600); line-height: 1.65; }
.dialog { width: min(calc(100% - 32px),480px); padding: 28px; border: 1px solid var(--slate-200); border-radius: var(--radius-lg); background: white; color: var(--slate-600); box-shadow: var(--shadow-lg); }
.dialog::backdrop { background: rgba(20,25,40,.48); }
.dialog h2 { margin: 6px 0 18px; color: var(--slate-800); }
.dialog-close { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; border: 0; background: transparent; color: var(--slate-500); font-size: 24px; cursor: pointer; }
.steps { margin: 0 0 18px; padding: 0; list-style: none; }
.steps li { display: flex; gap: 13px; padding: 12px 0; border-top: 1px solid var(--slate-200); }
.steps li > span { color: var(--cobalt-600); font-size: 12px; font-weight: 700; }
.steps p { margin: 3px 0 0; color: var(--slate-500); font-size: 13px; }
.result-dialog { text-align: center; }
.result-mark { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto 14px; border: 1px solid var(--cobalt-100); border-radius: var(--radius-sm); background: var(--cobalt-50); color: var(--cobalt-700); font-weight: 700; }
@media(max-width:700px){.chroma-page{width:min(calc(100% - 16px),980px);padding-top:22px}.game-header{padding:22px 18px}.run-strip{grid-template-columns:1fr 1fr}.run-strip>div:nth-child(2){border-right:0}.run-strip>div:nth-child(-n+2){border-bottom:1px solid var(--slate-200)}.arena{grid-template-columns:1fr}.colour-card{padding:20px 18px}.colour-card+.colour-card{border-left:0;border-top:1px solid var(--slate-200)}.swatch{height:190px}.lock-panel{display:block;padding:18px}.lock-button{width:100%;margin-top:14px}.accuracy-track{margin-top:15px}.message{padding:13px 18px}.about-card{grid-template-columns:1fr;gap:10px;padding:22px}.dialog{padding:25px 18px}}
