/* ══════════════════════════════════════════
   NEO-BRUTALISM THEME
   粗线框 · 饱和糖果色 · 平移阴影 · 积木感
   ══════════════════════════════════════════ */

:root{
	/* Background & Surface */
	--bg:#fffdf7;--bg2:#fff8e8;--surface:#ffffff;--chrome:#fff3d0;--chrome-b:#ffe9a0;
	--border:#222;--border-hi:#000;
	/* Accent Palette — saturated candy */
	--pink:#ff6b9d;--yellow:#ffe156;--blue:#4ecdc4;--green:#a8e6cf;--orange:#ff8a5c;
	--purple:#c3a6ff;--cyan:#56c2e6;--red:#ff6b6b;--lime:#c7f464;
	/* Semantic */
	--accent:#ff6b9d;--accent-shadow:#cc5580;
	--green-solid:#2ecc71;--green-bg:#d5f5e3;
	--orange-solid:#f39c12;--orange-bg:#fef3cd;
	--red-solid:#e74c3c;--red-bg:#fadbd8;
	--purple-solid:#9b59b6;--purple-bg:#e8d5f5;
	--cyan-solid:#3498db;--cyan-bg:#d6eaf8;
	/* Text */
	--text:#1a1a2e;--text2:#444;--text3:#777;
	/* Shadow — offset, no blur */
	--shadow:4px 4px 0 var(--border);
	--shadow-lg:6px 6px 0 var(--border);
	--shadow-sm:3px 3px 0 var(--border);
	/* Border */
	--bw:3px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--bg)}
body{
	font-family:'Inter',-apple-system,BlinkMacSystemFont,'Noto Sans SC','PingFang SC','Segoe UI',sans-serif;
	background:var(--bg);color:var(--text);line-height:1.65;
	min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;
	/* subtle noise texture via repeating gradient */
	background-image:
		repeating-linear-gradient(0deg,transparent,transparent 4px,rgba(0,0,0,.015) 4px,rgba(0,0,0,.015) 5px),
		repeating-linear-gradient(90deg,transparent,transparent 4px,rgba(0,0,0,.015) 4px,rgba(0,0,0,.015) 5px);
}
.app{max-width:720px;margin:0 auto;padding:20px 16px calc(env(safe-area-inset-bottom,20px) + 12px)}
:focus-visible{outline:3px solid var(--border);outline-offset:2px;border-radius:0}
button:focus:not(:focus-visible){outline:none}

/* ── Header ── */
.hd{text-align:center;padding:32px 0 14px}
.hd h1{
	font-size:28px;font-weight:900;letter-spacing:-.5px;color:var(--text);
	display:inline-block;background:var(--yellow);padding:6px 20px;
	border:var(--bw) solid var(--border);box-shadow:var(--shadow);
	transform:rotate(-1deg);
}
.hd p{color:var(--text2);font-size:13px;margin-top:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase}

