.kc-modal {
border: 0; padding: 0; background: transparent;
max-width: min(440px, calc(100vw - 32px)); width: 100%;
max-height: calc(100dvh - 48px);
color: var(--kc-ink);
overflow-y: auto;
}
.kc-modal--wide { max-width: min(720px, calc(100vw - 32px)); }
.kc-modal::backdrop { background: rgba(8, 20, 26, .55); }
.kc-modal__box {
position: relative; display: block;
padding: var(--kc-8) var(--kc-7) var(--kc-7);
background: var(--kc-bg); border: 1px solid var(--kc-border);
border-radius: var(--kc-r-lg); box-shadow: var(--kc-shadow-lg);
}
@media (max-width: 480px) { .kc-modal__box { padding: var(--kc-7) var(--kc-5) var(--kc-6); } }
.kc-modal__x { position: absolute; top: var(--kc-2); right: var(--kc-2); color: var(--kc-ink-3); }
.kc-modal__x:hover { background: var(--kc-bg-muted); color: var(--kc-ink); }
.kc-modal__x svg { width: 18px; height: 18px; }
.kc-note {
display: block;
padding: var(--kc-4); border-radius: var(--kc-r-md);
border: 1px solid var(--kc-border); background: var(--kc-bg-muted);
font-size: 15px; line-height: 1.6; color: var(--kc-ink-2);
}
.kc-note > * + * { margin-top: var(--kc-2); }
.kc-note--bad { background: var(--kc-danger-bg); border-color: var(--kc-danger); }
.kc-note--ok  { background: var(--kc-success-bg); border-color: var(--kc-success); }
.kc-code { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
font-size: 13px; line-height: 1.65; white-space: pre; overflow-wrap: normal;
overflow-x: auto; tab-size: 2; }
.kc-timing { border: 0; margin: 0; padding: 0; }
.kc-timing__modes { display: flex; flex-wrap: wrap; gap: var(--kc-2); margin-top: var(--kc-3); }
.kc-choice {
display: inline-flex; align-items: center; gap: var(--kc-2);
min-height: 44px; padding: var(--kc-2) var(--kc-4);
border: 1px solid var(--kc-border); border-radius: var(--kc-r-pill);
background: var(--kc-bg); cursor: pointer;
font-size: 14px; font-weight: 600; color: var(--kc-ink-2);
transition: background var(--kc-fast) var(--kc-ease-out), border-color var(--kc-fast);
}
.kc-choice:hover { background: var(--kc-bg-muted); color: var(--kc-ink); }
.kc-choice input { accent-color: var(--kc-accent); }
.kc-choice:has(input:checked) { border-color: var(--kc-accent); background: var(--kc-accent-soft);
color: var(--kc-accent-ink); }
.kc-choice:has(input:checked):hover { background: var(--kc-accent-soft);
color: var(--kc-accent-ink); }
.kc-timing__panel { border-left: 2px solid var(--kc-border); margin-top: var(--kc-3);
padding-left: var(--kc-4); }
.kc-timing__say { display: block; margin: 0; font-size: 15px; line-height: 2.1;
color: var(--kc-ink-2); }
.kc-input--num { width: 4.5rem; min-height: 40px; padding: var(--kc-1) var(--kc-2);
text-align: center; display: inline-block; vertical-align: baseline; }
.kc-steplist { list-style: none; margin: var(--kc-4) 0 0; padding: 0 0 0 var(--kc-6);
display: grid; gap: 0; border-left: 2px solid var(--kc-border); }
.kc-steplist__item { position: relative; padding: var(--kc-5) 0; }
.kc-steplist__item p { margin: 0; }
.kc-steplist__item p + p { margin-top: var(--kc-2); }
.kc-steplist__item::before { content: ""; position: absolute; top: var(--kc-6);
left: calc(-1 * (var(--kc-6) + 5px)); width: 10px; height: 10px;
border-radius: var(--kc-r-pill); background: var(--kc-accent); }
.kc-flow__start { padding: var(--kc-3) var(--kc-4); border-radius: var(--kc-r-sm);
background: var(--kc-bg-muted); color: var(--kc-ink-2); }
.kc-setgrid { --kc-col: 260px; gap: var(--kc-5); }
@media (min-width: 900px) { .kc-setgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.kc-check { display: flex; align-items: center; gap: var(--kc-3);
min-height: 44px; cursor: pointer; font-size: 15px; color: var(--kc-ink); }
.kc-check input { width: 20px; height: 20px; flex: none; accent-color: var(--kc-accent); }
.kc-checkgrid { display: grid; gap: var(--kc-1) var(--kc-4);
grid-auto-rows: min-content;
grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.kc-narrow { max-width: 720px; margin-inline: auto; }
.kc-rule { border: 0; border-top: 1px solid var(--kc-border); margin: var(--kc-6) 0; }
.kc-ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--kc-3); }
.kc-ticks li { position: relative; padding-left: calc(26px + var(--kc-3));
font-size: 15px; line-height: 1.6; color: var(--kc-ink-2); }
.kc-ticks li::before,
ul.kcx-perks li::before { content: ""; position: absolute; left: 0;
width: 26px; height: 26px; border-radius: 50%;
background: var(--kc-accent); }
.kc-ticks li::after,
ul.kcx-perks li::after { content: ""; position: absolute; left: 9px;
width: 7.5px; height: 14px;
border: solid var(--kc-ink-invert); border-width: 0 3.5px 3.5px 0;
transform: rotate(45deg); }
.kc-ticks li::before { top: -1px; }
.kc-ticks li::after  { top: 4px; }
ul.kcx-perks li { padding-left: calc(26px + var(--kc-4)); }
ul.kcx-perks li::before { top: 11px; }
ul.kcx-perks li::after  { top: 16px; }
@media (min-width: 768px) {
.kc-ticks--split { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--kc-8); }
}
.kc-deflist { display: grid; grid-template-columns: auto 1fr;
gap: var(--kc-3) var(--kc-6); margin: 0; }
.kc-deflist dd { margin: 0; font-weight: 700; color: var(--kc-ink); }
@media (max-width: 480px) { .kc-deflist { grid-template-columns: 1fr; gap: var(--kc-1); }
.kc-deflist dd { margin-bottom: var(--kc-3); } }
.kc-memo { padding: var(--kc-5); border-radius: var(--kc-r-md);
background: var(--kc-bg-tint); border: 1px dashed var(--kc-accent); }
.kc-memo p.kc-muted, .kc-memo p.t-meta { color: var(--kc-ink-2); }
.kc-memo__code { margin: var(--kc-2) 0; font-size: 30px; font-weight: 700; line-height: 1.2;
letter-spacing: .06em; color: var(--kc-ink); }
.kc-areacol { max-width: 860px; }
.kc-areacol>.kc-card { max-width: none; }
.kc-formcol { max-width: 560px; }
.kc-input--when { min-height: 44px; min-width: 15rem; max-width: 100%;
padding: var(--kc-1) var(--kc-3); }
.kc-input--sm { min-height: 44px; width: 150px; padding: var(--kc-1) var(--kc-3);
font-size: 13px; border-radius: var(--kc-r-sm); }
.kc-table td > .kc-input--sm { width: 110px; }
.kc-break { white-space: normal; word-break: break-all; }
.kcx-keybtn { display: inline-flex; align-items: center; justify-content: center;
padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
.kc-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.kc-sr:focus, .kc-sr:focus-visible {
position: fixed; top: var(--kc-3); left: var(--kc-3); z-index: 100;
width: auto; height: auto; margin: 0; overflow: visible;
clip: auto; clip-path: none; white-space: normal;
padding: var(--kc-2) var(--kc-4); border-radius: var(--kc-r-md);
background: var(--kc-bg); color: var(--kc-ink);
border: 1px solid var(--kc-border-strong);
box-shadow: var(--kc-shadow-md);
}
.kc-muted { color: var(--kc-ink-3); }
.kc-ink2  { color: var(--kc-ink-2); }
.kc-center { text-align: center; }
.kc-mt-2 { margin-top: var(--kc-2); }  .kc-mt-4 { margin-top: var(--kc-4); }
.kc-mt-6 { margin-top: var(--kc-6); }  .kc-mt-8 { margin-top: var(--kc-8); }
.kc-mb-6 { margin-bottom: var(--kc-6); }
.kc-section { padding-block: var(--kc-11); }
@media (max-width: 767px) { .kc-section { padding-block: 56px; } }
.kc-wrap--admin.kc-section,
.kc-wrap--area.kc-section { padding-top: var(--kc-8); }
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: .01ms !important; animation-iteration-count: 1 !important;
transition-duration: .01ms !important; scroll-behavior: auto !important;
}
}
.kc-media { position: relative; display: block; border-radius: var(--kc-r-md);
overflow: hidden; background: var(--kc-bg-muted);
border: 1px solid var(--kc-border); }
.kc-media img { width: 100%; height: auto; display: block; object-fit: contain; }
.kc-thumb { width: 96px; flex: none; aspect-ratio: 16 / 9; border-radius: var(--kc-r-sm);
overflow: hidden; background: var(--kc-bg-muted);
border: 1px solid var(--kc-border); }
.kc-thumb img { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 1023px) { .kc-thumb { width: 72px; } }
.kc-proof { --kc-col: 140px; gap: var(--kc-4); }
.kc-proof__num { font-size: 30px; font-weight: 700; line-height: 1.25;
color: var(--kc-accent-ink); font-variant-numeric: tabular-nums; }
@media (max-width: 600px) { .kc-proof__num { font-size: 26px; } }
.kc-invite__num { font-size: clamp(38px, 6.4vw, 56px); font-weight: 700; line-height: 1.1;
letter-spacing: -.02em;
color: var(--kc-accent-ink); font-variant-numeric: tabular-nums; }
