.cfc-ee { --cfc-bg:#0b1423; --cfc-panel:#142236; --cfc-line:#30435a; --cfc-text:#edf3fb; --cfc-muted:#b5c5d8; --cfc-accent:#6fe6c4; color:var(--cfc-text); background:var(--cfc-bg); border-radius:20px; padding:32px; margin:28px auto; max-width:1080px; font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; box-shadow:0 18px 55px #09132324; box-sizing:border-box; color-scheme:dark; }
.cfc-ee *, .cfc-ee *::before, .cfc-ee *::after { box-sizing:border-box; }
.cfc-ee h2, .cfc-ee h3 { color:var(--cfc-text); font-family:inherit; letter-spacing:-.035em; line-height:1.2; margin:0 0 18px; font-weight:750; }
.cfc-ee h2 { font-size:clamp(27px,4vw,44px); }.cfc-ee h3 { font-size:clamp(23px,3vw,31px); }
.cfc-ee p { margin:0 0 18px; }.cfc-ee .cfc-ee-lead { font-size:18px; line-height:1.75; max-width:800px; white-space:pre-line; }
.cfc-ee .cfc-ee-eyebrow { color:var(--cfc-accent); font-size:12px; font-weight:750; letter-spacing:.14em; text-transform:uppercase; margin:0 0 12px; }
.cfc-ee .cfc-ee-welcome { padding:14px 8px; }
.cfc-ee .cfc-ee-tags { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0; }
.cfc-ee .cfc-ee-tags span { padding:6px 12px; border:1px solid var(--cfc-line); border-radius:999px; color:var(--cfc-muted); font-size:13px; }
.cfc-ee .cfc-ee-rules, .cfc-ee .cfc-ee-tasks { margin:24px 0; padding-left:26px; }
.cfc-ee li { padding-left:5px; margin:8px 0; }
.cfc-ee input { display:block; background:#0a1728; color:var(--cfc-text); border:1px solid #536c87; border-radius:10px; padding:13px 15px; width:100%; max-width:430px; font:inherit; margin:8px 0 16px; min-height:48px; }
.cfc-ee input::placeholder { color:#9eafc3; }.cfc-ee label { display:block; font-weight:650; color:var(--cfc-text); }
.cfc-ee button, .cfc-ee .cfc-ee-download { font:inherit; font-size:15px; font-weight:650; cursor:pointer; display:inline-block; border:1px solid transparent; border-radius:10px; padding:12px 18px; line-height:1.45; white-space:normal; text-decoration:none; transition:background .15s ease; min-height:46px; }
.cfc-ee .cfc-ee-primary, .cfc-ee .cfc-ee-download { background:var(--cfc-accent); color:#092c24; }
.cfc-ee .cfc-ee-primary:hover, .cfc-ee .cfc-ee-download:hover { background:#a1f2dc; color:#092c24; }
.cfc-ee .cfc-ee-secondary { border-color:#516780; background:transparent; color:var(--cfc-text); }.cfc-ee .cfc-ee-secondary:hover { background:#26394f; }
.cfc-ee button:disabled { opacity:.55; cursor:not-allowed; }
.cfc-ee :focus-visible { outline:3px solid #bafae8; outline-offset:4px; }
.cfc-ee .cfc-ee-privacy, .cfc-ee .cfc-ee-small { color:var(--cfc-muted); font-size:13px; margin-top:12px; line-height:1.65; }
.cfc-ee .cfc-ee-header { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cfc-ee .cfc-ee-clock { flex-shrink:0; padding:12px 16px; border:1px solid var(--cfc-line); border-radius:12px; color:var(--cfc-accent); font:700 23px/1.3 ui-monospace,monospace; }
.cfc-ee .cfc-ee-clock.is-low { color:#ffbe9b; border-color:#99654d; }
.cfc-ee .cfc-ee-progress { height:7px; background:#293b50; border-radius:99px; overflow:hidden; margin:16px 0 6px; }.cfc-ee .cfc-ee-progress>div { height:100%; background:var(--cfc-accent); transition:width .25s ease; }
.cfc-ee .cfc-ee-progress-text { color:var(--cfc-muted); font-size:12px; }
.cfc-ee .cfc-ee-nav { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0; }
.cfc-ee .cfc-ee-nav button { background:#1a2a40; border-color:var(--cfc-line); color:var(--cfc-text); font-size:13px; padding:10px 12px; }
.cfc-ee .cfc-ee-nav button[aria-current] { border-color:var(--cfc-accent); color:var(--cfc-accent); background:#17332f; }
.cfc-ee .cfc-ee-mission, .cfc-ee .cfc-ee-victory { background:var(--cfc-panel); border:1px solid var(--cfc-line); border-radius:16px; padding:28px; }
.cfc-ee .cfc-ee-story { color:var(--cfc-muted); white-space:pre-line; }
.cfc-ee .cfc-ee-tasks { line-height:1.75; }.cfc-ee .cfc-ee-hints { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.cfc-ee .cfc-ee-hint { width:100%; background:#1e3249; border-left:3px solid var(--cfc-accent); border-radius:5px; padding:14px 18px; }.cfc-ee .cfc-ee-hint p { margin:4px 0 0; white-space:pre-line; }
.cfc-ee .cfc-ee-code-form { margin-top:24px; border-top:1px solid var(--cfc-line); padding-top:24px; }
.cfc-ee .cfc-ee-feedback { color:#ffc1a9; margin:14px 0; min-height:0; }.cfc-ee .cfc-ee-feedback.is-success, .cfc-ee .cfc-ee-completed { color:var(--cfc-accent); }
.cfc-ee .cfc-ee-notice:not(:empty) { background:#3b2b22; border:1px solid #815d47; color:#ffdebd; padding:12px 16px; border-radius:8px; font-size:14px; margin:16px 0; }
.cfc-ee .cfc-ee-notebook { padding:22px 0 0; }.cfc-ee .cfc-ee-notebook h3 { font-size:18px; }.cfc-ee .cfc-ee-notebook ul { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:10px; }.cfc-ee .cfc-ee-notebook li { border:1px solid var(--cfc-line); padding:8px 14px; border-radius:8px; font:14px ui-monospace,monospace; }
.cfc-ee .cfc-ee-footer { display:flex; flex-wrap:wrap; gap:8px; border-top:1px solid var(--cfc-line); margin-top:22px; padding-top:12px; }.cfc-ee .cfc-ee-text-button { background:transparent; color:var(--cfc-muted); padding:9px 6px; text-decoration:underline; font-size:13px; }
.cfc-ee .cfc-ee-check { border:2px solid var(--cfc-accent); color:var(--cfc-accent); width:60px; height:60px; display:grid; place-items:center; font-size:35px; border-radius:50%; margin-bottom:18px; }
.cfc-ee .cfc-ee-final-files a { color:var(--cfc-accent); text-decoration:underline; }
@media(max-width:640px) { .cfc-ee { padding:18px; border-radius:12px; font-size:15px; }.cfc-ee .cfc-ee-header { align-items:flex-start; flex-direction:column; gap:2px; }.cfc-ee .cfc-ee-clock { font-size:20px; }.cfc-ee .cfc-ee-mission,.cfc-ee .cfc-ee-victory { padding:20px 16px; }.cfc-ee .cfc-ee-nav { display:grid; width:100%; }.cfc-ee input { max-width:none; }.cfc-ee .cfc-ee-code-form .cfc-ee-primary { width:100%; } }
@media(prefers-reduced-motion:reduce) { .cfc-ee * { transition:none !important; } }
.cfc-ee .cfc-ee-upload { margin:24px 0; padding:20px; background:#0f1c2d; border:1px solid #3d536b; border-radius:12px; }
.cfc-ee .cfc-ee-upload h4 { color:var(--cfc-text); font:700 18px/1.4 system-ui,sans-serif; margin:0 0 12px; }
.cfc-ee .cfc-ee-upload-status { font-size:14px; overflow-wrap:anywhere; color:var(--cfc-muted); }
.cfc-ee .cfc-ee-upload-status.is-success { color:var(--cfc-accent); }
.cfc-ee .cfc-ee-upload input[type=file] { max-width:100%; font-size:14px; padding:10px; }