/* ── Stats ── */
.sts{display:flex;justify-content:center;gap:8px;margin:0 0 22px;flex-wrap:wrap}
.st{
	padding:5px 14px;border-radius:0;font-size:11px;font-weight:800;
	background:var(--bg2);border:2px solid var(--border);color:var(--text);
	box-shadow:2px 2px 0 var(--border);text-transform:uppercase;
}
.st-g{color:#fff;background:var(--green-solid);border-color:var(--border)}
.st-o{color:#fff;background:var(--orange-solid);border-color:var(--border)}
.st-r{color:#fff;background:var(--red-solid);border-color:var(--border)}

/* ── Unified Nav Band ── */
.nav-band{
	position:relative;margin:0 auto 10px;padding:16px 14px 14px;
	max-width:668px;
	background:var(--surface);border:var(--bw) solid var(--border);
	box-shadow:var(--shadow-lg);overflow:visible;
}
.nav-band::before,.nav-band::after{display:none}
.nav-band-top,.nav-band-main{position:relative;z-index:1}
.nav-band-top{
	display:flex;flex-direction:column;align-items:center;gap:14px;
	padding-bottom:16px;margin-bottom:14px;
	border-bottom:var(--bw) dashed var(--border);
}
.nav-band-main{
	display:flex;flex-direction:column;gap:8px;padding-bottom:4px;
}

/* ── Mode Toggle ── */
.modes{display:flex;gap:0;margin:0 auto;width:fit-content;background:var(--bg2);border:var(--bw) solid var(--border);padding:0;box-shadow:var(--shadow-sm)}
.modes button{
	padding:8px 22px;border:none;border-right:var(--bw) solid var(--border);background:transparent;
	color:var(--text);font-size:13px;cursor:pointer;transition:all .15s;font-weight:800;font-family:inherit;
	text-transform:uppercase;letter-spacing:.5px;
}
.modes button:last-child{border-right:none}
.modes button.on{background:var(--pink);color:#fff;box-shadow:inset 2px 2px 0 rgba(0,0,0,.15)}
.modes button:hover:not(.on){background:var(--yellow)}
.modes button:active{transform:translateY(1px)}

/* ── Category Tabs ── */
.cat-tabs{
	display:flex;overflow-x:auto;border-bottom:var(--bw) solid var(--border);
	margin:0;scrollbar-width:none;-ms-overflow-style:none;
	-webkit-overflow-scrolling:touch;
}
.cat-tabs::-webkit-scrollbar{display:none}
.cat-tab{
	padding:11px 20px 12px;border:none;border-bottom:4px solid transparent;
	background:0;color:var(--text2);font-size:13px;font-weight:700;
	cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0;font-family:inherit;
	text-transform:uppercase;letter-spacing:.3px;
}
.cat-tab:hover{color:var(--text);background:var(--yellow)}
.cat-tab.on{
	color:var(--text);border-bottom-color:var(--pink);
	background:var(--yellow);font-weight:900;
}

/* ── Difficulty + Toggles ── */
.ctrl-row{
	position:relative;display:flex;justify-content:center;overflow-x:auto;
	margin:0 auto;padding:0 4px 2px;width:fit-content;max-width:100%;
	scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;
}
.ctrl-row::-webkit-scrollbar{display:none}
.ctrl-row::before{
	content:'';position:absolute;left:0;right:0;bottom:0;height:var(--bw);pointer-events:none;
	background:var(--border);
}
.ctrl{
	padding:8px 14px 10px;border:none;border-bottom:4px solid transparent;border-radius:0;
	background:0;color:var(--text2);font-size:12px;font-weight:700;letter-spacing:.3px;
	cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0;font-family:inherit;
	text-transform:uppercase;
}
.ctrl:hover{color:var(--text);background:rgba(255,225,86,.4)}
.ctrl:disabled{opacity:.35;cursor:not-allowed}
.ctrl.on{color:var(--text);border-bottom-color:var(--pink);font-weight:900}
.ctrl.de.on{color:#fff;background:var(--green-solid);border-bottom-color:var(--green-solid)}
.ctrl.dm.on{color:#fff;background:var(--orange-solid);border-bottom-color:var(--orange-solid)}
.ctrl.dh.on{color:#fff;background:var(--red-solid);border-bottom-color:var(--red-solid)}
.ctrl.ctrl-search.on{color:#fff;background:var(--cyan-solid);border-bottom-color:var(--cyan-solid)}
.ctrl-hint{min-height:18px;padding:0 6px 2px;font-size:11px;color:var(--text3);text-align:center;font-weight:600}
.ctrl:disabled{
	opacity:.35;cursor:not-allowed;color:var(--text3);
	border-bottom-color:transparent!important;background:transparent!important;
}

/* ── Tags ── */
.tag-row{
	display:flex;justify-content:center;gap:8px;flex-wrap:wrap;
	padding:6px 6px 0;
}
.tag-chip{
	padding:6px 14px;border-radius:0;border:2px solid var(--border);
	background:var(--bg2);color:var(--text);font-size:11px;font-weight:800;
	cursor:pointer;transition:all .15s;font-family:inherit;
	box-shadow:2px 2px 0 var(--border);text-transform:uppercase;
}
.tag-chip:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--border);background:var(--yellow)}
.tag-chip:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--border)}
.tag-chip.on{
	color:#fff;background:var(--cyan-solid);
}

/* ── Learning Path ── */
.path-shell{
	margin-top:10px;padding:12px 8px 0;border-top:var(--bw) dashed var(--border);
}
.path-head{
	display:flex;justify-content:space-between;align-items:center;gap:12px;
	margin-bottom:10px;
}
.path-label{
	font-size:11px;letter-spacing:2.2px;text-transform:uppercase;color:var(--text);font-weight:900;
}
.path-reset{
	padding:5px 12px;border-radius:0;border:2px solid var(--border);
	background:var(--yellow);color:var(--text);font-size:11px;font-weight:800;
	cursor:pointer;transition:all .15s;font-family:inherit;
	box-shadow:2px 2px 0 var(--border);text-transform:uppercase;
}
.path-reset:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--border)}
.path-reset:active{transform:translate(2px,2px);box-shadow:0 0 0 var(--border)}
.path-reset:disabled{opacity:.4;cursor:not-allowed;transform:none}
.path-row{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;
}
.path-chip{
	padding:14px 14px;border-radius:0;border:var(--bw) solid var(--border);
	background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:all .15s;
	display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-family:inherit;
	box-shadow:var(--shadow-sm);
}
.path-chip:hover{
	transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--border);background:var(--yellow);
}
.path-chip:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--border)}
.path-chip.on{
	background:var(--pink);color:#fff;
	box-shadow:var(--shadow);
}
.path-chip-title{
	font-size:13px;font-weight:900;letter-spacing:.1px;color:inherit;
}
.path-chip-meta{
	font-size:11px;line-height:1.7;color:var(--text2);
}
.path-chip.on .path-chip-title{color:#fff}
.path-chip.on .path-chip-meta{color:rgba(255,255,255,.85)}
.path-hint{
	min-height:18px;padding:10px 2px 0;font-size:11px;color:var(--text3);line-height:1.7;font-weight:600;
}

/* ── Review Shell ── */
.review-shell{
	margin-top:8px;padding:12px 8px 0;border-top:var(--bw) dashed var(--border);
}
.review-head{
	display:flex;justify-content:space-between;align-items:center;gap:12px;
	margin-bottom:10px;
}
.review-label{
	font-size:11px;letter-spacing:2.2px;text-transform:uppercase;color:var(--text);font-weight:900;
}
.review-row{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:8px;
}
.review-chip{
	padding:12px 12px;border-radius:0;border:var(--bw) solid var(--border);
	background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:all .15s;
	display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-family:inherit;
	box-shadow:var(--shadow-sm);
}
.review-chip:hover{
	transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--border);background:var(--lime);
}
.review-chip:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--border)}
.review-chip:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:var(--shadow-sm)}
.review-chip.on{
	background:var(--blue);color:#fff;
	box-shadow:var(--shadow);
}
.review-chip-title{font-size:12px;font-weight:900;line-height:1.4;color:inherit}
.review-chip-count{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--text2)}
.review-chip.on .review-chip-title{color:#fff}
.review-chip.on .review-chip-count{color:rgba(255,255,255,.8)}
.review-hint{
	min-height:18px;padding:10px 2px 0;font-size:11px;color:var(--text3);line-height:1.7;font-weight:600;
}

/* ===== FLASHCARD ===== */
.fc-v{display:block}.ls-v,.mk-v{display:none}
.mode-ls .fc-v,.mode-ls .mk-v{display:none}.mode-ls .ls-v{display:block}
.mode-mk .fc-v,.mode-mk .ls-v{display:none}.mode-mk .mk-v{display:block}

.fc-v{position:relative}
.stage{
	position:relative;perspective:1200px;display:flex;justify-content:center;
	padding:0 0 20px;margin-top:4px;
}
.stage::before{display:none}
.fc{width:100%;max-width:668px;height:392px;position:relative}
.fc-in{width:100%;height:100%;position:relative;transition:transform .4s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d;-webkit-transform-style:preserve-3d}
.fc.flip .fc-in{transform:rotateY(180deg)}
.fc-f,.fc-b{
	position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;
	border-radius:0;overflow:hidden;
	background:var(--surface);
	border:var(--bw) solid var(--border);box-shadow:var(--shadow-lg);
	display:flex;flex-direction:column;
}
.fc-f{cursor:pointer;pointer-events:auto}.fc.flip .fc-f{pointer-events:none}
.fc-b{transform:rotateY(180deg);pointer-events:none}.fc.flip .fc-b{pointer-events:auto}

/* Chrome bar — brutalist */
.chrome{
	display:grid;grid-template-columns:minmax(88px,auto) 1fr minmax(88px,auto);align-items:center;gap:12px;padding:12px 16px;
	background:var(--yellow);
	border-bottom:var(--bw) solid var(--border);flex-shrink:0;
}
.chrome-side{display:flex;justify-content:flex-start}
.chrome-actions{display:flex;justify-content:flex-end}
.chrome-pill{
	display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;border-radius:0;
	background:var(--surface);border:2px solid var(--border);color:var(--text);
	font-size:10px;font-weight:900;letter-spacing:1.8px;text-transform:uppercase;
	box-shadow:2px 2px 0 var(--border);
}
.chrome-pill-alt{
	background:var(--purple);border-color:var(--border);color:#fff;
}
.chrome-t{flex:1;text-align:center;font-size:12px;color:var(--text);font-weight:700;letter-spacing:.3px}
.chrome-btn{
	padding:5px 14px;border-radius:0;border:2px solid var(--border);
	background:var(--surface);color:var(--text);font-size:11px;cursor:pointer;
	transition:all .15s;font-weight:800;font-family:inherit;
	box-shadow:2px 2px 0 var(--border);
}
.chrome-btn:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--border);background:var(--lime)}
.chrome-btn:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--border)}

