.faq-page{
  min-height:100vh;
  padding:5rem clamp(0.6rem,3vw,2rem) 2rem;
  display:flex;justify-content:center;align-items:flex-start;
}

.faq-term{
  width:100%;max-width:58rem;
  background:#0a0b0e;
  border:1px solid #2a2c38;border-radius:1rem;
  overflow:hidden;
  box-shadow:0 0 80px rgba(0,0,0,0.5);
}

.ft-bar{
  display:flex;align-items:center;gap:0.8rem;
  padding:0.65rem 1rem;
  border-bottom:1px solid #2a2c38;
  background:#0e0f13;
}
.ft-dots{display:flex;gap:6px}
.dot-r{width:11px;height:11px;border-radius:50%;background:#ff5f57}
.dot-y{width:11px;height:11px;border-radius:50%;background:#febc2e}
.dot-g{width:11px;height:11px;border-radius:50%;background:#28c840}
.ft-title{flex:1;font-family:var(--mono);font-size:0.72rem;color:#999;text-align:center}
.ft-status{
  font-family:var(--mono);font-size:0.6rem;letter-spacing:0.08em;
  color:#f87171;background:rgba(248,113,113,0.1);
  border:1px solid rgba(248,113,113,0.2);
  padding:3px 10px;border-radius:100px;
}
.ft-status.ft-unlocked{
  color:#34d399;background:rgba(52,211,153,0.1);
  border-color:rgba(52,211,153,0.2);
}

.ft-header{padding:0.9rem 1.2rem;border-bottom:1px solid #2a2c38}
.ft-log{font-family:var(--mono);font-size:0.72rem;color:#bbb;line-height:1.8}
.ft-green{color:#34d399}
.ft-blue{color:#4a9eff}
.ft-pbar{height:4px;background:#1a1b22;border-radius:2px;margin-top:0.5rem;overflow:hidden}
.ft-pfill{height:100%;width:0%;background:linear-gradient(90deg,#4a9eff,#7c5cfc,#34d399);border-radius:2px}

.ft-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));
  gap:0.7rem;padding:1rem 1rem 1.5rem;
}

.ft-file{
  background:#1a1c28;
  border:1px solid #2a2c38;border-radius:0.65rem;
  padding:1.1rem 1.2rem;
  cursor:pointer;transition:all 0.2s;
  overflow:hidden;
  opacity:1!important;
}
.ft-file:hover:not(.done):not(.cracking){
  border-color:#4a9eff;
  box-shadow:0 0 14px rgba(74,158,255,0.08);
  transform:translateY(-1px);
}
.ft-file.cracking{
  border-color:#4a9eff;
  animation:crack 0.06s infinite;
  box-shadow:0 0 20px rgba(74,158,255,0.12);
}
@keyframes crack{
  0%{transform:translate(1px,-1px)}
  50%{transform:translate(-1px,1px)}
  100%{transform:translate(0,0)}
}
.ft-file.done{
  cursor:default;
  border-color:rgba(52,211,153,0.2);
  background:rgba(52,211,153,0.02);
}

.ff-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem}
.ff-tag{
  font-family:var(--mono);font-size:0.58rem;letter-spacing:0.08em;
  color:#aaa;background:#181a22;padding:2px 7px;border-radius:3px;
}
.ff-tag-ok{color:#34d399;background:rgba(52,211,153,0.08)}
.ff-ico{font-size:0.8rem}

.ff-title{font-size:0.85rem;font-weight:600;color:#fff;margin-bottom:0.45rem;line-height:1.35}
.ff-noise{
  font-family:var(--mono);font-size:0.6rem;color:#4a9eff;
  opacity:0.6;line-height:1.2;overflow:hidden;
  max-height:1.4rem;word-break:break-all;letter-spacing:0.5px;
}
.ff-act{
  font-family:var(--mono);font-size:0.6rem;color:#888;
  margin-top:0.55rem;
}

.ff-state-open{display:none}
.ft-file.done .ff-state-locked{display:none}
.ft-file.done .ff-state-open{display:block}
.ff-qtitle{font-size:0.82rem;font-weight:600;color:#34d399;margin-bottom:0.4rem;line-height:1.35}
.ff-ans{font-size:0.78rem;color:#a1a1aa;line-height:1.8;font-weight:300}
.ff-caret{
  display:none;color:#4a9eff;font-family:var(--mono);font-weight:700;
  animation:blink 0.5s step-end infinite;
}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

.ft-done{
  display:none;text-align:center;
  padding:2rem 1rem;border-top:1px solid #2a2c38;
}
.ftd-label{
  font-family:var(--mono);font-size:1.2rem;font-weight:700;
  color:#34d399;letter-spacing:0.06em;margin-bottom:0.3rem;
  text-shadow:0 0 20px rgba(52,211,153,0.25);
}
.ftd-sub{font-size:0.85rem;color:#bbb;font-weight:300}

@media(max-width:48rem){
  .faq-page{padding:4.2rem 0.4rem 1.5rem}
  .faq-term{border-radius:0.7rem}
  .ft-title{display:none}
  .ft-grid{grid-template-columns:1fr;gap:0.5rem;padding:0.6rem 0.6rem 1.2rem}
  .ft-file{padding:0.9rem 1rem}
  .ff-title{font-size:0.8rem}
  .ff-qtitle{font-size:0.78rem}
  .ff-ans{font-size:0.72rem}
  .ft-header{padding:0.7rem 0.8rem}
  .ft-log{font-size:0.65rem}
}
@media(max-width:24rem){
  .ft-bar{padding:0.5rem 0.7rem}
  .ft-dots span{width:8px;height:8px}
  .ft-file{padding:0.8rem 0.9rem}
}
.ff-seo{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