.fc-body{
	flex:1;display:flex;flex-direction:column;align-items:center;
	text-align:center;padding:30px 30px 26px;position:relative;overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.fc-body::-webkit-scrollbar{width:4px}.fc-body::-webkit-scrollbar-track{background:0}.fc-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:0}
.fc-body>.bgs{margin-top:auto}.fc-body>.qh{margin-bottom:auto}
.fc-body::before{
	content:'Q';position:absolute;bottom:-24px;right:-8px;font-size:180px;font-weight:900;
	line-height:1;color:rgba(0,0,0,.04);pointer-events:none;font-family:'Inter',sans-serif;
}
.bgs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap;justify-content:center}
.bg{padding:4px 12px;border-radius:0;font-size:10px;font-weight:900;letter-spacing:.3px;border:2px solid var(--border);box-shadow:2px 2px 0 var(--border)}
.bg-c{background:var(--yellow);color:var(--text)}
.bg-e{background:var(--green);color:var(--text)}
.bg-m{background:var(--orange);color:var(--text)}
.bg-h{background:var(--red);color:#fff}
.bg-p{background:var(--purple);color:var(--text)}
.bg-s{background:var(--cyan);color:var(--text)}
.qt{font-size:18px;font-weight:800;line-height:1.65;max-width:520px;color:var(--text)}
.qh{margin-top:24px;font-size:10px;color:var(--text3);letter-spacing:2.5px;text-transform:uppercase;font-weight:700}

/* Answer panel */
.fc-ans{flex:1;overflow-y:auto;padding:20px 24px 24px;-webkit-overflow-scrolling:touch;background:var(--bg2)}
.fc-ans::-webkit-scrollbar{width:4px}.fc-ans::-webkit-scrollbar-track{background:0}.fc-ans::-webkit-scrollbar-thumb{background:var(--border);border-radius:0}
.fc-ans h4{font-size:13px;color:var(--text);margin:16px 0 6px;font-weight:900;text-transform:uppercase;border-bottom:2px solid var(--border);padding-bottom:4px}.fc-ans h4:first-child{margin-top:0}
.fc-ans p,.fc-ans li{font-size:13px;color:var(--text2);line-height:1.8}
.fc-ans ul,.fc-ans ol{padding-left:18px}.fc-ans li{margin-bottom:3px}
.fc-ans code{background:var(--yellow);color:var(--text);padding:2px 6px;border-radius:0;font-size:12px;font-family:'JetBrains Mono',monospace;border:1px solid var(--border)}
.fc-ans pre{background:var(--surface);border:2px solid var(--border);border-radius:0;padding:12px;margin:8px 0;overflow-x:auto;font-size:12px;line-height:1.6;box-shadow:var(--shadow-sm)}
.fc-ans pre code{background:0;padding:0;color:var(--text2);font-family:'JetBrains Mono',monospace;border:none}
.fc-ans .key-point{background:var(--yellow);border-left:4px solid var(--border);padding:10px 14px;border-radius:0;margin:10px 0;font-size:12px;color:var(--text);border:2px solid var(--border);box-shadow:var(--shadow-sm)}
.fc-ans .project-link{background:var(--purple);border-left:4px solid var(--border);padding:10px 14px;border-radius:0;margin:10px 0;font-size:12px;color:#fff;border:2px solid var(--border);box-shadow:var(--shadow-sm)}
.fc-ans table{width:100%;font-size:12px;color:var(--text);border-collapse:collapse;border:2px solid var(--border)}.fc-ans th{text-align:left;padding:6px;background:var(--yellow);font-weight:900;border:1px solid var(--border)}.fc-ans td{padding:6px;border:1px solid var(--border)}.fc-ans tr:nth-child(even){background:var(--bg2)}

/* Nav buttons */
.nav{display:flex;align-items:center;justify-content:center;gap:24px;margin:0 0 16px}
.nav-b{
	width:48px;height:48px;border-radius:0;border:var(--bw) solid var(--border);
	background:var(--surface);color:var(--text);font-size:20px;cursor:pointer;
	transition:all .15s;display:flex;align-items:center;justify-content:center;font-family:inherit;
	box-shadow:var(--shadow-sm);font-weight:900;
}
.nav-b:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--border);background:var(--yellow)}
.nav-b:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--border)}
.nav-b:disabled{opacity:.2;cursor:not-allowed;transform:none;box-shadow:var(--shadow-sm)}
.nav-c{font-size:14px;color:var(--text);font-weight:900;min-width:64px;text-align:center;font-variant-numeric:tabular-nums}

/* Rating buttons */
.rtg{display:flex;justify-content:center;gap:10px;margin-bottom:14px}
.rt{
	flex:1;max-width:130px;min-height:48px;padding:10px 0;border-radius:0;font-size:13px;
	cursor:pointer;transition:all .15s;font-weight:900;display:flex;align-items:center;
	justify-content:center;gap:4px;font-family:inherit;text-transform:uppercase;
	border:var(--bw) solid var(--border);box-shadow:var(--shadow-sm);
}
.rt:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--border)}
.rt:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--border)}
.rt-f{color:#fff;background:var(--red)}
.rt-z{color:var(--text);background:var(--orange)}
.rt-p{color:#fff;background:var(--green-solid)}
.fc-hint{min-height:18px;margin:-2px 0 10px;font-size:11px;color:var(--text3);text-align:center;font-weight:600}
.keys{text-align:center;font-size:10px;color:var(--text3);opacity:.6;font-weight:700}
.keys kbd{
	background:var(--surface);border:2px solid var(--border);border-radius:0;
	padding:1px 6px;font-family:inherit;font-size:9px;font-weight:900;
	box-shadow:2px 2px 0 var(--border);
}

/* Progress bar */
.prog{margin:10px auto 0;max-width:668px;padding:0 4px}.prog-h{display:flex;justify-content:space-between;margin-bottom:6px}
.prog-t{font-size:11px;color:var(--text2);font-weight:800}
.prog-bar{height:8px;background:var(--bg2);border:2px solid var(--border);overflow:hidden}
.prog-fill{height:100%;transition:width .5s ease;width:0%;background:repeating-linear-gradient(45deg,var(--pink),var(--pink) 6px,var(--yellow) 6px,var(--yellow) 12px)}

/* ===== LIST VIEW ===== */
.ls-shell{
	position:relative;max-width:668px;margin:0 auto 18px;padding:18px 18px 16px;border-radius:0;
	background:var(--surface);
	border:var(--bw) solid var(--border);
	box-shadow:var(--shadow-lg);
}
.ls-head{
	display:flex;justify-content:space-between;align-items:flex-end;gap:16px;
	margin-bottom:14px;padding-bottom:12px;border-bottom:var(--bw) solid var(--border);
}
.ls-copy{display:flex;flex-direction:column;gap:4px}
.ls-kicker{font-size:10px;letter-spacing:2.2px;text-transform:uppercase;color:var(--text2);font-weight:900}
.ls-title{font-size:20px;font-weight:900;letter-spacing:-.2px;color:var(--text)}
.ls-bar{display:flex;gap:8px;flex-wrap:wrap}
.ls-s{
	flex:1;min-width:180px;padding:11px 14px;background:var(--bg2);
	border:2px solid var(--border);border-radius:0;color:var(--text);font-size:13px;
	outline:none;transition:all .15s;font-family:inherit;font-weight:600;
	box-shadow:inset 2px 2px 0 rgba(0,0,0,.06);
}
.ls-s:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(255,107,157,.2)}.ls-s::placeholder{color:var(--text3)}
.ls-b{
	padding:8px 14px;border-radius:0;border:2px solid var(--border);
	background:var(--bg2);color:var(--text);font-size:11px;cursor:pointer;
	transition:all .15s;font-family:inherit;font-weight:800;text-transform:uppercase;
	box-shadow:2px 2px 0 var(--border);
}
.ls-b:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--border);background:var(--yellow)}
.ls-b:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--border)}
.ls-b:disabled{opacity:.45;cursor:not-allowed;transform:none}
.ls-hint{min-height:18px;margin-top:10px;font-size:11px;color:var(--text3);font-weight:600}
.ls-meta{font-size:12px;color:var(--text2);text-align:right;font-weight:800}
#lsC{max-width:668px;margin:0 auto}
.csec{margin-bottom:28px}
.chdr{display:flex;align-items:center;gap:10px;margin-bottom:12px;cursor:pointer;user-select:none}
.cico{
	width:36px;height:36px;border-radius:0;display:flex;align-items:center;justify-content:center;
	font-size:18px;flex-shrink:0;border:2px solid var(--border);box-shadow:2px 2px 0 var(--border);
	background:var(--yellow);
}
.cnam{font-size:16px;font-weight:900;flex:1}.ccnt{font-size:11px;color:var(--text);background:var(--lime);padding:3px 12px;border:2px solid var(--border);font-weight:900;box-shadow:2px 2px 0 var(--border)}
.carr{color:var(--text);font-size:11px;transition:transform .3s;font-weight:900}.carr.shut{transform:rotate(-90deg)}
.ql{display:flex;flex-direction:column;gap:6px}
.qc{
	background:var(--surface);border:2px solid var(--border);border-radius:0;
	overflow:hidden;transition:all .15s;box-shadow:var(--shadow-sm);
}
.qc:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--border)}
.qc.done{opacity:.4}
.qr{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;user-select:none}
.qn{font-size:11px;color:var(--text3);font-weight:900;min-width:16px;font-variant-numeric:tabular-nums}
.qtx{flex:1;font-size:13px;font-weight:700}
.qts{display:flex;gap:5px;align-items:center;flex-shrink:0}
.qtg{font-size:10px;padding:3px 10px;border-radius:0;font-weight:900;border:2px solid var(--border);box-shadow:1px 1px 0 var(--border)}
.te{background:var(--green);color:var(--text)}.tm{background:var(--orange);color:var(--text)}.th{background:var(--red);color:#fff}
.tp{background:var(--purple);color:var(--text)}.ts{background:var(--cyan);color:var(--text)}
.qck{
	width:22px;height:22px;border-radius:0;border:var(--bw) solid var(--border);
	display:flex;align-items:center;justify-content:center;cursor:pointer;
	transition:all .15s;flex-shrink:0;font-size:12px;color:transparent;
	background:var(--surface);box-shadow:2px 2px 0 var(--border);
}
.qck:hover{border-color:var(--green-solid);background:var(--green-bg)}.qck.ck{border-color:var(--border);background:var(--green-solid);color:#fff;box-shadow:inset 2px 2px 0 rgba(0,0,0,.15)}
.qa{display:none;padding:0 16px 16px;border-top:2px solid var(--border);background:var(--bg2)}.qa.open{display:block;padding-top:14px}
.qa h4{font-size:13px;color:var(--text);margin:14px 0 6px;font-weight:900;text-transform:uppercase;border-bottom:2px solid var(--border);padding-bottom:3px}.qa h4:first-child{margin-top:0}
.qa p,.qa li{font-size:13px;color:var(--text2);line-height:1.8}.qa ul{padding-left:18px}.qa li{margin-bottom:3px}
.qa code{background:var(--yellow);color:var(--text);padding:2px 6px;border-radius:0;font-size:12px;font-family:'JetBrains Mono',monospace;border:1px solid var(--border)}
.qa pre{background:var(--surface);border:2px solid var(--border);border-radius:0;padding:12px;margin:8px 0;overflow-x:auto;font-size:12px;line-height:1.6;box-shadow:var(--shadow-sm)}.qa pre code{background:0;padding:0;color:var(--text2);border:none}
.qa .key-point{background:var(--yellow);border-left:4px solid var(--border);padding:10px 14px;border-radius:0;margin:8px 0;font-size:12px;color:var(--text);border:2px solid var(--border)}
.qa .project-link{background:var(--purple);border-left:4px solid var(--border);padding:10px 14px;border-radius:0;margin:8px 0;font-size:12px;color:#fff;border:2px solid var(--border)}
.empty-state{
	padding:18px 16px;border:var(--bw) dashed var(--border);border-radius:0;
	background:var(--bg2);color:var(--text2);font-size:13px;text-align:center;font-weight:700;
}

/* ===== MOCK INTERVIEW ===== */
.mk-shell{
	position:relative;max-width:668px;margin:0 auto 18px;padding:20px 18px 18px;border-radius:0;
	background:var(--surface);
	border:var(--bw) solid var(--border);
	box-shadow:var(--shadow-lg);
}
.mk-head{
	display:flex;justify-content:space-between;align-items:flex-end;gap:16px;
	margin-bottom:14px;padding-bottom:14px;border-bottom:var(--bw) solid var(--border);
}
.mk-copy{display:flex;flex-direction:column;gap:5px}
.mk-kicker{font-size:10px;letter-spacing:2.2px;text-transform:uppercase;color:var(--text2);font-weight:900}
.mk-title{font-size:22px;font-weight:900;letter-spacing:-.25px;color:var(--text)}
.mk-sub{font-size:13px;color:var(--text2);max-width:420px;font-weight:600}
.mk-meta{font-size:12px;color:var(--text2);text-align:right;font-weight:800}
.mk-controls{display:grid;gap:14px;margin-bottom:10px}
.mk-group{display:flex;flex-direction:column;gap:8px}
.mk-label{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text);font-weight:900}
.mk-options{display:flex;gap:8px;flex-wrap:wrap}
.mk-opt{
	padding:8px 16px;border-radius:0;border:2px solid var(--border);
	background:var(--bg2);color:var(--text);font-size:12px;font-weight:800;
	cursor:pointer;transition:all .15s;font-family:inherit;
	box-shadow:2px 2px 0 var(--border);text-transform:uppercase;
}
.mk-opt:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--border);background:var(--yellow)}
.mk-opt:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--border)}
.mk-opt.on{background:var(--pink);color:#fff}
.mk-toolbar{display:flex;gap:8px;flex-wrap:wrap}
.mk-btn{
	padding:10px 18px;border-radius:0;border:var(--bw) solid var(--border);
	background:var(--yellow);
	color:var(--text);font-size:13px;font-weight:900;cursor:pointer;
	transition:all .15s;font-family:inherit;text-transform:uppercase;
	box-shadow:var(--shadow-sm);
}
.mk-btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--border);background:var(--lime)}
.mk-btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--border)}
.mk-btn:disabled{opacity:.42;cursor:not-allowed;box-shadow:var(--shadow-sm);transform:none}
.mk-btn-ghost{
	background:var(--bg2);color:var(--text);
}
.mk-btn-ghost:hover{background:var(--yellow)}
.mk-hint{margin-bottom:16px;font-size:12px;color:var(--text3);line-height:1.7;font-weight:600}
.mk-stage{display:flex;flex-direction:column;gap:14px}
.mk-empty,.mk-card,.mk-summary{
	border-radius:0;border:var(--bw) solid var(--border);
	background:var(--surface);
	box-shadow:var(--shadow);
}
.mk-empty{padding:24px 20px;text-align:center}
.mk-empty h3{font-size:18px;font-weight:900;color:var(--text);margin-bottom:8px}
.mk-empty p{font-size:13px;color:var(--text2);max-width:520px;margin:0 auto;font-weight:600}
.mk-card{padding:18px}
.mk-status{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.mk-chip{
	display:inline-flex;align-items:center;justify-content:center;padding:5px 14px;border-radius:0;
	background:var(--yellow);border:2px solid var(--border);color:var(--text);
	font-size:11px;font-weight:900;box-shadow:2px 2px 0 var(--border);text-transform:uppercase;
}
.mk-card-head{
	display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:10px;
}
.mk-cat{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text2);margin-bottom:8px;font-weight:900}
.mk-question{font-size:22px;line-height:1.55;letter-spacing:-.25px;color:var(--text);font-weight:900}
.mk-score{
	display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:0;
	background:var(--bg2);border:2px solid var(--border);color:var(--text);
	font-size:11px;font-weight:900;white-space:nowrap;box-shadow:2px 2px 0 var(--border);
}
.mk-score-p{color:#fff;background:var(--green-solid)}
.mk-score-z{color:var(--text);background:var(--orange)}
.mk-score-f{color:#fff;background:var(--red)}
.mk-score-strong{color:var(--text);background:var(--yellow)}
.mk-prompt{font-size:13px;color:var(--text2);margin-bottom:14px;font-weight:600}
.mk-answer{
	margin-bottom:16px;border:var(--bw) solid var(--border);border-radius:0;overflow:hidden;
	background:var(--bg2);box-shadow:var(--shadow-sm);
}
.mk-answer-head{
	padding:10px 14px;border-bottom:var(--bw) solid var(--border);background:var(--yellow);
	font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--text);font-weight:900;
}
.mk-answer-body{padding:16px 16px 4px}
.mk-answer-body h4{font-size:13px;color:var(--text);margin:14px 0 6px;font-weight:900;text-transform:uppercase;border-bottom:2px solid var(--border);padding-bottom:3px}
.mk-answer-body h4:first-child{margin-top:0}
.mk-answer-body p,.mk-answer-body li{font-size:13px;color:var(--text2);line-height:1.8}
.mk-answer-body ul,.mk-answer-body ol{padding-left:18px}
.mk-answer-body li{margin-bottom:3px}
.mk-answer-body code{background:var(--yellow);color:var(--text);padding:2px 6px;border-radius:0;font-size:12px;font-family:'JetBrains Mono',monospace;border:1px solid var(--border)}
.mk-answer-body pre{background:var(--surface);border:2px solid var(--border);border-radius:0;padding:12px;margin:8px 0;overflow-x:auto;font-size:12px;line-height:1.6;box-shadow:var(--shadow-sm)}
.mk-answer-body pre code{background:0;padding:0;color:var(--text2);border:none}
.mk-answer-body .key-point{background:var(--yellow);border-left:4px solid var(--border);padding:10px 14px;border-radius:0;margin:8px 0;font-size:12px;color:var(--text);border:2px solid var(--border)}
.mk-answer-body .project-link{background:var(--purple);border-left:4px solid var(--border);padding:10px 14px;border-radius:0;margin:8px 0;font-size:12px;color:#fff;border:2px solid var(--border)}
.mk-card-actions{display:flex;flex-direction:column;gap:14px}
.mk-rate{display:flex;flex-direction:column;gap:10px}
.mk-rate-label{font-size:12px;color:var(--text);font-weight:800}
.mk-rate-actions{display:flex;gap:10px;flex-wrap:wrap}
.mk-summary{padding:18px}
.mk-summary-head{
	display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
	margin-bottom:16px;padding-bottom:14px;border-bottom:var(--bw) solid var(--border);
}
.mk-summary-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.mk-summary-title{font-size:22px;font-weight:900;color:var(--text)}
.mk-summary-grid{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:18px;
}
.mk-summary-sections{
	display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;
}
.mk-stat{
	padding:14px 14px 12px;border-radius:0;border:var(--bw) solid var(--border);
	background:var(--bg2);box-shadow:var(--shadow-sm);
}
.mk-stat-label{display:block;font-size:11px;color:var(--text2);margin-bottom:6px;font-weight:800;text-transform:uppercase}
.mk-stat-value{font-size:20px;line-height:1.2;color:var(--text);font-weight:900}
.mk-review h4{font-size:13px;color:var(--text);margin-bottom:10px;font-weight:900;text-transform:uppercase}
.mk-review ul{display:flex;flex-direction:column;gap:8px;list-style:none}
.mk-review li{
	display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:0;
	border:2px solid var(--border);background:var(--bg2);box-shadow:2px 2px 0 var(--border);
}
.mk-review li span{font-size:13px;color:var(--text);line-height:1.6;font-weight:600}
.mk-review li strong{font-size:11px;color:var(--text);white-space:nowrap;background:var(--yellow);padding:2px 8px;border:1px solid var(--border)}
.mk-next-step{
	padding:12px 14px;border-radius:0;border:2px solid var(--border);
	background:var(--lime);font-size:13px;color:var(--text);line-height:1.8;font-weight:600;
	box-shadow:var(--shadow-sm);
}

/* ===== UPDATES PANEL ===== */
.updates{
	max-width:668px;margin:18px auto 0;padding:18px;border-radius:0;
	background:var(--surface);
	border:var(--bw) solid var(--border);
	box-shadow:var(--shadow-lg);
}
.updates-head{
	display:flex;justify-content:space-between;align-items:flex-end;gap:16px;
	margin-bottom:14px;padding-bottom:14px;border-bottom:var(--bw) solid var(--border);
}
.updates-kicker{font-size:10px;letter-spacing:2.2px;text-transform:uppercase;color:var(--text2);font-weight:900}
.updates h2{font-size:22px;font-weight:900;letter-spacing:-.2px;color:var(--text)}
.updates-link{
	font-size:12px;color:var(--text);text-decoration:none;font-weight:800;
	background:var(--yellow);padding:4px 10px;border:2px solid var(--border);
	box-shadow:2px 2px 0 var(--border);transition:all .15s;
}
.updates-link:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--border)}
.updates-list{display:flex;flex-direction:column;gap:10px}
.update-item{
	padding:14px 14px 12px;border-radius:0;border:2px solid var(--border);
	background:var(--bg2);box-shadow:var(--shadow-sm);
}
.update-date{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--text2);margin-bottom:6px;font-weight:900}
.update-item h3{font-size:15px;font-weight:900;color:var(--text);margin-bottom:6px}
.update-item p{font-size:13px;color:var(--text2);line-height:1.8;font-weight:500}

/* Footer & misc */
.ft{margin-top:16px;font-size:12px;color:var(--text3);text-align:center;font-weight:700}
.ft a{color:var(--text);font-weight:800;text-decoration:none;border-bottom:2px solid var(--border)}
.ft a:hover{background:var(--yellow)}

/* ── Top Navigation Bar ── */
.top-nav{
	display:flex;justify-content:space-between;align-items:center;
	max-width:720px;margin:0 auto;padding:12px 16px;
}
.top-nav-link{
	padding:8px 14px;border:2px solid var(--border);background:var(--bg2);
	color:var(--text);font-size:12px;font-weight:800;text-decoration:none;
	text-transform:uppercase;box-shadow:2px 2px 0 var(--border);transition:all .15s;
}
.top-nav-link:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--border);background:var(--yellow)}
.top-nav-link:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--border)}
.top-nav-title{font-size:14px;font-weight:900;color:var(--text);text-transform:uppercase;letter-spacing:.5px}

/* ── Home Page ── */
.home-stats{
	display:grid;grid-template-columns:repeat(4,1fr);gap:10px;
	max-width:668px;margin:0 auto 16px;padding:0 4px;
}
.stat-card{
	padding:16px 12px;border:var(--bw) solid var(--border);background:var(--surface);
	text-align:center;box-shadow:var(--shadow-sm);
}
.stat-card.stat-green{background:var(--green)}
.stat-card.stat-orange{background:var(--orange)}
.stat-card.stat-red{background:var(--red);color:#fff}
.stat-value{display:block;font-size:28px;font-weight:900;line-height:1.2}
.stat-label{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-top:4px}
.stat-card.stat-red .stat-label{color:rgba(255,255,255,.85)}

.home-section-title{
	font-size:16px;font-weight:900;text-transform:uppercase;letter-spacing:1px;
	margin-bottom:12px;padding-left:4px;
}
.home-modes,.home-paths{max-width:668px;margin:20px auto;padding:0 4px}
.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}

.mode-card{
	display:flex;flex-direction:column;gap:8px;padding:20px 16px;
	border:var(--bw) solid var(--border);background:var(--surface);
	text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:all .15s;
}
.mode-card:hover{transform:translate(-3px,-3px);box-shadow:7px 7px 0 var(--border)}
.mode-card:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--border)}
.mode-card.mode-pink{background:var(--pink);color:#fff}
.mode-card.mode-blue{background:var(--blue);color:var(--text)}
.mode-card.mode-yellow{background:var(--yellow);color:var(--text)}
.mode-icon{font-size:32px;font-weight:900;line-height:1}
.mode-title{font-size:16px;font-weight:900;text-transform:uppercase}
.mode-desc{font-size:12px;font-weight:600;opacity:.85;line-height:1.5}

.path-card{
	display:flex;flex-direction:column;gap:6px;padding:14px 14px;
	border:var(--bw) solid var(--border);background:var(--surface);
	text-decoration:none;color:var(--text);box-shadow:var(--shadow-sm);transition:all .15s;
}
.path-card:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--border);background:var(--yellow)}
.path-card:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--border)}
.path-card-title{font-size:14px;font-weight:900}
.path-card-meta{font-size:11px;font-weight:600;color:var(--text2);line-height:1.6}
.ns{
	margin:16px auto 0;max-width:720px;padding:12px 16px;
	border:var(--bw) solid var(--border);border-radius:0;
	background:var(--orange);color:var(--text);font-size:13px;font-weight:800;
	box-shadow:var(--shadow);
}
.hidden{display:none!important}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
	.fc-in{transition:none!important}.fc.flip .fc-in{transform:none!important}.fc.flip .fc-f{opacity:0}.fc.flip .fc-b{transform:none;opacity:1}.fc-f,.fc-b{transition:opacity .15s}.prog-fill{animation:none}
	*{transition-duration:.01ms!important;animation-duration:.01ms!important}
}

/* ── Responsive ── */
@media(max-width:768px){
	.app{padding:14px 14px calc(env(safe-area-inset-bottom,16px) + 8px)}
	.hd{padding:24px 0 10px}.hd h1{font-size:22px;padding:5px 16px}
	.nav-band{padding:14px 10px 12px;margin-bottom:8px;max-width:none}
	.nav-band-top{gap:12px;padding-bottom:14px;margin-bottom:12px}
	.nav-band-main{gap:6px}
	.ctrl{padding:8px 12px 9px;font-size:11px}
	.tag-row{gap:6px}.tag-chip{font-size:10px;padding:6px 10px}
	.path-shell,.review-shell{padding:12px 10px 0}
	.path-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
	.path-chip{padding:11px 12px}.path-chip-title{font-size:12px}.path-chip-meta{font-size:10px}
	.review-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
	.review-chip{padding:10px 11px}.review-chip-title{font-size:11px}
	.stage{margin-top:0}
	.fc{max-width:none;height:352px}
	.chrome{grid-template-columns:auto 1fr auto;padding:11px 14px}
	.chrome-pill{padding:4px 8px;font-size:9px;letter-spacing:1.4px}
	.home-stats{grid-template-columns:repeat(2,1fr)}
	.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.stat-value{font-size:22px}
	.top-nav{padding:10px 14px}
	.top-nav-link{font-size:11px;padding:7px 10px}
	.top-nav-title{font-size:12px}
	.fc-body{padding:24px 22px 20px}.fc-body::before{font-size:140px}
	.qt{font-size:16px}
	.fc-ans{padding:16px 18px 20px}
	.rt{font-size:12px}
	.keys{display:none}
	.cat-tab{padding:9px 16px 10px;font-size:12px}
	.prog{max-width:none;padding:0 2px}
	.ls-shell,.mk-shell,.updates{padding:16px 14px 14px}
	.ls-head,.mk-head,.updates-head{flex-direction:column;align-items:flex-start;gap:10px}
	.ls-title,.mk-title,.updates h2{font-size:17px}
	.ls-meta,.mk-meta{text-align:left}
	.mk-card{padding:16px}
	.mk-card-head,.mk-summary-head,.mk-summary-actions{flex-direction:column;align-items:flex-start}
	.mk-question{font-size:19px}
	.mk-rate-actions{flex-direction:column}
	.mk-rate-actions .rt{max-width:none}
}
@media(max-width:400px){
	.nav-band{padding:12px 8px 10px}
	.nav-band-top{gap:10px;padding:0 0 12px}
	.ctrl{padding:8px 10px 9px;font-size:11px}
	.path-shell,.review-shell{padding:10px 8px 0}
	.path-head{flex-direction:column;align-items:flex-start;gap:8px}
	.path-row,.review-row{grid-template-columns:1fr}
	.path-reset{width:100%;text-align:center}
	.fc{height:308px}
	.chrome{padding:10px 12px;gap:8px}
	.chrome-pill{padding:3px 7px;font-size:9px;letter-spacing:1.2px}
	.chrome-btn{padding:4px 10px;font-size:10px}
	.fc-body{padding:18px 16px}.fc-body::before{font-size:110px}
	.qt{font-size:15px}
	.bgs{gap:4px;margin-bottom:14px}.bg{font-size:9px;padding:3px 8px}
	.nav-b{width:42px;height:42px}
	.rtg{gap:6px}.rt{font-size:11px;min-height:42px}
	.sts{gap:5px}.st{font-size:10px;padding:4px 10px}
	.qts{display:none}
	.cat-tab{padding:8px 12px 9px;font-size:11px}
	.ls-shell,.mk-shell,.updates{padding:14px 12px}
	.ls-title,.mk-title,.updates h2{font-size:16px}
	.mk-empty{padding:18px 14px}
	.mk-question{font-size:17px}
	.mk-toolbar,.mk-options{gap:6px}
	.mk-btn{width:100%;justify-content:center}
	.mk-review li{flex-direction:column;align-items:flex-start}
}

/* ══════════════════════════════════════════
   SEO 独立页（题目详情 / 分类聚合）
   复用 Neo-Brutalism token，不硬编码颜色
   ══════════════════════════════════════════ */

.detail,
.category{
	max-width:920px;
	margin:0 auto;
	padding:32px 24px 80px;
}

.detail .breadcrumb,
.category .breadcrumb{
	font-size:14px;
	margin-bottom:24px;
	color:var(--text2);
}
.detail .breadcrumb a,
.category .breadcrumb a{
	color:var(--text);
	font-weight:600;
	text-decoration:none;
	border-bottom:2px solid var(--border);
}
.detail .breadcrumb a:hover,
.category .breadcrumb a:hover{
	background:var(--yellow);
}

.detail .question h1,
.category .cat-header h1{
	font-size:32px;
	line-height:1.25;
	margin:0 0 16px;
	color:var(--text);
}

.detail .meta,
.category .summary{
	margin:0 0 28px;
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	font-size:14px;
	color:var(--text2);
}

.badge{
	display:inline-block;
	padding:4px 10px;
	border:2px solid var(--border);
	box-shadow:var(--shadow-sm);
	font-weight:700;
	font-size:12px;
	letter-spacing:.02em;
	background:var(--surface);
	color:var(--text);
}
.badge-easy{background:var(--green-bg)}
.badge-medium{background:var(--orange-bg)}
.badge-hard{background:var(--red-bg)}
.badge-tag{background:var(--cyan-bg)}

.detail .answer{
	background:var(--surface);
	border:var(--bw) solid var(--border);
	box-shadow:var(--shadow-lg);
	padding:24px 28px;
	margin:0 0 32px;
}
.detail .answer h4{
	margin-top:20px;
	margin-bottom:8px;
	font-size:16px;
	color:var(--text);
}
.detail .answer h4:first-child{margin-top:0}
.detail .answer ul,
.detail .answer ol{padding-left:22px}
.detail .answer pre{
	overflow-x:auto;
	background:var(--chrome);
	border:2px solid var(--border);
	padding:12px 14px;
	font-family:'JetBrains Mono',monospace;
	font-size:13px;
	margin:12px 0;
}
.detail .answer code{font-family:'JetBrains Mono',monospace}
.detail .answer .key-point{
	margin-top:16px;
	padding:12px 16px;
	background:var(--yellow);
	border:2px solid var(--border);
	font-size:14px;
}
.detail .answer .project-link{
	margin-top:16px;
	padding:12px 16px;
	background:var(--cyan-bg);
	border:2px solid var(--border);
	font-size:14px;
}

.detail .related{
	margin-top:40px;
	padding:20px 24px;
	border:var(--bw) solid var(--border);
	box-shadow:var(--shadow-lg);
	background:var(--bg2);
}
.detail .related h2{
	margin:0 0 12px;
	font-size:18px;
	color:var(--text);
}
.detail .related ul{margin:0;padding-left:20px}
.detail .related a{
	color:var(--text);
	text-decoration:none;
	border-bottom:2px solid var(--border);
}
.detail .related a:hover{background:var(--yellow)}

.category .list h2{
	margin:32px 0 12px;
	font-size:20px;
	color:var(--text);
}
.cat-list{
	padding-left:24px;
	line-height:1.8;
}
.cat-list a{
	color:var(--text);
	text-decoration:none;
	border-bottom:2px solid var(--border);
}
.cat-list a:hover{background:var(--yellow)}

.cta{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin:40px 0 24px;
}
.cta-btn{
	display:inline-block;
	padding:12px 20px;
	border:var(--bw) solid var(--border);
	box-shadow:var(--shadow);
	background:var(--surface);
	color:var(--text);
	font-weight:700;
	text-decoration:none;
	transition:transform 80ms ease,box-shadow 80ms ease;
}
.cta-btn:hover{
	transform:translate(2px,2px);
	box-shadow:var(--shadow-sm);
	background:var(--yellow);
}

.detail .ft,
.category .ft{
	margin-top:40px;
	font-size:13px;
	color:var(--text3);
}
.detail .ft a,
.category .ft a{
	color:var(--text);
	font-weight:600;
}
